From python-checkins at python.org Mon Sep 1 16:13:43 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 1 Sep 2008 16:13:43 +0200 (CEST) Subject: [Python-checkins] r66097 - in python/trunk: Lib/test/test_fileio.py Misc/NEWS Modules/_fileio.c Message-ID: <20080901141343.AB2311E4005@bag.python.org> Author: benjamin.peterson Date: Mon Sep 1 16:13:43 2008 New Revision: 66097 Log: #3703 unhelpful _fileio.FileIO error message when trying to open a directory Reviewer: Gregory P. Smith Modified: python/trunk/Lib/test/test_fileio.py python/trunk/Misc/NEWS python/trunk/Modules/_fileio.c Modified: python/trunk/Lib/test/test_fileio.py ============================================================================== --- python/trunk/Lib/test/test_fileio.py (original) +++ python/trunk/Lib/test/test_fileio.py Mon Sep 1 16:13:43 2008 @@ -101,6 +101,17 @@ # should raise on closed file self.assertRaises(ValueError, method) + def testOpendir(self): + # Issue 3703: opening a directory should fill the errno + # Windows always returns "[Errno 13]: Permission denied + # Unix calls dircheck() and returns "[Errno 21]: Is a directory" + try: + _fileio._FileIO('.', 'r') + except IOError as e: + self.assertNotEqual(e.errno, 0) + else: + self.fail("Should have raised IOError") + class OtherFileTests(unittest.TestCase): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Sep 1 16:13:43 2008 @@ -52,6 +52,9 @@ - Fixed two format strings in the _collections module. +- #3703 _fileio.FileIO gave unhelpful error message when trying to open a + directory. + Extension Modules ----------------- Modified: python/trunk/Modules/_fileio.c ============================================================================== --- python/trunk/Modules/_fileio.c (original) +++ python/trunk/Modules/_fileio.c Mon Sep 1 16:13:43 2008 @@ -262,7 +262,7 @@ #endif self->fd = open(name, flags, 0666); Py_END_ALLOW_THREADS - if (self->fd < 0 || dircheck(self) < 0) { + if (self->fd < 0) { #ifdef MS_WINDOWS PyErr_SetFromErrnoWithUnicodeFilename(PyExc_IOError, widename); #else @@ -270,6 +270,8 @@ #endif goto error; } + if(dircheck(self) < 0) + goto error; } goto done; From python-checkins at python.org Mon Sep 1 16:15:55 2008 From: python-checkins at python.org (georg.brandl) Date: Mon, 1 Sep 2008 16:15:55 +0200 (CEST) Subject: [Python-checkins] r66098 - python/trunk/Doc/library/codecs.rst Message-ID: <20080901141555.BBA191E401F@bag.python.org> Author: georg.brandl Date: Mon Sep 1 16:15:55 2008 New Revision: 66098 Log: #3749: fix c'n'p errors. Modified: python/trunk/Doc/library/codecs.rst Modified: python/trunk/Doc/library/codecs.rst ============================================================================== --- python/trunk/Doc/library/codecs.rst (original) +++ python/trunk/Doc/library/codecs.rst Mon Sep 1 16:15:55 2008 @@ -51,13 +51,13 @@ Codec Interface). The functions/methods are expected to work in a stateless mode. - *incrementalencoder* and *incrementalencoder*: These have to be factory + *incrementalencoder* and *incrementaldecoder*: These have to be factory functions providing the following interface: ``factory(errors='strict')`` The factory functions must return objects providing the interfaces defined by - the base classes :class:`IncrementalEncoder` and :class:`IncrementalEncoder`, + the base classes :class:`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. Incremental codecs can maintain state. *streamreader* and *streamwriter*: These have to be factory functions providing @@ -477,7 +477,7 @@ The *errors* argument will be assigned to an attribute of the same name. Assigning to this attribute makes it possible to switch between different error - handling strategies during the lifetime of the :class:`IncrementalEncoder` + handling strategies during the lifetime of the :class:`IncrementalDecoder` object. The set of allowed values for the *errors* argument can be extended with From python-checkins at python.org Mon Sep 1 16:18:30 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 1 Sep 2008 16:18:30 +0200 (CEST) Subject: [Python-checkins] r66099 - in python/trunk: Misc/NEWS Python/import.c Message-ID: <20080901141830.97C5B1E4005@bag.python.org> Author: benjamin.peterson Date: Mon Sep 1 16:18:30 2008 New Revision: 66099 Log: Fix compilation when --without-threads is given #3683 Reviewer: Georg Brandl, Benjamin Peterson Modified: python/trunk/Misc/NEWS python/trunk/Python/import.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Sep 1 16:18:30 2008 @@ -12,6 +12,8 @@ Core and Builtins ----------------- +- Issue #3683: Fix compilation when --without-threads is given. + - Issue #3668: Fix a memory leak with the "s*" argument parser in PyArg_ParseTuple and friends, which occurred when the argument for "s*" was correctly parsed but parsing of subsequent arguments failed. @@ -52,8 +54,8 @@ - Fixed two format strings in the _collections module. -- #3703 _fileio.FileIO gave unhelpful error message when trying to open a - directory. +- Issue #3703: _fileio.FileIO gave unhelpful error message when trying to open a + directory. Extension Modules ----------------- Modified: python/trunk/Python/import.c ============================================================================== --- python/trunk/Python/import.c (original) +++ python/trunk/Python/import.c Mon Sep 1 16:18:30 2008 @@ -2029,7 +2029,7 @@ else { PyErr_Clear(); } - +#ifdef WITH_THREAD /* check the import lock * me might be -1 but I ignore the error here, the lock function * takes care of the problem */ @@ -2045,6 +2045,9 @@ name); return NULL; } +#else + return PyImport_ImportModule(name); +#endif } /* Forward declarations for helper routines */ From python-checkins at python.org Mon Sep 1 16:24:05 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Mon, 1 Sep 2008 16:24:05 +0200 (CEST) Subject: [Python-checkins] r66100 - python/trunk/Lib/msilib/__init__.py Message-ID: <20080901142405.31ACB1E4005@bag.python.org> Author: hirokazu.yamamoto Date: Mon Sep 1 16:24:04 2008 New Revision: 66100 Log: Issue #3732: Backported r53335 to supress deprecation warning. Reviewed by Benjamin Peterson. Modified: python/trunk/Lib/msilib/__init__.py Modified: python/trunk/Lib/msilib/__init__.py ============================================================================== --- python/trunk/Lib/msilib/__init__.py (original) +++ python/trunk/Lib/msilib/__init__.py Mon Sep 1 16:24:04 2008 @@ -2,7 +2,7 @@ # Copyright (C) 2005 Martin v. L?wis # Licensed to PSF under a Contributor Agreement. from _msi import * -import sets, os, string, re +import os, string, re Win64=0 @@ -184,7 +184,7 @@ def __init__(self, name): self.name = name self.files = [] - self.filenames = sets.Set() + self.filenames = set() self.index = 0 def gen_id(self, file): @@ -215,7 +215,7 @@ os.unlink(filename) db.Commit() -_directories = sets.Set() +_directories = set() class Directory: def __init__(self, db, cab, basedir, physical, _logical, default, componentflags=None): """Create a new directory in the Directory table. There is a current component @@ -239,8 +239,8 @@ self.physical = physical self.logical = logical self.component = None - self.short_names = sets.Set() - self.ids = sets.Set() + self.short_names = set() + self.ids = set() self.keyfiles = {} self.componentflags = componentflags if basedir: From python-checkins at python.org Mon Sep 1 16:30:10 2008 From: python-checkins at python.org (vinay.sajip) Date: Mon, 1 Sep 2008 16:30:10 +0200 (CEST) Subject: [Python-checkins] r66103 - python/trunk/Lib/logging/__init__.py Message-ID: <20080901143010.D50321E4005@bag.python.org> Author: vinay.sajip Date: Mon Sep 1 16:30:10 2008 New Revision: 66103 Log: logging: fixed lack of use of encoding attribute specified on a stream. Modified: python/trunk/Lib/logging/__init__.py Modified: python/trunk/Lib/logging/__init__.py ============================================================================== --- python/trunk/Lib/logging/__init__.py (original) +++ python/trunk/Lib/logging/__init__.py Mon Sep 1 16:30:10 2008 @@ -719,6 +719,7 @@ to a stream. Note that this class does not close the stream, as sys.stdout or sys.stderr may be used. """ + def __init__(self, strm=None): """ Initialize the handler. @@ -743,10 +744,11 @@ Emit a record. If a formatter is specified, it is used to format the record. - The record is then written to the stream with a trailing newline - [N.B. this may be removed depending on feedback]. If exception - information is present, it is formatted using - traceback.print_exception and appended to the stream. + The record is then written to the stream with a trailing newline. If + exception information is present, it is formatted using + traceback.print_exception and appended to the stream. If the stream + has an 'encoding' attribute, it is used to encode the message before + output to the stream. """ try: msg = self.format(record) @@ -755,7 +757,10 @@ self.stream.write(fs % msg) else: try: - self.stream.write(fs % msg) + if hasattr(self.stream, 'encoding'): + self.stream.write(fs % msg.encode(self.stream.encoding)) + else: + self.stream.write(fs % msg) except UnicodeError: self.stream.write(fs % msg.encode("UTF-8")) self.flush() From python-checkins at python.org Mon Sep 1 16:32:59 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Mon, 1 Sep 2008 16:32:59 +0200 (CEST) Subject: [Python-checkins] r66104 - python/trunk/Lib/platform.py Message-ID: <20080901143259.31F6D1E4005@bag.python.org> Author: hirokazu.yamamoto Date: Mon Sep 1 16:32:58 2008 New Revision: 66104 Log: Issue #3748: platform.architecture() printed vogus message on windows. Reviewed by Marc-Andre Lemburg. Modified: python/trunk/Lib/platform.py Modified: python/trunk/Lib/platform.py ============================================================================== --- python/trunk/Lib/platform.py (original) +++ python/trunk/Lib/platform.py Mon Sep 1 16:32:58 2008 @@ -964,6 +964,9 @@ case the command should fail. """ + if sys.platform in ('dos','win32','win16','os2'): + # XXX Others too ? + return default target = _follow_symlinks(target) try: f = os.popen('file %s 2> /dev/null' % target) From python-checkins at python.org Mon Sep 1 16:34:00 2008 From: python-checkins at python.org (vinay.sajip) Date: Mon, 1 Sep 2008 16:34:00 +0200 (CEST) Subject: [Python-checkins] r66105 - python/trunk/Misc/NEWS Message-ID: <20080901143400.50D711E4005@bag.python.org> Author: vinay.sajip Date: Mon Sep 1 16:33:59 2008 New Revision: 66105 Log: logging: fixed lack of use of encoding attribute specified on a stream. Modified: python/trunk/Misc/NEWS Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Sep 1 16:33:59 2008 @@ -15,10 +15,10 @@ - Issue #3683: Fix compilation when --without-threads is given. - Issue #3668: Fix a memory leak with the "s*" argument parser in - PyArg_ParseTuple and friends, which occurred when the argument for "s*" + PyArg_ParseTuple and friends, which occurred when the argument for "s*" was correctly parsed but parsing of subsequent arguments failed. -- Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to +- Issue #2534: speed up isinstance() and issubclass() by 50-70%, so as to match Python 2.5 speed despite the __instancecheck__ / __subclasscheck__ mechanism. In the process, fix a bug where isinstance() and issubclass(), when given a tuple of classes as second argument, were looking up @@ -50,6 +50,8 @@ Library ------- +- logging: fixed lack of use of encoding attribute specified on a stream. + - Silenced a trivial compiler warning in the sqlite module. - Fixed two format strings in the _collections module. From python-checkins at python.org Mon Sep 1 16:39:55 2008 From: python-checkins at python.org (georg.brandl) Date: Mon, 1 Sep 2008 16:39:55 +0200 (CEST) Subject: [Python-checkins] r66107 - doctools/trunk/sphinx/templates/modindex.html Message-ID: <20080901143955.DD9331E4005@bag.python.org> Author: georg.brandl Date: Mon Sep 1 16:39:55 2008 New Revision: 66107 Log: When building html help, no scripts are embedded. Modified: doctools/trunk/sphinx/templates/modindex.html Modified: doctools/trunk/sphinx/templates/modindex.html ============================================================================== --- doctools/trunk/sphinx/templates/modindex.html (original) +++ doctools/trunk/sphinx/templates/modindex.html Mon Sep 1 16:39:55 2008 @@ -1,7 +1,7 @@ {% extends "layout.html" %} {% set title = _('Global Module Index') %} {% block extrahead %} -{% if collapse_modindex %} +{% if builder != 'htmlhelp' and collapse_modindex %} From python-checkins at python.org Mon Sep 1 17:08:07 2008 From: python-checkins at python.org (vinay.sajip) Date: Mon, 1 Sep 2008 17:08:07 +0200 (CEST) Subject: [Python-checkins] r66110 - python/trunk/Doc/library/logging.rst Message-ID: <20080901150807.CB83F1E4005@bag.python.org> Author: vinay.sajip Date: Mon Sep 1 17:08:07 2008 New Revision: 66110 Log: Added section about configuring logging in a library. Thanks to Thomas Heller for the idea. Modified: python/trunk/Doc/library/logging.rst Modified: python/trunk/Doc/library/logging.rst ============================================================================== --- python/trunk/Doc/library/logging.rst (original) +++ python/trunk/Doc/library/logging.rst Mon Sep 1 17:08:07 2008 @@ -422,6 +422,45 @@ code approach, mainly separation of configuration and code and the ability of noncoders to easily modify the logging properties. +Configuring Logging for a Library +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When developing a library which uses logging, some consideration needs to be +given to its configuration. If the using application does not use logging, and +library code makes logging calls, then a one-off message "No handlers could be +found for logger X.Y.Z" is printed to the console. This message is intended +to catch mistakes in logging configuration, but will confuse an application +developer who is not aware of logging by the library. + +In addition to documenting how a library uses logging, a good way to configure +library logging so that it does not cause a spurious message is to add a +handler which does nothing. This avoids the message being printed, since a +handler will be found: it just doesn't produce any output. If the library user +configures logging for application use, presumably that configuration will add +some handlers, and if levels are suitably configured then logging calls made +in library code will send output to those handlers, as normal. + +A do-nothing handler can be simply defined as follows:: + + import logging + + class NullHandler(logging.Handler): + def emit(self, record): + pass + +An instance of this handler should be added to the top-level logger of the +logging namespace used by the library. If all logging by a library *foo* is +done using loggers with names matching "foo.x.y", then the code:: + + import logging + + h = NullHandler() + logging.getLogger("foo").addHandler(h) + +should have the desired effect. If an organisation produces a number of +libraries, then the logger name specified can be "orgname.foo" rather than +just "foo". + Logging Levels -------------- From buildbot at python.org Mon Sep 1 17:29:25 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 15:29:25 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080901152925.220EE1E401E@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/471 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 17:35:38 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 15:35:38 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080901153539.17AD61E4005@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/273 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 17:59:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 15:59:16 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080901155916.857EF1E4005@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/170 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: hirokazu.yamamoto,vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_asynchat test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From stackless-checkins-bounces at stackless.com Mon Sep 1 18:27:25 2008 From: stackless-checkins-bounces at stackless.com (stackless-checkins-bounces at stackless.com) Date: Mon, 01 Sep 2008 18:27:25 +0200 Subject: [Python-checkins] Your message to Stackless-checkins awaits moderator approval Message-ID: Your mail to 'Stackless-checkins' with the subject r66112 - in stackless/branches/py3k: Demo/parser/unparse.py Doc/bugs.rst Doc/c-api/bytes.rst Doc/c-api/file.rst Doc/c-api/object.rst Doc/c-api/typeobj.rst Doc/includes/mp_distributing.py Doc/includes/mp_pool.py Doc/includes/mp_synchronize.py Doc/includes/mp_webserver.py Doc/includes/mp_workers.py Doc/library/multiprocessing.rst Doc/library/re.rst Doc/library/ssl.rst Doc/library/symtable.rst Doc/library/threading.rst Doc/library/types.rst Doc/library/urllib.parse.rst Doc/reference/datamodel.rst Doc/reference/expressions.rst Doc/tutorial/interpreter.rst Grammar/Grammar Include/abstract.h Include/bytesobject.h Include/cobject.h Include/memoryobject.h Include/object.h Include/patchlevel.h Include/pymath.h Lib/_strptime.py Lib/base64.py Lib/bsddb/__init__.py Lib/bsddb/db.py Lib/bsddb/dbobj.py Lib/bsddb/dbrecio.py Lib/bsddb/dbshelve.py Lib/bsddb/dbtables.py Lib/bsddb/dbutils.py Lib/bsddb/test/test_1413192.py Lib/bsddb/test/test_all.py Lib/bsddb/test/test_associate.py Lib! /bsddb/test/test_basics.py Lib/bsddb/test/test_compare.py Lib/bsddb/test/test_compat.py Lib/bsddb/test/test_cursor_pget_bug.py Lib/bsddb/test/test_dbobj.py Lib/bsddb/test/test_dbshelve.py Lib/bsddb/test/test_dbtables.py Lib/bsddb/test/test_distributed_transactions.py Lib/bsddb/test/test_early_close.py Lib/bsddb/test/test_get_none.py Lib/bsddb/test/test_join.py Lib/bsddb/test/test_lock.py Lib/bsddb/test/test_misc.py Lib/bsddb/test/test_pickle.py Lib/bsddb/test/test_queue.py Lib/bsddb/test/test_recno.py Lib/bsddb/test/test_replication.py Lib/bsddb/test/test_sequence.py Lib/bsddb/test/test_thread.py Lib/ctypes/__init__.py Lib/ctypes/test/test_frombuffer.py Lib/ctypes/test/test_memfunctions.py Lib/ctypes/test/test_pointers.py Lib/ctypes/wintypes.py Lib/decimal.py Lib/distutils/__init__.py Lib/distutils/cygwinccompiler.py Lib/distutils/emxccompiler.py Lib/distutils/sysconfig.py Lib/distutils/util.py Lib/distutils/version.py Lib/distutils/versionpredicate.py Lib/email/quoprimime.! py Lib/email/utils.py Lib/encodings/aliases.py Lib/encodings/idna.py Lib/ftplib.py Lib/hashlib.py Lib/html/parser.py Lib/http/cookiejar.py Lib/http/cookies.py Lib/idlelib/idlever.py Lib/imaplib.py Lib/json/decoder.py Lib/lib2to3 Lib/lib2to3/refactor.py Lib/logging/__init__.py Lib/logging/handlers.py Lib/multiprocessing/conne Is being held until the list moderator can review it for approval. The reason it is being held: Message body is too big: 1101874 bytes with a limit of 500 KB Either the message will get posted to the list, or you will receive notification of the moderator's decision. If you would like to cancel this posting, please visit the following URL: http://www.stackless.com/mailman/confirm/stackless-checkins/3c31d49c3207864a5508178cf901924a2fb1e2f1 From python-checkins at python.org Mon Sep 1 18:47:26 2008 From: python-checkins at python.org (jesse.noller) Date: Mon, 1 Sep 2008 18:47:26 +0200 (CEST) Subject: [Python-checkins] r66114 - in python/trunk/Lib/multiprocessing: __init__.py sharedctypes.py synchronize.py util.py Message-ID: <20080901164726.332461E4005@bag.python.org> Author: jesse.noller Date: Mon Sep 1 18:47:25 2008 New Revision: 66114 Log: Submit Nick's patch for issue 3589, reviewed by jnoller Modified: python/trunk/Lib/multiprocessing/__init__.py python/trunk/Lib/multiprocessing/sharedctypes.py python/trunk/Lib/multiprocessing/synchronize.py python/trunk/Lib/multiprocessing/util.py Modified: python/trunk/Lib/multiprocessing/__init__.py ============================================================================== --- python/trunk/Lib/multiprocessing/__init__.py (original) +++ python/trunk/Lib/multiprocessing/__init__.py Mon Sep 1 18:47:25 2008 @@ -97,13 +97,6 @@ m.start() return m -def Pipe(duplex=True): - ''' - Returns two connection object connected by a pipe - ''' - from multiprocessing.connection import Pipe - return Pipe(duplex) - def cpu_count(): ''' Returns the number of CPUs in the system @@ -138,134 +131,28 @@ from multiprocessing.forking import freeze_support freeze_support() -def get_logger(): - ''' - Return package logger -- if it does not already exist then it is created - ''' - from multiprocessing.util import get_logger - return get_logger() - -def log_to_stderr(level=None): - ''' - Turn on logging and add a handler which prints to stderr - ''' - from multiprocessing.util import log_to_stderr - return log_to_stderr(level) - def allow_connection_pickling(): ''' Install support for sending connections and sockets between processes ''' from multiprocessing import reduction -# -# Definitions depending on native semaphores -# - -def Lock(): - ''' - Returns a non-recursive lock object - ''' - from multiprocessing.synchronize import Lock - return Lock() - -def RLock(): - ''' - Returns a recursive lock object - ''' - from multiprocessing.synchronize import RLock - return RLock() - -def Condition(lock=None): - ''' - Returns a condition object - ''' - from multiprocessing.synchronize import Condition - return Condition(lock) - -def Semaphore(value=1): - ''' - Returns a semaphore object - ''' - from multiprocessing.synchronize import Semaphore - return Semaphore(value) - -def BoundedSemaphore(value=1): - ''' - Returns a bounded semaphore object - ''' - from multiprocessing.synchronize import BoundedSemaphore - return BoundedSemaphore(value) - -def Event(): - ''' - Returns an event object - ''' - from multiprocessing.synchronize import Event - return Event() - -def Queue(maxsize=0): - ''' - Returns a queue object - ''' - from multiprocessing.queues import Queue - return Queue(maxsize) - -def JoinableQueue(maxsize=0): - ''' - Returns a queue object - ''' - from multiprocessing.queues import JoinableQueue - return JoinableQueue(maxsize) - -def Pool(processes=None, initializer=None, initargs=()): - ''' - Returns a process pool object - ''' - from multiprocessing.pool import Pool - return Pool(processes, initializer, initargs) - -def RawValue(typecode_or_type, *args): - ''' - Returns a shared object - ''' - from multiprocessing.sharedctypes import RawValue - return RawValue(typecode_or_type, *args) - -def RawArray(typecode_or_type, size_or_initializer): - ''' - Returns a shared array - ''' - from multiprocessing.sharedctypes import RawArray - return RawArray(typecode_or_type, size_or_initializer) - -def Value(typecode_or_type, *args, **kwds): - ''' - Returns a synchronized shared object - ''' - from multiprocessing.sharedctypes import Value - return Value(typecode_or_type, *args, **kwds) - -def Array(typecode_or_type, size_or_initializer, **kwds): - ''' - Returns a synchronized shared array - ''' - from multiprocessing.sharedctypes import Array - return Array(typecode_or_type, size_or_initializer, **kwds) +# Alias some names from submodules in the package namespace +from multiprocessing.connection import Pipe +from multiprocessing.util import (get_logger, log_to_stderr) # +# Definitions depending on native semaphores # -# +# Alias some names from submodules in the package namespace +from multiprocessing.synchronize import (Lock, RLock, Condition, Event, + Semaphore, BoundedSemaphore) +from multiprocessing.queues import (Queue, JoinableQueue) +from multiprocessing.pool import Pool +from multiprocessing.sharedctypes import (RawValue, Value, + RawArray, Array) if sys.platform == 'win32': - - def set_executable(executable): - ''' - Sets the path to a python.exe or pythonw.exe binary used to run - child processes on Windows instead of sys.executable. - Useful for people embedding Python. - ''' - from multiprocessing.forking import set_executable - set_executable(executable) + from multiprocessing.forking import set_executable __all__ += ['set_executable'] Modified: python/trunk/Lib/multiprocessing/sharedctypes.py ============================================================================== --- python/trunk/Lib/multiprocessing/sharedctypes.py (original) +++ python/trunk/Lib/multiprocessing/sharedctypes.py Mon Sep 1 18:47:25 2008 @@ -63,7 +63,7 @@ def Value(typecode_or_type, *args, **kwds): ''' - Return a synchronization wrapper for a Value + Return a synchronization wrapper for a RawValue ''' lock = kwds.pop('lock', None) if kwds: Modified: python/trunk/Lib/multiprocessing/synchronize.py ============================================================================== --- python/trunk/Lib/multiprocessing/synchronize.py (original) +++ python/trunk/Lib/multiprocessing/synchronize.py Mon Sep 1 18:47:25 2008 @@ -65,7 +65,9 @@ # class Semaphore(SemLock): - + ''' + A semaphore object + ''' def __init__(self, value=1): SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX) @@ -84,7 +86,9 @@ # class BoundedSemaphore(Semaphore): - + ''' + A bounded semaphore object + ''' def __init__(self, value=1): SemLock.__init__(self, SEMAPHORE, value, value) @@ -101,7 +105,9 @@ # class Lock(SemLock): - + ''' + A non-recursive lock object + ''' def __init__(self): SemLock.__init__(self, SEMAPHORE, 1, 1) @@ -126,7 +132,9 @@ # class RLock(SemLock): - + ''' + A recursive lock object + ''' def __init__(self): SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1) @@ -152,6 +160,9 @@ # class Condition(object): + ''' + A condition object + ''' def __init__(self, lock=None): self._lock = lock or RLock() @@ -252,7 +263,9 @@ # class Event(object): - + ''' + An event object + ''' def __init__(self): self._cond = Condition(Lock()) self._flag = Semaphore(0) Modified: python/trunk/Lib/multiprocessing/util.py ============================================================================== --- python/trunk/Lib/multiprocessing/util.py (original) +++ python/trunk/Lib/multiprocessing/util.py Mon Sep 1 18:47:25 2008 @@ -54,7 +54,7 @@ def get_logger(): ''' - Returns logger used by multiprocessing + Return package logger -- if it does not already exist then it is created ''' global _logger From buildbot at python.org Mon Sep 1 19:01:29 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:01:29 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080901170129.BC7961E4005@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3871 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: hirokazu.yamamoto,vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 19:10:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:10:33 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080901171033.9FA1F1E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/221 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesse.noller,vinay.sajip BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Mon Sep 1 19:10:47 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 1 Sep 2008 19:10:47 +0200 (CEST) Subject: [Python-checkins] r66115 - in python/trunk/Lib/multiprocessing: __init__.py managers.py sharedctypes.py synchronize.py util.py Message-ID: <20080901171047.2DB9B1E4005@bag.python.org> Author: benjamin.peterson Date: Mon Sep 1 19:10:46 2008 New Revision: 66115 Log: revert r66114 for Jesse Modified: python/trunk/Lib/multiprocessing/__init__.py python/trunk/Lib/multiprocessing/managers.py python/trunk/Lib/multiprocessing/sharedctypes.py python/trunk/Lib/multiprocessing/synchronize.py python/trunk/Lib/multiprocessing/util.py Modified: python/trunk/Lib/multiprocessing/__init__.py ============================================================================== --- python/trunk/Lib/multiprocessing/__init__.py (original) +++ python/trunk/Lib/multiprocessing/__init__.py Mon Sep 1 19:10:46 2008 @@ -97,6 +97,13 @@ m.start() return m +def Pipe(duplex=True): + ''' + Returns two connection object connected by a pipe + ''' + from multiprocessing.connection import Pipe + return Pipe(duplex) + def cpu_count(): ''' Returns the number of CPUs in the system @@ -131,28 +138,134 @@ from multiprocessing.forking import freeze_support freeze_support() +def get_logger(): + ''' + Return package logger -- if it does not already exist then it is created + ''' + from multiprocessing.util import get_logger + return get_logger() + +def log_to_stderr(level=None): + ''' + Turn on logging and add a handler which prints to stderr + ''' + from multiprocessing.util import log_to_stderr + return log_to_stderr(level) + def allow_connection_pickling(): ''' Install support for sending connections and sockets between processes ''' from multiprocessing import reduction -# Alias some names from submodules in the package namespace -from multiprocessing.connection import Pipe -from multiprocessing.util import (get_logger, log_to_stderr) - # # Definitions depending on native semaphores # -# Alias some names from submodules in the package namespace -from multiprocessing.synchronize import (Lock, RLock, Condition, Event, - Semaphore, BoundedSemaphore) -from multiprocessing.queues import (Queue, JoinableQueue) -from multiprocessing.pool import Pool -from multiprocessing.sharedctypes import (RawValue, Value, - RawArray, Array) + +def Lock(): + ''' + Returns a non-recursive lock object + ''' + from multiprocessing.synchronize import Lock + return Lock() + +def RLock(): + ''' + Returns a recursive lock object + ''' + from multiprocessing.synchronize import RLock + return RLock() + +def Condition(lock=None): + ''' + Returns a condition object + ''' + from multiprocessing.synchronize import Condition + return Condition(lock) + +def Semaphore(value=1): + ''' + Returns a semaphore object + ''' + from multiprocessing.synchronize import Semaphore + return Semaphore(value) + +def BoundedSemaphore(value=1): + ''' + Returns a bounded semaphore object + ''' + from multiprocessing.synchronize import BoundedSemaphore + return BoundedSemaphore(value) + +def Event(): + ''' + Returns an event object + ''' + from multiprocessing.synchronize import Event + return Event() + +def Queue(maxsize=0): + ''' + Returns a queue object + ''' + from multiprocessing.queues import Queue + return Queue(maxsize) + +def JoinableQueue(maxsize=0): + ''' + Returns a queue object + ''' + from multiprocessing.queues import JoinableQueue + return JoinableQueue(maxsize) + +def Pool(processes=None, initializer=None, initargs=()): + ''' + Returns a process pool object + ''' + from multiprocessing.pool import Pool + return Pool(processes, initializer, initargs) + +def RawValue(typecode_or_type, *args): + ''' + Returns a shared object + ''' + from multiprocessing.sharedctypes import RawValue + return RawValue(typecode_or_type, *args) + +def RawArray(typecode_or_type, size_or_initializer): + ''' + Returns a shared array + ''' + from multiprocessing.sharedctypes import RawArray + return RawArray(typecode_or_type, size_or_initializer) + +def Value(typecode_or_type, *args, **kwds): + ''' + Returns a synchronized shared object + ''' + from multiprocessing.sharedctypes import Value + return Value(typecode_or_type, *args, **kwds) + +def Array(typecode_or_type, size_or_initializer, **kwds): + ''' + Returns a synchronized shared array + ''' + from multiprocessing.sharedctypes import Array + return Array(typecode_or_type, size_or_initializer, **kwds) + +# +# +# if sys.platform == 'win32': - from multiprocessing.forking import set_executable + + def set_executable(executable): + ''' + Sets the path to a python.exe or pythonw.exe binary used to run + child processes on Windows instead of sys.executable. + Useful for people embedding Python. + ''' + from multiprocessing.forking import set_executable + set_executable(executable) __all__ += ['set_executable'] Modified: python/trunk/Lib/multiprocessing/managers.py ============================================================================== --- python/trunk/Lib/multiprocessing/managers.py (original) +++ python/trunk/Lib/multiprocessing/managers.py Mon Sep 1 19:10:46 2008 @@ -371,7 +371,13 @@ self.id_to_obj[ident] = (obj, set(exposed), method_to_typeid) if ident not in self.id_to_refcount: - self.id_to_refcount[ident] = None + self.id_to_refcount[ident] = 0 + # increment the reference count immediately, to avoid + # this object being garbage collected before a Proxy + # object for it can be created. The caller of create() + # is responsible for doing a decref once the Proxy object + # has been created. + self.incref(c, ident) return ident, tuple(exposed) finally: self.mutex.release() @@ -393,11 +399,7 @@ def incref(self, c, ident): self.mutex.acquire() try: - try: - self.id_to_refcount[ident] += 1 - except TypeError: - assert self.id_to_refcount[ident] is None - self.id_to_refcount[ident] = 1 + self.id_to_refcount[ident] += 1 finally: self.mutex.release() @@ -634,6 +636,8 @@ token, self._serializer, manager=self, authkey=self._authkey, exposed=exp ) + conn = self._Client(token.address, authkey=self._authkey) + dispatch(conn, None, 'decref', (token.id,)) return proxy temp.__name__ = typeid setattr(cls, typeid, temp) @@ -726,10 +730,13 @@ elif kind == '#PROXY': exposed, token = result proxytype = self._manager._registry[token.typeid][-1] - return proxytype( + proxy = proxytype( token, self._serializer, manager=self._manager, authkey=self._authkey, exposed=exposed ) + conn = self._Client(token.address, authkey=self._authkey) + dispatch(conn, None, 'decref', (token.id,)) + return proxy raise convert_to_error(kind, result) def _getvalue(self): Modified: python/trunk/Lib/multiprocessing/sharedctypes.py ============================================================================== --- python/trunk/Lib/multiprocessing/sharedctypes.py (original) +++ python/trunk/Lib/multiprocessing/sharedctypes.py Mon Sep 1 19:10:46 2008 @@ -63,7 +63,7 @@ def Value(typecode_or_type, *args, **kwds): ''' - Return a synchronization wrapper for a RawValue + Return a synchronization wrapper for a Value ''' lock = kwds.pop('lock', None) if kwds: Modified: python/trunk/Lib/multiprocessing/synchronize.py ============================================================================== --- python/trunk/Lib/multiprocessing/synchronize.py (original) +++ python/trunk/Lib/multiprocessing/synchronize.py Mon Sep 1 19:10:46 2008 @@ -65,9 +65,7 @@ # class Semaphore(SemLock): - ''' - A semaphore object - ''' + def __init__(self, value=1): SemLock.__init__(self, SEMAPHORE, value, SEM_VALUE_MAX) @@ -86,9 +84,7 @@ # class BoundedSemaphore(Semaphore): - ''' - A bounded semaphore object - ''' + def __init__(self, value=1): SemLock.__init__(self, SEMAPHORE, value, value) @@ -105,9 +101,7 @@ # class Lock(SemLock): - ''' - A non-recursive lock object - ''' + def __init__(self): SemLock.__init__(self, SEMAPHORE, 1, 1) @@ -132,9 +126,7 @@ # class RLock(SemLock): - ''' - A recursive lock object - ''' + def __init__(self): SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1) @@ -160,9 +152,6 @@ # class Condition(object): - ''' - A condition object - ''' def __init__(self, lock=None): self._lock = lock or RLock() @@ -263,9 +252,7 @@ # class Event(object): - ''' - An event object - ''' + def __init__(self): self._cond = Condition(Lock()) self._flag = Semaphore(0) Modified: python/trunk/Lib/multiprocessing/util.py ============================================================================== --- python/trunk/Lib/multiprocessing/util.py (original) +++ python/trunk/Lib/multiprocessing/util.py Mon Sep 1 19:10:46 2008 @@ -54,7 +54,7 @@ def get_logger(): ''' - Return package logger -- if it does not already exist then it is created + Returns logger used by multiprocessing ''' global _logger From buildbot at python.org Mon Sep 1 19:13:34 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:13:34 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080901171334.BD4101E4005@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/81 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesse.noller,vinay.sajip BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Mon Sep 1 19:17:23 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 1 Sep 2008 19:17:23 +0200 (CEST) Subject: [Python-checkins] r66117 - in python/trunk/Lib/lib2to3: fixer_util.py fixes/fix_paren.py fixes/fix_raw_input.py fixes/fix_sys_exc.py refactor.py tests/test_fixers.py Message-ID: <20080901171723.370631E4005@bag.python.org> Author: benjamin.peterson Date: Mon Sep 1 19:17:22 2008 New Revision: 66117 Log: Merged revisions 65887,65889,65967-65968,65981 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r65887 | benjamin.peterson | 2008-08-19 17:45:04 -0500 (Tue, 19 Aug 2008) | 1 line allow the raw_input fixer to handle calls after the raw_input (ie. raw_input().split()) ........ r65889 | benjamin.peterson | 2008-08-19 18:11:03 -0500 (Tue, 19 Aug 2008) | 1 line no need for 2.4 compatibility now ........ r65967 | benjamin.peterson | 2008-08-21 18:43:37 -0500 (Thu, 21 Aug 2008) | 1 line allow a Call to have no arguments ........ r65968 | benjamin.peterson | 2008-08-21 18:45:13 -0500 (Thu, 21 Aug 2008) | 1 line add a fixer for sys.exc_info etc by Jeff Balogh #2357 ........ r65981 | benjamin.peterson | 2008-08-22 15:41:30 -0500 (Fri, 22 Aug 2008) | 1 line add a fixer to add parenthese for list and gen comps #2367 ........ Added: python/trunk/Lib/lib2to3/fixes/fix_paren.py - copied unchanged from r65981, /sandbox/trunk/2to3/lib2to3/fixes/fix_paren.py python/trunk/Lib/lib2to3/fixes/fix_sys_exc.py - copied unchanged from r65981, /sandbox/trunk/2to3/lib2to3/fixes/fix_sys_exc.py Modified: python/trunk/Lib/lib2to3/ (props changed) python/trunk/Lib/lib2to3/fixer_util.py python/trunk/Lib/lib2to3/fixes/fix_raw_input.py python/trunk/Lib/lib2to3/refactor.py python/trunk/Lib/lib2to3/tests/test_fixers.py Modified: python/trunk/Lib/lib2to3/fixer_util.py ============================================================================== --- python/trunk/Lib/lib2to3/fixer_util.py (original) +++ python/trunk/Lib/lib2to3/fixer_util.py Mon Sep 1 19:17:22 2008 @@ -51,12 +51,12 @@ def ArgList(args, lparen=LParen(), rparen=RParen()): """A parenthesised argument list, used by Call()""" - return Node(syms.trailer, - [lparen.clone(), - Node(syms.arglist, args), - rparen.clone()]) + node = Node(syms.trailer, [lparen.clone(), rparen.clone()]) + if args: + node.insert_child(1, Node(syms.arglist, args)) + return node -def Call(func_name, args, prefix=None): +def Call(func_name, args=None, prefix=None): """A function call""" node = Node(syms.power, [func_name, ArgList(args)]) if prefix is not None: Modified: python/trunk/Lib/lib2to3/fixes/fix_raw_input.py ============================================================================== --- python/trunk/Lib/lib2to3/fixes/fix_raw_input.py (original) +++ python/trunk/Lib/lib2to3/fixes/fix_raw_input.py Mon Sep 1 19:17:22 2008 @@ -8,7 +8,7 @@ class FixRawInput(fixer_base.BaseFix): PATTERN = """ - power< name='raw_input' trailer< '(' [any] ')' > > + power< name='raw_input' trailer< '(' [any] ')' > any* > """ def transform(self, node, results): Modified: python/trunk/Lib/lib2to3/refactor.py ============================================================================== --- python/trunk/Lib/lib2to3/refactor.py (original) +++ python/trunk/Lib/lib2to3/refactor.py Mon Sep 1 19:17:22 2008 @@ -69,13 +69,7 @@ return 2 # Set up logging handler - if sys.version_info < (2, 4): - hdlr = logging.StreamHandler() - fmt = logging.Formatter('%(name)s: %(message)s') - hdlr.setFormatter(fmt) - logging.root.addHandler(hdlr) - else: - logging.basicConfig(format='%(name)s: %(message)s', level=logging.INFO) + logging.basicConfig(format='%(name)s: %(message)s', level=logging.INFO) # Initialize the refactoring tool rt = RefactoringTool(fixer_dir, options) Modified: python/trunk/Lib/lib2to3/tests/test_fixers.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/test_fixers.py (original) +++ python/trunk/Lib/lib2to3/tests/test_fixers.py Mon Sep 1 19:17:22 2008 @@ -1340,6 +1340,21 @@ a = """x = input(foo(a) + 6)""" self.check(b, a) + def test_5(self): + b = """x = raw_input(invite).split()""" + a = """x = input(invite).split()""" + self.check(b, a) + + def test_6(self): + b = """x = raw_input(invite) . split ()""" + a = """x = input(invite) . split ()""" + self.check(b, a) + + def test_8(self): + b = "x = int(raw_input())" + a = "x = int(input())" + self.check(b, a) + class Test_funcattrs(FixerTestCase): fixer = "funcattrs" @@ -3330,6 +3345,98 @@ """ self.check_both(b, a) +class Test_sys_exc(FixerTestCase): + fixer = "sys_exc" + + def test_0(self): + b = "sys.exc_type" + a = "sys.exc_info()[0]" + self.check(b, a) + + def test_1(self): + b = "sys.exc_value" + a = "sys.exc_info()[1]" + self.check(b, a) + + def test_2(self): + b = "sys.exc_traceback" + a = "sys.exc_info()[2]" + self.check(b, a) + + def test_3(self): + b = "sys.exc_type # Foo" + a = "sys.exc_info()[0] # Foo" + self.check(b, a) + + def test_4(self): + b = "sys. exc_type" + a = "sys. exc_info()[0]" + self.check(b, a) + + def test_5(self): + b = "sys .exc_type" + a = "sys .exc_info()[0]" + self.check(b, a) + + +class Test_paren(FixerTestCase): + fixer = "paren" + + def test_0(self): + b = """[i for i in 1, 2 ]""" + a = """[i for i in (1, 2) ]""" + self.check(b, a) + + def test_1(self): + b = """[i for i in 1, 2, ]""" + a = """[i for i in (1, 2,) ]""" + self.check(b, a) + + def test_2(self): + b = """[i for i in 1, 2 ]""" + a = """[i for i in (1, 2) ]""" + self.check(b, a) + + def test_3(self): + b = """[i for i in 1, 2 if i]""" + a = """[i for i in (1, 2) if i]""" + self.check(b, a) + + def test_4(self): + b = """[i for i in 1, 2 ]""" + a = """[i for i in (1, 2) ]""" + self.check(b, a) + + def test_5(self): + b = """(i for i in 1, 2)""" + a = """(i for i in (1, 2))""" + self.check(b, a) + + def test_6(self): + b = """(i for i in 1 ,2 if i)""" + a = """(i for i in (1 ,2) if i)""" + self.check(b, a) + + def test_unchanged_0(self): + s = """[i for i in (1, 2)]""" + self.unchanged(s) + + def test_unchanged_1(self): + s = """[i for i in foo()]""" + self.unchanged(s) + + def test_unchanged_2(self): + s = """[i for i in (1, 2) if nothing]""" + self.unchanged(s) + + def test_unchanged_3(self): + s = """(i for i in (1, 2))""" + self.unchanged(s) + + def test_unchanged_4(self): + s = """[i for i in m]""" + self.unchanged(s) + if __name__ == "__main__": import __main__ From buildbot at python.org Mon Sep 1 19:29:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:29:15 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu trunk Message-ID: <20080901172915.352DE1E4005@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%20trunk/builds/359 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 19:30:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:30:36 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080901173036.814A71E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/242 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 19:33:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:33:33 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080901173334.13DAC1E4005@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1378 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesse.noller,vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/threading.py", line 524, in __bootstrap_inner self.run() File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/threading.py", line 479, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 19:38:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 17:38:46 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080901173846.C80B61E4005@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/172 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 1 19:44:14 2008 From: python-checkins at python.org (vinay.sajip) Date: Mon, 1 Sep 2008 19:44:14 +0200 (CEST) Subject: [Python-checkins] r66118 - python/trunk/Doc/library/logging.rst Message-ID: <20080901174414.720C01E4005@bag.python.org> Author: vinay.sajip Date: Mon Sep 1 19:44:14 2008 New Revision: 66118 Log: Bug #3738: Documentation is now more accurate in describing handler close methods. Modified: python/trunk/Doc/library/logging.rst Modified: python/trunk/Doc/library/logging.rst ============================================================================== --- python/trunk/Doc/library/logging.rst (original) +++ python/trunk/Doc/library/logging.rst Mon Sep 1 19:44:14 2008 @@ -1504,8 +1504,10 @@ .. method:: Handler.close() - Tidy up any resources used by the handler. This version does nothing and is - intended to be implemented by subclasses. + Tidy up any resources used by the handler. This version does no output but + removes the handler from an internal list of handlers which is closed when + :func:`shutdown` is called. Subclasses should ensure that this gets called + from overridden :meth:`close` methods. .. method:: Handler.handle(record) @@ -1567,7 +1569,7 @@ Flushes the stream by calling its :meth:`flush` method. Note that the :meth:`close` method is inherited from :class:`Handler` and so does - nothing, so an explicit :meth:`flush` call may be needed at times. + no output, so an explicit :meth:`flush` call may be needed at times. FileHandler @@ -1887,7 +1889,7 @@ source of event log entries. However, if you do this, you will not be able to see the events as you intended in the Event Log Viewer - it needs to be able to access the registry to get the .dll name. The current version does - not do this (in fact it doesn't do anything). + not do this. .. method:: emit(record) From buildbot at python.org Mon Sep 1 20:18:19 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 18:18:19 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080901181819.31FED1E4005@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/473 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Mon Sep 1 21:52:00 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Mon, 1 Sep 2008 21:52:00 +0200 (CEST) Subject: [Python-checkins] r66119 - in python/trunk: Lib/test/string_tests.py Misc/NEWS Objects/stringobject.c Message-ID: <20080901195200.CB0031E4005@bag.python.org> Author: amaury.forgeotdarc Date: Mon Sep 1 21:52:00 2008 New Revision: 66119 Log: Issue #3751: str.rpartition would perform a left-partition when called with a unicode argument. will backport. Modified: python/trunk/Lib/test/string_tests.py python/trunk/Misc/NEWS python/trunk/Objects/stringobject.c Modified: python/trunk/Lib/test/string_tests.py ============================================================================== --- python/trunk/Lib/test/string_tests.py (original) +++ python/trunk/Lib/test/string_tests.py Mon Sep 1 21:52:00 2008 @@ -1117,6 +1117,9 @@ self.checkraises(ValueError, S, 'partition', '') self.checkraises(TypeError, S, 'partition', None) + # mixed use of str and unicode + self.assertEqual('a/b/c'.partition(u'/'), ('a', '/', 'b/c')) + def test_rpartition(self): self.checkequal(('this is the rparti', 'ti', 'on method'), @@ -1132,6 +1135,8 @@ self.checkraises(ValueError, S, 'rpartition', '') self.checkraises(TypeError, S, 'rpartition', None) + # mixed use of str and unicode + self.assertEqual('a/b/c'.rpartition(u'/'), ('a/b', '/', 'c')) class MixinStrStringUserStringTest: # Additional tests for 8bit strings, i.e. str, UserString and Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Sep 1 21:52:00 2008 @@ -12,6 +12,9 @@ Core and Builtins ----------------- +- Issue #3751: str.rpartition would perform a left-partition when called with + a unicode argument. + - Issue #3683: Fix compilation when --without-threads is given. - Issue #3668: Fix a memory leak with the "s*" argument parser in Modified: python/trunk/Objects/stringobject.c ============================================================================== --- python/trunk/Objects/stringobject.c (original) +++ python/trunk/Objects/stringobject.c Mon Sep 1 21:52:00 2008 @@ -1638,7 +1638,7 @@ } #ifdef Py_USING_UNICODE else if (PyUnicode_Check(sep_obj)) - return PyUnicode_Partition((PyObject *) self, sep_obj); + return PyUnicode_RPartition((PyObject *) self, sep_obj); #endif else if (PyObject_AsCharBuffer(sep_obj, &sep, &sep_len)) return NULL; From python-checkins at python.org Mon Sep 1 22:05:09 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Mon, 1 Sep 2008 22:05:09 +0200 (CEST) Subject: [Python-checkins] r66121 - in python/branches/release25-maint: Lib/test/string_tests.py Misc/NEWS Objects/stringobject.c Message-ID: <20080901200509.65FD91E4005@bag.python.org> Author: amaury.forgeotdarc Date: Mon Sep 1 22:05:08 2008 New Revision: 66121 Log: Issue #3751: str.rpartition would perform a left-partition when called with a unicode argument. Backport of r66119 Modified: python/branches/release25-maint/Lib/test/string_tests.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Objects/stringobject.c Modified: python/branches/release25-maint/Lib/test/string_tests.py ============================================================================== --- python/branches/release25-maint/Lib/test/string_tests.py (original) +++ python/branches/release25-maint/Lib/test/string_tests.py Mon Sep 1 22:05:08 2008 @@ -1066,6 +1066,9 @@ self.checkraises(ValueError, S, 'partition', '') self.checkraises(TypeError, S, 'partition', None) + # mixed use of str and unicode + self.assertEqual('a/b/c'.partition(u'/'), ('a', '/', 'b/c')) + def test_rpartition(self): self.checkequal(('this is the rparti', 'ti', 'on method'), @@ -1081,6 +1084,8 @@ self.checkraises(ValueError, S, 'rpartition', '') self.checkraises(TypeError, S, 'rpartition', None) + # mixed use of str and unicode + self.assertEqual('a/b/c'.rpartition(u'/'), ('a/b', '/', 'c')) class MixinStrStringUserStringTest: # Additional tests for 8bit strings, i.e. str, UserString and Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Mon Sep 1 22:05:08 2008 @@ -12,6 +12,9 @@ Core and builtins ----------------- +- Issue #3751: str.rpartition would perform a left-partition when called with + a unicode argument. + - Issue #3537: Fix an assertion failure when an empty but presized dict object was stored in the freelist. Modified: python/branches/release25-maint/Objects/stringobject.c ============================================================================== --- python/branches/release25-maint/Objects/stringobject.c (original) +++ python/branches/release25-maint/Objects/stringobject.c Mon Sep 1 22:05:08 2008 @@ -1595,7 +1595,7 @@ } #ifdef Py_USING_UNICODE else if (PyUnicode_Check(sep_obj)) - return PyUnicode_Partition((PyObject *) self, sep_obj); + return PyUnicode_RPartition((PyObject *) self, sep_obj); #endif else if (PyObject_AsCharBuffer(sep_obj, &sep, &sep_len)) return NULL; From buildbot at python.org Mon Sep 1 22:38:09 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 20:38:09 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080901203809.75D931E4005@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/499 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: amaury.forgeotdarc,vinay.sajip BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Mon Sep 1 22:48:17 2008 From: python-checkins at python.org (jesus.cea) Date: Mon, 1 Sep 2008 22:48:17 +0200 (CEST) Subject: [Python-checkins] r66123 - python/trunk/Lib/bsddb/test/test_all.py Message-ID: <20080901204817.08EC21E4005@bag.python.org> Author: jesus.cea Date: Mon Sep 1 22:48:16 2008 New Revision: 66123 Log: In Python3.0, "test.test_support" is renamed to "test.support". Modified: python/trunk/Lib/bsddb/test/test_all.py Modified: python/trunk/Lib/bsddb/test/test_all.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_all.py (original) +++ python/trunk/Lib/bsddb/test/test_all.py Mon Sep 1 22:48:16 2008 @@ -356,7 +356,10 @@ try: from bsddb3 import test_support except ImportError: - from test import test_support + if sys.version_info[0] < 3 : + from test import test_support + else : + from test import support as test_support try: From buildbot at python.org Mon Sep 1 22:51:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 20:51:17 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 2.5 Message-ID: <20080901205117.2DB3A1E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%202.5/builds/24 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 22:58:42 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 20:58:42 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080901205842.3139E1E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/244 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 23:17:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 21:17:08 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080901211708.E68341E4005@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/474 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_bsddb test_dbm ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_whichdb (test.test_dbm.WhichDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 122, in test_whichdb f = module.open(_fname, 'c') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_access (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 88, in test_anydbm_access self.init_db() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_creation (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 61, in test_anydbm_creation f = dbm.open(_fname, 'c') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_keys (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 82, in test_anydbm_keys self.init_db() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_modification (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 69, in test_anydbm_modification self.init_db() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_read (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 76, in test_anydbm_read self.init_db() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 23:20:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 21:20:01 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 2.5 Message-ID: <20080901212001.5736A1E4005@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%202.5/builds/18 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Mon Sep 1 23:28:47 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 21:28:47 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20080901212847.90D911E4005@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/173 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: jesus.cea BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 00:04:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 22:04:22 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080901220422.CC0041E400E@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/475 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 00:09:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 22:09:15 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080901220915.9E3061E4005@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/464 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_bsddb test_dbm ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_contains (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_for_cursor_memleak (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_iteritems_while_modifying_values (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_len (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 20, in setUp self.f = self.do_open(self.fname, self.openflag, cachesize=32768) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_bsddb.py", line 17, in do_open return bsddb.StringValues(bsddb.StringKeys(self.openmethod[0](*args, **kw))) AttributeError: 'module' object has no attribute 'StringValues' ====================================================================== ERROR: test_whichdb (test.test_dbm.WhichDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 122, in test_whichdb f = module.open(_fname, 'c') File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_access (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 88, in test_anydbm_access self.init_db() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_creation (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 61, in test_anydbm_creation f = dbm.open(_fname, 'c') File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_keys (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 82, in test_anydbm_keys self.init_db() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_modification (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 69, in test_anydbm_modification self.init_db() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' ====================================================================== ERROR: test_anydbm_read (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 76, in test_anydbm_read self.init_db() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_dbm.py", line 46, in init_db f = dbm.open(_fname, 'n') File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/__init__.py", line 88, in open return mod.open(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/dbm/bsd.py", line 11, in open return bsddb.hashopen(file, flag, mode) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 345, in hashopen e = _openDBEnv(cachesize) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/__init__.py", line 395, in _openDBEnv e = db.DBEnv() File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/bsddb/test/test_all.py", line 302, in __init__ self._dbenv = bsddb._db.DBEnv_orig(*args, **kwargs) AttributeError: 'NoneType' object has no attribute '_db' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 01:12:58 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 2 Sep 2008 01:12:58 +0200 (CEST) Subject: [Python-checkins] r66127 - in python/trunk: Doc/library/threading.rst Lib/test/test_py3kwarn.py Lib/threading.py Misc/NEWS Message-ID: <20080901231259.1F2881E4010@bag.python.org> Author: benjamin.peterson Date: Tue Sep 2 01:12:58 2008 New Revision: 66127 Log: remove py3k warnings about the threading api; update docs Reviewer: Benjamin Peterson Modified: python/trunk/Doc/library/threading.rst python/trunk/Lib/test/test_py3kwarn.py python/trunk/Lib/threading.py python/trunk/Misc/NEWS Modified: python/trunk/Doc/library/threading.rst ============================================================================== --- python/trunk/Doc/library/threading.rst (original) +++ python/trunk/Doc/library/threading.rst Tue Sep 2 01:12:58 2008 @@ -14,11 +14,12 @@ .. note:: - Some ``camelCase`` names have been converted to their underscored - equivalents. Others have been replaced by properties. Using the old methods - in 2.6 will trigger a :exc:`DeprecationWarning` when Python is run with the - :option:`-3` flag and a full :exc:`DeprecationWarning` in 3.0. The old names - will be removed early in the 3.x series. + Starting with Python 2.6, this module provides PEP 8 compliant aliases and + properties to replace the ``camelCase`` names that were inspired by Java's + threading API. This updated API is compatible with that of the + :mod:`multiprocessing` module. However, no schedule has been set for the + deprecation of the ``camelCase`` names and they remain fully supported in + both Python 2.x and 3.x. This module defines the following functions and objects: Modified: python/trunk/Lib/test/test_py3kwarn.py ============================================================================== --- python/trunk/Lib/test/test_py3kwarn.py (original) +++ python/trunk/Lib/test/test_py3kwarn.py Tue Sep 2 01:12:58 2008 @@ -272,41 +272,6 @@ def __hash__(self): pass self.assertEqual(len(w.warnings), 0) - def test_pep8ified_threading(self): - import threading - - t = threading.Thread() - with catch_warning() as w: - msg = "isDaemon() is deprecated in favor of the " \ - "Thread.daemon property" - self.assertWarning(t.isDaemon(), w, msg) - w.reset() - msg = "setDaemon() is deprecated in favor of the " \ - "Thread.daemon property" - self.assertWarning(t.setDaemon(True), w, msg) - w.reset() - msg = "getName() is deprecated in favor of the " \ - "Thread.name property" - self.assertWarning(t.getName(), w, msg) - w.reset() - msg = "setName() is deprecated in favor of the " \ - "Thread.name property" - self.assertWarning(t.setName("name"), w, msg) - w.reset() - msg = "isAlive() is deprecated in favor of is_alive()" - self.assertWarning(t.isAlive(), w, msg) - w.reset() - e = threading.Event() - msg = "isSet() is deprecated in favor of is_set()" - self.assertWarning(e.isSet(), w, msg) - w.reset() - msg = "currentThread() is deprecated in favor of current_thread()" - self.assertWarning(threading.currentThread(), w, msg) - w.reset() - msg = "activeCount() is deprecated in favor of active_count()" - self.assertWarning(threading.activeCount(), w, msg) - - class TestStdlibRemovals(unittest.TestCase): Modified: python/trunk/Lib/threading.py ============================================================================== --- python/trunk/Lib/threading.py (original) +++ python/trunk/Lib/threading.py Tue Sep 2 01:12:58 2008 @@ -15,6 +15,17 @@ from traceback import format_exc as _format_exc from collections import deque +# Note regarding PEP 8 compliant aliases +# This threading model was originally inspired by Java, and inherited +# the convention of camelCase function and method names from that +# language. While those names are not in any imminent danger of being +# deprecated, starting with Python 2.6, the module now provides a +# PEP 8 compliant alias for any such method name. +# Using the new PEP 8 compliant names also facilitates substitution +# with the multiprocessing module, which doesn't provide the old +# Java inspired names. + + # Rename some stuff so "from threading import *" is safe __all__ = ['activeCount', 'active_count', 'Condition', 'currentThread', 'current_thread', 'enumerate', 'Event', @@ -33,19 +44,6 @@ warnings.filterwarnings('ignore', category=DeprecationWarning, module='threading', message='sys.exc_clear') - -def _old_api(callable, old_name): - if not _sys.py3kwarning: - return callable - @wraps(callable) - def old(*args, **kwargs): - warnings.warnpy3k("{0}() is deprecated in favor of {1}()" - .format(old_name, callable.__name__), - stacklevel=3) - return callable(*args, **kwargs) - old.__name__ = old_name - return old - # Debug support (adapted from ihooks.py). # All the major classes here derive from _Verbose. We force that to # be a new-style class so that all the major classes here are new-style. @@ -287,10 +285,10 @@ except ValueError: pass - def notify_all(self): + def notifyAll(self): self.notify(len(self.__waiters)) - notifyAll = _old_api(notify_all, "notifyAll") + notify_all = notifyAll def Semaphore(*args, **kwargs): @@ -368,10 +366,10 @@ self.__cond = Condition(Lock()) self.__flag = False - def is_set(self): + def isSet(self): return self.__flag - isSet = _old_api(is_set, "isSet") + is_set = isSet def set(self): self.__cond.acquire() @@ -666,11 +664,11 @@ assert self.__initialized, "Thread.__init__() not called" return self.__ident - def is_alive(self): + def isAlive(self): assert self.__initialized, "Thread.__init__() not called" return self.__started.is_set() and not self.__stopped - isAlive = _old_api(is_alive, "isAlive") + is_alive = isAlive @property def daemon(self): @@ -686,23 +684,15 @@ self.__daemonic = daemonic def isDaemon(self): - warnings.warnpy3k("isDaemon() is deprecated in favor of the " \ - "Thread.daemon property") return self.daemon def setDaemon(self, daemonic): - warnings.warnpy3k("setDaemon() is deprecated in favor of the " \ - "Thread.daemon property") self.daemon = daemonic def getName(self): - warnings.warnpy3k("getName() is deprecated in favor of the " \ - "Thread.name property") return self.name def setName(self, name): - warnings.warnpy3k("setName() is deprecated in favor of the " \ - "Thread.name property") self.name = name # The timer class was contributed by Itamar Shtull-Trauring @@ -803,22 +793,22 @@ # Global API functions -def current_thread(): +def currentThread(): try: return _active[_get_ident()] except KeyError: ##print "current_thread(): no current thread for", _get_ident() return _DummyThread() -currentThread = _old_api(current_thread, "currentThread") +current_thread = currentThread -def active_count(): +def activeCount(): _active_limbo_lock.acquire() count = len(_active) + len(_limbo) _active_limbo_lock.release() return count -activeCount = _old_api(active_count, "activeCount") +active_count = activeCount def enumerate(): _active_limbo_lock.acquire() Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 2 01:12:58 2008 @@ -53,6 +53,8 @@ Library ------- +- The deprecation warnings for the old camelCase threading API were removed. + - logging: fixed lack of use of encoding attribute specified on a stream. - Silenced a trivial compiler warning in the sqlite module. From python-checkins at python.org Tue Sep 2 01:14:19 2008 From: python-checkins at python.org (guilherme.polo) Date: Tue, 2 Sep 2008 01:14:19 +0200 (CEST) Subject: [Python-checkins] r66128 - in sandbox/trunk/ttk-gsoc/src: 2.x/test/test_other_widgets.py 2.x/ttk.py 3.x/test/test_other_widgets.py 3.x/ttk.py Message-ID: <20080901231419.728B11E4005@bag.python.org> Author: guilherme.polo Date: Tue Sep 2 01:14:19 2008 New Revision: 66128 Log: Panedwindow.forget works again; Fixed custom Scale.configure so it works when Tkinter calls it through __setitem__; Tests added for the Scale and Panedwindow widgets. Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/2.x/ttk.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py Tue Sep 2 01:14:19 2008 @@ -279,9 +279,203 @@ self.failUnlessEqual(self.entry.state(), ()) +class PanedwindowTest(unittest.TestCase): + + def setUp(self): + self.paned = ttk.Panedwindow() + + def tearDown(self): + self.paned.destroy() + + + def test_add(self): + # attempt to add a child that is not a direct child of the paned window + label = ttk.Label(self.paned) + child = ttk.Label(label) + self.failUnlessRaises(Tkinter.TclError, self.paned.add, child) + label.destroy() + child.destroy() + # another attempt + label = ttk.Label() + child = ttk.Label(label) + self.failUnlessRaises(Tkinter.TclError, self.paned.add, child) + child.destroy() + label.destroy() + + good_child = ttk.Label() + self.paned.add(good_child) + # re-adding a child is not accepted + self.failUnlessRaises(Tkinter.TclError, self.paned.add, good_child) + + other_child = ttk.Label(self.paned) + self.paned.add(other_child) + self.failUnlessEqual(self.paned.pane(0), self.paned.pane(1)) + self.failUnlessRaises(Tkinter.TclError, self.paned.pane, 2) + good_child.destroy() + other_child.destroy() + self.failUnlessRaises(Tkinter.TclError, self.paned.pane, 0) + + + def test_forget(self): + self.failUnlessRaises(Tkinter.TclError, self.paned.forget, None) + self.failUnlessRaises(Tkinter.TclError, self.paned.forget, 0) + + self.paned.add(ttk.Label()) + self.paned.forget(0) + self.failUnlessRaises(Tkinter.TclError, self.paned.forget, 0) + + + def test_insert(self): + self.failUnlessRaises(Tkinter.TclError, self.paned.insert, None, 0) + self.failUnlessRaises(Tkinter.TclError, self.paned.insert, 0, None) + self.failUnlessRaises(Tkinter.TclError, self.paned.insert, 0, 0) + + child = ttk.Label() + child2 = ttk.Label() + child3 = ttk.Label() + + self.failUnlessRaises(Tkinter.TclError, self.paned.insert, 0, child) + + self.paned.insert('end', child2) + self.paned.insert(0, child) + self.failUnlessEqual(self.paned.panes(), (str(child), str(child2))) + + self.paned.insert(0, child2) + self.failUnlessEqual(self.paned.panes(), (str(child2), str(child))) + + self.paned.insert('end', child3) + self.failUnlessEqual(self.paned.panes(), + (str(child2), str(child), str(child3))) + + # reinserting a child should move it to its current position + panes = self.paned.panes() + self.paned.insert('end', child3) + self.failUnlessEqual(panes, self.paned.panes()) + + # moving child3 to child2 position should result in child2 ending up + # in previous child position and child ending up in previous child3 + # position + self.paned.insert(child2, child3) + self.failUnlessEqual(self.paned.panes(), + (str(child3), str(child2), str(child))) + + + def test_pane(self): + self.failUnlessRaises(Tkinter.TclError, self.paned.pane, 0) + + child = ttk.Label() + self.paned.add(child) + self.failUnless(isinstance(self.paned.pane(0), dict)) + self.failUnlessEqual(self.paned.pane(0, weight=None), 0) + self.failUnlessEqual(self.paned.pane(0), self.paned.pane(str(child))) + + self.failUnlessRaises(Tkinter.TclError, self.paned.pane, 0, + badoption='somevalue') + + + def test_sashpos(self): + self.failUnlessRaises(Tkinter.TclError, self.paned.sashpos, None) + self.failUnlessRaises(Tkinter.TclError, self.paned.sashpos, '') + self.failUnlessRaises(Tkinter.TclError, self.paned.sashpos, 0) + + child = ttk.Label(self.paned, text='a') + self.paned.add(child, weight=1) + self.failUnlessRaises(Tkinter.TclError, self.paned.sashpos, 0) + child2 = ttk.Label(self.paned, text='b') + self.paned.add(child2) + self.failUnlessRaises(Tkinter.TclError, self.paned.sashpos, 1) + + self.paned.pack(expand=True, fill='both') + self.paned.wait_visibility() + + curr_pos = self.paned.sashpos(0) + self.paned.sashpos(0, 1000) + self.failUnless(curr_pos != self.paned.sashpos(0)) + self.failUnless(isinstance(self.paned.sashpos(0), int)) + + +class RadiobuttonTest(unittest.TestCase): pass + + +class ScaleTest(unittest.TestCase): + + def setUp(self): + self.scale = ttk.Scale() + self.scale.pack() + self.scale.update() + + def tearDown(self): + self.scale.destroy() + + + def test_custom_event(self): + failure = [1, 1, 1] # will need to be empty + def cb_test(event): + failure.pop() + + funcid = self.scale.bind('<>', cb_test) + + self.scale['from'] = 10 + self.scale['from_'] = 10 + self.scale['to'] = 3 + + self.failIf(failure) + + failure = [1, 1, 1] + self.scale.configure(from_=2, to=5) + self.scale.configure(from_=0, to=-2) + self.scale.configure(to=10) + + self.failIf(failure) + + + def test_get(self): + scale_width = self.scale.winfo_width() + self.failUnlessEqual(self.scale.get(scale_width, 0), self.scale['to']) + + self.failUnlessEqual(self.scale.get(0, 0), self.scale['from']) + self.failUnlessEqual(self.scale.get(), self.scale['value']) + self.scale['value'] = 30 + self.failUnlessEqual(self.scale.get(), self.scale['value']) + + self.failUnlessRaises(Tkinter.TclError, self.scale.get, '', 0) + self.failUnlessRaises(Tkinter.TclError, self.scale.get, 0, '') + + + def test_set(self): + # set restricts the max/min values according to the current range + max = self.scale['to'] + new_max = max + 10 + self.scale.set(new_max) + self.failUnlessEqual(self.scale.get(), max) + min = self.scale['from'] + self.scale.set(min - 1) + self.failUnlessEqual(self.scale.get(), min) + + # changing directly the variable doesn't impose this limitation tho + var = Tkinter.DoubleVar() + self.scale['variable'] = var + var.set(max + 5) + self.failUnlessEqual(self.scale.get(), var.get()) + self.failUnlessEqual(self.scale.get(), max + 5) + del var + + # the same happens with the value option + self.scale['value'] = max + 10 + self.failUnlessEqual(self.scale.get(), max + 10) + self.failUnlessEqual(self.scale.get(), self.scale['value']) + + # nevertheless, note that the max/min values we can get specifying + # x, y coords are the ones according to the current range + self.failUnlessEqual(self.scale.get(0, 0), min) + self.failUnlessEqual(self.scale.get(self.scale.winfo_width(), 0), max) + + self.failUnlessRaises(Tkinter.TclError, self.scale.set, None) + + def test_main(): - support.run(WidgetTest, ButtonTest, #CheckbuttonTest, - ComboboxTest, EntryTest) + support.run(WidgetTest, ButtonTest, #CheckbuttonTest, RadiobuttonTest, + ComboboxTest, EntryTest, PanedwindowTest, ScaleTest) if __name__ == "__main__": test_main() Modified: sandbox/trunk/ttk-gsoc/src/2.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/ttk.py Tue Sep 2 01:14:19 2008 @@ -12,7 +12,7 @@ of the widgets appearance lies at Themes. """ -__version__ = "0.2.3" +__version__ = "0.2.4" __author__ = "Guilherme Polo " @@ -955,6 +955,9 @@ Widget.__init__(self, master, "ttk::panedwindow", kw) + forget = Tkinter.PanedWindow.forget # overrides Pack.forget + + def insert(self, pos, child, **kw): """Inserts a pane at the specified positions. @@ -1075,11 +1078,13 @@ Widget.__init__(self, master, "ttk::scale", kw) - def configure(self, **kw): + def configure(self, cnf=None, **kw): """Modify or query scale options. - Changing "from", "from_" or "to" options generates a - <> event.""" + Setting a value for any of the "from", "from_" or "to" options + generates a <> event.""" + if cnf: + kw.update(cnf) Widget.configure(self, **kw) if any(['from' in kw, 'from_' in kw, 'to' in kw]): self.event_generate('<>') Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py Tue Sep 2 01:14:19 2008 @@ -279,9 +279,203 @@ self.failUnlessEqual(self.entry.state(), ()) +class PanedwindowTest(unittest.TestCase): + + def setUp(self): + self.paned = ttk.Panedwindow() + + def tearDown(self): + self.paned.destroy() + + + def test_add(self): + # attempt to add a child that is not a direct child of the paned window + label = ttk.Label(self.paned) + child = ttk.Label(label) + self.failUnlessRaises(tkinter.TclError, self.paned.add, child) + label.destroy() + child.destroy() + # another attempt + label = ttk.Label() + child = ttk.Label(label) + self.failUnlessRaises(tkinter.TclError, self.paned.add, child) + child.destroy() + label.destroy() + + good_child = ttk.Label() + self.paned.add(good_child) + # re-adding a child is not accepted + self.failUnlessRaises(tkinter.TclError, self.paned.add, good_child) + + other_child = ttk.Label(self.paned) + self.paned.add(other_child) + self.failUnlessEqual(self.paned.pane(0), self.paned.pane(1)) + self.failUnlessRaises(tkinter.TclError, self.paned.pane, 2) + good_child.destroy() + other_child.destroy() + self.failUnlessRaises(tkinter.TclError, self.paned.pane, 0) + + + def test_forget(self): + self.failUnlessRaises(tkinter.TclError, self.paned.forget, None) + self.failUnlessRaises(tkinter.TclError, self.paned.forget, 0) + + self.paned.add(ttk.Label()) + self.paned.forget(0) + self.failUnlessRaises(tkinter.TclError, self.paned.forget, 0) + + + def test_insert(self): + self.failUnlessRaises(tkinter.TclError, self.paned.insert, None, 0) + self.failUnlessRaises(tkinter.TclError, self.paned.insert, 0, None) + self.failUnlessRaises(tkinter.TclError, self.paned.insert, 0, 0) + + child = ttk.Label() + child2 = ttk.Label() + child3 = ttk.Label() + + self.failUnlessRaises(tkinter.TclError, self.paned.insert, 0, child) + + self.paned.insert('end', child2) + self.paned.insert(0, child) + self.failUnlessEqual(self.paned.panes(), (str(child), str(child2))) + + self.paned.insert(0, child2) + self.failUnlessEqual(self.paned.panes(), (str(child2), str(child))) + + self.paned.insert('end', child3) + self.failUnlessEqual(self.paned.panes(), + (str(child2), str(child), str(child3))) + + # reinserting a child should move it to its current position + panes = self.paned.panes() + self.paned.insert('end', child3) + self.failUnlessEqual(panes, self.paned.panes()) + + # moving child3 to child2 position should result in child2 ending up + # in previous child position and child ending up in previous child3 + # position + self.paned.insert(child2, child3) + self.failUnlessEqual(self.paned.panes(), + (str(child3), str(child2), str(child))) + + + def test_pane(self): + self.failUnlessRaises(tkinter.TclError, self.paned.pane, 0) + + child = ttk.Label() + self.paned.add(child) + self.failUnless(isinstance(self.paned.pane(0), dict)) + self.failUnlessEqual(self.paned.pane(0, weight=None), 0) + self.failUnlessEqual(self.paned.pane(0), self.paned.pane(str(child))) + + self.failUnlessRaises(tkinter.TclError, self.paned.pane, 0, + badoption='somevalue') + + + def test_sashpos(self): + self.failUnlessRaises(tkinter.TclError, self.paned.sashpos, None) + self.failUnlessRaises(tkinter.TclError, self.paned.sashpos, '') + self.failUnlessRaises(tkinter.TclError, self.paned.sashpos, 0) + + child = ttk.Label(self.paned, text='a') + self.paned.add(child, weight=1) + self.failUnlessRaises(tkinter.TclError, self.paned.sashpos, 0) + child2 = ttk.Label(self.paned, text='b') + self.paned.add(child2) + self.failUnlessRaises(tkinter.TclError, self.paned.sashpos, 1) + + self.paned.pack(expand=True, fill='both') + self.paned.wait_visibility() + + curr_pos = self.paned.sashpos(0) + self.paned.sashpos(0, 1000) + self.failUnless(curr_pos != self.paned.sashpos(0)) + self.failUnless(isinstance(self.paned.sashpos(0), int)) + + +class RadiobuttonTest(unittest.TestCase): pass + + +class ScaleTest(unittest.TestCase): + + def setUp(self): + self.scale = ttk.Scale() + self.scale.pack() + self.scale.update() + + def tearDown(self): + self.scale.destroy() + + + def test_custom_event(self): + failure = [1, 1, 1] # will need to be empty + def cb_test(event): + failure.pop() + + funcid = self.scale.bind('<>', cb_test) + + self.scale['from'] = 10 + self.scale['from_'] = 10 + self.scale['to'] = 3 + + self.failIf(failure) + + failure = [1, 1, 1] + self.scale.configure(from_=2, to=5) + self.scale.configure(from_=0, to=-2) + self.scale.configure(to=10) + + self.failIf(failure) + + + def test_get(self): + scale_width = self.scale.winfo_width() + self.failUnlessEqual(self.scale.get(scale_width, 0), self.scale['to']) + + self.failUnlessEqual(self.scale.get(0, 0), self.scale['from']) + self.failUnlessEqual(self.scale.get(), self.scale['value']) + self.scale['value'] = 30 + self.failUnlessEqual(self.scale.get(), self.scale['value']) + + self.failUnlessRaises(tkinter.TclError, self.scale.get, '', 0) + self.failUnlessRaises(tkinter.TclError, self.scale.get, 0, '') + + + def test_set(self): + # set restricts the max/min values according to the current range + max = self.scale['to'] + new_max = max + 10 + self.scale.set(new_max) + self.failUnlessEqual(self.scale.get(), max) + min = self.scale['from'] + self.scale.set(min - 1) + self.failUnlessEqual(self.scale.get(), min) + + # changing directly the variable doesn't impose this limitation tho + var = tkinter.DoubleVar() + self.scale['variable'] = var + var.set(max + 5) + self.failUnlessEqual(self.scale.get(), var.get()) + self.failUnlessEqual(self.scale.get(), max + 5) + del var + + # the same happens with the value option + self.scale['value'] = max + 10 + self.failUnlessEqual(self.scale.get(), max + 10) + self.failUnlessEqual(self.scale.get(), self.scale['value']) + + # nevertheless, note that the max/min values we can get specifying + # x, y coords are the ones according to the current range + self.failUnlessEqual(self.scale.get(0, 0), min) + self.failUnlessEqual(self.scale.get(self.scale.winfo_width(), 0), max) + + self.failUnlessRaises(tkinter.TclError, self.scale.set, None) + + def test_main(): - support.run(WidgetTest, ButtonTest, #CheckbuttonTest, - ComboboxTest, EntryTest) + support.run(WidgetTest, ButtonTest, #CheckbuttonTest, RadiobuttonTest, + ComboboxTest, EntryTest, PanedwindowTest, ScaleTest) if __name__ == "__main__": test_main() Modified: sandbox/trunk/ttk-gsoc/src/3.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Tue Sep 2 01:14:19 2008 @@ -12,7 +12,7 @@ of the widgets appearance lies at Themes. """ -__version__ = "0.2.3" +__version__ = "0.2.4" __author__ = "Guilherme Polo " @@ -955,6 +955,9 @@ Widget.__init__(self, master, "ttk::panedwindow", kw) + forget = tkinter.PanedWindow.forget # overrides Pack.forget + + def insert(self, pos, child, **kw): """Inserts a pane at the specified positions. @@ -1075,11 +1078,13 @@ Widget.__init__(self, master, "ttk::scale", kw) - def configure(self, **kw): + def configure(self, cnf=None, **kw): """Modify or query scale options. - Changing "from", "from_" or "to" options generates a - <> event.""" + Setting a value for any of the "from", "from_" or "to" options + generates a <> event.""" + if cnf: + kw.update(cnf) Widget.configure(self, **kw) if any(['from' in kw, 'from_' in kw, 'to' in kw]): self.event_generate('<>') From buildbot at python.org Tue Sep 2 01:21:42 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 23:21:42 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080901232142.C5BAE1E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/246 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 01:28:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 23:28:16 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI trunk Message-ID: <20080901232816.422AA1E4016@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%20trunk/builds/139 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 01:44:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 01 Sep 2008 23:44:23 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080901234424.1B2051E4008@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/226 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 02:06:20 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 00:06:20 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu trunk Message-ID: <20080902000620.5868B1E4005@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%20trunk/builds/784 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 02:33:13 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 00:33:13 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080902003314.10E271E4005@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3875 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 03:01:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 01:01:23 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080902010123.9EA971E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/248 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,jesus.cea BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 03:04:33 2008 From: python-checkins at python.org (guilherme.polo) Date: Tue, 2 Sep 2008 03:04:33 +0200 (CEST) Subject: [Python-checkins] r66133 - in sandbox/trunk/ttk-gsoc/src: 2.x/test/test_other_widgets.py 3.x/test/test_other_widgets.py Message-ID: <20080902010433.8DBA81E4005@bag.python.org> Author: guilherme.polo Date: Tue Sep 2 03:04:33 2008 New Revision: 66133 Log: Added tests for Checkbutton and Radiobutton Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py Tue Sep 2 03:04:33 2008 @@ -74,18 +74,33 @@ class CheckbuttonTest(unittest.TestCase): - # XXX broken for now def test_invoke(self): success = [] def cb_test(): success.append(1) + return "cb test called" + cbtn = ttk.Checkbutton(command=cb_test) - print cbtn.tk.globalgetvar(cbtn['variable']) - print cbtn['variable'], "<<" - cbtn.invoke() + # the variable automatically created by ttk.Checkbutton is actually + # undefined till we invoke the Checkbutton + self.failUnlessEqual(cbtn.state(), ('alternate', )) + self.failUnlessRaises(Tkinter.TclError, cbtn.tk.globalgetvar, + cbtn['variable']) + + res = cbtn.invoke() + self.failUnlessEqual(res, "cb test called") + self.failUnlessEqual(cbtn['onvalue'], + cbtn.tk.globalgetvar(cbtn['variable'])) self.failUnless(success) + cbtn['command'] = '' + res = cbtn.invoke() + self.failUnlessEqual(res, '') + self.failIf(len(success) > 1) + self.failUnlessEqual(cbtn['offvalue'], + cbtn.tk.globalgetvar(cbtn['variable'])) + class ComboboxTest(unittest.TestCase): @@ -394,7 +409,35 @@ self.failUnless(isinstance(self.paned.sashpos(0), int)) -class RadiobuttonTest(unittest.TestCase): pass +class RadiobuttonTest(unittest.TestCase): + + def test_invoke(self): + success = [] + def cb_test(): + success.append(1) + return "cb test called" + + myvar = Tkinter.IntVar() + cbtn = ttk.Radiobutton(command=cb_test, variable=myvar, value=0) + cbtn2 = ttk.Radiobutton(command=cb_test, variable=myvar, value=1) + + res = cbtn.invoke() + self.failUnlessEqual(res, "cb test called") + self.failUnlessEqual(cbtn['value'], myvar.get()) + self.failUnlessEqual(myvar.get(), + cbtn.tk.globalgetvar(cbtn['variable'])) + self.failUnless(success) + + cbtn2['command'] = '' + res = cbtn2.invoke() + self.failUnlessEqual(res, '') + self.failIf(len(success) > 1) + self.failUnlessEqual(cbtn2['value'], myvar.get()) + self.failUnlessEqual(myvar.get(), + cbtn.tk.globalgetvar(cbtn['variable'])) + + self.failUnlessEqual(str(cbtn['variable']), str(cbtn2['variable'])) + class ScaleTest(unittest.TestCase): @@ -474,7 +517,7 @@ def test_main(): - support.run(WidgetTest, ButtonTest, #CheckbuttonTest, RadiobuttonTest, + support.run(WidgetTest, ButtonTest, CheckbuttonTest, RadiobuttonTest, ComboboxTest, EntryTest, PanedwindowTest, ScaleTest) if __name__ == "__main__": Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py Tue Sep 2 03:04:33 2008 @@ -74,18 +74,33 @@ class CheckbuttonTest(unittest.TestCase): - # XXX broken for now def test_invoke(self): success = [] def cb_test(): success.append(1) + return "cb test called" + cbtn = ttk.Checkbutton(command=cb_test) - print(cbtn.tk.globalgetvar(cbtn['variable'])) - print(cbtn['variable'], "<<") - cbtn.invoke() + # the variable automatically created by ttk.Checkbutton is actually + # undefined till we invoke the Checkbutton + self.failUnlessEqual(cbtn.state(), ('alternate', )) + self.failUnlessRaises(tkinter.TclError, cbtn.tk.globalgetvar, + cbtn['variable']) + + res = cbtn.invoke() + self.failUnlessEqual(res, "cb test called") + self.failUnlessEqual(cbtn['onvalue'], + cbtn.tk.globalgetvar(cbtn['variable'])) self.failUnless(success) + cbtn['command'] = '' + res = cbtn.invoke() + self.failUnlessEqual(res, '') + self.failIf(len(success) > 1) + self.failUnlessEqual(cbtn['offvalue'], + cbtn.tk.globalgetvar(cbtn['variable'])) + class ComboboxTest(unittest.TestCase): @@ -394,7 +409,35 @@ self.failUnless(isinstance(self.paned.sashpos(0), int)) -class RadiobuttonTest(unittest.TestCase): pass +class RadiobuttonTest(unittest.TestCase): + + def test_invoke(self): + success = [] + def cb_test(): + success.append(1) + return "cb test called" + + myvar = tkinter.IntVar() + cbtn = ttk.Radiobutton(command=cb_test, variable=myvar, value=0) + cbtn2 = ttk.Radiobutton(command=cb_test, variable=myvar, value=1) + + res = cbtn.invoke() + self.failUnlessEqual(res, "cb test called") + self.failUnlessEqual(cbtn['value'], myvar.get()) + self.failUnlessEqual(myvar.get(), + cbtn.tk.globalgetvar(cbtn['variable'])) + self.failUnless(success) + + cbtn2['command'] = '' + res = cbtn2.invoke() + self.failUnlessEqual(res, '') + self.failIf(len(success) > 1) + self.failUnlessEqual(cbtn2['value'], myvar.get()) + self.failUnlessEqual(myvar.get(), + cbtn.tk.globalgetvar(cbtn['variable'])) + + self.failUnlessEqual(str(cbtn['variable']), str(cbtn2['variable'])) + class ScaleTest(unittest.TestCase): @@ -474,7 +517,7 @@ def test_main(): - support.run(WidgetTest, ButtonTest, #CheckbuttonTest, RadiobuttonTest, + support.run(WidgetTest, ButtonTest, CheckbuttonTest, RadiobuttonTest, ComboboxTest, EntryTest, PanedwindowTest, ScaleTest) if __name__ == "__main__": From buildbot at python.org Tue Sep 2 03:08:05 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 01:08:05 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080902010805.CB8321E4015@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/477 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 03:13:42 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 2 Sep 2008 03:13:42 +0200 (CEST) Subject: [Python-checkins] r66134 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080902011342.7D7DF1E401A@bag.python.org> Author: andrew.kuchling Date: Tue Sep 2 03:13:42 2008 New Revision: 66134 Log: Describe the __hash__ changes Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Tue Sep 2 03:13:42 2008 @@ -1595,6 +1595,22 @@ :func:`complex` constructor will now preserve the sign of the zero. (Fixed by Mark T. Dickinson; :issue:`1507`.) +* Classes that inherit a :meth:`__hash__` method from a parent class + can set ``__hash__ = None`` to indicate that the class isn't + hashable. This will make ``hash(obj)`` raise a :exc:`TypeError` + and the class will not be indicated as implementing the + :class:`Hashable` ABC. + + You should do this when you've defined a :meth:`__cmp__` or + :meth:`__eq__` method that compares objects by their value rather + than by identity. All objects have a default hash method that uses + ``id(obj)`` as the hash value. There's no tidy way to remove the + :meth:`__hash__` method inherited from a parent class, so + assigning ``None`` was implemented as an override. At the + C level, extensions can set ``tp_hash`` to + :cfunc:`PyObject_HashNotImplemented`. + (Fixed by Nick Coghlan and Amaury Forgeot d'Arc; :issue:`2235`.) + * Changes to the :class:`Exception` interface as dictated by :pep:`352` continue to be made. For 2.6, the :attr:`message` attribute is being deprecated in favor of the @@ -3125,6 +3141,10 @@ This section lists previously described changes and other bugfixes that may require changes to your code: +* Classes that aren't supposed to be hashable should + set ``__hash__ = None`` in their definitions to indicate + the fact. + * The :meth:`__init__` method of :class:`collections.deque` now clears any existing contents of the deque before adding elements from the iterable. This change makes the @@ -3147,6 +3167,10 @@ functions now default to absolute imports, not relative imports. This will affect C extensions that import other modules. +* C API: extension data types that shouldn't be hashable + should define their ``tp_hash`` slot to + :cfunc:`PyObject_HashNotImplemented`. + * The :mod:`socket` module exception :exc:`socket.error` now inherits from :exc:`IOError`. Previously it wasn't a subclass of :exc:`StandardError` but now it is, through :exc:`IOError`. @@ -3182,5 +3206,5 @@ The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: -Georg Brandl, Jim Jewett, Antoine Pitrou. +Georg Brandl, Nick Coghlan, Jim Jewett, Antoine Pitrou. From python-checkins at python.org Tue Sep 2 03:25:17 2008 From: python-checkins at python.org (brett.cannon) Date: Tue, 2 Sep 2008 03:25:17 +0200 (CEST) Subject: [Python-checkins] r66135 - in python/trunk: Doc/library/warnings.rst Lib/BaseHTTPServer.py Lib/asynchat.py Lib/cgi.py Lib/httplib.py Lib/mimetools.py Lib/test/test_support.py Lib/test/test_warnings.py Lib/warnings.py Misc/NEWS Python/_warnings.c Message-ID: <20080902012517.A27261E4005@bag.python.org> Author: brett.cannon Date: Tue Sep 2 03:25:16 2008 New Revision: 66135 Log: Move test.test_support.catch_warning() to the warnings module, rename it catch_warnings(), and clean up the API. While expanding the test suite, a bug was found where a warning about the 'line' argument to showwarning() was not letting functions with '*args' go without a warning. Closes issue 3602. Code review by Benjamin Peterson. Modified: python/trunk/Doc/library/warnings.rst python/trunk/Lib/BaseHTTPServer.py python/trunk/Lib/asynchat.py python/trunk/Lib/cgi.py python/trunk/Lib/httplib.py python/trunk/Lib/mimetools.py python/trunk/Lib/test/test_support.py python/trunk/Lib/test/test_warnings.py python/trunk/Lib/warnings.py python/trunk/Misc/NEWS python/trunk/Python/_warnings.c Modified: python/trunk/Doc/library/warnings.rst ============================================================================== --- python/trunk/Doc/library/warnings.rst (original) +++ python/trunk/Doc/library/warnings.rst Tue Sep 2 03:25:16 2008 @@ -263,3 +263,53 @@ :func:`filterwarnings`, including that of the :option:`-W` command line options and calls to :func:`simplefilter`. + +Available Classes +----------------- + +.. class:: catch_warnings([record=False[, module=None]]) + + A context manager that guards the warnings filter from being permanentally + mutated. The manager returns an instance of :class:`WarningsRecorder`. The + *record* argument specifies whether warnings that would typically be + handled by :func:`showwarning` should instead be recorded by the + :class:`WarningsRecorder` instance. This argument is typically set when + testing for expected warnings behavior. The *module* argument may be a + module object that is to be used instead of the :mod:`warnings` module. + This argument should only be set when testing the :mod:`warnings` module + or some similar use-case. + + Typical usage of the context manager is like so:: + + def fxn(): + warn("fxn is deprecated", DeprecationWarning) + return "spam spam bacon spam" + + # The function 'fxn' is known to raise a DeprecationWarning. + with catch_warnings() as w: + warnings.filterwarning('ignore', 'fxn is deprecated', DeprecationWarning) + fxn() # DeprecationWarning is temporarily suppressed. + + .. note:: + + In Python 3.0, the arguments to the constructor for + :class:`catch_warnings` are keyword-only arguments. + + .. versionadded:: 2.6 + + +.. class:: WarningsRecorder() + + A subclass of :class:`list` that stores all warnings passed to + :func:`showwarning` when returned by a :class:`catch_warnings` context + manager created with its *record* argument set to ``True``. Each recorded + warning is represented by an object whose attributes correspond to the + arguments to :func:`showwarning`. As a convenience, a + :class:`WarningsRecorder` instance has the attributes of the last + recorded warning set on the :class:`WarningsRecorder` instance as well. + + .. method:: reset() + + Delete all recorded warnings. + + .. versionadded:: 2.6 Modified: python/trunk/Lib/BaseHTTPServer.py ============================================================================== --- python/trunk/Lib/BaseHTTPServer.py (original) +++ python/trunk/Lib/BaseHTTPServer.py Tue Sep 2 03:25:16 2008 @@ -73,11 +73,11 @@ import sys import time import socket # For gethostbyaddr() -from test.test_support import catch_warning -from warnings import filterwarnings -with catch_warning(record=False): - filterwarnings("ignore", ".*mimetools has been removed", - DeprecationWarning) +from warnings import filterwarnings, catch_warnings +with catch_warnings(): + if sys.py3kwarning: + filterwarnings("ignore", ".*mimetools has been removed", + DeprecationWarning) import mimetools import SocketServer Modified: python/trunk/Lib/asynchat.py ============================================================================== --- python/trunk/Lib/asynchat.py (original) +++ python/trunk/Lib/asynchat.py Tue Sep 2 03:25:16 2008 @@ -49,8 +49,9 @@ import socket import asyncore from collections import deque +from sys import py3kwarning from test.test_support import catch_warning -from warnings import filterwarnings +from warnings import filterwarnings, catch_warnings class async_chat (asyncore.dispatcher): """This is an abstract class. You must derive from this class, and add @@ -218,8 +219,9 @@ # handle classic producer behavior obs = self.ac_out_buffer_size try: - with catch_warning(record=False): - filterwarnings("ignore", ".*buffer", DeprecationWarning) + with catch_warnings(): + if py3kwarning: + filterwarnings("ignore", ".*buffer", DeprecationWarning) data = buffer(first, 0, obs) except TypeError: data = first.more() Modified: python/trunk/Lib/cgi.py ============================================================================== --- python/trunk/Lib/cgi.py (original) +++ python/trunk/Lib/cgi.py Tue Sep 2 03:25:16 2008 @@ -39,13 +39,14 @@ import os import urllib import UserDict -from test.test_support import catch_warning -from warnings import filterwarnings -with catch_warning(record=False): - filterwarnings("ignore", ".*mimetools has been removed", - DeprecationWarning) +from warnings import filterwarnings, catch_warnings +with catch_warnings(): + if sys.py3kwarning: + filterwarnings("ignore", ".*mimetools has been removed", + DeprecationWarning) import mimetools - filterwarnings("ignore", ".*rfc822 has been removed", DeprecationWarning) + if sys.py3kwarning: + filterwarnings("ignore", ".*rfc822 has been removed", DeprecationWarning) import rfc822 try: Modified: python/trunk/Lib/httplib.py ============================================================================== --- python/trunk/Lib/httplib.py (original) +++ python/trunk/Lib/httplib.py Tue Sep 2 03:25:16 2008 @@ -67,12 +67,13 @@ """ import socket +from sys import py3kwarning from urlparse import urlsplit import warnings -from test.test_support import catch_warning -with catch_warning(record=False): - warnings.filterwarnings("ignore", ".*mimetools has been removed", - DeprecationWarning) +with warnings.catch_warnings(): + if py3kwarning: + warnings.filterwarnings("ignore", ".*mimetools has been removed", + DeprecationWarning) import mimetools try: Modified: python/trunk/Lib/mimetools.py ============================================================================== --- python/trunk/Lib/mimetools.py (original) +++ python/trunk/Lib/mimetools.py Tue Sep 2 03:25:16 2008 @@ -2,11 +2,12 @@ import os +import sys import tempfile -from test.test_support import catch_warning -from warnings import filterwarnings -with catch_warning(record=False): - filterwarnings("ignore", ".*rfc822 has been removed", DeprecationWarning) +from warnings import filterwarnings, catch_warnings +with catch_warnings(record=False): + if sys.py3kwarning: + filterwarnings("ignore", ".*rfc822 has been removed", DeprecationWarning) import rfc822 from warnings import warnpy3k Modified: python/trunk/Lib/test/test_support.py ============================================================================== --- python/trunk/Lib/test/test_support.py (original) +++ python/trunk/Lib/test/test_support.py Tue Sep 2 03:25:16 2008 @@ -18,7 +18,7 @@ "is_resource_enabled", "requires", "find_unused_port", "bind_port", "fcmp", "have_unicode", "is_jython", "TESTFN", "HOST", "FUZZ", "findfile", "verify", "vereq", "sortdict", "check_syntax_error", - "open_urlresource", "WarningMessage", "catch_warning", "CleanImport", + "open_urlresource", "catch_warning", "CleanImport", "EnvironmentVarGuard", "captured_output", "captured_stdout", "TransientResource", "transient_internet", "run_with_locale", "set_memlimit", "bigmemtest", "bigaddrspacetest", @@ -381,71 +381,8 @@ return open(fn) -class WarningMessage(object): - "Holds the result of a single showwarning() call" - _WARNING_DETAILS = "message category filename lineno line".split() - def __init__(self, message, category, filename, lineno, line=None): - for attr in self._WARNING_DETAILS: - setattr(self, attr, locals()[attr]) - self._category_name = category.__name__ if category else None - - def __str__(self): - return ("{message : %r, category : %r, filename : %r, lineno : %s, " - "line : %r}" % (self.message, self._category_name, - self.filename, self.lineno, self.line)) - -class WarningRecorder(object): - "Records the result of any showwarning calls" - def __init__(self): - self.warnings = [] - self._set_last(None) - - def _showwarning(self, message, category, filename, lineno, - file=None, line=None): - wm = WarningMessage(message, category, filename, lineno, line) - self.warnings.append(wm) - self._set_last(wm) - - def _set_last(self, last_warning): - if last_warning is None: - for attr in WarningMessage._WARNING_DETAILS: - setattr(self, attr, None) - else: - for attr in WarningMessage._WARNING_DETAILS: - setattr(self, attr, getattr(last_warning, attr)) - - def reset(self): - self.warnings = [] - self._set_last(None) - - def __str__(self): - return '[%s]' % (', '.join(map(str, self.warnings))) - - at contextlib.contextmanager def catch_warning(module=warnings, record=True): - """Guard the warnings filter from being permanently changed and - optionally record the details of any warnings that are issued. - - Use like this: - - with catch_warning() as w: - warnings.warn("foo") - assert str(w.message) == "foo" - """ - original_filters = module.filters - original_showwarning = module.showwarning - if record: - recorder = WarningRecorder() - module.showwarning = recorder._showwarning - else: - recorder = None - try: - # Replace the filters with a copy of the original - module.filters = module.filters[:] - yield recorder - finally: - module.showwarning = original_showwarning - module.filters = original_filters + return warnings.catch_warnings(record=record, module=module) class CleanImport(object): Modified: python/trunk/Lib/test/test_warnings.py ============================================================================== --- python/trunk/Lib/test/test_warnings.py (original) +++ python/trunk/Lib/test/test_warnings.py Tue Sep 2 03:25:16 2008 @@ -79,20 +79,19 @@ "FilterTests.test_error") def test_ignore(self): - with test_support.catch_warning(self.module) as w: + with test_support.catch_warning(module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("ignore", category=UserWarning) self.module.warn("FilterTests.test_ignore", UserWarning) - self.assert_(not w.message) + self.assertEquals(len(w), 0) def test_always(self): - with test_support.catch_warning(self.module) as w: + with test_support.catch_warning(module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("always", category=UserWarning) message = "FilterTests.test_always" self.module.warn(message, UserWarning) self.assert_(message, w.message) - w.message = None # Reset. self.module.warn(message, UserWarning) self.assert_(w.message, message) @@ -107,7 +106,7 @@ self.assertEquals(w.message, message) w.reset() elif x == 1: - self.assert_(not w.message, "unexpected warning: " + str(w)) + self.assert_(not len(w), "unexpected warning: " + str(w)) else: raise ValueError("loop variant unhandled") @@ -120,7 +119,7 @@ self.assertEquals(w.message, message) w.reset() self.module.warn(message, UserWarning) - self.assert_(not w.message, "unexpected message: " + str(w)) + self.assert_(not len(w), "unexpected message: " + str(w)) def test_once(self): with test_support.catch_warning(self.module) as w: @@ -133,10 +132,10 @@ w.reset() self.module.warn_explicit(message, UserWarning, "test_warnings.py", 13) - self.assert_(not w.message) + self.assertEquals(len(w), 0) self.module.warn_explicit(message, UserWarning, "test_warnings2.py", 42) - self.assert_(not w.message) + self.assertEquals(len(w), 0) def test_inheritance(self): with test_support.catch_warning(self.module) as w: @@ -156,7 +155,7 @@ self.module.warn("FilterTests.test_ordering", UserWarning) except UserWarning: self.fail("order handling for actions failed") - self.assert_(not w.message) + self.assertEquals(len(w), 0) def test_filterwarnings(self): # Test filterwarnings(). @@ -317,7 +316,6 @@ None, Warning, None, 1, registry=42) - class CWarnTests(BaseTest, WarnTests): module = c_warnings @@ -377,7 +375,7 @@ self.failUnlessEqual(w.message, message) w.reset() self.module.warn_explicit(message, UserWarning, "file", 42) - self.assert_(not w.message) + self.assertEquals(len(w), 0) # Test the resetting of onceregistry. self.module.onceregistry = {} __warningregistry__ = {} @@ -388,7 +386,7 @@ del self.module.onceregistry __warningregistry__ = {} self.module.warn_explicit(message, UserWarning, "file", 42) - self.failUnless(not w.message) + self.assertEquals(len(w), 0) finally: self.module.onceregistry = original_registry @@ -489,45 +487,45 @@ -class WarningsSupportTests(object): - """Test the warning tools from test support module""" +class CatchWarningTests(BaseTest): - def test_catch_warning_restore(self): + """Test catch_warnings().""" + + def test_catch_warnings_restore(self): wmod = self.module orig_filters = wmod.filters orig_showwarning = wmod.showwarning - with test_support.catch_warning(wmod): + with wmod.catch_warnings(record=True, module=wmod): wmod.filters = wmod.showwarning = object() self.assert_(wmod.filters is orig_filters) self.assert_(wmod.showwarning is orig_showwarning) - with test_support.catch_warning(wmod, record=False): + with wmod.catch_warnings(module=wmod, record=False): wmod.filters = wmod.showwarning = object() self.assert_(wmod.filters is orig_filters) self.assert_(wmod.showwarning is orig_showwarning) - def test_catch_warning_recording(self): + def test_catch_warnings_recording(self): wmod = self.module - with test_support.catch_warning(wmod) as w: - self.assertEqual(w.warnings, []) + with wmod.catch_warnings(module=wmod, record=True) as w: + self.assertEqual(w, []) wmod.simplefilter("always") wmod.warn("foo") self.assertEqual(str(w.message), "foo") wmod.warn("bar") self.assertEqual(str(w.message), "bar") - self.assertEqual(str(w.warnings[0].message), "foo") - self.assertEqual(str(w.warnings[1].message), "bar") + self.assertEqual(str(w[0].message), "foo") + self.assertEqual(str(w[1].message), "bar") w.reset() - self.assertEqual(w.warnings, []) + self.assertEqual(w, []) orig_showwarning = wmod.showwarning - with test_support.catch_warning(wmod, record=False) as w: + with wmod.catch_warnings(module=wmod, record=False) as w: self.assert_(w is None) self.assert_(wmod.showwarning is orig_showwarning) - -class CWarningsSupportTests(BaseTest, WarningsSupportTests): +class CCatchWarningTests(CatchWarningTests): module = c_warnings -class PyWarningsSupportTests(BaseTest, WarningsSupportTests): +class PyCatchWarningTests(CatchWarningTests): module = py_warnings @@ -539,14 +537,24 @@ def bad_showwarning(message, category, filename, lineno, file=None): pass + @staticmethod + def ok_showwarning(*args): + pass + def test_deprecation(self): # message, category, filename, lineno[, file[, line]] args = ("message", UserWarning, "file name", 42) - with test_support.catch_warning(self.module): + with test_support.catch_warning(module=self.module): self.module.filterwarnings("error", category=DeprecationWarning) self.module.showwarning = self.bad_showwarning self.assertRaises(DeprecationWarning, self.module.warn_explicit, *args) + self.module.showwarning = self.ok_showwarning + try: + self.module.warn_explicit(*args) + except DeprecationWarning as exc: + self.fail('showwarning(*args) should not trigger a ' + 'DeprecationWarning') class CShowwarningDeprecationTests(ShowwarningDeprecationTests): module = c_warnings @@ -559,16 +567,14 @@ def test_main(): py_warnings.onceregistry.clear() c_warnings.onceregistry.clear() - test_support.run_unittest(CFilterTests, - PyFilterTests, - CWarnTests, - PyWarnTests, + test_support.run_unittest(CFilterTests, PyFilterTests, + CWarnTests, PyWarnTests, CWCmdLineTests, PyWCmdLineTests, _WarningsTests, CWarningsDisplayTests, PyWarningsDisplayTests, - CWarningsSupportTests, PyWarningsSupportTests, + CCatchWarningTests, PyCatchWarningTests, CShowwarningDeprecationTests, - PyShowwarningDeprecationTests, + PyShowwarningDeprecationTests, ) Modified: python/trunk/Lib/warnings.py ============================================================================== --- python/trunk/Lib/warnings.py (original) +++ python/trunk/Lib/warnings.py Tue Sep 2 03:25:16 2008 @@ -272,7 +272,8 @@ fxn_code = showwarning.__func__.func_code if fxn_code: args = fxn_code.co_varnames[:fxn_code.co_argcount] - if 'line' not in args: + CO_VARARGS = 0x4 + if 'line' not in args and not fxn_code.co_flags & CO_VARARGS: showwarning_msg = ("functions overriding warnings.showwarning() " "must support the 'line' argument") if message == showwarning_msg: @@ -283,6 +284,78 @@ showwarning(message, category, filename, lineno) +class WarningMessage(object): + + """Holds the result of a single showwarning() call.""" + + _WARNING_DETAILS = ("message", "category", "filename", "lineno", "file", + "line") + + def __init__(self, message, category, filename, lineno, file=None, + line=None): + local_values = locals() + for attr in self._WARNING_DETAILS: + setattr(self, attr, local_values[attr]) + self._category_name = category.__name__ if category else None + + def __str__(self): + return ("{message : %r, category : %r, filename : %r, lineno : %s, " + "line : %r}" % (self.message, self._category_name, + self.filename, self.lineno, self.line)) + + +class WarningsRecorder(list): + + """Record the result of various showwarning() calls.""" + + # Explicitly stated arguments so as to not trigger DeprecationWarning + # about adding 'line'. + def showwarning(self, *args, **kwargs): + self.append(WarningMessage(*args, **kwargs)) + + def __getattr__(self, attr): + return getattr(self[-1], attr) + + def reset(self): + del self[:] + + +class catch_warnings(object): + + """Guard the warnings filter from being permanently changed and optionally + record the details of any warnings that are issued. + + Context manager returns an instance of warnings.WarningRecorder which is a + list of WarningMessage instances. Attributes on WarningRecorder are + redirected to the last created WarningMessage instance. + + """ + + def __init__(self, record=False, module=None): + """Specify whether to record warnings and if an alternative module + should be used other than sys.modules['warnings']. + + For compatibility with Python 3.0, please consider all arguments to be + keyword-only. + + """ + self._recorder = WarningsRecorder() if record else None + self._module = sys.modules['warnings'] if module is None else module + + def __enter__(self): + self._filters = self._module.filters + self._module.filters = self._filters[:] + self._showwarning = self._module.showwarning + if self._recorder is not None: + self._recorder.reset() # In case the instance is being reused. + self._module.showwarning = self._recorder.showwarning + return self._recorder + + def __exit__(self, *exc_info): + self._module.filters = self._filters + self._module.showwarning = self._showwarning + + # filters contains a sequence of filter 5-tuples # The components of the 5-tuple are: # - an action: error, ignore, always, default, module, or once Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 2 03:25:16 2008 @@ -53,6 +53,11 @@ Library ------- +- Issue 3602: Moved test.test_support.catch_warning() to + warnings.catch_warnings() along with some API cleanup. Expanding the tests + for catch_warnings() also led to an improvement in the raising of a + DeprecationWarning related to warnings.warn_explicit(). + - The deprecation warnings for the old camelCase threading API were removed. - logging: fixed lack of use of encoding attribute specified on a stream. Modified: python/trunk/Python/_warnings.c ============================================================================== --- python/trunk/Python/_warnings.c (original) +++ python/trunk/Python/_warnings.c Tue Sep 2 03:25:16 2008 @@ -1,4 +1,5 @@ #include "Python.h" +#include "code.h" /* For DeprecationWarning about adding 'line'. */ #include "frameobject.h" #define MODULE_NAME "_warnings" @@ -416,11 +417,16 @@ /* A proper implementation of warnings.showwarning() should have at least two default arguments. */ if ((defaults == NULL) || (PyTuple_Size(defaults) < 2)) { - if (PyErr_WarnEx(PyExc_DeprecationWarning, msg, 1) < 0) { - Py_DECREF(show_fxn); - goto cleanup; + PyCodeObject *code = (PyCodeObject *) + PyFunction_GetCode(check_fxn); + if (!(code->co_flags & CO_VARARGS)) { + if (PyErr_WarnEx(PyExc_DeprecationWarning, msg, 1) < + 0) { + Py_DECREF(show_fxn); + goto cleanup; + } } - } + } res = PyObject_CallFunctionObjArgs(show_fxn, message, category, filename, lineno_obj, NULL); From python-checkins at python.org Tue Sep 2 03:39:18 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 2 Sep 2008 03:39:18 +0200 (CEST) Subject: [Python-checkins] r66136 - python/trunk/Doc/library/warnings.rst Message-ID: <20080902013918.D43B11E401A@bag.python.org> Author: andrew.kuchling Date: Tue Sep 2 03:39:18 2008 New Revision: 66136 Log: typo fix Modified: python/trunk/Doc/library/warnings.rst Modified: python/trunk/Doc/library/warnings.rst ============================================================================== --- python/trunk/Doc/library/warnings.rst (original) +++ python/trunk/Doc/library/warnings.rst Tue Sep 2 03:39:18 2008 @@ -269,7 +269,7 @@ .. class:: catch_warnings([record=False[, module=None]]) - A context manager that guards the warnings filter from being permanentally + A context manager that guards the warnings filter from being permanently mutated. The manager returns an instance of :class:`WarningsRecorder`. The *record* argument specifies whether warnings that would typically be handled by :func:`showwarning` should instead be recorded by the From python-checkins at python.org Tue Sep 2 04:29:06 2008 From: python-checkins at python.org (jesus.cea) Date: Tue, 2 Sep 2008 04:29:06 +0200 (CEST) Subject: [Python-checkins] r66137 - in python/trunk: Lib/bsddb/__init__.py Lib/bsddb/test/test_all.py Modules/bsddb.h Message-ID: <20080902022906.6C79D1E4005@bag.python.org> Author: jesus.cea Date: Tue Sep 2 04:29:06 2008 New Revision: 66137 Log: Improve compatibility with Python3.0 testsuite Modified: python/trunk/Lib/bsddb/__init__.py python/trunk/Lib/bsddb/test/test_all.py python/trunk/Modules/bsddb.h Modified: python/trunk/Lib/bsddb/__init__.py ============================================================================== --- python/trunk/Lib/bsddb/__init__.py (original) +++ python/trunk/Lib/bsddb/__init__.py Tue Sep 2 04:29:06 2008 @@ -110,7 +110,7 @@ key = _DeadlockWrap(cur.first, 0,0,0)[0] yield key - next = cur.next + next = getattr(cur, "next") while 1: try: key = _DeadlockWrap(next, 0,0,0)[0] @@ -123,7 +123,7 @@ # FIXME-20031101-greg: race condition. cursor could # be closed by another thread before this call. _DeadlockWrap(cur.set, key,0,0,0) - next = cur.next + next = getattr(cur, "next") except _bsddb.DBNotFoundError: pass except _bsddb.DBCursorClosedError: @@ -152,7 +152,7 @@ key = kv[0] yield kv - next = cur.next + next = getattr(cur, "next") while 1: try: kv = _DeadlockWrap(next) @@ -166,7 +166,7 @@ # FIXME-20031101-greg: race condition. cursor could # be closed by another thread before this call. _DeadlockWrap(cur.set, key,0,0,0) - next = cur.next + next = getattr(cur, "next") except _bsddb.DBNotFoundError: pass except _bsddb.DBCursorClosedError: @@ -302,12 +302,15 @@ self._checkCursor() return _DeadlockWrap(self.dbc.set_range, key) - def next(self): + def next(self): # Renamed by "2to3" self._checkOpen() self._checkCursor() - rv = _DeadlockWrap(self.dbc.next) + rv = _DeadlockWrap(getattr(self.dbc, "next")) return rv + if sys.version_info[0] >= 3 : # For "2to3" conversion + next = __next__ + def previous(self): self._checkOpen() self._checkCursor() Modified: python/trunk/Lib/bsddb/test/test_all.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_all.py (original) +++ python/trunk/Lib/bsddb/test/test_all.py Tue Sep 2 04:29:06 2008 @@ -33,6 +33,8 @@ v = getattr(self._dbcursor, "next")() return self._fix(v) + next = __next__ + def previous(self) : v = self._dbcursor.previous() return self._fix(v) Modified: python/trunk/Modules/bsddb.h ============================================================================== --- python/trunk/Modules/bsddb.h (original) +++ python/trunk/Modules/bsddb.h Tue Sep 2 04:29:06 2008 @@ -105,7 +105,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.7.3pre2" +#define PY_BSDDB_VERSION "4.7.3pre3" /* Python object definitions */ From buildbot at python.org Tue Sep 2 05:41:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 03:41:46 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080902034147.0890C1E4005@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/479 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 4 tests failed: test_distutils test_posix test_smtplib test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 05:58:54 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 03:58:54 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080902035854.F34E51E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/250 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 06:28:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 04:28:06 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080902042806.DD7AF1E4005@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/285 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_calendar test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 07:29:52 2008 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 2 Sep 2008 07:29:52 +0200 (CEST) Subject: [Python-checkins] r66141 - in python/trunk: Makefile.pre.in Misc/NEWS Message-ID: <20080902052952.7CAA51E4005@bag.python.org> Author: gregory.p.smith Date: Tue Sep 2 07:29:51 2008 New Revision: 66141 Log: Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared library targets in the Makefile. Modified: python/trunk/Makefile.pre.in python/trunk/Misc/NEWS Modified: python/trunk/Makefile.pre.in ============================================================================== --- python/trunk/Makefile.pre.in (original) +++ python/trunk/Makefile.pre.in Tue Sep 2 07:29:51 2008 @@ -412,14 +412,14 @@ libpython$(VERSION).so: $(LIBRARY_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ + $(LDSHARED) $(LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ $(LN) -f $(INSTSONAME) $@; \ else\ - $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ + $(LDSHARED) $(LDFLAGS) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ fi libpython$(VERSION).sl: $(LIBRARY_OBJS) - $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) + $(LDSHARED) $(LDFLAGS) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST) # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary # minimal framework (not including the Lib directory and such) in the current @@ -453,8 +453,8 @@ # for a shared core library; otherwise, this rule is a noop. $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS) if test -n "$(DLLLIBRARY)"; then \ - $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ - $(LIBS) $(MODLIBS) $(SYSLIBS); \ + $(LDSHARED) $(LDFLAGS) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ + $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \ else true; \ fi Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 2 07:29:51 2008 @@ -45,6 +45,9 @@ - Added warnings on the use of ``__getslice__``, ``__setslice__``, or ``__delslice__``. +- Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared + library targets in the Makefile. + C-API ----- From python-checkins at python.org Tue Sep 2 07:36:11 2008 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 2 Sep 2008 07:36:11 +0200 (CEST) Subject: [Python-checkins] r66142 - in python/trunk: Lib/os.py Lib/test/test_os.py Misc/NEWS Message-ID: <20080902053611.ACBE81E4005@bag.python.org> Author: gregory.p.smith Date: Tue Sep 2 07:36:11 2008 New Revision: 66142 Log: Issue #3708: os.urandom no longer goes into an infinite loop when passed a non-integer floating point number. Modified: python/trunk/Lib/os.py python/trunk/Lib/test/test_os.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/os.py ============================================================================== --- python/trunk/Lib/os.py (original) +++ python/trunk/Lib/os.py Tue Sep 2 07:36:11 2008 @@ -753,8 +753,10 @@ _urandomfd = open("/dev/urandom", O_RDONLY) except (OSError, IOError): raise NotImplementedError("/dev/urandom (or equivalent) not found") - bytes = "" - while len(bytes) < n: - bytes += read(_urandomfd, n - len(bytes)) - close(_urandomfd) - return bytes + try: + bs = b"" + while n - len(bs) >= 1: + bs += read(_urandomfd, n - len(bs)) + finally: + close(_urandomfd) + return bs Modified: python/trunk/Lib/test/test_os.py ============================================================================== --- python/trunk/Lib/test/test_os.py (original) +++ python/trunk/Lib/test/test_os.py Tue Sep 2 07:36:11 2008 @@ -497,6 +497,10 @@ self.assertEqual(len(os.urandom(10)), 10) self.assertEqual(len(os.urandom(100)), 100) self.assertEqual(len(os.urandom(1000)), 1000) + # see http://bugs.python.org/issue3708 + self.assertEqual(len(os.urandom(0.9)), 0) + self.assertEqual(len(os.urandom(1.1)), 1) + self.assertEqual(len(os.urandom(2.0)), 2) except NotImplementedError: pass Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 2 07:36:11 2008 @@ -72,6 +72,9 @@ - Issue #3703: _fileio.FileIO gave unhelpful error message when trying to open a directory. +- Issue #3708: os.urandom no longer goes into an infinite loop when passed a + non-integer floating point number. + Extension Modules ----------------- From buildbot at python.org Tue Sep 2 07:45:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 05:45:36 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080902054536.63E6D1E4005@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3878 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 07:46:14 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 05:46:14 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080902054615.085D91E4005@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/481 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 08:47:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 06:47:01 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080902064701.E01531E4005@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/230 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 09:23:16 2008 From: python-checkins at python.org (mark.summerfield) Date: Tue, 2 Sep 2008 09:23:16 +0200 (CEST) Subject: [Python-checkins] r66143 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080902072316.6954A1E4005@bag.python.org> Author: mark.summerfield Date: Tue Sep 2 09:23:16 2008 New Revision: 66143 Log: a typo Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Tue Sep 2 09:23:16 2008 @@ -203,7 +203,7 @@ started around 1989. In the 1980s and early 1990s, most documentation was printed out for later study, not viewed online. LaTeX was widely used because it provided attractive printed output while remaining -straightforward to write once the basic rules of the markup werw +straightforward to write once the basic rules of the markup were learned. Today LaTeX is still used for writing publications destined for From buildbot at python.org Tue Sep 2 10:08:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 08:08:49 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20080902080849.418151E4005@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1039 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 Traceback (most recent call last): File "/scratch/pybot/buildarea/trunk.klose-debian-s390/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/scratch/pybot/buildarea/trunk.klose-debian-s390/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/scratch/pybot/buildarea/trunk.klose-debian-s390/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/scratch/pybot/buildarea/trunk.klose-debian-s390/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 12:14:48 2008 From: python-checkins at python.org (nick.coghlan) Date: Tue, 2 Sep 2008 12:14:48 +0200 (CEST) Subject: [Python-checkins] r66144 - python/trunk/Lib/abc.py Message-ID: <20080902101448.402BD1E4008@bag.python.org> Author: nick.coghlan Date: Tue Sep 2 12:14:47 2008 New Revision: 66144 Log: Issue 3747: Fix caching in ABCMeta.__subclasscheck__ (R: Georg Brandl) Modified: python/trunk/Lib/abc.py Modified: python/trunk/Lib/abc.py ============================================================================== --- python/trunk/Lib/abc.py (original) +++ python/trunk/Lib/abc.py Tue Sep 2 12:14:47 2008 @@ -159,12 +159,12 @@ # Check if it's a subclass of a registered class (recursive) for rcls in cls._abc_registry: if issubclass(subclass, rcls): - cls._abc_registry.add(subclass) + cls._abc_cache.add(subclass) return True # Check if it's a subclass of a subclass (recursive) for scls in cls.__subclasses__(): if issubclass(subclass, scls): - cls._abc_registry.add(subclass) + cls._abc_cache.add(subclass) return True # No dice; update negative cache cls._abc_negative_cache.add(subclass) From python-checkins at python.org Tue Sep 2 12:32:34 2008 From: python-checkins at python.org (marc-andre.lemburg) Date: Tue, 2 Sep 2008 12:32:34 +0200 (CEST) Subject: [Python-checkins] r66145 - python/trunk/Lib/platform.py Message-ID: <20080902103234.706131E4008@bag.python.org> Author: marc-andre.lemburg Date: Tue Sep 2 12:32:34 2008 New Revision: 66145 Log: Add quotes around the file name to avoid issues with spaces. Closes #3719. Modified: python/trunk/Lib/platform.py Modified: python/trunk/Lib/platform.py ============================================================================== --- python/trunk/Lib/platform.py (original) +++ python/trunk/Lib/platform.py Tue Sep 2 12:32:34 2008 @@ -969,7 +969,7 @@ return default target = _follow_symlinks(target) try: - f = os.popen('file %s 2> /dev/null' % target) + f = os.popen('file "%s" 2> /dev/null' % target) except (AttributeError,os.error): return default output = string.strip(f.read()) From buildbot at python.org Tue Sep 2 13:27:02 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 11:27:02 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080902112703.1297B1E4008@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/182 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: marc-andre.lemburg BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 14:11:19 2008 From: python-checkins at python.org (marc-andre.lemburg) Date: Tue, 2 Sep 2008 14:11:19 +0200 (CEST) Subject: [Python-checkins] r66150 - python/trunk/Misc/NEWS Message-ID: <20080902121119.B9ECD1E4008@bag.python.org> Author: marc-andre.lemburg Date: Tue Sep 2 14:11:19 2008 New Revision: 66150 Log: Add news item for #3719. Modified: python/trunk/Misc/NEWS Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 2 14:11:19 2008 @@ -56,6 +56,9 @@ Library ------- +- Issue #3719: platform.architecture() fails if there are spaces in the + path to the Python binary. + - Issue 3602: Moved test.test_support.catch_warning() to warnings.catch_warnings() along with some API cleanup. Expanding the tests for catch_warnings() also led to an improvement in the raising of a From buildbot at python.org Tue Sep 2 14:39:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 12:39:27 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080902123928.07B481E4008@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/483 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: nick.coghlan BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 14:59:13 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 12:59:13 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080902125913.86A361E4008@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/253 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: nick.coghlan BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 15:02:34 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 13:02:34 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080902130234.99E0D1E4008@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3881 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: marc-andre.lemburg BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 15:06:01 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 2 Sep 2008 15:06:01 +0200 (CEST) Subject: [Python-checkins] r66154 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080902130601.1F2E71E4008@bag.python.org> Author: andrew.kuchling Date: Tue Sep 2 15:06:00 2008 New Revision: 66154 Log: Clarify example; add imports Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Tue Sep 2 15:06:00 2008 @@ -1224,7 +1224,7 @@ You can write your own ABCs by using ``abc.ABCMeta`` as the metaclass in a class definition:: - from abc import ABCMeta + from abc import ABCMeta, abstractmethod class Drawable(): __metaclass__ = ABCMeta @@ -1256,15 +1256,21 @@ Note that the exception is only raised when you actually try to create an instance of a subclass lacking the method:: - >>> s=Square() + >>> class Circle(Drawable): + ... pass + ... + >>> c=Circle() Traceback (most recent call last): File "", line 1, in - TypeError: Can't instantiate abstract class Square with abstract methods draw + TypeError: Can't instantiate abstract class Circle with abstract methods draw >>> Abstract data attributes can be declared using the ``@abstractproperty`` decorator:: + from abc import abstractproperty + ... + @abstractproperty def readonly(self): return self._x @@ -3206,5 +3212,5 @@ The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: -Georg Brandl, Nick Coghlan, Jim Jewett, Antoine Pitrou. +Georg Brandl, Steve Brown, Nick Coghlan, Jim Jewett, Antoine Pitrou. From python-checkins at python.org Tue Sep 2 15:08:11 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 2 Sep 2008 15:08:11 +0200 (CEST) Subject: [Python-checkins] r66155 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080902130811.83B6C1E4008@bag.python.org> Author: andrew.kuchling Date: Tue Sep 2 15:08:11 2008 New Revision: 66155 Log: Add e-mail address Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Tue Sep 2 15:08:11 2008 @@ -4,7 +4,7 @@ .. XXX add trademark info for Apple, Microsoft, SourceForge. -:Author: A.M. Kuchling +:Author: A.M. Kuchling (amk at amk.ca) :Release: |release| :Date: |today| From python-checkins at python.org Tue Sep 2 19:39:45 2008 From: python-checkins at python.org (guilherme.polo) Date: Tue, 2 Sep 2008 19:39:45 +0200 (CEST) Subject: [Python-checkins] r66159 - in sandbox/trunk/ttk-gsoc/src: 2.x/test/support.py 2.x/test/test_extensions.py 2.x/test/test_notebook.py 2.x/test/test_other_widgets.py 2.x/test/test_style.py 2.x/test/test_treeview.py 2.x/ttk.py 3.x/test/support.py 3.x/test/test_extensions.py 3.x/test/test_notebook.py 3.x/test/test_other_widgets.py 3.x/test/test_style.py 3.x/test/test_treeview.py 3.x/ttk.py Message-ID: <20080902173945.6A42C1E4008@bag.python.org> Author: guilherme.polo Date: Tue Sep 2 19:39:44 2008 New Revision: 66159 Log: Notebook.tabs always returns a container now; Style stores its master now; Added tests for the Notebook widget; Moved simulate_mouse_click from treeview test to the support module; Changed some tests in order to always keep only a single Tk window running at a time, this prevents some possible problems that some tests may hit in case it depends on having its window focused while it runs (this problem appeared in the new Notebook tests before this fix). Added: sandbox/trunk/ttk-gsoc/src/2.x/test/test_notebook.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_notebook.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/support.py sandbox/trunk/ttk-gsoc/src/2.x/test/test_extensions.py sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py sandbox/trunk/ttk-gsoc/src/2.x/ttk.py sandbox/trunk/ttk-gsoc/src/3.x/test/support.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_extensions.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/support.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/support.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/support.py Tue Sep 2 19:39:44 2008 @@ -14,3 +14,11 @@ verbosity = 0 runner = unittest.TextTestRunner(sys.stdout, verbosity=verbosity) runner.run(suite) + +def simulate_mouse_click(widget, x, y): + """Generate proper events to click at the x, y position (tries to act + like an X server).""" + widget.event_generate('', x=0, y=0) + widget.event_generate('', x=x, y=y) + widget.event_generate('', x=x, y=y) + widget.event_generate('', x=x, y=y) Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_extensions.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_extensions.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_extensions.py Tue Sep 2 19:39:44 2008 @@ -38,7 +38,7 @@ self.failIf(sys.last_type == Tkinter.TclError) - def x_test_initialization(self): + def test_initialization(self): # master passing x = ttk.LabeledScale() self.failUnlessEqual(x.master, Tkinter._default_root) @@ -170,19 +170,19 @@ class OptionMenuTest(unittest.TestCase): + # XXX Since a StringVar is being created without an explict master, this + # test case can't be the first one to run. def setUp(self): - self.root = Tkinter.Tk() - self.textvar = Tkinter.StringVar(self.root) + self.textvar = Tkinter.StringVar() def tearDown(self): del self.textvar - del self.root def test_widget_destroy(self): - var = Tkinter.StringVar(self.root) - optmenu = ttk.OptionMenu(self.root, var) + var = Tkinter.StringVar() + optmenu = ttk.OptionMenu(None, var) name = var._name optmenu.destroy() self.failUnlessEqual(optmenu.tk.globalgetvar(name), var.get()) @@ -192,9 +192,9 @@ def test_initialization(self): self.failUnlessRaises(Tkinter.TclError, - ttk.OptionMenu, self.root, self.textvar, invalid='thing') + ttk.OptionMenu, None, self.textvar, invalid='thing') - optmenu = ttk.OptionMenu(self.root, self.textvar, 'b', 'a', 'b') + optmenu = ttk.OptionMenu(None, self.textvar, 'b', 'a', 'b') self.failUnlessEqual(optmenu._variable.get(), 'b') self.failUnless(optmenu['menu']) @@ -206,7 +206,7 @@ def test_menu(self): items = ('a', 'b', 'c') default = 'a' - optmenu = ttk.OptionMenu(self.root, self.textvar, default, *items) + optmenu = ttk.OptionMenu(None, self.textvar, default, *items) found_default = False for i in range(len(items)): value = optmenu['menu'].entrycget(i, 'value') @@ -214,10 +214,11 @@ if value == default: found_default = True self.failUnless(found_default) + optmenu.destroy() # default shouldn't be in menu if it is not part of values default = 'd' - optmenu = ttk.OptionMenu(self.root, self.textvar, default, *items) + optmenu = ttk.OptionMenu(None, self.textvar, default, *items) curr = None i = 0 while True: @@ -246,7 +247,7 @@ def cb_test(item): self.failUnlessEqual(item, items[1]) success.append(True) - optmenu = ttk.OptionMenu(self.root, self.textvar, 'a', command=cb_test, + optmenu = ttk.OptionMenu(None, self.textvar, 'a', command=cb_test, *items) optmenu['menu'].invoke(1) if not success: Added: sandbox/trunk/ttk-gsoc/src/2.x/test/test_notebook.py ============================================================================== --- (empty file) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_notebook.py Tue Sep 2 19:39:44 2008 @@ -0,0 +1,197 @@ +import unittest +import Tkinter +import ttk + +import support + +class NotebookTest(unittest.TestCase): + + def setUp(self): + self.nb = ttk.Notebook() + self.child1 = ttk.Label() + self.child2 = ttk.Label() + self.nb.add(self.child1, text='a') + self.nb.add(self.child2, text='b') + + def tearDown(self): + self.child1.destroy() + self.child2.destroy() + self.nb.destroy() + + + def test_tab_identifiers(self): + self.nb.forget(0) + self.nb.hide(self.child2) + self.failUnlessRaises(Tkinter.TclError, self.nb.tab, self.child1) + self.failUnlessEqual(self.nb.index('end'), 1) + self.nb.add(self.child2) + self.failUnlessEqual(self.nb.index('end'), 1) + self.nb.select(self.child2) + + self.failUnless(self.nb.tab('current')) + self.nb.add(self.child1, text='a') + + self.nb.pack() + self.nb.wait_visibility() + self.failUnlessEqual(self.nb.tab('@5,5'), self.nb.tab('current')) + + for i in range(5, 100, 5): + if self.nb.tab('@%d, 5' % i, text=None) == 'a': + break + else: + self.fail("Tab with text 'a' not found") + + + def test_add_and_hidden(self): + self.failUnlessRaises(Tkinter.TclError, self.nb.hide, -1) + self.failUnlessRaises(Tkinter.TclError, self.nb.hide, 'hi') + self.failUnlessRaises(Tkinter.TclError, self.nb.hide, None) + self.failUnlessRaises(Tkinter.TclError, self.nb.add, None) + self.failUnlessRaises(Tkinter.TclError, self.nb.add, ttk.Label(), + unknown='option') + + tabs = self.nb.tabs() + self.nb.hide(self.child1) + self.nb.add(self.child1) + self.failUnlessEqual(self.nb.tabs(), tabs) + + child = ttk.Label() + self.nb.add(child, text='c') + tabs = self.nb.tabs() + + curr = self.nb.index('current') + # verify that the tab gets readded at its previous position + child2_index = self.nb.index(self.child2) + self.nb.hide(self.child2) + self.nb.add(self.child2) + self.failUnlessEqual(self.nb.tabs(), tabs) + self.failUnlessEqual(self.nb.index(self.child2), child2_index) + self.failUnless(str(self.child2) == self.nb.tabs()[child2_index]) + # but the tab next to it (not hidden) is the one selected now + self.failUnlessEqual(self.nb.index('current'), curr + 1) + + + def test_forget(self): + self.failUnlessRaises(Tkinter.TclError, self.nb.forget, -1) + self.failUnlessRaises(Tkinter.TclError, self.nb.forget, 'hi') + self.failUnlessRaises(Tkinter.TclError, self.nb.forget, None) + + tabs = self.nb.tabs() + child1_index = self.nb.index(self.child1) + self.nb.forget(self.child1) + self.failIf(str(self.child1) in self.nb.tabs()) + self.failUnlessEqual(len(tabs) - 1, len(self.nb.tabs())) + + self.nb.add(self.child1) + self.failUnlessEqual(self.nb.index(self.child1), 1) + self.failIf(child1_index == self.nb.index(self.child1)) + + + def test_index(self): + self.failUnlessRaises(Tkinter.TclError, self.nb.index, -1) + self.failUnlessRaises(Tkinter.TclError, self.nb.index, None) + + self.failUnless(isinstance(self.nb.index('end'), int)) + self.failUnlessEqual(self.nb.index(self.child1), 0) + self.failUnlessEqual(self.nb.index(self.child2), 1) + self.failUnlessEqual(self.nb.index('end'), 2) + + + def test_insert(self): + # moving tabs + tabs = self.nb.tabs() + self.nb.insert(1, tabs[0]) + self.failUnlessEqual(self.nb.tabs(), (tabs[1], tabs[0])) + self.nb.insert(self.child1, self.child2) + self.failUnlessEqual(self.nb.tabs(), tabs) + self.nb.insert('end', self.child1) + self.failUnlessEqual(self.nb.tabs(), (tabs[1], tabs[0])) + self.nb.insert('end', 0) + self.failUnlessEqual(self.nb.tabs(), tabs) + # bad moves + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, 2, tabs[0]) + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, -1, tabs[0]) + + # new tab + child3 = ttk.Label() + self.nb.insert(1, child3) + self.failUnlessEqual(self.nb.tabs(), (tabs[0], str(child3), tabs[1])) + self.nb.forget(child3) + self.failUnlessEqual(self.nb.tabs(), tabs) + self.nb.insert(self.child1, child3) + self.failUnlessEqual(self.nb.tabs(), (str(child3), ) + tabs) + self.nb.forget(child3) + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, 2, child3) + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, -1, child3) + + # bad inserts + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, 'end', None) + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, None, 0) + self.failUnlessRaises(Tkinter.TclError, self.nb.insert, None, None) + + + def test_select(self): + self.nb.pack() + self.nb.wait_visibility() + + success = [] + tab_changed = [] + + self.child1.bind('', lambda evt: success.append(True)) + self.nb.bind('<>', + lambda evt: tab_changed.append(True)) + + self.failUnlessEqual(self.nb.select(), str(self.child1)) + self.nb.select(self.child2) + self.failUnless(success) + self.failUnlessEqual(self.nb.select(), str(self.child2)) + + self.nb.update() + self.failUnless(tab_changed) + + + def test_tab(self): + self.failUnlessRaises(Tkinter.TclError, self.nb.tab, -1) + self.failUnlessRaises(Tkinter.TclError, self.nb.tab, 'notab') + self.failUnlessRaises(Tkinter.TclError, self.nb.tab, None) + + self.failUnless(isinstance(self.nb.tab(self.child1), dict)) + self.failUnlessEqual(self.nb.tab(self.child1, text=None), 'a') + self.nb.tab(self.child1, text='abc') + self.failUnlessEqual(self.nb.tab(self.child1, text=None), 'abc') + + + def test_tabs(self): + self.failUnlessEqual(len(self.nb.tabs()), 2) + + self.nb.forget(self.child1) + self.nb.forget(self.child2) + + self.failUnlessEqual(self.nb.tabs(), ()) + + + def test_traversal(self): + self.nb.pack() + self.nb.wait_visibility() + + self.nb.select(0) + + support.simulate_mouse_click(self.nb, 5, 5) + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child2)) + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child1)) + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child2)) + + self.nb.tab(self.child1, text='a', underline=0) + self.nb.enable_traversal() + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child1)) + + +def test_main(): + support.run(NotebookTest) + +if __name__ == "__main__": + test_main() Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py Tue Sep 2 19:39:44 2008 @@ -66,9 +66,7 @@ def test_invoke(self): success = [] - def cb_test(): - success.append(1) - btn = ttk.Button(command=cb_test) + btn = ttk.Button(command=lambda: success.append(1)) btn.invoke() self.failUnless(success) @@ -119,11 +117,10 @@ def test_virtual_event(self): success = [] - def cb_test(evt): - success.append(True) self.combo['values'] = [1] - self.combo.bind('<>', cb_test) + self.combo.bind('<>', + lambda evt: success.append(True)) self.combo.pack() self.combo.wait_visibility() @@ -136,10 +133,8 @@ def test_postcommand(self): success = [] - def cb_test(): - success.append(True) - self.combo['postcommand'] = cb_test + self.combo['postcommand'] = lambda: success.append(True) self.combo.pack() self.combo.wait_visibility() @@ -224,8 +219,7 @@ def test_validation_options(self): success = [] - def test_invalid(): - success.append(True) + test_invalid = lambda: success.append(True) self.entry['validate'] = 'none' self.entry['validatecommand'] = lambda: False @@ -453,10 +447,8 @@ def test_custom_event(self): failure = [1, 1, 1] # will need to be empty - def cb_test(event): - failure.pop() - funcid = self.scale.bind('<>', cb_test) + funcid = self.scale.bind('<>', lambda evt: failure.pop()) self.scale['from'] = 10 self.scale['from_'] = 10 Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py Tue Sep 2 19:39:44 2008 @@ -6,7 +6,12 @@ class StyleTest(unittest.TestCase): - style = ttk.Style() + def setUp(self): + self.style = ttk.Style() + + def tearDown(self): + self.style.master.destroy() + def test_configure(self): style = self.style Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py Tue Sep 2 19:39:44 2008 @@ -13,13 +13,6 @@ def tearDown(self): self.tv.destroy() - def _simulate_mouse_click(self, x, y): - # Generate proper events (trying to act like an X server). - self.tv.event_generate('', x=0, y=0) - self.tv.event_generate('', x=x, y=y) - self.tv.event_generate('', x=x, y=y) - self.tv.event_generate('', x=x, y=y) - def test_bbox(self): self.tv.pack() @@ -201,20 +194,18 @@ def test_heading_callback(self): - def callback(): - success.append(True) - def simulate_heading_click(x, y): - self._simulate_mouse_click(x, y) + support.simulate_mouse_click(self.tv, x, y) self.tv.update_idletasks() + success = [] # no success for now + self.tv.pack() self.tv.wait_visibility() - self.tv.heading('#0', command=callback) + self.tv.heading('#0', command=lambda: success.append(True)) self.tv.column('#0', width=100) self.tv.update() - success = [] # no success for now # assuming that the coords (5, 5) fall into heading #0 simulate_heading_click(5, 5) if not success: @@ -356,15 +347,13 @@ def test_tag_bind(self): - def cb_test(event): - events.append(1) - def cb_test2(event): - events.append(2) events = [] item1 = self.tv.insert('', 'end', tags=['call']) item2 = self.tv.insert('', 'end', tags=['call']) - self.tv.tag_bind('call', '', cb_test) - self.tv.tag_bind('call', '', cb_test2) + self.tv.tag_bind('call', '', + lambda evt: events.append(1)) + self.tv.tag_bind('call', '', + lambda evt: events.append(2)) self.tv.pack() self.tv.wait_visibility() @@ -382,7 +371,7 @@ self.failUnlessEqual(len(pos_y), 2) # item1 and item2 y pos for y in pos_y: - self._simulate_mouse_click(0, y) + support.simulate_mouse_click(self.tv, 0, y) # by now there should be 4 things in the events list, since each # item had a bind for two events that were simulated above Modified: sandbox/trunk/ttk-gsoc/src/2.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/ttk.py Tue Sep 2 19:39:44 2008 @@ -12,7 +12,7 @@ of the widgets appearance lies at Themes. """ -__version__ = "0.2.4" +__version__ = "0.2.5" __author__ = "Guilherme Polo " @@ -360,7 +360,8 @@ Tkinter._default_root = Tkinter.Tk() master = Tkinter._default_root - self.tk = master.tk + self.master = master + self.tk = self.master.tk def configure(self, style, query_opt=None, **kw): @@ -904,7 +905,7 @@ def tabs(self): """Returns a list of windows managed by the notebook.""" - return self.tk.call(self._w, "tabs") + return self.tk.call(self._w, "tabs") or () def enable_traversal(self): Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/support.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/support.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/support.py Tue Sep 2 19:39:44 2008 @@ -14,3 +14,11 @@ verbosity = 0 runner = unittest.TextTestRunner(sys.stdout, verbosity=verbosity) runner.run(suite) + +def simulate_mouse_click(widget, x, y): + """Generate proper events to click at the x, y position (tries to act + like an X server).""" + widget.event_generate('', x=0, y=0) + widget.event_generate('', x=x, y=y) + widget.event_generate('', x=x, y=y) + widget.event_generate('', x=x, y=y) Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_extensions.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_extensions.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_extensions.py Tue Sep 2 19:39:44 2008 @@ -38,7 +38,7 @@ self.failIf(sys.last_type == tkinter.TclError) - def x_test_initialization(self): + def test_initialization(self): # master passing x = ttk.LabeledScale() self.failUnlessEqual(x.master, tkinter._default_root) @@ -170,19 +170,19 @@ class OptionMenuTest(unittest.TestCase): + # XXX Since a StringVar is being created without an explict master, this + # test case can't be the first one to run. def setUp(self): - self.root = tkinter.Tk() - self.textvar = tkinter.StringVar(self.root) + self.textvar = tkinter.StringVar() def tearDown(self): del self.textvar - del self.root def test_widget_destroy(self): - var = tkinter.StringVar(self.root) - optmenu = ttk.OptionMenu(self.root, var) + var = tkinter.StringVar() + optmenu = ttk.OptionMenu(None, var) name = var._name optmenu.destroy() self.failUnlessEqual(optmenu.tk.globalgetvar(name), var.get()) @@ -192,9 +192,9 @@ def test_initialization(self): self.failUnlessRaises(tkinter.TclError, - ttk.OptionMenu, self.root, self.textvar, invalid='thing') + ttk.OptionMenu, None, self.textvar, invalid='thing') - optmenu = ttk.OptionMenu(self.root, self.textvar, 'b', 'a', 'b') + optmenu = ttk.OptionMenu(None, self.textvar, 'b', 'a', 'b') self.failUnlessEqual(optmenu._variable.get(), 'b') self.failUnless(optmenu['menu']) @@ -206,7 +206,7 @@ def test_menu(self): items = ('a', 'b', 'c') default = 'a' - optmenu = ttk.OptionMenu(self.root, self.textvar, default, *items) + optmenu = ttk.OptionMenu(None, self.textvar, default, *items) found_default = False for i in range(len(items)): value = optmenu['menu'].entrycget(i, 'value') @@ -214,10 +214,11 @@ if value == default: found_default = True self.failUnless(found_default) + optmenu.destroy() # default shouldn't be in menu if it is not part of values default = 'd' - optmenu = ttk.OptionMenu(self.root, self.textvar, default, *items) + optmenu = ttk.OptionMenu(None, self.textvar, default, *items) curr = None i = 0 while True: @@ -246,7 +247,7 @@ def cb_test(item): self.failUnlessEqual(item, items[1]) success.append(True) - optmenu = ttk.OptionMenu(self.root, self.textvar, 'a', command=cb_test, + optmenu = ttk.OptionMenu(None, self.textvar, 'a', command=cb_test, *items) optmenu['menu'].invoke(1) if not success: Added: sandbox/trunk/ttk-gsoc/src/3.x/test/test_notebook.py ============================================================================== --- (empty file) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_notebook.py Tue Sep 2 19:39:44 2008 @@ -0,0 +1,197 @@ +import unittest +import tkinter +import ttk + +import support + +class NotebookTest(unittest.TestCase): + + def setUp(self): + self.nb = ttk.Notebook() + self.child1 = ttk.Label() + self.child2 = ttk.Label() + self.nb.add(self.child1, text='a') + self.nb.add(self.child2, text='b') + + def tearDown(self): + self.child1.destroy() + self.child2.destroy() + self.nb.destroy() + + + def test_tab_identifiers(self): + self.nb.forget(0) + self.nb.hide(self.child2) + self.failUnlessRaises(tkinter.TclError, self.nb.tab, self.child1) + self.failUnlessEqual(self.nb.index('end'), 1) + self.nb.add(self.child2) + self.failUnlessEqual(self.nb.index('end'), 1) + self.nb.select(self.child2) + + self.failUnless(self.nb.tab('current')) + self.nb.add(self.child1, text='a') + + self.nb.pack() + self.nb.wait_visibility() + self.failUnlessEqual(self.nb.tab('@5,5'), self.nb.tab('current')) + + for i in range(5, 100, 5): + if self.nb.tab('@%d, 5' % i, text=None) == 'a': + break + else: + self.fail("Tab with text 'a' not found") + + + def test_add_and_hidden(self): + self.failUnlessRaises(tkinter.TclError, self.nb.hide, -1) + self.failUnlessRaises(tkinter.TclError, self.nb.hide, 'hi') + self.failUnlessRaises(tkinter.TclError, self.nb.hide, None) + self.failUnlessRaises(tkinter.TclError, self.nb.add, None) + self.failUnlessRaises(tkinter.TclError, self.nb.add, ttk.Label(), + unknown='option') + + tabs = self.nb.tabs() + self.nb.hide(self.child1) + self.nb.add(self.child1) + self.failUnlessEqual(self.nb.tabs(), tabs) + + child = ttk.Label() + self.nb.add(child, text='c') + tabs = self.nb.tabs() + + curr = self.nb.index('current') + # verify that the tab gets readded at its previous position + child2_index = self.nb.index(self.child2) + self.nb.hide(self.child2) + self.nb.add(self.child2) + self.failUnlessEqual(self.nb.tabs(), tabs) + self.failUnlessEqual(self.nb.index(self.child2), child2_index) + self.failUnless(str(self.child2) == self.nb.tabs()[child2_index]) + # but the tab next to it (not hidden) is the one selected now + self.failUnlessEqual(self.nb.index('current'), curr + 1) + + + def test_forget(self): + self.failUnlessRaises(tkinter.TclError, self.nb.forget, -1) + self.failUnlessRaises(tkinter.TclError, self.nb.forget, 'hi') + self.failUnlessRaises(tkinter.TclError, self.nb.forget, None) + + tabs = self.nb.tabs() + child1_index = self.nb.index(self.child1) + self.nb.forget(self.child1) + self.failIf(str(self.child1) in self.nb.tabs()) + self.failUnlessEqual(len(tabs) - 1, len(self.nb.tabs())) + + self.nb.add(self.child1) + self.failUnlessEqual(self.nb.index(self.child1), 1) + self.failIf(child1_index == self.nb.index(self.child1)) + + + def test_index(self): + self.failUnlessRaises(tkinter.TclError, self.nb.index, -1) + self.failUnlessRaises(tkinter.TclError, self.nb.index, None) + + self.failUnless(isinstance(self.nb.index('end'), int)) + self.failUnlessEqual(self.nb.index(self.child1), 0) + self.failUnlessEqual(self.nb.index(self.child2), 1) + self.failUnlessEqual(self.nb.index('end'), 2) + + + def test_insert(self): + # moving tabs + tabs = self.nb.tabs() + self.nb.insert(1, tabs[0]) + self.failUnlessEqual(self.nb.tabs(), (tabs[1], tabs[0])) + self.nb.insert(self.child1, self.child2) + self.failUnlessEqual(self.nb.tabs(), tabs) + self.nb.insert('end', self.child1) + self.failUnlessEqual(self.nb.tabs(), (tabs[1], tabs[0])) + self.nb.insert('end', 0) + self.failUnlessEqual(self.nb.tabs(), tabs) + # bad moves + self.failUnlessRaises(tkinter.TclError, self.nb.insert, 2, tabs[0]) + self.failUnlessRaises(tkinter.TclError, self.nb.insert, -1, tabs[0]) + + # new tab + child3 = ttk.Label() + self.nb.insert(1, child3) + self.failUnlessEqual(self.nb.tabs(), (tabs[0], str(child3), tabs[1])) + self.nb.forget(child3) + self.failUnlessEqual(self.nb.tabs(), tabs) + self.nb.insert(self.child1, child3) + self.failUnlessEqual(self.nb.tabs(), (str(child3), ) + tabs) + self.nb.forget(child3) + self.failUnlessRaises(tkinter.TclError, self.nb.insert, 2, child3) + self.failUnlessRaises(tkinter.TclError, self.nb.insert, -1, child3) + + # bad inserts + self.failUnlessRaises(tkinter.TclError, self.nb.insert, 'end', None) + self.failUnlessRaises(tkinter.TclError, self.nb.insert, None, 0) + self.failUnlessRaises(tkinter.TclError, self.nb.insert, None, None) + + + def test_select(self): + self.nb.pack() + self.nb.wait_visibility() + + success = [] + tab_changed = [] + + self.child1.bind('', lambda evt: success.append(True)) + self.nb.bind('<>', + lambda evt: tab_changed.append(True)) + + self.failUnlessEqual(self.nb.select(), str(self.child1)) + self.nb.select(self.child2) + self.failUnless(success) + self.failUnlessEqual(self.nb.select(), str(self.child2)) + + self.nb.update() + self.failUnless(tab_changed) + + + def test_tab(self): + self.failUnlessRaises(tkinter.TclError, self.nb.tab, -1) + self.failUnlessRaises(tkinter.TclError, self.nb.tab, 'notab') + self.failUnlessRaises(tkinter.TclError, self.nb.tab, None) + + self.failUnless(isinstance(self.nb.tab(self.child1), dict)) + self.failUnlessEqual(self.nb.tab(self.child1, text=None), 'a') + self.nb.tab(self.child1, text='abc') + self.failUnlessEqual(self.nb.tab(self.child1, text=None), 'abc') + + + def test_tabs(self): + self.failUnlessEqual(len(self.nb.tabs()), 2) + + self.nb.forget(self.child1) + self.nb.forget(self.child2) + + self.failUnlessEqual(self.nb.tabs(), ()) + + + def test_traversal(self): + self.nb.pack() + self.nb.wait_visibility() + + self.nb.select(0) + + support.simulate_mouse_click(self.nb, 5, 5) + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child2)) + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child1)) + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child2)) + + self.nb.tab(self.child1, text='a', underline=0) + self.nb.enable_traversal() + self.nb.event_generate('') + self.failUnlessEqual(self.nb.select(), str(self.child1)) + + +def test_main(): + support.run(NotebookTest) + +if __name__ == "__main__": + test_main() Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py Tue Sep 2 19:39:44 2008 @@ -66,9 +66,7 @@ def test_invoke(self): success = [] - def cb_test(): - success.append(1) - btn = ttk.Button(command=cb_test) + btn = ttk.Button(command=lambda: success.append(1)) btn.invoke() self.failUnless(success) @@ -119,11 +117,10 @@ def test_virtual_event(self): success = [] - def cb_test(evt): - success.append(True) self.combo['values'] = [1] - self.combo.bind('<>', cb_test) + self.combo.bind('<>', + lambda evt: success.append(True)) self.combo.pack() self.combo.wait_visibility() @@ -136,10 +133,8 @@ def test_postcommand(self): success = [] - def cb_test(): - success.append(True) - self.combo['postcommand'] = cb_test + self.combo['postcommand'] = lambda: success.append(True) self.combo.pack() self.combo.wait_visibility() @@ -224,8 +219,7 @@ def test_validation_options(self): success = [] - def test_invalid(): - success.append(True) + test_invalid = lambda: success.append(True) self.entry['validate'] = 'none' self.entry['validatecommand'] = lambda: False @@ -453,10 +447,8 @@ def test_custom_event(self): failure = [1, 1, 1] # will need to be empty - def cb_test(event): - failure.pop() - funcid = self.scale.bind('<>', cb_test) + funcid = self.scale.bind('<>', lambda evt: failure.pop()) self.scale['from'] = 10 self.scale['from_'] = 10 Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py Tue Sep 2 19:39:44 2008 @@ -6,7 +6,12 @@ class StyleTest(unittest.TestCase): - style = ttk.Style() + def setUp(self): + self.style = ttk.Style() + + def tearDown(self): + self.style.master.destroy() + def test_configure(self): style = self.style Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py Tue Sep 2 19:39:44 2008 @@ -13,13 +13,6 @@ def tearDown(self): self.tv.destroy() - def _simulate_mouse_click(self, x, y): - # Generate proper events (trying to act like an X server). - self.tv.event_generate('', x=0, y=0) - self.tv.event_generate('', x=x, y=y) - self.tv.event_generate('', x=x, y=y) - self.tv.event_generate('', x=x, y=y) - def test_bbox(self): self.tv.pack() @@ -201,20 +194,18 @@ def test_heading_callback(self): - def callback(): - success.append(True) - def simulate_heading_click(x, y): - self._simulate_mouse_click(x, y) + support.simulate_mouse_click(self.tv, x, y) self.tv.update_idletasks() + success = [] # no success for now + self.tv.pack() self.tv.wait_visibility() - self.tv.heading('#0', command=callback) + self.tv.heading('#0', command=lambda: success.append(True)) self.tv.column('#0', width=100) self.tv.update() - success = [] # no success for now # assuming that the coords (5, 5) fall into heading #0 simulate_heading_click(5, 5) if not success: @@ -356,15 +347,13 @@ def test_tag_bind(self): - def cb_test(event): - events.append(1) - def cb_test2(event): - events.append(2) events = [] item1 = self.tv.insert('', 'end', tags=['call']) item2 = self.tv.insert('', 'end', tags=['call']) - self.tv.tag_bind('call', '', cb_test) - self.tv.tag_bind('call', '', cb_test2) + self.tv.tag_bind('call', '', + lambda evt: events.append(1)) + self.tv.tag_bind('call', '', + lambda evt: events.append(2)) self.tv.pack() self.tv.wait_visibility() @@ -382,7 +371,7 @@ self.failUnlessEqual(len(pos_y), 2) # item1 and item2 y pos for y in pos_y: - self._simulate_mouse_click(0, y) + support.simulate_mouse_click(self.tv, 0, y) # by now there should be 4 things in the events list, since each # item had a bind for two events that were simulated above Modified: sandbox/trunk/ttk-gsoc/src/3.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Tue Sep 2 19:39:44 2008 @@ -12,7 +12,7 @@ of the widgets appearance lies at Themes. """ -__version__ = "0.2.4" +__version__ = "0.2.5" __author__ = "Guilherme Polo " @@ -360,7 +360,8 @@ tkinter._default_root = tkinter.Tk() master = tkinter._default_root - self.tk = master.tk + self.master = master + self.tk = self.master.tk def configure(self, style, query_opt=None, **kw): @@ -904,7 +905,7 @@ def tabs(self): """Returns a list of windows managed by the notebook.""" - return self.tk.call(self._w, "tabs") + return self.tk.call(self._w, "tabs") or () def enable_traversal(self): From buildbot at python.org Tue Sep 2 21:11:58 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 19:11:58 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080902191158.2A62B1E400A@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/288 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: jesse.noller,marc-andre.lemburg BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_email test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 21:33:41 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 19:33:41 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080902193341.A6C9E1E4006@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/255 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: jesse.noller BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 22:36:44 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Tue, 2 Sep 2008 22:36:44 +0200 (CEST) Subject: [Python-checkins] r66162 - python/trunk/Lib/test/test_asyncore.py Message-ID: <20080902203644.9DBBC1E4006@bag.python.org> Author: hirokazu.yamamoto Date: Tue Sep 2 22:36:44 2008 New Revision: 66162 Log: Issue #3759: test_asyncore.py leaked handle. Reviewed by Amaury Forgeot d'Arc Modified: python/trunk/Lib/test/test_asyncore.py Modified: python/trunk/Lib/test/test_asyncore.py ============================================================================== --- python/trunk/Lib/test/test_asyncore.py (original) +++ python/trunk/Lib/test/test_asyncore.py Tue Sep 2 22:36:44 2008 @@ -389,6 +389,7 @@ def test_recv(self): fd = os.open(TESTFN, os.O_RDONLY) w = asyncore.file_wrapper(fd) + os.close(fd) self.assertNotEqual(w.fd, fd) self.assertNotEqual(w.fileno(), fd) @@ -402,6 +403,7 @@ d2 = "I want to buy some cheese." fd = os.open(TESTFN, os.O_WRONLY | os.O_APPEND) w = asyncore.file_wrapper(fd) + os.close(fd) w.write(d1) w.send(d2) From buildbot at python.org Tue Sep 2 22:50:52 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 20:50:52 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080902205052.41D6A1E400D@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/485 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: jesse.noller BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 2 22:54:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 20:54:30 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080902205430.7A8251E4006@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/233 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,hirokazu.yamamoto,marc-andre.lemburg BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 23:02:23 2008 From: python-checkins at python.org (guilherme.polo) Date: Tue, 2 Sep 2008 23:02:23 +0200 (CEST) Subject: [Python-checkins] r66164 - in sandbox/trunk/ttk-gsoc/src: 2.x/test/README 3.x/test/README Message-ID: <20080902210223.7E4141E4006@bag.python.org> Author: guilherme.polo Date: Tue Sep 2 23:02:23 2008 New Revision: 66164 Log: README added for writing new tests, just a reminder right now. Added: sandbox/trunk/ttk-gsoc/src/2.x/test/README sandbox/trunk/ttk-gsoc/src/3.x/test/README Added: sandbox/trunk/ttk-gsoc/src/2.x/test/README ============================================================================== --- (empty file) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/README Tue Sep 2 23:02:23 2008 @@ -0,0 +1,13 @@ +Writing new tests +================= + +Precaution +---------- + + * New tests should always use only one Tk window at once, like all the + current tests do. This means that you have to destroy the current window + before creating another one, and clean up after the test. The motivation + behind this is that some tests may depend on having its window focused while + it is running to work properly, and it may be hard to force focus on your + window across platforms (right now only test_traversal at test_notebook + depends on this). Added: sandbox/trunk/ttk-gsoc/src/3.x/test/README ============================================================================== --- (empty file) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/README Tue Sep 2 23:02:23 2008 @@ -0,0 +1,13 @@ +Writing new tests +================= + +Precaution +---------- + + * New tests should always use only one Tk window at once, like all the + current tests do. This means that you have to destroy the current window + before creating another one, and clean up after the test. The motivation + behind this is that some tests may depend on having its window focused while + it is running to work properly, and it may be hard to force focus on your + window across platforms (right now only test_traversal at test_notebook + depends on this). From python-checkins at python.org Tue Sep 2 23:09:43 2008 From: python-checkins at python.org (guilherme.polo) Date: Tue, 2 Sep 2008 23:09:43 +0200 (CEST) Subject: [Python-checkins] r66165 - sandbox/trunk/ttk-gsoc/README Message-ID: <20080902210944.00DF31E400B@bag.python.org> Author: guilherme.polo Date: Tue Sep 2 23:09:43 2008 New Revision: 66165 Log: Updated to tell about the test suite Modified: sandbox/trunk/ttk-gsoc/README Modified: sandbox/trunk/ttk-gsoc/README ============================================================================== --- sandbox/trunk/ttk-gsoc/README (original) +++ sandbox/trunk/ttk-gsoc/README Tue Sep 2 23:09:43 2008 @@ -14,9 +14,12 @@ ttk-gsoc/src/3.x depending on your python version) or placing the ttk module somewhere in sys.path. If you are not sure if you have Tile installed correctly or if your -tkinter is compiled against Tk 8.5, you could try creating an instance of -of any class present in the ttk or Tkinter module, like Tkinter.Tk(), -and if no TclError exception is raised then you meet the requirements. +tkinter is compiled against Tk 8.5, try running the test suite: + +$ PYTHONPATH=ttk-gsoc/src/2.x python ttk-gsoc/src/2.x/test/runtests.py + +Be sure to adapt the above line according to your system. + [1] I've shortly used it with Tcl/Tk 8.6a1 too. [2] I've tested it with Tile 0.8.2 and it works, but I would recommend From python-checkins at python.org Tue Sep 2 23:17:05 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Tue, 2 Sep 2008 23:17:05 +0200 (CEST) Subject: [Python-checkins] r66166 - in python/trunk: PC/VS8.0/_bsddb.vcproj PC/VS8.0/_ctypes.vcproj PC/VS8.0/_multiprocessing.vcproj PC/VS8.0/_sqlite3.vcproj PC/VS8.0/pcbuild.sln PC/VS8.0/pyproject.vsprops PC/VS8.0/sqlite3.vcproj PCbuild/vs9to8.py Message-ID: <20080902211705.DA1811E4006@bag.python.org> Author: amaury.forgeotdarc Date: Tue Sep 2 23:17:05 2008 New Revision: 66166 Log: Use vs9to8.py to refresh the Visual Studio 2005 build files. Modified: python/trunk/PC/VS8.0/_bsddb.vcproj python/trunk/PC/VS8.0/_ctypes.vcproj python/trunk/PC/VS8.0/_multiprocessing.vcproj python/trunk/PC/VS8.0/_sqlite3.vcproj python/trunk/PC/VS8.0/pcbuild.sln python/trunk/PC/VS8.0/pyproject.vsprops python/trunk/PC/VS8.0/sqlite3.vcproj python/trunk/PCbuild/vs9to8.py Modified: python/trunk/PC/VS8.0/_bsddb.vcproj ============================================================================== --- python/trunk/PC/VS8.0/_bsddb.vcproj (original) +++ python/trunk/PC/VS8.0/_bsddb.vcproj Tue Sep 2 23:17:05 2008 @@ -42,7 +42,8 @@ /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modified: python/trunk/PC/VS8.0/_ctypes.vcproj ============================================================================== --- python/trunk/PC/VS8.0/_ctypes.vcproj (original) +++ python/trunk/PC/VS8.0/_ctypes.vcproj Tue Sep 2 23:17:05 2008 @@ -642,7 +642,7 @@ > Modified: python/trunk/PC/VS8.0/_multiprocessing.vcproj ============================================================================== --- python/trunk/PC/VS8.0/_multiprocessing.vcproj (original) +++ python/trunk/PC/VS8.0/_multiprocessing.vcproj Tue Sep 2 23:17:05 2008 @@ -3,9 +3,10 @@ ProjectType="Visual C++" Version="8.00" Name="_multiprocessing" - ProjectGUID="{9E48B300-37D1-11DD-8C41-005056C00008}" + ProjectGUID="{9e48b300-37d1-11dd-8c41-005056c00008}" RootNamespace="_multiprocessing" Keyword="Win32Proj" + TargetFrameworkVersion="196613" > - - @@ -203,16 +198,13 @@ Name="VCAppVerifierTool" /> - @@ -230,6 +222,7 @@ /> - @@ -373,6 +363,7 @@ Name="VCLinkerTool" AdditionalDependencies="ws2_32.lib" BaseAddress="0x1e1D0000" + TargetMachine="17" /> @@ -417,7 +408,6 @@ /> Modified: python/trunk/PC/VS8.0/_sqlite3.vcproj ============================================================================== --- python/trunk/PC/VS8.0/_sqlite3.vcproj (original) +++ python/trunk/PC/VS8.0/_sqlite3.vcproj Tue Sep 2 23:17:05 2008 @@ -42,7 +42,7 @@ /> - - - - - - - - - - - - - - - - - - - - @@ -573,167 +535,7 @@ Name="Source Files" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modified: python/trunk/PCbuild/vs9to8.py ============================================================================== --- python/trunk/PCbuild/vs9to8.py (original) +++ python/trunk/PCbuild/vs9to8.py Tue Sep 2 23:17:05 2008 @@ -24,9 +24,9 @@ # Bah. VS8.0 does not expand macros in file names. # Replace them here. - lines = lines.replace('$(sqlite3Dir)', '..\\..\\..\\sqlite-source-3.3.4') - lines = lines.replace('$(bsddbDir)\\..\\..', '..\\..\\..\\db-4.4.20\\build_win32\\..') - lines = lines.replace('$(bsddbDir)', '..\\..\\..\\db-4.4.20\\build_win32') + lines = lines.replace('$(sqlite3Dir)', '..\\..\\..\\sqlite-3.5.9') + lines = lines.replace('$(bsddbDir)\\..\\..', '..\\..\\..\\db-4.7.25.0\\build_windows\\..') + lines = lines.replace('$(bsddbDir)', '..\\..\\..\\db-4.7.25.0\\build_windows') with open(destname, 'wb') as fout: lines = lines.replace("\n", "\r\n") From buildbot at python.org Tue Sep 2 23:21:28 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 21:21:28 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080902212128.6DCFE1E4006@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/1934 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,hirokazu.yamamoto,marc-andre.lemburg BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 2 tests failed: test_bsddb3 test_pickletools Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 2 23:50:48 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Tue, 2 Sep 2008 23:50:48 +0200 (CEST) Subject: [Python-checkins] r66167 - in python/trunk/PC/VS7.1: pythoncore.vcproj readme.txt Message-ID: <20080902215048.2BF8F1E4006@bag.python.org> Author: amaury.forgeotdarc Date: Tue Sep 2 23:50:47 2008 New Revision: 66167 Log: Attempt to correct the build files for the Microsoft VS7.1 compiler. I don't have a working VS7.1, but VS2005 can automatically convert the project and build a working python interpreter. Modified: python/trunk/PC/VS7.1/pythoncore.vcproj python/trunk/PC/VS7.1/readme.txt Modified: python/trunk/PC/VS7.1/pythoncore.vcproj ============================================================================== --- python/trunk/PC/VS7.1/pythoncore.vcproj (original) +++ python/trunk/PC/VS7.1/pythoncore.vcproj Tue Sep 2 23:50:47 2008 @@ -362,6 +362,9 @@ RelativePath="..\..\Modules\cjkcodecs\_codecs_tw.c"> + + + RelativePath="..\..\Modules\_json.c"> Modified: python/trunk/PC/VS7.1/readme.txt ============================================================================== --- python/trunk/PC/VS7.1/readme.txt (original) +++ python/trunk/PC/VS7.1/readme.txt Tue Sep 2 23:50:47 2008 @@ -58,8 +58,8 @@ The following subprojects will generally NOT build out of the box. They wrap code Python doesn't control, and you'll need to download the base -packages first and unpack them into siblings of PCbuilds's parent -directory; for example, if your PCbuild is .......\dist\src\PCbuild\, +packages first and unpack them into siblings of PC's parent +directory; for example, if this directory is ....\dist\trunk\PC\VS7.1, unpack into new subdirectories of dist\. _tkinter @@ -126,7 +126,7 @@ A custom pre-link step in the bz2 project settings should manage to build bzip2-1.0.3\libbz2.lib by magic before bz2.pyd (or bz2_d.pyd) is - linked in PCbuild\. + linked in VS7.1\. However, the bz2 project is not smart enough to remove anything under bzip2-1.0.3\ when you do a clean, so if you want to rebuild bzip2.lib you need to clean up bzip2-1.0.3\ by hand. @@ -222,7 +222,7 @@ svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 To use the extension module in a Python build tree, copy sqlite3.dll into - the PCbuild folder. + the VS7.1 folder. _ssl Python wrapper for the secure sockets library. @@ -239,7 +239,7 @@ http://www.activestate.com/Products/ActivePerl/ as this is used by the OpenSSL build process. Complain to them . - The MSVC project simply invokes PCBuild/build_ssl.py to perform + The MSVC project simply invokes build_ssl.py to perform the build. This Python script locates and builds your OpenSSL installation, then invokes a simple makefile to build the final .pyd. @@ -283,11 +283,11 @@ Note that Microsoft have withdrawn the free MS Toolkit Compiler, so this can no longer be considered a supported option. The instructions are still correct, but you need to already have a copy of the compiler in order to use -them. Microsoft now supply Visual C++ 2005 Express Edition for free, but this +them. Microsoft now supply Visual C++ 2008 Express Edition for free, but this is NOT compatible with Visual C++ 7.1 (it uses a different C runtime), and so cannot be used to build a version of Python compatible with the standard -python.org build. If you are interested in using Visual C++ 2005 Express -Edition, however, you should look at the PCBuild8 directory. +python.org build. If you are interested in using Visual C++ 2008 Express +Edition, however, you should look at the PCBuild directory. Requirements @@ -358,7 +358,7 @@ nant -buildfile:python.build all - from within the PCBuild directory. + from within the VS7.1 directory. Extension modules From python-checkins at python.org Wed Sep 3 00:01:39 2008 From: python-checkins at python.org (guilherme.polo) Date: Wed, 3 Sep 2008 00:01:39 +0200 (CEST) Subject: [Python-checkins] r66168 - in sandbox/trunk/ttk-gsoc/src: 2.x/test/test_other_widgets.py 2.x/test/test_style.py 2.x/test/test_treeview.py 3.x/test/test_other_widgets.py 3.x/test/test_style.py 3.x/test/test_treeview.py Message-ID: <20080902220139.9ACA81E400B@bag.python.org> Author: guilherme.polo Date: Wed Sep 3 00:01:39 2008 New Revision: 66168 Log: Some fixes in order to work under Windows and possibly somewhere else. Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_other_widgets.py Wed Sep 3 00:01:39 2008 @@ -126,7 +126,9 @@ height = self.combo.winfo_height() self._show_drop_down_listbox() + self.combo.update() self.combo.event_generate('') + self.combo.update() self.failUnless(success) Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_style.py Wed Sep 3 00:01:39 2008 @@ -7,7 +7,8 @@ class StyleTest(unittest.TestCase): def setUp(self): - self.style = ttk.Style() + root = Tkinter.Tk() + self.style = ttk.Style(root) def tearDown(self): self.style.master.destroy() Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_treeview.py Wed Sep 3 00:01:39 2008 @@ -214,7 +214,7 @@ success = [] commands = self.tv.master._tclCommands - self.tv.heading('#0', command=self.tv.heading('#0', command=None)) + self.tv.heading('#0', command=str(self.tv.heading('#0', command=None))) self.failUnlessEqual(commands, self.tv.master._tclCommands) simulate_heading_click(5, 5) if not success: Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_other_widgets.py Wed Sep 3 00:01:39 2008 @@ -126,7 +126,9 @@ height = self.combo.winfo_height() self._show_drop_down_listbox() + self.combo.update() self.combo.event_generate('') + self.combo.update() self.failUnless(success) Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_style.py Wed Sep 3 00:01:39 2008 @@ -7,7 +7,8 @@ class StyleTest(unittest.TestCase): def setUp(self): - self.style = ttk.Style() + root = tkinter.Tk() + self.style = ttk.Style(root) def tearDown(self): self.style.master.destroy() Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_treeview.py Wed Sep 3 00:01:39 2008 @@ -214,7 +214,7 @@ success = [] commands = self.tv.master._tclCommands - self.tv.heading('#0', command=self.tv.heading('#0', command=None)) + self.tv.heading('#0', command=str(self.tv.heading('#0', command=None))) self.failUnlessEqual(commands, self.tv.master._tclCommands) simulate_heading_click(5, 5) if not success: From python-checkins at python.org Wed Sep 3 01:19:56 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Wed, 3 Sep 2008 01:19:56 +0200 (CEST) Subject: [Python-checkins] r66171 - in python/trunk: Lib/distutils/msvc9compiler.py Misc/NEWS Message-ID: <20080902231956.627331E4006@bag.python.org> Author: amaury.forgeotdarc Date: Wed Sep 3 01:19:56 2008 New Revision: 66171 Log: Issue 2975: when compiling multiple extension modules with visual studio 2008 from the same python instance, some environment variables (LIB, INCLUDE) would grow without limit. Tested with these statements: distutils.ccompiler.new_compiler().initialize() print os.environ['LIB'] But I don't know how to turn them into reliable unit tests. Modified: python/trunk/Lib/distutils/msvc9compiler.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/distutils/msvc9compiler.py ============================================================================== --- python/trunk/Lib/distutils/msvc9compiler.py (original) +++ python/trunk/Lib/distutils/msvc9compiler.py Wed Sep 3 01:19:56 2008 @@ -193,6 +193,17 @@ reduced_paths.append(np) return reduced_paths +def removeDuplicates(variable): + """Remove duplicate values of an environment variable. + """ + oldList = variable.split(os.pathsep) + newList = [] + for i in oldList: + if i not in newList: + newList.append(i) + newVariable = os.pathsep.join(newList) + return newVariable + def find_vcvarsall(version): """Find the vcvarsall.bat file @@ -252,12 +263,12 @@ if '=' not in line: continue line = line.strip() - key, value = line.split('=') + key, value = line.split('=', 1) key = key.lower() if key in interesting: if value.endswith(os.pathsep): value = value[:-1] - result[key] = value + result[key] = removeDuplicates(value) if len(result) != len(interesting): raise ValueError(str(list(result.keys()))) Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 3 01:19:56 2008 @@ -81,6 +81,10 @@ Extension Modules ----------------- +- Issue #2975: When compiling several extension modules with Visual Studio 2008 + from the same python interpreter, some environment variables would grow + without limit. + - Issue #3643: Added a few more checks to _testcapi to prevent segfaults by exploitation of poor argument checking. From buildbot at python.org Wed Sep 3 01:45:58 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 02 Sep 2008 23:45:58 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080902234558.466481E400B@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/487 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 3 01:57:48 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 01:57:48 +0200 (CEST) Subject: [Python-checkins] r66173 - in sandbox/trunk/2to3: 2to3 lib2to3/fixer_base.py lib2to3/main.py lib2to3/refactor.py lib2to3/tests/support.py lib2to3/tests/test_all_fixers.py lib2to3/tests/test_fixers.py Message-ID: <20080902235748.BEB671E4017@bag.python.org> Author: benjamin.peterson Date: Wed Sep 3 01:57:48 2008 New Revision: 66173 Log: A little 2to3 refactoring #3637 This moves command line logic from refactor.py to a new file called main.py. RefactoringTool now merely deals with the actual fixers and refactoring; options processing for example is abstracted out. Added: sandbox/trunk/2to3/lib2to3/main.py (contents, props changed) Modified: sandbox/trunk/2to3/2to3 sandbox/trunk/2to3/lib2to3/fixer_base.py sandbox/trunk/2to3/lib2to3/refactor.py sandbox/trunk/2to3/lib2to3/tests/support.py sandbox/trunk/2to3/lib2to3/tests/test_all_fixers.py sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Modified: sandbox/trunk/2to3/2to3 ============================================================================== --- sandbox/trunk/2to3/2to3 (original) +++ sandbox/trunk/2to3/2to3 Wed Sep 3 01:57:48 2008 @@ -1,7 +1,6 @@ #!/usr/bin/env python -from lib2to3 import refactor +from lib2to3.main import main import sys import os -fixers = os.path.join(os.path.dirname(refactor.__file__), "fixes") -sys.exit(refactor.main(fixers)) +sys.exit(main("lib2to3.fixes")) Modified: sandbox/trunk/2to3/lib2to3/fixer_base.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/fixer_base.py (original) +++ sandbox/trunk/2to3/lib2to3/fixer_base.py Wed Sep 3 01:57:48 2008 @@ -47,8 +47,8 @@ """Initializer. Subclass may override. Args: - options: an optparse.Values instance which can be used - to inspect the command line options. + options: an dict containing the options passed to RefactoringTool + that could be used to customize the fixer through the command line. log: a list to append warnings and other messages to. """ self.options = options Added: sandbox/trunk/2to3/lib2to3/main.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/main.py Wed Sep 3 01:57:48 2008 @@ -0,0 +1,86 @@ +""" +Main program for 2to3. +""" + +import sys +import os +import logging +import optparse + +from . import refactor + + +def main(fixer_pkg, args=None): + """Main program. + + Args: + fixer_pkg: the name of a package where the fixers are located. + args: optional; a list of command line arguments. If omitted, + sys.argv[1:] is used. + + Returns a suggested exit status (0, 1, 2). + """ + # Set up option parser + parser = optparse.OptionParser(usage="refactor.py [options] file|dir ...") + parser.add_option("-d", "--doctests_only", action="store_true", + help="Fix up doctests only") + parser.add_option("-f", "--fix", action="append", default=[], + help="Each FIX specifies a transformation; default all") + parser.add_option("-l", "--list-fixes", action="store_true", + help="List available transformations (fixes/fix_*.py)") + parser.add_option("-p", "--print-function", action="store_true", + help="Modify the grammar so that print() is a function") + parser.add_option("-v", "--verbose", action="store_true", + help="More verbose logging") + parser.add_option("-w", "--write", action="store_true", + help="Write back modified files") + + # Parse command line arguments + refactor_stdin = False + options, args = parser.parse_args(args) + if options.list_fixes: + print "Available transformations for the -f/--fix option:" + for fixname in refactor.get_all_fix_names(fixer_pkg): + print fixname + if not args: + return 0 + if not args: + print >>sys.stderr, "At least one file or directory argument required." + print >>sys.stderr, "Use --help to show usage." + return 2 + if "-" in args: + refactor_stdin = True + if options.write: + print >>sys.stderr, "Can't write to stdin." + return 2 + + # Set up logging handler + level = logging.DEBUG if options.verbose else logging.INFO + logging.basicConfig(format='%(name)s: %(message)s', level=level) + + # Initialize the refactoring tool + rt_opts = {"print_function" : options.print_function} + avail_names = refactor.get_fixers_from_package(fixer_pkg) + explicit = [] + if options.fix: + explicit = [fixer_pkg + ".fix_" + fix + for fix in options.fix if fix != "all"] + fixer_names = avail_names if "all" in options.fix else explicit + else: + fixer_names = avail_names + rt = refactor.RefactoringTool(fixer_names, rt_opts, explicit=explicit) + + # Refactor all files and directories passed as arguments + if not rt.errors: + if refactor_stdin: + rt.refactor_stdin() + else: + rt.refactor(args, options.write, options.doctests_only) + rt.summarize() + + # Return error status (0 if rt.errors is zero) + return int(bool(rt.errors)) + + +if __name__ == "__main__": + sys.exit(main()) Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Wed Sep 3 01:57:48 2008 @@ -16,8 +16,8 @@ import os import sys import difflib -import optparse import logging +import operator from collections import defaultdict from itertools import chain @@ -30,68 +30,19 @@ from . import fixes from . import pygram -def main(fixer_dir, args=None): - """Main program. - Args: - fixer_dir: directory where fixer modules are located. - args: optional; a list of command line arguments. If omitted, - sys.argv[1:] is used. - - Returns a suggested exit status (0, 1, 2). - """ - # Set up option parser - parser = optparse.OptionParser(usage="refactor.py [options] file|dir ...") - parser.add_option("-d", "--doctests_only", action="store_true", - help="Fix up doctests only") - parser.add_option("-f", "--fix", action="append", default=[], - help="Each FIX specifies a transformation; default all") - parser.add_option("-l", "--list-fixes", action="store_true", - help="List available transformations (fixes/fix_*.py)") - parser.add_option("-p", "--print-function", action="store_true", - help="Modify the grammar so that print() is a function") - parser.add_option("-v", "--verbose", action="store_true", - help="More verbose logging") - parser.add_option("-w", "--write", action="store_true", - help="Write back modified files") - - # Parse command line arguments - options, args = parser.parse_args(args) - if options.list_fixes: - print "Available transformations for the -f/--fix option:" - for fixname in get_all_fix_names(fixer_dir): - print fixname - if not args: - return 0 - if not args: - print >>sys.stderr, "At least one file or directory argument required." - print >>sys.stderr, "Use --help to show usage." - return 2 - - # Set up logging handler - logging.basicConfig(format='%(name)s: %(message)s', level=logging.INFO) - - # Initialize the refactoring tool - rt = RefactoringTool(fixer_dir, options) - - # Refactor all files and directories passed as arguments - if not rt.errors: - rt.refactor_args(args) - rt.summarize() - - # Return error status (0 if rt.errors is zero) - return int(bool(rt.errors)) - - -def get_all_fix_names(fixer_dir): - """Return a sorted list of all available fix names.""" +def get_all_fix_names(fixer_pkg, remove_prefix=True): + """Return a sorted list of all available fix names in the given package.""" + pkg = __import__(fixer_pkg, [], [], ["*"]) + fixer_dir = os.path.dirname(pkg.__file__) fix_names = [] names = os.listdir(fixer_dir) names.sort() for name in names: if name.startswith("fix_") and name.endswith(".py"): - fix_names.append(name[4:-3]) - fix_names.sort() + if remove_prefix: + name = name[4:] + fix_names.append(name[:-3]) return fix_names def get_head_types(pat): @@ -131,22 +82,36 @@ head_nodes[t].append(fixer) return head_nodes +def get_fixers_from_package(pkg_name): + """ + Return the fully qualified names for fixers in the package pkg_name. + """ + return [pkg_name + "." + fix_name + for fix_name in get_all_fix_names(pkg_name, False)] + class RefactoringTool(object): - def __init__(self, fixer_dir, options): + _default_options = {"print_function": False} + + def __init__(self, fixer_names, options=None, explicit=[]): """Initializer. Args: - fixer_dir: directory in which to find fixer modules. - options: an optparse.Values instance. - """ - self.fixer_dir = fixer_dir - self.options = options + fixer_names: a list of fixers to import + options: an dict with configuration. + explicit: a list of fixers to run even if they are explicit. + """ + self.fixers = fixer_names + self.explicit = explicit + self.options = self._default_options.copy() + if options is not None: + self.options.update(options) self.errors = [] self.logger = logging.getLogger("RefactoringTool") self.fixer_log = [] - if self.options.print_function: + self.wrote = False + if self.options["print_function"]: del pygram.python_grammar.keywords["print"] self.driver = driver.Driver(pygram.python_grammar, convert=pytree.convert, @@ -166,30 +131,24 @@ want a pre-order AST traversal, and post_order is the list that want post-order traversal. """ - if os.path.isabs(self.fixer_dir): - fixer_pkg = os.path.relpath(self.fixer_dir, os.path.join(os.path.dirname(__file__), '..')) - else: - fixer_pkg = self.fixer_dir - fixer_pkg = fixer_pkg.replace(os.path.sep, ".") - if os.path.altsep: - fixer_pkg = self.fixer_dir.replace(os.path.altsep, ".") pre_order_fixers = [] post_order_fixers = [] - fix_names = self.options.fix - if not fix_names or "all" in fix_names: - fix_names = get_all_fix_names(self.fixer_dir) - for fix_name in fix_names: + for fix_mod_path in self.fixers: try: - mod = __import__(fixer_pkg + ".fix_" + fix_name, {}, {}, ["*"]) + mod = __import__(fix_mod_path, {}, {}, ["*"]) except ImportError: - self.log_error("Can't find transformation %s", fix_name) + self.log_error("Can't load transformation module %s", + fix_mod_path) continue + fix_name = fix_mod_path.rsplit(".", 1)[-1] + if fix_name.startswith("fix_"): + fix_name = fix_name[4:] parts = fix_name.split("_") class_name = "Fix" + "".join([p.title() for p in parts]) try: fix_class = getattr(mod, class_name) except AttributeError: - self.log_error("Can't find fixes.fix_%s.%s", + self.log_error("Can't find %s.%s", fix_name, class_name) continue try: @@ -198,12 +157,12 @@ self.log_error("Can't instantiate fixes.fix_%s.%s()", fix_name, class_name, exc_info=True) continue - if fixer.explicit and fix_name not in self.options.fix: + if fixer.explicit and self.explicit is not True and \ + fix_mod_path not in self.explicit: self.log_message("Skipping implicit fixer: %s", fix_name) continue - if self.options.verbose: - self.log_message("Adding transformation: %s", fix_name) + self.log_debug("Adding transformation: %s", fix_name) if fixer.order == "pre": pre_order_fixers.append(fixer) elif fixer.order == "post": @@ -211,8 +170,9 @@ else: raise ValueError("Illegal fixer order: %r" % fixer.order) - pre_order_fixers.sort(key=lambda x: x.run_order) - post_order_fixers.sort(key=lambda x: x.run_order) + key_func = operator.attrgetter("run_order") + pre_order_fixers.sort(key=key_func) + post_order_fixers.sort(key=key_func) return (pre_order_fixers, post_order_fixers) def log_error(self, msg, *args, **kwds): @@ -226,36 +186,38 @@ msg = msg % args self.logger.info(msg) - def refactor_args(self, args): - """Refactors files and directories from an argument list.""" - for arg in args: - if arg == "-": - self.refactor_stdin() - elif os.path.isdir(arg): - self.refactor_dir(arg) + def log_debug(self, msg, *args): + if args: + msg = msg % args + self.logger.debug(msg) + + def refactor(self, items, write=False, doctests_only=False): + """Refactor a list of files and directories.""" + for dir_or_file in items: + if os.path.isdir(dir_or_file): + self.refactor_dir(dir_or_file, write) else: - self.refactor_file(arg) + self.refactor_file(dir_or_file, write) - def refactor_dir(self, arg): + def refactor_dir(self, dir_name, write=False, doctests_only=False): """Descends down a directory and refactor every Python file found. Python files are assumed to have a .py extension. Files and subdirectories starting with '.' are skipped. """ - for dirpath, dirnames, filenames in os.walk(arg): - if self.options.verbose: - self.log_message("Descending into %s", dirpath) + for dirpath, dirnames, filenames in os.walk(dir_name): + self.log_debug("Descending into %s", dirpath) dirnames.sort() filenames.sort() for name in filenames: if not name.startswith(".") and name.endswith("py"): fullname = os.path.join(dirpath, name) - self.refactor_file(fullname) + self.refactor_file(fullname, write, doctests_only) # Modify dirnames in-place to remove subdirs with leading dots dirnames[:] = [dn for dn in dirnames if not dn.startswith(".")] - def refactor_file(self, filename): + def refactor_file(self, filename, write=False, doctests_only=False): """Refactors a file.""" try: f = open(filename) @@ -266,21 +228,20 @@ input = f.read() + "\n" # Silence certain parse errors finally: f.close() - if self.options.doctests_only: - if self.options.verbose: - self.log_message("Refactoring doctests in %s", filename) + if doctests_only: + self.log_debug("Refactoring doctests in %s", filename) output = self.refactor_docstring(input, filename) if output != input: - self.write_file(output, filename, input) - elif self.options.verbose: - self.log_message("No doctest changes in %s", filename) + self.processed_file(output, filename, input, write=write) + else: + self.log_debug("No doctest changes in %s", filename) else: tree = self.refactor_string(input, filename) if tree and tree.was_changed: # The [:-1] is to take off the \n we added earlier - self.write_file(str(tree)[:-1], filename) - elif self.options.verbose: - self.log_message("No changes in %s", filename) + self.processed_file(str(tree)[:-1], filename, write=write) + else: + self.log_debug("No changes in %s", filename) def refactor_string(self, data, name): """Refactor a given input string. @@ -299,30 +260,25 @@ self.log_error("Can't parse %s: %s: %s", name, err.__class__.__name__, err) return - if self.options.verbose: - self.log_message("Refactoring %s", name) + self.log_debug("Refactoring %s", name) self.refactor_tree(tree, name) return tree - def refactor_stdin(self): - if self.options.write: - self.log_error("Can't write changes back to stdin") - return + def refactor_stdin(self, doctests_only=False): input = sys.stdin.read() - if self.options.doctests_only: - if self.options.verbose: - self.log_message("Refactoring doctests in stdin") + if doctests_only: + self.log_debug("Refactoring doctests in stdin") output = self.refactor_docstring(input, "") if output != input: - self.write_file(output, "", input) - elif self.options.verbose: - self.log_message("No doctest changes in stdin") + self.processed_file(output, "", input) + else: + self.log_debug("No doctest changes in stdin") else: tree = self.refactor_string(input, "") if tree and tree.was_changed: - self.write_file(str(tree), "", input) - elif self.options.verbose: - self.log_message("No changes in stdin") + self.processed_file(str(tree), "", input) + else: + self.log_debug("No changes in stdin") def refactor_tree(self, tree, name): """Refactors a parse tree (modifying the tree in place). @@ -374,14 +330,9 @@ node.replace(new) node = new - def write_file(self, new_text, filename, old_text=None): - """Writes a string to a file. - - If there are no changes, this is a no-op. - - Otherwise, it first shows a unified diff between the old text - and the new text, and then rewrites the file; the latter is - only done if the write option is set. + def processed_file(self, new_text, filename, old_text=None, write=False): + """ + Called when a file has been refactored, and there are changes. """ self.files.append(filename) if old_text is None: @@ -395,14 +346,22 @@ finally: f.close() if old_text == new_text: - if self.options.verbose: - self.log_message("No changes to %s", filename) + self.log_debug("No changes to %s", filename) return diff_texts(old_text, new_text, filename) - if not self.options.write: - if self.options.verbose: - self.log_message("Not writing changes to %s", filename) + if not write: + self.log_debug("Not writing changes to %s", filename) return + if write: + self.write_file(next_text, filename, old_text) + + def write_file(self, new_text, filename, old_text=None): + """Writes a string to a file. + + It first shows a unified diff between the old text and the new text, and + then rewrites the file; the latter is only done if the write option is + set. + """ backup = filename + ".bak" if os.path.lexists(backup): try: @@ -425,8 +384,8 @@ self.log_error("Can't write %s: %s", filename, err) finally: f.close() - if self.options.verbose: - self.log_message("Wrote changes to %s", filename) + self.log_debug("Wrote changes to %s", filename) + self.wrote = True PS1 = ">>> " PS2 = "... " @@ -485,9 +444,9 @@ try: tree = self.parse_block(block, lineno, indent) except Exception, err: - if self.options.verbose: + if self.log.isEnabledFor(logging.DEBUG): for line in block: - self.log_message("Source: %s", line.rstrip("\n")) + self.log_debug("Source: %s", line.rstrip("\n")) self.log_error("Can't parse docstring in %s line %s: %s: %s", filename, lineno, err.__class__.__name__, err) return block @@ -504,7 +463,7 @@ return block def summarize(self): - if self.options.write: + if self.wrote: were = "were" else: were = "need to be" @@ -576,7 +535,3 @@ "(original)", "(refactored)", lineterm=""): print line - - -if __name__ == "__main__": - sys.exit(main()) Modified: sandbox/trunk/2to3/lib2to3/tests/support.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/support.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/support.py Wed Sep 3 01:57:48 2008 @@ -13,6 +13,7 @@ # Local imports from .. import pytree +from .. import refactor from ..pgen2 import driver test_dir = os.path.dirname(__file__) @@ -38,6 +39,21 @@ def reformat(string): return dedent(string) + "\n\n" +def get_refactorer(fixers=None, options=None): + """ + A convenience function for creating a RefactoringTool for tests. + + fixers is a list of fixers for the RefactoringTool to use. By default + "lib2to3.fixes.*" is used. options is an optional dictionary of options to + be passed to the RefactoringTool. + """ + if fixers is not None: + fixers = ["lib2to3.fixes.fix_" + fix for fix in fixers] + else: + fixers = refactor.get_fixers_from_package("lib2to3.fixes") + options = options or {} + return refactor.RefactoringTool(fixers, options, explicit=True) + def all_project_files(): for dirpath, dirnames, filenames in os.walk(proj_dir): for filename in filenames: Modified: sandbox/trunk/2to3/lib2to3/tests/test_all_fixers.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/test_all_fixers.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/test_all_fixers.py Wed Sep 3 01:57:48 2008 @@ -19,17 +19,10 @@ from .. import pytree from .. import refactor -class Options: - def __init__(self, **kwargs): - for k, v in kwargs.items(): - setattr(self, k, v) - self.verbose = False - class Test_all(support.TestCase): def setUp(self): - options = Options(fix=["all", "idioms", "ws_comma", "buffer"], - print_function=False) - self.refactor = refactor.RefactoringTool("lib2to3/fixes", options) + options = {"print_function" : False} + self.refactor = support.get_refactorer(options=options) def test_all_project_files(self): for filepath in support.all_project_files(): Modified: sandbox/trunk/2to3/lib2to3/tests/test_fixers.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/test_fixers.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Wed Sep 3 01:57:48 2008 @@ -21,19 +21,12 @@ from .. import fixer_util -class Options: - def __init__(self, **kwargs): - for k, v in kwargs.items(): - setattr(self, k, v) - - self.verbose = False - class FixerTestCase(support.TestCase): def setUp(self, fix_list=None): - if not fix_list: + if fix_list is None: fix_list = [self.fixer] - options = Options(fix=fix_list, print_function=False) - self.refactor = refactor.RefactoringTool("lib2to3/fixes", options) + options = {"print_function" : False} + self.refactor = support.get_refactorer(fix_list, options) self.fixer_log = [] self.filename = "" @@ -70,10 +63,10 @@ self.failUnlessEqual(self.fixer_log, []) def assert_runs_after(self, *names): - fix = [self.fixer] - fix.extend(names) - options = Options(fix=fix, print_function=False) - r = refactor.RefactoringTool("lib2to3/fixes", options) + fixes = [self.fixer] + fixes.extend(names) + options = {"print_function" : False} + r = support.get_refactorer(fixes, options) (pre, post) = r.get_fixers() n = "fix_" + self.fixer if post and post[-1].__class__.__module__.endswith(n): From python-checkins at python.org Wed Sep 3 01:58:46 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 01:58:46 +0200 (CEST) Subject: [Python-checkins] r66173 - svn:log Message-ID: <20080902235846.DC9531E401C@bag.python.org> Author: benjamin.peterson Revision: 66173 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -3,3 +3,5 @@ This moves command line logic from refactor.py to a new file called main.py. RefactoringTool now merely deals with the actual fixers and refactoring; options processing for example is abstracted out. + +This patch was reviewed by Gregory P. Smith. From python-checkins at python.org Wed Sep 3 02:21:33 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 02:21:33 +0200 (CEST) Subject: [Python-checkins] r66174 - in python/trunk: Doc/library/2to3.rst Lib/lib2to3 Lib/lib2to3/fixer_base.py Lib/lib2to3/main.py Lib/lib2to3/refactor.py Lib/lib2to3/tests/support.py Lib/lib2to3/tests/test_all_fixers.py Lib/lib2to3/tests/test_fixers.py Message-ID: <20080903002133.56EF61E4006@bag.python.org> Author: benjamin.peterson Date: Wed Sep 3 02:21:32 2008 New Revision: 66174 Log: Merged revisions 66173 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66173 | benjamin.peterson | 2008-09-02 18:57:48 -0500 (Tue, 02 Sep 2008) | 8 lines A little 2to3 refactoring #3637 This moves command line logic from refactor.py to a new file called main.py. RefactoringTool now merely deals with the actual fixers and refactoring; options processing for example is abstracted out. This patch was reviewed by Gregory P. Smith. ........ Added: python/trunk/Lib/lib2to3/main.py - copied unchanged from r66173, /sandbox/trunk/2to3/lib2to3/main.py Modified: python/trunk/Doc/library/2to3.rst python/trunk/Lib/lib2to3/ (props changed) python/trunk/Lib/lib2to3/fixer_base.py python/trunk/Lib/lib2to3/refactor.py python/trunk/Lib/lib2to3/tests/support.py python/trunk/Lib/lib2to3/tests/test_all_fixers.py python/trunk/Lib/lib2to3/tests/test_fixers.py Modified: python/trunk/Doc/library/2to3.rst ============================================================================== --- python/trunk/Doc/library/2to3.rst (original) +++ python/trunk/Doc/library/2to3.rst Wed Sep 3 02:21:32 2008 @@ -5,8 +5,10 @@ .. sectionauthor:: Benjamin Peterson -2to3 is a Python program that reads your Python 2.x source code and applies a -series of *fixers* to transform it into valid Python 3.x code. +2to3 is a Python program that reads Python 2.x source code and applies a series +of *fixers* to transform it into valid Python 3.x code. The standard library +contains a rich set of fixers that will handle almost all code. It is, however, +possible to write your own fixers. Using 2to3 Modified: python/trunk/Lib/lib2to3/fixer_base.py ============================================================================== --- python/trunk/Lib/lib2to3/fixer_base.py (original) +++ python/trunk/Lib/lib2to3/fixer_base.py Wed Sep 3 02:21:32 2008 @@ -47,8 +47,8 @@ """Initializer. Subclass may override. Args: - options: an optparse.Values instance which can be used - to inspect the command line options. + options: an dict containing the options passed to RefactoringTool + that could be used to customize the fixer through the command line. log: a list to append warnings and other messages to. """ self.options = options Modified: python/trunk/Lib/lib2to3/refactor.py ============================================================================== --- python/trunk/Lib/lib2to3/refactor.py (original) +++ python/trunk/Lib/lib2to3/refactor.py Wed Sep 3 02:21:32 2008 @@ -16,8 +16,8 @@ import os import sys import difflib -import optparse import logging +import operator from collections import defaultdict from itertools import chain @@ -30,68 +30,19 @@ from . import fixes from . import pygram -def main(fixer_dir, args=None): - """Main program. - Args: - fixer_dir: directory where fixer modules are located. - args: optional; a list of command line arguments. If omitted, - sys.argv[1:] is used. - - Returns a suggested exit status (0, 1, 2). - """ - # Set up option parser - parser = optparse.OptionParser(usage="refactor.py [options] file|dir ...") - parser.add_option("-d", "--doctests_only", action="store_true", - help="Fix up doctests only") - parser.add_option("-f", "--fix", action="append", default=[], - help="Each FIX specifies a transformation; default all") - parser.add_option("-l", "--list-fixes", action="store_true", - help="List available transformations (fixes/fix_*.py)") - parser.add_option("-p", "--print-function", action="store_true", - help="Modify the grammar so that print() is a function") - parser.add_option("-v", "--verbose", action="store_true", - help="More verbose logging") - parser.add_option("-w", "--write", action="store_true", - help="Write back modified files") - - # Parse command line arguments - options, args = parser.parse_args(args) - if options.list_fixes: - print "Available transformations for the -f/--fix option:" - for fixname in get_all_fix_names(fixer_dir): - print fixname - if not args: - return 0 - if not args: - print >>sys.stderr, "At least one file or directory argument required." - print >>sys.stderr, "Use --help to show usage." - return 2 - - # Set up logging handler - logging.basicConfig(format='%(name)s: %(message)s', level=logging.INFO) - - # Initialize the refactoring tool - rt = RefactoringTool(fixer_dir, options) - - # Refactor all files and directories passed as arguments - if not rt.errors: - rt.refactor_args(args) - rt.summarize() - - # Return error status (0 if rt.errors is zero) - return int(bool(rt.errors)) - - -def get_all_fix_names(fixer_dir): - """Return a sorted list of all available fix names.""" +def get_all_fix_names(fixer_pkg, remove_prefix=True): + """Return a sorted list of all available fix names in the given package.""" + pkg = __import__(fixer_pkg, [], [], ["*"]) + fixer_dir = os.path.dirname(pkg.__file__) fix_names = [] names = os.listdir(fixer_dir) names.sort() for name in names: if name.startswith("fix_") and name.endswith(".py"): - fix_names.append(name[4:-3]) - fix_names.sort() + if remove_prefix: + name = name[4:] + fix_names.append(name[:-3]) return fix_names def get_head_types(pat): @@ -131,22 +82,36 @@ head_nodes[t].append(fixer) return head_nodes +def get_fixers_from_package(pkg_name): + """ + Return the fully qualified names for fixers in the package pkg_name. + """ + return [pkg_name + "." + fix_name + for fix_name in get_all_fix_names(pkg_name, False)] + class RefactoringTool(object): - def __init__(self, fixer_dir, options): + _default_options = {"print_function": False} + + def __init__(self, fixer_names, options=None, explicit=[]): """Initializer. Args: - fixer_dir: directory in which to find fixer modules. - options: an optparse.Values instance. - """ - self.fixer_dir = fixer_dir - self.options = options + fixer_names: a list of fixers to import + options: an dict with configuration. + explicit: a list of fixers to run even if they are explicit. + """ + self.fixers = fixer_names + self.explicit = explicit + self.options = self._default_options.copy() + if options is not None: + self.options.update(options) self.errors = [] self.logger = logging.getLogger("RefactoringTool") self.fixer_log = [] - if self.options.print_function: + self.wrote = False + if self.options["print_function"]: del pygram.python_grammar.keywords["print"] self.driver = driver.Driver(pygram.python_grammar, convert=pytree.convert, @@ -166,30 +131,24 @@ want a pre-order AST traversal, and post_order is the list that want post-order traversal. """ - if os.path.isabs(self.fixer_dir): - fixer_pkg = os.path.relpath(self.fixer_dir, os.path.join(os.path.dirname(__file__), '..')) - else: - fixer_pkg = self.fixer_dir - fixer_pkg = fixer_pkg.replace(os.path.sep, ".") - if os.path.altsep: - fixer_pkg = self.fixer_dir.replace(os.path.altsep, ".") pre_order_fixers = [] post_order_fixers = [] - fix_names = self.options.fix - if not fix_names or "all" in fix_names: - fix_names = get_all_fix_names(self.fixer_dir) - for fix_name in fix_names: + for fix_mod_path in self.fixers: try: - mod = __import__(fixer_pkg + ".fix_" + fix_name, {}, {}, ["*"]) + mod = __import__(fix_mod_path, {}, {}, ["*"]) except ImportError: - self.log_error("Can't find transformation %s", fix_name) + self.log_error("Can't load transformation module %s", + fix_mod_path) continue + fix_name = fix_mod_path.rsplit(".", 1)[-1] + if fix_name.startswith("fix_"): + fix_name = fix_name[4:] parts = fix_name.split("_") class_name = "Fix" + "".join([p.title() for p in parts]) try: fix_class = getattr(mod, class_name) except AttributeError: - self.log_error("Can't find fixes.fix_%s.%s", + self.log_error("Can't find %s.%s", fix_name, class_name) continue try: @@ -198,12 +157,12 @@ self.log_error("Can't instantiate fixes.fix_%s.%s()", fix_name, class_name, exc_info=True) continue - if fixer.explicit and fix_name not in self.options.fix: + if fixer.explicit and self.explicit is not True and \ + fix_mod_path not in self.explicit: self.log_message("Skipping implicit fixer: %s", fix_name) continue - if self.options.verbose: - self.log_message("Adding transformation: %s", fix_name) + self.log_debug("Adding transformation: %s", fix_name) if fixer.order == "pre": pre_order_fixers.append(fixer) elif fixer.order == "post": @@ -211,8 +170,9 @@ else: raise ValueError("Illegal fixer order: %r" % fixer.order) - pre_order_fixers.sort(key=lambda x: x.run_order) - post_order_fixers.sort(key=lambda x: x.run_order) + key_func = operator.attrgetter("run_order") + pre_order_fixers.sort(key=key_func) + post_order_fixers.sort(key=key_func) return (pre_order_fixers, post_order_fixers) def log_error(self, msg, *args, **kwds): @@ -226,36 +186,38 @@ msg = msg % args self.logger.info(msg) - def refactor_args(self, args): - """Refactors files and directories from an argument list.""" - for arg in args: - if arg == "-": - self.refactor_stdin() - elif os.path.isdir(arg): - self.refactor_dir(arg) + def log_debug(self, msg, *args): + if args: + msg = msg % args + self.logger.debug(msg) + + def refactor(self, items, write=False, doctests_only=False): + """Refactor a list of files and directories.""" + for dir_or_file in items: + if os.path.isdir(dir_or_file): + self.refactor_dir(dir_or_file, write) else: - self.refactor_file(arg) + self.refactor_file(dir_or_file, write) - def refactor_dir(self, arg): + def refactor_dir(self, dir_name, write=False, doctests_only=False): """Descends down a directory and refactor every Python file found. Python files are assumed to have a .py extension. Files and subdirectories starting with '.' are skipped. """ - for dirpath, dirnames, filenames in os.walk(arg): - if self.options.verbose: - self.log_message("Descending into %s", dirpath) + for dirpath, dirnames, filenames in os.walk(dir_name): + self.log_debug("Descending into %s", dirpath) dirnames.sort() filenames.sort() for name in filenames: if not name.startswith(".") and name.endswith("py"): fullname = os.path.join(dirpath, name) - self.refactor_file(fullname) + self.refactor_file(fullname, write, doctests_only) # Modify dirnames in-place to remove subdirs with leading dots dirnames[:] = [dn for dn in dirnames if not dn.startswith(".")] - def refactor_file(self, filename): + def refactor_file(self, filename, write=False, doctests_only=False): """Refactors a file.""" try: f = open(filename) @@ -266,21 +228,20 @@ input = f.read() + "\n" # Silence certain parse errors finally: f.close() - if self.options.doctests_only: - if self.options.verbose: - self.log_message("Refactoring doctests in %s", filename) + if doctests_only: + self.log_debug("Refactoring doctests in %s", filename) output = self.refactor_docstring(input, filename) if output != input: - self.write_file(output, filename, input) - elif self.options.verbose: - self.log_message("No doctest changes in %s", filename) + self.processed_file(output, filename, input, write=write) + else: + self.log_debug("No doctest changes in %s", filename) else: tree = self.refactor_string(input, filename) if tree and tree.was_changed: # The [:-1] is to take off the \n we added earlier - self.write_file(str(tree)[:-1], filename) - elif self.options.verbose: - self.log_message("No changes in %s", filename) + self.processed_file(str(tree)[:-1], filename, write=write) + else: + self.log_debug("No changes in %s", filename) def refactor_string(self, data, name): """Refactor a given input string. @@ -299,30 +260,25 @@ self.log_error("Can't parse %s: %s: %s", name, err.__class__.__name__, err) return - if self.options.verbose: - self.log_message("Refactoring %s", name) + self.log_debug("Refactoring %s", name) self.refactor_tree(tree, name) return tree - def refactor_stdin(self): - if self.options.write: - self.log_error("Can't write changes back to stdin") - return + def refactor_stdin(self, doctests_only=False): input = sys.stdin.read() - if self.options.doctests_only: - if self.options.verbose: - self.log_message("Refactoring doctests in stdin") + if doctests_only: + self.log_debug("Refactoring doctests in stdin") output = self.refactor_docstring(input, "") if output != input: - self.write_file(output, "", input) - elif self.options.verbose: - self.log_message("No doctest changes in stdin") + self.processed_file(output, "", input) + else: + self.log_debug("No doctest changes in stdin") else: tree = self.refactor_string(input, "") if tree and tree.was_changed: - self.write_file(str(tree), "", input) - elif self.options.verbose: - self.log_message("No changes in stdin") + self.processed_file(str(tree), "", input) + else: + self.log_debug("No changes in stdin") def refactor_tree(self, tree, name): """Refactors a parse tree (modifying the tree in place). @@ -374,14 +330,9 @@ node.replace(new) node = new - def write_file(self, new_text, filename, old_text=None): - """Writes a string to a file. - - If there are no changes, this is a no-op. - - Otherwise, it first shows a unified diff between the old text - and the new text, and then rewrites the file; the latter is - only done if the write option is set. + def processed_file(self, new_text, filename, old_text=None, write=False): + """ + Called when a file has been refactored, and there are changes. """ self.files.append(filename) if old_text is None: @@ -395,14 +346,22 @@ finally: f.close() if old_text == new_text: - if self.options.verbose: - self.log_message("No changes to %s", filename) + self.log_debug("No changes to %s", filename) return diff_texts(old_text, new_text, filename) - if not self.options.write: - if self.options.verbose: - self.log_message("Not writing changes to %s", filename) + if not write: + self.log_debug("Not writing changes to %s", filename) return + if write: + self.write_file(next_text, filename, old_text) + + def write_file(self, new_text, filename, old_text=None): + """Writes a string to a file. + + It first shows a unified diff between the old text and the new text, and + then rewrites the file; the latter is only done if the write option is + set. + """ backup = filename + ".bak" if os.path.lexists(backup): try: @@ -425,8 +384,8 @@ self.log_error("Can't write %s: %s", filename, err) finally: f.close() - if self.options.verbose: - self.log_message("Wrote changes to %s", filename) + self.log_debug("Wrote changes to %s", filename) + self.wrote = True PS1 = ">>> " PS2 = "... " @@ -485,9 +444,9 @@ try: tree = self.parse_block(block, lineno, indent) except Exception, err: - if self.options.verbose: + if self.log.isEnabledFor(logging.DEBUG): for line in block: - self.log_message("Source: %s", line.rstrip("\n")) + self.log_debug("Source: %s", line.rstrip("\n")) self.log_error("Can't parse docstring in %s line %s: %s: %s", filename, lineno, err.__class__.__name__, err) return block @@ -504,7 +463,7 @@ return block def summarize(self): - if self.options.write: + if self.wrote: were = "were" else: were = "need to be" @@ -576,7 +535,3 @@ "(original)", "(refactored)", lineterm=""): print line - - -if __name__ == "__main__": - sys.exit(main()) Modified: python/trunk/Lib/lib2to3/tests/support.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/support.py (original) +++ python/trunk/Lib/lib2to3/tests/support.py Wed Sep 3 02:21:32 2008 @@ -13,6 +13,7 @@ # Local imports from .. import pytree +from .. import refactor from ..pgen2 import driver test_dir = os.path.dirname(__file__) @@ -38,6 +39,21 @@ def reformat(string): return dedent(string) + "\n\n" +def get_refactorer(fixers=None, options=None): + """ + A convenience function for creating a RefactoringTool for tests. + + fixers is a list of fixers for the RefactoringTool to use. By default + "lib2to3.fixes.*" is used. options is an optional dictionary of options to + be passed to the RefactoringTool. + """ + if fixers is not None: + fixers = ["lib2to3.fixes.fix_" + fix for fix in fixers] + else: + fixers = refactor.get_fixers_from_package("lib2to3.fixes") + options = options or {} + return refactor.RefactoringTool(fixers, options, explicit=True) + def all_project_files(): for dirpath, dirnames, filenames in os.walk(proj_dir): for filename in filenames: Modified: python/trunk/Lib/lib2to3/tests/test_all_fixers.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/test_all_fixers.py (original) +++ python/trunk/Lib/lib2to3/tests/test_all_fixers.py Wed Sep 3 02:21:32 2008 @@ -19,17 +19,10 @@ from .. import pytree from .. import refactor -class Options: - def __init__(self, **kwargs): - for k, v in kwargs.items(): - setattr(self, k, v) - self.verbose = False - class Test_all(support.TestCase): def setUp(self): - options = Options(fix=["all", "idioms", "ws_comma", "buffer"], - print_function=False) - self.refactor = refactor.RefactoringTool("lib2to3/fixes", options) + options = {"print_function" : False} + self.refactor = support.get_refactorer(options=options) def test_all_project_files(self): for filepath in support.all_project_files(): Modified: python/trunk/Lib/lib2to3/tests/test_fixers.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/test_fixers.py (original) +++ python/trunk/Lib/lib2to3/tests/test_fixers.py Wed Sep 3 02:21:32 2008 @@ -21,19 +21,12 @@ from .. import fixer_util -class Options: - def __init__(self, **kwargs): - for k, v in kwargs.items(): - setattr(self, k, v) - - self.verbose = False - class FixerTestCase(support.TestCase): def setUp(self, fix_list=None): - if not fix_list: + if fix_list is None: fix_list = [self.fixer] - options = Options(fix=fix_list, print_function=False) - self.refactor = refactor.RefactoringTool("lib2to3/fixes", options) + options = {"print_function" : False} + self.refactor = support.get_refactorer(fix_list, options) self.fixer_log = [] self.filename = "" @@ -70,10 +63,10 @@ self.failUnlessEqual(self.fixer_log, []) def assert_runs_after(self, *names): - fix = [self.fixer] - fix.extend(names) - options = Options(fix=fix, print_function=False) - r = refactor.RefactoringTool("lib2to3/fixes", options) + fixes = [self.fixer] + fixes.extend(names) + options = {"print_function" : False} + r = support.get_refactorer(fixes, options) (pre, post) = r.get_fixers() n = "fix_" + self.fixer if post and post[-1].__class__.__module__.endswith(n): From buildbot at python.org Wed Sep 3 02:30:14 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 00:30:14 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080903003032.9B4ED1E4006@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/258 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 02:40:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 00:40:07 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080903004007.DFD3C1E400B@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/1937 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 02:51:09 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 00:51:09 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080903005109.26D641E4016@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/236 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Wed Sep 3 03:53:28 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 03:53:28 +0200 (CEST) Subject: [Python-checkins] r66175 - python/trunk/Tools/scripts/2to3 Message-ID: <20080903015328.BA4791E4016@bag.python.org> Author: benjamin.peterson Date: Wed Sep 3 03:53:28 2008 New Revision: 66175 Log: update 2to3 script from 2to3 trunk Modified: python/trunk/Tools/scripts/2to3 Modified: python/trunk/Tools/scripts/2to3 ============================================================================== --- python/trunk/Tools/scripts/2to3 (original) +++ python/trunk/Tools/scripts/2to3 Wed Sep 3 03:53:28 2008 @@ -1,7 +1,6 @@ #!/usr/bin/env python -from lib2to3 import refactor +from lib2to3.main import main import sys import os -fixers = os.path.join(os.path.dirname(refactor.__file__), "fixes") -sys.exit(refactor.main(fixers)) +sys.exit(main("lib2to3.fixes")) From python-checkins at python.org Wed Sep 3 04:04:06 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 04:04:06 +0200 (CEST) Subject: [Python-checkins] r66176 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080903020406.91FD31E4006@bag.python.org> Author: benjamin.peterson Date: Wed Sep 3 04:04:06 2008 New Revision: 66176 Log: fix typo Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Wed Sep 3 04:04:06 2008 @@ -353,7 +353,7 @@ self.log_debug("Not writing changes to %s", filename) return if write: - self.write_file(next_text, filename, old_text) + self.write_file(new_text, filename, old_text) def write_file(self, new_text, filename, old_text=None): """Writes a string to a file. From python-checkins at python.org Wed Sep 3 04:14:03 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 04:14:03 +0200 (CEST) Subject: [Python-checkins] r66177 - in python/trunk/Lib/lib2to3: refactor.py Message-ID: <20080903021403.595E61E4006@bag.python.org> Author: benjamin.peterson Date: Wed Sep 3 04:14:03 2008 New Revision: 66177 Log: Merged revisions 66176 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66176 | benjamin.peterson | 2008-09-02 21:04:06 -0500 (Tue, 02 Sep 2008) | 1 line fix typo ........ Modified: python/trunk/Lib/lib2to3/ (props changed) python/trunk/Lib/lib2to3/refactor.py Modified: python/trunk/Lib/lib2to3/refactor.py ============================================================================== --- python/trunk/Lib/lib2to3/refactor.py (original) +++ python/trunk/Lib/lib2to3/refactor.py Wed Sep 3 04:14:03 2008 @@ -353,7 +353,7 @@ self.log_debug("Not writing changes to %s", filename) return if write: - self.write_file(next_text, filename, old_text) + self.write_file(new_text, filename, old_text) def write_file(self, new_text, filename, old_text=None): """Writes a string to a file. From buildbot at python.org Wed Sep 3 04:39:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 02:39:01 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080903023901.429E01E4017@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/239 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 05:22:26 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 03:22:26 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 3.0 Message-ID: <20080903032226.979931E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%203.0/builds/696 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 6 tests failed: test_bsddb test_dbm test_deque test_sys test_tarfile test_timeout ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 199, in test_close_and_reopen self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 413, in test_keyordering self.assertEqual(self.f.first()[0], keys[0]) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 199, in test_close_and_reopen self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 413, in test_keyordering self.assertEqual(self.f.first()[0], keys[0]) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 413, in test_keyordering self.assertEqual(self.f.first()[0], keys[0]) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_anydbm_creation (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 65, in test_anydbm_creation self.read_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 96, in read_helper keys = self.keys_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys_helper keys = sorted(k.decode("ascii") for k in f.keys()) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys = sorted(k.decode("ascii") for k in f.keys()) AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_anydbm_keys (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 84, in test_anydbm_keys keys = self.keys_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys_helper keys = sorted(k.decode("ascii") for k in f.keys()) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys = sorted(k.decode("ascii") for k in f.keys()) AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_anydbm_modification (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 72, in test_anydbm_modification self.read_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 96, in read_helper keys = self.keys_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys_helper keys = sorted(k.decode("ascii") for k in f.keys()) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys = sorted(k.decode("ascii") for k in f.keys()) AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_anydbm_read (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 78, in test_anydbm_read self.read_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 96, in read_helper keys = self.keys_helper(f) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys_helper keys = sorted(k.decode("ascii") for k in f.keys()) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 52, in keys = sorted(k.decode("ascii") for k in f.keys()) AttributeError: 'str' object has no attribute 'decode' ====================================================================== FAIL: test_whichdb (test.test_dbm.WhichDBTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 131, in test_whichdb self.assertTrue(f[b"1"] == b"1") AssertionError: None ====================================================================== FAIL: test_anydbm_access (test.test_dbm.TestCase-dbm.bsd) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_dbm.py", line 92, in test_anydbm_access assert(f[key] == b"Python:") AssertionError ====================================================================== FAIL: test_maxlen (test.test_deque.TestBasic) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_deque.py", line 54, in test_maxlen self.assertEqual(repr(d), 'deque([7, 8, 9], maxlen=3)') AssertionError: 'deque([7, 8, 9], maxlen=%Id)' != 'deque([7, 8, 9], maxlen=3)' ====================================================================== FAIL: test_objecttypes (test.test_sys.SizeofTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_sys.py", line 583, in test_objecttypes check(range(66000), size(h + '3l')) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_sys.py", line 399, in check_sizeof self.assertEqual(result, size, msg) AssertionError: wrong size for : got 56, expected 48 sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 05:37:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 03:37:56 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080903033756.2A31D1E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/489 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 06:09:00 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 04:09:00 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080903040900.60A371E4006@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/513 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 06:42:38 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 04:42:38 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080903044238.E3FA91E4006@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3886 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Wed Sep 3 07:57:49 2008 From: python-checkins at python.org (gregory.p.smith) Date: Wed, 3 Sep 2008 07:57:49 +0200 (CEST) Subject: [Python-checkins] r66179 - in python/trunk: configure configure.in Message-ID: <20080903055749.9C57D1E4006@bag.python.org> Author: gregory.p.smith Date: Wed Sep 3 07:57:48 2008 New Revision: 66179 Log: Fix issue 3645: OpenBSD required -lcurses when linking with readline to get the correct completion_matches function to avoid crashes on x86_64 (amd64). I don't have OpenBSD to test myself. I tested that it does not break anything on linux. It is simple. Modified: python/trunk/configure python/trunk/configure.in Modified: python/trunk/configure ============================================================================== --- python/trunk/configure (original) +++ python/trunk/configure Wed Sep 3 07:57:48 2008 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 65183 . +# From configure.in Revision: 65652 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.6. # @@ -2076,7 +2076,7 @@ # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined, # even though select is a POSIX function. Reported by J. Ribbens. # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish. - OpenBSD/2.* | OpenBSD/3.[0123456789] | OpenBSD/4.[0123]) + OpenBSD*) define_xopen_source=no # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is # also defined. This can be overridden by defining _BSD_SOURCE @@ -2086,6 +2086,8 @@ #define _BSD_SOURCE 1 _ACEOF + # OpenBSD's readline library needs the libcurses + READLINE_LIBS="-lcurses" ;; # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by @@ -22965,7 +22967,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" +LIBS="-lreadline $READLINE_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23111,7 +23113,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" +LIBS="-lreadline $READLINE_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23239,7 +23241,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" +LIBS="-lreadline $READLINE_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23310,7 +23312,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" +LIBS="-lreadline $READLINE_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -23381,7 +23383,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS -LIBS="-lreadline $LIBS" +LIBS="-lreadline $READLINE_LIBS $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF Modified: python/trunk/configure.in ============================================================================== --- python/trunk/configure.in (original) +++ python/trunk/configure.in Wed Sep 3 07:57:48 2008 @@ -251,12 +251,14 @@ # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined, # even though select is a POSIX function. Reported by J. Ribbens. # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish. - OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123@:>@) + OpenBSD*) define_xopen_source=no # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is # also defined. This can be overridden by defining _BSD_SOURCE # As this has a different meaning on Linux, only define it on OpenBSD AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features]) + # OpenBSD's readline library needs the libcurses + READLINE_LIBS="-lcurses" ;; # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by @@ -3324,7 +3326,7 @@ # check where readline lives # save the value of LIBS so we don't actually link Python with readline LIBS_no_readline=$LIBS -AC_CHECK_LIB(readline, readline) +AC_CHECK_LIB(readline, readline, , ,$READLINE_LIBS) if test "$ac_cv_have_readline_readline" = no then AC_CHECK_LIB(termcap, readline) @@ -3333,7 +3335,7 @@ # check for readline 2.1 AC_CHECK_LIB(readline, rl_callback_handler_install, AC_DEFINE(HAVE_RL_CALLBACK, 1, - [Define if you have readline 2.1]), , ) + [Define if you have readline 2.1]), ,$READLINE_LIBS) # check for readline 2.2 AC_TRY_CPP([#include ], @@ -3349,17 +3351,17 @@ # check for readline 4.0 AC_CHECK_LIB(readline, rl_pre_input_hook, AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1, - [Define if you have readline 4.0]), , ) + [Define if you have readline 4.0]), ,$READLINE_LIBS) # also in 4.0 AC_CHECK_LIB(readline, rl_completion_display_matches_hook, AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1, - [Define if you have readline 4.0]), , ) + [Define if you have readline 4.0]), ,$READLINE_LIBS) # check for readline 4.2 AC_CHECK_LIB(readline, rl_completion_matches, AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1, - [Define if you have readline 4.2]), , ) + [Define if you have readline 4.2]), ,$READLINE_LIBS) # also in readline 4.2 AC_TRY_CPP([#include ], From python-checkins at python.org Wed Sep 3 11:20:05 2008 From: python-checkins at python.org (vinay.sajip) Date: Wed, 3 Sep 2008 11:20:05 +0200 (CEST) Subject: [Python-checkins] r66180 - in python/trunk: Lib/logging/config.py Lib/test/test_logging.py Misc/NEWS Message-ID: <20080903092005.B52AD1E400E@bag.python.org> Author: vinay.sajip Date: Wed Sep 3 11:20:05 2008 New Revision: 66180 Log: Issue #3726: Allowed spaces in separators in logging configuration files. Modified: python/trunk/Lib/logging/config.py python/trunk/Lib/test/test_logging.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/logging/config.py ============================================================================== --- python/trunk/Lib/logging/config.py (original) +++ python/trunk/Lib/logging/config.py Wed Sep 3 11:20:05 2008 @@ -22,7 +22,7 @@ Should work under Python versions >= 1.5.2, except that source line information is not available unless 'sys._getframe()' is. -Copyright (C) 2001-2007 Vinay Sajip. All Rights Reserved. +Copyright (C) 2001-2008 Vinay Sajip. All Rights Reserved. To use, simply 'import logging' and log away! """ @@ -101,6 +101,8 @@ found = getattr(found, n) return found +def _strip_spaces(alist): + return map(lambda x: string.strip(x), alist) def _create_formatters(cp): """Create and return formatters""" @@ -108,9 +110,10 @@ if not len(flist): return {} flist = string.split(flist, ",") + flist = _strip_spaces(flist) formatters = {} for form in flist: - sectname = "formatter_%s" % string.strip(form) + sectname = "formatter_%s" % form opts = cp.options(sectname) if "format" in opts: fs = cp.get(sectname, "format", 1) @@ -136,10 +139,11 @@ if not len(hlist): return {} hlist = string.split(hlist, ",") + hlist = _strip_spaces(hlist) handlers = {} fixups = [] #for inter-handler references for hand in hlist: - sectname = "handler_%s" % string.strip(hand) + sectname = "handler_%s" % hand klass = cp.get(sectname, "class") opts = cp.options(sectname) if "formatter" in opts: @@ -192,8 +196,9 @@ hlist = cp.get(sectname, "handlers") if len(hlist): hlist = string.split(hlist, ",") + hlist = _strip_spaces(hlist) for hand in hlist: - log.addHandler(handlers[string.strip(hand)]) + log.addHandler(handlers[hand]) #and now the others... #we don't want to lose the existing loggers, @@ -243,8 +248,9 @@ hlist = cp.get(sectname, "handlers") if len(hlist): hlist = string.split(hlist, ",") + hlist = _strip_spaces(hlist) for hand in hlist: - logger.addHandler(handlers[string.strip(hand)]) + logger.addHandler(handlers[hand]) #Disable any old loggers. There's no point deleting #them as other threads may continue to hold references Modified: python/trunk/Lib/test/test_logging.py ============================================================================== --- python/trunk/Lib/test/test_logging.py (original) +++ python/trunk/Lib/test/test_logging.py Wed Sep 3 11:20:05 2008 @@ -587,6 +587,48 @@ # config5 specifies a custom handler class to be loaded config5 = config1.replace('class=StreamHandler', 'class=logging.StreamHandler') + # config6 uses ', ' delimiters in the handlers and formatters sections + config6 = """ + [loggers] + keys=root,parser + + [handlers] + keys=hand1, hand2 + + [formatters] + keys=form1, form2 + + [logger_root] + level=WARNING + handlers= + + [logger_parser] + level=DEBUG + handlers=hand1 + propagate=1 + qualname=compiler.parser + + [handler_hand1] + class=StreamHandler + level=NOTSET + formatter=form1 + args=(sys.stdout,) + + [handler_hand2] + class=FileHandler + level=NOTSET + formatter=form1 + args=('test.blah', 'a') + + [formatter_form1] + format=%(levelname)s ++ %(message)s + datefmt= + + [formatter_form2] + format=%(message)s + datefmt= + """ + def apply_config(self, conf): try: fn = tempfile.mktemp(".ini") @@ -653,6 +695,9 @@ def test_config5_ok(self): self.test_config1_ok(config=self.config5) + def test_config6_ok(self): + self.test_config1_ok(config=self.config6) + class LogRecordStreamHandler(StreamRequestHandler): """Handler for a streaming logging request. It saves the log message in the Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 3 11:20:05 2008 @@ -56,6 +56,8 @@ Library ------- +- Issue #3726: Allowed spaces in separators in logging configuration files. + - Issue #3719: platform.architecture() fails if there are spaces in the path to the Python binary. From buildbot at python.org Wed Sep 3 11:31:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 09:31:53 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080903093153.C24FB1E4023@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/241 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From ncoghlan at gmail.com Wed Sep 3 12:28:20 2008 From: ncoghlan at gmail.com (Nick Coghlan) Date: Wed, 03 Sep 2008 20:28:20 +1000 Subject: [Python-checkins] r66171 - in python/trunk: Lib/distutils/msvc9compiler.py Misc/NEWS In-Reply-To: <20080902231956.627331E4006@bag.python.org> References: <20080902231956.627331E4006@bag.python.org> Message-ID: <48BE66C4.9070209@gmail.com> amaury.forgeotdarc wrote: > Author: amaury.forgeotdarc > Date: Wed Sep 3 01:19:56 2008 > New Revision: 66171 > > Log: > Issue 2975: when compiling multiple extension modules with visual studio 2008 > from the same python instance, some environment variables (LIB, INCLUDE) > would grow without limit. > > Tested with these statements: > distutils.ccompiler.new_compiler().initialize() > print os.environ['LIB'] > But I don't know how to turn them into reliable unit tests. test_cmd_line and test_cmd_line_script give some examples of spawning new Python processes in order to test things that you don't want to run in the current process. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org From python-checkins at python.org Wed Sep 3 13:13:57 2008 From: python-checkins at python.org (marc-andre.lemburg) Date: Wed, 3 Sep 2008 13:13:57 +0200 (CEST) Subject: [Python-checkins] r66181 - in python/trunk: Lib/distutils/dist.py Lib/distutils/tests/test_dist.py Misc/NEWS Message-ID: <20080903111357.3DF511E4008@bag.python.org> Author: marc-andre.lemburg Date: Wed Sep 3 13:13:56 2008 New Revision: 66181 Log: Issue #2562: Fix distutils PKG-INFO writing logic to allow having non-ascii characters and Unicode in setup.py meta-data. Modified: python/trunk/Lib/distutils/dist.py python/trunk/Lib/distutils/tests/test_dist.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/distutils/dist.py ============================================================================== --- python/trunk/Lib/distutils/dist.py (original) +++ python/trunk/Lib/distutils/dist.py Wed Sep 3 13:13:56 2008 @@ -23,6 +23,9 @@ from distutils import log from distutils.debug import DEBUG +# Encoding used for the PKG-INFO files +PKG_INFO_ENCODING = 'utf-8' + # Regex to define acceptable Distutils command names. This is not *quite* # the same as a Python NAME -- I don't allow leading underscores. The fact # that they're very similar is no coincidence; the default naming scheme is @@ -1084,23 +1087,23 @@ if self.provides or self.requires or self.obsoletes: version = '1.1' - file.write('Metadata-Version: %s\n' % version) - file.write('Name: %s\n' % self.get_name() ) - file.write('Version: %s\n' % self.get_version() ) - file.write('Summary: %s\n' % self.get_description() ) - file.write('Home-page: %s\n' % self.get_url() ) - file.write('Author: %s\n' % self.get_contact() ) - file.write('Author-email: %s\n' % self.get_contact_email() ) - file.write('License: %s\n' % self.get_license() ) + self._write_field(file, 'Metadata-Version', version) + self._write_field(file, 'Name', self.get_name()) + self._write_field(file, 'Version', self.get_version()) + self._write_field(file, 'Summary', self.get_description()) + self._write_field(file, 'Home-page', self.get_url()) + self._write_field(file, 'Author', self.get_contact()) + self._write_field(file, 'Author-email', self.get_contact_email()) + self._write_field(file, 'License', self.get_license()) if self.download_url: - file.write('Download-URL: %s\n' % self.download_url) + self._write_field(file, 'Download-URL', self.download_url) - long_desc = rfc822_escape( self.get_long_description() ) - file.write('Description: %s\n' % long_desc) + long_desc = rfc822_escape( self.get_long_description()) + self._write_field(file, 'Description', long_desc) keywords = string.join( self.get_keywords(), ',') if keywords: - file.write('Keywords: %s\n' % keywords ) + self._write_field(file, 'Keywords', keywords) self._write_list(file, 'Platform', self.get_platforms()) self._write_list(file, 'Classifier', self.get_classifiers()) @@ -1110,9 +1113,18 @@ self._write_list(file, 'Provides', self.get_provides()) self._write_list(file, 'Obsoletes', self.get_obsoletes()) + def _write_field(self, file, name, value): + + if isinstance(value, unicode): + value = value.encode(PKG_INFO_ENCODING) + else: + value = str(value) + file.write('%s: %s\n' % (name, value)) + def _write_list (self, file, name, values): + for value in values: - file.write('%s: %s\n' % (name, value)) + self._write_field(file, name, value) # -- Metadata query methods ---------------------------------------- Modified: python/trunk/Lib/distutils/tests/test_dist.py ============================================================================== --- python/trunk/Lib/distutils/tests/test_dist.py (original) +++ python/trunk/Lib/distutils/tests/test_dist.py Wed Sep 3 13:13:56 2008 @@ -1,3 +1,5 @@ +# -*- coding: latin-1 -*- + """Tests for distutils.dist.""" import distutils.cmd @@ -95,6 +97,39 @@ finally: os.unlink(TESTFN) + def test_write_pkg_file(self): + # Check DistributionMetadata handling of Unicode fields + my_file = os.path.join(os.path.dirname(__file__), 'f') + klass = distutils.dist.Distribution + + dist = klass(attrs={'author': u'Mister Caf?', + 'name': 'my.package', + 'maintainer': u'Caf? Junior', + 'description': u'Caf? torr?fi?', + 'long_description': u'H?h?h?'}) + + + # let's make sure the file can be written + # with Unicode fields. they are encoded with + # PKG_INFO_ENCODING + try: + dist.metadata.write_pkg_file(open(my_file, 'w')) + finally: + if os.path.exists(my_file): + os.remove(my_file) + + # regular ascii is of course always usable + dist = klass(attrs={'author': 'Mister Cafe', + 'name': 'my.package', + 'maintainer': 'Cafe Junior', + 'description': 'Cafe torrefie', + 'long_description': 'Hehehe'}) + + try: + dist.metadata.write_pkg_file(open(my_file, 'w')) + finally: + if os.path.exists(my_file): + os.remove(my_file) class MetadataTestCase(unittest.TestCase): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 3 13:13:56 2008 @@ -56,7 +56,10 @@ Library ------- -- Issue #3726: Allowed spaces in separators in logging configuration files. +- Issue #2562: Fix distutils PKG-INFO writing logic to allow having + non-ascii characters and Unicode in setup.py meta-data. + +- Issue #3726: Allow spaces in separators in logging configuration files. - Issue #3719: platform.architecture() fails if there are spaces in the path to the Python binary. From mal at egenix.com Wed Sep 3 12:43:39 2008 From: mal at egenix.com (M.-A. Lemburg) Date: Wed, 03 Sep 2008 12:43:39 +0200 Subject: [Python-checkins] r66171 - in python/trunk: Lib/distutils/msvc9compiler.py Misc/NEWS In-Reply-To: <48BE66C4.9070209@gmail.com> References: <20080902231956.627331E4006@bag.python.org> <48BE66C4.9070209@gmail.com> Message-ID: <48BE6A5B.5060206@egenix.com> On 2008-09-03 12:28, Nick Coghlan wrote: > amaury.forgeotdarc wrote: >> Author: amaury.forgeotdarc >> Date: Wed Sep 3 01:19:56 2008 >> New Revision: 66171 >> >> Log: >> Issue 2975: when compiling multiple extension modules with visual studio 2008 >> from the same python instance, some environment variables (LIB, INCLUDE) >> would grow without limit. >> >> Tested with these statements: >> distutils.ccompiler.new_compiler().initialize() >> print os.environ['LIB'] >> But I don't know how to turn them into reliable unit tests. > > test_cmd_line and test_cmd_line_script give some examples of spawning > new Python processes in order to test things that you don't want to run > in the current process. You'd have to make those tests optional, since they would only work with a proper VS2008 installation. Note that the helper function should really be called remove_duplicates(variable) to stay in line with distutils and PEP8 conventions. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Sep 03 2008) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 From buildbot at python.org Wed Sep 3 13:42:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 11:42:12 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080903114212.40F041E4008@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/192 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: marc-andre.lemburg BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 3 19:50:33 2008 From: python-checkins at python.org (jesus.cea) Date: Wed, 3 Sep 2008 19:50:33 +0200 (CEST) Subject: [Python-checkins] r66182 - in python/trunk/Modules: _bsddb.c bsddb.h Message-ID: <20080903175033.500771E4008@bag.python.org> Author: jesus.cea Date: Wed Sep 3 19:50:32 2008 New Revision: 66182 Log: Fix some leaks - Neal Norwitz Modified: python/trunk/Modules/_bsddb.c python/trunk/Modules/bsddb.h Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Wed Sep 3 19:50:32 2008 @@ -1106,7 +1106,7 @@ { PyObject *dummy; - if (self->db_env && !self->closed) { + if (self->db_env) { dummy=DBEnv_close_internal(self,0); Py_XDECREF(dummy); } @@ -3981,13 +3981,15 @@ dummy=DB_close_internal(self->children_dbs,0); Py_XDECREF(dummy); } + } + self->closed = 1; + if (self->db_env) { MYDB_BEGIN_ALLOW_THREADS; err = self->db_env->close(self->db_env, flags); MYDB_END_ALLOW_THREADS; /* after calling DBEnv->close, regardless of error, this DBEnv * may not be accessed again (Berkeley DB docs). */ - self->closed = 1; self->db_env = NULL; RETURN_IF_ERR(); } @@ -6148,7 +6150,7 @@ err = self->sequence->open(self->sequence, txn, &key, flags); MYDB_END_ALLOW_THREADS - CLEAR_DBT(key); + FREE_DBT(key); RETURN_IF_ERR(); if (txn) { Modified: python/trunk/Modules/bsddb.h ============================================================================== --- python/trunk/Modules/bsddb.h (original) +++ python/trunk/Modules/bsddb.h Wed Sep 3 19:50:32 2008 @@ -105,7 +105,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.7.3pre3" +#define PY_BSDDB_VERSION "4.7.3pre4" /* Python object definitions */ From buildbot at python.org Wed Sep 3 20:09:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 18:09:12 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu trunk Message-ID: <20080903180912.D03EB1E4008@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%20trunk/builds/380 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 3 20:10:30 2008 From: python-checkins at python.org (jesse.noller) Date: Wed, 3 Sep 2008 20:10:30 +0200 (CEST) Subject: [Python-checkins] r66184 - in python/trunk: Misc/NEWS Modules/_multiprocessing/multiprocessing.h Message-ID: <20080903181030.CBAD11E4008@bag.python.org> Author: jesse.noller Date: Wed Sep 3 20:10:30 2008 New Revision: 66184 Log: Fix issue 3110 - solaris compilation of multiprocessing fails, reviewed by pitrou Modified: python/trunk/Misc/NEWS python/trunk/Modules/_multiprocessing/multiprocessing.h Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 3 20:10:30 2008 @@ -83,6 +83,9 @@ - Issue #3708: os.urandom no longer goes into an infinite loop when passed a non-integer floating point number. +- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing + SEM_VALUE_MAX. + Extension Modules ----------------- Modified: python/trunk/Modules/_multiprocessing/multiprocessing.h ============================================================================== --- python/trunk/Modules/_multiprocessing/multiprocessing.h (original) +++ python/trunk/Modules/_multiprocessing/multiprocessing.h Wed Sep 3 20:10:30 2008 @@ -37,6 +37,17 @@ #endif /* + * Issue 3110 - Solaris does not define SEM_VALUE_MAX + */ +#ifndef SEM_VALUE_MAX +# ifdef _SEM_VALUE_MAX +# define SEM_VALUE_MAX _SEM_VALUE_MAX +# else +# define SEM_VALUE_MAX INT_MAX +# endif +#endif + +/* * Make sure Py_ssize_t available */ From buildbot at python.org Wed Sep 3 20:51:59 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 18:51:59 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080903185159.882301E4008@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3890 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 21:24:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 19:24:27 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080903192427.67ACB1E4009@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/296 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: jesse.noller BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_calendar test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From brett at python.org Wed Sep 3 21:27:54 2008 From: brett at python.org (Brett Cannon) Date: Wed, 3 Sep 2008 12:27:54 -0700 Subject: [Python-checkins] r66180 - in python/trunk: Lib/logging/config.py Lib/test/test_logging.py Misc/NEWS In-Reply-To: <20080903092005.B52AD1E400E@bag.python.org> References: <20080903092005.B52AD1E400E@bag.python.org> Message-ID: Who did the code review for this? On Wed, Sep 3, 2008 at 2:20 AM, vinay.sajip wrote: > Author: vinay.sajip > Date: Wed Sep 3 11:20:05 2008 > New Revision: 66180 > > Log: > Issue #3726: Allowed spaces in separators in logging configuration files. > > Modified: > python/trunk/Lib/logging/config.py > python/trunk/Lib/test/test_logging.py > python/trunk/Misc/NEWS > > Modified: python/trunk/Lib/logging/config.py > ============================================================================== > --- python/trunk/Lib/logging/config.py (original) > +++ python/trunk/Lib/logging/config.py Wed Sep 3 11:20:05 2008 > @@ -22,7 +22,7 @@ > Should work under Python versions >= 1.5.2, except that source line > information is not available unless 'sys._getframe()' is. > > -Copyright (C) 2001-2007 Vinay Sajip. All Rights Reserved. > +Copyright (C) 2001-2008 Vinay Sajip. All Rights Reserved. > > To use, simply 'import logging' and log away! > """ > @@ -101,6 +101,8 @@ > found = getattr(found, n) > return found > > +def _strip_spaces(alist): > + return map(lambda x: string.strip(x), alist) > > def _create_formatters(cp): > """Create and return formatters""" > @@ -108,9 +110,10 @@ > if not len(flist): > return {} > flist = string.split(flist, ",") > + flist = _strip_spaces(flist) > formatters = {} > for form in flist: > - sectname = "formatter_%s" % string.strip(form) > + sectname = "formatter_%s" % form > opts = cp.options(sectname) > if "format" in opts: > fs = cp.get(sectname, "format", 1) > @@ -136,10 +139,11 @@ > if not len(hlist): > return {} > hlist = string.split(hlist, ",") > + hlist = _strip_spaces(hlist) > handlers = {} > fixups = [] #for inter-handler references > for hand in hlist: > - sectname = "handler_%s" % string.strip(hand) > + sectname = "handler_%s" % hand > klass = cp.get(sectname, "class") > opts = cp.options(sectname) > if "formatter" in opts: > @@ -192,8 +196,9 @@ > hlist = cp.get(sectname, "handlers") > if len(hlist): > hlist = string.split(hlist, ",") > + hlist = _strip_spaces(hlist) > for hand in hlist: > - log.addHandler(handlers[string.strip(hand)]) > + log.addHandler(handlers[hand]) > > #and now the others... > #we don't want to lose the existing loggers, > @@ -243,8 +248,9 @@ > hlist = cp.get(sectname, "handlers") > if len(hlist): > hlist = string.split(hlist, ",") > + hlist = _strip_spaces(hlist) > for hand in hlist: > - logger.addHandler(handlers[string.strip(hand)]) > + logger.addHandler(handlers[hand]) > > #Disable any old loggers. There's no point deleting > #them as other threads may continue to hold references > > Modified: python/trunk/Lib/test/test_logging.py > ============================================================================== > --- python/trunk/Lib/test/test_logging.py (original) > +++ python/trunk/Lib/test/test_logging.py Wed Sep 3 11:20:05 2008 > @@ -587,6 +587,48 @@ > # config5 specifies a custom handler class to be loaded > config5 = config1.replace('class=StreamHandler', 'class=logging.StreamHandler') > > + # config6 uses ', ' delimiters in the handlers and formatters sections > + config6 = """ > + [loggers] > + keys=root,parser > + > + [handlers] > + keys=hand1, hand2 > + > + [formatters] > + keys=form1, form2 > + > + [logger_root] > + level=WARNING > + handlers= > + > + [logger_parser] > + level=DEBUG > + handlers=hand1 > + propagate=1 > + qualname=compiler.parser > + > + [handler_hand1] > + class=StreamHandler > + level=NOTSET > + formatter=form1 > + args=(sys.stdout,) > + > + [handler_hand2] > + class=FileHandler > + level=NOTSET > + formatter=form1 > + args=('test.blah', 'a') > + > + [formatter_form1] > + format=%(levelname)s ++ %(message)s > + datefmt= > + > + [formatter_form2] > + format=%(message)s > + datefmt= > + """ > + > def apply_config(self, conf): > try: > fn = tempfile.mktemp(".ini") > @@ -653,6 +695,9 @@ > def test_config5_ok(self): > self.test_config1_ok(config=self.config5) > > + def test_config6_ok(self): > + self.test_config1_ok(config=self.config6) > + > class LogRecordStreamHandler(StreamRequestHandler): > > """Handler for a streaming logging request. It saves the log message in the > > Modified: python/trunk/Misc/NEWS > ============================================================================== > --- python/trunk/Misc/NEWS (original) > +++ python/trunk/Misc/NEWS Wed Sep 3 11:20:05 2008 > @@ -56,6 +56,8 @@ > Library > ------- > > +- Issue #3726: Allowed spaces in separators in logging configuration files. > + > - Issue #3719: platform.architecture() fails if there are spaces in the > path to the Python binary. > > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > From buildbot at python.org Wed Sep 3 21:33:57 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 19:33:57 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080903193357.65C7F1E400B@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/244 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesse.noller BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 21:46:24 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 19:46:24 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080903194654.198BF1E4009@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/261 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou,jesse.noller BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 21:59:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 19:59:23 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080903195923.DCD9A1E4025@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/491 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou,jesse.noller BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 22:16:10 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 20:16:10 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080903201610.AD3DB1E4009@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/150 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 199, in test_close_and_reopen self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 413, in test_keyordering self.assertEqual(self.f.first()[0], keys[0]) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_close_and_reopen (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 199, in test_close_and_reopen self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 413, in test_keyordering self.assertEqual(self.f.first()[0], keys[0]) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestHashTable_InMemory) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test__no_deadlock_first (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 314, in test__no_deadlock_first k,v = self.f.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_change (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 187, in test_change self.assertEqual(self.f['r'], 'discovered') File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_clear (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 302, in test_clear self.f.clear() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 476, in clear self.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_first_next_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 266, in test_first_next_looping items = [self.f.first()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_first_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 281, in test_first_while_deleting key = self.f.first()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_get (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 396, in test_get self.assertEqual(self.f.get('q', 'Default'), self.d['q']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 358, in get return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_getitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 180, in test_getitem self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_iter_while_modifying_values (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 233, in test_iter_while_modifying_values key = next(fi) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_keyordering (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 413, in test_keyordering self.assertEqual(self.f.first()[0], keys[0]) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 145, in first key, value = self.db.first() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 79, in first return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_last_while_deleting (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 289, in test_last_while_deleting key = self.f.last()[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_mapping_iteration_methods (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 207, in test_mapping_iteration_methods self.assertSetEquals(d, f) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 202, in assertSetEquals self.assertEqual(set(seqn1), set(seqn2)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_pop (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 387, in test_pop v = self.f.pop(k) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 455, in pop value = self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_popitem (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 379, in test_popitem k, v = self.f.popitem() File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 466, in popitem key = next(iter(self)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 44, in __iter__ for k in self.db: File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\__init__.py", line 110, in __iter__ key = _DeadlockWrap(cur.first, 0,0,0)[0] File "S:\buildbots\python\3.0.nelson-windows\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) TypeError: first() takes exactly 1 positional argument (4 given) ====================================================================== ERROR: test_previous_last_looping (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 272, in test_previous_last_looping items = [self.f.last()] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 149, in last key, value = self.db.last() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 83, in last return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_set_location (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 294, in test_set_location self.assertEqual(self.f.set_location('e'), ('e', self.d['e'])) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 153, in set_location key, value = self.db.set_location(key) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 87, in set_location return key.decode("utf-8"), value AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_setdefault (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 400, in test_setdefault self.assertEqual(self.f.setdefault('r', 'cat'), self.d['r']) File "S:\buildbots\python\3.0.nelson-windows\build\lib\_abcoll.py", line 495, in setdefault return self[key] File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' ====================================================================== ERROR: test_update (test.test_bsddb.TestBTree_InMemory_Truncate) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 407, in test_update self.assertEqual(self.f[k], v) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_bsddb.py", line 103, in __getitem__ return self.db[key].decode("utf-8") AttributeError: 'str' object has no attribute 'decode' sincerely, -The Buildbot From buildbot at python.org Wed Sep 3 22:22:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 20:22:22 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20080903202222.DCF641E400B@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/1479 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== ERROR: test01_badpointer (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_misc.py", line 21, in test01_badpointer dbs = dbshelve.open(self.filename) File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\dbshelve.py", line 106, in open d.open(filename, dbname, filetype, flags, mode) File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\dbshelve.py", line 171, in open self.db.open(*args, **kwargs) DBFileExistsError: (17, 'File exists -- __fop_file_setup: Retry limit (100) exceeded') ====================================================================== ERROR: test03_repr_closed_db (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_misc.py", line 37, in test03_repr_closed_db db = hashopen(self.filename) File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\__init__.py", line 355, in hashopen d.open(file, db.DB_HASH, flags, mode) DBFileExistsError: (17, 'File exists -- __fop_file_setup: Retry limit (100) exceeded') ====================================================================== ERROR: test04_repr_db (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_misc.py", line 43, in test04_repr_db db = hashopen(self.filename) File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\__init__.py", line 355, in hashopen d.open(file, db.DB_HASH, flags, mode) DBFileExistsError: (17, 'File exists -- __fop_file_setup: Retry limit (100) exceeded') ====================================================================== ERROR: test05_double_free_make_key_dbt (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_misc.py", line 65, in test05_double_free_make_key_dbt db.DB_CREATE | db.DB_THREAD) DBFileExistsError: (17, 'File exists -- __fop_file_setup: Retry limit (100) exceeded') ====================================================================== ERROR: test06_key_with_null_bytes (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_misc.py", line 77, in test06_key_with_null_bytes db1.open(self.filename, None, db.DB_HASH, db.DB_CREATE) DBFileExistsError: (17, 'File exists -- __fop_file_setup: Retry limit (100) exceeded') ====================================================================== ERROR: test07_DB_set_flags_persists (bsddb.test.test_misc.MiscTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_misc.py", line 101, in test07_DB_set_flags_persists db1.open(self.filename, db.DB_HASH, db.DB_CREATE) DBFileExistsError: (17, 'File exists -- __fop_file_setup: Retry limit (100) exceeded') ====================================================================== FAIL: test01_basic_replication (bsddb.test.test_replication.DBReplicationManager) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\trunk.bolen-windows\build\lib\bsddb\test\test_replication.py", line 122, in test01_basic_replication self.assertTrue(time.time() The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/263 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: christian.heimes BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Wed Sep 3 23:48:20 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 3 Sep 2008 23:48:20 +0200 (CEST) Subject: [Python-checkins] r66190 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080903214820.CBDF11E4015@bag.python.org> Author: benjamin.peterson Date: Wed Sep 3 23:48:20 2008 New Revision: 66190 Log: 3.0 still has the old threading names Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Wed Sep 3 23:48:20 2008 @@ -2523,14 +2523,14 @@ (Contributed by Dwayne Bailey; :issue:`1581073`.) -* The :mod:`threading` module API is being changed in Python 3.0 to - use properties such as :attr:`daemon` instead of :meth:`setDaemon` - and :meth:`isDaemon` methods, and some methods have been renamed to - use underscores instead of camel-case; for example, the - :meth:`activeCount` method is renamed to :meth:`active_count`. The - 2.6 version of the module supports the same properties and renamed - methods, but doesn't remove the old methods. (Carried out by - several people, most notably Benjamin Peterson.) +* The :mod:`threading` module API is being changed to use properties such as + :attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, and + some methods have been renamed to use underscores instead of camel-case; for + example, the :meth:`activeCount` method is renamed to :meth:`active_count`. + The 2.6 version of the module supports the same properties and renamed + methods, but doesn't remove the old methods. 3.0 also fully supports both + APIs, and a date for the deprecation of the old APIs has not been set yet. + (Carried out by several people, most notably Benjamin Peterson.) The :mod:`threading` module's :class:`Thread` objects gained an :attr:`ident` property that returns the thread's From buildbot at python.org Wed Sep 3 23:55:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 21:55:08 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080903215508.E42A01E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/493 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: christian.heimes,jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 00:00:52 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 4 Sep 2008 00:00:52 +0200 (CEST) Subject: [Python-checkins] r66191 - in sandbox/trunk/2to3/lib2to3: Grammar.txt tests/data/py2_test_grammar.py tests/data/py3_test_grammar.py Message-ID: <20080903220052.C9B721E4014@bag.python.org> Author: benjamin.peterson Date: Thu Sep 4 00:00:52 2008 New Revision: 66191 Log: update the Grammar file after recent syntax changes Modified: sandbox/trunk/2to3/lib2to3/Grammar.txt sandbox/trunk/2to3/lib2to3/tests/data/py2_test_grammar.py sandbox/trunk/2to3/lib2to3/tests/data/py3_test_grammar.py Modified: sandbox/trunk/2to3/lib2to3/Grammar.txt ============================================================================== --- sandbox/trunk/2to3/lib2to3/Grammar.txt (original) +++ sandbox/trunk/2to3/lib2to3/Grammar.txt Thu Sep 4 00:00:52 2008 @@ -138,7 +138,9 @@ classdef: 'class' NAME ['(' [arglist] ')'] ':' suite -arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] | '**' test) +arglist: (argument ',')* (argument [','] + |'*' test (',' argument)* [',' '**' test] + |'**' test) argument: test [comp_for] | test '=' test # Really [keyword '='] test comp_iter: comp_for | comp_if Modified: sandbox/trunk/2to3/lib2to3/tests/data/py2_test_grammar.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/data/py2_test_grammar.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/data/py2_test_grammar.py Thu Sep 4 00:00:52 2008 @@ -1,4 +1,4 @@ -# Python 2's Lib/test/test_grammar.py (r54061) +# Python 2's Lib/test/test_grammar.py (r66189) # Python test set -- part 1, grammar. # This just tests whether the parser accepts them all. @@ -32,6 +32,8 @@ self.assertEquals(0xff, 255) self.assertEquals(0377, 255) self.assertEquals(2147483647, 017777777777) + # "0x" is not a valid literal + self.assertRaises(SyntaxError, eval, "0x") from sys import maxint if maxint == 2147483647: self.assertEquals(-2147483647-1, -020000000000) @@ -282,6 +284,18 @@ def d32v((x,)): pass d32v((1,)) + # keyword arguments after *arglist + def f(*args, **kwargs): + return args, kwargs + self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4), + {'x':2, 'y':5})) + self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)") + self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)") + + # Check ast errors in *args and *kwargs + check_syntax_error(self, "f(*g(1=2))") + check_syntax_error(self, "f(**g(1=2))") + def testLambdef(self): ### lambdef: 'lambda' [varargslist] ':' test l1 = lambda : 0 @@ -295,6 +309,7 @@ self.assertEquals(l5(1, 2), 5) self.assertEquals(l5(1, 2, 3), 6) check_syntax_error(self, "lambda x: x = 2") + check_syntax_error(self, "lambda (None,): None") ### stmt: simple_stmt | compound_stmt # Tested below @@ -572,6 +587,15 @@ while 0: pass else: pass + # Issue1920: "while 0" is optimized away, + # ensure that the "else" clause is still present. + x = 0 + while 0: + x = 1 + else: + x = 2 + self.assertEquals(x, 2) + def testFor(self): # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite] for i in 1, 2, 3: pass @@ -602,7 +626,7 @@ def testTry(self): ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite] ### | 'try' ':' suite 'finally' ':' suite - ### except_clause: 'except' [expr [',' expr]] + ### except_clause: 'except' [expr [('as' | ',') expr]] try: 1/0 except ZeroDivisionError: @@ -611,7 +635,7 @@ pass try: 1/0 except EOFError: pass - except TypeError, msg: pass + except TypeError as msg: pass except RuntimeError, msg: pass except: pass else: pass @@ -770,6 +794,16 @@ def meth1(self): pass def meth2(self, arg): pass def meth3(self, a1, a2): pass + # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE + # decorators: decorator+ + # decorated: decorators (classdef | funcdef) + def class_decorator(x): + x.decorated = True + return x + @class_decorator + class G: + pass + self.assertEqual(G.decorated, True) def testListcomps(self): # list comprehension tests Modified: sandbox/trunk/2to3/lib2to3/tests/data/py3_test_grammar.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/data/py3_test_grammar.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/data/py3_test_grammar.py Thu Sep 4 00:00:52 2008 @@ -8,7 +8,7 @@ # regression test, the filterwarnings() call has been added to # regrtest.py. -from test.test_support import run_unittest, check_syntax_error +from test.support import run_unittest, check_syntax_error import unittest import sys # testing import * @@ -32,8 +32,10 @@ self.assertEquals(0o377, 255) self.assertEquals(2147483647, 0o17777777777) self.assertEquals(0b1001, 9) - from sys import maxint - if maxint == 2147483647: + # "0x" is not a valid literal + self.assertRaises(SyntaxError, eval, "0x") + from sys import maxsize + if maxsize == 2147483647: self.assertEquals(-2147483647-1, -0o20000000000) # XXX -2147483648 self.assert_(0o37777777777 > 0) @@ -45,7 +47,7 @@ x = eval(s) except OverflowError: self.fail("OverflowError on huge integer literal %r" % s) - elif maxint == 9223372036854775807: + elif maxsize == 9223372036854775807: self.assertEquals(-9223372036854775807-1, -0o1000000000000000000000) self.assert_(0o1777777777777777777777 > 0) self.assert_(0xffffffffffffffff > 0) @@ -58,7 +60,7 @@ except OverflowError: self.fail("OverflowError on huge integer literal %r" % s) else: - self.fail('Weird maxint value %r' % maxint) + self.fail('Weird maxsize value %r' % maxsize) def testLongIntegers(self): x = 0 @@ -263,6 +265,14 @@ d22v(*(1, 2, 3, 4)) d22v(1, 2, *(3, 4, 5)) d22v(1, *(2, 3), **{'d': 4}) + + # keyword argument type tests + try: + str('x', **{b'foo':1 }) + except TypeError: + pass + else: + self.fail('Bytes should not work as keyword argument names') # keyword only argument tests def pos0key1(*, key): return key pos0key1(key=100) @@ -274,6 +284,14 @@ pos2key2dict(1,2,k2=100,tokwarg1=100,tokwarg2=200) pos2key2dict(1,2,tokwarg1=100,tokwarg2=200, k2=100) + # keyword arguments after *arglist + def f(*args, **kwargs): + return args, kwargs + self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4), + {'x':2, 'y':5})) + self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)") + self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)") + # argument annotation tests def f(x) -> list: pass self.assertEquals(f.__annotations__, {'return': list}) @@ -308,6 +326,10 @@ def f(*, k=1): return closure def f() -> int: return closure + # Check ast errors in *args and *kwargs + check_syntax_error(self, "f(*g(1=2))") + check_syntax_error(self, "f(**g(1=2))") + def testLambdef(self): ### lambdef: 'lambda' [varargslist] ':' test l1 = lambda : 0 @@ -321,6 +343,7 @@ self.assertEquals(l5(1, 2), 5) self.assertEquals(l5(1, 2, 3), 6) check_syntax_error(self, "lambda x: x = 2") + check_syntax_error(self, "lambda (None,): None") l6 = lambda x, y, *, k=20: x+y+k self.assertEquals(l6(1,2), 1+2+20) self.assertEquals(l6(1,2,k=10), 1+2+10) @@ -438,7 +461,7 @@ def testRaise(self): # 'raise' test [',' test] - try: raise RuntimeError, 'just testing' + try: raise RuntimeError('just testing') except RuntimeError: pass try: raise KeyboardInterrupt except KeyboardInterrupt: pass @@ -498,6 +521,15 @@ while 0: pass else: pass + # Issue1920: "while 0" is optimized away, + # ensure that the "else" clause is still present. + x = 0 + while 0: + x = 1 + else: + x = 2 + self.assertEquals(x, 2) + def testFor(self): # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite] for i in 1, 2, 3: pass From python-checkins at python.org Thu Sep 4 00:07:12 2008 From: python-checkins at python.org (jesus.cea) Date: Thu, 4 Sep 2008 00:07:12 +0200 (CEST) Subject: [Python-checkins] r66192 - in python/trunk: Lib/bsddb/test/test_all.py Modules/bsddb.h Message-ID: <20080903220712.329201E4018@bag.python.org> Author: jesus.cea Date: Thu Sep 4 00:07:11 2008 New Revision: 66192 Log: Python3.0 bsddb testsuite compatibility improvements Modified: python/trunk/Lib/bsddb/test/test_all.py python/trunk/Modules/bsddb.h Modified: python/trunk/Lib/bsddb/test/test_all.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_all.py (original) +++ python/trunk/Lib/bsddb/test/test_all.py Thu Sep 4 00:07:11 2008 @@ -67,6 +67,10 @@ v = self._dbcursor.next_dup() return self._fix(v) + def next_nodup(self) : + v = self._dbcursor.next_nodup() + return self._fix(v) + def put(self, key, value, flags=0, dlen=-1, doff=-1) : if isinstance(key, str) : key = bytes(key, charset) Modified: python/trunk/Modules/bsddb.h ============================================================================== --- python/trunk/Modules/bsddb.h (original) +++ python/trunk/Modules/bsddb.h Thu Sep 4 00:07:11 2008 @@ -105,7 +105,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.7.3pre4" +#define PY_BSDDB_VERSION "4.7.3pre5" /* Python object definitions */ From python-checkins at python.org Thu Sep 4 00:35:51 2008 From: python-checkins at python.org (facundo.batista) Date: Thu, 4 Sep 2008 00:35:51 +0200 (CEST) Subject: [Python-checkins] r66196 - in python/trunk: Doc/library/cgi.rst Doc/library/urllib.rst Doc/library/urlparse.rst Lib/cgi.py Lib/test/test_cgi.py Lib/test/test_urlparse.py Lib/urlparse.py Misc/NEWS Message-ID: <20080903223551.2BCCE1E4012@bag.python.org> Author: facundo.batista Date: Thu Sep 4 00:35:50 2008 New Revision: 66196 Log: Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module to the urlparse one. Added a PendingDeprecationWarning in the old module, it will be deprecated in the future. Docs and tests updated. Modified: python/trunk/Doc/library/cgi.rst python/trunk/Doc/library/urllib.rst python/trunk/Doc/library/urlparse.rst python/trunk/Lib/cgi.py python/trunk/Lib/test/test_cgi.py python/trunk/Lib/test/test_urlparse.py python/trunk/Lib/urlparse.py python/trunk/Misc/NEWS Modified: python/trunk/Doc/library/cgi.rst ============================================================================== --- python/trunk/Doc/library/cgi.rst (original) +++ python/trunk/Doc/library/cgi.rst Thu Sep 4 00:35:50 2008 @@ -282,49 +282,18 @@ Parse a query in the environment or from a file (the file defaults to ``sys.stdin``). The *keep_blank_values* and *strict_parsing* parameters are - passed to :func:`parse_qs` unchanged. + passed to :func:`urlparse.parse_qs` unchanged. .. function:: parse_qs(qs[, keep_blank_values[, strict_parsing]]) - Parse a query string given as a string argument (data of type - :mimetype:`application/x-www-form-urlencoded`). Data are returned as a - dictionary. The dictionary keys are the unique query variable names and the - values are lists of values for each name. - - The optional argument *keep_blank_values* is a flag indicating whether blank - values in URL encoded queries should be treated as blank strings. A true value - indicates that blanks should be retained as blank strings. The default false - value indicates that blank values are to be ignored and treated as if they were - not included. - - The optional argument *strict_parsing* is a flag indicating what to do with - parsing errors. If false (the default), errors are silently ignored. If true, - errors raise a :exc:`ValueError` exception. - - Use the :func:`urllib.urlencode` function to convert such dictionaries into - query strings. - + This function is deprecated in this module. Use :func:`urlparse.parse_qs` + instead. It is maintained here only for backward compatiblity. .. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing]]) - Parse a query string given as a string argument (data of type - :mimetype:`application/x-www-form-urlencoded`). Data are returned as a list of - name, value pairs. - - The optional argument *keep_blank_values* is a flag indicating whether blank - values in URL encoded queries should be treated as blank strings. A true value - indicates that blanks should be retained as blank strings. The default false - value indicates that blank values are to be ignored and treated as if they were - not included. - - The optional argument *strict_parsing* is a flag indicating what to do with - parsing errors. If false (the default), errors are silently ignored. If true, - errors raise a :exc:`ValueError` exception. - - Use the :func:`urllib.urlencode` function to convert such lists of pairs into - query strings. - + This function is deprecated in this module. Use :func:`urlparse.parse_qsl` + instead. It is maintained here only for backward compatiblity. .. function:: parse_multipart(fp, pdict) @@ -332,7 +301,7 @@ Arguments are *fp* for the input file and *pdict* for a dictionary containing other parameters in the :mailheader:`Content-Type` header. - Returns a dictionary just like :func:`parse_qs` keys are the field names, each + Returns a dictionary just like :func:`urlparse.parse_qs` keys are the field names, each value is a list of values for that field. This is easy to use but not much good if you are expecting megabytes to be uploaded --- in that case, use the :class:`FieldStorage` class instead which is much more flexible. Modified: python/trunk/Doc/library/urllib.rst ============================================================================== --- python/trunk/Doc/library/urllib.rst (original) +++ python/trunk/Doc/library/urllib.rst Thu Sep 4 00:35:50 2008 @@ -242,7 +242,7 @@ of the sequence. When a sequence of two-element tuples is used as the *query* argument, the first element of each tuple is a key and the second is a value. The order of parameters in the encoded string will match the order of parameter - tuples in the sequence. The :mod:`cgi` module provides the functions + tuples in the sequence. The :mod:`urlparse` module provides the functions :func:`parse_qs` and :func:`parse_qsl` which are used to parse query strings into Python data structures. Modified: python/trunk/Doc/library/urlparse.rst ============================================================================== --- python/trunk/Doc/library/urlparse.rst (original) +++ python/trunk/Doc/library/urlparse.rst Thu Sep 4 00:35:50 2008 @@ -101,6 +101,45 @@ .. versionchanged:: 2.5 Added attributes to return value. +.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing]]) + + Parse a query string given as a string argument (data of type + :mimetype:`application/x-www-form-urlencoded`). Data are returned as a + dictionary. The dictionary keys are the unique query variable names and the + values are lists of values for each name. + + The optional argument *keep_blank_values* is a flag indicating whether blank + values in URL encoded queries should be treated as blank strings. A true value + indicates that blanks should be retained as blank strings. The default false + value indicates that blank values are to be ignored and treated as if they were + not included. + + The optional argument *strict_parsing* is a flag indicating what to do with + parsing errors. If false (the default), errors are silently ignored. If true, + errors raise a :exc:`ValueError` exception. + + Use the :func:`urllib.urlencode` function to convert such dictionaries into + query strings. + + +.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing]]) + + Parse a query string given as a string argument (data of type + :mimetype:`application/x-www-form-urlencoded`). Data are returned as a list of + name, value pairs. + + The optional argument *keep_blank_values* is a flag indicating whether blank + values in URL encoded queries should be treated as blank strings. A true value + indicates that blanks should be retained as blank strings. The default false + value indicates that blank values are to be ignored and treated as if they were + not included. + + The optional argument *strict_parsing* is a flag indicating what to do with + parsing errors. If false (the default), errors are silently ignored. If true, + errors raise a :exc:`ValueError` exception. + + Use the :func:`urllib.urlencode` function to convert such lists of pairs into + query strings. .. function:: urlunparse(parts) Modified: python/trunk/Lib/cgi.py ============================================================================== --- python/trunk/Lib/cgi.py (original) +++ python/trunk/Lib/cgi.py Thu Sep 4 00:35:50 2008 @@ -39,7 +39,9 @@ import os import urllib import UserDict -from warnings import filterwarnings, catch_warnings +import urlparse + +from warnings import filterwarnings, catch_warnings, warn with catch_warnings(): if sys.py3kwarning: filterwarnings("ignore", ".*mimetools has been removed", @@ -173,72 +175,21 @@ return parse_qs(qs, keep_blank_values, strict_parsing) -def parse_qs(qs, keep_blank_values=0, strict_parsing=0): - """Parse a query given as a string argument. +# parse query string function called from urlparse, +# this is done in order to maintain backward compatiblity. - Arguments: +def parse_qs(qs, keep_blank_values=0, strict_parsing=0): + """Parse a query given as a string argument.""" + warn("cgi.parse_qs is deprecated, use urlparse.parse_qs \ + instead",PendingDeprecationWarning) + return urlparse.parse_qs(qs, keep_blank_values, strict_parsing) - qs: URL-encoded query string to be parsed - - keep_blank_values: flag indicating whether blank values in - URL encoded queries should be treated as blank strings. - A true value indicates that blanks should be retained as - blank strings. The default false value indicates that - blank values are to be ignored and treated as if they were - not included. - - strict_parsing: flag indicating what to do with parsing errors. - If false (the default), errors are silently ignored. - If true, errors raise a ValueError exception. - """ - dict = {} - for name, value in parse_qsl(qs, keep_blank_values, strict_parsing): - if name in dict: - dict[name].append(value) - else: - dict[name] = [value] - return dict def parse_qsl(qs, keep_blank_values=0, strict_parsing=0): - """Parse a query given as a string argument. - - Arguments: - - qs: URL-encoded query string to be parsed - - keep_blank_values: flag indicating whether blank values in - URL encoded queries should be treated as blank strings. A - true value indicates that blanks should be retained as blank - strings. The default false value indicates that blank values - are to be ignored and treated as if they were not included. - - strict_parsing: flag indicating what to do with parsing errors. If - false (the default), errors are silently ignored. If true, - errors raise a ValueError exception. - - Returns a list, as G-d intended. - """ - pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')] - r = [] - for name_value in pairs: - if not name_value and not strict_parsing: - continue - nv = name_value.split('=', 1) - if len(nv) != 2: - if strict_parsing: - raise ValueError, "bad query field: %r" % (name_value,) - # Handle case of a control-name with no equal sign - if keep_blank_values: - nv.append('') - else: - continue - if len(nv[1]) or keep_blank_values: - name = urllib.unquote(nv[0].replace('+', ' ')) - value = urllib.unquote(nv[1].replace('+', ' ')) - r.append((name, value)) - - return r - + """Parse a query given as a string argument.""" + warn("cgi.parse_qsl is deprecated, use urlparse.parse_qsl instead", + PendingDeprecationWarning) + return urlparse.parse_qs(qs, keep_blank_values, strict_parsing) def parse_multipart(fp, pdict): """Parse multipart input. @@ -645,8 +596,8 @@ if self.qs_on_post: qs += '&' + self.qs_on_post self.list = list = [] - for key, value in parse_qsl(qs, self.keep_blank_values, - self.strict_parsing): + for key, value in urlparse.parse_qsl(qs, self.keep_blank_values, + self.strict_parsing): list.append(MiniFieldStorage(key, value)) self.skip_lines() @@ -659,8 +610,8 @@ raise ValueError, 'Invalid boundary in multipart form: %r' % (ib,) self.list = [] if self.qs_on_post: - for key, value in parse_qsl(self.qs_on_post, self.keep_blank_values, - self.strict_parsing): + for key, value in urlparse.parse_qsl(self.qs_on_post, + self.keep_blank_values, self.strict_parsing): self.list.append(MiniFieldStorage(key, value)) FieldStorageClass = None Modified: python/trunk/Lib/test/test_cgi.py ============================================================================== --- python/trunk/Lib/test/test_cgi.py (original) +++ python/trunk/Lib/test/test_cgi.py Thu Sep 4 00:35:50 2008 @@ -55,23 +55,6 @@ except StandardError, err: return ComparableException(err) -# A list of test cases. Each test case is a a two-tuple that contains -# a string with the query and a dictionary with the expected result. - -parse_qsl_test_cases = [ - ("", []), - ("&", []), - ("&&", []), - ("=", [('', '')]), - ("=a", [('', 'a')]), - ("a", [('a', '')]), - ("a=", [('a', '')]), - ("a=", [('a', '')]), - ("&a=b", [('a', 'b')]), - ("a=a+b&b=b+c", [('a', 'a b'), ('b', 'b c')]), - ("a=1&a=2", [('a', '1'), ('a', '2')]), -] - parse_strict_test_cases = [ ("", ValueError("bad query field: ''")), ("&", ValueError("bad query field: ''")), @@ -143,11 +126,6 @@ class CgiTests(unittest.TestCase): - def test_qsl(self): - for orig, expect in parse_qsl_test_cases: - result = cgi.parse_qsl(orig, keep_blank_values=True) - self.assertEqual(result, expect, "Error parsing %s" % repr(orig)) - def test_strict(self): for orig, expect in parse_strict_test_cases: # Test basic parsing Modified: python/trunk/Lib/test/test_urlparse.py ============================================================================== --- python/trunk/Lib/test/test_urlparse.py (original) +++ python/trunk/Lib/test/test_urlparse.py Thu Sep 4 00:35:50 2008 @@ -8,6 +8,23 @@ RFC2396_BASE = "http://a/b/c/d;p?q" RFC3986_BASE = "http://a/b/c/d;p?q" +# A list of test cases. Each test case is a a two-tuple that contains +# a string with the query and a dictionary with the expected result. + +parse_qsl_test_cases = [ + ("", []), + ("&", []), + ("&&", []), + ("=", [('', '')]), + ("=a", [('', 'a')]), + ("a", [('a', '')]), + ("a=", [('a', '')]), + ("a=", [('a', '')]), + ("&a=b", [('a', 'b')]), + ("a=a+b&b=b+c", [('a', 'a b'), ('b', 'b c')]), + ("a=1&a=2", [('a', '1'), ('a', '2')]), +] + class UrlParseTestCase(unittest.TestCase): def checkRoundtrips(self, url, parsed, split): @@ -61,6 +78,11 @@ self.assertEqual(result3.hostname, result.hostname) self.assertEqual(result3.port, result.port) + def test_qsl(self): + for orig, expect in parse_qsl_test_cases: + result = urlparse.parse_qsl(orig, keep_blank_values=True) + self.assertEqual(result, expect, "Error parsing %s" % repr(orig)) + def test_roundtrips(self): testcases = [ ('file:///tmp/junk.txt', Modified: python/trunk/Lib/urlparse.py ============================================================================== --- python/trunk/Lib/urlparse.py (original) +++ python/trunk/Lib/urlparse.py Thu Sep 4 00:35:50 2008 @@ -5,7 +5,7 @@ """ __all__ = ["urlparse", "urlunparse", "urljoin", "urldefrag", - "urlsplit", "urlunsplit"] + "urlsplit", "urlunsplit", "parse_qs", "parse_qsl"] # A classification of schemes ('' means apply by default) uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap', @@ -267,6 +267,92 @@ else: return url, '' +# unquote method for parse_qs and parse_qsl +# Cannot use directly from urllib as it would create circular reference. +# urllib uses urlparse methods ( urljoin) + +_hextochr = dict(('%02x' % i, chr(i)) for i in range(256)) +_hextochr.update(('%02X' % i, chr(i)) for i in range(256)) + +def unquote(s): + """unquote('abc%20def') -> 'abc def'.""" + res = s.split('%') + for i in xrange(1, len(res)): + item = res[i] + try: + res[i] = _hextochr[item[:2]] + item[2:] + except KeyError: + res[i] = '%' + item + except UnicodeDecodeError: + res[i] = unichr(int(item[:2], 16)) + item[2:] + return "".join(res) + +def parse_qs(qs, keep_blank_values=0, strict_parsing=0): + """Parse a query given as a string argument. + + Arguments: + + qs: URL-encoded query string to be parsed + + keep_blank_values: flag indicating whether blank values in + URL encoded queries should be treated as blank strings. + A true value indicates that blanks should be retained as + blank strings. The default false value indicates that + blank values are to be ignored and treated as if they were + not included. + + strict_parsing: flag indicating what to do with parsing errors. + If false (the default), errors are silently ignored. + If true, errors raise a ValueError exception. + """ + dict = {} + for name, value in parse_qsl(qs, keep_blank_values, strict_parsing): + if name in dict: + dict[name].append(value) + else: + dict[name] = [value] + return dict + +def parse_qsl(qs, keep_blank_values=0, strict_parsing=0): + """Parse a query given as a string argument. + + Arguments: + + qs: URL-encoded query string to be parsed + + keep_blank_values: flag indicating whether blank values in + URL encoded queries should be treated as blank strings. A + true value indicates that blanks should be retained as blank + strings. The default false value indicates that blank values + are to be ignored and treated as if they were not included. + + strict_parsing: flag indicating what to do with parsing errors. If + false (the default), errors are silently ignored. If true, + errors raise a ValueError exception. + + Returns a list, as G-d intended. + """ + pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')] + r = [] + for name_value in pairs: + if not name_value and not strict_parsing: + continue + nv = name_value.split('=', 1) + if len(nv) != 2: + if strict_parsing: + raise ValueError, "bad query field: %r" % (name_value,) + # Handle case of a control-name with no equal sign + if keep_blank_values: + nv.append('') + else: + continue + if len(nv[1]) or keep_blank_values: + name = unquote(nv[0].replace('+', ' ')) + value = unquote(nv[1].replace('+', ' ')) + r.append((name, value)) + + return r + test_input = """ http://a/b/c/d Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 4 00:35:50 2008 @@ -56,6 +56,10 @@ Library ------- +- Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module + to the urlparse one. Added a PendingDeprecationWarning in the old + module, it will be deprecated in the future. + - Issue #2562: Fix distutils PKG-INFO writing logic to allow having non-ascii characters and Unicode in setup.py meta-data. From buildbot at python.org Thu Sep 4 00:38:05 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 22:38:05 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu 3.0 Message-ID: <20080903223805.A27341E4009@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%203.0/builds/407 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 00:45:11 2008 From: python-checkins at python.org (brett.cannon) Date: Thu, 4 Sep 2008 00:45:11 +0200 (CEST) Subject: [Python-checkins] r66197 - in python/trunk: Lib/test/test_py3kwarn.py Misc/NEWS Message-ID: <20080903224511.C59521E4014@bag.python.org> Author: brett.cannon Date: Thu Sep 4 00:45:11 2008 New Revision: 66197 Log: test_py3kwarn had been overlooked when test.test_support.catch_warning() was re-implemented to use warnings.catch_warnings() and had its API improved. Closes issue #3768. Code review by Benjamin Peterson. Modified: python/trunk/Lib/test/test_py3kwarn.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/test/test_py3kwarn.py ============================================================================== --- python/trunk/Lib/test/test_py3kwarn.py (original) +++ python/trunk/Lib/test/test_py3kwarn.py Thu Sep 4 00:45:11 2008 @@ -220,28 +220,28 @@ # With object as the base class class WarnOnlyCmp(object): def __cmp__(self, other): pass - self.assertEqual(len(w.warnings), 1) + self.assertEqual(len(w), 1) self.assertWarning(None, w, "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnOnlyEq(object): def __eq__(self, other): pass - self.assertEqual(len(w.warnings), 1) + self.assertEqual(len(w), 1) self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnCmpAndEq(object): def __cmp__(self, other): pass def __eq__(self, other): pass - self.assertEqual(len(w.warnings), 2) - self.assertWarning(None, w.warnings[-2], + self.assertEqual(len(w), 2) + self.assertWarning(None, w[-2], "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class NoWarningOnlyHash(object): def __hash__(self): pass - self.assertEqual(len(w.warnings), 0) + self.assertEqual(len(w), 0) # With an intermediate class in the heirarchy class DefinesAllThree(object): def __cmp__(self, other): pass @@ -249,28 +249,28 @@ def __hash__(self): pass class WarnOnlyCmp(DefinesAllThree): def __cmp__(self, other): pass - self.assertEqual(len(w.warnings), 1) + self.assertEqual(len(w), 1) self.assertWarning(None, w, "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnOnlyEq(DefinesAllThree): def __eq__(self, other): pass - self.assertEqual(len(w.warnings), 1) + self.assertEqual(len(w), 1) self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnCmpAndEq(DefinesAllThree): def __cmp__(self, other): pass def __eq__(self, other): pass - self.assertEqual(len(w.warnings), 2) - self.assertWarning(None, w.warnings[-2], + self.assertEqual(len(w), 2) + self.assertWarning(None, w[-2], "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class NoWarningOnlyHash(DefinesAllThree): def __hash__(self): pass - self.assertEqual(len(w.warnings), 0) + self.assertEqual(len(w), 0) class TestStdlibRemovals(unittest.TestCase): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 4 00:45:11 2008 @@ -100,6 +100,11 @@ - Issue #3643: Added a few more checks to _testcapi to prevent segfaults by exploitation of poor argument checking. +Tests +----- + +- Issue 3768: Move test_py3kwarn over to the new API for catch_warnings(). + What's New in Python 2.6 beta 3? ================================ From buildbot at python.org Thu Sep 4 00:51:40 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 03 Sep 2008 22:51:40 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080903225140.569DC1E400B@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/265 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 02:02:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 00:02:12 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080904000212.3456A1E4009@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/154 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,brett.cannon,facundo.batista BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 02:09:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 00:09:12 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080904000912.884641E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/495 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,brett.cannon,facundo.batista BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_doctest test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 02:10:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 00:10:49 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080904001049.564511E4009@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1469 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,brett.cannon,facundo.batista BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 04:53:59 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 02:53:59 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080904025359.7C8801E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/497 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 05:25:54 2008 From: python-checkins at python.org (brett.cannon) Date: Thu, 4 Sep 2008 05:25:54 +0200 (CEST) Subject: [Python-checkins] r66206 - peps/trunk/pep-3108.txt Message-ID: <20080904032554.7FFCA1E4009@bag.python.org> Author: brett.cannon Date: Thu Sep 4 05:25:53 2008 New Revision: 66206 Log: Clarify reasonaing behind removing bsddb. Modified: peps/trunk/pep-3108.txt Modified: peps/trunk/pep-3108.txt ============================================================================== --- peps/trunk/pep-3108.txt (original) +++ peps/trunk/pep-3108.txt Thu Sep 4 05:25:53 2008 @@ -653,10 +653,12 @@ * bsddb3 - + Already externally maintained at + + Externally maintained at http://www.jcea.es/programacion/pybsddb.htm . - + Constant testing instability. - + Has consistently not been forward-ported to Python 3.0. + + Consistent testing instability. + + Berkeley DB follows a different release schedule than Python, + leading to the bindings not necessarily being in sync with what is + available. Modules to Rename From buildbot at python.org Thu Sep 4 05:28:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 03:28:36 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080904032836.3B62B1E4009@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1590 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 06:59:39 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 04:59:39 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080904045939.6CBC31E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/499 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: mark.hammond BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 09:31:22 2008 From: python-checkins at python.org (vinay.sajip) Date: Thu, 4 Sep 2008 09:31:22 +0200 (CEST) Subject: [Python-checkins] r66211 - in python/trunk: Lib/logging/__init__.py Lib/test/test_logging.py Misc/NEWS Message-ID: <20080904073122.5249C1E4009@bag.python.org> Author: vinay.sajip Date: Thu Sep 4 09:31:21 2008 New Revision: 66211 Log: Issue #3772: Fixed regression problem in StreamHandler.emit(). Modified: python/trunk/Lib/logging/__init__.py python/trunk/Lib/test/test_logging.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/logging/__init__.py ============================================================================== --- python/trunk/Lib/logging/__init__.py (original) +++ python/trunk/Lib/logging/__init__.py Thu Sep 4 09:31:21 2008 @@ -757,7 +757,7 @@ self.stream.write(fs % msg) else: try: - if hasattr(self.stream, 'encoding'): + if getattr(self.stream, 'encoding', None) is not None: self.stream.write(fs % msg.encode(self.stream.encoding)) else: self.stream.write(fs % msg) Modified: python/trunk/Lib/test/test_logging.py ============================================================================== --- python/trunk/Lib/test/test_logging.py (original) +++ python/trunk/Lib/test/test_logging.py Thu Sep 4 09:31:21 2008 @@ -859,6 +859,31 @@ ('foo', 'DEBUG', '3'), ]) +class EncodingTest(BaseTest): + def test_encoding_plain_file(self): + # In Python 2.x, a plain file object is treated as having no encoding. + log = logging.getLogger("test") + fn = tempfile.mktemp(".log") + # the non-ascii data we write to the log. + data = "foo\x80" + try: + handler = logging.FileHandler(fn) + log.addHandler(handler) + try: + # write non-ascii data to the log. + log.warning(data) + finally: + log.removeHandler(handler) + handler.close() + # check we wrote exactly those bytes, ignoring trailing \n etc + f = open(fn) + try: + self.failUnlessEqual(f.read().rstrip(), data) + finally: + f.close() + finally: + if os.path.isfile(fn): + os.remove(fn) # Set the locale to the platform-dependent default. I have no idea # why the test does this, but in any case we save the current locale @@ -867,7 +892,8 @@ def test_main(): run_unittest(BuiltinLevelsTest, BasicFilterTest, CustomLevelsAndFiltersTest, MemoryHandlerTest, - ConfigFileTest, SocketHandlerTest, MemoryTest) + ConfigFileTest, SocketHandlerTest, MemoryTest, + EncodingTest) if __name__ == "__main__": test_main() Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 4 09:31:21 2008 @@ -56,6 +56,8 @@ Library ------- +- Issue #3772: Fixed regression problem in StreamHandler.emit(). + - Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module to the urlparse one. Added a PendingDeprecationWarning in the old module, it will be deprecated in the future. @@ -87,7 +89,7 @@ - Issue #3708: os.urandom no longer goes into an infinite loop when passed a non-integer floating point number. -- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing +- Issue #3110: multiprocessing fails to compiel on solaris 10 due to missing SEM_VALUE_MAX. Extension Modules From buildbot at python.org Thu Sep 4 10:20:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 08:20:22 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080904082022.8C7721E4009@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/1948 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: vinay.sajip BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_urllibnet make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 11:13:31 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 09:13:31 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080904091331.5AB1F1E4009@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/308 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_calendar make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 11:48:54 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 09:48:54 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080904094854.B91B51E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/501 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 13:15:14 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 13:15:14 +0200 (CEST) Subject: [Python-checkins] r66213 - python/trunk/Lib/platform.py Message-ID: <20080904111514.88F941E4021@bag.python.org> Author: hirokazu.yamamoto Date: Thu Sep 4 13:15:14 2008 New Revision: 66213 Log: Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. Modified: python/trunk/Lib/platform.py Modified: python/trunk/Lib/platform.py ============================================================================== --- python/trunk/Lib/platform.py (original) +++ python/trunk/Lib/platform.py Thu Sep 4 13:15:14 2008 @@ -933,7 +933,7 @@ filepath = _abspath(filepath) while os.path.islink(filepath): filepath = os.path.normpath( - os.path.join(filepath,os.readlink(filepath))) + os.path.join(os.path.dirname(filepath),os.readlink(filepath))) return filepath def _syscmd_uname(option,default=''): From python-checkins at python.org Thu Sep 4 13:21:28 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 13:21:28 +0200 (CEST) Subject: [Python-checkins] r66214 - python/branches/release25-maint/Lib/platform.py Message-ID: <20080904112128.8A48F1E4012@bag.python.org> Author: hirokazu.yamamoto Date: Thu Sep 4 13:21:28 2008 New Revision: 66214 Log: Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. Backport of r66213 Modified: python/branches/release25-maint/Lib/platform.py Modified: python/branches/release25-maint/Lib/platform.py ============================================================================== --- python/branches/release25-maint/Lib/platform.py (original) +++ python/branches/release25-maint/Lib/platform.py Thu Sep 4 13:21:28 2008 @@ -793,7 +793,7 @@ filepath = _abspath(filepath) while os.path.islink(filepath): filepath = os.path.normpath( - os.path.join(filepath,os.readlink(filepath))) + os.path.join(os.path.dirname(filepath),os.readlink(filepath))) return filepath def _syscmd_uname(option,default=''): From python-checkins at python.org Thu Sep 4 13:30:04 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 13:30:04 +0200 (CEST) Subject: [Python-checkins] r66213 - svn:log Message-ID: <20080904113005.061411E4009@bag.python.org> Author: hirokazu.yamamoto Revision: 66213 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1 +1,2 @@ -Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. \ No newline at end of file +Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. +Reviewed by Amaury Forgeot d'Arc. \ No newline at end of file From python-checkins at python.org Thu Sep 4 13:31:12 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 13:31:12 +0200 (CEST) Subject: [Python-checkins] r66214 - svn:log Message-ID: <20080904113112.CCE491E401B@bag.python.org> Author: hirokazu.yamamoto Revision: 66214 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1,2 +1,2 @@ Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. -Backport of r66213 \ No newline at end of file +Amaury Forgeot d'Arc (Backport of r66213) \ No newline at end of file From python-checkins at python.org Thu Sep 4 13:31:54 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 13:31:54 +0200 (CEST) Subject: [Python-checkins] r66214 - svn:log Message-ID: <20080904113154.1F90F1E401B@bag.python.org> Author: hirokazu.yamamoto Revision: 66214 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1,2 +1,2 @@ Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. -Amaury Forgeot d'Arc (Backport of r66213) \ No newline at end of file +Reviewed Amaury Forgeot d'Arc (Backport of r66213) \ No newline at end of file From buildbot at python.org Thu Sep 4 14:16:03 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 12:16:03 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080904121603.72D231E4009@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3895 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 15:26:24 2008 From: python-checkins at python.org (andrew.kuchling) Date: Thu, 4 Sep 2008 15:26:24 +0200 (CEST) Subject: [Python-checkins] r66217 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080904132624.BFA8A1E401A@bag.python.org> Author: andrew.kuchling Date: Thu Sep 4 15:26:24 2008 New Revision: 66217 Log: #3671: various corrections and markup fixes noted by Kent Johnson Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Thu Sep 4 15:26:24 2008 @@ -623,7 +623,7 @@ Two other classes, :class:`Pool` and :class:`Manager`, provide higher-level interfaces. :class:`Pool` will create a fixed number of worker processes, and requests can then be distributed to the workers -by calling :meth:`apply` or `apply_async` to add a single request, +by calling :meth:`apply` or :meth:`apply_async` to add a single request, and :meth:`map` or :meth:`map_async` to add a number of requests. The following code uses a :class:`Pool` to spread requests across 5 worker processes and retrieve a list of results:: @@ -977,10 +977,10 @@ bytearray(b'ABC') >>> b = bytearray(u'\u21ef\u3244', 'utf-8') >>> b - bytearray(b'\xe2\x87\xaf \xe3\x89\x84') + bytearray(b'\xe2\x87\xaf\xe3\x89\x84') >>> b[0] = '\xe3' >>> b - bytearray(b'\xe3\x87\xaf \xe3\x89\x84') + bytearray(b'\xe3\x87\xaf\xe3\x89\x84') >>> unicode(str(b), 'utf-8') u'\u31ef \u3244' @@ -1975,7 +1975,7 @@ * A new function in the :mod:`heapq` module, ``merge(iter1, iter2, ...)``, takes any number of iterables returning data in sorted - order, and returns a new iterator that returns the contents of all + order, and returns a new generator that returns the contents of all the iterators, also in sorted order. For example:: heapq.merge([1, 3, 5, 9], [2, 8, 16]) -> @@ -2030,7 +2030,7 @@ repeated *N* times. With a single iterable argument, *N*-tuples are returned:: - itertools.product([1,2], repeat=3)) -> + itertools.product([1,2], repeat=3) -> [(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)] @@ -2178,7 +2178,7 @@ :const:`UF_APPEND` to indicate that data can only be appended to the file. (Contributed by M. Levinson.) - ``os.closerange(*low*, *high*)`` efficiently closes all file descriptors + ``os.closerange(low, high)`` efficiently closes all file descriptors from *low* to *high*, ignoring any errors and not including *high* itself. This function is now used by the :mod:`subprocess` module to make starting processes faster. (Contributed by Georg Brandl; :issue:`1663329`.) @@ -2311,12 +2311,12 @@ will be ignored, not copied. The :mod:`shutil` module also provides an :func:`ignore_patterns` - function for use with this new parameter. - :func:`ignore_patterns` takes an arbitrary number of glob-style patterns - and will ignore any files and directories that match any of these patterns. - The following example copies a directory tree, but skips both - :file:`.svn` directories and Emacs backup - files, which have names ending with '~':: + function for use with this new parameter. :func:`ignore_patterns` + takes an arbitrary number of glob-style patterns and returns a + callable that will ignore any files and directories that match any + of these patterns. The following example copies a directory tree, + but skips both :file:`.svn` directories and Emacs backup files, + which have names ending with '~':: shutil.copytree('Doc/library', '/tmp/library', ignore=shutil.ignore_patterns('*~', '.svn')) @@ -2523,13 +2523,15 @@ (Contributed by Dwayne Bailey; :issue:`1581073`.) -* The :mod:`threading` module API is being changed to use properties such as - :attr:`daemon` instead of :meth:`setDaemon` and :meth:`isDaemon` methods, and - some methods have been renamed to use underscores instead of camel-case; for - example, the :meth:`activeCount` method is renamed to :meth:`active_count`. - The 2.6 version of the module supports the same properties and renamed - methods, but doesn't remove the old methods. 3.0 also fully supports both - APIs, and a date for the deprecation of the old APIs has not been set yet. +* The :mod:`threading` module API is being changed to use properties + such as :attr:`daemon` instead of :meth:`setDaemon` and + :meth:`isDaemon` methods, and some methods have been renamed to use + underscores instead of camel-case; for example, the + :meth:`activeCount` method is renamed to :meth:`active_count`. Both + the 2.6 and 3.0 versions of the module support the same properties + and renamed methods, but don't remove the old methods. No date has been set + for the deprecation of the old APIs in Python 3.x; the old APIs won't + be removed in any 2.x version. (Carried out by several people, most notably Benjamin Peterson.) The :mod:`threading` module's :class:`Thread` objects @@ -2735,15 +2737,15 @@ The functions in this module currently include: -* ``ascii(*obj*)``: equivalent to :func:`repr`. In Python 3.0, +* ``ascii(obj)``: equivalent to :func:`repr`. In Python 3.0, :func:`repr` will return a Unicode string, while :func:`ascii` will return a pure ASCII bytestring. -* ``filter(*predicate*, *iterable*)``, - ``map(*func*, *iterable1*, ...)``: the 3.0 versions +* ``filter(predicate, iterable)``, + ``map(func, iterable1, ...)``: the 3.0 versions return iterators, unlike the 2.x built-ins which return lists. -* ``hex(*value*)``, ``oct(*value*)``: instead of calling the +* ``hex(value)``, ``oct(value)``: instead of calling the :meth:`__hex__` or :meth:`__oct__` methods, these versions will call the :meth:`__index__` method and convert the result to hexadecimal or octal. :func:`oct` will use the new ``0o`` notation for its @@ -3212,5 +3214,5 @@ The author would like to thank the following people for offering suggestions, corrections and assistance with various drafts of this article: -Georg Brandl, Steve Brown, Nick Coghlan, Jim Jewett, Antoine Pitrou. +Georg Brandl, Steve Brown, Nick Coghlan, Jim Jewett, Kent Johnson, Antoine Pitrou. From buildbot at python.org Thu Sep 4 15:29:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 13:29:36 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080904132936.D179D1E400D@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/504 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guilherme.polo,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_urllibnet.py", line 39, in testURLread f = _open_with_retry(urllib.request.urlopen, "http://www.python.org/") File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_urllibnet.py", line 25, in _open_with_retry raise last_exc File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_urllibnet.py", line 19, in _open_with_retry return func(host, *args, **kwargs) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 122, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 359, in open response = self._open(req, data) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 377, in _open '_open', req) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 337, in _call_chain result = func(*args) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 1082, in http_open return self.do_open(http.client.HTTPConnection, req) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 1071, in do_open raise URLError(err) urllib.error.URLError: 2 tests failed: test_ssl test_urllibnet make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 16:13:03 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 14:13:03 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080904141303.528C51E401D@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/310 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_calendar test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 16:25:30 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 16:25:30 +0200 (CEST) Subject: [Python-checkins] r66219 - python/trunk/Misc/NEWS Message-ID: <20080904142530.675561E400B@bag.python.org> Author: hirokazu.yamamoto Date: Thu Sep 4 16:25:30 2008 New Revision: 66219 Log: Added NEWS Modified: python/trunk/Misc/NEWS Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 4 16:25:30 2008 @@ -56,6 +56,9 @@ Library ------- +- Issue #3762: platform.architecture() fails if python is lanched via + its symbolic link. + - Issue #3772: Fixed regression problem in StreamHandler.emit(). - Issue 600362: Relocated parse_qs() and parse_qsl(), from the cgi module From python-checkins at python.org Thu Sep 4 16:26:56 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 16:26:56 +0200 (CEST) Subject: [Python-checkins] r66220 - python/branches/release25-maint/Misc/NEWS Message-ID: <20080904142656.C26DA1E400B@bag.python.org> Author: hirokazu.yamamoto Date: Thu Sep 4 16:26:56 2008 New Revision: 66220 Log: Add NEWS Modified: python/branches/release25-maint/Misc/NEWS Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Thu Sep 4 16:26:56 2008 @@ -80,6 +80,9 @@ Library ------- +- Issue #3762: platform.architecture() fails if python is lanched via + its symbolic link. + - Issue #3554: ctypes.string_at and ctypes.wstring_at did call Python api functions without holding the GIL, which could lead to a fatal error when they failed. From buildbot at python.org Thu Sep 4 16:56:18 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 14:56:18 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080904145618.F355B1E400D@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/503 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 16:59:51 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 14:59:51 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080904145951.3E2951E401D@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/499 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Segmentation fault sincerely, -The Buildbot From buildbot at python.org Thu Sep 4 18:38:00 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 16:38:00 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080904163801.209061E400D@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/575 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guilherme.polo,hirokazu.yamamoto BUILD FAILED: failed test clean Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Thu Sep 4 18:46:22 2008 From: python-checkins at python.org (guilherme.polo) Date: Thu, 4 Sep 2008 18:46:22 +0200 (CEST) Subject: [Python-checkins] r66221 - in sandbox/trunk/ttk-gsoc/src: 2.x/test/test_functions.py 2.x/ttk.py 3.x/test/test_functions.py 3.x/ttk.py Message-ID: <20080904164622.9DA731E400D@bag.python.org> Author: guilherme.polo Date: Thu Sep 4 18:46:22 2008 New Revision: 66221 Log: Fixed issue 4: http://code.google.com/p/python-ttk/issues/detail?id=4 The special code at Treeview.insert has been moved to _format_optdict, test added. Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_functions.py sandbox/trunk/ttk-gsoc/src/2.x/ttk.py sandbox/trunk/ttk-gsoc/src/3.x/test/test_functions.py sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/test/test_functions.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/test/test_functions.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/test/test_functions.py Thu Sep 4 18:46:22 2008 @@ -66,6 +66,12 @@ # opts should remain unchanged self.failUnlessEqual(opts, orig_opts) + # passing values with spaces inside a tuple/list + check_against( + ttk._format_optdict( + {'option': ('one two', 'three')}), + {'-option': '{one two} three'}) + # ignore an option amount_opts = len(ttk._format_optdict(opts, ignore=(u'?'))) / 2 self.failUnlessEqual(amount_opts, len(opts) - 1) Modified: sandbox/trunk/ttk-gsoc/src/2.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/ttk.py Thu Sep 4 18:46:22 2008 @@ -12,7 +12,7 @@ of the widgets appearance lies at Themes. """ -__version__ = "0.2.5" +__version__ = "0.2.6" __author__ = "Guilherme Polo " @@ -73,7 +73,11 @@ v.append(unicode(val) if val else '{}') else: v.append(str(val)) - value = format % ' '.join(v) + + # format v according to the script option, but also check for + # space in any value in v in order to group them correctly + value = format % ' '.join( + ('{%s}' if ' ' in val else '%s') % val for val in v) if script and value == '': value = '{}' # empty string in Python is equivalent to {} in Tcl @@ -1324,12 +1328,7 @@ is specified, it is used as the item identifier, iid must not already exist in the tree. Otherwise, a new unique identifier is generated.""" - opts, values = _format_optdict(kw, ignore='values'), kw.get('values') - # values may need special formatting if any value contains a space - if values: - values = map(unicode, values) - opts += ("-values", - ' '.join(('{%s}' if ' ' in v else '%s') % v for v in values)) + opts = _format_optdict(kw) if iid: res = self.tk.call(self._w, "insert", parent, index, "-id", iid, *opts) Modified: sandbox/trunk/ttk-gsoc/src/3.x/test/test_functions.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/test/test_functions.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/test/test_functions.py Thu Sep 4 18:46:22 2008 @@ -66,6 +66,12 @@ # opts should remain unchanged self.failUnlessEqual(opts, orig_opts) + # passing values with spaces inside a tuple/list + check_against( + ttk._format_optdict( + {'option': ('one two', 'three')}), + {'-option': '{one two} three'}) + # ignore an option amount_opts = len(ttk._format_optdict(opts, ignore=('?'))) / 2 self.failUnlessEqual(amount_opts, len(opts) - 1) Modified: sandbox/trunk/ttk-gsoc/src/3.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Thu Sep 4 18:46:22 2008 @@ -12,7 +12,7 @@ of the widgets appearance lies at Themes. """ -__version__ = "0.2.5" +__version__ = "0.2.6" __author__ = "Guilherme Polo " @@ -73,7 +73,11 @@ v.append(str(val) if val else '{}') else: v.append(str(val)) - value = format % ' '.join(v) + + # format v according to the script option, but also check for + # space in any value in v in order to group them correctly + value = format % ' '.join( + ('{%s}' if ' ' in val else '%s') % val for val in v) if script and value == '': value = '{}' # empty string in Python is equivalent to {} in Tcl @@ -1324,12 +1328,7 @@ is specified, it is used as the item identifier, iid must not already exist in the tree. Otherwise, a new unique identifier is generated.""" - opts, values = _format_optdict(kw, ignore='values'), kw.get('values') - # values may need special formatting if any value contains a space - if values: - values = map(str, values) - opts += ("-values", - ' '.join(('{%s}' if ' ' in v else '%s') % v for v in values)) + opts = _format_optdict(kw) if iid: res = self.tk.call(self._w, "insert", parent, index, "-id", iid, *opts) From brett at python.org Thu Sep 4 20:35:05 2008 From: brett at python.org (Brett Cannon) Date: Thu, 4 Sep 2008 11:35:05 -0700 Subject: [Python-checkins] r66213 - python/trunk/Lib/platform.py In-Reply-To: <20080904111514.88F941E4021@bag.python.org> References: <20080904111514.88F941E4021@bag.python.org> Message-ID: On Thu, Sep 4, 2008 at 4:15 AM, hirokazu.yamamoto wrote: > Author: hirokazu.yamamoto > Date: Thu Sep 4 13:15:14 2008 > New Revision: 66213 > > Log: > Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. > Please make sure to mention who does the code review when doing a commit during an rc, Hirokazu. > Modified: > python/trunk/Lib/platform.py > > Modified: python/trunk/Lib/platform.py > ============================================================================== > --- python/trunk/Lib/platform.py (original) > +++ python/trunk/Lib/platform.py Thu Sep 4 13:15:14 2008 > @@ -933,7 +933,7 @@ > filepath = _abspath(filepath) > while os.path.islink(filepath): > filepath = os.path.normpath( > - os.path.join(filepath,os.readlink(filepath))) > + os.path.join(os.path.dirname(filepath),os.readlink(filepath))) > return filepath > > def _syscmd_uname(option,default=''): > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > From python-checkins at python.org Thu Sep 4 20:42:45 2008 From: python-checkins at python.org (guilherme.polo) Date: Thu, 4 Sep 2008 20:42:45 +0200 (CEST) Subject: [Python-checkins] r66222 - in sandbox/trunk/ttk-gsoc/src: 2.x/ttk.py 3.x/ttk.py Message-ID: <20080904184245.2DDB21E400D@bag.python.org> Author: guilherme.polo Date: Thu Sep 4 20:42:44 2008 New Revision: 66222 Log: Removed some repeated comments in Combobox Modified: sandbox/trunk/ttk-gsoc/src/2.x/ttk.py sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Modified: sandbox/trunk/ttk-gsoc/src/2.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/2.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/2.x/ttk.py Thu Sep 4 20:42:44 2008 @@ -692,8 +692,9 @@ exportselection, justify, height, postcommand, state, textvariable, values, width """ + # The "values" option may need special formatting, so leave to + # _format_optdict the responsability to format it if "values" in kw: - # may need special formatting if any value is an empty string kw["values"] = _format_optdict({'v': kw["values"]})[1] Entry.__init__(self, master, "ttk::combobox", **kw) @@ -701,7 +702,6 @@ def __setitem__(self, item, value): if item == "values": - # may need special formatting if any value is an empty string value = _format_optdict({item: value})[1] Entry.__setitem__(self, item, value) @@ -711,7 +711,6 @@ """Custom Combobox configure, created to properly format the values option.""" if "values" in kw: - # may need special formatting if any value is an empty string kw["values"] = _format_optdict({'v': kw["values"]})[1] return Entry.configure(self, cnf, **kw) Modified: sandbox/trunk/ttk-gsoc/src/3.x/ttk.py ============================================================================== --- sandbox/trunk/ttk-gsoc/src/3.x/ttk.py (original) +++ sandbox/trunk/ttk-gsoc/src/3.x/ttk.py Thu Sep 4 20:42:44 2008 @@ -692,8 +692,9 @@ exportselection, justify, height, postcommand, state, textvariable, values, width """ + # The "values" option may need special formatting, so leave to + # _format_optdict the responsability to format it if "values" in kw: - # may need special formatting if any value is an empty string kw["values"] = _format_optdict({'v': kw["values"]})[1] Entry.__init__(self, master, "ttk::combobox", **kw) @@ -701,7 +702,6 @@ def __setitem__(self, item, value): if item == "values": - # may need special formatting if any value is an empty string value = _format_optdict({item: value})[1] Entry.__setitem__(self, item, value) @@ -711,7 +711,6 @@ """Custom Combobox configure, created to properly format the values option.""" if "values" in kw: - # may need special formatting if any value is an empty string kw["values"] = _format_optdict({'v': kw["values"]})[1] return Entry.configure(self, cnf, **kw) From python-checkins at python.org Thu Sep 4 20:51:42 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Thu, 4 Sep 2008 20:51:42 +0200 (CEST) Subject: [Python-checkins] r66216 - svn:log Message-ID: <20080904185142.C0E1F1E400D@bag.python.org> Author: hirokazu.yamamoto Revision: 66216 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -5,4 +5,5 @@ r66213 | hirokazu.yamamoto | 2008-09-04 20:15:14 +0900 | 1 line Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. + Reviewed by Amaury Forgeot d'Arc. ........ From buildbot at python.org Fri Sep 5 00:10:09 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:10:09 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080904221009.9D3701E4002@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/277 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:39:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:39:53 +0000 Subject: [Python-checkins] buildbot failure in OS X x86 3.0 Message-ID: <20080904223953.783981E4017@bag.python.org> The Buildbot has detected a new failure of OS X x86 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/OS%20X%20x86%203.0/builds/324 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: noller-osx86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:40:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:40:08 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu 3.0 Message-ID: <20080904224009.168641E4017@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%203.0/builds/420 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:40:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:40:17 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080904224017.9E34E1E4019@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/507 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:40:18 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:40:18 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080904224019.094221E401B@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1480 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:40:29 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:40:29 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080904224030.5B8EF1E401B@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1597 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:40:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:40:53 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20080904224053.7C0561E4011@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/841 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:41:04 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:41:04 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080904224104.7023D1E4010@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1354 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 00:47:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 04 Sep 2008 22:47:49 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080904224749.9E8E41E4015@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/505 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed compile sincerely, -The Buildbot From python-checkins at python.org Fri Sep 5 01:31:27 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 5 Sep 2008 01:31:27 +0200 (CEST) Subject: [Python-checkins] r66226 - python/trunk/Doc/library/2to3.rst Message-ID: <20080904233128.0082E1E4002@bag.python.org> Author: benjamin.peterson Date: Fri Sep 5 01:31:27 2008 New Revision: 66226 Log: flesh out the documentation on using 2to3 Modified: python/trunk/Doc/library/2to3.rst Modified: python/trunk/Doc/library/2to3.rst ============================================================================== --- python/trunk/Doc/library/2to3.rst (original) +++ python/trunk/Doc/library/2to3.rst Fri Sep 5 01:31:27 2008 @@ -7,15 +7,21 @@ 2to3 is a Python program that reads Python 2.x source code and applies a series of *fixers* to transform it into valid Python 3.x code. The standard library -contains a rich set of fixers that will handle almost all code. It is, however, -possible to write your own fixers. +contains a rich set of fixers that will handle almost all code. 2to3 supporting +library :mod:`lib2to3` is, however, a flexible and generic library, so it is +possible to write your own fixers for 2to3. :mod:`lib2to3` could also be +adapted to custom applications in which Python code needs to be edited +automatically. Using 2to3 ---------- -2to3 can be run with a list of files to transform or a directory to recursively -traverse looking for files with the ``.py`` extension. +2to3 will usually be installed with the Python interpreter as a script. It is +also located in the :file:`Tools/scripts` directory of the Python root. + +2to3's basic arguments are a list of files or directories to transform. The +directories are to recursively traversed for Python sources. Here is a sample Python 2.x source file, :file:`example.py`:: @@ -29,13 +35,14 @@ $ 2to3 example.py -A diff against the original source file will be printed. 2to3 can also write -the needed modifications right back to the source file. (A backup of the -original file will also be made.) This is done with the :option:`-w` flag:: +A diff against the original source file is printed. 2to3 can also write the +needed modifications right back to the source file. (Of course, a backup of the +original is also be made.) Writing the changes back is enabled with the +:option:`-w` flag:: $ 2to3 -w example.py -:file:`example.py` will now look like this:: +After transformation :file:`example.py` looks like this:: def greet(name): print("Hello, {0}!".format(name)) @@ -43,10 +50,10 @@ name = input() greet(name) -Comments and and exact indentation will be preserved throughout the translation +Comments and and exact indentation are preserved throughout the translation process. -By default, 2to3 will run a set of predefined fixers. The :option:`-l` flag +By default, 2to3 runs a set of predefined fixers. The :option:`-l` flag lists all avaible fixers. An explicit set of fixers to run can be given by use of the :option:`-f` flag. The following example runs only the ``imports`` and ``has_key`` fixers:: @@ -54,16 +61,30 @@ $ 2to3 -f imports -f has_key example.py Some fixers are *explicit*, meaning they aren't run be default and must be -listed on the command line. Here, in addition to the default fixers, the -``idioms`` fixer is run:: +listed on the command line to be run. Here, in addition to the default fixers, +the ``idioms`` fixer is run:: $ 2to3 -f all -f idioms example.py -Notice how ``all`` enables all default fixers. +Notice how passing ``all`` enables all default fixers. Sometimes 2to3 will find will find a place in your source code that needs to be changed, but 2to3 cannot fix automatically. In this case, 2to3 will print a -warning beneath the diff for a file. +warning beneath the diff for a file. You should address the warning in order to +have compliant 3.x code. + +2to3 can also refactor doctests. To enable this mode, use the :option:`-d` +flag. Note that *only* doctests will be refactored. + +The :option:`-v` option enables the output of more information on the +translation process. + +2to3 can also treat ``print`` as a function instead of a statement in the +grammar. This is useful when ``from __future__ import print_function`` is being +used. If this option is not given, the print fixer will surround print calls in +an extra set of parentheses because it cannot differentiate between the and +print statement with parentheses (such as ``print ("a" + "b" + "c")``) and a +true function call. :mod:`lib2to3` - 2to3's library From buildbot at python.org Fri Sep 5 02:27:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 00:27:36 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080905002736.3002A1E4002@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/167 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_threadedtempfile sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 04:01:52 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 02:01:52 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080905020152.DD1491E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/508 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Fri Sep 5 05:52:59 2008 From: python-checkins at python.org (brett.cannon) Date: Fri, 5 Sep 2008 05:52:59 +0200 (CEST) Subject: [Python-checkins] r66229 - python/trunk/Doc/library/warnings.rst Message-ID: <20080905035259.EA3C31E4002@bag.python.org> Author: brett.cannon Date: Fri Sep 5 05:52:59 2008 New Revision: 66229 Log: Make it more obvious that warnings.catch_warnings() and its arguments should be considered keyword-only. Modified: python/trunk/Doc/library/warnings.rst Modified: python/trunk/Doc/library/warnings.rst ============================================================================== --- python/trunk/Doc/library/warnings.rst (original) +++ python/trunk/Doc/library/warnings.rst Fri Sep 5 05:52:59 2008 @@ -267,7 +267,7 @@ Available Classes ----------------- -.. class:: catch_warnings([record=False[, module=None]]) +.. class:: catch_warnings([\*, record=False[, module=None]]) A context manager that guards the warnings filter from being permanently mutated. The manager returns an instance of :class:`WarningsRecorder`. The From buildbot at python.org Fri Sep 5 06:17:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 04:17:01 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080905041701.5A3701E4002@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/282 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 07:00:51 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 05:00:51 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080905050051.4B3C51E4002@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/511 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 07:06:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 05:06:56 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080905050656.AC6891E4016@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/510 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 5 17:15:56 2008 From: python-checkins at python.org (andrew.kuchling) Date: Fri, 5 Sep 2008 17:15:56 +0200 (CEST) Subject: [Python-checkins] r66231 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080905151556.CEB951E4003@bag.python.org> Author: andrew.kuchling Date: Fri Sep 5 17:15:56 2008 New Revision: 66231 Log: #3671: Typo fix Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Fri Sep 5 17:15:56 2008 @@ -2036,7 +2036,7 @@ With two iterables, *2N*-tuples are returned. :: - itertools(product([1,2], [3,4], repeat=2) -> + itertools.product([1,2], [3,4], repeat=2) -> [(1, 3, 1, 3), (1, 3, 1, 4), (1, 3, 2, 3), (1, 3, 2, 4), (1, 4, 1, 3), (1, 4, 1, 4), (1, 4, 2, 3), (1, 4, 2, 4), (2, 3, 1, 3), (2, 3, 1, 4), (2, 3, 2, 3), (2, 3, 2, 4), @@ -3212,7 +3212,8 @@ Acknowledgements ================ -The author would like to thank the following people for offering suggestions, -corrections and assistance with various drafts of this article: -Georg Brandl, Steve Brown, Nick Coghlan, Jim Jewett, Kent Johnson, Antoine Pitrou. +The author would like to thank the following people for offering +suggestions, corrections and assistance with various drafts of this +article: Georg Brandl, Steve Brown, Nick Coghlan, Jim Jewett, Kent +Johnson, Chris Lambacher, Antoine Pitrou. From python-checkins at python.org Fri Sep 5 20:33:51 2008 From: python-checkins at python.org (brett.cannon) Date: Fri, 5 Sep 2008 20:33:51 +0200 (CEST) Subject: [Python-checkins] r66232 - in python/trunk: Doc/library/bsddb.rst Doc/library/dbhash.rst Lib/bsddb/__init__.py Lib/dbhash.py Lib/test/test_py3kwarn.py Lib/test/test_warnings.py Lib/warnings.py Misc/NEWS Message-ID: <20080905183351.E1B0C1E4003@bag.python.org> Author: brett.cannon Date: Fri Sep 5 20:33:51 2008 New Revision: 66232 Log: Deprecate bsddb for removal in Python 3.0. Closes issue 3776. Review by Nick Coghlan. Modified: python/trunk/Doc/library/bsddb.rst python/trunk/Doc/library/dbhash.rst python/trunk/Lib/bsddb/__init__.py python/trunk/Lib/dbhash.py python/trunk/Lib/test/test_py3kwarn.py python/trunk/Lib/test/test_warnings.py python/trunk/Lib/warnings.py python/trunk/Misc/NEWS Modified: python/trunk/Doc/library/bsddb.rst ============================================================================== --- python/trunk/Doc/library/bsddb.rst (original) +++ python/trunk/Doc/library/bsddb.rst Fri Sep 5 20:33:51 2008 @@ -6,6 +6,9 @@ :synopsis: Interface to Berkeley DB database library .. sectionauthor:: Skip Montanaro +.. deprecated:: 2.6 + The :mod:`bsddb` module has been deprecated for removal in Python 3.0. + The :mod:`bsddb` module provides an interface to the Berkeley DB library. Users can create hash, btree or record based library files using the appropriate open Modified: python/trunk/Doc/library/dbhash.rst ============================================================================== --- python/trunk/Doc/library/dbhash.rst (original) +++ python/trunk/Doc/library/dbhash.rst Fri Sep 5 20:33:51 2008 @@ -5,10 +5,8 @@ :synopsis: DBM-style interface to the BSD database library. .. sectionauthor:: Fred L. Drake, Jr. -.. note:: - The :mod:`dbhash` module has been renamed to :mod:`dbm.bsd` in Python 3.0. - The :term:`2to3` tool will automatically adapt imports when converting your - sources to 3.0. +.. deprecated:: 2.6 + The :mod:`dbhash` module has been deprecated for removal in Python 3.0. .. index:: module: bsddb Modified: python/trunk/Lib/bsddb/__init__.py ============================================================================== --- python/trunk/Lib/bsddb/__init__.py (original) +++ python/trunk/Lib/bsddb/__init__.py Fri Sep 5 20:33:51 2008 @@ -42,6 +42,12 @@ import sys absolute_import = (sys.version_info[0] >= 3) +if sys.py3kwarning: + import warnings + warnings.warnpy3k("in 3.x, bsddb has been removed; " + "please use the pybsddb project instead", + DeprecationWarning, 2) + try: if __name__ == 'bsddb3': # import _pybsddb binary as it should be the more recent version from Modified: python/trunk/Lib/dbhash.py ============================================================================== --- python/trunk/Lib/dbhash.py (original) +++ python/trunk/Lib/dbhash.py Fri Sep 5 20:33:51 2008 @@ -1,6 +1,9 @@ """Provide a (g)dbm-compatible interface to bsddb.hashopen.""" import sys +if sys.py3kwarning: + import warnings + warnings.warnpy3k("in 3.x, dbhash has been removed", DeprecationWarning, 2) try: import bsddb except ImportError: Modified: python/trunk/Lib/test/test_py3kwarn.py ============================================================================== --- python/trunk/Lib/test/test_py3kwarn.py (original) +++ python/trunk/Lib/test/test_py3kwarn.py Fri Sep 5 20:33:51 2008 @@ -305,7 +305,7 @@ 'sunos5' : ('sunaudiodev', 'SUNAUDIODEV'), } optional_modules = ('bsddb185', 'Canvas', 'dl', 'linuxaudiodev', 'imageop', - 'sv', 'cPickle') + 'sv', 'cPickle', 'bsddb', 'dbhash') def check_removal(self, module_name, optional=False): """Make sure the specified module, when imported, raises a Modified: python/trunk/Lib/test/test_warnings.py ============================================================================== --- python/trunk/Lib/test/test_warnings.py (original) +++ python/trunk/Lib/test/test_warnings.py Fri Sep 5 20:33:51 2008 @@ -508,6 +508,7 @@ wmod = self.module with wmod.catch_warnings(module=wmod, record=True) as w: self.assertEqual(w, []) + self.assertRaises(AttributeError, getattr, w, 'message') wmod.simplefilter("always") wmod.warn("foo") self.assertEqual(str(w.message), "foo") Modified: python/trunk/Lib/warnings.py ============================================================================== --- python/trunk/Lib/warnings.py (original) +++ python/trunk/Lib/warnings.py Fri Sep 5 20:33:51 2008 @@ -314,7 +314,14 @@ self.append(WarningMessage(*args, **kwargs)) def __getattr__(self, attr): - return getattr(self[-1], attr) + """Return attributes from the last caught warning, or raise + AttributeError.""" + try: + return getattr(self[-1], attr) + except IndexError: + raise AttributeError("no recorded warning to read " + "{0!r} attribute from".format(attr)) + def reset(self): del self[:] Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Sep 5 20:33:51 2008 @@ -56,6 +56,8 @@ Library ------- +- Issue 3776: Deprecate the bsddb package for removal in 3.0. + - Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. From buildbot at python.org Fri Sep 5 21:02:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 19:02:53 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080905190253.F0FE31E4003@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/200 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,brett.cannon,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest2) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 21:05:52 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 19:05:52 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 3.0 Message-ID: <20080905190552.DB43A1E4019@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%203.0/builds/1540 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 32 sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 23:17:37 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 21:17:37 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080905211737.9A1641E4003@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/284 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Fri Sep 5 23:59:14 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 21:59:14 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080905215914.97FA81E4003@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/512 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 6 00:04:54 2008 From: python-checkins at python.org (antoine.pitrou) Date: Sat, 6 Sep 2008 00:04:54 +0200 (CEST) Subject: [Python-checkins] r66235 - python/trunk/Lib/test/test_unicode.py Message-ID: <20080905220454.E382D1E4003@bag.python.org> Author: antoine.pitrou Date: Sat Sep 6 00:04:54 2008 New Revision: 66235 Log: #3601: test_unicode.test_raiseMemError fails in UCS4 Reviewed by Benjamin Peterson on IRC. Modified: python/trunk/Lib/test/test_unicode.py Modified: python/trunk/Lib/test/test_unicode.py ============================================================================== --- python/trunk/Lib/test/test_unicode.py (original) +++ python/trunk/Lib/test/test_unicode.py Sat Sep 6 00:04:54 2008 @@ -1118,7 +1118,10 @@ # when a string allocation fails with a MemoryError. # This used to crash the interpreter, # or leak references when the number was smaller. - alloc = lambda: u"a" * (sys.maxsize - 100) + charwidth = 4 if sys.maxunicode >= 0x10000 else 2 + # Note: sys.maxsize is half of the actual max allocation because of + # the signedness of Py_ssize_t. + alloc = lambda: u"a" * (sys.maxsize // charwidth * 2) self.assertRaises(MemoryError, alloc) self.assertRaises(MemoryError, alloc) From buildbot at python.org Sat Sep 6 00:49:59 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 22:49:59 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080905225000.21BE61E4003@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1033 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 6 00:59:17 2008 From: python-checkins at python.org (brett.cannon) Date: Sat, 6 Sep 2008 00:59:17 +0200 (CEST) Subject: [Python-checkins] r66237 - in python/trunk: Makefile.pre.in Misc/NEWS Message-ID: <20080905225917.EA4C11E4003@bag.python.org> Author: brett.cannon Date: Sat Sep 6 00:59:17 2008 New Revision: 66237 Log: GNU coding guidelines say that ``make check`` should verify the build. That clashes with what Python's build target did. Rename the target to 'patchcheck' to avoid the culture clash. Closes issue 3758. Reviewed by Benjamin Peterson. Modified: python/trunk/Makefile.pre.in python/trunk/Misc/NEWS Modified: python/trunk/Makefile.pre.in ============================================================================== --- python/trunk/Makefile.pre.in (original) +++ python/trunk/Makefile.pre.in Sat Sep 6 00:59:17 2008 @@ -1190,7 +1190,7 @@ -o -print # Perform some verification checks on any modified files. -check: +patchcheck: $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py # Dependencies Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 6 00:59:17 2008 @@ -112,6 +112,12 @@ - Issue 3768: Move test_py3kwarn over to the new API for catch_warnings(). +Build +----- + +- Issue 3758: Rename the 'check' target to 'patchcheck' so as to not clash with + GNU build target guidelines. + What's New in Python 2.6 beta 3? ================================ From buildbot at python.org Sat Sep 6 01:23:51 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 23:23:51 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 trunk Message-ID: <20080905232351.34E561E4003@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%20trunk/builds/3419 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: brett.cannon BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Sat Sep 6 01:30:24 2008 From: python-checkins at python.org (antoine.pitrou) Date: Sat, 6 Sep 2008 01:30:24 +0200 (CEST) Subject: [Python-checkins] r66240 - in python/trunk: Lib/zipfile.py Misc/NEWS Message-ID: <20080905233024.3C2521E4003@bag.python.org> Author: antoine.pitrou Date: Sat Sep 6 01:30:23 2008 New Revision: 66240 Log: Issue #3535: zipfile couldn't read some zip files larger than 2GB. Reviewed by Amaury Forgeot d'Arc. Modified: python/trunk/Lib/zipfile.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/zipfile.py ============================================================================== --- python/trunk/Lib/zipfile.py (original) +++ python/trunk/Lib/zipfile.py Sat Sep 6 01:30:23 2008 @@ -163,6 +163,7 @@ return endrec # Update the original endrec using data from the ZIP64 record + endrec[_ECD_SIGNATURE] = sig endrec[_ECD_DISK_NUMBER] = disk_num endrec[_ECD_DISK_START] = disk_dir endrec[_ECD_ENTRIES_THIS_DISK] = dircount @@ -735,9 +736,8 @@ # "concat" is zero, unless zip was concatenated to another file concat = endrec[_ECD_LOCATION] - size_cd - offset_cd - if endrec[_ECD_LOCATION] > ZIP64_LIMIT: - # If the offset of the "End of Central Dir" record requires Zip64 - # extension structures, account for them + if endrec[_ECD_SIGNATURE] == stringEndArchive64: + # If Zip64 extension structures are present, account for them concat -= (sizeEndCentDir64 + sizeEndCentDir64Locator) if self.debug > 2: Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 6 01:30:23 2008 @@ -56,7 +56,9 @@ Library ------- -- Issue 3776: Deprecate the bsddb package for removal in 3.0. +- Issue #3535: zipfile couldn't read some zip files larger than 2GB. + +- Issue #3776: Deprecate the bsddb package for removal in 3.0. - Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. From buildbot at python.org Sat Sep 6 01:49:26 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 05 Sep 2008 23:49:26 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080905234926.8AC651E4003@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/320 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_email make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 02:13:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 00:13:01 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080906001301.B9C601E4003@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/286 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 02:14:31 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 00:14:31 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080906001431.9727D1E4003@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/203 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 02:20:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 00:20:30 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080906002030.A6BBA1E4003@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/514 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 02:20:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 00:20:53 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP trunk Message-ID: <20080906002053.7ECB41E4003@bag.python.org> The Buildbot has detected a new failure of amd64 XP trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%20trunk/builds/253 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 02:22:39 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 00:22:39 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 3.0 Message-ID: <20080906002239.56E5A1E4003@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%203.0/builds/1304 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 03:03:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 01:03:16 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080906010317.075931E4003@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/1954 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 6 03:20:11 2008 From: python-checkins at python.org (jesse.noller) Date: Sat, 6 Sep 2008 03:20:11 +0200 (CEST) Subject: [Python-checkins] r66244 - python/trunk/Doc/library/multiprocessing.rst Message-ID: <20080906012011.F0E871E4003@bag.python.org> Author: jesse.noller Date: Sat Sep 6 03:20:11 2008 New Revision: 66244 Log: Fix typo in multiprocessing doc, cancel_join_thread was missing _thread Modified: python/trunk/Doc/library/multiprocessing.rst Modified: python/trunk/Doc/library/multiprocessing.rst ============================================================================== --- python/trunk/Doc/library/multiprocessing.rst (original) +++ python/trunk/Doc/library/multiprocessing.rst Sat Sep 6 03:20:11 2008 @@ -1861,7 +1861,7 @@ Bear in mind that a process that has put items in a queue will wait before terminating until all the buffered items are fed by the "feeder" thread to the underlying pipe. (The child process can call the - :meth:`Queue.cancel_join` method of the queue to avoid this behaviour.) + :meth:`Queue.cancel_join_thread` method of the queue to avoid this behaviour.) This means that whenever you use a queue you need to make sure that all items which have been put on the queue will eventually be removed before the From python-checkins at python.org Sat Sep 6 04:54:02 2008 From: python-checkins at python.org (skip.montanaro) Date: Sat, 6 Sep 2008 04:54:02 +0200 (CEST) Subject: [Python-checkins] r66245 - in sandbox/trunk/dbm_sqlite: Doc Doc/library Doc/library/dbm.rst Lib Lib/dbm Lib/dbm/sqlite.py Lib/test Lib/test/test_dbm_sqlite.py Message-ID: <20080906025402.F11311E4003@bag.python.org> Author: skip.montanaro Date: Sat Sep 6 04:54:02 2008 New Revision: 66245 Log: Make a sandbox project out of this Added: sandbox/trunk/dbm_sqlite/ sandbox/trunk/dbm_sqlite/Doc/ sandbox/trunk/dbm_sqlite/Doc/library/ sandbox/trunk/dbm_sqlite/Doc/library/dbm.rst (contents, props changed) sandbox/trunk/dbm_sqlite/Lib/ sandbox/trunk/dbm_sqlite/Lib/dbm/ sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py (contents, props changed) sandbox/trunk/dbm_sqlite/Lib/test/ sandbox/trunk/dbm_sqlite/Lib/test/test_dbm_sqlite.py (contents, props changed) Added: sandbox/trunk/dbm_sqlite/Doc/library/dbm.rst ============================================================================== --- (empty file) +++ sandbox/trunk/dbm_sqlite/Doc/library/dbm.rst Sat Sep 6 04:54:02 2008 @@ -0,0 +1,325 @@ +:mod:`dbm` --- Interfaces to Unix "databases" +============================================= + +.. module:: dbm + :synopsis: Interfaces to various Unix "database" formats. + +:mod:`dbm` is a generic interface to variants of the DBM database --- +:mod:`dbm.bsd` (requires :mod:`bsddb`), :mod:`dbm.gnu`, or :mod:`dbm.ndbm`. If +none of these modules is installed, the slow-but-simple implementation in module +:mod:`dbm.dumb` will be used. + + +.. exception:: error + + A tuple containing the exceptions that can be raised by each of the supported + modules, with a unique exception also named :exc:`dbm.error` as the first + item --- the latter is used when :exc:`dbm.error` is raised. + + +.. function:: whichdb(filename) + + This functionattempts to guess which of the several simple database modules + available --- :mod:`dbm.bsd`, :mod:`dbm.gnu`, :mod:`dbm.ndbm` or + :mod:`dbm.dumb` --- should be used to open a given file. + + Returns one of the following values: ``None`` if the file can't be opened + because it's unreadable or doesn't exist; the empty string (``''``) if the + file's format can't be guessed; or a string containing the required module + name, such as ``'dbm.ndbm'`` or ``'dbm.gnu'``. + + +.. function:: open(filename[, flag[, mode]]) + + Open the database file *filename* and return a corresponding object. + + If the database file already exists, the :func:`whichdb` function is used to + determine its type and the appropriate module is used; if it does not exist, + the first module listed above that can be imported is used. + + The optional *flag* argument can be ``'r'`` to open an existing database for + reading only, ``'w'`` to open an existing database for reading and writing, + ``'c'`` to create the database if it doesn't exist, or ``'n'``, which will + always create a new empty database. If not specified, the default value is + ``'r'``. + + The optional *mode* argument is the Unix mode of the file, used only when the + database has to be created. It defaults to octal ``0o666`` (and will be + modified by the prevailing umask). + + +The object returned by :func:`open` supports most of the same functionality as +dictionaries; keys and their corresponding values can be stored, retrieved, and +deleted, and the :keyword:`in` operator and the :meth:`keys` method are +available. Keys and values must always be strings. + +The following example records some hostnames and a corresponding title, and +then prints out the contents of the database:: + + import dbm + + # Open database, creating it if necessary. + db = dbm.open('cache', 'c') + + # Record some values + db['www.python.org'] = 'Python Website' + db['www.cnn.com'] = 'Cable News Network' + + # Loop through contents. Other dictionary methods + # such as .keys(), .values() also work. + for k, v in db.iteritems(): + print(k, '\t', v) + + # Storing a non-string key or value will raise an exception (most + # likely a TypeError). + db['www.yahoo.com'] = 4 + + # Close when done. + db.close() + + +.. seealso:: + + Module :mod:`shelve` + Persistence module which stores non-string data. + + +The individual submodules are described in the following sections. + + +:mod:`dbm.gnu` --- GNU's reinterpretation of dbm +------------------------------------------------ + +.. module:: dbm.gnu + :platform: Unix + :synopsis: GNU's reinterpretation of dbm. + + +This module is quite similar to the :mod:`dbm` module, but uses the GNU library +``gdbm`` instead to provide some additional functionality. Please note that the +file formats created by ``gdbm`` and ``dbm`` are incompatible. + +The :mod:`dbm.gnu` module provides an interface to the GNU DBM library. +``gdbm`` objects behave like mappings (dictionaries), except that keys and +values are always strings. Printing a :mod:`dbm.gnu` object doesn't print the +keys and values, and the :meth:`items` and :meth:`values` methods are not +supported. + +.. exception:: error + + Raised on ``gdbm``\ -specific errors, such as I/O errors. :exc:`KeyError` is + raised for general mapping errors like specifying an incorrect key. + + +.. function:: open(filename, [flag, [mode]]) + + Open a ``gdbm`` database and return a :class:`gdbm` object. The *filename* + argument is the name of the database file. + + The optional *flag* argument can be: + + +---------+-------------------------------------------+ + | Value | Meaning | + +=========+===========================================+ + | ``'r'`` | Open existing database for reading only | + | | (default) | + +---------+-------------------------------------------+ + | ``'w'`` | Open existing database for reading and | + | | writing | + +---------+-------------------------------------------+ + | ``'c'`` | Open database for reading and writing, | + | | creating it if it doesn't exist | + +---------+-------------------------------------------+ + | ``'n'`` | Always create a new, empty database, open | + | | for reading and writing | + +---------+-------------------------------------------+ + + The following additional characters may be appended to the flag to control + how the database is opened: + + +---------+--------------------------------------------+ + | Value | Meaning | + +=========+============================================+ + | ``'f'`` | Open the database in fast mode. Writes | + | | to the database will not be synchronized. | + +---------+--------------------------------------------+ + | ``'s'`` | Synchronized mode. This will cause changes | + | | to the database to be immediately written | + | | to the file. | + +---------+--------------------------------------------+ + | ``'u'`` | Do not lock database. | + +---------+--------------------------------------------+ + + Not all flags are valid for all versions of ``gdbm``. The module constant + :const:`open_flags` is a string of supported flag characters. The exception + :exc:`error` is raised if an invalid flag is specified. + + The optional *mode* argument is the Unix mode of the file, used only when the + database has to be created. It defaults to octal ``0o666``. + + In addition to the dictionary-like methods, ``gdbm`` objects have the + following methods: + + .. method:: gdbm.firstkey() + + It's possible to loop over every key in the database using this method and the + :meth:`nextkey` method. The traversal is ordered by ``gdbm``'s internal + hash values, and won't be sorted by the key values. This method returns + the starting key. + + .. method:: gdbm.nextkey(key) + + Returns the key that follows *key* in the traversal. The following code prints + every key in the database ``db``, without having to create a list in memory that + contains them all:: + + k = db.firstkey() + while k != None: + print(k) + k = db.nextkey(k) + + .. method:: gdbm.reorganize() + + If you have carried out a lot of deletions and would like to shrink the space + used by the ``gdbm`` file, this routine will reorganize the database. ``gdbm`` + will not shorten the length of a database file except by using this + reorganization; otherwise, deleted file space will be kept and reused as new + (key, value) pairs are added. + + .. method:: gdbm.sync() + + When the database has been opened in fast mode, this method forces any + unwritten data to be written to the disk. + + +:mod:`dbm.ndbm` --- Interface based on ndbm +------------------------------------------- + +.. module:: dbm.ndbm + :platform: Unix + :synopsis: The standard "database" interface, based on ndbm. + + +The :mod:`dbm.ndbm` module provides an interface to the Unix "(n)dbm" library. +Dbm objects behave like mappings (dictionaries), except that keys and values are +always strings. Printing a dbm object doesn't print the keys and values, and the +:meth:`items` and :meth:`values` methods are not supported. + +This module can be used with the "classic" ndbm interface, the BSD DB +compatibility interface, or the GNU GDBM compatibility interface. On Unix, the +:program:`configure` script will attempt to locate the appropriate header file +to simplify building this module. + +.. exception:: error + + Raised on dbm-specific errors, such as I/O errors. :exc:`KeyError` is raised + for general mapping errors like specifying an incorrect key. + + +.. data:: library + + Name of the ``ndbm`` implementation library used. + + +.. function:: open(filename[, flag[, mode]]) + + Open a dbm database and return a dbm object. The *filename* argument is the + name of the database file (without the :file:`.dir` or :file:`.pag` extensions; + note that the BSD DB implementation of the interface will append the extension + :file:`.db` and only create one file). + + The optional *flag* argument must be one of these values: + + +---------+-------------------------------------------+ + | Value | Meaning | + +=========+===========================================+ + | ``'r'`` | Open existing database for reading only | + | | (default) | + +---------+-------------------------------------------+ + | ``'w'`` | Open existing database for reading and | + | | writing | + +---------+-------------------------------------------+ + | ``'c'`` | Open database for reading and writing, | + | | creating it if it doesn't exist | + +---------+-------------------------------------------+ + | ``'n'`` | Always create a new, empty database, open | + | | for reading and writing | + +---------+-------------------------------------------+ + + The optional *mode* argument is the Unix mode of the file, used only when the + database has to be created. It defaults to octal ``0o666`` (and will be + modified by the prevailing umask). + + + +:mod:`dbm.sqlite` --- Interface based on sqlite3 +------------------------------------------------ + +.. module:: dbm.sqlite + :synopsis: Portable implementation of the simple DBM interface. + + +The :mod:`dbm.sqlite` module provides a dict-like file interface similar to +the other modules in the dbm package, though the underlying file storage is +managed using the sqlite3 module and is thus portable across all platforms +which support the sqlite3 package. dbm.sqlite objects behave like mappings +(dictionaries), except that keys and values are always strings. Printing a +dbm object doesn't print the keys and values. + +.. function:: open(filename[, flag[, mode]]) + + Open a sqlite3 database and return a dbm object. The *filename* argument + is the name of the database file. The flag and mode arguments are + ignored. + + +:mod:`dbm.dumb` --- Portable DBM implementation +----------------------------------------------- + +.. module:: dbm.dumb + :synopsis: Portable implementation of the simple DBM interface. + +.. index:: single: databases + +.. note:: + + The :mod:`dbm.dumb` module is intended as a last resort fallback for the + :mod:`dbm` module when no more robust module is available. The :mod:`dbm.dumb` + module is not written for speed and is not nearly as heavily used as the other + database modules. + +The :mod:`dbm.dumb` module provides a persistent dictionary-like interface which +is written entirely in Python. Unlike other modules such as :mod:`gdbm` and +:mod:`bsddb`, no external library is required. As with other persistent +mappings, the keys and values must always be strings. + +The module defines the following: + + +.. exception:: error + + Raised on dbm.dumb-specific errors, such as I/O errors. :exc:`KeyError` is + raised for general mapping errors like specifying an incorrect key. + + +.. function:: open(filename[, flag[, mode]]) + + Open a dumbdbm database and return a dumbdbm object. The *filename* argument is + the basename of the database file (without any specific extensions). When a + dumbdbm database is created, files with :file:`.dat` and :file:`.dir` extensions + are created. + + The optional *flag* argument is currently ignored; the database is always opened + for update, and will be created if it does not exist. + + The optional *mode* argument is the Unix mode of the file, used only when the + database has to be created. It defaults to octal ``0o666`` (and will be modified + by the prevailing umask). + + In addition to the methods provided by the :class:`collections.MutableMapping` class, + :class:`dumbdbm` objects provide the following method: + + .. method:: dumbdbm.sync() + + Synchronize the on-disk directory and data files. This method is called + by the :meth:`Shelve.sync` method. Added: sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py ============================================================================== --- (empty file) +++ sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py Sat Sep 6 04:54:02 2008 @@ -0,0 +1,120 @@ +""" +A dbm clone using sqlite under the covers. + +XXX TO DO: + +Everything. +""" + +import sqlite3 +import collections + +__all__ = ["error", "open"] + +error = sqlite3.OperationalError + +class _Database(collections.MutableMapping): + def __init__(self, filename, mode): + self._mode = mode + self._filename = filename + self._conn = sqlite3.connect(filename) + self.initialize_table() + + def initialize_table(self): + c = self._conn.cursor() + try: + c.execute("select count(key) from dict") + except sqlite3.OperationalError: + c.execute("""create table dict (key text, value text)""") + self._conn.commit() + finally: + c.close() + + def __getitem__(self, key): + c = self._conn.cursor() + try: + c.execute("select value from dict" + " where key = ?", (key,)) + rows = list(c) + if not rows: + raise KeyError(key) + return rows[0][0] + finally: + c.close() + + def __setitem__(self, key, val): + del self[key] + c = self._conn.cursor() + try: + c.execute("insert into dict" + " (key, value) values (?, ?)", (key, val)) + self._conn.commit() + finally: + c.close() + + def __delitem__(self, key): + c = self._conn.cursor() + try: + c.execute("delete from dict where key = ?", (key,)) + self._conn.commit() + finally: + c.close() + + def keys(self): + c = self._conn.cursor() + try: + c.execute("select key from dict order by key") + return [e[0] for e in c] + finally: + c.close() + + def values(self): + c = self._conn.cursor() + try: + c.execute("select value from dict order by key") + return [e[0] for e in c] + finally: + c.close() + + def items(self): + c = self._conn.cursor() + try: + c.execute("select key, value from dict order by key") + return list(c) + finally: + c.close() + + def __contains__(self, key): + c = self._conn.cursor() + try: + c.execute("select value from dict" + " where key = ?", (key,)) + return not not list(c) + finally: + c.close() + + def iterkeys(self): + return iter(self.keys()) + __iter__ = iterkeys + + def iteritems(self): + return iter(self.items()) + + def itervalues(self): + return iter(self.values()) + + def __len__(self): + c = self._conn.cursor() + try: + c.execute("select count(key) from dict") + return int(list(c)[0]) + finally: + c.close() + + def close(self): + if self._conn is not None: + self._conn.close() + self._conn = None + +def open(file, flag=None, mode=0o666): + return _Database(file, mode) Added: sandbox/trunk/dbm_sqlite/Lib/test/test_dbm_sqlite.py ============================================================================== --- (empty file) +++ sandbox/trunk/dbm_sqlite/Lib/test/test_dbm_sqlite.py Sat Sep 6 04:54:02 2008 @@ -0,0 +1,148 @@ +#! /usr/bin/env python +"""Test script for the dbm.sqlite module + by Skip Montanaro, based on the 3.0 dumbdbm test module. +""" + +import io +import os +import unittest +import dbm.sqlite +from test import support + +_fname = support.TESTFN + +def _delete_files(): + try: + os.unlink(_fname) + except OSError: + pass + +class DbmSQLiteTestCase(unittest.TestCase): + _dict = {'0': b'', + 'a': b'Python:', + 'b': b'Programming', + 'c': b'the', + 'd': b'way', + 'f': b'Guido', + 'g': b'intended', + } + + def test_sqlite_creation(self): + f = dbm.sqlite.open(_fname, 'c') + self.assertEqual(list(f.keys()), []) + for key in self._dict: + f[key.encode("ascii")] = self._dict[key] + self.read_helper(f) + f.close() + + def test_close_twice(self): + f = dbm.sqlite.open(_fname) + f[b'a'] = b'b' + self.assertEqual(f[b'a'], b'b') + f.close() + f.close() + + def test_sqlite_modification(self): + self.init_db() + f = dbm.sqlite.open(_fname, 'w') + self._dict['g'] = f[b'g'] = b"indented" + self.read_helper(f) + f.close() + + def test_sqlite_read(self): + self.init_db() + f = dbm.sqlite.open(_fname, 'r') + self.read_helper(f) + f.close() + + def test_sqlite_keys(self): + self.init_db() + f = dbm.sqlite.open(_fname) + keys = self.keys_helper(f) + f.close() + + def test_write_contains(self): + f = dbm.sqlite.open(_fname) + f[b'1'] = b'hello' + self.assertTrue(b'1' in f) + f.close() + + def test_write_write_read(self): + # test for bug #482460 + f = dbm.sqlite.open(_fname) + f[b'1'] = b'hello' + f[b'1'] = b'hello2' + f.close() + f = dbm.sqlite.open(_fname) + self.assertEqual(f[b'1'], b'hello2') + f.close() + + def read_helper(self, f): + keys = self.keys_helper(f) + for key in self._dict: + self.assertEqual(self._dict[key], f[key.encode("ascii")]) + + def init_db(self): + f = dbm.sqlite.open(_fname, 'w') + for k in self._dict: + f[k.encode("ascii")] = self._dict[k] + f.close() + + def keys_helper(self, f): + keys = sorted(k.decode("ascii") for k in f.keys()) + dkeys = sorted(self._dict.keys()) + self.assertEqual(keys, dkeys) + return keys + + # Perform randomized operations. This doesn't make assumptions about + # what *might* fail. + def test_random(self): + import random + d = {} # mirror the database + for dummy in range(5): + f = dbm.sqlite.open(_fname) + for dummy in range(100): + k = random.choice('abcdefghijklm') + if random.random() < 0.2: + if k in d: + del d[k] + del f[k.encode("ascii")] + else: + v = (random.choice((b'a', b'b', b'c')) * + random.randrange(100)) + d[k] = v + f[k.encode("ascii")] = v + if not (d[k], v == f[k.encode("ascii")] == d[k]): + print("v:", v, "f[k]:", f[k.encode("ascii")], + "d[k]:") + self.assertEqual(f[k.encode("ascii")], v) + f.close() + + f = dbm.sqlite.open(_fname) + expected = sorted((k.encode("latin-1"), v) for k, v in d.items()) + got = sorted(f.items()) + self.assertEqual(expected, got) + f.close() + + def test_keys_values_items(self): + f = dbm.sqlite.open(_fname, 'c') + self.assertEqual(list(f.keys()), []) + for key in self._dict: + f[key.encode("ascii")] = self._dict[key] + self.assertEqual(list(zip(f.keys(), f.values())), + f.items()) + f.close() + def tearDown(self): + _delete_files() + + def setUp(self): + _delete_files() + +def test_main(): + try: + support.run_unittest(DbmSQLiteTestCase) + finally: + _delete_files() + +if __name__ == "__main__": + test_main() From python-checkins at python.org Sat Sep 6 05:00:00 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 6 Sep 2008 05:00:00 +0200 (CEST) Subject: [Python-checkins] r66246 - python/trunk/Doc/library/2to3.rst Message-ID: <20080906030000.D34B51E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 6 05:00:00 2008 New Revision: 66246 Log: actually tell the name of the flag to use Modified: python/trunk/Doc/library/2to3.rst Modified: python/trunk/Doc/library/2to3.rst ============================================================================== --- python/trunk/Doc/library/2to3.rst (original) +++ python/trunk/Doc/library/2to3.rst Sat Sep 6 05:00:00 2008 @@ -42,7 +42,7 @@ $ 2to3 -w example.py -After transformation :file:`example.py` looks like this:: +After transformation, :file:`example.py` looks like this:: def greet(name): print("Hello, {0}!".format(name)) @@ -79,12 +79,12 @@ The :option:`-v` option enables the output of more information on the translation process. -2to3 can also treat ``print`` as a function instead of a statement in the -grammar. This is useful when ``from __future__ import print_function`` is being -used. If this option is not given, the print fixer will surround print calls in -an extra set of parentheses because it cannot differentiate between the and -print statement with parentheses (such as ``print ("a" + "b" + "c")``) and a -true function call. +When the :option:`-p` is passed to it, 2to3 treats ``print`` as a function +instead of a statement. This is useful when ``from __future__ import +print_function`` is being used. If this option is not given, the print fixer +will surround print calls in an extra set of parentheses because it cannot +differentiate between the and print statement with parentheses (such as ``print +("a" + "b" + "c")``) and a true function call. :mod:`lib2to3` - 2to3's library From python-checkins at python.org Sat Sep 6 05:07:46 2008 From: python-checkins at python.org (skip.montanaro) Date: Sat, 6 Sep 2008 05:07:46 +0200 (CEST) Subject: [Python-checkins] r66247 - sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py Message-ID: <20080906030746.E7ED51E4003@bag.python.org> Author: skip.montanaro Date: Sat Sep 6 05:07:46 2008 New Revision: 66247 Log: Reverse the def's of the iter* methods and their list counterparts. I'm a bit suspicious of not closing the cursor before returning from the iter* methods. Maybe someone with more experience here can provide some guidance. Modified: sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py Modified: sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py ============================================================================== --- sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py (original) +++ sandbox/trunk/dbm_sqlite/Lib/dbm/sqlite.py Sat Sep 6 05:07:46 2008 @@ -60,29 +60,21 @@ finally: c.close() - def keys(self): + def iterkeys(self): c = self._conn.cursor() - try: - c.execute("select key from dict order by key") - return [e[0] for e in c] - finally: - c.close() + c.execute("select key from dict order by key") + return (e[0] for e in c) + __iter__ = iterkeys - def values(self): + def itervalues(self): c = self._conn.cursor() - try: - c.execute("select value from dict order by key") - return [e[0] for e in c] - finally: - c.close() + c.execute("select value from dict order by key") + return (e[0] for e in c) - def items(self): + def iteritems(self): c = self._conn.cursor() - try: - c.execute("select key, value from dict order by key") - return list(c) - finally: - c.close() + c.execute("select key, value from dict order by key") + return (e for e in c) def __contains__(self, key): c = self._conn.cursor() @@ -93,15 +85,14 @@ finally: c.close() - def iterkeys(self): - return iter(self.keys()) - __iter__ = iterkeys + def keys(self): + return list(self.iterkeys()) - def iteritems(self): - return iter(self.items()) + def items(self): + return list(self.iteritems()) - def itervalues(self): - return iter(self.values()) + def values(self): + return list(self.itervalues()) def __len__(self): c = self._conn.cursor() From buildbot at python.org Sat Sep 6 09:49:35 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 07:49:35 +0000 Subject: [Python-checkins] buildbot failure in amd64 XP 3.0 Message-ID: <20080906074935.E13951E4003@bag.python.org> The Buildbot has detected a new failure of amd64 XP 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20XP%203.0/builds/289 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-windows-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Sat Sep 6 10:34:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 06 Sep 2008 08:34:12 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080906083412.7E0141E4003@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/516 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 6 14:50:05 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 6 Sep 2008 14:50:05 +0200 (CEST) Subject: [Python-checkins] r66249 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080906125005.8D07F1E4018@bag.python.org> Author: andrew.kuchling Date: Sat Sep 6 14:50:05 2008 New Revision: 66249 Log: Various corrections Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Sat Sep 6 14:50:05 2008 @@ -63,7 +63,7 @@ usages that will become unsupported in 3.0. Some significant new packages have been added to the standard library, -such as the :mod:`multiprocessing` and :mod:`jsonlib` modules, but +such as the :mod:`multiprocessing` and :mod:`json` modules, but there aren't many new features that aren't related to Python 3.0 in some way. @@ -2014,16 +2014,16 @@ others, the missing values are set to *fillvalue*. For example:: itertools.izip_longest([1,2,3], [1,2,3,4,5]) -> - [(1, 1), (2, 2), (3, 3), (None, 4), (None, 5)] + (1, 1), (2, 2), (3, 3), (None, 4), (None, 5) ``product(iter1, iter2, ..., [repeat=N])`` returns the Cartesian product of the supplied iterables, a set of tuples containing every possible combination of the elements returned from each iterable. :: itertools.product([1,2,3], [4,5,6]) -> - [(1, 4), (1, 5), (1, 6), + (1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), - (3, 4), (3, 5), (3, 6)] + (3, 4), (3, 5), (3, 6) The optional *repeat* keyword argument is used for taking the product of an iterable or a set of iterables with themselves, @@ -2031,39 +2031,39 @@ are returned:: itertools.product([1,2], repeat=3) -> - [(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), - (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)] + (1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), + (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2) With two iterables, *2N*-tuples are returned. :: itertools.product([1,2], [3,4], repeat=2) -> - [(1, 3, 1, 3), (1, 3, 1, 4), (1, 3, 2, 3), (1, 3, 2, 4), + (1, 3, 1, 3), (1, 3, 1, 4), (1, 3, 2, 3), (1, 3, 2, 4), (1, 4, 1, 3), (1, 4, 1, 4), (1, 4, 2, 3), (1, 4, 2, 4), (2, 3, 1, 3), (2, 3, 1, 4), (2, 3, 2, 3), (2, 3, 2, 4), - (2, 4, 1, 3), (2, 4, 1, 4), (2, 4, 2, 3), (2, 4, 2, 4)] + (2, 4, 1, 3), (2, 4, 1, 4), (2, 4, 2, 3), (2, 4, 2, 4) ``combinations(iterable, r)`` returns sub-sequences of length *r* from the elements of *iterable*. :: itertools.combinations('123', 2) -> - [('1', '2'), ('1', '3'), ('2', '3')] + ('1', '2'), ('1', '3'), ('2', '3') itertools.combinations('123', 3) -> - [('1', '2', '3')] + ('1', '2', '3') itertools.combinations('1234', 3) -> - [('1', '2', '3'), ('1', '2', '4'), ('1', '3', '4'), - ('2', '3', '4')] + ('1', '2', '3'), ('1', '2', '4'), ('1', '3', '4'), + ('2', '3', '4') ``permutations(iter[, r])`` returns all the permutations of length *r* of the iterable's elements. If *r* is not specified, it will default to the number of elements produced by the iterable. :: itertools.permutations([1,2,3,4], 2) -> - [(1, 2), (1, 3), (1, 4), + (1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), - (4, 1), (4, 2), (4, 3)] + (4, 1), (4, 2), (4, 3) ``itertools.chain(*iterables)`` is an existing function in :mod:`itertools` that gained a new constructor in Python 2.6. @@ -2073,7 +2073,7 @@ all the elements of the second, and so on. :: chain.from_iterable([[1,2,3], [4,5,6]]) -> - [1, 2, 3, 4, 5, 6] + 1, 2, 3, 4, 5, 6 (All contributed by Raymond Hettinger.) From python-checkins at python.org Sat Sep 6 15:04:02 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 6 Sep 2008 15:04:02 +0200 (CEST) Subject: [Python-checkins] r66250 - python/trunk/Doc/library/optparse.rst Message-ID: <20080906130402.5271F1E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 6 15:04:02 2008 New Revision: 66250 Log: #3040: include 'dest' argument in example; trim some trailing whitespace Modified: python/trunk/Doc/library/optparse.rst Modified: python/trunk/Doc/library/optparse.rst ============================================================================== --- python/trunk/Doc/library/optparse.rst (original) +++ python/trunk/Doc/library/optparse.rst Sat Sep 6 15:04:02 2008 @@ -96,7 +96,7 @@ ``sys.argv[1:]``, or of some other list provided as a substitute for ``sys.argv[1:]``". -option +option an argument used to supply extra information to guide or customize the execution of a program. There are many different syntaxes for options; the traditional Unix syntax is a hyphen ("-") followed by a single letter, e.g. ``"-x"`` or @@ -468,7 +468,7 @@ action="store_true", dest="verbose", default=True, help="make lots of noise [default]") parser.add_option("-q", "--quiet", - action="store_false", dest="verbose", + action="store_false", dest="verbose", help="be vewwy quiet (I'm hunting wabbits)") parser.add_option("-f", "--filename", metavar="FILE", help="write output to FILE"), @@ -1637,7 +1637,7 @@ setattr(parser.values, option.dest, value) [...] - parser.add_option("-c", "--callback", + parser.add_option("-c", "--callback", dest="vararg_attr", action="callback", callback=vararg_callback) The main weakness with this particular implementation is that negative numbers From python-checkins at python.org Sat Sep 6 18:26:27 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 6 Sep 2008 18:26:27 +0200 (CEST) Subject: [Python-checkins] r66251 - in doctools/trunk: CHANGES sphinx/locale/cs/LC_MESSAGES/sphinx.mo sphinx/locale/de/LC_MESSAGES/sphinx.mo sphinx/locale/fr/LC_MESSAGES/sphinx.mo sphinx/locale/pl sphinx/locale/pl/LC_MESSAGES sphinx/locale/pl/LC_MESSAGES/sphinx.mo sphinx/locale/pl/LC_MESSAGES/sphinx.po Message-ID: <20080906162627.C40721E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 6 18:26:27 2008 New Revision: 66251 Log: Add polish locale, thanks to Michal Kandulski. Added: doctools/trunk/sphinx/locale/pl/ doctools/trunk/sphinx/locale/pl/LC_MESSAGES/ doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.mo (contents, props changed) doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po (contents, props changed) Modified: doctools/trunk/CHANGES doctools/trunk/sphinx/locale/cs/LC_MESSAGES/sphinx.mo doctools/trunk/sphinx/locale/de/LC_MESSAGES/sphinx.mo doctools/trunk/sphinx/locale/fr/LC_MESSAGES/sphinx.mo Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Sat Sep 6 18:26:27 2008 @@ -15,7 +15,8 @@ ``language`` and ``locale_dirs`` config values. Many thanks to Horst Gutmann, who also contributed German as the first language. A Czech translation was provided by Pavel Kosina. A French - translation was provided by David Larlet. + translation was provided by David Larlet. A Polish translation + was provided by Micha? Kandulski. * Added a distutils command `build_sphinx`: When Sphinx is installed, you can call ``python setup.py build_sphinx`` for projects that Modified: doctools/trunk/sphinx/locale/cs/LC_MESSAGES/sphinx.mo ============================================================================== Binary files doctools/trunk/sphinx/locale/cs/LC_MESSAGES/sphinx.mo (original) and doctools/trunk/sphinx/locale/cs/LC_MESSAGES/sphinx.mo Sat Sep 6 18:26:27 2008 differ Modified: doctools/trunk/sphinx/locale/de/LC_MESSAGES/sphinx.mo ============================================================================== Binary files. No diff available. Modified: doctools/trunk/sphinx/locale/fr/LC_MESSAGES/sphinx.mo ============================================================================== Binary files. No diff available. Added: doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.mo ============================================================================== Binary file. No diff available. Added: doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po ============================================================================== --- (empty file) +++ doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po Sat Sep 6 18:26:27 2008 @@ -0,0 +1,555 @@ +msgid "" +msgstr "" +"Project-Id-Version: sphinx\n" +"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n" +"POT-Creation-Date: 2008-08-10 11:43+0000\n" +"PO-Revision-Date: \n" +"Last-Translator: Micha? Kandulski \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Polish\n" +"X-Poedit-Country: POLAND\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Basepath: c:\\Python25\\Lib\\site-packages\\Sphinx-0.5dev_20080905-py2.5.egg\n" + +#: sphinx/builder.py:391 +#, python-format +msgid "%b %d, %Y" +msgstr "%b %d %Y" + +#: sphinx/builder.py:410 +#: sphinx/templates/defindex.html:21 +msgid "General Index" +msgstr "Indeks og?lny" + +#: sphinx/builder.py:410 +msgid "index" +msgstr "indeks" + +#: sphinx/builder.py:412 +#: sphinx/htmlhelp.py:155 +#: sphinx/templates/defindex.html:19 +#: sphinx/templates/modindex.html:2 +#: sphinx/templates/modindex.html:12 +msgid "Global Module Index" +msgstr "Indeks modu??w" + +#: sphinx/builder.py:412 +msgid "modules" +msgstr "modu?y" + +#: sphinx/builder.py:448 +msgid "next" +msgstr "dalej" + +#: sphinx/builder.py:455 +msgid "previous" +msgstr "wstecz" + +#: sphinx/builder.py:1089 +msgid "Builtins" +msgstr "Wbudowane" + +#: sphinx/builder.py:1091 +msgid "Module level" +msgstr "Poziom modu?u" + +#: sphinx/environment.py:108 +#: sphinx/latexwriter.py:114 +#, python-format +msgid "%B %d, %Y" +msgstr "%B %d %Y" + +#: sphinx/htmlwriter.py:73 +msgid "Permalink to this definition" +msgstr "Sta?y odno?nik do tej definicji" + +#: sphinx/htmlwriter.py:379 +msgid "Permalink to this headline" +msgstr "Sta?y odno?nik do tego nag??wka" + +#: sphinx/latexwriter.py:128 +msgid "Release" +msgstr "Wydanie" + +#: sphinx/latexwriter.py:171 +msgid "Module index" +msgstr "Indeks modu??w" + +#: sphinx/latexwriter.py:173 +#: sphinx/templates/genindex-single.html:2 +#: sphinx/templates/genindex-split.html:2 +#: sphinx/templates/genindex-split.html:5 +#: sphinx/templates/genindex.html:2 +#: sphinx/templates/genindex.html:5 +#: sphinx/templates/genindex.html:48 +msgid "Index" +msgstr "Indeks" + +#: sphinx/roles.py:52 +#: sphinx/roles.py:55 +#: sphinx/directives/desc.py:519 +#, python-format +msgid "environment variable; %s" +msgstr "zmienna ?rodowiskowa; %s" + +#: sphinx/roles.py:61 +#: sphinx/roles.py:64 +#, python-format +msgid "Python Enhancement Proposals!PEP %s" +msgstr "Python Enhancement Proposals!PEP %s" + +#: sphinx/textwriter.py:151 +#, python-format +msgid "Platform: %s" +msgstr "Platforma: %s" + +#: sphinx/textwriter.py:353 +msgid "[image]" +msgstr "[image]" + +#: sphinx/directives/desc.py:26 +#, python-format +msgid "%s() (built-in function)" +msgstr "%s() (funkcja wbudowana)" + +#: sphinx/directives/desc.py:27 +#: sphinx/directives/desc.py:41 +#: sphinx/directives/desc.py:53 +#, python-format +msgid "%s() (in module %s)" +msgstr "%s() (w module %s)" + +#: sphinx/directives/desc.py:30 +#, python-format +msgid "%s (built-in variable)" +msgstr "%s (zmienna wbudowana)" + +#: sphinx/directives/desc.py:31 +#: sphinx/directives/desc.py:65 +#, python-format +msgid "%s (in module %s)" +msgstr "%s (w module %s)" + +#: sphinx/directives/desc.py:33 +#, python-format +msgid "%s (class in %s)" +msgstr "%s (w klasie %s)" + +#: sphinx/directives/desc.py:45 +#, python-format +msgid "%s() (%s.%s method)" +msgstr "%s() (%s.%s metoda)" + +#: sphinx/directives/desc.py:47 +#, python-format +msgid "%s() (%s method)" +msgstr "%s() (%s metoda)" + +#: sphinx/directives/desc.py:57 +#, python-format +msgid "%s() (%s.%s static method)" +msgstr "%s() (%s.%s statyczna metoda)" + +#: sphinx/directives/desc.py:59 +#, python-format +msgid "%s() (%s static method)" +msgstr "%s() (%s statyczna metoda)" + +#: sphinx/directives/desc.py:69 +#, python-format +msgid "%s (%s.%s attribute)" +msgstr "%s (%s.%s atrybut)" + +#: sphinx/directives/desc.py:71 +#, python-format +msgid "%s (%s attribute)" +msgstr "%s (%s atrybut)" + +#: sphinx/directives/desc.py:73 +#, python-format +msgid "%s (C function)" +msgstr "%s (funkcja C)" + +#: sphinx/directives/desc.py:75 +#, python-format +msgid "%s (C member)" +msgstr "%s (pole C)" + +#: sphinx/directives/desc.py:77 +#, python-format +msgid "%s (C macro)" +msgstr "%s (makro C)" + +#: sphinx/directives/desc.py:79 +#, python-format +msgid "%s (C type)" +msgstr "%s (typ C)" + +#: sphinx/directives/desc.py:81 +#, python-format +msgid "%s (C variable)" +msgstr "%s (zmienna C)" + +#: sphinx/directives/desc.py:99 +msgid "Raises" +msgstr "Wyrzuca" + +#: sphinx/directives/desc.py:103 +msgid "Variable" +msgstr "Zmienna" + +#: sphinx/directives/desc.py:106 +msgid "Returns" +msgstr "Zwraca" + +#: sphinx/directives/desc.py:113 +msgid "Return type" +msgstr "Typ zwracany" + +#: sphinx/directives/desc.py:140 +msgid "Parameters" +msgstr "Parametry" + +#: sphinx/directives/desc.py:402 +#: sphinx/directives/desc.py:404 +#, python-format +msgid "command line option; %s" +msgstr "opcja linii komend; %s" + +#: sphinx/directives/other.py:102 +msgid "Platforms: " +msgstr "Platformy: " + +#: sphinx/directives/other.py:107 +#, python-format +msgid "%s (module)" +msgstr "%s (modu?)" + +#: sphinx/directives/other.py:148 +msgid "Section author: " +msgstr "Autor rozdzia?u: " + +#: sphinx/directives/other.py:150 +msgid "Module author: " +msgstr "Autor modu?u: " + +#: sphinx/directives/other.py:152 +msgid "Author: " +msgstr "Autor: " + +#: sphinx/directives/other.py:238 +msgid "See also" +msgstr "Zobacz tak?e" + +#: sphinx/locale/__init__.py:15 +msgid "Attention" +msgstr "Uwaga" + +#: sphinx/locale/__init__.py:16 +msgid "Caution" +msgstr "Ostro?nie" + +#: sphinx/locale/__init__.py:17 +msgid "Danger" +msgstr "Niebezpiecze?stwo" + +#: sphinx/locale/__init__.py:18 +msgid "Error" +msgstr "B??d" + +#: sphinx/locale/__init__.py:19 +msgid "Hint" +msgstr "Podpowied?" + +#: sphinx/locale/__init__.py:20 +msgid "Important" +msgstr "Wa?ne" + +#: sphinx/locale/__init__.py:21 +msgid "Note" +msgstr "Uwaga" + +#: sphinx/locale/__init__.py:22 +msgid "See Also" +msgstr "Zobacz tak?e" + +#: sphinx/locale/__init__.py:23 +msgid "Tip" +msgstr "Wskaz?wka" + +#: sphinx/locale/__init__.py:24 +msgid "Warning" +msgstr "Ostrze?enie" + +#: sphinx/locale/__init__.py:28 +#, python-format +msgid "New in version %s" +msgstr "Nowe w wersji %s" + +#: sphinx/locale/__init__.py:29 +#, python-format +msgid "Changed in version %s" +msgstr "Zmienione w wersji %s" + +#: sphinx/locale/__init__.py:30 +#, python-format +msgid "Deprecated since version %s" +msgstr "Niezalecane od wersji %s" + +#: sphinx/locale/__init__.py:34 +msgid "module" +msgstr "modu?" + +#: sphinx/locale/__init__.py:35 +msgid "keyword" +msgstr "s?owo kluczowe" + +#: sphinx/locale/__init__.py:36 +msgid "operator" +msgstr "operator" + +#: sphinx/locale/__init__.py:37 +msgid "object" +msgstr "obiekt" + +#: sphinx/locale/__init__.py:38 +msgid "exception" +msgstr "wyj?tek" + +#: sphinx/locale/__init__.py:39 +msgid "statement" +msgstr "instrukcja" + +#: sphinx/locale/__init__.py:40 +msgid "built-in function" +msgstr "funkcja wbudowana" + +#: sphinx/templates/defindex.html:2 +msgid "Overview" +msgstr "Przegl?d" + +#: sphinx/templates/defindex.html:11 +msgid "Indices and tables:" +msgstr "Indeksy i tablice:" + +#: sphinx/templates/defindex.html:14 +msgid "Complete Table of Contents" +msgstr "Kompletny spis tre?ci" + +#: sphinx/templates/defindex.html:15 +msgid "lists all sections and subsections" +msgstr "wymie? wszystkie rozdzia?y i podrozdzia?y" + +#: sphinx/templates/defindex.html:16 +msgid "Search page" +msgstr "Szukanie" + +#: sphinx/templates/defindex.html:17 +msgid "search this documentation" +msgstr "wyszukaj w dokumentacji" + +#: sphinx/templates/defindex.html:20 +msgid "quick access to all modules" +msgstr "szybki dost?p do wszystkich modu??w" + +#: sphinx/templates/defindex.html:22 +msgid "all functions, classes, terms" +msgstr "wszystkie funkcje, klasy, terminy" + +#: sphinx/templates/genindex-single.html:5 +#, python-format +msgid "Index – %(key)s" +msgstr "Indeks – %(key)s" + +#: sphinx/templates/genindex-single.html:44 +#: sphinx/templates/genindex-split.html:14 +#: sphinx/templates/genindex-split.html:27 +#: sphinx/templates/genindex.html:54 +msgid "Full index on one page" +msgstr "Ca?y indeks na jednej stronie" + +#: sphinx/templates/genindex-split.html:7 +msgid "Index pages by letter" +msgstr "Strony indeksu alfabetycznie" + +#: sphinx/templates/genindex-split.html:15 +msgid "can be huge" +msgstr "mo?e by? ogromny" + +#: sphinx/templates/layout.html:9 +msgid "Navigation" +msgstr "Nawigacja" + +#: sphinx/templates/layout.html:40 +msgid "Table Of Contents" +msgstr "Spis tre?ci" + +#: sphinx/templates/layout.html:46 +msgid "Previous topic" +msgstr "Poprzedni temat" + +#: sphinx/templates/layout.html:47 +msgid "previous chapter" +msgstr "poprzedni rozdzia?" + +#: sphinx/templates/layout.html:50 +msgid "Next topic" +msgstr "Nast?pny temat" + +#: sphinx/templates/layout.html:51 +msgid "next chapter" +msgstr "nast?pny rozdzia?" + +#: sphinx/templates/layout.html:55 +msgid "This Page" +msgstr "Ta strona" + +#: sphinx/templates/layout.html:59 +msgid "Suggest Change" +msgstr "Zasugeruj zmian?" + +#: sphinx/templates/layout.html:60 +#: sphinx/templates/layout.html:62 +msgid "Show Source" +msgstr "Poka? ?r?d?o" + +#: sphinx/templates/layout.html:71 +msgid "Quick search" +msgstr "Szybkie wyszukiwanie" + +#: sphinx/templates/layout.html:71 +msgid "Keyword search" +msgstr "Szukanie wg s?owa kluczowego" + +#: sphinx/templates/layout.html:73 +msgid "Go" +msgstr "Szukaj" + +#: sphinx/templates/layout.html:78 +msgid "Enter a module, class or function name." +msgstr "Wprowad? nazw? modu?u, klasy lub funkcji." + +#: sphinx/templates/layout.html:118 +#, python-format +msgid "Search within %(docstitle)s" +msgstr "Szukaj po?r?d %(docstitle)s" + +#: sphinx/templates/layout.html:127 +msgid "About these documents" +msgstr "O tych dokumentach" + +#: sphinx/templates/layout.html:129 +msgid "Global table of contents" +msgstr "Globalny spis tre?ci" + +#: sphinx/templates/layout.html:130 +msgid "Global index" +msgstr "Globalny indeks" + +#: sphinx/templates/layout.html:131 +#: sphinx/templates/search.html:2 +#: sphinx/templates/search.html:5 +msgid "Search" +msgstr "Szukaj" + +#: sphinx/templates/layout.html:133 +msgid "Copyright" +msgstr "Copyright" + +#: sphinx/templates/layout.html:178 +#, python-format +msgid "© Copyright %(copyright)s." +msgstr "© Copyright %(copyright)s." + +#: sphinx/templates/layout.html:180 +#, python-format +msgid "© Copyright %(copyright)s." +msgstr "© Copyright %(copyright)s." + +#: sphinx/templates/layout.html:183 +#, python-format +msgid "Last updated on %(last_updated)s." +msgstr "Ostatnia modyfikacja %(last_updated)s." + +#: sphinx/templates/layout.html:186 +#, python-format +msgid "Created using Sphinx %(sphinx_version)s." +msgstr "Utworzone przy pomocy Sphinx'a %(sphinx_version)s." + +#: sphinx/templates/modindex.html:14 +msgid "Most popular modules:" +msgstr "Najbardziej popularne modu?y:" + +#: sphinx/templates/modindex.html:23 +msgid "Show modules only available on these platforms" +msgstr "Poka? modu?y dost?pne tylko na tych platformach" + +#: sphinx/templates/modindex.html:55 +msgid "Deprecated" +msgstr "Niezalecane" + +#: sphinx/templates/opensearch.xml:4 +#, python-format +msgid "Search %(docstitle)s" +msgstr "Przeszukaj %(docstitle)s" + +#: sphinx/templates/page.html:8 +msgid "Note: You requested an out-of-date URL from this server. We've tried to redirect you to the new location of this page, but it may not be the right one." +msgstr "Uwaga: You requested an out-of-date URL from this server. We've tried to redirect you to the new location of this page, but it may not be the right one.Za??da?e? przedawnionego URL'a z tego serwera. Nast?pi?a pr?ba przekierowania do nowej lokalizacji, ale mo?e ona by? niew?a?ciwa" + +#: sphinx/templates/search.html:7 +msgid "" +"From here you can search these documents. Enter your search\n" +" words into the box below and click \"search\". Note that the search\n" +" function will automatically search for all of the words. Pages\n" +" containing less words won't appear in the result list." +msgstr "" +"St?d mo?esz przeszuka? dokumentacj?. Wprowad? szukane\n" +" s?owa w poni?szym okienku i kliknij \"Szukaj\". Zwr?? uwag?, ?e\n" +" funkcja szukaj?ca b?dzie automatycznie szuka?a wszystkich s??w. Strony\n" +" nie zawieraj?ce wszystkich s??w nie znajd? si? na wynikowej li?cie." + +#: sphinx/templates/search.html:14 +msgid "search" +msgstr "Szukaj" + +#: sphinx/templates/search.html:18 +msgid "Search Results" +msgstr "Wyniki wyszukiwania" + +#: sphinx/templates/search.html:20 +msgid "Your search did not match any results." +msgstr "Nie znaleziono ?adnych pasuj?cych stron." + +#: sphinx/templates/changes/frameset.html:5 +#: sphinx/templates/changes/versionchanges.html:12 +#, python-format +msgid "Changes in Version %(version)s — %(docstitle)s" +msgstr "Zmiany w wesji %(version)s — %(docstitle)s" + +#: sphinx/templates/changes/rstsource.html:5 +#, python-format +msgid "%(filename)s — %(docstitle)s" +msgstr "%(filename)s — %(docstitle)s" + +#: sphinx/templates/changes/versionchanges.html:17 +#, python-format +msgid "Automatically generated list of changes in version %(version)s" +msgstr "Automatycznie wygenerowana lista zmian w wersji %(version)s" + +#: sphinx/templates/changes/versionchanges.html:18 +msgid "Library changes" +msgstr "Zmiany w bibliotekach" + +#: sphinx/templates/changes/versionchanges.html:23 +msgid "C API changes" +msgstr "Zmiany w C API" + +#: sphinx/templates/changes/versionchanges.html:25 +msgid "Other changes" +msgstr "Inne zmiany" + + From python-checkins at python.org Sat Sep 6 18:38:19 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 6 Sep 2008 18:38:19 +0200 (CEST) Subject: [Python-checkins] r66252 - in doctools/branches/0.4.x: CHANGES sphinx/templates/genindex-single.html sphinx/templates/genindex-split.html sphinx/templates/genindex.html sphinx/templates/modindex.html sphinx/templates/search.html Message-ID: <20080906163819.7DD741E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 6 18:38:19 2008 New Revision: 66252 Log: Properly call ``super()`` in overridden blocks in builtin templates, even if the blocks are empty in the builtin layout.html they may contain something in an overridden one. Modified: doctools/branches/0.4.x/CHANGES doctools/branches/0.4.x/sphinx/templates/genindex-single.html doctools/branches/0.4.x/sphinx/templates/genindex-split.html doctools/branches/0.4.x/sphinx/templates/genindex.html doctools/branches/0.4.x/sphinx/templates/modindex.html doctools/branches/0.4.x/sphinx/templates/search.html Modified: doctools/branches/0.4.x/CHANGES ============================================================================== --- doctools/branches/0.4.x/CHANGES (original) +++ doctools/branches/0.4.x/CHANGES Sat Sep 6 18:38:19 2008 @@ -1,6 +1,8 @@ Release 0.4.3 (in development) ============================== +* Properly call ``super()`` in overridden blocks in templates. + * Add a fix when using XeTeX. * Unify handling of LaTeX escaping. Modified: doctools/branches/0.4.x/sphinx/templates/genindex-single.html ============================================================================== --- doctools/branches/0.4.x/sphinx/templates/genindex-single.html (original) +++ doctools/branches/0.4.x/sphinx/templates/genindex-single.html Sat Sep 6 18:38:19 2008 @@ -42,4 +42,5 @@ {%- endfor %}

Full index on one page

+{{ super() }} {% endblock %} Modified: doctools/branches/0.4.x/sphinx/templates/genindex-split.html ============================================================================== --- doctools/branches/0.4.x/sphinx/templates/genindex-split.html (original) +++ doctools/branches/0.4.x/sphinx/templates/genindex-split.html Sat Sep 6 18:38:19 2008 @@ -26,4 +26,5 @@

Full index on one page

{% endif %} + {{ super() }} {% endblock %} Modified: doctools/branches/0.4.x/sphinx/templates/genindex.html ============================================================================== --- doctools/branches/0.4.x/sphinx/templates/genindex.html (original) +++ doctools/branches/0.4.x/sphinx/templates/genindex.html Sat Sep 6 18:38:19 2008 @@ -53,4 +53,5 @@

Full index on one page

{% endif %} + {{ super() }} {% endblock %} Modified: doctools/branches/0.4.x/sphinx/templates/modindex.html ============================================================================== --- doctools/branches/0.4.x/sphinx/templates/modindex.html (original) +++ doctools/branches/0.4.x/sphinx/templates/modindex.html Sat Sep 6 18:38:19 2008 @@ -1,6 +1,7 @@ {% extends "layout.html" %} {% set title = 'Global Module Index' %} {% block extrahead %} +{{ super() }} {% if collapse_modindex %} {% endblock %} {% block body %} From python-checkins at python.org Sat Sep 6 18:38:37 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 6 Sep 2008 18:38:37 +0200 (CEST) Subject: [Python-checkins] r66253 - in doctools/trunk/sphinx/templates: genindex-single.html genindex-split.html genindex.html modindex.html Message-ID: <20080906163837.86E9E1E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 6 18:38:37 2008 New Revision: 66253 Log: Properly call ``super()`` in overridden blocks in builtin templates, even if the blocks are empty in the builtin layout.html they may contain something in an overridden one. Modified: doctools/trunk/sphinx/templates/genindex-single.html doctools/trunk/sphinx/templates/genindex-split.html doctools/trunk/sphinx/templates/genindex.html doctools/trunk/sphinx/templates/modindex.html Modified: doctools/trunk/sphinx/templates/genindex-single.html ============================================================================== --- doctools/trunk/sphinx/templates/genindex-single.html (original) +++ doctools/trunk/sphinx/templates/genindex-single.html Sat Sep 6 18:38:37 2008 @@ -42,4 +42,5 @@ {%- endfor %}

{{ _('Full index on one page') }}

+ {{ super() }} {% endblock %} Modified: doctools/trunk/sphinx/templates/genindex-split.html ============================================================================== --- doctools/trunk/sphinx/templates/genindex-split.html (original) +++ doctools/trunk/sphinx/templates/genindex-split.html Sat Sep 6 18:38:37 2008 @@ -26,4 +26,5 @@

{{ _('Full index on one page') }}

{% endif %} + {{ super() }} {% endblock %} Modified: doctools/trunk/sphinx/templates/genindex.html ============================================================================== --- doctools/trunk/sphinx/templates/genindex.html (original) +++ doctools/trunk/sphinx/templates/genindex.html Sat Sep 6 18:38:37 2008 @@ -53,4 +53,5 @@

{{ _('Full index on one page') }}

{% endif %} + {{ super() }} {% endblock %} Modified: doctools/trunk/sphinx/templates/modindex.html ============================================================================== --- doctools/trunk/sphinx/templates/modindex.html (original) +++ doctools/trunk/sphinx/templates/modindex.html Sat Sep 6 18:38:37 2008 @@ -1,6 +1,7 @@ {% extends "layout.html" %} {% set title = _('Global Module Index') %} {% block extrahead %} +{{ super() }} {% if builder != 'htmlhelp' and collapse_modindex %} +{% endblock %} From nnorwitz at gmail.com Wed Sep 10 14:37:52 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Wed, 10 Sep 2008 08:37:52 -0400 Subject: [Python-checkins] Python Regression Test Failures refleak (1) Message-ID: <20080910123752.GA7214@python.psfb.org> More important issues: ---------------------- test_thread leaked [0, 0, 48] references, sum=48 Less important issues: ---------------------- test_cmd_line leaked [25, 0, -25] references, sum=0 test_file leaked [0, 69, -69] references, sum=0 test_popen2 leaked [54, -29, -25] references, sum=0 test_smtplib leaked [-84, -6, 85] references, sum=-5 test_socketserver leaked [78, -78, 0] references, sum=0 test_threadedtempfile leaked [0, 104, -104] references, sum=0 test_threadsignals leaked [0, -8, 0] references, sum=-8 test_urllib2_localnet leaked [3, 3, 3] references, sum=9 test_xmlrpc leaked [4, -89, -1] references, sum=-86 From python-checkins at python.org Wed Sep 10 15:38:22 2008 From: python-checkins at python.org (martin.v.loewis) Date: Wed, 10 Sep 2008 15:38:22 +0200 (CEST) Subject: [Python-checkins] r66362 - in python/trunk: Doc/library/unicodedata.rst Lib/test/test_unicodedata.py Misc/NEWS Modules/unicodedata.c Modules/unicodedata_db.h Modules/unicodename_db.h Objects/unicodectype.c Objects/unicodetype_db.h Tools/unicode/makeunicodedata.py Message-ID: <20080910133822.3518D1E4011@bag.python.org> Author: martin.v.loewis Date: Wed Sep 10 15:38:12 2008 New Revision: 66362 Log: Issue #3811: The Unicode database was updated to 5.1. Reviewed by Fredrik Lundh and Marc-Andre Lemburg. Modified: python/trunk/Doc/library/unicodedata.rst python/trunk/Lib/test/test_unicodedata.py python/trunk/Misc/NEWS python/trunk/Modules/unicodedata.c python/trunk/Modules/unicodedata_db.h python/trunk/Modules/unicodename_db.h python/trunk/Objects/unicodectype.c python/trunk/Objects/unicodetype_db.h python/trunk/Tools/unicode/makeunicodedata.py Modified: python/trunk/Doc/library/unicodedata.rst ============================================================================== --- python/trunk/Doc/library/unicodedata.rst (original) +++ python/trunk/Doc/library/unicodedata.rst Wed Sep 10 15:38:12 2008 @@ -16,11 +16,11 @@ This module provides access to the Unicode Character Database which defines character properties for all Unicode characters. The data in this database is -based on the :file:`UnicodeData.txt` file version 4.1.0 which is publicly +based on the :file:`UnicodeData.txt` file version 5.1.0 which is publicly available from ftp://ftp.unicode.org/. The module uses the same names and symbols as defined by the UnicodeData File -Format 4.1.0 (see http://www.unicode.org/Public/4.1.0/ucd/UCD.html). It defines +Format 5.1.0 (see http://www.unicode.org/Public/5.1.0/ucd/UCD.html). It defines the following functions: Modified: python/trunk/Lib/test/test_unicodedata.py ============================================================================== --- python/trunk/Lib/test/test_unicodedata.py (original) +++ python/trunk/Lib/test/test_unicodedata.py Wed Sep 10 15:38:12 2008 @@ -16,7 +16,7 @@ class UnicodeMethodsTest(unittest.TestCase): # update this, if the database changes - expectedchecksum = 'c198ed264497f108434b3f576d4107237221cc8a' + expectedchecksum = 'aef99984a58c8e1e5363a3175f2ff9608599a93e' def test_method_checksum(self): h = hashlib.sha1() @@ -75,7 +75,7 @@ class UnicodeFunctionsTest(UnicodeDatabaseTest): # update this, if the database changes - expectedchecksum = '4e389f97e9f88b8b7ab743121fd643089116f9f2' + expectedchecksum = '3136d5afd787dc2bcb1bdcac95e385349fbebbca' def test_function_checksum(self): data = [] @@ -225,6 +225,16 @@ def test_bug_1704793(self): self.assertEquals(self.db.lookup("GOTHIC LETTER FAIHU"), u'\U00010346') + def test_ucd_510(self): + import unicodedata + # In UCD 5.1.0, a mirrored property changed wrt. UCD 3.2.0 + self.assert_(unicodedata.mirrored(u"\u0f3a")) + self.assert_(not unicodedata.ucd_3_2_0.mirrored(u"\u0f3a")) + # Also, we now have two ways of representing + # the upper-case mapping: as delta, or as absolute value + self.assert_(u"a".upper()==u'A') + self.assert_(u"\u1d79".upper()==u'\ua77d') + def test_main(): test.test_support.run_unittest( UnicodeMiscTest, Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 10 15:38:12 2008 @@ -68,6 +68,8 @@ Library ------- +- Issue #3811: The Unicode database was updated to 5.1. + - Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. - Issue 3781: Clean up the API for warnings.catch_warnings() by having it Modified: python/trunk/Modules/unicodedata.c ============================================================================== --- python/trunk/Modules/unicodedata.c (original) +++ python/trunk/Modules/unicodedata.c Wed Sep 10 15:38:12 2008 @@ -1,8 +1,8 @@ /* ------------------------------------------------------------------------ - unicodedata -- Provides access to the Unicode 4.1 data base. + unicodedata -- Provides access to the Unicode 5.1 data base. - Data was extracted from the Unicode 4.1 UnicodeData.txt file. + Data was extracted from the Unicode 5.1 UnicodeData.txt file. Written by Marc-Andre Lemburg (mal at lemburg.com). Modified for Python 2.0 by Fredrik Lundh (fredrik at pythonware.com) @@ -34,6 +34,7 @@ const unsigned char bidir_changed; const unsigned char category_changed; const unsigned char decimal_changed; + const unsigned char mirrored_changed; const int numeric_changed; } change_record; @@ -354,6 +355,8 @@ const change_record *old = get_old_record(self, c); if (old->category_changed == 0) index = 0; /* unassigned */ + else if (old->mirrored_changed != 0xFF) + index = old->mirrored_changed; } return PyInt_FromLong(index); } @@ -1177,11 +1180,11 @@ "This module provides access to the Unicode Character Database which\n\ defines character properties for all Unicode characters. The data in\n\ this database is based on the UnicodeData.txt file version\n\ -4.1.0 which is publically available from ftp://ftp.unicode.org/.\n\ +5.1.0 which is publically available from ftp://ftp.unicode.org/.\n\ \n\ The module uses the same names and symbols as defined by the\n\ -UnicodeData File Format 4.1.0 (see\n\ -http://www.unicode.org/Public/4.1.0/ucd/UCD.html)."); +UnicodeData File Format 5.1.0 (see\n\ +http://www.unicode.org/Public/5.1.0/ucd/UCD.html)."); PyMODINIT_FUNC initunicodedata(void) Modified: python/trunk/Modules/unicodedata_db.h ============================================================================== --- python/trunk/Modules/unicodedata_db.h (original) +++ python/trunk/Modules/unicodedata_db.h Wed Sep 10 15:38:12 2008 @@ -1,6 +1,6 @@ -/* this file was generated by Tools/unicode/makeunicodedata.py 2.5 */ +/* this file was generated by Tools/unicode/makeunicodedata.py 2.6 */ -#define UNIDATA_VERSION "4.1.0" +#define UNIDATA_VERSION "5.1.0" /* a list of unique database records */ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {0, 0, 0, 0, 0}, @@ -83,27 +83,29 @@ {4, 20, 14, 0, 5}, {4, 21, 14, 0, 5}, {4, 22, 14, 0, 5}, - {26, 0, 4, 0, 5}, + {21, 0, 4, 0, 5}, {4, 23, 14, 0, 5}, + {26, 0, 4, 0, 5}, {4, 24, 14, 0, 5}, {4, 25, 14, 0, 5}, {19, 0, 4, 0, 5}, - {14, 0, 5, 0, 5}, + {14, 0, 12, 0, 5}, + {27, 0, 5, 0, 5}, + {26, 0, 11, 0, 5}, {28, 0, 5, 0, 5}, {26, 0, 13, 0, 5}, {26, 0, 5, 0, 5}, + {4, 30, 14, 0, 5}, + {4, 31, 14, 0, 5}, + {4, 32, 14, 0, 5}, {19, 0, 5, 0, 5}, {18, 0, 5, 0, 5}, {4, 27, 14, 0, 5}, {4, 28, 14, 0, 5}, {4, 29, 14, 0, 5}, - {4, 30, 14, 0, 5}, - {4, 31, 14, 0, 5}, - {4, 32, 14, 0, 5}, {4, 33, 14, 0, 5}, {4, 34, 14, 0, 5}, {7, 0, 12, 0, 5}, - {26, 0, 11, 0, 5}, {26, 0, 12, 0, 5}, {4, 35, 14, 0, 5}, {7, 0, 9, 0, 5}, @@ -111,6 +113,8 @@ {14, 0, 15, 0, 5}, {4, 36, 14, 0, 5}, {4, 0, 14, 0, 5}, + {7, 0, 4, 0, 5}, + {18, 0, 4, 0, 5}, {5, 0, 1, 0, 5}, {4, 7, 14, 0, 5}, {4, 9, 14, 0, 5}, @@ -119,14 +123,15 @@ {9, 0, 1, 0, 5}, {4, 84, 14, 0, 5}, {4, 91, 14, 0, 5}, + {9, 0, 19, 0, 5}, {4, 0, 1, 0, 5}, {4, 103, 14, 0, 5}, {4, 107, 14, 0, 5}, {4, 118, 14, 0, 5}, {4, 122, 14, 0, 5}, {4, 216, 14, 0, 5}, - {22, 0, 19, 0, 5}, - {23, 0, 19, 0, 5}, + {22, 0, 19, 1, 5}, + {23, 0, 19, 1, 5}, {4, 129, 14, 0, 5}, {4, 130, 14, 0, 5}, {4, 132, 14, 0, 5}, @@ -134,12 +139,15 @@ {10, 0, 18, 0, 5}, {8, 0, 1, 0, 5}, {14, 0, 1, 0, 5}, - {9, 0, 19, 0, 5}, - {5, 0, 14, 0, 5}, + {5, 9, 1, 0, 5}, + {4, 234, 14, 0, 5}, + {4, 214, 14, 0, 5}, + {4, 202, 14, 0, 5}, {14, 0, 4, 0, 5}, {21, 0, 19, 0, 4}, {24, 0, 19, 0, 4}, {25, 0, 19, 0, 4}, + {22, 0, 19, 0, 5}, {24, 0, 19, 0, 5}, {11, 0, 18, 0, 5}, {12, 0, 16, 0, 5}, @@ -151,8 +159,6 @@ {26, 0, 11, 0, 4}, {20, 0, 19, 0, 5}, {27, 0, 13, 0, 5}, - {22, 0, 19, 1, 5}, - {23, 0, 19, 1, 5}, {9, 0, 9, 0, 5}, {27, 0, 10, 0, 5}, {28, 0, 11, 0, 1}, @@ -183,14 +189,17 @@ {30, 0, 1, 0, 2}, {9, 0, 1, 0, 2}, {9, 0, 19, 0, 2}, + {29, 0, 1, 0, 5}, {15, 0, 1, 0, 5}, {16, 0, 1, 0, 4}, {4, 26, 14, 0, 5}, + {23, 0, 19, 0, 5}, {20, 0, 19, 0, 2}, {26, 0, 13, 0, 2}, {26, 0, 11, 0, 2}, {27, 0, 10, 0, 2}, {21, 0, 10, 0, 2}, + {27, 0, 19, 1, 2}, {27, 0, 19, 0, 2}, {28, 0, 11, 0, 2}, {26, 0, 19, 0, 0}, @@ -222,11 +231,12 @@ {5, 216, 1, 0, 5}, {5, 226, 1, 0, 5}, {27, 0, 1, 0, 5}, + {27, 0, 1, 1, 5}, }; /* Reindexing of NFC first characters. */ -#define TOTAL_FIRST 356 -#define TOTAL_LAST 53 +#define TOTAL_FIRST 367 +#define TOTAL_LAST 54 struct reindex{int start;short count,index;}; static struct reindex nfc_first[] = { { 60, 2, 0}, @@ -327,101 +337,111 @@ { 3545, 0, 181}, { 3548, 0, 182}, { 4133, 0, 183}, - { 7734, 1, 184}, - { 7770, 1, 186}, - { 7778, 1, 188}, - { 7840, 1, 190}, - { 7864, 1, 192}, - { 7884, 1, 194}, - { 7936, 17, 196}, - { 7960, 1, 214}, - { 7968, 17, 216}, - { 7992, 1, 234}, - { 8000, 1, 236}, - { 8008, 1, 238}, - { 8016, 1, 240}, - { 8025, 0, 242}, - { 8032, 16, 243}, - { 8052, 0, 260}, - { 8060, 0, 261}, - { 8118, 0, 262}, - { 8127, 0, 263}, - { 8134, 0, 264}, - { 8182, 0, 265}, - { 8190, 0, 266}, - { 8592, 0, 267}, - { 8594, 0, 268}, - { 8596, 0, 269}, - { 8656, 0, 270}, - { 8658, 0, 271}, - { 8660, 0, 272}, - { 8707, 0, 273}, - { 8712, 0, 274}, - { 8715, 0, 275}, - { 8739, 0, 276}, - { 8741, 0, 277}, - { 8764, 0, 278}, - { 8771, 0, 279}, - { 8773, 0, 280}, - { 8776, 0, 281}, - { 8781, 0, 282}, - { 8801, 0, 283}, - { 8804, 1, 284}, - { 8818, 1, 286}, - { 8822, 1, 288}, - { 8826, 3, 290}, - { 8834, 1, 294}, - { 8838, 1, 296}, - { 8849, 1, 298}, - { 8866, 0, 300}, - { 8872, 1, 301}, - { 8875, 0, 303}, - { 8882, 3, 304}, - { 12358, 0, 308}, - { 12363, 0, 309}, - { 12365, 0, 310}, - { 12367, 0, 311}, - { 12369, 0, 312}, - { 12371, 0, 313}, - { 12373, 0, 314}, - { 12375, 0, 315}, - { 12377, 0, 316}, - { 12379, 0, 317}, - { 12381, 0, 318}, - { 12383, 0, 319}, - { 12385, 0, 320}, - { 12388, 0, 321}, - { 12390, 0, 322}, - { 12392, 0, 323}, - { 12399, 0, 324}, - { 12402, 0, 325}, - { 12405, 0, 326}, - { 12408, 0, 327}, - { 12411, 0, 328}, - { 12445, 0, 329}, - { 12454, 0, 330}, - { 12459, 0, 331}, - { 12461, 0, 332}, - { 12463, 0, 333}, - { 12465, 0, 334}, - { 12467, 0, 335}, - { 12469, 0, 336}, - { 12471, 0, 337}, - { 12473, 0, 338}, - { 12475, 0, 339}, - { 12477, 0, 340}, - { 12479, 0, 341}, - { 12481, 0, 342}, - { 12484, 0, 343}, - { 12486, 0, 344}, - { 12488, 0, 345}, - { 12495, 0, 346}, - { 12498, 0, 347}, - { 12501, 0, 348}, - { 12504, 0, 349}, - { 12507, 0, 350}, - { 12527, 3, 351}, - { 12541, 0, 355}, + { 6917, 0, 184}, + { 6919, 0, 185}, + { 6921, 0, 186}, + { 6923, 0, 187}, + { 6925, 0, 188}, + { 6929, 0, 189}, + { 6970, 0, 190}, + { 6972, 0, 191}, + { 6974, 1, 192}, + { 6978, 0, 194}, + { 7734, 1, 195}, + { 7770, 1, 197}, + { 7778, 1, 199}, + { 7840, 1, 201}, + { 7864, 1, 203}, + { 7884, 1, 205}, + { 7936, 17, 207}, + { 7960, 1, 225}, + { 7968, 17, 227}, + { 7992, 1, 245}, + { 8000, 1, 247}, + { 8008, 1, 249}, + { 8016, 1, 251}, + { 8025, 0, 253}, + { 8032, 16, 254}, + { 8052, 0, 271}, + { 8060, 0, 272}, + { 8118, 0, 273}, + { 8127, 0, 274}, + { 8134, 0, 275}, + { 8182, 0, 276}, + { 8190, 0, 277}, + { 8592, 0, 278}, + { 8594, 0, 279}, + { 8596, 0, 280}, + { 8656, 0, 281}, + { 8658, 0, 282}, + { 8660, 0, 283}, + { 8707, 0, 284}, + { 8712, 0, 285}, + { 8715, 0, 286}, + { 8739, 0, 287}, + { 8741, 0, 288}, + { 8764, 0, 289}, + { 8771, 0, 290}, + { 8773, 0, 291}, + { 8776, 0, 292}, + { 8781, 0, 293}, + { 8801, 0, 294}, + { 8804, 1, 295}, + { 8818, 1, 297}, + { 8822, 1, 299}, + { 8826, 3, 301}, + { 8834, 1, 305}, + { 8838, 1, 307}, + { 8849, 1, 309}, + { 8866, 0, 311}, + { 8872, 1, 312}, + { 8875, 0, 314}, + { 8882, 3, 315}, + { 12358, 0, 319}, + { 12363, 0, 320}, + { 12365, 0, 321}, + { 12367, 0, 322}, + { 12369, 0, 323}, + { 12371, 0, 324}, + { 12373, 0, 325}, + { 12375, 0, 326}, + { 12377, 0, 327}, + { 12379, 0, 328}, + { 12381, 0, 329}, + { 12383, 0, 330}, + { 12385, 0, 331}, + { 12388, 0, 332}, + { 12390, 0, 333}, + { 12392, 0, 334}, + { 12399, 0, 335}, + { 12402, 0, 336}, + { 12405, 0, 337}, + { 12408, 0, 338}, + { 12411, 0, 339}, + { 12445, 0, 340}, + { 12454, 0, 341}, + { 12459, 0, 342}, + { 12461, 0, 343}, + { 12463, 0, 344}, + { 12465, 0, 345}, + { 12467, 0, 346}, + { 12469, 0, 347}, + { 12471, 0, 348}, + { 12473, 0, 349}, + { 12475, 0, 350}, + { 12477, 0, 351}, + { 12479, 0, 352}, + { 12481, 0, 353}, + { 12484, 0, 354}, + { 12486, 0, 355}, + { 12488, 0, 356}, + { 12495, 0, 357}, + { 12498, 0, 358}, + { 12501, 0, 359}, + { 12504, 0, 360}, + { 12507, 0, 361}, + { 12527, 3, 362}, + { 12541, 0, 366}, {0,0,0} }; @@ -455,7 +475,8 @@ { 3535, 0, 48}, { 3551, 0, 49}, { 4142, 0, 50}, - { 12441, 1, 51}, + { 6965, 0, 51}, + { 12441, 1, 52}, {0,0,0} }; @@ -550,43 +571,44 @@ #define SHIFT 8 static unsigned char index1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 8, 8, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 51, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 52, 53, 50, 50, 50, 54, 8, 8, - 55, 56, 8, 8, 8, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 57, 58, 58, 58, 58, 58, 58, - 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 50, 60, 61, 62, 63, 64, 65, 66, 67, - 8, 68, 69, 8, 8, 8, 70, 8, 71, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 55, 52, 52, 52, 56, + 21, 57, 58, 59, 60, 61, 8, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 62, 63, 63, 63, + 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 52, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 8, 8, 8, 76, 77, 78, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 79, 80, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 72, 73, 74, 75, 76, 77, 78, - 79, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 80, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 81, 82, + 83, 84, 85, 86, 87, 88, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 89, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 90, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 52, 52, 91, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 50, 50, 81, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -703,8 +725,8 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 92, 93, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 82, 83, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -714,36 +736,35 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 84, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 84, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 94, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 94, }; static unsigned char index2[] = { @@ -777,86 +798,88 @@ 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, - 34, 34, 34, 34, 34, 34, 34, 37, 37, 34, 37, 37, 34, 34, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 28, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 28, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 37, 37, 34, 37, 37, 34, 34, 37, 34, 37, 37, + 37, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 28, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 28, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 43, 43, 42, 42, 42, 42, 42, 42, 42, 44, 44, 26, 44, 43, - 45, 43, 45, 45, 45, 43, 45, 43, 43, 46, 42, 44, 44, 44, 44, 44, 44, 26, - 26, 26, 26, 44, 26, 44, 26, 42, 42, 42, 42, 42, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 48, 49, 49, 49, 49, 48, 50, 49, 49, 49, 49, 49, - 51, 51, 49, 49, 49, 49, 51, 51, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 52, 52, 52, 52, 52, 49, 49, 49, 49, 47, 47, 47, 47, 47, 47, 47, 47, - 53, 47, 49, 49, 49, 47, 47, 47, 49, 49, 54, 47, 47, 47, 49, 49, 49, 49, - 47, 48, 49, 49, 47, 55, 56, 56, 55, 56, 56, 55, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 44, 44, 0, 0, 0, 0, 42, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 44, 44, 37, 57, 37, 37, 37, 0, 37, 0, 37, 37, 34, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, 38, - 38, 38, 38, 38, 38, 38, 37, 37, 34, 34, 34, 34, 34, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 34, 28, 28, 28, 28, 28, - 28, 28, 34, 34, 34, 34, 34, 0, 34, 34, 37, 37, 37, 34, 34, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 34, 34, 34, 34, 37, 34, 58, 37, 34, 37, 37, 34, 34, 37, - 37, 37, 37, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 34, 34, 34, 34, 34, 34, 34, 40, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 42, 42, 42, 42, 42, 42, 42, 44, + 44, 26, 44, 43, 45, 43, 45, 45, 45, 43, 45, 43, 43, 46, 42, 44, 44, 44, + 44, 44, 44, 26, 26, 26, 26, 44, 26, 44, 26, 42, 42, 42, 42, 42, 44, 44, + 44, 44, 44, 44, 44, 43, 44, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 49, 49, 49, 49, 48, 50, 49, + 49, 49, 49, 49, 51, 51, 49, 49, 49, 49, 51, 51, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 52, 52, 52, 52, 52, 49, 49, 49, 49, 47, 47, 47, 47, + 47, 47, 47, 47, 53, 47, 49, 49, 49, 47, 47, 47, 49, 49, 54, 47, 47, 47, + 49, 49, 49, 49, 47, 48, 49, 49, 47, 55, 56, 56, 55, 56, 56, 55, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 37, 34, 37, 34, 43, 44, 37, + 34, 0, 0, 42, 34, 34, 34, 57, 0, 0, 0, 0, 0, 44, 44, 37, 57, 37, 37, 37, + 0, 37, 0, 37, 37, 34, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 0, 38, 38, 38, 38, 38, 38, 38, 37, 37, 34, 34, 34, 34, + 34, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 34, 28, 28, 28, 28, 28, 28, 28, 34, 34, 34, 34, 34, 37, 34, 34, 37, 37, + 37, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 34, 34, 34, 37, 34, 58, 37, + 34, 37, 37, 34, 34, 37, 37, 37, 37, 38, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 34, 28, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 38, 38, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 34, 28, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 59, 60, 60, 60, 60, 0, 61, 61, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 59, 60, 60, 60, 60, 60, + 61, 61, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 37, 34, 37, - 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 0, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 0, 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, 0, 42, 62, 62, 62, 62, 62, 62, - 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 0, 0, 42, 62, 62, 62, 62, 62, 62, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 0, 62, 63, 0, 0, 0, 0, 0, 0, 64, 60, 60, 60, 60, 64, 60, - 60, 60, 65, 64, 60, 60, 60, 60, 60, 60, 64, 64, 64, 64, 64, 64, 60, 60, - 64, 60, 60, 65, 66, 60, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 77, - 78, 79, 80, 81, 80, 82, 83, 80, 60, 64, 80, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 0, 0, 0, 0, 84, 84, 84, 80, 80, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 86, - 87, 88, 27, 27, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 88, 0, 0, 88, 88, - 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 90, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 91, 92, 93, 94, 95, 96, 97, 98, 60, 60, 64, 64, - 60, 60, 60, 60, 60, 64, 60, 60, 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 100, 101, 101, 88, 89, 89, 102, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 88, 89, 60, 60, 60, 60, 60, 60, 60, 85, 61, 60, 60, 60, 60, 64, 60, 90, - 90, 60, 60, 27, 64, 60, 60, 64, 89, 89, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 89, 89, 89, 104, 104, 89, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 0, 105, 89, 106, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 60, 64, 60, 60, 64, 60, 60, 64, 64, 64, 60, 64, 64, - 60, 64, 60, 60, 60, 64, 60, 64, 60, 64, 60, 64, 60, 60, 0, 0, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 62, 63, 0, 0, 0, 0, 0, 0, 64, 60, 60, 60, 60, 64, 60, 60, 60, 65, 64, + 60, 60, 60, 60, 60, 60, 64, 64, 64, 64, 64, 64, 60, 60, 64, 60, 60, 65, + 66, 60, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 82, 60, 64, 82, 75, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 85, 85, 85, 82, 82, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 86, 86, 86, 0, 0, 58, 58, 87, 88, 88, 89, 90, 91, 27, + 27, 60, 60, 60, 60, 60, 60, 60, 60, 92, 93, 94, 91, 0, 0, 91, 91, 0, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 96, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 97, 98, 99, 92, 93, 94, 100, 101, 60, 60, 64, 64, 60, + 60, 60, 60, 60, 64, 60, 60, 0, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 88, 103, 103, 91, 95, 95, 104, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 91, 95, 60, 60, 60, 60, 60, 60, 60, 86, 61, 60, 60, 60, 60, 64, 60, + 96, 96, 60, 60, 27, 64, 60, 60, 64, 95, 95, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 95, 95, 95, 106, 106, 95, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 0, 107, 95, 108, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 60, 64, 60, 60, 64, 60, 60, 64, 64, 64, 60, 64, 64, + 60, 64, 60, 60, 60, 64, 60, 64, 60, 64, 60, 64, 60, 60, 0, 0, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 60, 60, 60, 60, 60, 60, + 60, 64, 60, 111, 111, 27, 57, 57, 57, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -867,162 +890,163 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 107, 108, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 109, 40, 108, 108, 108, 107, - 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 110, 0, 0, 40, 60, - 64, 60, 60, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 107, 107, - 62, 62, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 107, 108, 108, 0, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 0, 0, 0, 40, 40, 40, 40, 0, 0, 109, 40, 108, 108, 108, - 107, 107, 107, 107, 0, 0, 108, 108, 0, 0, 108, 108, 110, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 0, 0, 40, 40, 0, 40, 40, 40, 107, 107, 0, 0, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 40, 40, 112, 112, 113, 113, - 113, 113, 113, 113, 59, 0, 0, 0, 0, 0, 0, 107, 107, 108, 0, 40, 40, 40, - 40, 40, 40, 0, 0, 0, 0, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 40, 0, 40, 40, 0, 40, 40, 0, 0, 109, 0, 108, 108, 108, - 107, 107, 0, 0, 0, 0, 107, 107, 0, 0, 107, 107, 110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 40, 40, 40, 0, 40, 0, 0, 0, 0, 0, 0, 0, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 107, 107, 40, 40, 40, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 107, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 0, 40, 40, 40, 40, 40, 0, 0, 109, 40, 108, 108, 108, 107, 107, 107, - 107, 107, 0, 107, 107, 108, 0, 108, 108, 110, 0, 0, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 107, 107, 0, 0, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 107, 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, - 40, 40, 40, 0, 0, 109, 40, 108, 107, 108, 107, 107, 107, 0, 0, 0, 108, - 108, 0, 0, 108, 108, 110, 0, 0, 0, 0, 0, 0, 0, 0, 107, 108, 0, 0, 0, 0, - 40, 40, 0, 40, 40, 40, 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 59, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 40, 0, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, - 40, 0, 0, 0, 40, 40, 0, 40, 0, 40, 40, 0, 0, 0, 40, 40, 0, 0, 0, 40, 40, - 40, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, - 108, 108, 107, 108, 108, 0, 0, 0, 108, 108, 108, 0, 108, 108, 108, 110, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 113, 113, 113, 27, 27, - 27, 27, 27, 27, 112, 27, 0, 0, 0, 0, 0, 0, 108, 108, 108, 0, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 0, 0, 107, 107, - 107, 108, 108, 108, 108, 0, 107, 107, 107, 0, 107, 107, 107, 110, 0, 0, - 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 112, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 113, 40, 112, + 112, 112, 109, 109, 109, 109, 109, 109, 109, 109, 112, 112, 112, 112, + 114, 0, 0, 40, 60, 64, 60, 60, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 109, 109, 62, 62, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 62, 42, 40, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 0, 109, 112, + 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 0, 0, 40, 40, 40, 40, 0, 0, + 113, 40, 112, 112, 112, 109, 109, 109, 109, 0, 0, 112, 112, 0, 0, 112, + 112, 114, 40, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 40, 40, 0, 40, 40, + 40, 109, 109, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 40, + 40, 116, 116, 117, 117, 117, 117, 117, 117, 59, 0, 0, 0, 0, 0, 0, 109, + 109, 112, 0, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 40, 40, 0, 0, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 0, 40, 40, + 0, 0, 113, 0, 112, 112, 112, 109, 109, 0, 0, 0, 0, 109, 109, 0, 0, 109, + 109, 114, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 109, + 109, 40, 40, 40, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 112, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 113, + 40, 112, 112, 112, 109, 109, 109, 109, 109, 0, 109, 109, 112, 0, 112, + 112, 114, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 109, 109, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 112, 112, 0, 40, 40, + 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, + 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 113, 40, 112, + 109, 112, 109, 109, 109, 109, 0, 0, 112, 112, 0, 0, 112, 112, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 112, 0, 0, 0, 0, 40, 40, 0, 40, 40, 40, 109, 109, + 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 59, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 40, 0, 40, 40, 40, 40, 40, + 40, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 0, 40, 40, 0, 40, 0, + 40, 40, 0, 0, 0, 40, 40, 0, 0, 0, 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 112, 112, 109, 112, 112, 0, + 0, 0, 112, 112, 112, 0, 112, 112, 112, 114, 0, 0, 40, 0, 0, 0, 0, 0, 0, + 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 117, 117, 117, 27, 27, 27, 27, 27, 27, 116, 27, + 0, 0, 0, 0, 0, 0, 112, 112, 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 0, 40, 109, 109, 109, 112, 112, 112, + 112, 0, 109, 109, 109, 0, 109, 109, 109, 114, 0, 0, 0, 0, 0, 0, 0, 118, + 119, 0, 40, 40, 0, 0, 0, 0, 0, 0, 40, 40, 109, 109, 0, 0, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 120, 120, 120, + 120, 120, 120, 120, 59, 0, 0, 112, 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 109, 40, 108, 116, 108, 108, - 108, 108, 108, 0, 116, 108, 108, 0, 108, 108, 107, 110, 0, 0, 0, 0, 0, 0, - 0, 108, 108, 0, 0, 0, 0, 0, 0, 0, 40, 0, 40, 40, 0, 0, 0, 0, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 108, 108, 108, 107, 107, 107, 0, - 0, 108, 108, 108, 0, 108, 108, 108, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 110, 0, 0, - 0, 0, 108, 108, 108, 107, 107, 107, 0, 107, 0, 108, 108, 108, 108, 108, - 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 108, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 107, 40, 40, 107, 107, 107, 107, 117, 117, 110, 0, 0, - 0, 0, 112, 40, 40, 40, 40, 40, 40, 42, 107, 118, 118, 118, 118, 107, 107, - 107, 62, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 62, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 0, 40, 0, 0, 40, 40, 0, 40, 0, - 0, 40, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, - 0, 40, 40, 40, 0, 40, 0, 40, 0, 0, 40, 40, 0, 40, 40, 40, 40, 107, 40, - 40, 107, 107, 107, 107, 119, 119, 0, 107, 107, 40, 0, 0, 40, 40, 40, 40, - 40, 0, 42, 0, 120, 120, 120, 120, 107, 107, 0, 0, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 59, 59, 59, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 59, 59, 59, 59, 59, 64, 64, 59, 59, 59, 59, 59, 59, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 59, 64, 59, 64, 59, 121, 122, 123, 122, 123, 108, 108, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 124, 125, 107, 126, 107, 107, - 107, 107, 107, 125, 125, 125, 125, 107, 108, 125, 107, 60, 60, 110, 62, - 60, 60, 40, 40, 40, 40, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, - 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 59, 59, 59, 59, 59, 59, - 59, 59, 64, 59, 59, 59, 59, 59, 59, 0, 0, 59, 62, 62, 0, 0, 0, 0, 0, 0, + 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 113, 40, 112, 121, 112, 112, + 112, 112, 112, 0, 121, 112, 112, 0, 112, 112, 109, 114, 0, 0, 0, 0, 0, 0, + 0, 112, 112, 0, 0, 0, 0, 0, 0, 0, 40, 0, 40, 40, 109, 109, 0, 0, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 27, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 112, 112, 112, 109, 109, + 109, 109, 0, 112, 112, 112, 0, 112, 112, 112, 114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 109, 109, 0, 0, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 117, 117, 117, 117, 117, 117, 0, 0, 0, + 59, 40, 40, 40, 40, 40, 40, 0, 0, 112, 112, 0, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 0, 0, 0, 114, 0, 0, 0, 0, 112, 112, 112, 109, 109, 109, + 0, 109, 0, 112, 112, 112, 112, 112, 112, 112, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 112, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 109, 40, 40, 109, + 109, 109, 109, 122, 122, 114, 0, 0, 0, 0, 116, 40, 40, 40, 40, 40, 40, + 42, 109, 123, 123, 123, 123, 109, 109, 109, 62, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 0, 40, 0, 0, 40, 40, 0, 40, 0, 0, 40, 0, 0, 0, 0, 0, 0, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 0, 40, 0, 0, + 40, 40, 0, 40, 40, 40, 40, 109, 40, 40, 109, 109, 109, 109, 124, 124, 0, + 109, 109, 40, 0, 0, 40, 40, 40, 40, 40, 0, 42, 0, 125, 125, 125, 125, + 109, 109, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, + 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 59, 59, 59, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 59, 59, 59, 59, 59, 64, 64, 59, + 59, 59, 59, 59, 59, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 59, 64, 59, 64, 59, + 126, 127, 128, 127, 128, 112, 112, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, + 0, 0, 129, 130, 109, 131, 109, 109, 109, 109, 109, 130, 130, 130, 130, + 109, 112, 130, 109, 60, 60, 114, 62, 60, 60, 40, 40, 40, 40, 0, 0, 0, 0, + 109, 109, 109, 109, 109, 109, 109, 109, 0, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 0, 59, 59, 59, 59, 59, 59, 59, 59, 64, 59, 59, 59, 59, 59, 59, + 0, 59, 59, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 40, 40, - 0, 108, 107, 107, 107, 107, 108, 107, 0, 0, 0, 107, 109, 108, 110, 0, 0, - 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 62, 62, 62, - 62, 62, 62, 40, 40, 40, 40, 40, 40, 108, 108, 107, 107, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 112, 112, 109, 109, 109, 109, + 112, 109, 109, 109, 109, 109, 113, 112, 114, 114, 112, 112, 109, 109, 40, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 62, 62, 62, 62, 62, 62, + 40, 40, 40, 40, 40, 40, 112, 112, 109, 109, 40, 40, 40, 40, 109, 109, + 109, 40, 112, 112, 112, 40, 40, 112, 112, 112, 112, 112, 112, 112, 40, + 40, 40, 109, 109, 109, 109, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 109, 112, 112, 109, 109, 112, 112, 112, 112, 112, 112, 64, 40, + 112, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 59, + 59, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 37, 37, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, 42, 0, 0, 0, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 0, 0, 0, 0, 0, 127, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, + 42, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 132, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, - 0, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, + 40, 40, 40, 40, 40, 40, 0, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, - 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 40, 40, 40, 40, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 0, 0, 0, 60, 59, 62, 62, 62, 62, 62, 62, 62, 62, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 60, 59, 62, 62, 62, 62, + 62, 62, 62, 62, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 0, 0, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, @@ -1054,58 +1078,61 @@ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, 62, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 122, 123, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 62, 62, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 133, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 127, 128, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, 62, 62, 129, 129, 129, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 107, 107, 110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 107, 107, 110, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 107, 107, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, + 62, 62, 134, 134, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 109, + 109, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 109, 109, 114, 62, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 40, 40, 40, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 130, - 130, 108, 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, - 108, 108, 108, 107, 108, 108, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 110, 107, 62, 62, 62, 42, 62, 62, 62, 112, 40, 60, 0, 0, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, 57, - 57, 63, 57, 57, 57, 57, 107, 107, 107, 128, 0, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 135, 135, 112, 109, 109, 109, 109, 109, 109, + 109, 112, 112, 112, 112, 112, 112, 112, 112, 109, 112, 112, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 114, 109, 62, 62, 62, 42, 62, 62, 62, + 116, 40, 60, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, + 0, 0, 0, 0, 0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 0, 0, + 0, 0, 0, 57, 57, 57, 57, 57, 57, 63, 57, 57, 57, 57, 109, 109, 109, 133, + 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 66, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 0, 107, 107, 107, 108, 108, 108, 108, 107, - 107, 132, 132, 132, 0, 0, 0, 0, 108, 108, 107, 108, 108, 108, 108, 108, - 108, 65, 60, 64, 0, 0, 0, 0, 27, 0, 0, 0, 57, 57, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 0, 0, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 109, 109, + 109, 112, 112, 112, 112, 109, 109, 112, 112, 112, 0, 0, 0, 0, 112, 112, + 109, 112, 112, 112, 112, 112, 112, 65, 60, 64, 0, 0, 0, 0, 27, 0, 0, 0, + 57, 57, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 40, 40, 40, 40, 40, 40, 40, - 108, 108, 0, 0, 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 0, 0, 0, 0, 57, 57, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 40, + 40, 40, 40, 40, 40, 40, 112, 112, 0, 0, 0, 0, 0, 0, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 57, 57, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 60, 64, 108, 108, 108, 0, 0, 62, 62, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 60, 64, 112, 112, + 112, 0, 0, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1114,8 +1141,34 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 109, 109, 112, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 113, 112, 109, 109, 109, 109, + 109, 112, 109, 112, 112, 112, 112, 112, 109, 112, 136, 40, 40, 40, 40, + 40, 40, 40, 0, 0, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 62, 62, 62, 62, 62, 62, 62, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, + 64, 60, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, + 0, 109, 109, 112, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 112, 109, + 109, 109, 109, 112, 112, 109, 109, 136, 0, 0, 0, 40, 40, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 112, 112, 112, 112, 112, 112, 112, 112, 109, + 109, 109, 109, 109, 109, 109, 109, 112, 112, 109, 113, 0, 0, 0, 62, 62, + 62, 62, 62, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, + 40, 40, 40, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 42, 42, 42, 42, 42, 62, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -1126,85 +1179,86 @@ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 60, 60, - 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 34, - 34, 34, 34, 34, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 64, 60, 60, 60, 60, 60, 60, 60, 64, 60, 60, 137, 138, 64, 139, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 64, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, - 34, 37, 34, 37, 34, 37, 34, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, - 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, - 37, 37, 37, 37, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, - 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, - 37, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, 0, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 0, 37, 0, 37, 0, 37, 0, 37, 34, 34, 34, 34, 34, - 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, - 41, 41, 41, 41, 41, 41, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, - 41, 41, 41, 41, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, - 41, 41, 34, 34, 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 34, 44, - 44, 44, 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 44, 44, 34, 34, - 34, 34, 0, 0, 34, 34, 37, 37, 37, 37, 0, 44, 44, 44, 34, 34, 34, 34, 34, - 34, 34, 34, 37, 37, 37, 37, 37, 44, 44, 44, 0, 0, 34, 34, 34, 0, 34, 34, - 37, 37, 37, 37, 41, 44, 44, 0, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 105, 105, 105, 130, 133, 134, 63, 63, 134, 134, 134, 22, - 57, 135, 136, 122, 137, 135, 136, 122, 137, 22, 22, 22, 57, 22, 22, 22, - 22, 138, 139, 140, 141, 142, 143, 144, 21, 145, 100, 145, 145, 100, 22, - 57, 57, 57, 29, 35, 22, 57, 57, 22, 146, 146, 57, 57, 57, 147, 148, 149, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 57, 146, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 128, 105, 105, 105, 105, 0, 0, 0, 0, 0, 0, 105, - 105, 105, 105, 105, 105, 150, 34, 0, 0, 33, 150, 150, 150, 150, 150, 151, - 151, 58, 148, 149, 28, 150, 33, 33, 33, 33, 150, 150, 150, 150, 150, 151, - 151, 58, 148, 149, 0, 42, 42, 42, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 112, 112, 112, 112, 112, 112, 112, 112, 152, 112, 112, 23, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 153, 153, 60, 60, - 60, 60, 153, 153, 153, 60, 60, 61, 61, 61, 61, 60, 61, 61, 61, 153, 153, - 60, 64, 60, 153, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 27, 37, 25, 27, 25, 27, 37, 27, 25, 34, 37, 37, 37, 34, 34, - 37, 37, 37, 28, 27, 37, 25, 27, 27, 37, 37, 37, 37, 37, 27, 27, 27, 25, - 25, 27, 37, 27, 38, 27, 37, 27, 37, 38, 37, 37, 154, 34, 37, 37, 27, 37, - 34, 40, 40, 40, 40, 34, 27, 27, 34, 34, 37, 37, 155, 58, 58, 58, 58, 37, - 34, 34, 34, 34, 27, 58, 27, 0, 0, 0, 0, 0, 0, 36, 36, 131, 131, 131, 131, - 131, 131, 36, 36, 36, 36, 131, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 129, 129, 129, 129, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 39, 39, 25, 25, 25, 25, 25, - 58, 58, 27, 27, 27, 27, 58, 27, 27, 58, 27, 27, 58, 27, 27, 27, 27, 27, - 27, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, - 27, 27, 39, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 39, 155, 157, 157, 155, - 58, 58, 39, 157, 155, 155, 157, 155, 155, 58, 39, 58, 157, 151, 158, 58, - 157, 155, 58, 58, 58, 157, 155, 155, 157, 39, 157, 157, 155, 155, 39, - 155, 39, 155, 39, 39, 39, 39, 157, 157, 155, 157, 155, 155, 155, 155, - 155, 39, 39, 39, 39, 58, 155, 58, 155, 157, 157, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 157, 155, 155, 155, 157, 58, 58, 58, 58, 58, - 157, 155, 155, 155, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 157, 39, - 155, 58, 157, 157, 157, 157, 155, 155, 157, 157, 58, 58, 157, 157, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 157, 157, 155, 155, 157, 157, 155, 155, 155, 155, 155, 58, - 58, 155, 155, 155, 155, 58, 58, 39, 58, 58, 155, 39, 58, 58, 58, 58, 58, - 58, 58, 58, 155, 155, 58, 39, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 58, 58, 58, 58, - 58, 155, 157, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 155, 155, - 155, 58, 58, 155, 155, 58, 58, 58, 58, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 58, 58, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 27, 27, 27, 27, 27, 27, 27, 27, 155, 155, - 155, 155, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 155, 155, 27, 27, 27, 27, 27, 27, 27, 159, 160, 27, 27, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, + 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, + 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, + 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, + 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, 0, 0, 34, 34, 34, 34, 34, 34, + 34, 34, 0, 37, 0, 37, 0, 37, 0, 37, 34, 34, 34, 34, 34, 34, 34, 34, 37, + 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, + 41, 41, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, 41, 41, + 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, 41, 41, 34, 34, + 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 34, 44, 44, 44, 34, 34, + 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 44, 44, 34, 34, 34, 34, 0, 0, 34, + 34, 37, 37, 37, 37, 0, 44, 44, 44, 34, 34, 34, 34, 34, 34, 34, 34, 37, + 37, 37, 37, 37, 44, 44, 44, 0, 0, 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, + 41, 44, 44, 0, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 107, 107, 107, 135, 140, 141, 63, 63, 141, 141, 141, 22, 57, 142, 143, + 144, 145, 142, 143, 144, 145, 22, 22, 22, 57, 22, 22, 22, 22, 146, 147, + 148, 149, 150, 151, 152, 21, 153, 88, 153, 153, 88, 22, 57, 57, 57, 29, + 35, 22, 57, 57, 22, 154, 154, 57, 57, 57, 155, 127, 128, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 58, 57, 154, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 133, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 107, 107, 107, 107, + 107, 107, 156, 34, 0, 0, 33, 156, 156, 156, 156, 156, 157, 157, 58, 127, + 128, 28, 156, 33, 33, 33, 33, 156, 156, 156, 156, 156, 157, 157, 58, 127, + 128, 0, 42, 42, 42, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 158, 116, 116, 23, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 159, 159, 60, 60, 60, 60, 159, 159, + 159, 60, 60, 61, 61, 61, 61, 60, 61, 61, 61, 159, 159, 60, 64, 60, 159, + 159, 64, 64, 64, 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 27, 37, 25, 27, 25, 27, 37, 27, 25, 34, 37, 37, 37, 34, 34, 37, 37, 37, + 28, 27, 37, 25, 27, 27, 37, 37, 37, 37, 37, 27, 27, 27, 25, 25, 27, 37, + 27, 38, 27, 37, 27, 37, 38, 37, 37, 160, 34, 37, 37, 37, 37, 34, 40, 40, + 40, 40, 34, 27, 27, 34, 34, 37, 37, 161, 58, 58, 58, 58, 37, 34, 34, 34, + 34, 27, 58, 27, 27, 34, 59, 0, 0, 0, 36, 36, 120, 120, 120, 120, 120, + 120, 36, 36, 36, 36, 120, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 134, 134, 134, 134, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 134, 134, 134, 134, 134, 134, 134, 134, 134, 37, 34, 134, + 134, 134, 134, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 39, 39, 25, 25, 25, 25, + 25, 58, 58, 27, 27, 27, 27, 58, 27, 27, 58, 27, 27, 58, 27, 27, 27, 27, + 27, 27, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, + 58, 27, 27, 39, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 39, 161, 163, 163, + 161, 58, 58, 39, 163, 161, 161, 163, 161, 161, 58, 39, 58, 163, 157, 164, + 58, 163, 161, 58, 58, 58, 163, 161, 161, 163, 39, 163, 163, 161, 161, 39, + 161, 39, 161, 39, 39, 39, 39, 163, 163, 161, 163, 161, 161, 161, 161, + 161, 39, 39, 39, 39, 58, 161, 58, 161, 163, 163, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 163, 161, 161, 161, 163, 58, 58, 58, 58, 58, + 163, 161, 161, 161, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 163, 39, + 161, 58, 163, 163, 163, 163, 161, 161, 163, 163, 58, 58, 163, 163, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 163, 163, 161, 161, 163, 163, 161, 161, 161, 161, 161, 58, + 58, 161, 161, 161, 161, 58, 58, 39, 58, 58, 161, 39, 58, 58, 58, 58, 58, + 58, 58, 58, 161, 161, 58, 39, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 58, 58, 58, 58, + 58, 161, 163, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, 161, 161, + 161, 58, 58, 161, 161, 58, 58, 58, 58, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 58, 58, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 27, 27, 27, 27, 27, 27, 27, 27, 161, 161, + 161, 161, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 161, 161, 27, 27, 27, 27, 27, 27, 27, 165, 166, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, @@ -1212,67 +1266,68 @@ 59, 59, 59, 59, 59, 59, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, 27, 27, 27, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 122, 123, 57, 27, 27, 27, 27, 27, 27, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, 58, 58, 58, + 58, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 120, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 131, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 36, 36, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, - 27, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, - 27, 27, 25, 39, 27, 27, 27, 27, 25, 25, 27, 27, 25, 39, 27, 27, 27, 27, - 25, 25, 25, 27, 27, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, 58, 58, - 58, 58, 58, 58, 27, 27, 27, 27, 27, 25, 25, 27, 27, 25, 27, 27, 27, 27, - 25, 25, 27, 27, 27, 27, 25, 25, 27, 27, 27, 27, 27, 27, 25, 27, 25, 27, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 25, 25, 27, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, + 25, 25, 27, 27, 25, 39, 27, 27, 27, 27, 25, 25, 27, 27, 25, 39, 27, 27, + 27, 27, 25, 25, 25, 27, 27, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, + 58, 58, 58, 58, 58, 58, 27, 27, 27, 27, 27, 25, 25, 27, 27, 25, 27, 27, + 27, 27, 25, 25, 27, 27, 27, 27, 25, 25, 27, 27, 27, 27, 27, 27, 25, 27, + 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, + 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 25, 25, 25, + 27, 25, 25, 25, 25, 27, 25, 25, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 25, 25, 25, 27, 25, - 25, 25, 25, 27, 25, 25, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, - 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, 27, 27, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 27, 27, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 0, 27, 27, 27, 27, 0, 0, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 0, 27, 27, 27, 27, 0, 0, 0, 27, 0, - 27, 27, 27, 27, 27, 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 148, 149, - 148, 149, 148, 149, 148, 149, 148, 149, 148, 149, 148, 149, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 27, 0, 0, 0, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 0, 155, 58, 58, 155, 155, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 58, 58, 58, 155, 155, 155, 155, 58, 58, 58, 58, 58, 155, 155, 155, 58, - 58, 58, 155, 155, 155, 155, 9, 10, 9, 10, 9, 10, 0, 0, 0, 0, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 0, 27, 27, + 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 0, 27, 27, 27, + 27, 0, 0, 0, 27, 0, 27, 27, 27, 27, 27, 27, 27, 0, 0, 27, 27, 27, 27, 27, + 27, 27, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, + 128, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 27, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 0, 161, 58, 58, 161, 161, 127, 128, 58, 161, + 161, 58, 0, 161, 0, 0, 0, 58, 58, 58, 161, 161, 161, 161, 58, 58, 58, 58, + 58, 161, 161, 161, 58, 58, 58, 161, 161, 161, 161, 9, 10, 9, 10, 9, 10, + 9, 10, 127, 128, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, @@ -1286,506 +1341,599 @@ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 58, + 59, 59, 59, 59, 59, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 148, 149, 9, 10, 148, 149, 148, 149, 148, 149, 148, 149, - 148, 149, 148, 149, 148, 149, 148, 149, 148, 149, 58, 58, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 58, 58, 58, 58, 58, 58, 58, 58, 155, 58, 58, 58, 58, - 58, 58, 58, 155, 155, 155, 155, 155, 155, 58, 58, 58, 155, 58, 58, 58, - 58, 155, 155, 155, 155, 155, 58, 155, 155, 58, 58, 148, 149, 148, 149, - 155, 58, 58, 58, 58, 155, 58, 155, 155, 155, 58, 58, 155, 155, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 155, 155, 155, 155, 58, 58, - 148, 149, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 58, 155, 155, 155, 155, 58, 58, 155, 58, 155, 58, 58, 155, 58, - 155, 155, 155, 155, 58, 58, 58, 58, 58, 155, 155, 58, 58, 58, 58, 58, 58, - 155, 155, 155, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 155, 155, 58, 58, 58, 58, 155, 155, 155, 155, 58, - 155, 155, 58, 58, 155, 155, 58, 58, 58, 58, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 58, 58, 155, 155, 155, 155, - 155, 155, 155, 155, 58, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 58, 58, 58, 58, 58, 155, 58, 155, 58, 58, 58, 155, 155, 155, - 155, 155, 58, 58, 58, 58, 58, 155, 155, 155, 58, 58, 58, 58, 155, 58, 58, - 58, 155, 155, 155, 155, 155, 58, 155, 58, 58, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 127, 128, 9, 10, 127, 128, + 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, + 127, 128, 58, 58, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 58, 58, 58, 58, 58, 58, + 58, 58, 161, 58, 58, 58, 58, 58, 58, 58, 161, 161, 161, 161, 161, 161, + 58, 58, 58, 161, 58, 58, 58, 58, 161, 161, 161, 161, 161, 58, 161, 161, + 58, 58, 127, 128, 127, 128, 161, 58, 58, 58, 58, 161, 58, 161, 161, 161, + 58, 58, 161, 161, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, 161, + 161, 161, 161, 58, 58, 127, 128, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 58, 161, 161, 161, 161, 58, 58, 161, 58, + 161, 58, 58, 161, 58, 161, 161, 161, 161, 58, 58, 58, 58, 58, 161, 161, + 58, 58, 58, 58, 58, 58, 161, 161, 161, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, 58, 58, 58, 58, + 161, 161, 161, 161, 58, 161, 161, 58, 58, 161, 161, 58, 58, 58, 58, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 58, + 58, 161, 161, 161, 161, 161, 161, 161, 161, 58, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 58, 58, 58, 58, 58, 161, 58, 161, 58, + 58, 58, 161, 161, 161, 161, 161, 58, 58, 58, 58, 58, 161, 161, 161, 58, + 58, 58, 58, 161, 58, 58, 58, 161, 161, 161, 161, 161, 58, 161, 58, 58, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 27, 27, 58, + 58, 58, 58, 58, 58, 0, 0, 0, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 37, 34, 37, 37, 37, 34, 34, 37, 34, 37, 34, 37, 34, 37, 37, 37, 0, + 34, 37, 34, 34, 37, 34, 34, 34, 34, 34, 34, 34, 42, 0, 0, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 27, 27, 27, - 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, - 131, 57, 57, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 34, 37, 34, 37, 34, 34, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, 120, 57, 57, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, - 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, - 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 57, 57, 29, 35, 29, 35, 57, 57, 57, 29, 35, 57, 29, 35, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 63, 0, 0, 0, 0, 29, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 0, 0, 0, 0, 163, 164, 164, 164, - 162, 165, 127, 166, 159, 160, 159, 160, 159, 160, 159, 160, 159, 160, - 162, 162, 159, 160, 159, 160, 159, 160, 159, 160, 167, 168, 169, 169, - 162, 166, 166, 166, 166, 166, 166, 166, 166, 166, 170, 171, 172, 173, - 174, 174, 167, 165, 165, 165, 165, 165, 162, 162, 166, 166, 166, 165, - 127, 164, 162, 27, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 0, 0, 175, 175, 176, 176, 165, 165, 127, - 167, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 164, 165, 165, 165, 127, 0, 0, 0, 0, - 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 177, 177, 178, 178, - 178, 178, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 162, 162, 0, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 162, 162, - 162, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 162, 162, 162, 162, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 0, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 162, 162, 162, 162, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 162, 162, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 162, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, + 40, 40, 40, 40, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 57, 57, 29, 35, 29, 35, 57, 57, 57, 29, 35, 57, 29, 35, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 63, 57, 57, 63, 57, 29, 35, 57, 57, 29, 35, 127, + 128, 127, 128, 127, 128, 127, 128, 57, 57, 57, 57, 57, 43, 57, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 0, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 0, 0, 0, 0, 169, 170, 170, 170, 168, 171, 132, 172, 165, 166, 165, + 166, 165, 166, 165, 166, 165, 166, 168, 168, 165, 166, 165, 166, 165, + 166, 165, 166, 173, 174, 175, 175, 168, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 176, 177, 178, 179, 180, 180, 173, 171, 171, 171, 171, + 171, 168, 168, 172, 172, 172, 171, 132, 170, 168, 27, 0, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, + 181, 181, 182, 182, 171, 171, 132, 173, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 170, 171, 171, 171, 132, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 0, 183, 183, 184, 184, 184, 184, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 168, 168, 0, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 168, 168, 168, 183, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 168, 168, 168, 168, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 0, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 168, 168, + 168, 168, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 168, 168, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 168, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 165, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 0, 0, 0, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 171, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 57, 57, 57, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 40, 60, + 61, 61, 61, 57, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 57, 43, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 44, 44, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 42, 34, 34, 34, 34, 34, 34, + 34, 34, 37, 34, 37, 34, 37, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 43, + 186, 186, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 109, 40, 40, 40, 114, 40, 40, 40, 40, 109, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 112, 112, 109, 109, 112, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 57, 57, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 112, + 112, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 109, 109, 109, 109, 109, 64, 64, 64, 62, 62, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 112, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 132, 40, 40, 40, 110, - 40, 40, 40, 40, 107, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 108, 108, 107, 107, 108, 27, 27, - 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 109, 109, 109, 109, 109, 109, 112, 112, 109, 109, + 112, 112, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 109, 40, 40, + 40, 40, 40, 40, 40, 40, 109, 112, 0, 0, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 0, 0, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, - 34, 0, 0, 0, 0, 0, 84, 182, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 151, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 84, 84, 84, 84, - 84, 0, 84, 0, 84, 84, 0, 84, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 86, 27, 0, 0, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 164, 164, - 164, 164, 164, 164, 164, 168, 169, 164, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 167, 167, 183, 183, 168, 169, - 168, 169, 168, 169, 168, 169, 168, 169, 168, 169, 168, 169, 168, 169, - 164, 164, 168, 169, 164, 164, 164, 164, 183, 183, 183, 184, 164, 184, 0, - 164, 184, 164, 164, 167, 168, 169, 168, 169, 168, 169, 185, 164, 164, - 186, 187, 188, 188, 188, 0, 164, 189, 185, 164, 0, 0, 0, 0, 89, 89, 89, - 89, 89, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 105, 0, 190, 190, - 191, 192, 191, 190, 190, 193, 194, 190, 195, 196, 197, 196, 196, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 196, 190, 199, 200, 199, - 190, 190, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 193, 190, 194, 202, 203, 202, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 193, 200, 194, 200, 193, 194, 205, 206, 207, 205, - 205, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 0, 0, 0, 208, 208, 208, 208, 208, 208, 0, - 0, 208, 208, 208, 208, 208, 208, 0, 0, 208, 208, 208, 208, 208, 208, 0, - 0, 208, 208, 208, 0, 0, 0, 192, 192, 200, 202, 210, 192, 192, 0, 211, - 212, 212, 212, 212, 211, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 213, - 213, 27, 25, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, + 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 85, 189, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 157, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, + 85, 85, 85, 85, 85, 0, 85, 0, 85, 85, 0, 85, 85, 0, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 144, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 89, 27, + 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 170, 170, 170, 170, 170, 170, 170, 174, 175, 170, 0, 0, 0, 0, 0, 0, 60, + 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 173, 173, 191, + 191, 174, 175, 174, 175, 174, 175, 174, 175, 174, 175, 174, 175, 174, + 175, 174, 175, 170, 170, 174, 175, 170, 170, 170, 170, 191, 191, 191, + 192, 170, 192, 0, 170, 192, 170, 170, 173, 165, 166, 165, 166, 165, 166, + 193, 170, 170, 194, 195, 196, 196, 197, 0, 170, 198, 193, 170, 0, 0, 0, + 0, 95, 95, 95, 95, 95, 0, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 107, 0, + 199, 199, 200, 201, 200, 199, 199, 202, 203, 199, 204, 205, 206, 205, + 205, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 205, 199, 208, + 209, 208, 199, 199, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 202, 199, 203, 211, 212, 211, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 202, 209, 203, 209, 202, 203, 214, 215, + 216, 214, 214, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 218, 218, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 0, 0, 0, 217, 217, 217, 217, 217, + 217, 0, 0, 217, 217, 217, 217, 217, 217, 0, 0, 217, 217, 217, 217, 217, + 217, 0, 0, 217, 217, 217, 0, 0, 0, 201, 201, 209, 211, 219, 201, 201, 0, + 220, 221, 221, 221, 221, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, + 222, 222, 27, 25, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 62, 57, 59, 0, 0, - 0, 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 131, 131, 131, 131, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 131, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 62, 57, + 59, 0, 0, 0, 0, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 120, 120, 120, + 120, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 120, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 113, 113, 113, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 129, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 117, 117, 117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 134, 40, + 40, 40, 40, 40, 40, 40, 40, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 62, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 0, 62, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, - 40, 40, 40, 40, 40, 40, 40, 40, 59, 214, 214, 214, 214, 214, 0, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, + 40, 62, 134, 134, 134, 134, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, + 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 84, 84, 84, 84, - 84, 0, 0, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 84, 84, 0, 0, 0, 84, - 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 0, 0, 85, 0, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 0, 85, 85, 0, 0, 0, 85, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 84, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 107, 64, 107, 60, - 84, 84, 84, 84, 0, 84, 84, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 0, - 0, 0, 60, 153, 64, 0, 0, 0, 0, 110, 215, 215, 215, 215, 215, 215, 215, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 224, + 224, 224, 224, 0, 0, 0, 0, 0, 57, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 85, 109, 109, 109, 0, 109, 109, 0, 0, 0, 0, 0, 109, 64, 109, 60, + 85, 85, 85, 85, 0, 85, 85, 85, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, + 0, 0, 60, 159, 64, 0, 0, 0, 0, 114, 224, 224, 224, 224, 224, 224, 224, + 224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 82, 82, 82, 82, 82, 82, 82, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, @@ -1799,25 +1947,25 @@ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, + 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 216, 216, 153, 153, 153, 59, 59, 59, 217, - 216, 216, 216, 216, 216, 105, 105, 105, 105, 105, 105, 105, 105, 64, 64, - 64, 64, 64, 64, 64, 64, 59, 59, 60, 60, 60, 60, 60, 64, 64, 59, 59, 59, + 59, 59, 59, 59, 59, 225, 225, 159, 159, 159, 59, 59, 59, 226, 225, 225, + 225, 225, 225, 107, 107, 107, 107, 107, 107, 107, 107, 64, 64, 64, 64, + 64, 64, 64, 64, 59, 59, 60, 60, 60, 60, 60, 64, 64, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, + 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 60, 60, 60, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 60, 60, 60, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1825,118 +1973,131 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 0, - 37, 37, 0, 0, 37, 0, 0, 37, 37, 0, 0, 37, 37, 37, 37, 0, 37, 37, 37, 37, - 37, 37, 37, 37, 34, 34, 34, 34, 0, 34, 0, 34, 34, 34, 34, 34, 34, 34, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 0, 37, 37, 37, 37, 0, 0, 37, - 37, 37, 37, 37, 37, 37, 37, 0, 37, 37, 37, 37, 37, 37, 37, 0, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 37, 37, 0, 37, 37, 37, 37, 0, 37, 37, 37, 37, 37, 0, - 37, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 37, 0, 37, 37, 0, 0, 37, 0, 0, 37, 37, 0, 0, 37, + 37, 37, 37, 0, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 0, 34, 0, + 34, 34, 34, 34, 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 0, 37, 37, 37, 37, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 0, 37, 37, + 37, 37, 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 0, 37, + 37, 37, 37, 0, 37, 37, 37, 37, 37, 0, 37, 0, 0, 0, 37, 37, 37, 37, 37, + 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 218, + 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 218, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 218, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 218, 34, 34, 34, 34, 34, 34, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 218, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 218, 34, 34, - 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 218, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 218, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 218, 34, 34, + 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 218, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 227, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 228, + 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 227, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 228, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 227, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 228, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 227, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 228, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 227, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 228, 34, 34, + 34, 34, 34, 34, 37, 34, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, @@ -1949,26 +2110,26 @@ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 0, 0, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 0, 0, }; /* decomposition data */ @@ -2071,385 +2232,388 @@ 512, 3953, 3954, 512, 3953, 3956, 512, 4018, 3968, 514, 4018, 3969, 512, 4019, 3968, 514, 4019, 3969, 512, 3953, 3968, 512, 3986, 4023, 512, 3996, 4023, 512, 4001, 4023, 512, 4006, 4023, 512, 4011, 4023, 512, 3984, 4021, - 512, 4133, 4142, 259, 4316, 259, 65, 259, 198, 259, 66, 259, 68, 259, 69, - 259, 398, 259, 71, 259, 72, 259, 73, 259, 74, 259, 75, 259, 76, 259, 77, - 259, 78, 259, 79, 259, 546, 259, 80, 259, 82, 259, 84, 259, 85, 259, 87, - 259, 97, 259, 592, 259, 593, 259, 7426, 259, 98, 259, 100, 259, 101, 259, - 601, 259, 603, 259, 604, 259, 103, 259, 107, 259, 109, 259, 331, 259, - 111, 259, 596, 259, 7446, 259, 7447, 259, 112, 259, 116, 259, 117, 259, - 7453, 259, 623, 259, 118, 259, 7461, 259, 946, 259, 947, 259, 948, 259, - 966, 259, 967, 261, 105, 261, 114, 261, 117, 261, 118, 261, 946, 261, - 947, 261, 961, 261, 966, 261, 967, 259, 1085, 259, 594, 259, 99, 259, - 597, 259, 240, 259, 604, 259, 102, 259, 607, 259, 609, 259, 613, 259, - 616, 259, 617, 259, 618, 259, 7547, 259, 669, 259, 621, 259, 7557, 259, - 671, 259, 625, 259, 624, 259, 626, 259, 627, 259, 628, 259, 629, 259, - 632, 259, 642, 259, 643, 259, 427, 259, 649, 259, 650, 259, 7452, 259, - 651, 259, 652, 259, 122, 259, 656, 259, 657, 259, 658, 259, 952, 512, 65, - 805, 512, 97, 805, 512, 66, 775, 512, 98, 775, 512, 66, 803, 512, 98, - 803, 512, 66, 817, 512, 98, 817, 512, 199, 769, 512, 231, 769, 512, 68, - 775, 512, 100, 775, 512, 68, 803, 512, 100, 803, 512, 68, 817, 512, 100, - 817, 512, 68, 807, 512, 100, 807, 512, 68, 813, 512, 100, 813, 512, 274, - 768, 512, 275, 768, 512, 274, 769, 512, 275, 769, 512, 69, 813, 512, 101, - 813, 512, 69, 816, 512, 101, 816, 512, 552, 774, 512, 553, 774, 512, 70, - 775, 512, 102, 775, 512, 71, 772, 512, 103, 772, 512, 72, 775, 512, 104, - 775, 512, 72, 803, 512, 104, 803, 512, 72, 776, 512, 104, 776, 512, 72, - 807, 512, 104, 807, 512, 72, 814, 512, 104, 814, 512, 73, 816, 512, 105, - 816, 512, 207, 769, 512, 239, 769, 512, 75, 769, 512, 107, 769, 512, 75, - 803, 512, 107, 803, 512, 75, 817, 512, 107, 817, 512, 76, 803, 512, 108, - 803, 512, 7734, 772, 512, 7735, 772, 512, 76, 817, 512, 108, 817, 512, - 76, 813, 512, 108, 813, 512, 77, 769, 512, 109, 769, 512, 77, 775, 512, - 109, 775, 512, 77, 803, 512, 109, 803, 512, 78, 775, 512, 110, 775, 512, - 78, 803, 512, 110, 803, 512, 78, 817, 512, 110, 817, 512, 78, 813, 512, - 110, 813, 512, 213, 769, 512, 245, 769, 512, 213, 776, 512, 245, 776, - 512, 332, 768, 512, 333, 768, 512, 332, 769, 512, 333, 769, 512, 80, 769, - 512, 112, 769, 512, 80, 775, 512, 112, 775, 512, 82, 775, 512, 114, 775, - 512, 82, 803, 512, 114, 803, 512, 7770, 772, 512, 7771, 772, 512, 82, - 817, 512, 114, 817, 512, 83, 775, 512, 115, 775, 512, 83, 803, 512, 115, - 803, 512, 346, 775, 512, 347, 775, 512, 352, 775, 512, 353, 775, 512, - 7778, 775, 512, 7779, 775, 512, 84, 775, 512, 116, 775, 512, 84, 803, - 512, 116, 803, 512, 84, 817, 512, 116, 817, 512, 84, 813, 512, 116, 813, - 512, 85, 804, 512, 117, 804, 512, 85, 816, 512, 117, 816, 512, 85, 813, - 512, 117, 813, 512, 360, 769, 512, 361, 769, 512, 362, 776, 512, 363, - 776, 512, 86, 771, 512, 118, 771, 512, 86, 803, 512, 118, 803, 512, 87, - 768, 512, 119, 768, 512, 87, 769, 512, 119, 769, 512, 87, 776, 512, 119, - 776, 512, 87, 775, 512, 119, 775, 512, 87, 803, 512, 119, 803, 512, 88, - 775, 512, 120, 775, 512, 88, 776, 512, 120, 776, 512, 89, 775, 512, 121, - 775, 512, 90, 770, 512, 122, 770, 512, 90, 803, 512, 122, 803, 512, 90, - 817, 512, 122, 817, 512, 104, 817, 512, 116, 776, 512, 119, 778, 512, - 121, 778, 514, 97, 702, 512, 383, 775, 512, 65, 803, 512, 97, 803, 512, - 65, 777, 512, 97, 777, 512, 194, 769, 512, 226, 769, 512, 194, 768, 512, - 226, 768, 512, 194, 777, 512, 226, 777, 512, 194, 771, 512, 226, 771, - 512, 7840, 770, 512, 7841, 770, 512, 258, 769, 512, 259, 769, 512, 258, - 768, 512, 259, 768, 512, 258, 777, 512, 259, 777, 512, 258, 771, 512, - 259, 771, 512, 7840, 774, 512, 7841, 774, 512, 69, 803, 512, 101, 803, - 512, 69, 777, 512, 101, 777, 512, 69, 771, 512, 101, 771, 512, 202, 769, - 512, 234, 769, 512, 202, 768, 512, 234, 768, 512, 202, 777, 512, 234, - 777, 512, 202, 771, 512, 234, 771, 512, 7864, 770, 512, 7865, 770, 512, - 73, 777, 512, 105, 777, 512, 73, 803, 512, 105, 803, 512, 79, 803, 512, - 111, 803, 512, 79, 777, 512, 111, 777, 512, 212, 769, 512, 244, 769, 512, - 212, 768, 512, 244, 768, 512, 212, 777, 512, 244, 777, 512, 212, 771, - 512, 244, 771, 512, 7884, 770, 512, 7885, 770, 512, 416, 769, 512, 417, - 769, 512, 416, 768, 512, 417, 768, 512, 416, 777, 512, 417, 777, 512, - 416, 771, 512, 417, 771, 512, 416, 803, 512, 417, 803, 512, 85, 803, 512, - 117, 803, 512, 85, 777, 512, 117, 777, 512, 431, 769, 512, 432, 769, 512, - 431, 768, 512, 432, 768, 512, 431, 777, 512, 432, 777, 512, 431, 771, - 512, 432, 771, 512, 431, 803, 512, 432, 803, 512, 89, 768, 512, 121, 768, - 512, 89, 803, 512, 121, 803, 512, 89, 777, 512, 121, 777, 512, 89, 771, - 512, 121, 771, 512, 945, 787, 512, 945, 788, 512, 7936, 768, 512, 7937, - 768, 512, 7936, 769, 512, 7937, 769, 512, 7936, 834, 512, 7937, 834, 512, - 913, 787, 512, 913, 788, 512, 7944, 768, 512, 7945, 768, 512, 7944, 769, - 512, 7945, 769, 512, 7944, 834, 512, 7945, 834, 512, 949, 787, 512, 949, - 788, 512, 7952, 768, 512, 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, - 917, 787, 512, 917, 788, 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, - 512, 7961, 769, 512, 951, 787, 512, 951, 788, 512, 7968, 768, 512, 7969, - 768, 512, 7968, 769, 512, 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, - 919, 787, 512, 919, 788, 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, - 512, 7977, 769, 512, 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, - 788, 512, 7984, 768, 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, - 7984, 834, 512, 7985, 834, 512, 921, 787, 512, 921, 788, 512, 7992, 768, - 512, 7993, 768, 512, 7992, 769, 512, 7993, 769, 512, 7992, 834, 512, - 7993, 834, 512, 959, 787, 512, 959, 788, 512, 8000, 768, 512, 8001, 768, - 512, 8000, 769, 512, 8001, 769, 512, 927, 787, 512, 927, 788, 512, 8008, - 768, 512, 8009, 768, 512, 8008, 769, 512, 8009, 769, 512, 965, 787, 512, - 965, 788, 512, 8016, 768, 512, 8017, 768, 512, 8016, 769, 512, 8017, 769, - 512, 8016, 834, 512, 8017, 834, 512, 933, 788, 512, 8025, 768, 512, 8025, - 769, 512, 8025, 834, 512, 969, 787, 512, 969, 788, 512, 8032, 768, 512, - 8033, 768, 512, 8032, 769, 512, 8033, 769, 512, 8032, 834, 512, 8033, - 834, 512, 937, 787, 512, 937, 788, 512, 8040, 768, 512, 8041, 768, 512, - 8040, 769, 512, 8041, 769, 512, 8040, 834, 512, 8041, 834, 512, 945, 768, - 256, 940, 512, 949, 768, 256, 941, 512, 951, 768, 256, 942, 512, 953, - 768, 256, 943, 512, 959, 768, 256, 972, 512, 965, 768, 256, 973, 512, - 969, 768, 256, 974, 512, 7936, 837, 512, 7937, 837, 512, 7938, 837, 512, - 7939, 837, 512, 7940, 837, 512, 7941, 837, 512, 7942, 837, 512, 7943, - 837, 512, 7944, 837, 512, 7945, 837, 512, 7946, 837, 512, 7947, 837, 512, - 7948, 837, 512, 7949, 837, 512, 7950, 837, 512, 7951, 837, 512, 7968, - 837, 512, 7969, 837, 512, 7970, 837, 512, 7971, 837, 512, 7972, 837, 512, - 7973, 837, 512, 7974, 837, 512, 7975, 837, 512, 7976, 837, 512, 7977, - 837, 512, 7978, 837, 512, 7979, 837, 512, 7980, 837, 512, 7981, 837, 512, - 7982, 837, 512, 7983, 837, 512, 8032, 837, 512, 8033, 837, 512, 8034, - 837, 512, 8035, 837, 512, 8036, 837, 512, 8037, 837, 512, 8038, 837, 512, - 8039, 837, 512, 8040, 837, 512, 8041, 837, 512, 8042, 837, 512, 8043, - 837, 512, 8044, 837, 512, 8045, 837, 512, 8046, 837, 512, 8047, 837, 512, - 945, 774, 512, 945, 772, 512, 8048, 837, 512, 945, 837, 512, 940, 837, - 512, 945, 834, 512, 8118, 837, 512, 913, 774, 512, 913, 772, 512, 913, - 768, 256, 902, 512, 913, 837, 514, 32, 787, 256, 953, 514, 32, 787, 514, - 32, 834, 512, 168, 834, 512, 8052, 837, 512, 951, 837, 512, 942, 837, - 512, 951, 834, 512, 8134, 837, 512, 917, 768, 256, 904, 512, 919, 768, - 256, 905, 512, 919, 837, 512, 8127, 768, 512, 8127, 769, 512, 8127, 834, - 512, 953, 774, 512, 953, 772, 512, 970, 768, 256, 912, 512, 953, 834, - 512, 970, 834, 512, 921, 774, 512, 921, 772, 512, 921, 768, 256, 906, - 512, 8190, 768, 512, 8190, 769, 512, 8190, 834, 512, 965, 774, 512, 965, - 772, 512, 971, 768, 256, 944, 512, 961, 787, 512, 961, 788, 512, 965, - 834, 512, 971, 834, 512, 933, 774, 512, 933, 772, 512, 933, 768, 256, - 910, 512, 929, 788, 512, 168, 768, 256, 901, 256, 96, 512, 8060, 837, - 512, 969, 837, 512, 974, 837, 512, 969, 834, 512, 8182, 837, 512, 927, - 768, 256, 908, 512, 937, 768, 256, 911, 512, 937, 837, 256, 180, 514, 32, - 788, 256, 8194, 256, 8195, 258, 32, 258, 32, 258, 32, 258, 32, 258, 32, - 257, 32, 258, 32, 258, 32, 258, 32, 257, 8208, 514, 32, 819, 258, 46, - 514, 46, 46, 770, 46, 46, 46, 257, 32, 514, 8242, 8242, 770, 8242, 8242, - 8242, 514, 8245, 8245, 770, 8245, 8245, 8245, 514, 33, 33, 514, 32, 773, - 514, 63, 63, 514, 63, 33, 514, 33, 63, 1026, 8242, 8242, 8242, 8242, 258, - 32, 259, 48, 259, 105, 259, 52, 259, 53, 259, 54, 259, 55, 259, 56, 259, - 57, 259, 43, 259, 8722, 259, 61, 259, 40, 259, 41, 259, 110, 261, 48, - 261, 49, 261, 50, 261, 51, 261, 52, 261, 53, 261, 54, 261, 55, 261, 56, - 261, 57, 261, 43, 261, 8722, 261, 61, 261, 40, 261, 41, 261, 97, 261, - 101, 261, 111, 261, 120, 261, 601, 514, 82, 115, 770, 97, 47, 99, 770, - 97, 47, 115, 262, 67, 514, 176, 67, 770, 99, 47, 111, 770, 99, 47, 117, - 258, 400, 514, 176, 70, 262, 103, 262, 72, 262, 72, 262, 72, 262, 104, - 262, 295, 262, 73, 262, 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, - 262, 80, 262, 81, 262, 82, 262, 82, 262, 82, 515, 83, 77, 770, 84, 69, - 76, 515, 84, 77, 262, 90, 256, 937, 262, 90, 256, 75, 256, 197, 262, 66, - 262, 67, 262, 101, 262, 69, 262, 70, 262, 77, 262, 111, 258, 1488, 258, - 1489, 258, 1490, 258, 1491, 262, 105, 770, 70, 65, 88, 262, 960, 262, - 947, 262, 915, 262, 928, 262, 8721, 262, 68, 262, 100, 262, 101, 262, - 105, 262, 106, 772, 49, 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, - 772, 50, 8260, 53, 772, 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, - 54, 772, 53, 8260, 54, 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, - 8260, 56, 772, 55, 8260, 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, - 73, 73, 73, 514, 73, 86, 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, - 73, 73, 73, 514, 73, 88, 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, - 258, 67, 258, 68, 258, 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, - 514, 105, 118, 258, 118, 514, 118, 105, 770, 118, 105, 105, 1026, 118, - 105, 105, 105, 514, 105, 120, 258, 120, 514, 120, 105, 770, 120, 105, - 105, 258, 108, 258, 99, 258, 100, 258, 109, 512, 8592, 824, 512, 8594, - 824, 512, 8596, 824, 512, 8656, 824, 512, 8660, 824, 512, 8658, 824, 512, - 8707, 824, 512, 8712, 824, 512, 8715, 824, 512, 8739, 824, 512, 8741, - 824, 514, 8747, 8747, 770, 8747, 8747, 8747, 514, 8750, 8750, 770, 8750, - 8750, 8750, 512, 8764, 824, 512, 8771, 824, 512, 8773, 824, 512, 8776, - 824, 512, 61, 824, 512, 8801, 824, 512, 8781, 824, 512, 60, 824, 512, 62, - 824, 512, 8804, 824, 512, 8805, 824, 512, 8818, 824, 512, 8819, 824, 512, - 8822, 824, 512, 8823, 824, 512, 8826, 824, 512, 8827, 824, 512, 8834, - 824, 512, 8835, 824, 512, 8838, 824, 512, 8839, 824, 512, 8866, 824, 512, - 8872, 824, 512, 8873, 824, 512, 8875, 824, 512, 8828, 824, 512, 8829, - 824, 512, 8849, 824, 512, 8850, 824, 512, 8882, 824, 512, 8883, 824, 512, - 8884, 824, 512, 8885, 824, 256, 12296, 256, 12297, 263, 49, 263, 50, 263, - 51, 263, 52, 263, 53, 263, 54, 263, 55, 263, 56, 263, 57, 519, 49, 48, - 519, 49, 49, 519, 49, 50, 519, 49, 51, 519, 49, 52, 519, 49, 53, 519, 49, - 54, 519, 49, 55, 519, 49, 56, 519, 49, 57, 519, 50, 48, 770, 40, 49, 41, - 770, 40, 50, 41, 770, 40, 51, 41, 770, 40, 52, 41, 770, 40, 53, 41, 770, - 40, 54, 41, 770, 40, 55, 41, 770, 40, 56, 41, 770, 40, 57, 41, 1026, 40, - 49, 48, 41, 1026, 40, 49, 49, 41, 1026, 40, 49, 50, 41, 1026, 40, 49, 51, - 41, 1026, 40, 49, 52, 41, 1026, 40, 49, 53, 41, 1026, 40, 49, 54, 41, - 1026, 40, 49, 55, 41, 1026, 40, 49, 56, 41, 1026, 40, 49, 57, 41, 1026, - 40, 50, 48, 41, 514, 49, 46, 514, 50, 46, 514, 51, 46, 514, 52, 46, 514, - 53, 46, 514, 54, 46, 514, 55, 46, 514, 56, 46, 514, 57, 46, 770, 49, 48, - 46, 770, 49, 49, 46, 770, 49, 50, 46, 770, 49, 51, 46, 770, 49, 52, 46, - 770, 49, 53, 46, 770, 49, 54, 46, 770, 49, 55, 46, 770, 49, 56, 46, 770, - 49, 57, 46, 770, 50, 48, 46, 770, 40, 97, 41, 770, 40, 98, 41, 770, 40, - 99, 41, 770, 40, 100, 41, 770, 40, 101, 41, 770, 40, 102, 41, 770, 40, - 103, 41, 770, 40, 104, 41, 770, 40, 105, 41, 770, 40, 106, 41, 770, 40, - 107, 41, 770, 40, 108, 41, 770, 40, 109, 41, 770, 40, 110, 41, 770, 40, - 111, 41, 770, 40, 112, 41, 770, 40, 113, 41, 770, 40, 114, 41, 770, 40, - 115, 41, 770, 40, 116, 41, 770, 40, 117, 41, 770, 40, 118, 41, 770, 40, - 119, 41, 770, 40, 120, 41, 770, 40, 121, 41, 770, 40, 122, 41, 263, 65, - 263, 66, 263, 67, 263, 68, 263, 69, 263, 70, 263, 71, 263, 72, 263, 73, - 263, 74, 263, 75, 263, 76, 263, 77, 263, 78, 263, 79, 263, 80, 263, 81, - 263, 82, 263, 83, 263, 84, 263, 85, 263, 86, 263, 87, 263, 88, 263, 89, - 263, 90, 263, 97, 263, 98, 263, 99, 263, 100, 263, 101, 263, 102, 263, - 103, 263, 104, 263, 105, 263, 106, 263, 107, 263, 108, 263, 109, 263, - 110, 263, 111, 263, 112, 263, 113, 263, 114, 263, 115, 263, 116, 263, - 117, 263, 118, 263, 119, 263, 120, 263, 121, 263, 122, 263, 48, 1026, - 8747, 8747, 8747, 8747, 770, 58, 58, 61, 514, 61, 61, 770, 61, 61, 61, - 512, 10973, 824, 259, 11617, 258, 27597, 258, 40863, 258, 19968, 258, - 20008, 258, 20022, 258, 20031, 258, 20057, 258, 20101, 258, 20108, 258, - 20128, 258, 20154, 258, 20799, 258, 20837, 258, 20843, 258, 20866, 258, - 20886, 258, 20907, 258, 20960, 258, 20981, 258, 20992, 258, 21147, 258, - 21241, 258, 21269, 258, 21274, 258, 21304, 258, 21313, 258, 21340, 258, - 21353, 258, 21378, 258, 21430, 258, 21448, 258, 21475, 258, 22231, 258, - 22303, 258, 22763, 258, 22786, 258, 22794, 258, 22805, 258, 22823, 258, - 22899, 258, 23376, 258, 23424, 258, 23544, 258, 23567, 258, 23586, 258, - 23608, 258, 23662, 258, 23665, 258, 24027, 258, 24037, 258, 24049, 258, - 24062, 258, 24178, 258, 24186, 258, 24191, 258, 24308, 258, 24318, 258, - 24331, 258, 24339, 258, 24400, 258, 24417, 258, 24435, 258, 24515, 258, - 25096, 258, 25142, 258, 25163, 258, 25903, 258, 25908, 258, 25991, 258, - 26007, 258, 26020, 258, 26041, 258, 26080, 258, 26085, 258, 26352, 258, - 26376, 258, 26408, 258, 27424, 258, 27490, 258, 27513, 258, 27571, 258, - 27595, 258, 27604, 258, 27611, 258, 27663, 258, 27668, 258, 27700, 258, - 28779, 258, 29226, 258, 29238, 258, 29243, 258, 29247, 258, 29255, 258, - 29273, 258, 29275, 258, 29356, 258, 29572, 258, 29577, 258, 29916, 258, - 29926, 258, 29976, 258, 29983, 258, 29992, 258, 30000, 258, 30091, 258, - 30098, 258, 30326, 258, 30333, 258, 30382, 258, 30399, 258, 30446, 258, - 30683, 258, 30690, 258, 30707, 258, 31034, 258, 31160, 258, 31166, 258, - 31348, 258, 31435, 258, 31481, 258, 31859, 258, 31992, 258, 32566, 258, - 32593, 258, 32650, 258, 32701, 258, 32769, 258, 32780, 258, 32786, 258, - 32819, 258, 32895, 258, 32905, 258, 33251, 258, 33258, 258, 33267, 258, - 33276, 258, 33292, 258, 33307, 258, 33311, 258, 33390, 258, 33394, 258, - 33400, 258, 34381, 258, 34411, 258, 34880, 258, 34892, 258, 34915, 258, - 35198, 258, 35211, 258, 35282, 258, 35328, 258, 35895, 258, 35910, 258, - 35925, 258, 35960, 258, 35997, 258, 36196, 258, 36208, 258, 36275, 258, - 36523, 258, 36554, 258, 36763, 258, 36784, 258, 36789, 258, 37009, 258, - 37193, 258, 37318, 258, 37324, 258, 37329, 258, 38263, 258, 38272, 258, - 38428, 258, 38582, 258, 38585, 258, 38632, 258, 38737, 258, 38750, 258, - 38754, 258, 38761, 258, 38859, 258, 38893, 258, 38899, 258, 38913, 258, - 39080, 258, 39131, 258, 39135, 258, 39318, 258, 39321, 258, 39340, 258, - 39592, 258, 39640, 258, 39647, 258, 39717, 258, 39727, 258, 39730, 258, - 39740, 258, 39770, 258, 40165, 258, 40565, 258, 40575, 258, 40613, 258, - 40635, 258, 40643, 258, 40653, 258, 40657, 258, 40697, 258, 40701, 258, - 40718, 258, 40723, 258, 40736, 258, 40763, 258, 40778, 258, 40786, 258, - 40845, 258, 40860, 258, 40864, 264, 32, 258, 12306, 258, 21313, 258, - 21316, 258, 21317, 512, 12363, 12441, 512, 12365, 12441, 512, 12367, - 12441, 512, 12369, 12441, 512, 12371, 12441, 512, 12373, 12441, 512, - 12375, 12441, 512, 12377, 12441, 512, 12379, 12441, 512, 12381, 12441, - 512, 12383, 12441, 512, 12385, 12441, 512, 12388, 12441, 512, 12390, - 12441, 512, 12392, 12441, 512, 12399, 12441, 512, 12399, 12442, 512, - 12402, 12441, 512, 12402, 12442, 512, 12405, 12441, 512, 12405, 12442, - 512, 12408, 12441, 512, 12408, 12442, 512, 12411, 12441, 512, 12411, - 12442, 512, 12358, 12441, 514, 32, 12441, 514, 32, 12442, 512, 12445, - 12441, 521, 12424, 12426, 512, 12459, 12441, 512, 12461, 12441, 512, - 12463, 12441, 512, 12465, 12441, 512, 12467, 12441, 512, 12469, 12441, - 512, 12471, 12441, 512, 12473, 12441, 512, 12475, 12441, 512, 12477, - 12441, 512, 12479, 12441, 512, 12481, 12441, 512, 12484, 12441, 512, - 12486, 12441, 512, 12488, 12441, 512, 12495, 12441, 512, 12495, 12442, - 512, 12498, 12441, 512, 12498, 12442, 512, 12501, 12441, 512, 12501, - 12442, 512, 12504, 12441, 512, 12504, 12442, 512, 12507, 12441, 512, - 12507, 12442, 512, 12454, 12441, 512, 12527, 12441, 512, 12528, 12441, - 512, 12529, 12441, 512, 12530, 12441, 512, 12541, 12441, 521, 12467, - 12488, 258, 4352, 258, 4353, 258, 4522, 258, 4354, 258, 4524, 258, 4525, - 258, 4355, 258, 4356, 258, 4357, 258, 4528, 258, 4529, 258, 4530, 258, - 4531, 258, 4532, 258, 4533, 258, 4378, 258, 4358, 258, 4359, 258, 4360, - 258, 4385, 258, 4361, 258, 4362, 258, 4363, 258, 4364, 258, 4365, 258, - 4366, 258, 4367, 258, 4368, 258, 4369, 258, 4370, 258, 4449, 258, 4450, - 258, 4451, 258, 4452, 258, 4453, 258, 4454, 258, 4455, 258, 4456, 258, - 4457, 258, 4458, 258, 4459, 258, 4460, 258, 4461, 258, 4462, 258, 4463, - 258, 4464, 258, 4465, 258, 4466, 258, 4467, 258, 4468, 258, 4469, 258, - 4448, 258, 4372, 258, 4373, 258, 4551, 258, 4552, 258, 4556, 258, 4558, - 258, 4563, 258, 4567, 258, 4569, 258, 4380, 258, 4573, 258, 4575, 258, - 4381, 258, 4382, 258, 4384, 258, 4386, 258, 4387, 258, 4391, 258, 4393, - 258, 4395, 258, 4396, 258, 4397, 258, 4398, 258, 4399, 258, 4402, 258, - 4406, 258, 4416, 258, 4423, 258, 4428, 258, 4593, 258, 4594, 258, 4439, - 258, 4440, 258, 4441, 258, 4484, 258, 4485, 258, 4488, 258, 4497, 258, - 4498, 258, 4500, 258, 4510, 258, 4513, 259, 19968, 259, 20108, 259, - 19977, 259, 22235, 259, 19978, 259, 20013, 259, 19979, 259, 30002, 259, - 20057, 259, 19993, 259, 19969, 259, 22825, 259, 22320, 259, 20154, 770, - 40, 4352, 41, 770, 40, 4354, 41, 770, 40, 4355, 41, 770, 40, 4357, 41, - 770, 40, 4358, 41, 770, 40, 4359, 41, 770, 40, 4361, 41, 770, 40, 4363, - 41, 770, 40, 4364, 41, 770, 40, 4366, 41, 770, 40, 4367, 41, 770, 40, - 4368, 41, 770, 40, 4369, 41, 770, 40, 4370, 41, 1026, 40, 4352, 4449, 41, - 1026, 40, 4354, 4449, 41, 1026, 40, 4355, 4449, 41, 1026, 40, 4357, 4449, - 41, 1026, 40, 4358, 4449, 41, 1026, 40, 4359, 4449, 41, 1026, 40, 4361, - 4449, 41, 1026, 40, 4363, 4449, 41, 1026, 40, 4364, 4449, 41, 1026, 40, - 4366, 4449, 41, 1026, 40, 4367, 4449, 41, 1026, 40, 4368, 4449, 41, 1026, - 40, 4369, 4449, 41, 1026, 40, 4370, 4449, 41, 1026, 40, 4364, 4462, 41, - 1794, 40, 4363, 4457, 4364, 4453, 4523, 41, 1538, 40, 4363, 4457, 4370, - 4462, 41, 770, 40, 19968, 41, 770, 40, 20108, 41, 770, 40, 19977, 41, - 770, 40, 22235, 41, 770, 40, 20116, 41, 770, 40, 20845, 41, 770, 40, - 19971, 41, 770, 40, 20843, 41, 770, 40, 20061, 41, 770, 40, 21313, 41, - 770, 40, 26376, 41, 770, 40, 28779, 41, 770, 40, 27700, 41, 770, 40, - 26408, 41, 770, 40, 37329, 41, 770, 40, 22303, 41, 770, 40, 26085, 41, - 770, 40, 26666, 41, 770, 40, 26377, 41, 770, 40, 31038, 41, 770, 40, - 21517, 41, 770, 40, 29305, 41, 770, 40, 36001, 41, 770, 40, 31069, 41, - 770, 40, 21172, 41, 770, 40, 20195, 41, 770, 40, 21628, 41, 770, 40, - 23398, 41, 770, 40, 30435, 41, 770, 40, 20225, 41, 770, 40, 36039, 41, - 770, 40, 21332, 41, 770, 40, 31085, 41, 770, 40, 20241, 41, 770, 40, - 33258, 41, 770, 40, 33267, 41, 778, 80, 84, 69, 519, 50, 49, 519, 50, 50, - 519, 50, 51, 519, 50, 52, 519, 50, 53, 519, 50, 54, 519, 50, 55, 519, 50, - 56, 519, 50, 57, 519, 51, 48, 519, 51, 49, 519, 51, 50, 519, 51, 51, 519, - 51, 52, 519, 51, 53, 263, 4352, 263, 4354, 263, 4355, 263, 4357, 263, - 4358, 263, 4359, 263, 4361, 263, 4363, 263, 4364, 263, 4366, 263, 4367, - 263, 4368, 263, 4369, 263, 4370, 519, 4352, 4449, 519, 4354, 4449, 519, - 4355, 4449, 519, 4357, 4449, 519, 4358, 4449, 519, 4359, 4449, 519, 4361, - 4449, 519, 4363, 4449, 519, 4364, 4449, 519, 4366, 4449, 519, 4367, 4449, - 519, 4368, 4449, 519, 4369, 4449, 519, 4370, 4449, 1287, 4366, 4449, - 4535, 4352, 4457, 1031, 4364, 4462, 4363, 4468, 519, 4363, 4462, 263, - 19968, 263, 20108, 263, 19977, 263, 22235, 263, 20116, 263, 20845, 263, - 19971, 263, 20843, 263, 20061, 263, 21313, 263, 26376, 263, 28779, 263, - 27700, 263, 26408, 263, 37329, 263, 22303, 263, 26085, 263, 26666, 263, - 26377, 263, 31038, 263, 21517, 263, 29305, 263, 36001, 263, 31069, 263, - 21172, 263, 31192, 263, 30007, 263, 22899, 263, 36969, 263, 20778, 263, - 21360, 263, 27880, 263, 38917, 263, 20241, 263, 20889, 263, 27491, 263, - 19978, 263, 20013, 263, 19979, 263, 24038, 263, 21491, 263, 21307, 263, - 23447, 263, 23398, 263, 30435, 263, 20225, 263, 36039, 263, 21332, 263, - 22812, 519, 51, 54, 519, 51, 55, 519, 51, 56, 519, 51, 57, 519, 52, 48, - 519, 52, 49, 519, 52, 50, 519, 52, 51, 519, 52, 52, 519, 52, 53, 519, 52, - 54, 519, 52, 55, 519, 52, 56, 519, 52, 57, 519, 53, 48, 514, 49, 26376, - 514, 50, 26376, 514, 51, 26376, 514, 52, 26376, 514, 53, 26376, 514, 54, - 26376, 514, 55, 26376, 514, 56, 26376, 514, 57, 26376, 770, 49, 48, - 26376, 770, 49, 49, 26376, 770, 49, 50, 26376, 522, 72, 103, 778, 101, - 114, 103, 522, 101, 86, 778, 76, 84, 68, 263, 12450, 263, 12452, 263, - 12454, 263, 12456, 263, 12458, 263, 12459, 263, 12461, 263, 12463, 263, - 12465, 263, 12467, 263, 12469, 263, 12471, 263, 12473, 263, 12475, 263, - 12477, 263, 12479, 263, 12481, 263, 12484, 263, 12486, 263, 12488, 263, - 12490, 263, 12491, 263, 12492, 263, 12493, 263, 12494, 263, 12495, 263, - 12498, 263, 12501, 263, 12504, 263, 12507, 263, 12510, 263, 12511, 263, - 12512, 263, 12513, 263, 12514, 263, 12516, 263, 12518, 263, 12520, 263, - 12521, 263, 12522, 263, 12523, 263, 12524, 263, 12525, 263, 12527, 263, - 12528, 263, 12529, 263, 12530, 1034, 12450, 12497, 12540, 12488, 1034, - 12450, 12523, 12501, 12449, 1034, 12450, 12531, 12506, 12450, 778, 12450, - 12540, 12523, 1034, 12452, 12491, 12531, 12464, 778, 12452, 12531, 12481, - 778, 12454, 12457, 12531, 1290, 12456, 12473, 12463, 12540, 12489, 1034, - 12456, 12540, 12459, 12540, 778, 12458, 12531, 12473, 778, 12458, 12540, - 12512, 778, 12459, 12452, 12522, 1034, 12459, 12521, 12483, 12488, 1034, - 12459, 12525, 12522, 12540, 778, 12460, 12525, 12531, 778, 12460, 12531, - 12510, 522, 12462, 12460, 778, 12462, 12491, 12540, 1034, 12461, 12517, - 12522, 12540, 1034, 12462, 12523, 12480, 12540, 522, 12461, 12525, 1290, - 12461, 12525, 12464, 12521, 12512, 1546, 12461, 12525, 12513, 12540, - 12488, 12523, 1290, 12461, 12525, 12527, 12483, 12488, 778, 12464, 12521, - 12512, 1290, 12464, 12521, 12512, 12488, 12531, 1290, 12463, 12523, - 12476, 12452, 12525, 1034, 12463, 12525, 12540, 12493, 778, 12465, 12540, - 12473, 778, 12467, 12523, 12490, 778, 12467, 12540, 12509, 1034, 12469, - 12452, 12463, 12523, 1290, 12469, 12531, 12481, 12540, 12512, 1034, - 12471, 12522, 12531, 12464, 778, 12475, 12531, 12481, 778, 12475, 12531, - 12488, 778, 12480, 12540, 12473, 522, 12487, 12471, 522, 12489, 12523, - 522, 12488, 12531, 522, 12490, 12494, 778, 12494, 12483, 12488, 778, - 12495, 12452, 12484, 1290, 12497, 12540, 12475, 12531, 12488, 778, 12497, - 12540, 12484, 1034, 12496, 12540, 12524, 12523, 1290, 12500, 12450, - 12473, 12488, 12523, 778, 12500, 12463, 12523, 522, 12500, 12467, 522, - 12499, 12523, 1290, 12501, 12449, 12521, 12483, 12489, 1034, 12501, - 12451, 12540, 12488, 1290, 12502, 12483, 12471, 12455, 12523, 778, 12501, - 12521, 12531, 1290, 12504, 12463, 12479, 12540, 12523, 522, 12506, 12477, - 778, 12506, 12491, 12498, 778, 12504, 12523, 12484, 778, 12506, 12531, - 12473, 778, 12506, 12540, 12472, 778, 12505, 12540, 12479, 1034, 12509, - 12452, 12531, 12488, 778, 12508, 12523, 12488, 522, 12507, 12531, 778, - 12509, 12531, 12489, 778, 12507, 12540, 12523, 778, 12507, 12540, 12531, - 1034, 12510, 12452, 12463, 12525, 778, 12510, 12452, 12523, 778, 12510, - 12483, 12495, 778, 12510, 12523, 12463, 1290, 12510, 12531, 12471, 12519, - 12531, 1034, 12511, 12463, 12525, 12531, 522, 12511, 12522, 1290, 12511, - 12522, 12496, 12540, 12523, 522, 12513, 12460, 1034, 12513, 12460, 12488, - 12531, 1034, 12513, 12540, 12488, 12523, 778, 12516, 12540, 12489, 778, - 12516, 12540, 12523, 778, 12518, 12450, 12531, 1034, 12522, 12483, 12488, - 12523, 522, 12522, 12521, 778, 12523, 12500, 12540, 1034, 12523, 12540, - 12502, 12523, 522, 12524, 12512, 1290, 12524, 12531, 12488, 12466, 12531, - 778, 12527, 12483, 12488, 514, 48, 28857, 514, 49, 28857, 514, 50, 28857, - 514, 51, 28857, 514, 52, 28857, 514, 53, 28857, 514, 54, 28857, 514, 55, - 28857, 514, 56, 28857, 514, 57, 28857, 770, 49, 48, 28857, 770, 49, 49, - 28857, 770, 49, 50, 28857, 770, 49, 51, 28857, 770, 49, 52, 28857, 770, - 49, 53, 28857, 770, 49, 54, 28857, 770, 49, 55, 28857, 770, 49, 56, - 28857, 770, 49, 57, 28857, 770, 50, 48, 28857, 770, 50, 49, 28857, 770, - 50, 50, 28857, 770, 50, 51, 28857, 770, 50, 52, 28857, 778, 104, 80, 97, - 522, 100, 97, 522, 65, 85, 778, 98, 97, 114, 522, 111, 86, 522, 112, 99, - 522, 100, 109, 778, 100, 109, 178, 778, 100, 109, 179, 522, 73, 85, 522, - 24179, 25104, 522, 26157, 21644, 522, 22823, 27491, 522, 26126, 27835, - 1034, 26666, 24335, 20250, 31038, 522, 112, 65, 522, 110, 65, 522, 956, - 65, 522, 109, 65, 522, 107, 65, 522, 75, 66, 522, 77, 66, 522, 71, 66, - 778, 99, 97, 108, 1034, 107, 99, 97, 108, 522, 112, 70, 522, 110, 70, - 522, 956, 70, 522, 956, 103, 522, 109, 103, 522, 107, 103, 522, 72, 122, - 778, 107, 72, 122, 778, 77, 72, 122, 778, 71, 72, 122, 778, 84, 72, 122, - 522, 956, 8467, 522, 109, 8467, 522, 100, 8467, 522, 107, 8467, 522, 102, - 109, 522, 110, 109, 522, 956, 109, 522, 109, 109, 522, 99, 109, 522, 107, - 109, 778, 109, 109, 178, 778, 99, 109, 178, 522, 109, 178, 778, 107, 109, - 178, 778, 109, 109, 179, 778, 99, 109, 179, 522, 109, 179, 778, 107, 109, - 179, 778, 109, 8725, 115, 1034, 109, 8725, 115, 178, 522, 80, 97, 778, - 107, 80, 97, 778, 77, 80, 97, 778, 71, 80, 97, 778, 114, 97, 100, 1290, - 114, 97, 100, 8725, 115, 1546, 114, 97, 100, 8725, 115, 178, 522, 112, - 115, 522, 110, 115, 522, 956, 115, 522, 109, 115, 522, 112, 86, 522, 110, - 86, 522, 956, 86, 522, 109, 86, 522, 107, 86, 522, 77, 86, 522, 112, 87, - 522, 110, 87, 522, 956, 87, 522, 109, 87, 522, 107, 87, 522, 77, 87, 522, - 107, 937, 522, 77, 937, 1034, 97, 46, 109, 46, 522, 66, 113, 522, 99, 99, - 522, 99, 100, 1034, 67, 8725, 107, 103, 778, 67, 111, 46, 522, 100, 66, - 522, 71, 121, 522, 104, 97, 522, 72, 80, 522, 105, 110, 522, 75, 75, 522, - 75, 77, 522, 107, 116, 522, 108, 109, 522, 108, 110, 778, 108, 111, 103, - 522, 108, 120, 522, 109, 98, 778, 109, 105, 108, 778, 109, 111, 108, 522, - 80, 72, 1034, 112, 46, 109, 46, 778, 80, 80, 77, 522, 80, 82, 522, 115, - 114, 522, 83, 118, 522, 87, 98, 778, 86, 8725, 109, 778, 65, 8725, 109, - 514, 49, 26085, 514, 50, 26085, 514, 51, 26085, 514, 52, 26085, 514, 53, - 26085, 514, 54, 26085, 514, 55, 26085, 514, 56, 26085, 514, 57, 26085, - 770, 49, 48, 26085, 770, 49, 49, 26085, 770, 49, 50, 26085, 770, 49, 51, - 26085, 770, 49, 52, 26085, 770, 49, 53, 26085, 770, 49, 54, 26085, 770, - 49, 55, 26085, 770, 49, 56, 26085, 770, 49, 57, 26085, 770, 50, 48, - 26085, 770, 50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770, - 50, 52, 26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55, - 26085, 770, 50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770, - 51, 49, 26085, 778, 103, 97, 108, 256, 35912, 256, 26356, 256, 36554, + 512, 4133, 4142, 259, 4316, 512, 6917, 6965, 512, 6919, 6965, 512, 6921, + 6965, 512, 6923, 6965, 512, 6925, 6965, 512, 6929, 6965, 512, 6970, 6965, + 512, 6972, 6965, 512, 6974, 6965, 512, 6975, 6965, 512, 6978, 6965, 259, + 65, 259, 198, 259, 66, 259, 68, 259, 69, 259, 398, 259, 71, 259, 72, 259, + 73, 259, 74, 259, 75, 259, 76, 259, 77, 259, 78, 259, 79, 259, 546, 259, + 80, 259, 82, 259, 84, 259, 85, 259, 87, 259, 97, 259, 592, 259, 593, 259, + 7426, 259, 98, 259, 100, 259, 101, 259, 601, 259, 603, 259, 604, 259, + 103, 259, 107, 259, 109, 259, 331, 259, 111, 259, 596, 259, 7446, 259, + 7447, 259, 112, 259, 116, 259, 117, 259, 7453, 259, 623, 259, 118, 259, + 7461, 259, 946, 259, 947, 259, 948, 259, 966, 259, 967, 261, 105, 261, + 114, 261, 117, 261, 118, 261, 946, 261, 947, 261, 961, 261, 966, 261, + 967, 259, 1085, 259, 594, 259, 99, 259, 597, 259, 240, 259, 604, 259, + 102, 259, 607, 259, 609, 259, 613, 259, 616, 259, 617, 259, 618, 259, + 7547, 259, 669, 259, 621, 259, 7557, 259, 671, 259, 625, 259, 624, 259, + 626, 259, 627, 259, 628, 259, 629, 259, 632, 259, 642, 259, 643, 259, + 427, 259, 649, 259, 650, 259, 7452, 259, 651, 259, 652, 259, 122, 259, + 656, 259, 657, 259, 658, 259, 952, 512, 65, 805, 512, 97, 805, 512, 66, + 775, 512, 98, 775, 512, 66, 803, 512, 98, 803, 512, 66, 817, 512, 98, + 817, 512, 199, 769, 512, 231, 769, 512, 68, 775, 512, 100, 775, 512, 68, + 803, 512, 100, 803, 512, 68, 817, 512, 100, 817, 512, 68, 807, 512, 100, + 807, 512, 68, 813, 512, 100, 813, 512, 274, 768, 512, 275, 768, 512, 274, + 769, 512, 275, 769, 512, 69, 813, 512, 101, 813, 512, 69, 816, 512, 101, + 816, 512, 552, 774, 512, 553, 774, 512, 70, 775, 512, 102, 775, 512, 71, + 772, 512, 103, 772, 512, 72, 775, 512, 104, 775, 512, 72, 803, 512, 104, + 803, 512, 72, 776, 512, 104, 776, 512, 72, 807, 512, 104, 807, 512, 72, + 814, 512, 104, 814, 512, 73, 816, 512, 105, 816, 512, 207, 769, 512, 239, + 769, 512, 75, 769, 512, 107, 769, 512, 75, 803, 512, 107, 803, 512, 75, + 817, 512, 107, 817, 512, 76, 803, 512, 108, 803, 512, 7734, 772, 512, + 7735, 772, 512, 76, 817, 512, 108, 817, 512, 76, 813, 512, 108, 813, 512, + 77, 769, 512, 109, 769, 512, 77, 775, 512, 109, 775, 512, 77, 803, 512, + 109, 803, 512, 78, 775, 512, 110, 775, 512, 78, 803, 512, 110, 803, 512, + 78, 817, 512, 110, 817, 512, 78, 813, 512, 110, 813, 512, 213, 769, 512, + 245, 769, 512, 213, 776, 512, 245, 776, 512, 332, 768, 512, 333, 768, + 512, 332, 769, 512, 333, 769, 512, 80, 769, 512, 112, 769, 512, 80, 775, + 512, 112, 775, 512, 82, 775, 512, 114, 775, 512, 82, 803, 512, 114, 803, + 512, 7770, 772, 512, 7771, 772, 512, 82, 817, 512, 114, 817, 512, 83, + 775, 512, 115, 775, 512, 83, 803, 512, 115, 803, 512, 346, 775, 512, 347, + 775, 512, 352, 775, 512, 353, 775, 512, 7778, 775, 512, 7779, 775, 512, + 84, 775, 512, 116, 775, 512, 84, 803, 512, 116, 803, 512, 84, 817, 512, + 116, 817, 512, 84, 813, 512, 116, 813, 512, 85, 804, 512, 117, 804, 512, + 85, 816, 512, 117, 816, 512, 85, 813, 512, 117, 813, 512, 360, 769, 512, + 361, 769, 512, 362, 776, 512, 363, 776, 512, 86, 771, 512, 118, 771, 512, + 86, 803, 512, 118, 803, 512, 87, 768, 512, 119, 768, 512, 87, 769, 512, + 119, 769, 512, 87, 776, 512, 119, 776, 512, 87, 775, 512, 119, 775, 512, + 87, 803, 512, 119, 803, 512, 88, 775, 512, 120, 775, 512, 88, 776, 512, + 120, 776, 512, 89, 775, 512, 121, 775, 512, 90, 770, 512, 122, 770, 512, + 90, 803, 512, 122, 803, 512, 90, 817, 512, 122, 817, 512, 104, 817, 512, + 116, 776, 512, 119, 778, 512, 121, 778, 514, 97, 702, 512, 383, 775, 512, + 65, 803, 512, 97, 803, 512, 65, 777, 512, 97, 777, 512, 194, 769, 512, + 226, 769, 512, 194, 768, 512, 226, 768, 512, 194, 777, 512, 226, 777, + 512, 194, 771, 512, 226, 771, 512, 7840, 770, 512, 7841, 770, 512, 258, + 769, 512, 259, 769, 512, 258, 768, 512, 259, 768, 512, 258, 777, 512, + 259, 777, 512, 258, 771, 512, 259, 771, 512, 7840, 774, 512, 7841, 774, + 512, 69, 803, 512, 101, 803, 512, 69, 777, 512, 101, 777, 512, 69, 771, + 512, 101, 771, 512, 202, 769, 512, 234, 769, 512, 202, 768, 512, 234, + 768, 512, 202, 777, 512, 234, 777, 512, 202, 771, 512, 234, 771, 512, + 7864, 770, 512, 7865, 770, 512, 73, 777, 512, 105, 777, 512, 73, 803, + 512, 105, 803, 512, 79, 803, 512, 111, 803, 512, 79, 777, 512, 111, 777, + 512, 212, 769, 512, 244, 769, 512, 212, 768, 512, 244, 768, 512, 212, + 777, 512, 244, 777, 512, 212, 771, 512, 244, 771, 512, 7884, 770, 512, + 7885, 770, 512, 416, 769, 512, 417, 769, 512, 416, 768, 512, 417, 768, + 512, 416, 777, 512, 417, 777, 512, 416, 771, 512, 417, 771, 512, 416, + 803, 512, 417, 803, 512, 85, 803, 512, 117, 803, 512, 85, 777, 512, 117, + 777, 512, 431, 769, 512, 432, 769, 512, 431, 768, 512, 432, 768, 512, + 431, 777, 512, 432, 777, 512, 431, 771, 512, 432, 771, 512, 431, 803, + 512, 432, 803, 512, 89, 768, 512, 121, 768, 512, 89, 803, 512, 121, 803, + 512, 89, 777, 512, 121, 777, 512, 89, 771, 512, 121, 771, 512, 945, 787, + 512, 945, 788, 512, 7936, 768, 512, 7937, 768, 512, 7936, 769, 512, 7937, + 769, 512, 7936, 834, 512, 7937, 834, 512, 913, 787, 512, 913, 788, 512, + 7944, 768, 512, 7945, 768, 512, 7944, 769, 512, 7945, 769, 512, 7944, + 834, 512, 7945, 834, 512, 949, 787, 512, 949, 788, 512, 7952, 768, 512, + 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, 917, 787, 512, 917, 788, + 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, 512, 7961, 769, 512, 951, + 787, 512, 951, 788, 512, 7968, 768, 512, 7969, 768, 512, 7968, 769, 512, + 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, 919, 787, 512, 919, 788, + 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, 512, 7977, 769, 512, + 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, 788, 512, 7984, 768, + 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, 7984, 834, 512, + 7985, 834, 512, 921, 787, 512, 921, 788, 512, 7992, 768, 512, 7993, 768, + 512, 7992, 769, 512, 7993, 769, 512, 7992, 834, 512, 7993, 834, 512, 959, + 787, 512, 959, 788, 512, 8000, 768, 512, 8001, 768, 512, 8000, 769, 512, + 8001, 769, 512, 927, 787, 512, 927, 788, 512, 8008, 768, 512, 8009, 768, + 512, 8008, 769, 512, 8009, 769, 512, 965, 787, 512, 965, 788, 512, 8016, + 768, 512, 8017, 768, 512, 8016, 769, 512, 8017, 769, 512, 8016, 834, 512, + 8017, 834, 512, 933, 788, 512, 8025, 768, 512, 8025, 769, 512, 8025, 834, + 512, 969, 787, 512, 969, 788, 512, 8032, 768, 512, 8033, 768, 512, 8032, + 769, 512, 8033, 769, 512, 8032, 834, 512, 8033, 834, 512, 937, 787, 512, + 937, 788, 512, 8040, 768, 512, 8041, 768, 512, 8040, 769, 512, 8041, 769, + 512, 8040, 834, 512, 8041, 834, 512, 945, 768, 256, 940, 512, 949, 768, + 256, 941, 512, 951, 768, 256, 942, 512, 953, 768, 256, 943, 512, 959, + 768, 256, 972, 512, 965, 768, 256, 973, 512, 969, 768, 256, 974, 512, + 7936, 837, 512, 7937, 837, 512, 7938, 837, 512, 7939, 837, 512, 7940, + 837, 512, 7941, 837, 512, 7942, 837, 512, 7943, 837, 512, 7944, 837, 512, + 7945, 837, 512, 7946, 837, 512, 7947, 837, 512, 7948, 837, 512, 7949, + 837, 512, 7950, 837, 512, 7951, 837, 512, 7968, 837, 512, 7969, 837, 512, + 7970, 837, 512, 7971, 837, 512, 7972, 837, 512, 7973, 837, 512, 7974, + 837, 512, 7975, 837, 512, 7976, 837, 512, 7977, 837, 512, 7978, 837, 512, + 7979, 837, 512, 7980, 837, 512, 7981, 837, 512, 7982, 837, 512, 7983, + 837, 512, 8032, 837, 512, 8033, 837, 512, 8034, 837, 512, 8035, 837, 512, + 8036, 837, 512, 8037, 837, 512, 8038, 837, 512, 8039, 837, 512, 8040, + 837, 512, 8041, 837, 512, 8042, 837, 512, 8043, 837, 512, 8044, 837, 512, + 8045, 837, 512, 8046, 837, 512, 8047, 837, 512, 945, 774, 512, 945, 772, + 512, 8048, 837, 512, 945, 837, 512, 940, 837, 512, 945, 834, 512, 8118, + 837, 512, 913, 774, 512, 913, 772, 512, 913, 768, 256, 902, 512, 913, + 837, 514, 32, 787, 256, 953, 514, 32, 787, 514, 32, 834, 512, 168, 834, + 512, 8052, 837, 512, 951, 837, 512, 942, 837, 512, 951, 834, 512, 8134, + 837, 512, 917, 768, 256, 904, 512, 919, 768, 256, 905, 512, 919, 837, + 512, 8127, 768, 512, 8127, 769, 512, 8127, 834, 512, 953, 774, 512, 953, + 772, 512, 970, 768, 256, 912, 512, 953, 834, 512, 970, 834, 512, 921, + 774, 512, 921, 772, 512, 921, 768, 256, 906, 512, 8190, 768, 512, 8190, + 769, 512, 8190, 834, 512, 965, 774, 512, 965, 772, 512, 971, 768, 256, + 944, 512, 961, 787, 512, 961, 788, 512, 965, 834, 512, 971, 834, 512, + 933, 774, 512, 933, 772, 512, 933, 768, 256, 910, 512, 929, 788, 512, + 168, 768, 256, 901, 256, 96, 512, 8060, 837, 512, 969, 837, 512, 974, + 837, 512, 969, 834, 512, 8182, 837, 512, 927, 768, 256, 908, 512, 937, + 768, 256, 911, 512, 937, 837, 256, 180, 514, 32, 788, 256, 8194, 256, + 8195, 258, 32, 258, 32, 258, 32, 258, 32, 258, 32, 257, 32, 258, 32, 258, + 32, 258, 32, 257, 8208, 514, 32, 819, 258, 46, 514, 46, 46, 770, 46, 46, + 46, 257, 32, 514, 8242, 8242, 770, 8242, 8242, 8242, 514, 8245, 8245, + 770, 8245, 8245, 8245, 514, 33, 33, 514, 32, 773, 514, 63, 63, 514, 63, + 33, 514, 33, 63, 1026, 8242, 8242, 8242, 8242, 258, 32, 259, 48, 259, + 105, 259, 52, 259, 53, 259, 54, 259, 55, 259, 56, 259, 57, 259, 43, 259, + 8722, 259, 61, 259, 40, 259, 41, 259, 110, 261, 48, 261, 49, 261, 50, + 261, 51, 261, 52, 261, 53, 261, 54, 261, 55, 261, 56, 261, 57, 261, 43, + 261, 8722, 261, 61, 261, 40, 261, 41, 261, 97, 261, 101, 261, 111, 261, + 120, 261, 601, 514, 82, 115, 770, 97, 47, 99, 770, 97, 47, 115, 262, 67, + 514, 176, 67, 770, 99, 47, 111, 770, 99, 47, 117, 258, 400, 514, 176, 70, + 262, 103, 262, 72, 262, 72, 262, 72, 262, 104, 262, 295, 262, 73, 262, + 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, 262, 80, 262, 81, 262, 82, + 262, 82, 262, 82, 515, 83, 77, 770, 84, 69, 76, 515, 84, 77, 262, 90, + 256, 937, 262, 90, 256, 75, 256, 197, 262, 66, 262, 67, 262, 101, 262, + 69, 262, 70, 262, 77, 262, 111, 258, 1488, 258, 1489, 258, 1490, 258, + 1491, 262, 105, 770, 70, 65, 88, 262, 960, 262, 947, 262, 915, 262, 928, + 262, 8721, 262, 68, 262, 100, 262, 101, 262, 105, 262, 106, 772, 49, + 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, 772, 50, 8260, 53, 772, + 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, 54, 772, 53, 8260, 54, + 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, 8260, 56, 772, 55, 8260, + 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, 73, 73, 73, 514, 73, 86, + 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, 73, 73, 73, 514, 73, 88, + 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, 258, 67, 258, 68, 258, + 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, 514, 105, 118, 258, 118, + 514, 118, 105, 770, 118, 105, 105, 1026, 118, 105, 105, 105, 514, 105, + 120, 258, 120, 514, 120, 105, 770, 120, 105, 105, 258, 108, 258, 99, 258, + 100, 258, 109, 512, 8592, 824, 512, 8594, 824, 512, 8596, 824, 512, 8656, + 824, 512, 8660, 824, 512, 8658, 824, 512, 8707, 824, 512, 8712, 824, 512, + 8715, 824, 512, 8739, 824, 512, 8741, 824, 514, 8747, 8747, 770, 8747, + 8747, 8747, 514, 8750, 8750, 770, 8750, 8750, 8750, 512, 8764, 824, 512, + 8771, 824, 512, 8773, 824, 512, 8776, 824, 512, 61, 824, 512, 8801, 824, + 512, 8781, 824, 512, 60, 824, 512, 62, 824, 512, 8804, 824, 512, 8805, + 824, 512, 8818, 824, 512, 8819, 824, 512, 8822, 824, 512, 8823, 824, 512, + 8826, 824, 512, 8827, 824, 512, 8834, 824, 512, 8835, 824, 512, 8838, + 824, 512, 8839, 824, 512, 8866, 824, 512, 8872, 824, 512, 8873, 824, 512, + 8875, 824, 512, 8828, 824, 512, 8829, 824, 512, 8849, 824, 512, 8850, + 824, 512, 8882, 824, 512, 8883, 824, 512, 8884, 824, 512, 8885, 824, 256, + 12296, 256, 12297, 263, 49, 263, 50, 263, 51, 263, 52, 263, 53, 263, 54, + 263, 55, 263, 56, 263, 57, 519, 49, 48, 519, 49, 49, 519, 49, 50, 519, + 49, 51, 519, 49, 52, 519, 49, 53, 519, 49, 54, 519, 49, 55, 519, 49, 56, + 519, 49, 57, 519, 50, 48, 770, 40, 49, 41, 770, 40, 50, 41, 770, 40, 51, + 41, 770, 40, 52, 41, 770, 40, 53, 41, 770, 40, 54, 41, 770, 40, 55, 41, + 770, 40, 56, 41, 770, 40, 57, 41, 1026, 40, 49, 48, 41, 1026, 40, 49, 49, + 41, 1026, 40, 49, 50, 41, 1026, 40, 49, 51, 41, 1026, 40, 49, 52, 41, + 1026, 40, 49, 53, 41, 1026, 40, 49, 54, 41, 1026, 40, 49, 55, 41, 1026, + 40, 49, 56, 41, 1026, 40, 49, 57, 41, 1026, 40, 50, 48, 41, 514, 49, 46, + 514, 50, 46, 514, 51, 46, 514, 52, 46, 514, 53, 46, 514, 54, 46, 514, 55, + 46, 514, 56, 46, 514, 57, 46, 770, 49, 48, 46, 770, 49, 49, 46, 770, 49, + 50, 46, 770, 49, 51, 46, 770, 49, 52, 46, 770, 49, 53, 46, 770, 49, 54, + 46, 770, 49, 55, 46, 770, 49, 56, 46, 770, 49, 57, 46, 770, 50, 48, 46, + 770, 40, 97, 41, 770, 40, 98, 41, 770, 40, 99, 41, 770, 40, 100, 41, 770, + 40, 101, 41, 770, 40, 102, 41, 770, 40, 103, 41, 770, 40, 104, 41, 770, + 40, 105, 41, 770, 40, 106, 41, 770, 40, 107, 41, 770, 40, 108, 41, 770, + 40, 109, 41, 770, 40, 110, 41, 770, 40, 111, 41, 770, 40, 112, 41, 770, + 40, 113, 41, 770, 40, 114, 41, 770, 40, 115, 41, 770, 40, 116, 41, 770, + 40, 117, 41, 770, 40, 118, 41, 770, 40, 119, 41, 770, 40, 120, 41, 770, + 40, 121, 41, 770, 40, 122, 41, 263, 65, 263, 66, 263, 67, 263, 68, 263, + 69, 263, 70, 263, 71, 263, 72, 263, 73, 263, 74, 263, 75, 263, 76, 263, + 77, 263, 78, 263, 79, 263, 80, 263, 81, 263, 82, 263, 83, 263, 84, 263, + 85, 263, 86, 263, 87, 263, 88, 263, 89, 263, 90, 263, 97, 263, 98, 263, + 99, 263, 100, 263, 101, 263, 102, 263, 103, 263, 104, 263, 105, 263, 106, + 263, 107, 263, 108, 263, 109, 263, 110, 263, 111, 263, 112, 263, 113, + 263, 114, 263, 115, 263, 116, 263, 117, 263, 118, 263, 119, 263, 120, + 263, 121, 263, 122, 263, 48, 1026, 8747, 8747, 8747, 8747, 770, 58, 58, + 61, 514, 61, 61, 770, 61, 61, 61, 512, 10973, 824, 261, 106, 259, 86, + 259, 11617, 258, 27597, 258, 40863, 258, 19968, 258, 20008, 258, 20022, + 258, 20031, 258, 20057, 258, 20101, 258, 20108, 258, 20128, 258, 20154, + 258, 20799, 258, 20837, 258, 20843, 258, 20866, 258, 20886, 258, 20907, + 258, 20960, 258, 20981, 258, 20992, 258, 21147, 258, 21241, 258, 21269, + 258, 21274, 258, 21304, 258, 21313, 258, 21340, 258, 21353, 258, 21378, + 258, 21430, 258, 21448, 258, 21475, 258, 22231, 258, 22303, 258, 22763, + 258, 22786, 258, 22794, 258, 22805, 258, 22823, 258, 22899, 258, 23376, + 258, 23424, 258, 23544, 258, 23567, 258, 23586, 258, 23608, 258, 23662, + 258, 23665, 258, 24027, 258, 24037, 258, 24049, 258, 24062, 258, 24178, + 258, 24186, 258, 24191, 258, 24308, 258, 24318, 258, 24331, 258, 24339, + 258, 24400, 258, 24417, 258, 24435, 258, 24515, 258, 25096, 258, 25142, + 258, 25163, 258, 25903, 258, 25908, 258, 25991, 258, 26007, 258, 26020, + 258, 26041, 258, 26080, 258, 26085, 258, 26352, 258, 26376, 258, 26408, + 258, 27424, 258, 27490, 258, 27513, 258, 27571, 258, 27595, 258, 27604, + 258, 27611, 258, 27663, 258, 27668, 258, 27700, 258, 28779, 258, 29226, + 258, 29238, 258, 29243, 258, 29247, 258, 29255, 258, 29273, 258, 29275, + 258, 29356, 258, 29572, 258, 29577, 258, 29916, 258, 29926, 258, 29976, + 258, 29983, 258, 29992, 258, 30000, 258, 30091, 258, 30098, 258, 30326, + 258, 30333, 258, 30382, 258, 30399, 258, 30446, 258, 30683, 258, 30690, + 258, 30707, 258, 31034, 258, 31160, 258, 31166, 258, 31348, 258, 31435, + 258, 31481, 258, 31859, 258, 31992, 258, 32566, 258, 32593, 258, 32650, + 258, 32701, 258, 32769, 258, 32780, 258, 32786, 258, 32819, 258, 32895, + 258, 32905, 258, 33251, 258, 33258, 258, 33267, 258, 33276, 258, 33292, + 258, 33307, 258, 33311, 258, 33390, 258, 33394, 258, 33400, 258, 34381, + 258, 34411, 258, 34880, 258, 34892, 258, 34915, 258, 35198, 258, 35211, + 258, 35282, 258, 35328, 258, 35895, 258, 35910, 258, 35925, 258, 35960, + 258, 35997, 258, 36196, 258, 36208, 258, 36275, 258, 36523, 258, 36554, + 258, 36763, 258, 36784, 258, 36789, 258, 37009, 258, 37193, 258, 37318, + 258, 37324, 258, 37329, 258, 38263, 258, 38272, 258, 38428, 258, 38582, + 258, 38585, 258, 38632, 258, 38737, 258, 38750, 258, 38754, 258, 38761, + 258, 38859, 258, 38893, 258, 38899, 258, 38913, 258, 39080, 258, 39131, + 258, 39135, 258, 39318, 258, 39321, 258, 39340, 258, 39592, 258, 39640, + 258, 39647, 258, 39717, 258, 39727, 258, 39730, 258, 39740, 258, 39770, + 258, 40165, 258, 40565, 258, 40575, 258, 40613, 258, 40635, 258, 40643, + 258, 40653, 258, 40657, 258, 40697, 258, 40701, 258, 40718, 258, 40723, + 258, 40736, 258, 40763, 258, 40778, 258, 40786, 258, 40845, 258, 40860, + 258, 40864, 264, 32, 258, 12306, 258, 21313, 258, 21316, 258, 21317, 512, + 12363, 12441, 512, 12365, 12441, 512, 12367, 12441, 512, 12369, 12441, + 512, 12371, 12441, 512, 12373, 12441, 512, 12375, 12441, 512, 12377, + 12441, 512, 12379, 12441, 512, 12381, 12441, 512, 12383, 12441, 512, + 12385, 12441, 512, 12388, 12441, 512, 12390, 12441, 512, 12392, 12441, + 512, 12399, 12441, 512, 12399, 12442, 512, 12402, 12441, 512, 12402, + 12442, 512, 12405, 12441, 512, 12405, 12442, 512, 12408, 12441, 512, + 12408, 12442, 512, 12411, 12441, 512, 12411, 12442, 512, 12358, 12441, + 514, 32, 12441, 514, 32, 12442, 512, 12445, 12441, 521, 12424, 12426, + 512, 12459, 12441, 512, 12461, 12441, 512, 12463, 12441, 512, 12465, + 12441, 512, 12467, 12441, 512, 12469, 12441, 512, 12471, 12441, 512, + 12473, 12441, 512, 12475, 12441, 512, 12477, 12441, 512, 12479, 12441, + 512, 12481, 12441, 512, 12484, 12441, 512, 12486, 12441, 512, 12488, + 12441, 512, 12495, 12441, 512, 12495, 12442, 512, 12498, 12441, 512, + 12498, 12442, 512, 12501, 12441, 512, 12501, 12442, 512, 12504, 12441, + 512, 12504, 12442, 512, 12507, 12441, 512, 12507, 12442, 512, 12454, + 12441, 512, 12527, 12441, 512, 12528, 12441, 512, 12529, 12441, 512, + 12530, 12441, 512, 12541, 12441, 521, 12467, 12488, 258, 4352, 258, 4353, + 258, 4522, 258, 4354, 258, 4524, 258, 4525, 258, 4355, 258, 4356, 258, + 4357, 258, 4528, 258, 4529, 258, 4530, 258, 4531, 258, 4532, 258, 4533, + 258, 4378, 258, 4358, 258, 4359, 258, 4360, 258, 4385, 258, 4361, 258, + 4362, 258, 4363, 258, 4364, 258, 4365, 258, 4366, 258, 4367, 258, 4368, + 258, 4369, 258, 4370, 258, 4449, 258, 4450, 258, 4451, 258, 4452, 258, + 4453, 258, 4454, 258, 4455, 258, 4456, 258, 4457, 258, 4458, 258, 4459, + 258, 4460, 258, 4461, 258, 4462, 258, 4463, 258, 4464, 258, 4465, 258, + 4466, 258, 4467, 258, 4468, 258, 4469, 258, 4448, 258, 4372, 258, 4373, + 258, 4551, 258, 4552, 258, 4556, 258, 4558, 258, 4563, 258, 4567, 258, + 4569, 258, 4380, 258, 4573, 258, 4575, 258, 4381, 258, 4382, 258, 4384, + 258, 4386, 258, 4387, 258, 4391, 258, 4393, 258, 4395, 258, 4396, 258, + 4397, 258, 4398, 258, 4399, 258, 4402, 258, 4406, 258, 4416, 258, 4423, + 258, 4428, 258, 4593, 258, 4594, 258, 4439, 258, 4440, 258, 4441, 258, + 4484, 258, 4485, 258, 4488, 258, 4497, 258, 4498, 258, 4500, 258, 4510, + 258, 4513, 259, 19968, 259, 20108, 259, 19977, 259, 22235, 259, 19978, + 259, 20013, 259, 19979, 259, 30002, 259, 20057, 259, 19993, 259, 19969, + 259, 22825, 259, 22320, 259, 20154, 770, 40, 4352, 41, 770, 40, 4354, 41, + 770, 40, 4355, 41, 770, 40, 4357, 41, 770, 40, 4358, 41, 770, 40, 4359, + 41, 770, 40, 4361, 41, 770, 40, 4363, 41, 770, 40, 4364, 41, 770, 40, + 4366, 41, 770, 40, 4367, 41, 770, 40, 4368, 41, 770, 40, 4369, 41, 770, + 40, 4370, 41, 1026, 40, 4352, 4449, 41, 1026, 40, 4354, 4449, 41, 1026, + 40, 4355, 4449, 41, 1026, 40, 4357, 4449, 41, 1026, 40, 4358, 4449, 41, + 1026, 40, 4359, 4449, 41, 1026, 40, 4361, 4449, 41, 1026, 40, 4363, 4449, + 41, 1026, 40, 4364, 4449, 41, 1026, 40, 4366, 4449, 41, 1026, 40, 4367, + 4449, 41, 1026, 40, 4368, 4449, 41, 1026, 40, 4369, 4449, 41, 1026, 40, + 4370, 4449, 41, 1026, 40, 4364, 4462, 41, 1794, 40, 4363, 4457, 4364, + 4453, 4523, 41, 1538, 40, 4363, 4457, 4370, 4462, 41, 770, 40, 19968, 41, + 770, 40, 20108, 41, 770, 40, 19977, 41, 770, 40, 22235, 41, 770, 40, + 20116, 41, 770, 40, 20845, 41, 770, 40, 19971, 41, 770, 40, 20843, 41, + 770, 40, 20061, 41, 770, 40, 21313, 41, 770, 40, 26376, 41, 770, 40, + 28779, 41, 770, 40, 27700, 41, 770, 40, 26408, 41, 770, 40, 37329, 41, + 770, 40, 22303, 41, 770, 40, 26085, 41, 770, 40, 26666, 41, 770, 40, + 26377, 41, 770, 40, 31038, 41, 770, 40, 21517, 41, 770, 40, 29305, 41, + 770, 40, 36001, 41, 770, 40, 31069, 41, 770, 40, 21172, 41, 770, 40, + 20195, 41, 770, 40, 21628, 41, 770, 40, 23398, 41, 770, 40, 30435, 41, + 770, 40, 20225, 41, 770, 40, 36039, 41, 770, 40, 21332, 41, 770, 40, + 31085, 41, 770, 40, 20241, 41, 770, 40, 33258, 41, 770, 40, 33267, 41, + 778, 80, 84, 69, 519, 50, 49, 519, 50, 50, 519, 50, 51, 519, 50, 52, 519, + 50, 53, 519, 50, 54, 519, 50, 55, 519, 50, 56, 519, 50, 57, 519, 51, 48, + 519, 51, 49, 519, 51, 50, 519, 51, 51, 519, 51, 52, 519, 51, 53, 263, + 4352, 263, 4354, 263, 4355, 263, 4357, 263, 4358, 263, 4359, 263, 4361, + 263, 4363, 263, 4364, 263, 4366, 263, 4367, 263, 4368, 263, 4369, 263, + 4370, 519, 4352, 4449, 519, 4354, 4449, 519, 4355, 4449, 519, 4357, 4449, + 519, 4358, 4449, 519, 4359, 4449, 519, 4361, 4449, 519, 4363, 4449, 519, + 4364, 4449, 519, 4366, 4449, 519, 4367, 4449, 519, 4368, 4449, 519, 4369, + 4449, 519, 4370, 4449, 1287, 4366, 4449, 4535, 4352, 4457, 1031, 4364, + 4462, 4363, 4468, 519, 4363, 4462, 263, 19968, 263, 20108, 263, 19977, + 263, 22235, 263, 20116, 263, 20845, 263, 19971, 263, 20843, 263, 20061, + 263, 21313, 263, 26376, 263, 28779, 263, 27700, 263, 26408, 263, 37329, + 263, 22303, 263, 26085, 263, 26666, 263, 26377, 263, 31038, 263, 21517, + 263, 29305, 263, 36001, 263, 31069, 263, 21172, 263, 31192, 263, 30007, + 263, 22899, 263, 36969, 263, 20778, 263, 21360, 263, 27880, 263, 38917, + 263, 20241, 263, 20889, 263, 27491, 263, 19978, 263, 20013, 263, 19979, + 263, 24038, 263, 21491, 263, 21307, 263, 23447, 263, 23398, 263, 30435, + 263, 20225, 263, 36039, 263, 21332, 263, 22812, 519, 51, 54, 519, 51, 55, + 519, 51, 56, 519, 51, 57, 519, 52, 48, 519, 52, 49, 519, 52, 50, 519, 52, + 51, 519, 52, 52, 519, 52, 53, 519, 52, 54, 519, 52, 55, 519, 52, 56, 519, + 52, 57, 519, 53, 48, 514, 49, 26376, 514, 50, 26376, 514, 51, 26376, 514, + 52, 26376, 514, 53, 26376, 514, 54, 26376, 514, 55, 26376, 514, 56, + 26376, 514, 57, 26376, 770, 49, 48, 26376, 770, 49, 49, 26376, 770, 49, + 50, 26376, 522, 72, 103, 778, 101, 114, 103, 522, 101, 86, 778, 76, 84, + 68, 263, 12450, 263, 12452, 263, 12454, 263, 12456, 263, 12458, 263, + 12459, 263, 12461, 263, 12463, 263, 12465, 263, 12467, 263, 12469, 263, + 12471, 263, 12473, 263, 12475, 263, 12477, 263, 12479, 263, 12481, 263, + 12484, 263, 12486, 263, 12488, 263, 12490, 263, 12491, 263, 12492, 263, + 12493, 263, 12494, 263, 12495, 263, 12498, 263, 12501, 263, 12504, 263, + 12507, 263, 12510, 263, 12511, 263, 12512, 263, 12513, 263, 12514, 263, + 12516, 263, 12518, 263, 12520, 263, 12521, 263, 12522, 263, 12523, 263, + 12524, 263, 12525, 263, 12527, 263, 12528, 263, 12529, 263, 12530, 1034, + 12450, 12497, 12540, 12488, 1034, 12450, 12523, 12501, 12449, 1034, + 12450, 12531, 12506, 12450, 778, 12450, 12540, 12523, 1034, 12452, 12491, + 12531, 12464, 778, 12452, 12531, 12481, 778, 12454, 12457, 12531, 1290, + 12456, 12473, 12463, 12540, 12489, 1034, 12456, 12540, 12459, 12540, 778, + 12458, 12531, 12473, 778, 12458, 12540, 12512, 778, 12459, 12452, 12522, + 1034, 12459, 12521, 12483, 12488, 1034, 12459, 12525, 12522, 12540, 778, + 12460, 12525, 12531, 778, 12460, 12531, 12510, 522, 12462, 12460, 778, + 12462, 12491, 12540, 1034, 12461, 12517, 12522, 12540, 1034, 12462, + 12523, 12480, 12540, 522, 12461, 12525, 1290, 12461, 12525, 12464, 12521, + 12512, 1546, 12461, 12525, 12513, 12540, 12488, 12523, 1290, 12461, + 12525, 12527, 12483, 12488, 778, 12464, 12521, 12512, 1290, 12464, 12521, + 12512, 12488, 12531, 1290, 12463, 12523, 12476, 12452, 12525, 1034, + 12463, 12525, 12540, 12493, 778, 12465, 12540, 12473, 778, 12467, 12523, + 12490, 778, 12467, 12540, 12509, 1034, 12469, 12452, 12463, 12523, 1290, + 12469, 12531, 12481, 12540, 12512, 1034, 12471, 12522, 12531, 12464, 778, + 12475, 12531, 12481, 778, 12475, 12531, 12488, 778, 12480, 12540, 12473, + 522, 12487, 12471, 522, 12489, 12523, 522, 12488, 12531, 522, 12490, + 12494, 778, 12494, 12483, 12488, 778, 12495, 12452, 12484, 1290, 12497, + 12540, 12475, 12531, 12488, 778, 12497, 12540, 12484, 1034, 12496, 12540, + 12524, 12523, 1290, 12500, 12450, 12473, 12488, 12523, 778, 12500, 12463, + 12523, 522, 12500, 12467, 522, 12499, 12523, 1290, 12501, 12449, 12521, + 12483, 12489, 1034, 12501, 12451, 12540, 12488, 1290, 12502, 12483, + 12471, 12455, 12523, 778, 12501, 12521, 12531, 1290, 12504, 12463, 12479, + 12540, 12523, 522, 12506, 12477, 778, 12506, 12491, 12498, 778, 12504, + 12523, 12484, 778, 12506, 12531, 12473, 778, 12506, 12540, 12472, 778, + 12505, 12540, 12479, 1034, 12509, 12452, 12531, 12488, 778, 12508, 12523, + 12488, 522, 12507, 12531, 778, 12509, 12531, 12489, 778, 12507, 12540, + 12523, 778, 12507, 12540, 12531, 1034, 12510, 12452, 12463, 12525, 778, + 12510, 12452, 12523, 778, 12510, 12483, 12495, 778, 12510, 12523, 12463, + 1290, 12510, 12531, 12471, 12519, 12531, 1034, 12511, 12463, 12525, + 12531, 522, 12511, 12522, 1290, 12511, 12522, 12496, 12540, 12523, 522, + 12513, 12460, 1034, 12513, 12460, 12488, 12531, 1034, 12513, 12540, + 12488, 12523, 778, 12516, 12540, 12489, 778, 12516, 12540, 12523, 778, + 12518, 12450, 12531, 1034, 12522, 12483, 12488, 12523, 522, 12522, 12521, + 778, 12523, 12500, 12540, 1034, 12523, 12540, 12502, 12523, 522, 12524, + 12512, 1290, 12524, 12531, 12488, 12466, 12531, 778, 12527, 12483, 12488, + 514, 48, 28857, 514, 49, 28857, 514, 50, 28857, 514, 51, 28857, 514, 52, + 28857, 514, 53, 28857, 514, 54, 28857, 514, 55, 28857, 514, 56, 28857, + 514, 57, 28857, 770, 49, 48, 28857, 770, 49, 49, 28857, 770, 49, 50, + 28857, 770, 49, 51, 28857, 770, 49, 52, 28857, 770, 49, 53, 28857, 770, + 49, 54, 28857, 770, 49, 55, 28857, 770, 49, 56, 28857, 770, 49, 57, + 28857, 770, 50, 48, 28857, 770, 50, 49, 28857, 770, 50, 50, 28857, 770, + 50, 51, 28857, 770, 50, 52, 28857, 778, 104, 80, 97, 522, 100, 97, 522, + 65, 85, 778, 98, 97, 114, 522, 111, 86, 522, 112, 99, 522, 100, 109, 778, + 100, 109, 178, 778, 100, 109, 179, 522, 73, 85, 522, 24179, 25104, 522, + 26157, 21644, 522, 22823, 27491, 522, 26126, 27835, 1034, 26666, 24335, + 20250, 31038, 522, 112, 65, 522, 110, 65, 522, 956, 65, 522, 109, 65, + 522, 107, 65, 522, 75, 66, 522, 77, 66, 522, 71, 66, 778, 99, 97, 108, + 1034, 107, 99, 97, 108, 522, 112, 70, 522, 110, 70, 522, 956, 70, 522, + 956, 103, 522, 109, 103, 522, 107, 103, 522, 72, 122, 778, 107, 72, 122, + 778, 77, 72, 122, 778, 71, 72, 122, 778, 84, 72, 122, 522, 956, 8467, + 522, 109, 8467, 522, 100, 8467, 522, 107, 8467, 522, 102, 109, 522, 110, + 109, 522, 956, 109, 522, 109, 109, 522, 99, 109, 522, 107, 109, 778, 109, + 109, 178, 778, 99, 109, 178, 522, 109, 178, 778, 107, 109, 178, 778, 109, + 109, 179, 778, 99, 109, 179, 522, 109, 179, 778, 107, 109, 179, 778, 109, + 8725, 115, 1034, 109, 8725, 115, 178, 522, 80, 97, 778, 107, 80, 97, 778, + 77, 80, 97, 778, 71, 80, 97, 778, 114, 97, 100, 1290, 114, 97, 100, 8725, + 115, 1546, 114, 97, 100, 8725, 115, 178, 522, 112, 115, 522, 110, 115, + 522, 956, 115, 522, 109, 115, 522, 112, 86, 522, 110, 86, 522, 956, 86, + 522, 109, 86, 522, 107, 86, 522, 77, 86, 522, 112, 87, 522, 110, 87, 522, + 956, 87, 522, 109, 87, 522, 107, 87, 522, 77, 87, 522, 107, 937, 522, 77, + 937, 1034, 97, 46, 109, 46, 522, 66, 113, 522, 99, 99, 522, 99, 100, + 1034, 67, 8725, 107, 103, 778, 67, 111, 46, 522, 100, 66, 522, 71, 121, + 522, 104, 97, 522, 72, 80, 522, 105, 110, 522, 75, 75, 522, 75, 77, 522, + 107, 116, 522, 108, 109, 522, 108, 110, 778, 108, 111, 103, 522, 108, + 120, 522, 109, 98, 778, 109, 105, 108, 778, 109, 111, 108, 522, 80, 72, + 1034, 112, 46, 109, 46, 778, 80, 80, 77, 522, 80, 82, 522, 115, 114, 522, + 83, 118, 522, 87, 98, 778, 86, 8725, 109, 778, 65, 8725, 109, 514, 49, + 26085, 514, 50, 26085, 514, 51, 26085, 514, 52, 26085, 514, 53, 26085, + 514, 54, 26085, 514, 55, 26085, 514, 56, 26085, 514, 57, 26085, 770, 49, + 48, 26085, 770, 49, 49, 26085, 770, 49, 50, 26085, 770, 49, 51, 26085, + 770, 49, 52, 26085, 770, 49, 53, 26085, 770, 49, 54, 26085, 770, 49, 55, + 26085, 770, 49, 56, 26085, 770, 49, 57, 26085, 770, 50, 48, 26085, 770, + 50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770, 50, 52, + 26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55, 26085, 770, + 50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770, 51, 49, + 26085, 778, 103, 97, 108, 259, 42863, 256, 35912, 256, 26356, 256, 36554, 256, 36040, 256, 28369, 256, 20018, 256, 21477, 256, 40860, 256, 40860, 256, 22865, 256, 37329, 256, 21895, 256, 22856, 256, 25078, 256, 30313, 256, 32645, 256, 34367, 256, 34746, 256, 35064, 256, 37007, 256, 27138, @@ -2879,121 +3043,121 @@ 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, - 982, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, - 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, - 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, - 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, - 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, - 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, - 55, 262, 56, 262, 57, 256, 20029, 256, 20024, 256, 20033, 256, 131362, - 256, 20320, 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256, 20633, - 256, 20711, 256, 20687, 256, 13470, 256, 132666, 256, 20813, 256, 20820, - 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, 256, 20877, - 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, - 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, - 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220, - 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329, - 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375, - 256, 133676, 256, 28784, 256, 21450, 256, 21471, 256, 133987, 256, 21483, - 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 256, 21608, - 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, 256, 21892, - 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, 256, 22294, - 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, 256, 22766, - 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, - 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256, 22810, - 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256, 23067, - 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256, 23304, - 256, 23358, 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256, 23527, - 256, 23539, 256, 138008, 256, 23551, 256, 23558, 256, 24403, 256, 23586, - 256, 14209, 256, 23648, 256, 23662, 256, 23744, 256, 23693, 256, 138724, - 256, 23875, 256, 138726, 256, 23918, 256, 23915, 256, 23932, 256, 24033, - 256, 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, - 256, 14434, 256, 139651, 256, 14460, 256, 24240, 256, 24243, 256, 24246, - 256, 24266, 256, 172946, 256, 24318, 256, 140081, 256, 140081, 256, - 33281, 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, 156122, 256, - 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, - 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 141012, 256, - 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, 24954, 256, - 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, 25074, 256, - 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256, - 25424, 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475, 256, - 25572, 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894, 256, - 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25935, 256, - 25964, 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, 15129, 256, - 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, 26368, 256, - 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, 26401, 256, - 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, 26501, 256, - 26706, 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, 26900, 256, - 15261, 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059, 256, - 27355, 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438, 256, - 27506, 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, 138507, 256, - 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751, 256, - 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024, 256, - 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, 256, 15667, 256, - 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, 256, 147294, 256, - 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, 256, 15766, 256, - 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, 28997, 256, - 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, 256, 29264, 256, - 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256, 29562, - 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767, - 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988, - 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, 139679, 256, - 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, 256, 16392, - 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, 151859, 256, - 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603, 256, - 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, 30924, 256, - 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, 256, 31119, - 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 153980, - 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, 154539, 256, - 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, 17056, 256, - 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, 17153, 256, - 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, 156231, 256, - 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, 256, 32762, 256, - 32773, 256, 156890, 256, 156963, 256, 32864, 256, 157096, 256, 32880, - 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086, - 256, 23221, 256, 157607, 256, 157621, 256, 144275, 256, 144284, 256, - 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419, 256, - 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510, 256, - 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, 256, 33571, 256, - 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, 256, 33740, 256, - 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, 256, 34033, - 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, 256, 17757, - 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, 256, 34396, - 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, - 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, - 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256, 35031, - 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256, 162150, - 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256, 35925, - 256, 162984, 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256, 163631, - 256, 133124, 256, 36299, 256, 36284, 256, 36336, 256, 133342, 256, 36564, - 256, 36664, 256, 165330, 256, 165357, 256, 37012, 256, 37105, 256, 37137, - 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, - 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837, 256, 38327, - 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 168261, - 256, 168474, 256, 19054, 256, 19062, 256, 38880, 256, 168970, 256, 19122, - 256, 169110, 256, 38923, 256, 38923, 256, 38953, 256, 169398, 256, 39138, - 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256, 39422, 256, 19406, - 256, 170800, 256, 39698, 256, 40000, 256, 40189, 256, 19662, 256, 19693, - 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256, 172558, 256, - 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, - 40719, 256, 40726, 256, 40763, 256, 173568, + 982, 262, 988, 262, 989, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, + 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, + 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, + 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, + 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, + 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, + 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 256, 20029, 256, 20024, 256, + 20033, 256, 131362, 256, 20320, 256, 20398, 256, 20411, 256, 20482, 256, + 20602, 256, 20633, 256, 20711, 256, 20687, 256, 13470, 256, 132666, 256, + 20813, 256, 20820, 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, + 20839, 256, 20877, 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, + 20908, 256, 20917, 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, + 21051, 256, 21062, 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, + 21193, 256, 21220, 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, + 21321, 256, 21329, 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, + 21375, 256, 21375, 256, 133676, 256, 28784, 256, 21450, 256, 21471, 256, + 133987, 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, + 21576, 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, + 21859, 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, + 21954, 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, + 20999, 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, + 22578, 256, 22577, 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, + 22790, 256, 22810, 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, + 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, + 14076, 256, 23304, 256, 23358, 256, 23358, 256, 137672, 256, 23491, 256, + 23512, 256, 23527, 256, 23539, 256, 138008, 256, 23551, 256, 23558, 256, + 24403, 256, 23586, 256, 14209, 256, 23648, 256, 23662, 256, 23744, 256, + 23693, 256, 138724, 256, 23875, 256, 138726, 256, 23918, 256, 23915, 256, + 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061, 256, 24104, 256, + 24125, 256, 24169, 256, 14434, 256, 139651, 256, 14460, 256, 24240, 256, + 24243, 256, 24246, 256, 24266, 256, 172946, 256, 24318, 256, 140081, 256, + 140081, 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, + 156122, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, + 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, + 141012, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, + 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, + 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, + 25300, 256, 25424, 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, + 25475, 256, 25572, 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, + 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, + 25935, 256, 25964, 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, + 15129, 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, + 26368, 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, + 26401, 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, + 26501, 256, 26706, 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, + 26900, 256, 15261, 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, + 145059, 256, 27355, 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, + 15438, 256, 27506, 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, + 138507, 256, 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, + 256, 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, + 256, 28024, 256, 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, + 256, 15667, 256, 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, + 256, 147294, 256, 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, + 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, + 256, 28997, 256, 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, + 256, 29264, 256, 149000, 256, 29312, 256, 29333, 256, 149301, 256, + 149524, 256, 29562, 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, + 16056, 256, 29767, 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, + 16155, 256, 29988, 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, + 139679, 256, 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, + 256, 16392, 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, + 151859, 256, 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, + 30603, 256, 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, + 30924, 256, 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, + 256, 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, + 256, 153980, 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, + 154539, 256, 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, + 17056, 256, 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, + 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, + 156231, 256, 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, + 256, 32762, 256, 32773, 256, 156890, 256, 156963, 256, 32864, 256, + 157096, 256, 32880, 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, + 17419, 256, 33086, 256, 23221, 256, 157607, 256, 157621, 256, 144275, + 256, 144284, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, + 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, + 256, 33510, 256, 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, + 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, + 256, 33740, 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, + 17707, 256, 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, + 159532, 256, 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, + 256, 34384, 256, 34396, 256, 34407, 256, 34409, 256, 34473, 256, 34440, + 256, 34574, 256, 34530, 256, 34681, 256, 34600, 256, 34667, 256, 34694, + 256, 17879, 256, 34785, 256, 34817, 256, 17913, 256, 34912, 256, 34915, + 256, 161383, 256, 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, + 256, 161966, 256, 162150, 256, 18110, 256, 18119, 256, 35488, 256, 35565, + 256, 35722, 256, 35925, 256, 162984, 256, 36011, 256, 36033, 256, 36123, + 256, 36215, 256, 163631, 256, 133124, 256, 36299, 256, 36284, 256, 36336, + 256, 133342, 256, 36564, 256, 36664, 256, 165330, 256, 165357, 256, + 37012, 256, 37105, 256, 37137, 256, 165678, 256, 37147, 256, 37432, 256, + 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909, 256, 166906, 256, + 38283, 256, 18837, 256, 38327, 256, 167287, 256, 18918, 256, 38595, 256, + 23986, 256, 38691, 256, 168261, 256, 168474, 256, 19054, 256, 19062, 256, + 38880, 256, 168970, 256, 19122, 256, 169110, 256, 38923, 256, 38923, 256, + 38953, 256, 169398, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, + 39362, 256, 39422, 256, 19406, 256, 170800, 256, 39698, 256, 40000, 256, + 40189, 256, 19662, 256, 19693, 256, 40295, 256, 172238, 256, 19704, 256, + 172293, 256, 172558, 256, 172689, 256, 40635, 256, 19798, 256, 40697, + 256, 40702, 256, 40709, 256, 40719, 256, 40726, 256, 40763, 256, 173568, }; /* index tables for the decomposition data */ #define DECOMP_SHIFT 8 static unsigned char decomp_index1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 16, 17, 18, 19, 20, 21, 22, 23, 7, 7, 7, 7, 7, 24, - 7, 7, 25, 26, 27, 28, 29, 30, 31, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 16, 7, 17, 18, 19, 20, 21, 22, 23, 24, 7, 7, 7, 7, 7, 25, + 7, 26, 27, 28, 29, 30, 31, 32, 33, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 34, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 32, 33, 34, 35, 36, 37, - 38, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 35, 36, 37, 38, 39, 40, + 41, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -3001,8 +3165,8 @@ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 39, 7, 7, 40, 41, - 42, 43, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 42, 7, 7, 43, 44, + 45, 46, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -3014,7 +3178,7 @@ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 44, 45, 46, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 47, 48, 49, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -3352,979 +3516,1026 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 1412, 0, + 1415, 0, 1418, 0, 1421, 0, 0, 0, 1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1427, 0, 1430, 0, 0, 1433, 1436, 0, 1439, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1409, 1411, 1413, 0, 1415, 1417, 1419, 1421, 1423, - 1425, 1427, 1429, 1431, 1433, 1435, 0, 1437, 1439, 1441, 1443, 1445, - 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, - 1471, 0, 1473, 1475, 1477, 1479, 1481, 1483, 1485, 1487, 1489, 1491, - 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511, 1513, 1515, - 1517, 1519, 1521, 1523, 1525, 1527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1531, 1533, 1535, 1537, 1539, - 1541, 1543, 1545, 1547, 1549, 1551, 1553, 1555, 1557, 1559, 1561, 1563, - 1565, 1567, 1569, 1571, 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1587, - 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1605, 1608, 1611, 1614, 1617, 1620, 1623, 1626, - 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, - 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, - 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, - 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, - 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1803, 1806, - 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, 1836, 1839, 1842, - 1845, 1848, 1851, 1854, 1857, 1860, 1863, 1866, 1869, 1872, 1875, 1878, - 1881, 1884, 1887, 1890, 1893, 1896, 1899, 1902, 1905, 1908, 1911, 1914, - 1917, 1920, 1923, 1926, 1929, 1932, 1935, 1938, 1941, 1944, 1947, 1950, - 1953, 1956, 1959, 1962, 1965, 1968, 1971, 1974, 1977, 1980, 1983, 1986, - 1989, 1992, 1995, 1998, 2001, 2004, 2007, 2010, 2013, 2016, 2019, 2022, - 2025, 2028, 2031, 2034, 2037, 2040, 2043, 2046, 2049, 2052, 2055, 2058, - 2061, 2064, 2067, 2070, 0, 0, 0, 0, 2073, 2076, 2079, 2082, 2085, 2088, - 2091, 2094, 2097, 2100, 2103, 2106, 2109, 2112, 2115, 2118, 2121, 2124, - 2127, 2130, 2133, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2160, - 2163, 2166, 2169, 2172, 2175, 2178, 2181, 2184, 2187, 2190, 2193, 2196, - 2199, 2202, 2205, 2208, 2211, 2214, 2217, 2220, 2223, 2226, 2229, 2232, - 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259, 2262, 2265, 2268, - 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292, 2295, 2298, 2301, 2304, - 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328, 2331, 2334, 2337, 2340, - 0, 0, 0, 0, 0, 0, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367, - 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, 2394, 2397, 2400, 2403, - 2406, 0, 0, 2409, 2412, 2415, 2418, 2421, 2424, 0, 0, 2427, 2430, 2433, - 2436, 2439, 2442, 2445, 2448, 2451, 2454, 2457, 2460, 2463, 2466, 2469, - 2472, 2475, 2478, 2481, 2484, 2487, 2490, 2493, 2496, 2499, 2502, 2505, - 2508, 2511, 2514, 2517, 2520, 2523, 2526, 2529, 2532, 2535, 2538, 0, 0, - 2541, 2544, 2547, 2550, 2553, 2556, 0, 0, 2559, 2562, 2565, 2568, 2571, - 2574, 2577, 2580, 0, 2583, 0, 2586, 0, 2589, 0, 2592, 2595, 2598, 2601, - 2604, 2607, 2610, 2613, 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, - 2640, 2643, 2646, 2648, 2651, 2653, 2656, 2658, 2661, 2663, 2666, 2668, - 2671, 2673, 2676, 0, 0, 2678, 2681, 2684, 2687, 2690, 2693, 2696, 2699, - 2702, 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2726, 2729, 2732, 2735, - 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759, 2762, 2765, 2768, 2771, - 2774, 2777, 2780, 2783, 2786, 2789, 2792, 2795, 2798, 2801, 2804, 2807, - 2810, 2813, 2816, 2819, 2822, 2825, 2828, 2831, 2834, 0, 2837, 2840, - 2843, 2846, 2849, 2852, 2854, 2857, 2860, 2862, 2865, 2868, 2871, 2874, - 2877, 0, 2880, 2883, 2886, 2889, 2891, 2894, 2896, 2899, 2902, 2905, - 2908, 2911, 2914, 2917, 0, 0, 2919, 2922, 2925, 2928, 2931, 2934, 0, - 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2956, 2959, 2962, 2965, 2968, - 2971, 2974, 2977, 2979, 2982, 2985, 2987, 0, 0, 2989, 2992, 2995, 0, - 2998, 3001, 3004, 3007, 3009, 3012, 3014, 3017, 3019, 0, 3022, 3024, - 3026, 3028, 3030, 3032, 3034, 3036, 3038, 3040, 3042, 0, 0, 0, 0, 0, 0, - 3044, 0, 0, 0, 0, 0, 3046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3049, - 3051, 3054, 0, 0, 0, 0, 0, 0, 0, 0, 3058, 0, 0, 0, 3060, 3063, 0, 3067, - 3070, 0, 0, 0, 0, 3074, 0, 3077, 0, 0, 0, 0, 0, 0, 0, 0, 3080, 3083, - 3086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3089, 0, 0, 0, 0, 0, 0, 0, - 3094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3096, 3098, 0, 0, - 3100, 3102, 3104, 3106, 3108, 3110, 3112, 3114, 3116, 3118, 3120, 3122, - 3124, 3126, 3128, 3130, 3132, 3134, 3136, 3138, 3140, 3142, 3144, 3146, - 3148, 3150, 3152, 0, 3154, 3156, 3158, 3160, 3162, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3167, 3171, 3175, 3177, 0, 3180, 3184, 3188, 0, 3190, - 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3207, 3209, 3211, 0, 3213, - 3215, 0, 0, 3218, 3220, 3222, 3224, 3226, 0, 0, 3228, 3231, 3235, 0, - 3238, 0, 3240, 0, 3242, 0, 3244, 3246, 3248, 3250, 0, 3252, 3254, 3256, - 0, 3258, 3260, 3262, 3264, 3266, 3268, 3270, 0, 3272, 3276, 3278, 3280, - 3282, 3284, 0, 0, 0, 0, 3286, 3288, 3290, 3292, 3294, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3296, 3300, 3304, 3308, 3312, 3316, 3320, 3324, 3328, 3332, - 3336, 3340, 3344, 3347, 3349, 3352, 3356, 3359, 3361, 3364, 3368, 3373, - 3376, 3378, 3381, 3385, 3387, 3389, 3391, 3393, 3395, 3398, 3402, 3405, - 3407, 3410, 3414, 3419, 3422, 3424, 3427, 3431, 3433, 3435, 3437, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3439, 3442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3445, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3448, 3451, 3454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3457, 0, 0, 0, 0, 3460, - 0, 0, 3463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3466, 0, 3469, 0, 0, 0, 0, 0, 3472, 3475, 0, 3479, 3482, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3486, 0, 0, 3489, 0, 0, 3492, - 0, 3495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3498, 0, 3501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3504, 3507, 3510, 3513, - 3516, 0, 0, 3519, 3522, 0, 0, 3525, 3528, 0, 0, 0, 0, 0, 0, 3531, 3534, - 0, 0, 3537, 3540, 0, 0, 3543, 3546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3549, - 3552, 3555, 3558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3561, 3564, 3567, 3570, 0, 0, 0, 0, 0, 0, 3573, 3576, - 3579, 3582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3585, 3587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 1444, 1446, 0, 1448, 1450, 1452, + 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 0, 1470, 1472, 1474, + 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, + 1500, 1502, 1504, 0, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, + 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544, + 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1566, 1568, + 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588, 1590, 1592, + 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1616, + 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634, 1636, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 1641, 1644, 1647, 1650, 1653, + 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, + 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, + 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, + 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, + 1800, 1803, 1806, 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, + 1836, 1839, 1842, 1845, 1848, 1851, 1854, 1857, 1860, 1863, 1866, 1869, + 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1893, 1896, 1899, 1902, 1905, + 1908, 1911, 1914, 1917, 1920, 1923, 1926, 1929, 1932, 1935, 1938, 1941, + 1944, 1947, 1950, 1953, 1956, 1959, 1962, 1965, 1968, 1971, 1974, 1977, + 1980, 1983, 1986, 1989, 1992, 1995, 1998, 2001, 2004, 2007, 2010, 2013, + 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2043, 2046, 2049, + 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076, 2079, 2082, 2085, + 2088, 2091, 2094, 2097, 2100, 2103, 0, 0, 0, 0, 2106, 2109, 2112, 2115, + 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142, 2145, 2148, 2151, + 2154, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178, 2181, 2184, 2187, + 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, 2217, 2220, 2223, + 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259, + 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292, 2295, + 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328, 2331, + 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367, + 2370, 2373, 0, 0, 0, 0, 0, 0, 2376, 2379, 2382, 2385, 2388, 2391, 2394, + 2397, 2400, 2403, 2406, 2409, 2412, 2415, 2418, 2421, 2424, 2427, 2430, + 2433, 2436, 2439, 0, 0, 2442, 2445, 2448, 2451, 2454, 2457, 0, 0, 2460, + 2463, 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487, 2490, 2493, 2496, + 2499, 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523, 2526, 2529, 2532, + 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559, 2562, 2565, 2568, + 2571, 0, 0, 2574, 2577, 2580, 2583, 2586, 2589, 0, 0, 2592, 2595, 2598, + 2601, 2604, 2607, 2610, 2613, 0, 2616, 0, 2619, 0, 2622, 0, 2625, 2628, + 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664, + 2667, 2670, 2673, 2676, 2679, 2681, 2684, 2686, 2689, 2691, 2694, 2696, + 2699, 2701, 2704, 2706, 2709, 0, 0, 2711, 2714, 2717, 2720, 2723, 2726, + 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759, 2762, + 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, 2789, 2792, 2795, 2798, + 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, 2825, 2828, 2831, 2834, + 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, 2861, 2864, 2867, 0, + 2870, 2873, 2876, 2879, 2882, 2885, 2887, 2890, 2893, 2895, 2898, 2901, + 2904, 2907, 2910, 0, 2913, 2916, 2919, 2922, 2924, 2927, 2929, 2932, + 2935, 2938, 2941, 2944, 2947, 2950, 0, 0, 2952, 2955, 2958, 2961, 2964, + 2967, 0, 2969, 2972, 2975, 2978, 2981, 2984, 2987, 2989, 2992, 2995, + 2998, 3001, 3004, 3007, 3010, 3012, 3015, 3018, 3020, 0, 0, 3022, 3025, + 3028, 0, 3031, 3034, 3037, 3040, 3042, 3045, 3047, 3050, 3052, 0, 3055, + 3057, 3059, 3061, 3063, 3065, 3067, 3069, 3071, 3073, 3075, 0, 0, 0, 0, + 0, 0, 3077, 0, 0, 0, 0, 0, 3079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3082, 3084, 3087, 0, 0, 0, 0, 0, 0, 0, 0, 3091, 0, 0, 0, 3093, 3096, 0, + 3100, 3103, 0, 0, 0, 0, 3107, 0, 3110, 0, 0, 0, 0, 0, 0, 0, 0, 3113, + 3116, 3119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3122, 0, 0, 0, 0, 0, + 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3129, 3131, + 0, 0, 3133, 3135, 3137, 3139, 3141, 3143, 3145, 3147, 3149, 3151, 3153, + 3155, 3157, 3159, 3161, 3163, 3165, 3167, 3169, 3171, 3173, 3175, 3177, + 3179, 3181, 3183, 3185, 0, 3187, 3189, 3191, 3193, 3195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3197, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3200, 3204, 3208, 3210, 0, 3213, 3217, 3221, 0, + 3223, 3226, 3228, 3230, 3232, 3234, 3236, 3238, 3240, 3242, 3244, 0, + 3246, 3248, 0, 0, 3251, 3253, 3255, 3257, 3259, 0, 0, 3261, 3264, 3268, + 0, 3271, 0, 3273, 0, 3275, 0, 3277, 3279, 3281, 3283, 0, 3285, 3287, + 3289, 0, 3291, 3293, 3295, 3297, 3299, 3301, 3303, 0, 3305, 3309, 3311, + 3313, 3315, 3317, 0, 0, 0, 0, 3319, 3321, 3323, 3325, 3327, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3329, 3333, 3337, 3341, 3345, 3349, 3353, 3357, 3361, + 3365, 3369, 3373, 3377, 3380, 3382, 3385, 3389, 3392, 3394, 3397, 3401, + 3406, 3409, 3411, 3414, 3418, 3420, 3422, 3424, 3426, 3428, 3431, 3435, + 3438, 3440, 3443, 3447, 3452, 3455, 3457, 3460, 3464, 3466, 3468, 3470, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3472, 3475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3481, 3484, 3487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3490, 0, 0, 0, 0, + 3493, 0, 0, 3496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3499, 0, 3502, 0, 0, 0, 0, 0, 3505, 3508, 0, 3512, 3515, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3519, 0, 0, 3522, 0, 0, + 3525, 0, 3528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3531, 0, 3534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3537, 3540, 3543, + 3546, 3549, 0, 0, 3552, 3555, 0, 0, 3558, 3561, 0, 0, 0, 0, 0, 0, 3564, + 3567, 0, 0, 3570, 3573, 0, 0, 3576, 3579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3582, 3585, 3588, 3591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3594, 3597, 3600, 3603, 0, 0, 0, 0, 0, 0, 3606, + 3609, 3612, 3615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3618, 3620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3589, 3591, 3593, 3595, - 3597, 3599, 3601, 3603, 3605, 3607, 3610, 3613, 3616, 3619, 3622, 3625, - 3628, 3631, 3634, 3637, 3640, 3644, 3648, 3652, 3656, 3660, 3664, 3668, - 3672, 3676, 3681, 3686, 3691, 3696, 3701, 3706, 3711, 3716, 3721, 3726, - 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758, 3762, 3766, - 3770, 3774, 3778, 3782, 3786, 3790, 3794, 3798, 3802, 3806, 3810, 3814, - 3818, 3822, 3826, 3830, 3834, 3838, 3842, 3846, 3850, 3854, 3858, 3862, - 3866, 3870, 3874, 3878, 3882, 3886, 3890, 3894, 3898, 3902, 3906, 3908, - 3910, 3912, 3914, 3916, 3918, 3920, 3922, 3924, 3926, 3928, 3930, 3932, - 3934, 3936, 3938, 3940, 3942, 3944, 3946, 3948, 3950, 3952, 3954, 3956, - 3958, 3960, 3962, 3964, 3966, 3968, 3970, 3972, 3974, 3976, 3978, 3980, - 3982, 3984, 3986, 3988, 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, - 4006, 4008, 4010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4012, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4017, 4021, 4024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3622, 3624, 3626, + 3628, 3630, 3632, 3634, 3636, 3638, 3640, 3643, 3646, 3649, 3652, 3655, + 3658, 3661, 3664, 3667, 3670, 3673, 3677, 3681, 3685, 3689, 3693, 3697, + 3701, 3705, 3709, 3714, 3719, 3724, 3729, 3734, 3739, 3744, 3749, 3754, + 3759, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3795, + 3799, 3803, 3807, 3811, 3815, 3819, 3823, 3827, 3831, 3835, 3839, 3843, + 3847, 3851, 3855, 3859, 3863, 3867, 3871, 3875, 3879, 3883, 3887, 3891, + 3895, 3899, 3903, 3907, 3911, 3915, 3919, 3923, 3927, 3931, 3935, 3939, + 3941, 3943, 3945, 3947, 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, + 3965, 3967, 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, 3985, 3987, + 3989, 3991, 3993, 3995, 3997, 3999, 4001, 4003, 4005, 4007, 4009, 4011, + 4013, 4015, 4017, 4019, 4021, 4023, 4025, 4027, 4029, 4031, 4033, 4035, + 4037, 4039, 4041, 4043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4045, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4050, 4054, 4057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4061, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4064, 4066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4035, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4037, 4039, 4041, 4043, 4045, 4047, - 4049, 4051, 4053, 4055, 4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, - 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095, - 4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, 4115, 4117, 4119, - 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135, 4137, 4139, 4141, 4143, - 4145, 4147, 4149, 4151, 4153, 4155, 4157, 4159, 4161, 4163, 4165, 4167, - 4169, 4171, 4173, 4175, 4177, 4179, 4181, 4183, 4185, 4187, 4189, 4191, - 4193, 4195, 4197, 4199, 4201, 4203, 4205, 4207, 4209, 4211, 4213, 4215, - 4217, 4219, 4221, 4223, 4225, 4227, 4229, 4231, 4233, 4235, 4237, 4239, - 4241, 4243, 4245, 4247, 4249, 4251, 4253, 4255, 4257, 4259, 4261, 4263, - 4265, 4267, 4269, 4271, 4273, 4275, 4277, 4279, 4281, 4283, 4285, 4287, - 4289, 4291, 4293, 4295, 4297, 4299, 4301, 4303, 4305, 4307, 4309, 4311, - 4313, 4315, 4317, 4319, 4321, 4323, 4325, 4327, 4329, 4331, 4333, 4335, - 4337, 4339, 4341, 4343, 4345, 4347, 4349, 4351, 4353, 4355, 4357, 4359, - 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377, 4379, 4381, 4383, - 4385, 4387, 4389, 4391, 4393, 4395, 4397, 4399, 4401, 4403, 4405, 4407, - 4409, 4411, 4413, 4415, 4417, 4419, 4421, 4423, 4425, 4427, 4429, 4431, - 4433, 4435, 4437, 4439, 4441, 4443, 4445, 4447, 4449, 4451, 4453, 4455, - 4457, 4459, 4461, 4463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4467, 0, 4469, 4471, 4473, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4475, 0, 4478, 0, 4481, 0, 4484, 0, - 4487, 0, 4490, 0, 4493, 0, 4496, 0, 4499, 0, 4502, 0, 4505, 0, 4508, 0, - 0, 4511, 0, 4514, 0, 4517, 0, 0, 0, 0, 0, 0, 4520, 4523, 0, 4526, 4529, - 0, 4532, 4535, 0, 4538, 4541, 0, 4544, 4547, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4550, 0, 0, 0, 0, 0, 0, 4553, - 4556, 0, 4559, 4562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4565, 0, 4568, - 0, 4571, 0, 4574, 0, 4577, 0, 4580, 0, 4583, 0, 4586, 0, 4589, 0, 4592, - 0, 4595, 0, 4598, 0, 0, 4601, 0, 4604, 0, 4607, 0, 0, 0, 0, 0, 0, 4610, - 4613, 0, 4616, 4619, 0, 4622, 4625, 0, 4628, 4631, 0, 4634, 4637, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4640, 0, 0, - 4643, 4646, 4649, 4652, 0, 0, 0, 4655, 4658, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4661, 4663, 4665, 4667, - 4669, 4671, 4673, 4675, 4677, 4679, 4681, 4683, 4685, 4687, 4689, 4691, - 4693, 4695, 4697, 4699, 4701, 4703, 4705, 4707, 4709, 4711, 4713, 4715, - 4717, 4719, 4721, 4723, 4725, 4727, 4729, 4731, 4733, 4735, 4737, 4739, - 4741, 4743, 4745, 4747, 4749, 4751, 4753, 4755, 4757, 4759, 4761, 4763, - 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4779, 4781, 4783, 4785, 4787, - 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, 4805, 4807, 4809, 4811, - 4813, 4815, 4817, 4819, 4821, 4823, 4825, 4827, 4829, 4831, 4833, 4835, - 4837, 4839, 4841, 4843, 4845, 4847, 0, 0, 0, 4849, 4851, 4853, 4855, - 4857, 4859, 4861, 4863, 4865, 4867, 4869, 4871, 4873, 4875, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4877, 4881, - 4885, 4889, 4893, 4897, 4901, 4905, 4909, 4913, 4917, 4921, 4925, 4929, - 4933, 4938, 4943, 4948, 4953, 4958, 4963, 4968, 4973, 4978, 4983, 4988, - 4993, 4998, 5003, 5008, 5016, 0, 5023, 5027, 5031, 5035, 5039, 5043, - 5047, 5051, 5055, 5059, 5063, 5067, 5071, 5075, 5079, 5083, 5087, 5091, - 5095, 5099, 5103, 5107, 5111, 5115, 5119, 5123, 5127, 5131, 5135, 5139, - 5143, 5147, 5151, 5155, 5159, 5163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5167, 5171, 5174, 5177, 5180, 5183, 5186, 5189, 5192, 5195, 5198, 5201, - 5204, 5207, 5210, 5213, 5216, 5218, 5220, 5222, 5224, 5226, 5228, 5230, - 5232, 5234, 5236, 5238, 5240, 5242, 5244, 5247, 5250, 5253, 5256, 5259, - 5262, 5265, 5268, 5271, 5274, 5277, 5280, 5283, 5286, 5292, 5297, 0, - 5300, 5302, 5304, 5306, 5308, 5310, 5312, 5314, 5316, 5318, 5320, 5322, - 5324, 5326, 5328, 5330, 5332, 5334, 5336, 5338, 5340, 5342, 5344, 5346, - 5348, 5350, 5352, 5354, 5356, 5358, 5360, 5362, 5364, 5366, 5368, 5370, - 5372, 5374, 5376, 5378, 5380, 5382, 5384, 5386, 5388, 5390, 5392, 5394, - 5396, 5398, 5401, 5404, 5407, 5410, 5413, 5416, 5419, 5422, 5425, 5428, - 5431, 5434, 5437, 5440, 5443, 5446, 5449, 5452, 5455, 5458, 5461, 5464, - 5467, 5470, 5474, 5478, 5482, 5485, 5489, 5492, 5496, 5498, 5500, 5502, - 5504, 5506, 5508, 5510, 5512, 5514, 5516, 5518, 5520, 5522, 5524, 5526, - 5528, 5530, 5532, 5534, 5536, 5538, 5540, 5542, 5544, 5546, 5548, 5550, - 5552, 5554, 5556, 5558, 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, - 5576, 5578, 5580, 5582, 5584, 5586, 5588, 0, 5590, 5595, 5600, 5605, - 5609, 5614, 5618, 5622, 5628, 5633, 5637, 5641, 5645, 5650, 5655, 5659, - 5663, 5666, 5670, 5675, 5680, 5683, 5689, 5696, 5702, 5706, 5712, 5718, - 5723, 5727, 5731, 5735, 5740, 5746, 5751, 5755, 5759, 5763, 5766, 5769, - 5772, 5775, 5779, 5783, 5789, 5793, 5798, 5804, 5808, 5811, 5814, 5820, - 5825, 5831, 5835, 5841, 5844, 5848, 5852, 5856, 5860, 5864, 5869, 5873, - 5876, 5880, 5884, 5888, 5893, 5897, 5901, 5905, 5911, 5916, 5919, 5925, - 5928, 5933, 5938, 5942, 5946, 5950, 5955, 5958, 5962, 5967, 5970, 5976, - 5980, 5983, 5986, 5989, 5992, 5995, 5998, 6001, 6004, 6007, 6010, 6014, - 6018, 6022, 6026, 6030, 6034, 6038, 6042, 6046, 6050, 6054, 6058, 6062, - 6066, 6070, 6074, 6077, 6080, 6084, 6087, 6090, 6093, 6097, 6101, 6104, - 6107, 6110, 6113, 6116, 6121, 6124, 6127, 6130, 6133, 6136, 6139, 6142, - 6145, 6149, 6154, 6157, 6160, 6163, 6166, 6169, 6172, 6175, 6179, 6183, - 6187, 6191, 6194, 6197, 6200, 6203, 6206, 6209, 6212, 6215, 6218, 6221, - 6225, 6229, 6232, 6236, 6240, 6244, 6247, 6251, 6255, 6260, 6263, 6267, - 6271, 6275, 6279, 6285, 6292, 6295, 6298, 6301, 6304, 6307, 6310, 6313, - 6316, 6319, 6322, 6325, 6328, 6331, 6334, 6337, 6340, 6343, 6346, 6351, - 6354, 6357, 6360, 6365, 6369, 6372, 6375, 6378, 6381, 6384, 6387, 6390, - 6393, 6396, 6399, 6403, 6406, 6409, 6413, 6417, 6420, 6425, 6429, 6432, - 6435, 6438, 6441, 6445, 6449, 6452, 6455, 6458, 6461, 6464, 6467, 6470, - 6473, 6476, 6480, 6484, 6488, 6492, 6496, 6500, 6504, 6508, 6512, 6516, - 6520, 6524, 6528, 6532, 6536, 6540, 6544, 6548, 6552, 6556, 6560, 6564, - 6568, 6570, 6572, 6574, 6576, 6578, 6580, 6582, 6584, 6586, 6588, 6590, - 6592, 6594, 6596, 6598, 6600, 6602, 6604, 6606, 6608, 6610, 6612, 6614, - 6616, 6618, 6620, 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, 6638, - 6640, 6642, 6644, 6646, 6648, 6650, 6652, 6654, 6656, 6658, 6660, 6662, - 6664, 6666, 6668, 6670, 6672, 6674, 6676, 6678, 6680, 6682, 6684, 6686, - 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, 6704, 6706, 6708, 6710, - 6712, 6714, 6716, 6718, 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, - 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, 6752, 6754, 6756, 6758, - 6760, 6762, 6764, 6766, 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, - 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, 6800, 6802, 6804, 6806, - 6808, 6810, 6812, 6814, 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, - 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, 6848, 6850, 6852, 6854, - 6856, 6858, 6860, 6862, 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, - 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, 6896, 6898, 6900, 6902, - 6904, 6906, 6908, 6910, 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, - 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, 6944, 6946, 6948, 6950, - 6952, 6954, 6956, 6958, 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, - 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, 6992, 6994, 6996, 6998, - 7000, 7002, 7004, 7006, 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, - 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, 7040, 7042, 7044, 7046, - 7048, 7050, 7052, 7054, 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, - 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, 7088, 7090, 7092, 7094, - 7096, 7098, 7100, 7102, 7104, 7106, 0, 0, 7108, 0, 7110, 0, 0, 7112, - 7114, 7116, 7118, 7120, 7122, 7124, 7126, 7128, 7130, 0, 7132, 0, 7134, - 0, 0, 7136, 7138, 0, 0, 0, 7140, 7142, 7144, 7146, 0, 0, 7148, 7150, - 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, 7168, 7170, 7172, 7174, - 7176, 7178, 7180, 7182, 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, - 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, 7216, 7218, 7220, 7222, - 7224, 7226, 7228, 7230, 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, - 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, 7264, 0, 0, 0, 0, 0, - 7266, 7268, 7270, 7272, 7274, 7276, 7278, 7280, 7282, 7284, 7286, 7288, - 7290, 7292, 7294, 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, 7312, - 7314, 7316, 7318, 7320, 7322, 7324, 7326, 7328, 7330, 7332, 7334, 7336, - 7338, 7340, 7342, 7344, 7346, 7348, 7350, 7352, 7354, 7356, 7358, 7360, - 7362, 7364, 7366, 7368, 7370, 7372, 7374, 7376, 7378, 7380, 7382, 7384, - 7386, 7388, 7390, 7392, 7394, 7396, 7398, 7400, 7402, 7404, 7406, 7408, - 7410, 7412, 7414, 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430, 7432, - 7434, 7436, 7438, 7440, 7442, 7444, 7446, 7448, 7450, 7452, 7454, 7456, - 7458, 7460, 7462, 7464, 7466, 7468, 7470, 7472, 7474, 7476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7478, 7481, 7484, 7487, 7491, 7495, 7498, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7501, 7504, 7507, 7510, 7513, 0, 0, - 0, 0, 0, 7516, 0, 7519, 7522, 7524, 7526, 7528, 7530, 7532, 7534, 7536, - 7538, 7540, 7542, 7545, 7548, 7551, 7554, 7557, 7560, 7563, 7566, 7569, - 7572, 7575, 7578, 0, 7581, 7584, 7587, 7590, 7593, 0, 7596, 0, 7599, - 7602, 0, 7605, 7608, 0, 7611, 7614, 7617, 7620, 7623, 7626, 7629, 7632, - 7635, 7638, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7655, 7657, 7659, - 7661, 7663, 7665, 7667, 7669, 7671, 7673, 7675, 7677, 7679, 7681, 7683, - 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, - 7709, 7711, 7713, 7715, 7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, - 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751, 7753, 7755, - 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, - 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, - 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827, - 7829, 7831, 7833, 7835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7837, 7839, 7841, - 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7865, - 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7886, 7889, 7892, - 7895, 7898, 7901, 7904, 7907, 7910, 7913, 7916, 7919, 7922, 7925, 7928, - 7931, 7934, 7937, 7939, 7941, 7943, 7945, 7948, 7951, 7954, 7957, 7960, - 7963, 7966, 7969, 7972, 7975, 7978, 7981, 7984, 7987, 7990, 7993, 7996, - 7999, 8002, 8005, 8008, 8011, 8014, 8017, 8020, 8023, 8026, 8029, 8032, - 8035, 8038, 8041, 8044, 8047, 8050, 8053, 8056, 8059, 8062, 8065, 8068, - 8071, 8074, 8077, 8080, 8083, 8086, 8089, 8092, 8095, 8098, 8101, 8104, - 8107, 8110, 8113, 8116, 8119, 8122, 8125, 8128, 8131, 8134, 8137, 8140, - 8143, 8146, 8149, 8152, 8155, 8158, 8161, 8164, 8167, 8170, 8173, 8176, - 8179, 8182, 8185, 8188, 8191, 8194, 8197, 8200, 8203, 8206, 8209, 8212, - 8215, 8218, 8221, 8224, 8227, 8231, 8235, 8239, 8243, 8247, 8251, 8254, - 8257, 8260, 8263, 8266, 8269, 8272, 8275, 8278, 8281, 8284, 8287, 8290, - 8293, 8296, 8299, 8302, 8305, 8308, 8311, 8314, 8317, 8320, 8323, 8326, - 8329, 8332, 8335, 8338, 8341, 8344, 8347, 8350, 8353, 8356, 8359, 8362, - 8365, 8368, 8371, 8374, 8377, 8380, 8383, 8386, 8389, 8392, 8395, 8398, - 8401, 8404, 8407, 8410, 8413, 8416, 8419, 8422, 8425, 8428, 8431, 8434, - 8437, 8440, 8443, 8446, 8449, 8452, 8455, 8458, 8461, 8464, 8467, 8470, - 8473, 8476, 8479, 8482, 8485, 8488, 8491, 8494, 8497, 8500, 8503, 8506, - 8509, 8512, 8515, 8518, 8521, 8524, 8527, 8530, 8533, 8536, 8539, 8542, - 8545, 8548, 8551, 8554, 8557, 8560, 8563, 8566, 8569, 8572, 8575, 8578, - 8581, 8584, 8587, 8590, 8593, 8596, 8599, 8602, 8605, 8608, 8611, 8614, - 8617, 8620, 8623, 8626, 8629, 8632, 8635, 8638, 8641, 8644, 8647, 8650, - 8653, 8656, 8659, 8662, 8665, 8668, 8671, 8674, 8677, 8681, 8685, 8689, - 8692, 8695, 8698, 8701, 8704, 8707, 8710, 8713, 8716, 8719, 8722, 8725, - 8728, 8731, 8734, 8737, 8740, 8743, 8746, 8749, 8752, 8755, 8758, 8761, - 8764, 8767, 8770, 8773, 8776, 8779, 8782, 8785, 8788, 8791, 8794, 8797, - 8800, 8803, 8806, 8809, 8812, 8815, 8818, 8821, 8824, 8827, 8830, 8833, - 8836, 8839, 8842, 8845, 8848, 8851, 8854, 8857, 8860, 8863, 8866, 8869, - 8872, 8875, 8878, 8881, 8884, 8887, 8890, 8893, 8896, 8899, 8902, 8905, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8908, 8912, 8916, - 8920, 8924, 8928, 8932, 8936, 8940, 8944, 8948, 8952, 8956, 8960, 8964, - 8968, 8972, 8976, 8980, 8984, 8988, 8992, 8996, 9000, 9004, 9008, 9012, - 9016, 9020, 9024, 9028, 9032, 9036, 9040, 9044, 9048, 9052, 9056, 9060, - 9064, 9068, 9072, 9076, 9080, 9084, 9088, 9092, 9096, 9100, 9104, 9108, - 9112, 9116, 9120, 9124, 9128, 9132, 9136, 9140, 9144, 9148, 9152, 9156, - 9160, 0, 0, 9164, 9168, 9172, 9176, 9180, 9184, 9188, 9192, 9196, 9200, - 9204, 9208, 9212, 9216, 9220, 9224, 9228, 9232, 9236, 9240, 9244, 9248, - 9252, 9256, 9260, 9264, 9268, 9272, 9276, 9280, 9284, 9288, 9292, 9296, - 9300, 9304, 9308, 9312, 9316, 9320, 9324, 9328, 9332, 9336, 9340, 9344, - 9348, 9352, 9356, 9360, 9364, 9368, 9372, 9376, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9380, 9384, 9388, 9393, 9398, 9403, 9408, 9413, - 9418, 9423, 9427, 9446, 9455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9460, 9462, 9464, 9466, 9468, 9470, 9472, 9474, 9476, - 9478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9480, 9482, 9484, 9486, 9488, 9490, 9492, 9494, 9496, 9498, 9500, 9502, - 9504, 9506, 9508, 9510, 9512, 9514, 9516, 9518, 9520, 0, 0, 9522, 9524, - 9526, 9528, 9530, 9532, 9534, 9536, 9538, 9540, 9542, 9544, 0, 9546, - 9548, 9550, 9552, 9554, 9556, 9558, 9560, 9562, 9564, 9566, 9568, 9570, - 9572, 9574, 9576, 9578, 9580, 9582, 0, 9584, 9586, 9588, 9590, 0, 0, 0, - 0, 9592, 9595, 9598, 0, 9601, 0, 9604, 9607, 9610, 9613, 9616, 9619, - 9622, 9625, 9628, 9631, 9634, 9636, 9638, 9640, 9642, 9644, 9646, 9648, - 9650, 9652, 9654, 9656, 9658, 9660, 9662, 9664, 9666, 9668, 9670, 9672, - 9674, 9676, 9678, 9680, 9682, 9684, 9686, 9688, 9690, 9692, 9694, 9696, - 9698, 9700, 9702, 9704, 9706, 9708, 9710, 9712, 9714, 9716, 9718, 9720, - 9722, 9724, 9726, 9728, 9730, 9732, 9734, 9736, 9738, 9740, 9742, 9744, - 9746, 9748, 9750, 9752, 9754, 9756, 9758, 9760, 9762, 9764, 9766, 9768, - 9770, 9772, 9774, 9776, 9778, 9780, 9782, 9784, 9786, 9788, 9790, 9792, - 9794, 9796, 9798, 9800, 9802, 9804, 9806, 9808, 9810, 9812, 9814, 9816, - 9818, 9820, 9822, 9824, 9826, 9828, 9830, 9832, 9834, 9836, 9838, 9840, - 9842, 9844, 9846, 9848, 9850, 9852, 9854, 9856, 9858, 9860, 9862, 9864, - 9866, 9868, 9871, 9874, 9877, 9880, 9883, 9886, 9889, 0, 0, 0, 0, 9892, - 9894, 9896, 9898, 9900, 9902, 9904, 9906, 9908, 9910, 9912, 9914, 9916, - 9918, 9920, 9922, 9924, 9926, 9928, 9930, 9932, 9934, 9936, 9938, 9940, - 9942, 9944, 9946, 9948, 9950, 9952, 9954, 9956, 9958, 9960, 9962, 9964, - 9966, 9968, 9970, 9972, 9974, 9976, 9978, 9980, 9982, 9984, 9986, 9988, - 9990, 9992, 9994, 9996, 9998, 10000, 10002, 10004, 10006, 10008, 10010, - 10012, 10014, 10016, 10018, 10020, 10022, 10024, 10026, 10028, 10030, - 10032, 10034, 10036, 10038, 10040, 10042, 10044, 10046, 10048, 10050, - 10052, 10054, 10056, 10058, 10060, 10062, 10064, 10066, 10068, 10070, - 10072, 10074, 10076, 10078, 10080, 10082, 10084, 10086, 10088, 10090, - 10092, 10094, 10096, 10098, 10100, 10102, 10104, 10106, 10108, 10110, - 10112, 10114, 10116, 10118, 10120, 10122, 10124, 10126, 10128, 10130, - 10132, 10134, 10136, 10138, 10140, 10142, 10144, 10146, 10148, 10150, - 10152, 10154, 10156, 10158, 10160, 10162, 10164, 10166, 10168, 10170, - 10172, 10174, 10176, 10178, 10180, 10182, 10184, 10186, 10188, 10190, - 10192, 10194, 10196, 10198, 10200, 10202, 10204, 10206, 10208, 10210, - 10212, 10214, 10216, 10218, 10220, 10222, 10224, 10226, 10228, 10230, - 10232, 10234, 10236, 10238, 10240, 10242, 10244, 10246, 10248, 10250, - 10252, 10254, 10256, 10258, 10260, 10262, 10264, 10266, 10268, 10270, 0, - 0, 0, 10272, 10274, 10276, 10278, 10280, 10282, 0, 0, 10284, 10286, - 10288, 10290, 10292, 10294, 0, 0, 10296, 10298, 10300, 10302, 10304, - 10306, 0, 0, 10308, 10310, 10312, 0, 0, 0, 10314, 10316, 10318, 10320, - 10322, 10324, 10326, 0, 10328, 10330, 10332, 10334, 10336, 10338, 10340, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10342, 10345, 10348, 10351, - 10354, 10357, 10360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10363, - 10366, 10369, 10372, 10375, 10378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10381, 10383, 10385, 10387, 10389, 10391, 10393, 10395, 10397, - 10399, 10401, 10403, 10405, 10407, 10409, 10411, 10413, 10415, 10417, - 10419, 10421, 10423, 10425, 10427, 10429, 10431, 10433, 10435, 10437, - 10439, 10441, 10443, 10445, 10447, 10449, 10451, 10453, 10455, 10457, - 10459, 10461, 10463, 10465, 10467, 10469, 10471, 10473, 10475, 10477, - 10479, 10481, 10483, 10485, 10487, 10489, 10491, 10493, 10495, 10497, - 10499, 10501, 10503, 10505, 10507, 10509, 10511, 10513, 10515, 10517, - 10519, 10521, 10523, 10525, 10527, 10529, 10531, 10533, 10535, 10537, - 10539, 10541, 10543, 10545, 10547, 10549, 0, 10551, 10553, 10555, 10557, - 10559, 10561, 10563, 10565, 10567, 10569, 10571, 10573, 10575, 10577, - 10579, 10581, 10583, 10585, 10587, 10589, 10591, 10593, 10595, 10597, - 10599, 10601, 10603, 10605, 10607, 10609, 10611, 10613, 10615, 10617, - 10619, 10621, 10623, 10625, 10627, 10629, 10631, 10633, 10635, 10637, - 10639, 10641, 10643, 10645, 10647, 10649, 10651, 10653, 10655, 10657, - 10659, 10661, 10663, 10665, 10667, 10669, 10671, 10673, 10675, 10677, - 10679, 10681, 10683, 10685, 10687, 10689, 10691, 0, 10693, 10695, 0, 0, - 10697, 0, 0, 10699, 10701, 0, 0, 10703, 10705, 10707, 10709, 0, 10711, - 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727, 10729, 10731, - 10733, 0, 10735, 0, 10737, 10739, 10741, 10743, 10745, 10747, 10749, 0, - 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767, 10769, - 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787, 10789, - 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807, 10809, - 10811, 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827, 10829, - 10831, 10833, 10835, 10837, 10839, 10841, 10843, 10845, 10847, 10849, - 10851, 10853, 10855, 10857, 10859, 10861, 10863, 10865, 10867, 10869, - 10871, 10873, 10875, 10877, 10879, 0, 10881, 10883, 10885, 10887, 0, 0, - 10889, 10891, 10893, 10895, 10897, 10899, 10901, 10903, 0, 10905, 10907, - 10909, 10911, 10913, 10915, 10917, 0, 10919, 10921, 10923, 10925, 10927, - 10929, 10931, 10933, 10935, 10937, 10939, 10941, 10943, 10945, 10947, - 10949, 10951, 10953, 10955, 10957, 10959, 10961, 10963, 10965, 10967, - 10969, 10971, 10973, 0, 10975, 10977, 10979, 10981, 0, 10983, 10985, - 10987, 10989, 10991, 0, 10993, 0, 0, 0, 10995, 10997, 10999, 11001, - 11003, 11005, 11007, 0, 11009, 11011, 11013, 11015, 11017, 11019, 11021, - 11023, 11025, 11027, 11029, 11031, 11033, 11035, 11037, 11039, 11041, - 11043, 11045, 11047, 11049, 11051, 11053, 11055, 11057, 11059, 11061, - 11063, 11065, 11067, 11069, 11071, 11073, 11075, 11077, 11079, 11081, - 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097, 11099, 11101, - 11103, 11105, 11107, 11109, 11111, 11113, 11115, 11117, 11119, 11121, - 11123, 11125, 11127, 11129, 11131, 11133, 11135, 11137, 11139, 11141, - 11143, 11145, 11147, 11149, 11151, 11153, 11155, 11157, 11159, 11161, - 11163, 11165, 11167, 11169, 11171, 11173, 11175, 11177, 11179, 11181, - 11183, 11185, 11187, 11189, 11191, 11193, 11195, 11197, 11199, 11201, - 11203, 11205, 11207, 11209, 11211, 11213, 11215, 11217, 11219, 11221, - 11223, 11225, 11227, 11229, 11231, 11233, 11235, 11237, 11239, 11241, - 11243, 11245, 11247, 11249, 11251, 11253, 11255, 11257, 11259, 11261, - 11263, 11265, 11267, 11269, 11271, 11273, 11275, 11277, 11279, 11281, - 11283, 11285, 11287, 11289, 11291, 11293, 11295, 11297, 11299, 11301, - 11303, 11305, 11307, 11309, 11311, 11313, 11315, 11317, 11319, 11321, - 11323, 11325, 11327, 11329, 11331, 11333, 11335, 11337, 11339, 11341, - 11343, 11345, 11347, 11349, 11351, 11353, 11355, 11357, 11359, 11361, - 11363, 11365, 11367, 11369, 11371, 11373, 11375, 11377, 11379, 11381, - 11383, 11385, 11387, 11389, 11391, 11393, 11395, 11397, 11399, 11401, - 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, - 11423, 11425, 11427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, - 11443, 11445, 11447, 11449, 11451, 11453, 11455, 11457, 11459, 11461, - 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, - 11483, 11485, 11487, 11489, 11491, 11493, 11495, 11497, 11499, 11501, - 11503, 11505, 11507, 11509, 11511, 11513, 11515, 11517, 11519, 11521, - 11523, 11525, 11527, 11529, 11531, 11533, 11535, 11537, 11539, 11541, - 11543, 11545, 11547, 11549, 11551, 11553, 11555, 11557, 11559, 11561, - 11563, 11565, 11567, 11569, 11571, 11573, 11575, 11577, 11579, 11581, - 11583, 11585, 11587, 11589, 11591, 11593, 11595, 11597, 11599, 11601, - 11603, 11605, 11607, 11609, 11611, 11613, 11615, 11617, 11619, 11621, - 11623, 11625, 11627, 11629, 11631, 11633, 11635, 11637, 11639, 11641, - 11643, 11645, 11647, 11649, 11651, 11653, 11655, 11657, 11659, 11661, - 11663, 11665, 11667, 11669, 11671, 11673, 11675, 11677, 11679, 11681, - 11683, 11685, 11687, 0, 0, 11689, 11691, 11693, 11695, 11697, 11699, - 11701, 11703, 11705, 11707, 11709, 11711, 11713, 11715, 11717, 11719, - 11721, 11723, 11725, 11727, 11729, 11731, 11733, 11735, 11737, 11739, - 11741, 11743, 11745, 11747, 11749, 11751, 11753, 11755, 11757, 11759, - 11761, 11763, 11765, 11767, 11769, 11771, 11773, 11775, 11777, 11779, - 11781, 11783, 11785, 11787, 11789, 11791, 11793, 11795, 11797, 11799, - 11801, 11803, 11805, 11807, 11809, 11811, 11813, 11815, 11817, 11819, - 11821, 11823, 11825, 11827, 11829, 11831, 11833, 11835, 11837, 11839, - 11841, 11843, 11845, 11847, 11849, 11851, 11853, 11855, 11857, 11859, - 11861, 11863, 11865, 11867, 11869, 11871, 11873, 11875, 11877, 11879, - 11881, 11883, 11885, 11887, 11889, 11891, 11893, 11895, 11897, 11899, - 11901, 11903, 11905, 11907, 11909, 11911, 11913, 11915, 11917, 11919, - 11921, 11923, 11925, 11927, 11929, 11931, 11933, 11935, 11937, 11939, - 11941, 11943, 11945, 11947, 11949, 11951, 11953, 11955, 11957, 11959, - 11961, 11963, 11965, 11967, 11969, 11971, 11973, 11975, 11977, 11979, - 11981, 11983, 11985, 11987, 11989, 11991, 11993, 11995, 11997, 11999, - 12001, 12003, 12005, 12007, 12009, 12011, 12013, 12015, 12017, 12019, - 12021, 12023, 12025, 12027, 12029, 12031, 12033, 12035, 12037, 12039, - 12041, 12043, 12045, 12047, 12049, 12051, 12053, 12055, 12057, 12059, - 12061, 12063, 12065, 12067, 12069, 12071, 12073, 12075, 12077, 12079, - 12081, 12083, 12085, 12087, 12089, 12091, 12093, 12095, 12097, 12099, - 12101, 12103, 12105, 12107, 12109, 12111, 12113, 12115, 12117, 12119, - 12121, 12123, 12125, 12127, 12129, 12131, 12133, 12135, 12137, 12139, - 12141, 12143, 12145, 12147, 12149, 12151, 12153, 12155, 12157, 12159, - 12161, 12163, 12165, 12167, 12169, 12171, 12173, 12175, 12177, 12179, - 12181, 12183, 12185, 12187, 12189, 12191, 12193, 12195, 12197, 12199, - 12201, 12203, 12205, 12207, 12209, 12211, 12213, 12215, 12217, 12219, - 12221, 12223, 12225, 12227, 12229, 12231, 12233, 12235, 12237, 12239, - 12241, 12243, 12245, 12247, 12249, 12251, 12253, 12255, 12257, 12259, - 12261, 12263, 12265, 12267, 0, 0, 0, 0, 12269, 12271, 12273, 12275, - 12277, 12279, 12281, 12283, 12285, 12287, 12289, 12291, 12293, 12295, - 12297, 12299, 12301, 12303, 12305, 12307, 12309, 12311, 12313, 12315, - 12317, 12319, 12321, 12323, 12325, 12327, 12329, 12331, 12333, 12335, - 12337, 12339, 12341, 12343, 12345, 12347, 12349, 12351, 12353, 12355, - 12357, 12359, 12361, 12363, 12365, 12367, 12369, 12371, 12373, 12375, - 12377, 12379, 12381, 12383, 12385, 12387, 12389, 12391, 12393, 12395, - 12397, 12399, 12401, 12403, 12405, 12407, 12409, 12411, 12413, 12415, - 12417, 12419, 12421, 12423, 12425, 12427, 12429, 12431, 12433, 12435, - 12437, 12439, 12441, 12443, 12445, 12447, 12449, 12451, 12453, 12455, - 12457, 12459, 12461, 12463, 12465, 12467, 12469, 12471, 12473, 12475, - 12477, 12479, 12481, 12483, 12485, 12487, 12489, 12491, 12493, 12495, - 12497, 12499, 12501, 12503, 12505, 12507, 12509, 12511, 12513, 12515, - 12517, 12519, 12521, 12523, 12525, 12527, 12529, 12531, 12533, 12535, - 12537, 12539, 12541, 12543, 12545, 12547, 12549, 12551, 12553, 12555, - 12557, 12559, 12561, 12563, 12565, 12567, 12569, 12571, 12573, 12575, - 12577, 12579, 12581, 12583, 12585, 12587, 12589, 12591, 12593, 12595, - 12597, 12599, 12601, 12603, 12605, 12607, 12609, 12611, 12613, 12615, - 12617, 12619, 12621, 12623, 12625, 12627, 12629, 12631, 12633, 12635, - 12637, 12639, 12641, 12643, 12645, 12647, 12649, 12651, 12653, 12655, - 12657, 12659, 12661, 12663, 12665, 12667, 12669, 12671, 12673, 12675, - 12677, 12679, 12681, 12683, 12685, 12687, 12689, 12691, 12693, 12695, - 12697, 12699, 12701, 12703, 12705, 12707, 12709, 12711, 12713, 12715, - 12717, 12719, 12721, 12723, 12725, 12727, 12729, 12731, 12733, 12735, - 12737, 12739, 12741, 12743, 12745, 12747, 12749, 12751, 12753, 12755, - 12757, 12759, 12761, 12763, 12765, 12767, 12769, 12771, 12773, 12775, - 12777, 12779, 12781, 12783, 12785, 12787, 12789, 12791, 12793, 12795, - 12797, 12799, 12801, 12803, 12805, 12807, 12809, 12811, 12813, 12815, - 12817, 12819, 12821, 12823, 12825, 12827, 12829, 12831, 12833, 12835, - 12837, 12839, 12841, 12843, 12845, 12847, 12849, 12851, 12853, 12855, - 12857, 12859, 12861, 12863, 12865, 12867, 12869, 12871, 12873, 12875, - 12877, 12879, 12881, 12883, 12885, 12887, 12889, 12891, 12893, 12895, - 12897, 12899, 12901, 12903, 12905, 12907, 12909, 12911, 12913, 12915, - 12917, 12919, 12921, 12923, 12925, 12927, 12929, 12931, 12933, 12935, - 12937, 12939, 12941, 12943, 12945, 12947, 12949, 12951, 12953, 12955, - 12957, 12959, 12961, 12963, 12965, 12967, 12969, 12971, 12973, 12975, - 12977, 12979, 12981, 12983, 12985, 12987, 12989, 12991, 12993, 12995, - 12997, 12999, 13001, 13003, 13005, 13007, 13009, 13011, 13013, 13015, - 13017, 13019, 13021, 13023, 13025, 13027, 13029, 13031, 13033, 13035, - 13037, 13039, 13041, 13043, 13045, 13047, 13049, 13051, 13053, 13055, - 13057, 13059, 13061, 13063, 13065, 13067, 13069, 13071, 13073, 13075, - 13077, 13079, 13081, 13083, 13085, 13087, 13089, 13091, 13093, 13095, - 13097, 13099, 13101, 13103, 13105, 13107, 13109, 13111, 13113, 13115, - 13117, 13119, 13121, 13123, 13125, 13127, 13129, 13131, 13133, 13135, - 13137, 13139, 13141, 13143, 13145, 13147, 13149, 13151, 13153, 13155, - 13157, 13159, 13161, 13163, 13165, 13167, 13169, 13171, 13173, 13175, - 13177, 13179, 13181, 13183, 13185, 13187, 13189, 13191, 13193, 13195, - 13197, 13199, 13201, 13203, 13205, 13207, 13209, 13211, 13213, 13215, - 13217, 13219, 13221, 13223, 13225, 13227, 13229, 13231, 13233, 13235, - 13237, 13239, 13241, 13243, 13245, 13247, 13249, 13251, 13253, 13255, - 13257, 13259, 13261, 13263, 13265, 13267, 13269, 13271, 13273, 13275, - 13277, 13279, 13281, 13283, 13285, 13287, 13289, 13291, 13293, 13295, - 13297, 13299, 13301, 13303, 13305, 13307, 13309, 13311, 13313, 13315, - 13317, 13319, 13321, 13323, 13325, 13327, 13329, 13331, 13333, 13335, - 13337, 13339, 13341, 13343, 13345, 13347, 13349, 13351, 13353, 13355, - 13357, 13359, 13361, 13363, 13365, 13367, 13369, 13371, 13373, 13375, - 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393, 13395, - 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413, 13415, - 13417, 13419, 13421, 13423, 13425, 13427, 13429, 13431, 13433, 13435, - 13437, 13439, 13441, 13443, 13445, 13447, 13449, 13451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4072, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4074, 4076, 4078, 4080, 4082, 4084, 4086, 4088, + 4090, 4092, 4094, 4096, 4098, 4100, 4102, 4104, 4106, 4108, 4110, 4112, + 4114, 4116, 4118, 4120, 4122, 4124, 4126, 4128, 4130, 4132, 4134, 4136, + 4138, 4140, 4142, 4144, 4146, 4148, 4150, 4152, 4154, 4156, 4158, 4160, + 4162, 4164, 4166, 4168, 4170, 4172, 4174, 4176, 4178, 4180, 4182, 4184, + 4186, 4188, 4190, 4192, 4194, 4196, 4198, 4200, 4202, 4204, 4206, 4208, + 4210, 4212, 4214, 4216, 4218, 4220, 4222, 4224, 4226, 4228, 4230, 4232, + 4234, 4236, 4238, 4240, 4242, 4244, 4246, 4248, 4250, 4252, 4254, 4256, + 4258, 4260, 4262, 4264, 4266, 4268, 4270, 4272, 4274, 4276, 4278, 4280, + 4282, 4284, 4286, 4288, 4290, 4292, 4294, 4296, 4298, 4300, 4302, 4304, + 4306, 4308, 4310, 4312, 4314, 4316, 4318, 4320, 4322, 4324, 4326, 4328, + 4330, 4332, 4334, 4336, 4338, 4340, 4342, 4344, 4346, 4348, 4350, 4352, + 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, 4370, 4372, 4374, 4376, + 4378, 4380, 4382, 4384, 4386, 4388, 4390, 4392, 4394, 4396, 4398, 4400, + 4402, 4404, 4406, 4408, 4410, 4412, 4414, 4416, 4418, 4420, 4422, 4424, + 4426, 4428, 4430, 4432, 4434, 4436, 4438, 4440, 4442, 4444, 4446, 4448, + 4450, 4452, 4454, 4456, 4458, 4460, 4462, 4464, 4466, 4468, 4470, 4472, + 4474, 4476, 4478, 4480, 4482, 4484, 4486, 4488, 4490, 4492, 4494, 4496, + 4498, 4500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4502, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4504, 0, 4506, 4508, 4510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4512, 0, 4515, 0, 4518, 0, 4521, 0, 4524, 0, 4527, + 0, 4530, 0, 4533, 0, 4536, 0, 4539, 0, 4542, 0, 4545, 0, 0, 4548, 0, + 4551, 0, 4554, 0, 0, 0, 0, 0, 0, 4557, 4560, 0, 4563, 4566, 0, 4569, + 4572, 0, 4575, 4578, 0, 4581, 4584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4587, 0, 0, 0, 0, 0, 0, 4590, 4593, 0, + 4596, 4599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4602, 0, 4605, 0, 4608, + 0, 4611, 0, 4614, 0, 4617, 0, 4620, 0, 4623, 0, 4626, 0, 4629, 0, 4632, + 0, 4635, 0, 0, 4638, 0, 4641, 0, 4644, 0, 0, 0, 0, 0, 0, 4647, 4650, 0, + 4653, 4656, 0, 4659, 4662, 0, 4665, 4668, 0, 4671, 4674, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4677, 0, 0, 4680, + 4683, 4686, 4689, 0, 0, 0, 4692, 4695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4698, 4700, 4702, 4704, 4706, + 4708, 4710, 4712, 4714, 4716, 4718, 4720, 4722, 4724, 4726, 4728, 4730, + 4732, 4734, 4736, 4738, 4740, 4742, 4744, 4746, 4748, 4750, 4752, 4754, + 4756, 4758, 4760, 4762, 4764, 4766, 4768, 4770, 4772, 4774, 4776, 4778, + 4780, 4782, 4784, 4786, 4788, 4790, 4792, 4794, 4796, 4798, 4800, 4802, + 4804, 4806, 4808, 4810, 4812, 4814, 4816, 4818, 4820, 4822, 4824, 4826, + 4828, 4830, 4832, 4834, 4836, 4838, 4840, 4842, 4844, 4846, 4848, 4850, + 4852, 4854, 4856, 4858, 4860, 4862, 4864, 4866, 4868, 4870, 4872, 4874, + 4876, 4878, 4880, 4882, 4884, 0, 0, 0, 4886, 4888, 4890, 4892, 4894, + 4896, 4898, 4900, 4902, 4904, 4906, 4908, 4910, 4912, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4914, 4918, 4922, + 4926, 4930, 4934, 4938, 4942, 4946, 4950, 4954, 4958, 4962, 4966, 4970, + 4975, 4980, 4985, 4990, 4995, 5000, 5005, 5010, 5015, 5020, 5025, 5030, + 5035, 5040, 5045, 5053, 0, 5060, 5064, 5068, 5072, 5076, 5080, 5084, + 5088, 5092, 5096, 5100, 5104, 5108, 5112, 5116, 5120, 5124, 5128, 5132, + 5136, 5140, 5144, 5148, 5152, 5156, 5160, 5164, 5168, 5172, 5176, 5180, + 5184, 5188, 5192, 5196, 5200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5204, + 5208, 5211, 5214, 5217, 5220, 5223, 5226, 5229, 5232, 5235, 5238, 5241, + 5244, 5247, 5250, 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, 5269, + 5271, 5273, 5275, 5277, 5279, 5281, 5284, 5287, 5290, 5293, 5296, 5299, + 5302, 5305, 5308, 5311, 5314, 5317, 5320, 5323, 5329, 5334, 0, 5337, + 5339, 5341, 5343, 5345, 5347, 5349, 5351, 5353, 5355, 5357, 5359, 5361, + 5363, 5365, 5367, 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, 5385, + 5387, 5389, 5391, 5393, 5395, 5397, 5399, 5401, 5403, 5405, 5407, 5409, + 5411, 5413, 5415, 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, 5433, + 5435, 5438, 5441, 5444, 5447, 5450, 5453, 5456, 5459, 5462, 5465, 5468, + 5471, 5474, 5477, 5480, 5483, 5486, 5489, 5492, 5495, 5498, 5501, 5504, + 5507, 5511, 5515, 5519, 5522, 5526, 5529, 5533, 5535, 5537, 5539, 5541, + 5543, 5545, 5547, 5549, 5551, 5553, 5555, 5557, 5559, 5561, 5563, 5565, + 5567, 5569, 5571, 5573, 5575, 5577, 5579, 5581, 5583, 5585, 5587, 5589, + 5591, 5593, 5595, 5597, 5599, 5601, 5603, 5605, 5607, 5609, 5611, 5613, + 5615, 5617, 5619, 5621, 5623, 5625, 0, 5627, 5632, 5637, 5642, 5646, + 5651, 5655, 5659, 5665, 5670, 5674, 5678, 5682, 5687, 5692, 5696, 5700, + 5703, 5707, 5712, 5717, 5720, 5726, 5733, 5739, 5743, 5749, 5755, 5760, + 5764, 5768, 5772, 5777, 5783, 5788, 5792, 5796, 5800, 5803, 5806, 5809, + 5812, 5816, 5820, 5826, 5830, 5835, 5841, 5845, 5848, 5851, 5857, 5862, + 5868, 5872, 5878, 5881, 5885, 5889, 5893, 5897, 5901, 5906, 5910, 5913, + 5917, 5921, 5925, 5930, 5934, 5938, 5942, 5948, 5953, 5956, 5962, 5965, + 5970, 5975, 5979, 5983, 5987, 5992, 5995, 5999, 6004, 6007, 6013, 6017, + 6020, 6023, 6026, 6029, 6032, 6035, 6038, 6041, 6044, 6047, 6051, 6055, + 6059, 6063, 6067, 6071, 6075, 6079, 6083, 6087, 6091, 6095, 6099, 6103, + 6107, 6111, 6114, 6117, 6121, 6124, 6127, 6130, 6134, 6138, 6141, 6144, + 6147, 6150, 6153, 6158, 6161, 6164, 6167, 6170, 6173, 6176, 6179, 6182, + 6186, 6191, 6194, 6197, 6200, 6203, 6206, 6209, 6212, 6216, 6220, 6224, + 6228, 6231, 6234, 6237, 6240, 6243, 6246, 6249, 6252, 6255, 6258, 6262, + 6266, 6269, 6273, 6277, 6281, 6284, 6288, 6292, 6297, 6300, 6304, 6308, + 6312, 6316, 6322, 6329, 6332, 6335, 6338, 6341, 6344, 6347, 6350, 6353, + 6356, 6359, 6362, 6365, 6368, 6371, 6374, 6377, 6380, 6383, 6388, 6391, + 6394, 6397, 6402, 6406, 6409, 6412, 6415, 6418, 6421, 6424, 6427, 6430, + 6433, 6436, 6440, 6443, 6446, 6450, 6454, 6457, 6462, 6466, 6469, 6472, + 6475, 6478, 6482, 6486, 6489, 6492, 6495, 6498, 6501, 6504, 6507, 6510, + 6513, 6517, 6521, 6525, 6529, 6533, 6537, 6541, 6545, 6549, 6553, 6557, + 6561, 6565, 6569, 6573, 6577, 6581, 6585, 6589, 6593, 6597, 6601, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6605, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6607, 6609, 6611, 6613, + 6615, 6617, 6619, 6621, 6623, 6625, 6627, 6629, 6631, 6633, 6635, 6637, + 6639, 6641, 6643, 6645, 6647, 6649, 6651, 6653, 6655, 6657, 6659, 6661, + 6663, 6665, 6667, 6669, 6671, 6673, 6675, 6677, 6679, 6681, 6683, 6685, + 6687, 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707, 6709, + 6711, 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731, 6733, + 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, + 6759, 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779, 6781, + 6783, 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803, 6805, + 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827, 6829, + 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851, 6853, + 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, + 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, + 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923, 6925, + 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6941, 6943, 6945, 6947, 6949, + 6951, 6953, 6955, 6957, 6959, 6961, 6963, 6965, 6967, 6969, 6971, 6973, + 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, 6995, 6997, + 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, 7017, 7019, 7021, + 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, 7041, 7043, 7045, + 7047, 7049, 7051, 7053, 7055, 7057, 7059, 7061, 7063, 7065, 7067, 7069, + 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7091, 7093, + 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115, 7117, + 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139, 7141, + 7143, 7145, 0, 0, 7147, 0, 7149, 0, 0, 7151, 7153, 7155, 7157, 7159, + 7161, 7163, 7165, 7167, 7169, 0, 7171, 0, 7173, 0, 0, 7175, 7177, 0, 0, + 0, 7179, 7181, 7183, 7185, 0, 0, 7187, 7189, 7191, 7193, 7195, 7197, + 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, 7215, 7217, 7219, 7221, + 7223, 7225, 7227, 7229, 7231, 7233, 7235, 7237, 7239, 7241, 7243, 7245, + 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269, + 7271, 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293, + 7295, 7297, 7299, 7301, 7303, 0, 0, 0, 0, 0, 7305, 7307, 7309, 7311, + 7313, 7315, 7317, 7319, 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, + 7337, 7339, 7341, 7343, 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, + 7361, 7363, 7365, 7367, 7369, 7371, 7373, 7375, 7377, 7379, 7381, 7383, + 7385, 7387, 7389, 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, + 7409, 7411, 7413, 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, + 7433, 7435, 7437, 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, + 7457, 7459, 7461, 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, + 7481, 7483, 7485, 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, + 7505, 7507, 7509, 7511, 7513, 7515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7517, 7520, 7523, 7526, 7530, 7534, 7537, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7540, 7543, 7546, 7549, 7552, 0, 0, 0, 0, 0, 7555, 0, 7558, + 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579, 7581, 7584, + 7587, 7590, 7593, 7596, 7599, 7602, 7605, 7608, 7611, 7614, 7617, 0, + 7620, 7623, 7626, 7629, 7632, 0, 7635, 0, 7638, 7641, 0, 7644, 7647, 0, + 7650, 7653, 7656, 7659, 7662, 7665, 7668, 7671, 7674, 7677, 7680, 7682, + 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, + 7708, 7710, 7712, 7714, 7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, + 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, 7752, 7754, + 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, + 7780, 7782, 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, + 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, + 7828, 7830, 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, + 7852, 7854, 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7876, 7878, 7880, 7882, 7884, 7886, 7888, + 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, + 7914, 7916, 7918, 7920, 7922, 7925, 7928, 7931, 7934, 7937, 7940, 7943, + 7946, 7949, 7952, 7955, 7958, 7961, 7964, 7967, 7970, 7973, 7976, 7978, + 7980, 7982, 7984, 7987, 7990, 7993, 7996, 7999, 8002, 8005, 8008, 8011, + 8014, 8017, 8020, 8023, 8026, 8029, 8032, 8035, 8038, 8041, 8044, 8047, + 8050, 8053, 8056, 8059, 8062, 8065, 8068, 8071, 8074, 8077, 8080, 8083, + 8086, 8089, 8092, 8095, 8098, 8101, 8104, 8107, 8110, 8113, 8116, 8119, + 8122, 8125, 8128, 8131, 8134, 8137, 8140, 8143, 8146, 8149, 8152, 8155, + 8158, 8161, 8164, 8167, 8170, 8173, 8176, 8179, 8182, 8185, 8188, 8191, + 8194, 8197, 8200, 8203, 8206, 8209, 8212, 8215, 8218, 8221, 8224, 8227, + 8230, 8233, 8236, 8239, 8242, 8245, 8248, 8251, 8254, 8257, 8260, 8263, + 8266, 8270, 8274, 8278, 8282, 8286, 8290, 8293, 8296, 8299, 8302, 8305, + 8308, 8311, 8314, 8317, 8320, 8323, 8326, 8329, 8332, 8335, 8338, 8341, + 8344, 8347, 8350, 8353, 8356, 8359, 8362, 8365, 8368, 8371, 8374, 8377, + 8380, 8383, 8386, 8389, 8392, 8395, 8398, 8401, 8404, 8407, 8410, 8413, + 8416, 8419, 8422, 8425, 8428, 8431, 8434, 8437, 8440, 8443, 8446, 8449, + 8452, 8455, 8458, 8461, 8464, 8467, 8470, 8473, 8476, 8479, 8482, 8485, + 8488, 8491, 8494, 8497, 8500, 8503, 8506, 8509, 8512, 8515, 8518, 8521, + 8524, 8527, 8530, 8533, 8536, 8539, 8542, 8545, 8548, 8551, 8554, 8557, + 8560, 8563, 8566, 8569, 8572, 8575, 8578, 8581, 8584, 8587, 8590, 8593, + 8596, 8599, 8602, 8605, 8608, 8611, 8614, 8617, 8620, 8623, 8626, 8629, + 8632, 8635, 8638, 8641, 8644, 8647, 8650, 8653, 8656, 8659, 8662, 8665, + 8668, 8671, 8674, 8677, 8680, 8683, 8686, 8689, 8692, 8695, 8698, 8701, + 8704, 8707, 8710, 8713, 8716, 8720, 8724, 8728, 8731, 8734, 8737, 8740, + 8743, 8746, 8749, 8752, 8755, 8758, 8761, 8764, 8767, 8770, 8773, 8776, + 8779, 8782, 8785, 8788, 8791, 8794, 8797, 8800, 8803, 8806, 8809, 8812, + 8815, 8818, 8821, 8824, 8827, 8830, 8833, 8836, 8839, 8842, 8845, 8848, + 8851, 8854, 8857, 8860, 8863, 8866, 8869, 8872, 8875, 8878, 8881, 8884, + 8887, 8890, 8893, 8896, 8899, 8902, 8905, 8908, 8911, 8914, 8917, 8920, + 8923, 8926, 8929, 8932, 8935, 8938, 8941, 8944, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8947, 8951, 8955, 8959, 8963, 8967, 8971, + 8975, 8979, 8983, 8987, 8991, 8995, 8999, 9003, 9007, 9011, 9015, 9019, + 9023, 9027, 9031, 9035, 9039, 9043, 9047, 9051, 9055, 9059, 9063, 9067, + 9071, 9075, 9079, 9083, 9087, 9091, 9095, 9099, 9103, 9107, 9111, 9115, + 9119, 9123, 9127, 9131, 9135, 9139, 9143, 9147, 9151, 9155, 9159, 9163, + 9167, 9171, 9175, 9179, 9183, 9187, 9191, 9195, 9199, 0, 0, 9203, 9207, + 9211, 9215, 9219, 9223, 9227, 9231, 9235, 9239, 9243, 9247, 9251, 9255, + 9259, 9263, 9267, 9271, 9275, 9279, 9283, 9287, 9291, 9295, 9299, 9303, + 9307, 9311, 9315, 9319, 9323, 9327, 9331, 9335, 9339, 9343, 9347, 9351, + 9355, 9359, 9363, 9367, 9371, 9375, 9379, 9383, 9387, 9391, 9395, 9399, + 9403, 9407, 9411, 9415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9419, 9423, 9427, 9432, 9437, 9442, 9447, 9452, 9457, 9462, 9466, 9485, + 9494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9499, + 9501, 9503, 9505, 9507, 9509, 9511, 9513, 9515, 9517, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9519, 9521, 9523, 9525, + 9527, 9529, 9531, 9533, 9535, 9537, 9539, 9541, 9543, 9545, 9547, 9549, + 9551, 9553, 9555, 9557, 9559, 0, 0, 9561, 9563, 9565, 9567, 9569, 9571, + 9573, 9575, 9577, 9579, 9581, 9583, 0, 9585, 9587, 9589, 9591, 9593, + 9595, 9597, 9599, 9601, 9603, 9605, 9607, 9609, 9611, 9613, 9615, 9617, + 9619, 9621, 0, 9623, 9625, 9627, 9629, 0, 0, 0, 0, 9631, 9634, 9637, 0, + 9640, 0, 9643, 9646, 9649, 9652, 9655, 9658, 9661, 9664, 9667, 9670, + 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, 9693, 9695, + 9697, 9699, 9701, 9703, 9705, 9707, 9709, 9711, 9713, 9715, 9717, 9719, + 9721, 9723, 9725, 9727, 9729, 9731, 9733, 9735, 9737, 9739, 9741, 9743, + 9745, 9747, 9749, 9751, 9753, 9755, 9757, 9759, 9761, 9763, 9765, 9767, + 9769, 9771, 9773, 9775, 9777, 9779, 9781, 9783, 9785, 9787, 9789, 9791, + 9793, 9795, 9797, 9799, 9801, 9803, 9805, 9807, 9809, 9811, 9813, 9815, + 9817, 9819, 9821, 9823, 9825, 9827, 9829, 9831, 9833, 9835, 9837, 9839, + 9841, 9843, 9845, 9847, 9849, 9851, 9853, 9855, 9857, 9859, 9861, 9863, + 9865, 9867, 9869, 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, + 9889, 9891, 9893, 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9910, 9913, + 9916, 9919, 9922, 9925, 9928, 0, 0, 0, 0, 9931, 9933, 9935, 9937, 9939, + 9941, 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, 9961, 9963, + 9965, 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9981, 9983, 9985, 9987, + 9989, 9991, 9993, 9995, 9997, 9999, 10001, 10003, 10005, 10007, 10009, + 10011, 10013, 10015, 10017, 10019, 10021, 10023, 10025, 10027, 10029, + 10031, 10033, 10035, 10037, 10039, 10041, 10043, 10045, 10047, 10049, + 10051, 10053, 10055, 10057, 10059, 10061, 10063, 10065, 10067, 10069, + 10071, 10073, 10075, 10077, 10079, 10081, 10083, 10085, 10087, 10089, + 10091, 10093, 10095, 10097, 10099, 10101, 10103, 10105, 10107, 10109, + 10111, 10113, 10115, 10117, 10119, 10121, 10123, 10125, 10127, 10129, + 10131, 10133, 10135, 10137, 10139, 10141, 10143, 10145, 10147, 10149, + 10151, 10153, 10155, 10157, 10159, 10161, 10163, 10165, 10167, 10169, + 10171, 10173, 10175, 10177, 10179, 10181, 10183, 10185, 10187, 10189, + 10191, 10193, 10195, 10197, 10199, 10201, 10203, 10205, 10207, 10209, + 10211, 10213, 10215, 10217, 10219, 10221, 10223, 10225, 10227, 10229, + 10231, 10233, 10235, 10237, 10239, 10241, 10243, 10245, 10247, 10249, + 10251, 10253, 10255, 10257, 10259, 10261, 10263, 10265, 10267, 10269, + 10271, 10273, 10275, 10277, 10279, 10281, 10283, 10285, 10287, 10289, + 10291, 10293, 10295, 10297, 10299, 10301, 10303, 10305, 10307, 10309, 0, + 0, 0, 10311, 10313, 10315, 10317, 10319, 10321, 0, 0, 10323, 10325, + 10327, 10329, 10331, 10333, 0, 0, 10335, 10337, 10339, 10341, 10343, + 10345, 0, 0, 10347, 10349, 10351, 0, 0, 0, 10353, 10355, 10357, 10359, + 10361, 10363, 10365, 0, 10367, 10369, 10371, 10373, 10375, 10377, 10379, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10381, 10384, 10387, 10390, + 10393, 10396, 10399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10402, + 10405, 10408, 10411, 10414, 10417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10420, 10422, 10424, 10426, 10428, 10430, 10432, 10434, 10436, + 10438, 10440, 10442, 10444, 10446, 10448, 10450, 10452, 10454, 10456, + 10458, 10460, 10462, 10464, 10466, 10468, 10470, 10472, 10474, 10476, + 10478, 10480, 10482, 10484, 10486, 10488, 10490, 10492, 10494, 10496, + 10498, 10500, 10502, 10504, 10506, 10508, 10510, 10512, 10514, 10516, + 10518, 10520, 10522, 10524, 10526, 10528, 10530, 10532, 10534, 10536, + 10538, 10540, 10542, 10544, 10546, 10548, 10550, 10552, 10554, 10556, + 10558, 10560, 10562, 10564, 10566, 10568, 10570, 10572, 10574, 10576, + 10578, 10580, 10582, 10584, 10586, 10588, 0, 10590, 10592, 10594, 10596, + 10598, 10600, 10602, 10604, 10606, 10608, 10610, 10612, 10614, 10616, + 10618, 10620, 10622, 10624, 10626, 10628, 10630, 10632, 10634, 10636, + 10638, 10640, 10642, 10644, 10646, 10648, 10650, 10652, 10654, 10656, + 10658, 10660, 10662, 10664, 10666, 10668, 10670, 10672, 10674, 10676, + 10678, 10680, 10682, 10684, 10686, 10688, 10690, 10692, 10694, 10696, + 10698, 10700, 10702, 10704, 10706, 10708, 10710, 10712, 10714, 10716, + 10718, 10720, 10722, 10724, 10726, 10728, 10730, 0, 10732, 10734, 0, 0, + 10736, 0, 0, 10738, 10740, 0, 0, 10742, 10744, 10746, 10748, 0, 10750, + 10752, 10754, 10756, 10758, 10760, 10762, 10764, 10766, 10768, 10770, + 10772, 0, 10774, 0, 10776, 10778, 10780, 10782, 10784, 10786, 10788, 0, + 10790, 10792, 10794, 10796, 10798, 10800, 10802, 10804, 10806, 10808, + 10810, 10812, 10814, 10816, 10818, 10820, 10822, 10824, 10826, 10828, + 10830, 10832, 10834, 10836, 10838, 10840, 10842, 10844, 10846, 10848, + 10850, 10852, 10854, 10856, 10858, 10860, 10862, 10864, 10866, 10868, + 10870, 10872, 10874, 10876, 10878, 10880, 10882, 10884, 10886, 10888, + 10890, 10892, 10894, 10896, 10898, 10900, 10902, 10904, 10906, 10908, + 10910, 10912, 10914, 10916, 10918, 0, 10920, 10922, 10924, 10926, 0, 0, + 10928, 10930, 10932, 10934, 10936, 10938, 10940, 10942, 0, 10944, 10946, + 10948, 10950, 10952, 10954, 10956, 0, 10958, 10960, 10962, 10964, 10966, + 10968, 10970, 10972, 10974, 10976, 10978, 10980, 10982, 10984, 10986, + 10988, 10990, 10992, 10994, 10996, 10998, 11000, 11002, 11004, 11006, + 11008, 11010, 11012, 0, 11014, 11016, 11018, 11020, 0, 11022, 11024, + 11026, 11028, 11030, 0, 11032, 0, 0, 0, 11034, 11036, 11038, 11040, + 11042, 11044, 11046, 0, 11048, 11050, 11052, 11054, 11056, 11058, 11060, + 11062, 11064, 11066, 11068, 11070, 11072, 11074, 11076, 11078, 11080, + 11082, 11084, 11086, 11088, 11090, 11092, 11094, 11096, 11098, 11100, + 11102, 11104, 11106, 11108, 11110, 11112, 11114, 11116, 11118, 11120, + 11122, 11124, 11126, 11128, 11130, 11132, 11134, 11136, 11138, 11140, + 11142, 11144, 11146, 11148, 11150, 11152, 11154, 11156, 11158, 11160, + 11162, 11164, 11166, 11168, 11170, 11172, 11174, 11176, 11178, 11180, + 11182, 11184, 11186, 11188, 11190, 11192, 11194, 11196, 11198, 11200, + 11202, 11204, 11206, 11208, 11210, 11212, 11214, 11216, 11218, 11220, + 11222, 11224, 11226, 11228, 11230, 11232, 11234, 11236, 11238, 11240, + 11242, 11244, 11246, 11248, 11250, 11252, 11254, 11256, 11258, 11260, + 11262, 11264, 11266, 11268, 11270, 11272, 11274, 11276, 11278, 11280, + 11282, 11284, 11286, 11288, 11290, 11292, 11294, 11296, 11298, 11300, + 11302, 11304, 11306, 11308, 11310, 11312, 11314, 11316, 11318, 11320, + 11322, 11324, 11326, 11328, 11330, 11332, 11334, 11336, 11338, 11340, + 11342, 11344, 11346, 11348, 11350, 11352, 11354, 11356, 11358, 11360, + 11362, 11364, 11366, 11368, 11370, 11372, 11374, 11376, 11378, 11380, + 11382, 11384, 11386, 11388, 11390, 11392, 11394, 11396, 11398, 11400, + 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420, + 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, + 11442, 11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 11460, + 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480, + 11482, 11484, 11486, 11488, 11490, 11492, 11494, 11496, 11498, 11500, + 11502, 11504, 11506, 11508, 11510, 11512, 11514, 11516, 11518, 11520, + 11522, 11524, 11526, 11528, 11530, 11532, 11534, 11536, 11538, 11540, + 11542, 11544, 11546, 11548, 11550, 11552, 11554, 11556, 11558, 11560, + 11562, 11564, 11566, 11568, 11570, 11572, 11574, 11576, 11578, 11580, + 11582, 11584, 11586, 11588, 11590, 11592, 11594, 11596, 11598, 11600, + 11602, 11604, 11606, 11608, 11610, 11612, 11614, 11616, 11618, 11620, + 11622, 11624, 11626, 11628, 11630, 11632, 11634, 11636, 11638, 11640, + 11642, 11644, 11646, 11648, 11650, 11652, 11654, 11656, 11658, 11660, + 11662, 11664, 11666, 11668, 11670, 11672, 11674, 11676, 11678, 11680, + 11682, 11684, 11686, 11688, 11690, 11692, 11694, 11696, 11698, 11700, + 11702, 11704, 11706, 11708, 11710, 11712, 11714, 11716, 11718, 11720, + 11722, 11724, 11726, 0, 0, 11728, 11730, 11732, 11734, 11736, 11738, + 11740, 11742, 11744, 11746, 11748, 11750, 11752, 11754, 11756, 11758, + 11760, 11762, 11764, 11766, 11768, 11770, 11772, 11774, 11776, 11778, + 11780, 11782, 11784, 11786, 11788, 11790, 11792, 11794, 11796, 11798, + 11800, 11802, 11804, 11806, 11808, 11810, 11812, 11814, 11816, 11818, + 11820, 11822, 11824, 11826, 11828, 11830, 11832, 11834, 11836, 11838, + 11840, 11842, 11844, 11846, 11848, 11850, 11852, 11854, 11856, 11858, + 11860, 11862, 11864, 11866, 11868, 11870, 11872, 11874, 11876, 11878, + 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11896, 11898, + 11900, 11902, 11904, 11906, 11908, 11910, 11912, 11914, 11916, 11918, + 11920, 11922, 11924, 11926, 11928, 11930, 11932, 11934, 11936, 11938, + 11940, 11942, 11944, 11946, 11948, 11950, 11952, 11954, 11956, 11958, + 11960, 11962, 11964, 11966, 11968, 11970, 11972, 11974, 11976, 11978, + 11980, 11982, 11984, 11986, 11988, 11990, 11992, 11994, 11996, 11998, + 12000, 12002, 12004, 12006, 12008, 12010, 12012, 12014, 12016, 12018, + 12020, 12022, 12024, 12026, 12028, 12030, 12032, 12034, 12036, 12038, + 12040, 12042, 12044, 12046, 12048, 12050, 12052, 12054, 12056, 12058, + 12060, 12062, 12064, 12066, 12068, 12070, 12072, 12074, 12076, 12078, + 12080, 12082, 12084, 12086, 12088, 12090, 12092, 12094, 12096, 12098, + 12100, 12102, 12104, 12106, 12108, 12110, 12112, 12114, 12116, 12118, + 12120, 12122, 12124, 12126, 12128, 12130, 12132, 12134, 12136, 12138, + 12140, 12142, 12144, 12146, 12148, 12150, 12152, 12154, 12156, 12158, + 12160, 12162, 12164, 12166, 12168, 12170, 12172, 12174, 12176, 12178, + 12180, 12182, 12184, 12186, 12188, 12190, 12192, 12194, 12196, 12198, + 12200, 12202, 12204, 12206, 12208, 12210, 12212, 12214, 12216, 12218, + 12220, 12222, 12224, 12226, 12228, 12230, 12232, 12234, 12236, 12238, + 12240, 12242, 12244, 12246, 12248, 12250, 12252, 12254, 12256, 12258, + 12260, 12262, 12264, 12266, 12268, 12270, 12272, 12274, 12276, 12278, + 12280, 12282, 12284, 12286, 12288, 12290, 12292, 12294, 12296, 12298, + 12300, 12302, 12304, 12306, 12308, 12310, 0, 0, 12312, 12314, 12316, + 12318, 12320, 12322, 12324, 12326, 12328, 12330, 12332, 12334, 12336, + 12338, 12340, 12342, 12344, 12346, 12348, 12350, 12352, 12354, 12356, + 12358, 12360, 12362, 12364, 12366, 12368, 12370, 12372, 12374, 12376, + 12378, 12380, 12382, 12384, 12386, 12388, 12390, 12392, 12394, 12396, + 12398, 12400, 12402, 12404, 12406, 12408, 12410, 12412, 12414, 12416, + 12418, 12420, 12422, 12424, 12426, 12428, 12430, 12432, 12434, 12436, + 12438, 12440, 12442, 12444, 12446, 12448, 12450, 12452, 12454, 12456, + 12458, 12460, 12462, 12464, 12466, 12468, 12470, 12472, 12474, 12476, + 12478, 12480, 12482, 12484, 12486, 12488, 12490, 12492, 12494, 12496, + 12498, 12500, 12502, 12504, 12506, 12508, 12510, 12512, 12514, 12516, + 12518, 12520, 12522, 12524, 12526, 12528, 12530, 12532, 12534, 12536, + 12538, 12540, 12542, 12544, 12546, 12548, 12550, 12552, 12554, 12556, + 12558, 12560, 12562, 12564, 12566, 12568, 12570, 12572, 12574, 12576, + 12578, 12580, 12582, 12584, 12586, 12588, 12590, 12592, 12594, 12596, + 12598, 12600, 12602, 12604, 12606, 12608, 12610, 12612, 12614, 12616, + 12618, 12620, 12622, 12624, 12626, 12628, 12630, 12632, 12634, 12636, + 12638, 12640, 12642, 12644, 12646, 12648, 12650, 12652, 12654, 12656, + 12658, 12660, 12662, 12664, 12666, 12668, 12670, 12672, 12674, 12676, + 12678, 12680, 12682, 12684, 12686, 12688, 12690, 12692, 12694, 12696, + 12698, 12700, 12702, 12704, 12706, 12708, 12710, 12712, 12714, 12716, + 12718, 12720, 12722, 12724, 12726, 12728, 12730, 12732, 12734, 12736, + 12738, 12740, 12742, 12744, 12746, 12748, 12750, 12752, 12754, 12756, + 12758, 12760, 12762, 12764, 12766, 12768, 12770, 12772, 12774, 12776, + 12778, 12780, 12782, 12784, 12786, 12788, 12790, 12792, 12794, 12796, + 12798, 12800, 12802, 12804, 12806, 12808, 12810, 12812, 12814, 12816, + 12818, 12820, 12822, 12824, 12826, 12828, 12830, 12832, 12834, 12836, + 12838, 12840, 12842, 12844, 12846, 12848, 12850, 12852, 12854, 12856, + 12858, 12860, 12862, 12864, 12866, 12868, 12870, 12872, 12874, 12876, + 12878, 12880, 12882, 12884, 12886, 12888, 12890, 12892, 12894, 12896, + 12898, 12900, 12902, 12904, 12906, 12908, 12910, 12912, 12914, 12916, + 12918, 12920, 12922, 12924, 12926, 12928, 12930, 12932, 12934, 12936, + 12938, 12940, 12942, 12944, 12946, 12948, 12950, 12952, 12954, 12956, + 12958, 12960, 12962, 12964, 12966, 12968, 12970, 12972, 12974, 12976, + 12978, 12980, 12982, 12984, 12986, 12988, 12990, 12992, 12994, 12996, + 12998, 13000, 13002, 13004, 13006, 13008, 13010, 13012, 13014, 13016, + 13018, 13020, 13022, 13024, 13026, 13028, 13030, 13032, 13034, 13036, + 13038, 13040, 13042, 13044, 13046, 13048, 13050, 13052, 13054, 13056, + 13058, 13060, 13062, 13064, 13066, 13068, 13070, 13072, 13074, 13076, + 13078, 13080, 13082, 13084, 13086, 13088, 13090, 13092, 13094, 13096, + 13098, 13100, 13102, 13104, 13106, 13108, 13110, 13112, 13114, 13116, + 13118, 13120, 13122, 13124, 13126, 13128, 13130, 13132, 13134, 13136, + 13138, 13140, 13142, 13144, 13146, 13148, 13150, 13152, 13154, 13156, + 13158, 13160, 13162, 13164, 13166, 13168, 13170, 13172, 13174, 13176, + 13178, 13180, 13182, 13184, 13186, 13188, 13190, 13192, 13194, 13196, + 13198, 13200, 13202, 13204, 13206, 13208, 13210, 13212, 13214, 13216, + 13218, 13220, 13222, 13224, 13226, 13228, 13230, 13232, 13234, 13236, + 13238, 13240, 13242, 13244, 13246, 13248, 13250, 13252, 13254, 13256, + 13258, 13260, 13262, 13264, 13266, 13268, 13270, 13272, 13274, 13276, + 13278, 13280, 13282, 13284, 13286, 13288, 13290, 13292, 13294, 13296, + 13298, 13300, 13302, 13304, 13306, 13308, 13310, 13312, 13314, 13316, + 13318, 13320, 13322, 13324, 13326, 13328, 13330, 13332, 13334, 13336, + 13338, 13340, 13342, 13344, 13346, 13348, 13350, 13352, 13354, 13356, + 13358, 13360, 13362, 13364, 13366, 13368, 13370, 13372, 13374, 13376, + 13378, 13380, 13382, 13384, 13386, 13388, 13390, 13392, 13394, 13396, + 13398, 13400, 13402, 13404, 13406, 13408, 13410, 13412, 13414, 13416, + 13418, 13420, 13422, 13424, 13426, 13428, 13430, 13432, 13434, 13436, + 13438, 13440, 13442, 13444, 13446, 13448, 13450, 13452, 13454, 13456, + 13458, 13460, 13462, 13464, 13466, 13468, 13470, 13472, 13474, 13476, + 13478, 13480, 13482, 13484, 13486, 13488, 13490, 13492, 13494, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, }; /* NFC pairs */ #define COMP_SHIFT 3 static unsigned short comp_index[] = { - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 4, 5, 6, 7, 0, - 0, 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 14, 15, 16, 17, 0, 0, - 18, 19, 20, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, - 28, 29, 30, 0, 0, 31, 32, 33, 34, 35, 0, 0, 36, 0, 0, 0, 0, 0, 0, 37, 38, - 39, 40, 0, 0, 41, 0, 42, 43, 44, 0, 0, 45, 46, 47, 0, 0, 0, 0, 48, 49, - 50, 51, 0, 0, 52, 53, 54, 55, 0, 0, 0, 56, 57, 0, 0, 0, 0, 0, 58, 59, 60, - 61, 0, 0, 62, 63, 64, 65, 0, 0, 0, 66, 67, 68, 69, 0, 0, 70, 71, 72, 73, - 0, 0, 0, 74, 0, 75, 0, 0, 0, 0, 76, 0, 77, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, - 79, 80, 81, 0, 0, 0, 0, 82, 83, 84, 85, 0, 0, 86, 87, 88, 89, 0, 0, 0, - 90, 0, 91, 92, 0, 0, 93, 94, 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 100, 101, 102, 103, 0, 0, 0, 104, 0, 0, 0, 0, 0, 105, 106, 107, 0, 0, 0, - 0, 108, 109, 110, 111, 0, 0, 112, 113, 114, 115, 0, 0, 0, 116, 117, 0, 0, - 0, 0, 118, 0, 119, 120, 121, 0, 0, 122, 123, 124, 125, 0, 0, 0, 126, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 0, 0, 0, 132, 133, 134, 135, 0, 0, 0, - 136, 0, 0, 0, 0, 0, 137, 138, 139, 140, 0, 0, 0, 141, 142, 143, 0, 0, 0, - 0, 144, 145, 146, 147, 0, 0, 148, 149, 150, 151, 0, 0, 0, 152, 0, 153, 0, - 0, 0, 154, 155, 156, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 158, 159, 160, 161, - 0, 0, 0, 162, 163, 164, 165, 0, 0, 0, 166, 0, 0, 167, 0, 0, 168, 169, 0, - 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 172, 173, 0, 0, 0, - 0, 0, 174, 0, 0, 0, 0, 0, 175, 176, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, - 178, 179, 0, 0, 0, 0, 180, 181, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, - 183, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 0, - 189, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 192, 0, 0, - 0, 0, 0, 0, 193, 194, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 196, 197, 0, 0, - 0, 0, 0, 198, 199, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, - 0, 202, 203, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, - 0, 208, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 211, - 212, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 219, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, - 222, 223, 224, 0, 0, 0, 225, 226, 227, 0, 0, 0, 0, 228, 229, 230, 0, 0, - 0, 0, 231, 232, 233, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, - 0, 236, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 242, 0, 0, - 0, 0, 0, 0, 243, 0, 0, 0, 0, 244, 245, 246, 0, 247, 0, 0, 248, 0, 249, 0, - 0, 0, 0, 250, 251, 252, 253, 0, 0, 254, 255, 256, 0, 0, 0, 0, 257, 0, - 258, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 260, 261, 262, 0, 0, 0, 0, 263, 0, - 264, 265, 0, 0, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 267, 0, 0, 268, 269, - 270, 271, 0, 0, 272, 0, 273, 0, 0, 0, 0, 274, 0, 275, 276, 277, 0, 0, - 278, 279, 0, 280, 0, 0, 281, 0, 282, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 284, - 285, 286, 0, 287, 0, 0, 288, 0, 289, 0, 290, 0, 0, 291, 0, 0, 292, 0, 0, - 293, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 295, 0, 0, 296, 0, 0, 0, 0, 0, 0, - 297, 0, 0, 0, 0, 0, 298, 299, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 302, 0, 0, 0, 0, 0, 303, 304, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 306, - 307, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 310, 311, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 315, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 320, 321, 0, 0, 0, 0, 0, 322, - 0, 0, 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 329, 0, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, 339, - 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, 342, 0, 0, - 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, - 0, 0, 346, 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, - 349, 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 352, - 353, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 356, 0, - 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, 359, 360, 0, 0, - 0, 0, 0, 0, 361, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, - 0, 0, 364, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 367, - 368, 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 371, 0, 0, - 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 373, 0, 0, 0, 374, 0, 0, 375, 0, 0, 376, - 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 379, 0, 0, - 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 382, 0, 0, 383, 0, - 0, 0, 384, 0, 0, 385, 0, 0, 386, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, - 388, 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, 0, 391, 0, 0, - 0, 0, 0, 0, 392, 0, 0, 393, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 395, 0, - 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 397, 0, 0, 398, 0, 0, 399, 0, 0, 0, - 400, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 403, 0, - 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 406, 0, 0, 407, - 0, 0, 408, 0, 0, 409, 0, 0, 0, 410, 0, 0, 0, 0, 0, 411, 0, 0, 0, 0, 0, 0, - 412, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 415, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 417, 0, 0, 418, 0, 0, 419, 0, 0, 0, 420, 0, 0, - 421, 0, 0, 422, 0, 0, 423, 424, 0, 0, 425, 0, 0, 426, 0, 0, 0, 0, 0, 0, - 427, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 430, 0, - 0, 431, 0, 0, 432, 0, 0, 0, 433, 0, 0, 434, 0, 0, 435, 0, 0, 436, 437, 0, - 0, 438, 0, 0, 439, 0, 0, 0, 440, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 445, 0, - 0, 0, 0, 0, 446, 0, 0, 447, 448, 0, 0, 449, 0, 0, 450, 0, 0, 0, 451, 0, - 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 454, 0, 0, 0, - 0, 0, 455, 0, 0, 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, - 458, 0, 0, 0, 0, 0, 0, 459, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 461, 0, - 0, 462, 0, 0, 463, 0, 0, 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 465, 0, 0, - 466, 0, 0, 467, 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, 0, - 0, 470, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, 473, - 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 477, 0, 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, - 0, 480, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 483, - 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 486, 0, 0, - 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, - 0, 0, 490, 0, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 493, - 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 496, 0, 0, - 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 500, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 0, - 503, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, 506, 0, - 0, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, 509, 0, - 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 512, 0, 0, 0, - 0, 0, 0, 513, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, - 0, 516, 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 519, - 0, 0, 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 522, 0, 0, - 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 525, 526, 0, 0, 0, 0, - 0, 527, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 530, - 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, 533, 0, 0, - 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, - 0, 537, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, 0, 0, 540, - 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 543, 0, 0, - 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, - 0, 0, 547, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 549, 0, 0, 0, 0, 0, 550, - 551, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 554, 0, 0, - 0, 0, 0, 0, 555, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, - 0, 0, 558, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 5, 6, 7, + 0, 0, 0, 8, 0, 9, 10, 0, 0, 11, 12, 13, 14, 0, 0, 0, 0, 15, 16, 17, 0, 0, + 0, 18, 19, 20, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 28, 29, 30, 0, 0, 0, 31, 32, 33, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 36, + 0, 37, 38, 39, 0, 0, 40, 41, 42, 43, 0, 0, 0, 44, 45, 46, 0, 0, 0, 0, 47, + 48, 49, 50, 0, 0, 51, 52, 53, 54, 0, 0, 0, 55, 56, 0, 0, 0, 0, 0, 57, 58, + 59, 60, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 64, 65, 66, 67, 0, 0, 68, 69, + 70, 71, 0, 0, 0, 72, 0, 73, 0, 0, 0, 0, 74, 0, 75, 0, 0, 0, 0, 76, 0, 0, + 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 80, 81, 82, 83, 0, 0, 0, 84, 85, 86, 0, + 0, 0, 0, 87, 88, 0, 89, 0, 0, 90, 91, 0, 92, 0, 0, 0, 0, 93, 94, 95, 0, + 0, 0, 96, 97, 98, 99, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 102, 0, 103, 0, + 0, 0, 104, 105, 106, 107, 0, 0, 0, 108, 109, 110, 111, 0, 0, 0, 112, 113, + 0, 0, 0, 0, 114, 115, 116, 117, 0, 0, 0, 118, 119, 120, 121, 0, 0, 0, + 122, 0, 123, 0, 0, 0, 124, 125, 126, 127, 128, 0, 0, 129, 130, 131, 132, + 0, 0, 0, 133, 134, 0, 0, 0, 0, 0, 135, 136, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 0, 143, 144, 145, 0, 0, 0, 146, 147, 148, 149, 0, 0, + 0, 150, 0, 151, 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 156, 157, 158, 0, 0, 0, 0, 159, 160, 161, 162, 0, 0, 163, 0, 0, 0, + 164, 0, 0, 165, 166, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, + 0, 0, 169, 170, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 172, 173, 0, 0, 0, + 0, 0, 174, 0, 0, 0, 0, 0, 175, 176, 0, 0, 0, 0, 0, 177, 178, 0, 0, 0, 0, + 0, 179, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 181, 182, 183, 0, 0, 0, 0, + 184, 185, 0, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 188, + 189, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 191, 192, 0, 0, 0, 0, 0, 193, + 0, 0, 0, 0, 0, 194, 195, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 200, 201, 202, 0, 0, 0, 0, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 208, 0, 0, 0, + 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, + 215, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 218, + 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 220, 221, 222, 0, 0, 0, 0, 223, 224, + 225, 0, 0, 0, 0, 226, 227, 228, 0, 0, 0, 0, 229, 230, 231, 0, 0, 0, 0, 0, + 232, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, + 0, 0, 239, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, + 242, 0, 243, 244, 0, 0, 0, 245, 246, 0, 0, 0, 0, 247, 0, 248, 0, 249, 0, + 0, 250, 251, 252, 0, 0, 0, 0, 253, 0, 254, 0, 0, 0, 0, 0, 255, 0, 0, 0, + 0, 256, 257, 258, 0, 0, 0, 0, 259, 0, 260, 0, 261, 0, 0, 0, 0, 0, 262, 0, + 0, 0, 0, 0, 0, 263, 0, 0, 264, 265, 266, 0, 267, 0, 0, 268, 0, 269, 0, 0, + 0, 0, 270, 0, 271, 272, 0, 0, 0, 273, 274, 0, 275, 0, 0, 276, 0, 277, 0, + 0, 0, 0, 0, 0, 278, 0, 0, 0, 0, 279, 280, 281, 282, 0, 0, 0, 283, 284, 0, + 285, 0, 0, 286, 0, 0, 0, 287, 0, 0, 288, 0, 0, 0, 289, 0, 0, 0, 0, 0, + 290, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, + 0, 0, 294, 0, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 297, 0, 0, 0, 0, 0, 298, 299, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, + 301, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 304, 0, + 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 307, 0, 0, 0, + 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, + 0, 311, 312, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 315, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 318, 0, + 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 321, 0, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 0, + 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, + 0, 0, 0, 328, 0, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, + 0, 331, 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 334, + 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 336, 337, 0, 0, 0, 0, 0, 0, 338, + 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 341, 0, 0, + 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, + 0, 0, 345, 346, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, + 0, 349, 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 0, + 352, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 355, 0, + 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, + 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 361, 362, 0, 0, 0, 0, + 0, 0, 363, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, + 0, 366, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, 0, 369, + 370, 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 373, 0, + 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 375, 0, 0, 376, 0, 0, 0, 377, 0, 0, + 378, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 381, 0, + 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, 0, 0, 0, 384, 0, 0, + 385, 0, 0, 386, 0, 0, 0, 387, 0, 0, 388, 0, 0, 0, 0, 0, 0, 389, 0, 0, 0, + 0, 0, 0, 390, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, + 0, 393, 0, 0, 0, 0, 0, 0, 394, 0, 0, 395, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, + 0, 0, 397, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 399, 0, 0, 400, 0, 0, + 0, 401, 0, 0, 402, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, + 0, 0, 405, 0, 0, 0, 0, 0, 0, 406, 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, 0, 0, + 0, 408, 0, 0, 409, 0, 0, 410, 0, 0, 0, 411, 0, 0, 412, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 416, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 418, 0, 0, 419, 0, 0, 420, 0, 0, 0, + 421, 0, 0, 422, 0, 0, 423, 0, 0, 0, 424, 0, 0, 425, 0, 0, 0, 426, 0, 0, + 427, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 430, 0, + 0, 0, 0, 0, 0, 431, 0, 0, 432, 0, 0, 0, 433, 0, 0, 434, 0, 0, 435, 0, 0, + 0, 436, 0, 0, 437, 0, 0, 0, 438, 0, 0, 439, 0, 0, 440, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 444, 0, + 0, 0, 0, 0, 0, 445, 0, 0, 0, 0, 0, 0, 446, 0, 0, 447, 0, 0, 0, 448, 0, 0, + 449, 0, 0, 450, 0, 0, 0, 0, 0, 0, 451, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 453, 0, 0, 0, 0, 0, 454, 0, 0, 0, 0, 0, 0, 455, 0, 0, 0, 0, 0, 0, + 456, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 459, 0, + 0, 0, 0, 0, 0, 460, 0, 0, 461, 0, 0, 0, 462, 0, 0, 0, 0, 0, 463, 0, 0, 0, + 0, 0, 0, 464, 0, 0, 465, 0, 0, 0, 466, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, + 0, 468, 0, 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, 471, + 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0, 0, 0, 474, 0, + 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, 477, 0, 0, 0, + 0, 0, 0, 478, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 481, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 484, + 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, + 0, 0, 491, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, + 0, 494, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 500, 0, 0, + 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 503, 0, 0, 0, 0, + 0, 0, 504, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, 506, 0, 0, 0, 0, 0, + 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, + 0, 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, + 513, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, 516, 0, + 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 519, 0, 0, + 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, + 0, 0, 523, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, + 526, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, + 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 532, 0, 0, 0, + 0, 0, 0, 533, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, + 0, 536, 0, 0, 0, 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, + 539, 0, 0, 0, 0, 0, 540, 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 542, 0, + 0, 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, + 0, 0, 0, 546, 0, 0, 0, 0, 0, 0, 547, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, + 0, 549, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 552, + 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 555, }; static unsigned short comp_data[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 0, 0, 8800, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 193, 194, 195, - 256, 258, 550, 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840, 0, 7680, - 0, 0, 260, 0, 0, 0, 0, 7682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7684, 0, 0, 0, - 0, 0, 0, 0, 0, 7686, 0, 0, 0, 262, 264, 0, 0, 0, 266, 0, 0, 0, 0, 268, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 7690, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 0, 0, 0, 8800, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8815, 0, 0, 192, 193, 194, 195, 256, 258, 550, + 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840, 0, 7680, 0, 0, 260, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7682, 0, 0, 7684, 0, 0, 0, 0, 0, 0, + 0, 0, 7686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 264, 0, 0, 0, 266, + 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 7690, + 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 0, 0, 200, 201, 202, 7868, 274, 276, 278, 203, 7866, 0, 0, 282, 516, 518, 0, 0, 0, 7864, 0, 0, 0, 552, 280, 7704, 0, 7706, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7710, 0, 0, 0, 0, 0, 0, 0, 500, 284, 0, 7712, 286, 288, 0, 0, 0, - 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, - 0, 0, 0, 7714, 7718, 0, 0, 0, 542, 0, 0, 0, 0, 0, 7716, 0, 0, 0, 7720, 0, - 0, 7722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, 296, 298, - 300, 304, 207, 7880, 0, 0, 463, 520, 522, 0, 0, 0, 7882, 0, 0, 0, 0, 302, - 0, 0, 7724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 0, 0, 7728, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 310, 0, 0, 0, - 0, 7732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 317, 0, 0, 0, 0, 0, - 7734, 0, 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7742, 0, 0, 0, 0, 7744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7746, 0, 0, 0, 504, - 323, 0, 209, 0, 0, 7748, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 7750, 0, 0, 0, - 325, 0, 7754, 0, 0, 7752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, 212, - 213, 332, 334, 558, 214, 7886, 0, 336, 465, 524, 526, 0, 0, 416, 7884, 0, - 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 7764, 0, 0, 0, 0, 7766, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 0, 0, 0, 7768, 0, 0, 0, 0, 344, 528, 530, 0, 0, 0, 7770, 0, - 0, 0, 342, 0, 0, 0, 0, 7774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 348, - 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, 7778, 0, 0, 536, 350, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7786, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, - 7788, 0, 0, 538, 354, 0, 7792, 0, 0, 7790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 217, 218, 219, 360, 362, 364, 0, 220, 7910, 366, 368, 467, 532, 534, 0, - 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0, 7796, 0, 0, 0, 0, 0, 0, 7804, - 0, 0, 0, 0, 0, 7806, 0, 0, 0, 7808, 7810, 372, 0, 0, 0, 7814, 7812, 0, - 7816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7818, 7820, 0, 0, 0, 0, 0, 7922, 221, - 374, 7928, 562, 0, 7822, 376, 7926, 0, 0, 0, 0, 0, 0, 0, 0, 7924, 0, 0, - 0, 0, 377, 7824, 0, 0, 0, 379, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 7826, 0, - 0, 0, 0, 0, 0, 0, 0, 7828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 225, 226, - 227, 257, 259, 551, 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, 7841, 0, - 7681, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7683, 0, 0, 7685, 0, - 0, 0, 0, 0, 0, 0, 0, 7687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 265, 0, - 0, 0, 267, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, - 0, 7691, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, - 0, 7695, 0, 0, 232, 233, 234, 7869, 275, 277, 279, 235, 7867, 0, 0, 283, - 517, 519, 0, 0, 0, 7865, 0, 0, 0, 553, 281, 7705, 0, 7707, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7711, 0, 0, 0, 0, 0, 0, 0, 501, 285, 0, 7713, 287, 289, 0, 0, - 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 293, 0, 0, 0, 7715, 7719, - 0, 0, 0, 543, 0, 0, 0, 0, 0, 7717, 0, 0, 0, 7721, 0, 0, 7723, 0, 7830, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, - 0, 464, 521, 523, 0, 0, 0, 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 0, - 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7729, - 0, 489, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 311, 0, 0, 0, 0, 7733, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 7735, 0, 0, 0, 316, 0, 7741, 0, 0, 7739, 0, 0, 0, 7743, 0, 0, 0, 0, 7745, - 0, 0, 7747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 324, 0, 241, 0, 0, - 7749, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 7751, 0, 0, 0, 326, 0, 7755, 0, 0, - 7753, 0, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, 0, 337, 466, - 525, 527, 0, 0, 417, 7885, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 7765, 0, - 0, 0, 0, 7767, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, 7769, 0, 0, 0, 0, - 345, 529, 531, 0, 0, 0, 7771, 0, 0, 0, 343, 0, 0, 0, 0, 7775, 0, 0, 0, - 347, 349, 0, 0, 0, 7777, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 7779, 0, 0, 537, - 351, 0, 0, 0, 0, 0, 7787, 7831, 0, 0, 0, 357, 0, 0, 0, 0, 0, 7789, 0, 0, - 539, 355, 0, 7793, 0, 0, 7791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 250, - 251, 361, 363, 365, 0, 252, 7911, 367, 369, 468, 533, 535, 0, 0, 432, - 7909, 7795, 0, 0, 0, 371, 7799, 0, 7797, 0, 0, 0, 0, 0, 0, 7805, 0, 0, 0, - 0, 0, 7807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7809, 7811, 373, 0, 0, 0, - 7815, 7813, 0, 7832, 0, 0, 0, 0, 0, 0, 0, 7817, 0, 7819, 7821, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7923, 253, 375, 7929, 563, 0, 7823, 255, - 7927, 7833, 0, 0, 0, 0, 0, 0, 0, 7925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 378, 7825, 0, 0, 0, 380, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 7827, 0, 0, - 0, 0, 0, 0, 0, 0, 7829, 0, 0, 8173, 901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8129, 0, 0, 0, 0, 0, 0, 0, 0, 7846, 7844, 0, 7850, 0, 0, 0, 0, 7848, 0, - 0, 0, 0, 0, 0, 0, 0, 478, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 508, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7872, 7870, 0, 7876, 0, 0, 0, 0, 7874, 0, 0, 0, 0, 0, 7726, 0, - 0, 0, 7890, 7888, 0, 7894, 0, 0, 0, 0, 7892, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, - 0, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475, 471, 0, 0, 469, 0, 0, 0, 0, - 0, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7847, 7845, 0, 7851, 0, 0, 0, 0, - 7849, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, 0, - 0, 0, 509, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7689, 0, 0, 0, 7873, - 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 0, 0, 0, 7727, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, 0, 0, 0, 0, 0, - 7757, 0, 0, 557, 0, 0, 7759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 511, 0, 0, 0, 476, 472, 0, 0, 470, 0, 0, 0, 0, 0, 0, 474, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7856, 7854, 0, 7860, 0, 0, 0, 0, 7858, 0, 0, - 0, 0, 7857, 7855, 0, 7861, 0, 0, 0, 0, 7859, 0, 0, 0, 0, 7700, 7702, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7701, 7703, 0, 0, 0, 7760, 7762, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7761, 7763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7780, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7781, 0, 0, 0, 0, 7782, 0, 0, 0, 0, - 7783, 0, 0, 0, 0, 0, 0, 0, 7800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7801, 0, 0, 7802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7803, 0, 0, 0, - 7835, 0, 0, 0, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0, 0, 0, 7902, 0, 0, 0, - 0, 0, 0, 0, 0, 7906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7901, 7899, 0, - 7905, 0, 0, 0, 0, 7903, 0, 0, 0, 0, 0, 0, 0, 0, 7907, 0, 0, 0, 7914, + 0, 0, 0, 0, 7710, 0, 0, 0, 0, 0, 0, 0, 0, 500, 284, 0, 7712, 286, 288, 0, + 0, 0, 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 292, 0, 0, 0, 7714, 7718, 0, 0, 0, 542, 0, 0, 0, 0, 0, 7716, 0, 0, 0, + 7720, 0, 0, 7722, 0, 0, 0, 0, 0, 204, 205, 206, 296, 298, 300, 304, 207, + 7880, 0, 0, 463, 520, 522, 0, 0, 0, 7882, 0, 0, 0, 0, 302, 0, 0, 7724, 0, + 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7728, 0, 488, 0, + 0, 0, 0, 0, 7730, 0, 0, 0, 310, 0, 0, 0, 0, 7732, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 7734, 0, + 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0, 0, 7742, 0, 0, 0, 0, 7744, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7746, 0, 0, 0, 0, 504, 323, 0, 209, 0, 0, 7748, + 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 7750, 0, 0, 0, 325, 0, 7754, 0, 0, 7752, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, 212, 213, 332, 334, 558, 214, + 7886, 0, 336, 465, 524, 526, 0, 0, 416, 7884, 0, 0, 0, 0, 490, 0, 0, 0, + 0, 0, 0, 0, 0, 7764, 0, 0, 0, 0, 7766, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, + 0, 0, 7768, 0, 0, 0, 0, 344, 528, 530, 0, 0, 0, 7770, 0, 0, 0, 342, 0, 0, + 0, 0, 7774, 0, 0, 0, 0, 346, 348, 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 0, + 0, 0, 0, 7778, 0, 0, 536, 350, 0, 0, 0, 0, 0, 0, 7786, 0, 0, 0, 0, 356, + 0, 0, 0, 0, 0, 7788, 0, 0, 538, 354, 0, 7792, 0, 0, 7790, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 360, 362, 364, 0, 220, 7910, 366, 368, + 467, 532, 534, 0, 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0, 7796, 0, 0, + 0, 0, 0, 0, 0, 7804, 0, 0, 0, 0, 0, 7806, 0, 0, 0, 0, 7808, 7810, 372, 0, + 0, 0, 7814, 7812, 0, 7816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7818, 7820, 0, + 0, 0, 0, 0, 0, 7922, 221, 374, 7928, 562, 0, 7822, 376, 7926, 0, 0, 0, 0, + 0, 0, 0, 0, 7924, 0, 0, 0, 0, 0, 377, 7824, 0, 0, 0, 379, 0, 0, 0, 0, + 381, 0, 0, 0, 0, 0, 7826, 0, 0, 0, 0, 0, 0, 0, 0, 7828, 0, 0, 0, 224, + 225, 226, 227, 257, 259, 551, 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, + 7841, 0, 7681, 0, 0, 261, 0, 0, 0, 0, 0, 7683, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7685, 7687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 265, 0, 0, 0, + 267, 0, 0, 0, 0, 269, 0, 231, 0, 0, 0, 0, 0, 0, 7691, 0, 0, 0, 0, 271, 0, + 0, 0, 0, 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, 0, 7695, 0, 0, 0, 232, 233, + 234, 7869, 275, 277, 279, 235, 7867, 0, 0, 283, 517, 519, 0, 0, 0, 7865, + 0, 0, 0, 553, 281, 7705, 0, 7707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7711, 0, + 0, 0, 0, 0, 0, 0, 0, 501, 285, 0, 7713, 287, 289, 0, 0, 0, 0, 487, 0, + 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 7715, 7719, 0, 0, 0, + 543, 0, 0, 0, 0, 0, 7717, 0, 0, 0, 7721, 0, 0, 7723, 0, 7830, 0, 0, 0, + 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, 0, 464, 521, 523, 0, 0, 0, + 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, + 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7729, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 489, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 311, 0, 0, 0, 0, 7733, 0, 0, 0, + 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 7735, 0, 0, 0, + 316, 0, 7741, 0, 0, 7739, 0, 0, 0, 0, 7743, 0, 0, 0, 0, 7745, 0, 0, 7747, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 324, 0, 241, 0, 0, 7749, 0, 0, + 0, 0, 328, 0, 0, 0, 0, 0, 7751, 0, 0, 0, 326, 0, 7755, 0, 0, 7753, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, + 0, 337, 466, 525, 527, 0, 0, 417, 7885, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, + 0, 0, 0, 7765, 0, 0, 0, 0, 7767, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, + 7769, 0, 0, 0, 0, 345, 529, 531, 0, 0, 0, 7771, 0, 0, 0, 343, 0, 0, 0, 0, + 7775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 347, 349, 0, 0, 0, 7777, 0, 0, + 0, 0, 353, 0, 0, 0, 0, 0, 7779, 0, 0, 537, 351, 0, 0, 0, 0, 0, 0, 7787, + 7831, 0, 0, 0, 357, 0, 0, 0, 0, 0, 7789, 0, 0, 539, 355, 0, 7793, 0, 0, + 7791, 0, 0, 0, 249, 250, 251, 361, 363, 365, 0, 252, 7911, 367, 369, 468, + 533, 535, 0, 0, 432, 7909, 7795, 0, 0, 0, 371, 7799, 0, 7797, 0, 0, 0, 0, + 0, 0, 0, 7805, 0, 0, 0, 0, 0, 7807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7809, 7811, 373, 0, 0, 0, 7815, 7813, 0, 7832, 0, 0, 0, 0, 0, 0, 0, 7817, + 0, 0, 7819, 7821, 0, 0, 0, 0, 0, 0, 7923, 253, 375, 7929, 563, 0, 7823, + 255, 7927, 7833, 0, 0, 0, 0, 0, 0, 0, 7925, 0, 0, 0, 0, 0, 378, 7825, 0, + 0, 0, 380, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 7827, 0, 0, 0, 0, 0, 0, 0, 0, + 7829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8173, 901, 0, 0, 8129, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7846, 7844, 0, 7850, 0, 0, 0, 0, 7848, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 478, 0, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, + 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 0, 0, 7872, 7870, 0, + 7876, 0, 0, 0, 0, 7874, 0, 0, 0, 0, 0, 0, 7726, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7890, 7888, 0, 7894, 0, 0, 0, 0, 7892, 0, 0, 0, 0, 0, 0, + 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, + 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475, 471, 0, 0, 469, 0, 0, 0, 0, + 0, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7847, 7845, 0, 7851, 0, 0, 0, 0, + 7849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 509, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7689, 0, 0, + 0, 0, 7873, 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 0, 0, 0, 0, 7727, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, + 0, 0, 0, 0, 0, 0, 7757, 0, 0, 557, 0, 0, 7759, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 555, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 472, 0, 0, + 470, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7856, 7854, 0, + 7860, 0, 0, 0, 0, 7858, 0, 0, 0, 0, 0, 7857, 7855, 0, 7861, 0, 0, 0, 0, + 7859, 0, 0, 0, 0, 0, 7700, 7702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7701, 7703, 0, 0, 0, 0, 7760, 7762, 0, 0, 0, 0, 7761, 7763, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7780, 0, 0, 0, 0, 0, 7781, 0, 0, 0, 0, 0, 7782, 0, 0, + 0, 0, 0, 7783, 0, 0, 0, 0, 0, 0, 0, 0, 7800, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7801, 0, 0, 0, 7802, 0, 0, 0, 0, 0, 7803, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7835, 0, 0, 0, 0, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0, + 0, 0, 7902, 0, 0, 0, 0, 0, 0, 0, 0, 7906, 0, 0, 0, 0, 7901, 7899, 0, + 7905, 0, 0, 0, 0, 7903, 0, 0, 0, 0, 0, 0, 0, 0, 7907, 0, 0, 0, 0, 7914, 7912, 0, 7918, 0, 0, 0, 0, 7916, 0, 0, 0, 0, 0, 0, 0, 0, 7920, 0, 0, 0, - 7915, 7913, 0, 7919, 0, 0, 0, 0, 7917, 0, 0, 0, 0, 0, 0, 0, 0, 7921, 0, - 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, - 0, 493, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, - 0, 0, 0, 7708, 0, 0, 0, 0, 7709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, - 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8122, 902, 0, 0, 8121, 8120, 0, 0, 0, 0, 0, 0, 0, 0, 7944, 7945, 0, - 0, 0, 0, 0, 8124, 0, 0, 0, 0, 0, 0, 0, 8136, 904, 0, 0, 0, 0, 7960, 7961, - 0, 0, 0, 0, 0, 8138, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7976, 7977, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8140, 0, 0, 0, 0, 0, 0, 0, 8154, - 906, 0, 0, 8153, 8152, 0, 938, 0, 0, 0, 0, 0, 0, 7992, 7993, 0, 0, 0, 0, - 0, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8172, 0, 0, 0, 0, 0, 8170, 910, 0, 0, 8169, 8168, 0, 939, 0, 0, 0, 0, 0, - 0, 0, 8025, 0, 0, 0, 0, 0, 8186, 911, 0, 0, 0, 0, 8040, 8041, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8188, 0, 0, 0, 0, 8116, 0, 0, 0, 0, 8132, 0, - 0, 0, 0, 0, 0, 0, 8048, 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 0, 0, 0, 0, - 7936, 7937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8118, 8115, 0, 0, 0, 0, - 0, 0, 0, 8050, 941, 0, 0, 0, 0, 7952, 7953, 0, 0, 0, 0, 0, 8052, 942, 0, - 0, 0, 0, 7968, 7969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8134, 8131, 0, - 0, 0, 0, 0, 0, 0, 8054, 943, 0, 0, 8145, 8144, 0, 970, 0, 0, 0, 0, 0, 0, - 7984, 7985, 0, 0, 0, 0, 8150, 0, 0, 0, 0, 0, 0, 0, 0, 8056, 972, 0, 0, 0, - 0, 8000, 8001, 0, 0, 0, 8164, 8165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8058, 973, 0, 0, 8161, 8160, 0, 971, 0, 0, 0, 0, 0, 0, 8016, 8017, 0, - 0, 0, 0, 8166, 0, 0, 0, 0, 0, 0, 0, 0, 8060, 974, 0, 0, 0, 0, 8032, 8033, - 0, 0, 0, 0, 8182, 8179, 0, 0, 0, 0, 0, 0, 0, 8146, 912, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8151, 0, 0, 0, 0, 0, 0, 0, 0, 8162, 944, 0, 0, 8167, 0, 0, 0, - 0, 0, 8180, 0, 0, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 980, 0, 0, 0, 0, - 1031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 0, 0, 0, - 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, 0, 1238, 0, 1025, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1217, 0, 1244, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1246, 0, 0, 0, 0, 0, 1037, 0, 0, 0, 1250, 1049, 0, 1252, 0, 0, - 0, 0, 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1268, 0, 0, 0, 0, 1272, 0, 0, 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1233, 0, 1235, 0, 0, 0, 0, 0, 0, 1107, 0, 0, 0, 1104, 0, 0, 0, 0, 1239, - 0, 1105, 0, 0, 1218, 0, 1245, 0, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1117, 0, 0, 0, 1251, 1081, 0, 1253, 0, 0, 0, 0, 0, 0, - 1116, 0, 0, 1255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1263, 1118, 0, 1265, 0, 0, - 1267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1273, 0, 0, 0, 0, 1261, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1142, 0, 0, 0, 0, 1143, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1259, 0, 0, 0, 1570, 1571, 1573, 0, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1574, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 0, 2345, 0, 0, 0, 0, 2353, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356, 0, 0, 0, 0, 0, 2507, 2508, 0, 0, - 0, 0, 0, 2891, 2888, 2892, 0, 0, 0, 0, 0, 0, 2964, 0, 0, 0, 3018, 3020, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3019, 0, 0, 0, 0, 0, 0, 3144, 0, 0, 0, - 0, 0, 0, 3264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3274, 3271, 3272, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3275, 0, 0, 0, 0, 0, 0, 3402, 3404, 0, 0, 0, - 3403, 0, 0, 0, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3549, 0, 0, 0, 0, 0, 0, 0, 4134, 0, 0, 0, 0, 0, 0, 7736, 0, 0, 0, 0, - 7737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7772, 0, 0, 0, 0, 7773, 0, 0, - 0, 0, 0, 0, 7784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7785, 7852, 0, 0, - 7862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7853, 0, 0, 7863, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7879, 0, 0, 0, 0, 7896, - 0, 0, 0, 0, 7897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7938, 7940, 0, 0, 7942, - 8064, 0, 0, 0, 0, 0, 0, 0, 7939, 7941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7943, 8065, 0, 0, 0, 0, 8066, 0, 0, 0, 0, 8067, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8068, 0, 0, 0, 0, 8069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8070, 0, 0, 0, 0, 8071, 0, 0, 0, 0, 0, 0, 0, 7946, 7948, 0, 0, 7950, - 8072, 0, 0, 0, 0, 0, 0, 0, 7947, 7949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7951, 8073, 0, 0, 0, 0, 8074, 0, 0, 0, 0, 8075, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8076, 0, 0, 0, 0, 8077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8078, 0, 0, 0, 0, 8079, 0, 0, 0, 0, 0, 0, 0, 7954, 7956, 0, 0, 0, 7955, - 7957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7962, 7964, 0, 0, 0, 7963, 7965, - 0, 0, 0, 7970, 7972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7974, 8080, 0, 0, 0, - 0, 0, 0, 0, 7971, 7973, 0, 0, 7975, 8081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8082, 0, 0, 0, 0, 8083, 0, 0, 0, 0, 8084, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8085, 0, 0, 0, 0, 8086, 0, 0, 0, 0, 8087, 0, 0, 0, 0, 0, 0, - 0, 7978, 7980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7982, 8088, 0, 0, 0, 0, 0, - 0, 0, 7979, 7981, 0, 0, 7983, 8089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8090, 0, 0, 0, 0, 8091, 0, 0, 0, 0, 8092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8093, 0, 0, 0, 0, 8094, 0, 0, 0, 0, 8095, 0, 0, 0, 0, 0, 0, 0, - 7986, 7988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7990, 0, 0, 0, 0, 0, 0, 0, 0, - 7987, 7989, 0, 0, 7991, 0, 0, 0, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7998, 0, 0, 0, 0, 0, 0, 0, 0, 7995, 7997, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7999, 0, 0, 0, 0, 0, 0, 0, 0, 8002, 8004, 0, 0, 0, - 8003, 8005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8010, 8012, 0, 0, 0, 8011, - 8013, 0, 0, 0, 8018, 8020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8022, 0, 0, 0, - 0, 0, 0, 0, 0, 8019, 8021, 0, 0, 8023, 0, 0, 0, 0, 0, 0, 0, 0, 8027, - 8029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8031, 0, 0, 0, 0, 0, 0, 0, 0, 8034, - 8036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8038, 8096, 0, 0, 0, 0, 0, 0, 0, - 8035, 8037, 0, 0, 8039, 8097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8098, - 0, 0, 0, 0, 8099, 0, 0, 0, 0, 8100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8101, 0, 0, 0, 0, 8102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8103, 0, 0, - 0, 0, 0, 0, 0, 8042, 8044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8046, 8104, 0, - 0, 0, 0, 0, 0, 0, 8043, 8045, 0, 0, 8047, 8105, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8106, 0, 0, 0, 0, 8107, 0, 0, 0, 0, 8108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8109, 0, 0, 0, 0, 8110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8111, 0, 0, 0, 0, 8114, 0, 0, 0, 0, 8130, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8178, 0, 0, 0, 0, 8119, 0, 0, 0, 0, 0, 0, 0, 8141, 8142, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8143, 0, 0, 0, 0, 0, 8135, 0, 0, 0, 0, 8183, - 0, 0, 0, 0, 0, 0, 0, 8157, 8158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8159, 0, - 0, 0, 8602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8603, 0, 0, 0, 0, 8622, - 0, 0, 0, 0, 8653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8655, 0, 0, 0, 0, - 8654, 0, 0, 0, 0, 8708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8713, 0, 0, - 0, 0, 8716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8740, 0, 0, 0, 0, 8742, - 0, 0, 0, 0, 8769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8772, 0, 0, 0, 0, - 8775, 0, 0, 0, 0, 8777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8813, 0, 0, - 0, 0, 8802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8816, 0, 0, 0, 0, 8817, - 0, 0, 0, 0, 8820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8821, 0, 0, 0, 0, - 8824, 0, 0, 0, 0, 8825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8832, 0, 0, - 0, 0, 8833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8928, 0, 0, 0, 0, 8929, - 0, 0, 0, 0, 8836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8837, 0, 0, 0, 0, - 8840, 0, 0, 0, 0, 8841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8930, 0, 0, - 0, 0, 8931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8876, 0, 0, 0, 0, 8877, - 0, 0, 0, 0, 8878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8879, 0, 0, 0, 0, - 8938, 0, 0, 0, 0, 8939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8940, 0, 0, - 0, 0, 8941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12436, 0, 0, 0, 0, 12364, - 0, 0, 0, 0, 12366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12368, 0, 0, 0, 0, - 12370, 0, 0, 0, 0, 12372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12374, 0, - 0, 0, 0, 12376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12378, 0, 0, 0, 0, - 12380, 0, 0, 0, 0, 12382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12384, 0, - 0, 0, 0, 12386, 0, 0, 0, 0, 12389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12391, 0, 0, 0, 0, 12393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12400, - 12401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12403, 12404, 0, 0, 0, 12406, - 12407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12409, 12410, 0, 0, 0, 12412, - 12413, 0, 0, 0, 12446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12532, 0, 0, - 0, 0, 12460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12462, 0, 0, 0, 0, - 12464, 0, 0, 0, 0, 12466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12468, 0, - 0, 0, 0, 12470, 0, 0, 0, 0, 12472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12474, 0, 0, 0, 0, 12476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12478, 0, - 0, 0, 0, 12480, 0, 0, 0, 0, 12482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12485, 0, 0, 0, 0, 12487, 0, 0, 0, 0, 12489, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12496, 12497, 0, 0, 0, 12499, 12500, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12502, 12503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12505, 12506, 0, 0, - 0, 12508, 12509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12535, 0, 0, 0, 0, - 12536, 0, 0, 0, 0, 12537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12538, 0, - 0, 0, 0, 12542, 0, + 0, 7915, 7913, 0, 7919, 0, 0, 0, 0, 7917, 0, 0, 0, 0, 0, 0, 0, 0, 7921, + 0, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, + 0, 0, 7708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7709, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 8122, + 902, 0, 0, 8121, 8120, 7944, 7945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8124, 8136, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7960, 7961, 0, 0, 0, + 0, 0, 0, 8138, 905, 0, 0, 0, 0, 7976, 7977, 0, 0, 0, 0, 0, 8140, 0, 0, 0, + 0, 0, 0, 0, 0, 8154, 906, 0, 0, 8153, 8152, 0, 938, 0, 0, 0, 0, 0, 0, + 7992, 7993, 0, 0, 0, 0, 0, 0, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8172, 0, 0, 0, 0, 0, 0, 8170, 910, 0, 0, + 8169, 8168, 0, 939, 0, 0, 0, 0, 0, 0, 0, 8025, 0, 0, 0, 0, 0, 0, 8186, + 911, 0, 0, 0, 0, 8040, 8041, 0, 0, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8116, 0, 0, 0, 0, 0, 8132, 0, 0, 0, 0, 0, 0, 0, 0, 8048, + 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 0, 0, 0, 0, 7936, 7937, 0, 0, 0, 0, + 8118, 8115, 0, 0, 0, 0, 0, 0, 0, 0, 8050, 941, 0, 0, 0, 0, 7952, 7953, 0, + 0, 0, 0, 0, 0, 8052, 942, 0, 0, 0, 0, 7968, 7969, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8134, 8131, 8054, 943, 0, 0, 8145, 8144, 0, 970, 0, 0, 0, 0, + 0, 0, 7984, 7985, 0, 0, 0, 0, 8150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8056, 972, + 0, 0, 0, 0, 8000, 8001, 0, 0, 0, 0, 8164, 8165, 0, 0, 0, 0, 0, 0, 8058, + 973, 0, 0, 8161, 8160, 0, 971, 0, 0, 0, 0, 0, 0, 8016, 8017, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8166, 0, 8060, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8032, 8033, 0, 0, 0, 0, 8182, 8179, 0, 0, 0, 0, 0, 0, 0, 0, 8146, + 912, 0, 0, 8151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8162, 944, 0, 0, 8167, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8180, 0, 979, 0, 0, 0, 0, 0, 980, 0, + 0, 0, 0, 0, 1031, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 1027, 0, + 0, 0, 0, 1024, 0, 0, 0, 0, 1238, 0, 1025, 0, 0, 0, 1217, 0, 1244, 0, 0, + 0, 0, 0, 1246, 0, 0, 0, 0, 0, 0, 1037, 0, 0, 0, 1250, 1049, 0, 1252, 0, + 0, 0, 0, 0, 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, + 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1272, 0, 0, 0, 0, 0, 1260, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, + 0, 0, 0, 0, 1107, 0, 0, 0, 0, 1104, 0, 0, 0, 0, 1239, 0, 1105, 0, 0, 0, + 1218, 0, 1245, 0, 0, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, + 1251, 1081, 0, 1253, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1255, 0, 0, 1263, 1118, 0, 1265, 0, 0, 1267, 0, 0, 1269, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1273, 0, 0, 0, 0, 0, 1261, 0, 0, 0, 0, + 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142, 0, 0, 0, 0, 0, 1143, 0, 0, + 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 1258, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1259, 0, 0, 0, 0, 1570, 1571, 1573, 0, + 0, 0, 0, 1572, 0, 0, 0, 0, 0, 1574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1730, 0, 0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 0, 0, + 2345, 0, 0, 0, 0, 0, 2353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356, + 0, 0, 0, 0, 0, 0, 2507, 2508, 0, 0, 0, 0, 0, 0, 2891, 2888, 2892, 0, 0, + 0, 0, 0, 0, 0, 2964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3018, 3020, 0, + 0, 0, 0, 3019, 0, 0, 0, 0, 0, 0, 0, 3144, 0, 0, 0, 0, 0, 0, 0, 3264, 0, + 0, 0, 0, 3274, 3271, 3272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3275, 0, + 0, 0, 0, 0, 0, 0, 3402, 3404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3403, + 0, 0, 0, 0, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 3549, 0, 0, 0, 0, 0, 0, + 0, 0, 4134, 0, 0, 0, 0, 0, 0, 6918, 0, 0, 0, 0, 0, 6920, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6922, 0, 0, 0, 0, 0, 6924, 0, 0, 0, 0, 0, 6926, + 0, 0, 0, 0, 0, 6930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6971, 0, 0, + 0, 0, 0, 6973, 0, 0, 0, 0, 0, 6976, 0, 0, 0, 0, 0, 6977, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6979, 0, 0, 0, 0, 0, 0, 7736, 0, 0, 0, 0, 0, + 7737, 0, 0, 0, 0, 0, 7772, 0, 0, 0, 0, 0, 7773, 0, 0, 0, 0, 0, 0, 0, + 7784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7785, 0, 7852, 0, 0, 7862, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7853, 0, 0, 7863, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7878, 0, 0, 0, 0, 0, 7879, 0, 0, 0, 0, 0, 7896, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7897, 0, 0, 0, 7938, 7940, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7942, 8064, 7939, 7941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7943, 8065, + 0, 0, 0, 0, 0, 8066, 0, 0, 0, 0, 0, 8067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8068, 0, 0, 0, 0, 0, 8069, 0, 0, 0, 0, 0, 8070, 0, 0, 0, 0, 0, + 8071, 0, 0, 0, 0, 0, 0, 0, 0, 7946, 7948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7950, 8072, 7947, 7949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7951, 8073, 0, 0, + 0, 0, 0, 8074, 0, 0, 0, 0, 0, 8075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8076, 0, 0, 0, 0, 0, 8077, 0, 0, 0, 0, 0, 8078, 0, 0, 0, 0, 0, 8079, + 0, 0, 0, 0, 0, 0, 0, 0, 7954, 7956, 0, 0, 0, 0, 7955, 7957, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7962, 7964, 0, 0, 0, 0, 7963, 7965, 0, 0, 0, 0, + 7970, 7972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7974, 8080, 7971, 7973, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7975, 8081, 0, 0, 0, 0, 0, 8082, 0, 0, 0, 0, 0, + 8083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8084, 0, 0, 0, 0, 0, 8085, + 0, 0, 0, 0, 0, 8086, 0, 0, 0, 0, 0, 8087, 0, 0, 0, 0, 0, 0, 0, 0, 7978, + 7980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7982, 8088, 7979, 7981, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7983, 8089, 0, 0, 0, 0, 0, 8090, 0, 0, 0, 0, 0, 8091, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8092, 0, 0, 0, 0, 0, 8093, 0, 0, + 0, 0, 0, 8094, 0, 0, 0, 0, 0, 8095, 0, 0, 0, 0, 0, 0, 0, 0, 7986, 7988, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7990, 0, 7987, 7989, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 7998, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7995, 7997, 0, 0, 7999, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8002, 8004, 0, 0, 0, 0, 8003, 8005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8010, 8012, 0, 0, 0, 0, 8011, 8013, 0, 0, 0, 0, 8018, 8020, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8022, 0, 8019, 8021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8027, 8029, 0, 0, 8031, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8034, 8036, 0, 0, 8038, 8096, 0, 0, 0, 0, 0, 0, 0, 0, 8035, + 8037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8039, 8097, 0, 0, 0, 0, 0, 8098, 0, + 0, 0, 0, 0, 8099, 0, 0, 0, 0, 0, 8100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8101, 0, 0, 0, 0, 0, 8102, 0, 0, 0, 0, 0, 8103, 0, 0, 0, 0, 0, 0, + 0, 0, 8042, 8044, 0, 0, 8046, 8104, 0, 0, 0, 0, 0, 0, 0, 0, 8043, 8045, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8047, 8105, 0, 0, 0, 0, 0, 8106, 0, 0, 0, + 0, 0, 8107, 0, 0, 0, 0, 0, 8108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8109, 0, 0, 0, 0, 0, 8110, 0, 0, 0, 0, 0, 8111, 0, 0, 0, 0, 0, 8114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8130, 0, 0, 0, 0, 0, 8178, 0, 0, 0, + 0, 0, 8119, 0, 0, 0, 0, 0, 0, 0, 0, 8141, 8142, 0, 0, 8143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8135, 0, 0, 0, 0, 0, 8183, 0, 0, 0, 0, 0, + 0, 0, 0, 8157, 8158, 0, 0, 8159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8602, 0, 0, 0, 0, 0, 8603, 0, 0, 0, 0, 0, 8622, 0, 0, 0, 0, 0, 8653, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8655, 0, 0, 0, 0, 0, 8654, 0, 0, 0, + 0, 0, 8708, 0, 0, 0, 0, 0, 8713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8716, 0, 0, 0, 0, 0, 8740, 0, 0, 0, 0, 0, 8742, 0, 0, 0, 0, 0, 8769, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8772, 0, 0, 0, 0, 0, 8775, 0, 0, 0, + 0, 0, 8777, 0, 0, 0, 0, 0, 8813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8802, 0, 0, 0, 0, 0, 8816, 0, 0, 0, 0, 0, 8817, 0, 0, 0, 0, 0, 8820, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8821, 0, 0, 0, 0, 0, 8824, 0, 0, 0, + 0, 0, 8825, 0, 0, 0, 0, 0, 8832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8833, 0, 0, 0, 0, 0, 8928, 0, 0, 0, 0, 0, 8929, 0, 0, 0, 0, 0, 8836, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8837, 0, 0, 0, 0, 0, 8840, 0, 0, 0, + 0, 0, 8841, 0, 0, 0, 0, 0, 8930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8931, 0, 0, 0, 0, 0, 8876, 0, 0, 0, 0, 0, 8877, 0, 0, 0, 0, 0, 8878, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8879, 0, 0, 0, 0, 0, 8938, 0, 0, 0, + 0, 0, 8939, 0, 0, 0, 0, 0, 8940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8941, 0, 0, 0, 0, 0, 0, 12436, 0, 0, 0, 0, 0, 12364, 0, 0, 0, 0, 0, + 12366, 0, 0, 0, 0, 0, 12368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12370, 0, 0, 0, 0, 0, 12372, 0, 0, 0, 0, 0, 12374, 0, 0, 0, 0, 0, 12376, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12378, 0, 0, 0, 0, 0, 12380, 0, 0, + 0, 0, 0, 12382, 0, 0, 0, 0, 0, 12384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12386, 0, 0, 0, 0, 0, 12389, 0, 0, 0, 0, 0, 12391, 0, 0, 0, 0, 0, + 12393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12400, 12401, 0, 0, 0, 0, + 12403, 12404, 0, 0, 0, 0, 12406, 12407, 0, 0, 0, 0, 12409, 12410, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12412, 12413, 0, 0, 0, 0, 12446, 0, 0, 0, + 0, 0, 12532, 0, 0, 0, 0, 0, 12460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12462, 0, 0, 0, 0, 0, 12464, 0, 0, 0, 0, 0, 12466, 0, 0, 0, 0, 0, 12468, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12470, 0, 0, 0, 0, 0, 12472, 0, 0, + 0, 0, 0, 12474, 0, 0, 0, 0, 0, 12476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12478, 0, 0, 0, 0, 0, 12480, 0, 0, 0, 0, 0, 12482, 0, 0, 0, 0, 0, + 12485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12487, 0, 0, 0, 0, 0, + 12489, 0, 0, 0, 0, 0, 12496, 12497, 0, 0, 0, 0, 12499, 12500, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12502, 12503, 0, 0, 0, 0, 12505, 12506, 0, 0, 0, + 0, 12508, 12509, 0, 0, 0, 0, 12535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12536, 0, 0, 0, 0, 0, 12537, 0, 0, 0, 0, 0, 12538, 0, 0, 0, 0, 0, + 12542, 0, }; static const change_record change_records_3_2_0[] = { - { 255, 255, 255, 0 }, - { 11, 255, 255, 0 }, - { 10, 255, 255, 0 }, - { 19, 21, 255, 0 }, - { 255, 255, 2, 0 }, - { 255, 255, 3, 0 }, - { 255, 255, 1, 0 }, - { 255, 0, 255, 0 }, - { 255, 29, 255, 0 }, - { 14, 255, 255, 0 }, - { 255, 7, 1, 0 }, - { 255, 7, 2, 0 }, - { 255, 7, 3, 0 }, - { 255, 7, 4, 0 }, - { 255, 7, 5, 0 }, - { 255, 7, 6, 0 }, - { 255, 7, 7, 0 }, - { 255, 7, 8, 0 }, - { 255, 7, 9, 0 }, - { 255, 5, 255, 0 }, - { 15, 14, 255, 0 }, - { 255, 10, 255, 0 }, - { 18, 255, 255, 0 }, - { 19, 255, 255, 0 }, - { 255, 255, 0, 0 }, - { 255, 255, 4, 0 }, - { 255, 255, 5, 0 }, - { 255, 255, 6, 0 }, - { 255, 255, 7, 0 }, - { 255, 255, 8, 0 }, - { 255, 255, 9, 0 }, - { 9, 255, 255, 0 }, - { 255, 20, 255, 0 }, - { 255, 19, 255, 0 }, - { 15, 255, 255, 0 }, - { 255, 255, 255, -1 }, + { 255, 255, 255, 255, 0 }, + { 11, 255, 255, 255, 0 }, + { 10, 255, 255, 255, 0 }, + { 19, 21, 255, 255, 0 }, + { 255, 255, 2, 255, 0 }, + { 255, 255, 3, 255, 0 }, + { 255, 255, 1, 255, 0 }, + { 255, 0, 255, 255, 0 }, + { 255, 2, 255, 255, 0 }, + { 255, 29, 255, 255, 0 }, + { 255, 26, 255, 255, 0 }, + { 5, 255, 255, 255, 0 }, + { 14, 255, 255, 255, 0 }, + { 255, 255, 255, 0, 0 }, + { 255, 7, 1, 255, 0 }, + { 255, 7, 2, 255, 0 }, + { 255, 7, 3, 255, 0 }, + { 255, 7, 4, 255, 0 }, + { 255, 7, 5, 255, 0 }, + { 255, 7, 6, 255, 0 }, + { 255, 7, 7, 255, 0 }, + { 255, 7, 8, 255, 0 }, + { 255, 7, 9, 255, 0 }, + { 255, 5, 255, 255, 0 }, + { 15, 14, 255, 255, 0 }, + { 255, 10, 255, 255, 0 }, + { 18, 255, 255, 255, 0 }, + { 19, 255, 255, 255, 0 }, + { 255, 255, 0, 255, 0 }, + { 255, 255, 4, 255, 0 }, + { 255, 255, 5, 255, 0 }, + { 255, 255, 6, 255, 0 }, + { 255, 255, 7, 255, 0 }, + { 255, 255, 8, 255, 0 }, + { 255, 255, 9, 255, 0 }, + { 19, 30, 255, 255, 0 }, + { 255, 8, 255, 255, 0 }, + { 255, 22, 255, 255, 0 }, + { 255, 23, 255, 255, 0 }, + { 9, 255, 255, 255, 0 }, + { 255, 20, 255, 255, 0 }, + { 255, 19, 255, 255, 0 }, + { 255, 255, 255, 255, -1 }, + { 15, 255, 255, 255, 0 }, + { 255, 19, 255, 255, -1 }, }; static unsigned char changes_3_2_0_index[] = { - 0, 1, 2, 2, 3, 4, 5, 6, 2, 7, 2, 8, 9, 10, 11, 2, 2, 2, 12, 13, 14, 15, - 16, 17, 2, 18, 2, 2, 2, 2, 2, 19, 2, 20, 2, 2, 21, 22, 23, 24, 2, 2, 2, - 2, 2, 2, 2, 25, 26, 2, 27, 28, 29, 2, 2, 2, 2, 2, 30, 31, 2, 2, 2, 2, 32, - 33, 34, 2, 35, 2, 2, 36, 37, 38, 2, 2, 39, 40, 2, 41, 42, 42, 2, 2, 2, 2, - 43, 2, 44, 45, 46, 47, 48, 2, 2, 2, 2, 49, 2, 50, 51, 52, 53, 54, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 1, 2, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 2, 2, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 2, 2, 2, 23, 24, 25, 26, 2, 2, 27, 28, 29, 30, 2, 2, + 2, 2, 2, 31, 2, 32, 33, 34, 35, 36, 37, 2, 38, 39, 40, 2, 41, 42, 2, 43, + 2, 2, 44, 45, 46, 47, 48, 2, 2, 49, 50, 51, 2, 2, 52, 53, 2, 54, 55, 55, + 2, 2, 2, 2, 56, 2, 57, 58, 59, 60, 61, 2, 2, 2, 2, 62, 63, 64, 65, 66, + 67, 68, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 55, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 69, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56, 57, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58, 2, 59, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 70, 71, 2, 2, 2, 2, 2, 2, 2, 2, 2, 41, 41, 72, 73, 41, 74, 75, 76, 77, + 2, 78, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60, 61, 62, 2, 2, 2, 2, 63, 64, 2, 65, 66, - 67, 68, 69, 70, 2, 2, 71, 72, 73, 74, 2, 2, 2, 2, 2, 2, 75, 2, 2, 2, 76, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 79, 80, 81, 82, 83, 2, 2, 2, + 2, 84, 85, 2, 86, 87, 88, 89, 90, 91, 2, 92, 93, 94, 95, 96, 2, 2, 2, 2, + 2, 2, 97, 2, 98, 2, 99, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 41, 41, 41, 41, 41, 41, 100, 2, 101, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4339,9 +4550,9 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 102, 2, 103, 2, 104, 2, 2, 105, 2, 2, 2, 106, 107, 108, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 77, 2, 78, 2, 2, 79, 2, 2, - 2, 80, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 109, 110, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4363,6 +4574,7 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 111, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4598,9 +4810,9 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 41, 112, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 30, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4662,9 +4874,7 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, }; static unsigned char changes_3_2_0_data[] = { @@ -4686,248 +4896,319 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 9, 0, 7, 7, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, + 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, - 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 26, 27, 28, 29, 30, 1, - 1, 0, 0, 0, 0, 24, 6, 4, 5, 25, 26, 27, 28, 29, 30, 1, 1, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 30, 31, 32, 33, 34, + 1, 1, 0, 0, 0, 0, 28, 6, 4, 5, 29, 30, 31, 32, 33, 34, 1, 1, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, + 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, + 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4935,179 +5216,274 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, + 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, + 13, 0, 0, 0, 1, 1, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 43, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 0, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 0, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 7, - 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 0, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 0, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const change_record* get_change_3_2_0(Py_UCS4 n) Modified: python/trunk/Modules/unicodename_db.h ============================================================================== --- python/trunk/Modules/unicodename_db.h (original) +++ python/trunk/Modules/unicodename_db.h Wed Sep 10 15:38:12 2008 @@ -1,1247 +1,1344 @@ -/* this file was generated by Tools/unicode/makeunicodedata.py 2.5 */ +/* this file was generated by Tools/unicode/makeunicodedata.py 2.6 */ #define NAME_MAXLEN 256 /* lexicon */ static unsigned char lexicon[] = { 76, 69, 84, 84, 69, 210, 87, 73, 84, 200, 83, 77, 65, 76, 204, 83, 89, - 76, 76, 65, 66, 76, 197, 67, 65, 80, 73, 84, 65, 204, 89, 201, 67, 74, - 203, 76, 65, 84, 73, 206, 67, 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, - 217, 77, 65, 84, 72, 69, 77, 65, 84, 73, 67, 65, 204, 65, 82, 65, 66, 73, - 195, 83, 89, 77, 66, 79, 204, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, - 73, 65, 206, 83, 89, 76, 76, 65, 66, 73, 67, 211, 66, 79, 76, 196, 71, - 82, 69, 69, 203, 76, 73, 71, 65, 84, 85, 82, 197, 65, 78, 196, 77, 85, - 83, 73, 67, 65, 204, 83, 73, 71, 206, 69, 84, 72, 73, 79, 80, 73, 195, - 72, 65, 78, 71, 85, 204, 73, 84, 65, 76, 73, 195, 82, 65, 68, 73, 67, 65, - 204, 68, 73, 71, 73, 212, 83, 65, 78, 83, 45, 83, 69, 82, 73, 198, 70, - 79, 210, 67, 73, 82, 67, 76, 69, 196, 70, 73, 78, 65, 204, 83, 81, 85, - 65, 82, 197, 67, 89, 82, 73, 76, 76, 73, 195, 86, 79, 87, 69, 204, 86, - 65, 82, 73, 65, 84, 73, 79, 206, 66, 82, 65, 73, 76, 76, 197, 80, 65, 84, - 84, 69, 82, 206, 66, 89, 90, 65, 78, 84, 73, 78, 197, 82, 73, 71, 72, - 212, 73, 83, 79, 76, 65, 84, 69, 196, 76, 69, 70, 212, 194, 75, 65, 84, - 65, 75, 65, 78, 193, 75, 65, 78, 71, 88, 201, 76, 73, 78, 69, 65, 210, - 68, 79, 85, 66, 76, 197, 66, 69, 76, 79, 87, 128, 84, 73, 66, 69, 84, 65, - 206, 65, 66, 79, 86, 69, 128, 77, 79, 68, 73, 70, 73, 69, 210, 67, 79, - 77, 66, 73, 78, 73, 78, 199, 77, 69, 69, 205, 83, 73, 71, 78, 128, 68, - 79, 212, 73, 78, 73, 84, 73, 65, 204, 67, 65, 82, 82, 73, 69, 210, 65, - 82, 82, 79, 87, 128, 89, 69, 200, 77, 79, 78, 71, 79, 76, 73, 65, 206, - 86, 69, 82, 84, 73, 67, 65, 204, 65, 66, 79, 86, 197, 78, 85, 77, 66, 69, - 210, 67, 79, 80, 84, 73, 195, 75, 72, 77, 69, 210, 87, 72, 73, 84, 197, - 65, 82, 82, 79, 215, 66, 79, 216, 65, 128, 72, 69, 66, 82, 69, 215, 77, - 65, 82, 75, 128, 68, 82, 65, 87, 73, 78, 71, 211, 73, 128, 79, 128, 72, - 65, 76, 70, 87, 73, 68, 84, 200, 71, 69, 79, 82, 71, 73, 65, 206, 82, 73, - 71, 72, 84, 87, 65, 82, 68, 211, 73, 68, 69, 79, 71, 82, 65, 205, 85, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 73, 195, 84, 65, 201, 80, 65, - 82, 69, 78, 84, 72, 69, 83, 73, 90, 69, 196, 65, 76, 69, 198, 83, 67, 82, - 73, 80, 212, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 66, 76, 65, 67, - 203, 84, 79, 128, 85, 208, 70, 85, 76, 76, 87, 73, 68, 84, 200, 72, 79, - 79, 75, 128, 83, 89, 77, 66, 79, 76, 128, 68, 79, 87, 206, 70, 82, 65, - 75, 84, 85, 210, 72, 65, 200, 69, 81, 85, 65, 204, 72, 69, 65, 86, 217, - 84, 65, 199, 71, 76, 65, 71, 79, 76, 73, 84, 73, 195, 67, 72, 65, 82, 65, - 67, 84, 69, 210, 65, 82, 77, 69, 78, 73, 65, 206, 66, 69, 78, 71, 65, 76, - 201, 67, 72, 79, 83, 69, 79, 78, 199, 74, 69, 69, 205, 66, 82, 65, 67, - 75, 69, 84, 128, 72, 73, 82, 65, 71, 65, 78, 193, 87, 69, 83, 84, 45, 67, - 82, 69, 197, 84, 72, 65, 201, 83, 84, 82, 79, 75, 69, 128, 67, 72, 69, - 82, 79, 75, 69, 197, 73, 68, 69, 79, 71, 82, 65, 80, 200, 84, 87, 79, - 128, 71, 85, 74, 65, 82, 65, 84, 201, 77, 69, 68, 73, 65, 204, 74, 79, - 78, 71, 83, 69, 79, 78, 199, 75, 65, 78, 78, 65, 68, 193, 78, 69, 215, - 207, 79, 82, 73, 89, 193, 82, 85, 78, 73, 195, 84, 69, 84, 82, 65, 71, - 82, 65, 205, 68, 69, 83, 69, 82, 69, 212, 76, 85, 197, 83, 73, 78, 72, - 65, 76, 193, 84, 69, 76, 85, 71, 213, 66, 65, 82, 128, 78, 79, 84, 65, - 84, 73, 79, 206, 79, 78, 69, 128, 83, 89, 82, 73, 65, 195, 77, 65, 76, - 65, 89, 65, 76, 65, 205, 77, 89, 65, 78, 77, 65, 210, 71, 85, 82, 77, 85, - 75, 72, 201, 65, 67, 85, 84, 69, 128, 76, 73, 71, 72, 212, 72, 65, 76, - 198, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 76, 69, 70, 84, - 87, 65, 82, 68, 211, 84, 65, 77, 73, 204, 65, 80, 204, 70, 85, 78, 67, - 84, 73, 79, 78, 65, 204, 72, 65, 77, 90, 193, 84, 69, 76, 69, 71, 82, 65, - 80, 200, 74, 85, 78, 71, 83, 69, 79, 78, 199, 79, 198, 68, 65, 83, 73, - 193, 76, 73, 77, 66, 213, 77, 65, 75, 83, 85, 82, 193, 75, 72, 65, 82, - 79, 83, 72, 84, 72, 201, 76, 65, 207, 84, 207, 66, 65, 82, 194, 66, 79, - 80, 79, 77, 79, 70, 207, 72, 69, 88, 65, 71, 82, 65, 205, 77, 65, 82, - 203, 80, 83, 73, 76, 201, 77, 79, 78, 79, 83, 80, 65, 67, 197, 78, 79, - 212, 72, 79, 82, 73, 90, 79, 78, 84, 65, 204, 75, 72, 65, 200, 86, 79, - 67, 65, 76, 73, 195, 84, 72, 82, 69, 69, 128, 65, 69, 71, 69, 65, 206, - 76, 79, 87, 69, 210, 84, 73, 76, 68, 69, 128, 76, 79, 215, 84, 87, 207, - 67, 89, 80, 82, 73, 79, 212, 84, 73, 70, 73, 78, 65, 71, 200, 68, 73, 65, - 69, 82, 69, 83, 73, 83, 128, 70, 73, 86, 69, 128, 70, 79, 85, 82, 128, - 78, 85, 77, 69, 82, 65, 204, 86, 128, 65, 67, 82, 79, 80, 72, 79, 78, 73, - 195, 68, 79, 84, 211, 76, 79, 78, 199, 80, 69, 82, 83, 73, 65, 206, 65, - 78, 71, 76, 197, 72, 65, 82, 80, 79, 79, 206, 83, 73, 88, 128, 84, 79, - 78, 197, 85, 80, 80, 69, 210, 67, 73, 82, 67, 85, 77, 70, 76, 69, 216, - 71, 82, 65, 86, 69, 128, 72, 128, 65, 76, 80, 72, 193, 69, 73, 71, 72, - 84, 128, 77, 65, 67, 82, 79, 78, 128, 78, 79, 79, 206, 84, 72, 65, 65, - 78, 193, 72, 73, 71, 200, 75, 65, 128, 78, 73, 78, 69, 128, 83, 69, 86, - 69, 78, 128, 84, 72, 82, 69, 197, 84, 85, 82, 78, 69, 196, 83, 72, 65, - 86, 73, 65, 206, 83, 84, 79, 80, 128, 68, 128, 71, 128, 79, 77, 69, 71, - 193, 79, 88, 73, 65, 128, 83, 85, 66, 74, 79, 73, 78, 69, 196, 86, 65, - 82, 73, 65, 128, 89, 65, 128, 66, 128, 67, 73, 82, 67, 76, 197, 72, 65, - 128, 74, 128, 77, 65, 128, 82, 69, 86, 69, 82, 83, 69, 196, 82, 73, 71, - 72, 84, 128, 85, 80, 87, 65, 82, 68, 211, 80, 65, 83, 83, 73, 86, 69, 45, - 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, 66, 89, - 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, 78, 73, - 65, 206, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, - 67, 73, 69, 85, 67, 128, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, - 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 65, 78, 84, 73, 67, 76, 79, 67, - 75, 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, 67, 69, 79, 78, 71, - 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 83, - 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, - 82, 73, 69, 85, 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, - 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, 78, 71, 80, 73, 69, - 85, 80, 128, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, 79, 85, - 84, 80, 85, 212, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67, 72, 73, - 69, 85, 67, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, - 67, 73, 69, 85, 67, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 45, - 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, - 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, - 85, 84, 45, 72, 73, 69, 85, 72, 128, 84, 82, 79, 77, 73, 75, 79, 80, 65, - 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, 83, 73, - 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, 83, 73, - 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 75, 73, - 89, 69, 79, 75, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 89, 69, - 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, - 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 73, 69, 85, 78, 71, 45, 83, 83, - 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 76, 79, 78, 71, 45, 66, 82, 65, - 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 80, 65, 82, 84, 73, 65, 76, 76, - 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 82, 73, 69, 85, 76, 45, 80, 73, - 69, 85, 80, 45, 72, 73, 69, 85, 72, 128, 83, 72, 79, 82, 84, 45, 84, 87, - 73, 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 73, 79, 83, 45, 80, 73, 69, - 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 75, 65, 84, 65, 75, 65, 78, 65, - 45, 72, 73, 82, 65, 71, 65, 78, 193, 82, 73, 69, 85, 76, 45, 80, 73, 69, - 85, 80, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 80, - 65, 78, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, - 67, 73, 69, 85, 67, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65, 67, - 67, 65, 84, 79, 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 67, 73, - 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 80, 73, 69, - 85, 80, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 83, 73, 79, - 83, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 72, 65, 71, 65, 76, - 204, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, 79, 206, - 84, 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 75, - 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, 85, 80, 72, 128, 65, 78, 84, - 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65, 67, 67, 69, 78, - 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 78, 84, 73, 75, 69, 78, - 79, 75, 89, 76, 73, 83, 77, 65, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, - 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 69, 85, 67, 72, 45, 75, 72, 73, - 69, 85, 75, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 72, 73, 69, 85, - 67, 72, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 68, 128, 74, - 65, 76, 76, 65, 74, 65, 76, 65, 76, 79, 85, 72, 79, 85, 128, 75, 82, 65, - 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84, 73, - 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 76, 79, 78, 71, 45, 66, 82, - 65, 78, 67, 72, 45, 77, 65, 68, 210, 77, 73, 69, 85, 77, 45, 83, 83, 65, - 78, 71, 83, 73, 79, 83, 128, 80, 69, 84, 65, 83, 84, 79, 75, 79, 85, 70, - 73, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, 83, 83, 65, 78, 71, 83, 73, - 79, 83, 128, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, 73, 83, 77, 65, - 128, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 82, - 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 84, 69, 65, - 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, 69, 196, 80, 82, 79, 83, 71, - 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 84, 69, 65, 82, 68, 82, 79, 80, - 45, 83, 80, 79, 75, 69, 196, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, - 69, 82, 69, 196, 84, 82, 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, - 196, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, 128, 72, 73, - 71, 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 65, 70, 79, 82, 69, - 77, 69, 78, 84, 73, 79, 78, 69, 68, 128, 65, 82, 79, 85, 78, 68, 45, 80, - 82, 79, 70, 73, 76, 69, 128, 67, 79, 78, 67, 65, 86, 69, 45, 80, 79, 73, - 78, 84, 69, 196, 71, 79, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, - 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 57, - 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 79, 83, 211, 76, 79, - 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, - 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 77, 85, 76, 84, 73, 80, 76, 73, - 67, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 76, 73, 90, 65, 84, - 73, 79, 78, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 77, 65, 68, - 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 73, - 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 84, 69, 65, 82, 68, - 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 82, 79, 77, 73, 75, 79, 76, - 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, 83, 89, 78, 65, - 71, 77, 65, 128, 87, 72, 73, 84, 69, 45, 70, 69, 65, 84, 72, 69, 82, 69, - 196, 89, 80, 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 82, 73, 71, - 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 77, 85, 76, 84, 73, 80, 76, - 73, 67, 65, 84, 73, 79, 206, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, 79, - 87, 69, 196, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196, 75, - 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 82, 73, 69, 85, 76, - 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 84, 72, 73, - 69, 85, 84, 72, 128, 65, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, - 128, 65, 83, 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217, 77, 73, 69, - 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 80, - 65, 78, 83, 73, 79, 83, 128, 80, 65, 82, 65, 76, 76, 69, 76, 79, 71, 82, - 65, 77, 128, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 82, 128, 80, - 72, 73, 69, 85, 80, 72, 45, 80, 73, 69, 85, 80, 128, 80, 73, 69, 85, 80, - 45, 80, 72, 73, 69, 85, 80, 72, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, - 69, 85, 84, 72, 128, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, 69, - 128, 82, 73, 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83, 128, 84, 69, 84, - 65, 82, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 73, 75, 69, 85, 84, 45, - 75, 73, 89, 69, 79, 75, 128, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, - 85, 78, 196, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, 65, - 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89, 65, 128, 66, 79, 84, 84, 79, - 77, 45, 76, 73, 71, 72, 84, 69, 196, 67, 72, 73, 69, 85, 67, 72, 45, 72, - 73, 69, 85, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, - 128, 67, 79, 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 68, 79, 84, - 83, 45, 49, 50, 51, 52, 53, 54, 55, 56, 128, 69, 77, 66, 69, 76, 76, 73, - 83, 72, 77, 69, 78, 84, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85, - 67, 72, 128, 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 73, - 69, 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, - 45, 84, 72, 73, 69, 85, 84, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, - 73, 69, 85, 76, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, - 210, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, 69, - 85, 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, 69, 85, 80, 45, 67, - 72, 73, 69, 85, 67, 72, 128, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, - 75, 72, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, - 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, 79, 204, 83, 72, 79, 82, 84, - 45, 84, 87, 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, - 71, 45, 89, 82, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, - 128, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 69, - 82, 77, 79, 68, 89, 78, 65, 77, 73, 67, 128, 89, 85, 85, 75, 65, 76, 69, - 65, 80, 73, 78, 84, 85, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, - 78, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 76, 69, 70, - 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 73, 78, 84, 69, 82, 83, 69, 67, - 84, 73, 79, 78, 128, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 76, 217, - 68, 73, 70, 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 79, 87, 78, 45, - 80, 79, 73, 78, 84, 73, 78, 199, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, - 78, 79, 206, 67, 82, 89, 80, 84, 79, 71, 82, 65, 77, 77, 73, 195, 72, 89, - 80, 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 67, 79, 78, 67, 65, 86, 69, - 45, 83, 73, 68, 69, 196, 76, 69, 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, - 212, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, - 76, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 71, 72, 84, 45, 84, 79, 45, - 76, 69, 70, 212, 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73, 79, 206, 67, - 82, 79, 83, 83, 69, 68, 45, 84, 65, 73, 76, 128, 68, 73, 77, 73, 78, 85, - 84, 73, 79, 78, 45, 49, 128, 68, 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, - 69, 196, 71, 65, 69, 84, 84, 65, 45, 80, 73, 76, 76, 65, 128, 71, 69, 79, - 77, 69, 84, 82, 73, 67, 65, 76, 76, 217, 73, 69, 85, 78, 71, 45, 75, 73, - 89, 69, 79, 75, 128, 73, 78, 84, 69, 82, 80, 79, 76, 65, 84, 73, 79, 206, - 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, - 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, - 85, 84, 128, 84, 72, 73, 82, 84, 89, 45, 83, 69, 67, 79, 78, 196, 84, 87, - 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, 84, 89, 45, - 84, 72, 82, 69, 69, 128, 65, 67, 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, + 76, 76, 65, 66, 76, 197, 83, 73, 71, 206, 67, 65, 80, 73, 84, 65, 204, + 76, 65, 84, 73, 206, 89, 201, 67, 74, 203, 65, 82, 65, 66, 73, 195, 67, + 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, 217, 77, 65, 84, 72, 69, 77, + 65, 84, 73, 67, 65, 204, 67, 85, 78, 69, 73, 70, 79, 82, 205, 83, 89, 77, + 66, 79, 204, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, 73, 65, 206, 83, + 89, 76, 76, 65, 66, 73, 67, 211, 66, 79, 76, 196, 71, 82, 69, 69, 203, + 76, 73, 71, 65, 84, 85, 82, 197, 68, 73, 71, 73, 212, 65, 78, 196, 77, + 85, 83, 73, 67, 65, 204, 84, 73, 77, 69, 211, 69, 84, 72, 73, 79, 80, 73, + 195, 72, 65, 78, 71, 85, 204, 73, 84, 65, 76, 73, 195, 67, 89, 82, 73, + 76, 76, 73, 195, 82, 65, 68, 73, 67, 65, 204, 83, 65, 78, 83, 45, 83, 69, + 82, 73, 198, 86, 79, 87, 69, 204, 70, 79, 210, 67, 73, 82, 67, 76, 69, + 196, 86, 65, 201, 70, 73, 78, 65, 204, 67, 79, 77, 66, 73, 78, 73, 78, + 199, 83, 81, 85, 65, 82, 197, 86, 65, 82, 73, 65, 84, 73, 79, 206, 66, + 82, 65, 73, 76, 76, 197, 80, 65, 84, 84, 69, 82, 206, 82, 73, 71, 72, + 212, 76, 69, 70, 212, 66, 89, 90, 65, 78, 84, 73, 78, 197, 73, 83, 79, + 76, 65, 84, 69, 196, 194, 65, 66, 79, 86, 69, 128, 68, 79, 85, 66, 76, + 197, 75, 65, 84, 65, 75, 65, 78, 193, 75, 65, 78, 71, 88, 201, 76, 73, + 78, 69, 65, 210, 66, 69, 76, 79, 87, 128, 77, 79, 68, 73, 70, 73, 69, + 210, 83, 73, 71, 78, 128, 84, 73, 66, 69, 84, 65, 206, 77, 69, 69, 205, + 68, 79, 212, 65, 128, 65, 82, 82, 79, 87, 128, 73, 78, 73, 84, 73, 65, + 204, 67, 65, 82, 82, 73, 69, 210, 86, 69, 82, 84, 73, 67, 65, 204, 89, + 69, 200, 87, 72, 73, 84, 197, 65, 66, 79, 86, 197, 78, 85, 77, 66, 69, + 210, 85, 128, 65, 82, 82, 79, 215, 77, 79, 78, 71, 79, 76, 73, 65, 206, + 77, 89, 65, 78, 77, 65, 210, 67, 79, 80, 84, 73, 195, 75, 72, 77, 69, + 210, 79, 128, 73, 128, 84, 73, 76, 197, 77, 65, 82, 75, 128, 66, 79, 216, + 72, 69, 66, 82, 69, 215, 80, 76, 85, 211, 68, 82, 65, 87, 73, 78, 71, + 211, 82, 73, 71, 72, 84, 87, 65, 82, 68, 211, 83, 84, 82, 79, 75, 69, + 128, 72, 65, 76, 70, 87, 73, 68, 84, 200, 66, 65, 76, 73, 78, 69, 83, + 197, 66, 76, 65, 67, 203, 71, 69, 79, 82, 71, 73, 65, 206, 72, 79, 79, + 75, 128, 73, 68, 69, 79, 71, 82, 65, 205, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 73, 195, 84, 65, 201, 65, 76, 69, 198, 80, 65, 82, 69, 78, 84, 72, + 69, 83, 73, 90, 69, 196, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 83, 67, + 82, 73, 80, 212, 84, 79, 128, 213, 83, 89, 77, 66, 79, 76, 128, 85, 208, + 70, 85, 76, 76, 87, 73, 68, 84, 200, 72, 65, 200, 68, 79, 87, 206, 66, + 82, 65, 67, 75, 69, 84, 128, 69, 81, 85, 65, 204, 79, 198, 79, 86, 69, + 210, 84, 65, 199, 68, 79, 77, 73, 78, 207, 70, 82, 65, 75, 84, 85, 210, + 78, 85, 77, 69, 82, 73, 195, 72, 69, 65, 86, 217, 84, 87, 79, 128, 77, + 65, 76, 65, 89, 65, 76, 65, 205, 71, 76, 65, 71, 79, 76, 73, 84, 73, 195, + 67, 72, 65, 82, 65, 67, 84, 69, 210, 76, 69, 70, 84, 87, 65, 82, 68, 211, + 79, 78, 69, 128, 84, 69, 76, 85, 71, 213, 65, 82, 77, 69, 78, 73, 65, + 206, 66, 69, 78, 71, 65, 76, 201, 67, 72, 79, 83, 69, 79, 78, 199, 74, + 69, 69, 205, 77, 69, 68, 73, 65, 204, 66, 65, 82, 128, 72, 73, 82, 65, + 71, 65, 78, 193, 87, 69, 83, 84, 45, 67, 82, 69, 197, 84, 72, 65, 201, + 75, 65, 78, 78, 65, 68, 193, 67, 72, 69, 82, 79, 75, 69, 197, 72, 65, 76, + 198, 73, 68, 69, 79, 71, 82, 65, 80, 200, 79, 82, 73, 89, 193, 84, 87, + 207, 67, 72, 65, 205, 71, 85, 74, 65, 82, 65, 84, 201, 74, 79, 78, 71, + 83, 69, 79, 78, 199, 78, 69, 215, 82, 85, 78, 73, 195, 83, 65, 85, 82, + 65, 83, 72, 84, 82, 193, 84, 69, 84, 82, 65, 71, 82, 65, 205, 68, 69, 83, + 69, 82, 69, 212, 76, 85, 197, 83, 73, 78, 72, 65, 76, 193, 71, 85, 82, + 77, 85, 75, 72, 201, 78, 79, 84, 65, 84, 73, 79, 206, 83, 89, 82, 73, 65, + 195, 84, 72, 82, 69, 197, 86, 79, 67, 65, 76, 73, 195, 72, 65, 128, 65, + 67, 85, 84, 69, 128, 76, 69, 80, 67, 72, 193, 76, 73, 71, 72, 212, 70, + 79, 85, 82, 128, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 84, + 65, 77, 73, 204, 65, 80, 204, 70, 85, 78, 67, 84, 73, 79, 78, 65, 204, + 72, 65, 77, 90, 193, 77, 65, 82, 203, 84, 72, 82, 69, 69, 128, 84, 69, + 76, 69, 71, 82, 65, 80, 200, 79, 78, 197, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 204, 74, 85, 78, 71, 83, 69, 79, 78, 199, 66, 65, 82, 194, 68, 65, + 83, 73, 193, 70, 73, 86, 69, 128, 76, 73, 77, 66, 213, 77, 65, 75, 83, + 85, 82, 193, 66, 79, 80, 79, 77, 79, 70, 207, 75, 65, 128, 75, 72, 65, + 82, 79, 83, 72, 84, 72, 201, 76, 65, 207, 84, 207, 72, 69, 88, 65, 71, + 82, 65, 205, 76, 79, 78, 199, 83, 73, 88, 128, 76, 79, 215, 80, 83, 73, + 76, 201, 69, 73, 71, 72, 84, 128, 75, 193, 77, 79, 78, 79, 83, 80, 65, + 67, 197, 78, 79, 212, 89, 65, 128, 78, 73, 78, 69, 128, 83, 128, 83, 69, + 86, 69, 78, 128, 83, 84, 82, 79, 75, 197, 86, 128, 68, 79, 84, 211, 77, + 65, 128, 82, 69, 86, 69, 82, 83, 69, 196, 72, 73, 71, 200, 75, 72, 65, + 200, 76, 79, 87, 69, 210, 78, 75, 207, 84, 73, 76, 68, 69, 128, 84, 79, + 78, 197, 78, 85, 77, 69, 82, 65, 204, 82, 65, 128, 84, 85, 82, 78, 69, + 196, 65, 69, 71, 69, 65, 206, 72, 128, 80, 65, 128, 71, 128, 76, 65, 71, + 65, 194, 80, 72, 65, 71, 83, 45, 80, 193, 67, 89, 80, 82, 73, 79, 212, + 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 83, 85, 78, 68, 65, 78, 69, 83, + 197, 84, 73, 70, 73, 78, 65, 71, 200, 68, 128, 80, 65, 83, 83, 73, 86, + 69, 45, 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, + 66, 89, 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, + 78, 73, 65, 206, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, + 78, 71, 67, 73, 69, 85, 67, 128, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, + 76, 76, 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 65, 78, 84, 73, 67, 76, + 79, 67, 75, 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, 67, 69, 79, + 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, + 80, 83, 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, + 65, 128, 82, 73, 69, 85, 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, + 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, 78, 71, 80, + 73, 69, 85, 80, 128, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, + 79, 85, 84, 80, 85, 212, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67, + 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, + 78, 71, 67, 73, 69, 85, 67, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, + 83, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, + 85, 77, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 84, 73, + 75, 69, 85, 84, 45, 72, 73, 69, 85, 72, 128, 84, 82, 79, 77, 73, 75, 79, + 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, + 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, + 83, 73, 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, + 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, + 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 65, 67, 85, 84, 69, 45, + 71, 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 128, 67, 72, 73, 84, 85, 69, + 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 71, 82, 65, 86, 69, 45, + 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 73, 69, 85, 78, 71, 45, + 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 76, 79, 78, 71, 45, 66, + 82, 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 80, 65, 82, 84, 73, 65, + 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 82, 73, 69, 85, 76, 45, + 80, 73, 69, 85, 80, 45, 72, 73, 69, 85, 72, 128, 83, 72, 79, 82, 84, 45, + 84, 87, 73, 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 73, 79, 83, 45, 80, + 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 75, 65, 84, 65, 75, 65, + 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 82, 73, 69, 85, 76, 45, 80, + 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, + 45, 80, 65, 78, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, + 85, 77, 67, 73, 69, 85, 67, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 48, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 48, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 48, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, + 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, + 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, + 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 54, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 48, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 49, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 50, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 50, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 50, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 50, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, + 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, + 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, + 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 51, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 52, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 53, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 54, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 53, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 53, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 53, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, + 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, + 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, + 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 48, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 49, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 50, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 51, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 77, 65, 82, 67, 65, + 84, 79, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 80, 73, 69, 85, 80, 45, + 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 83, + 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76, 45, 77, 73, + 69, 85, 77, 45, 83, 73, 79, 83, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, + 71, 45, 72, 65, 71, 65, 76, 204, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, + 85, 78, 67, 84, 73, 79, 206, 84, 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, + 73, 83, 84, 79, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, + 85, 80, 72, 128, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, + 78, 128, 65, 67, 67, 69, 78, 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, + 65, 78, 84, 73, 75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 67, 69, + 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 69, + 85, 67, 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 84, 85, 69, + 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 49, 68, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76, 79, 85, + 72, 79, 85, 128, 75, 82, 65, 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, + 65, 128, 75, 82, 65, 84, 73, 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, + 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, 210, 77, 73, + 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 69, 84, 65, + 83, 84, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, + 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 83, 73, 70, 73, 83, 84, 79, + 76, 89, 71, 73, 83, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, + 78, 65, 71, 77, 65, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, + 73, 79, 83, 128, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, + 69, 196, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 84, + 69, 65, 82, 68, 82, 79, 80, 45, 83, 80, 79, 75, 69, 196, 66, 76, 65, 67, + 75, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 84, 82, 73, 65, 78, 71, 76, + 69, 45, 72, 69, 65, 68, 69, 196, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, + 84, 73, 79, 78, 128, 72, 73, 71, 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, + 45, 185, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, 69, 68, 128, 65, + 82, 79, 85, 78, 68, 45, 80, 82, 79, 70, 73, 76, 69, 128, 67, 79, 78, 67, + 65, 86, 69, 45, 80, 79, 73, 78, 84, 69, 196, 71, 79, 82, 71, 79, 83, 89, + 78, 84, 72, 69, 84, 79, 78, 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, + 84, 73, 79, 78, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 68, 57, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, + 72, 45, 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 83, + 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 77, + 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, + 84, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 83, 69, 83, 81, 85, 73, 81, + 85, 65, 68, 82, 65, 84, 69, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, + 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, + 85, 196, 83, 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 84, + 69, 65, 82, 68, 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 82, 79, 77, + 73, 75, 79, 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, + 83, 89, 78, 65, 71, 77, 65, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, + 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 48, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 48, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, + 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 49, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 49, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, + 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 50, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 50, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, + 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 51, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 51, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, + 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 52, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 52, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, + 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 52, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 53, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, + 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 53, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 53, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, + 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 54, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 54, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 54, 45, 48, 54, 128, 87, 72, 73, 84, 69, 45, 70, 69, 65, 84, 72, 69, 82, + 69, 196, 89, 80, 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 82, 73, + 71, 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 77, 85, 76, 84, 73, 80, + 76, 73, 67, 65, 84, 73, 79, 206, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, + 79, 87, 69, 196, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196, + 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 82, 73, 69, 85, + 76, 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 65, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, + 78, 128, 65, 83, 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217, 77, 73, + 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, + 80, 65, 78, 83, 73, 79, 83, 128, 80, 65, 82, 65, 76, 76, 69, 76, 79, 71, + 82, 65, 77, 128, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 82, 128, + 80, 72, 73, 69, 85, 80, 72, 45, 80, 73, 69, 85, 80, 128, 80, 73, 69, 85, + 80, 45, 80, 72, 73, 69, 85, 80, 72, 128, 80, 73, 69, 85, 80, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, + 69, 128, 82, 73, 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83, 128, 84, 69, + 84, 65, 82, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 73, 75, 69, 85, 84, + 45, 75, 73, 89, 69, 79, 75, 128, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, + 79, 85, 78, 196, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, + 65, 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89, 65, 128, 66, 79, 84, 84, + 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 67, 72, 73, 69, 85, 67, 72, 45, + 72, 73, 69, 85, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, + 67, 128, 67, 72, 82, 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, 128, 67, 79, + 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 68, 79, 84, 83, 45, 49, + 50, 51, 52, 53, 54, 55, 56, 128, 69, 77, 66, 69, 76, 76, 73, 83, 72, 77, + 69, 78, 84, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85, 67, 72, 128, + 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 73, 69, 85, 78, + 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, 73, 69, 85, + 76, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 77, 73, + 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, 69, 85, 78, 45, + 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, 69, 85, 80, 45, 67, 72, 73, 69, + 85, 67, 72, 128, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, + 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, 79, 82, + 84, 45, 84, 87, 73, 71, 45, 83, 79, 204, 83, 72, 79, 82, 84, 45, 84, 87, + 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 89, + 82, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128, 83, 84, + 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 69, 82, 77, 79, + 68, 89, 78, 65, 77, 73, 67, 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, + 78, 84, 85, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 78, 128, 65, + 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 76, 69, 70, 84, 45, 80, + 79, 73, 78, 84, 73, 78, 199, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, + 78, 128, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 76, 217, 68, 73, 70, + 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 79, 87, 78, 45, 80, 79, 73, + 78, 84, 73, 78, 199, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206, + 67, 82, 89, 80, 84, 79, 71, 82, 65, 77, 77, 73, 195, 69, 71, 89, 80, 84, + 79, 76, 79, 71, 73, 67, 65, 204, 72, 89, 80, 72, 69, 78, 45, 77, 73, 78, + 85, 83, 128, 67, 79, 78, 67, 65, 86, 69, 45, 83, 73, 68, 69, 196, 76, 69, + 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 78, 73, 69, 85, 78, 45, 84, + 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, + 128, 82, 73, 71, 72, 84, 45, 84, 79, 45, 76, 69, 70, 212, 84, 82, 65, 78, + 83, 80, 79, 83, 73, 84, 73, 79, 206, 67, 82, 79, 83, 83, 69, 68, 45, 84, + 65, 73, 76, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, + 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 71, 65, 69, 84, 84, 65, + 45, 80, 73, 76, 76, 65, 128, 71, 69, 79, 77, 69, 84, 82, 73, 67, 65, 76, + 76, 217, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79, 75, 128, 73, 78, 84, + 69, 82, 80, 79, 76, 65, 84, 73, 79, 206, 78, 73, 69, 85, 78, 45, 75, 73, + 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, 84, 73, 75, 69, 85, 84, 128, + 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85, 84, 128, 84, 72, 73, 82, 84, + 89, 45, 83, 69, 67, 79, 78, 196, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, + 72, 84, 200, 84, 87, 69, 78, 84, 89, 45, 84, 72, 82, 69, 69, 128, 65, 67, + 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 85, 84, 69, 45, 77, + 65, 67, 82, 79, 78, 128, 65, 75, 84, 73, 69, 83, 69, 76, 83, 75, 65, 66, 128, 65, 78, 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 45, 50, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, - 65, 72, 65, 128, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 67, - 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128, 67, 89, 76, 73, 78, 68, - 82, 73, 67, 73, 84, 89, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, - 83, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 73, 70, - 70, 73, 67, 85, 76, 84, 73, 69, 83, 128, 68, 73, 77, 73, 78, 73, 83, 72, - 77, 69, 78, 84, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, - 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 83, 67, 79, - 78, 84, 73, 78, 85, 79, 85, 211, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, - 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 56, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, - 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 55, 56, - 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, - 45, 49, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, - 54, 55, 56, 128, 69, 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 70, - 76, 69, 85, 82, 45, 68, 69, 45, 76, 73, 83, 128, 71, 82, 79, 78, 84, 72, - 73, 83, 77, 65, 84, 65, 128, 72, 89, 80, 79, 68, 73, 65, 83, 84, 79, 76, - 69, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 69, 85, - 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 78, 84, 69, 82, 83, 89, 76, - 76, 65, 66, 73, 195, 74, 85, 68, 69, 79, 45, 83, 80, 65, 78, 73, 83, 200, - 75, 73, 89, 69, 79, 75, 45, 82, 73, 69, 85, 76, 128, 76, 65, 66, 73, 65, - 76, 73, 90, 65, 84, 73, 79, 206, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, - 76, 85, 211, 77, 79, 82, 80, 72, 79, 76, 79, 71, 73, 67, 65, 204, 79, 80, - 69, 78, 45, 79, 85, 84, 76, 73, 78, 69, 196, 80, 69, 82, 80, 69, 78, 68, - 73, 67, 85, 76, 65, 210, 82, 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 48, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 51, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, - 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 55, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 48, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 55, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 50, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, - 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 57, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 50, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 54, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 57, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, - 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 54, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 52, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 56, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, - 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 49, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 54, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 54, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 54, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 56, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 55, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 49, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 55, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 55, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 53, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 55, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, - 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 56, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 51, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 56, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 56, 55, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 48, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 57, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 51, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, - 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 55, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 57, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 49, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, - 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 50, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 48, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 56, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 50, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 50, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 49, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 50, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, - 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 53, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 50, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 50, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 56, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, - 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 50, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 50, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 53, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 50, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 50, 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 57, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 48, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 50, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, - 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 51, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 50, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 50, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 55, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, - 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 48, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 52, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 50, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 50, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 55, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 50, 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, - 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 50, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 50, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 52, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 53, 54, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, - 45, 65, 210, 83, 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, - 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 73, 79, 83, 45, 80, 72, - 73, 69, 85, 80, 72, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, - 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128, 84, 72, 85, 78, - 68, 69, 82, 83, 84, 79, 82, 77, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, - 69, 85, 76, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, - 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, - 45, 83, 69, 86, 69, 78, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, - 69, 210, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, 89, 79, 85, - 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, - 84, 72, 65, 206, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, 65, 204, 80, 82, + 65, 72, 65, 128, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 66, + 82, 69, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 67, 72, 73, 84, 85, 69, + 85, 77, 83, 73, 79, 83, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73, 84, + 89, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, 83, 128, 68, 69, 70, + 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 73, 70, 70, 73, 67, 85, 76, + 84, 73, 69, 83, 128, 68, 73, 77, 73, 78, 73, 83, 72, 77, 69, 78, 84, 128, + 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, 68, 73, 77, 73, 78, + 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 83, 67, 79, 78, 84, 73, 78, 85, + 79, 85, 211, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 55, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, + 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 55, 56, + 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, + 45, 49, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 55, 56, 128, 69, + 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 70, 76, 69, 85, 82, 45, + 68, 69, 45, 76, 73, 83, 128, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, + 78, 128, 71, 82, 79, 78, 84, 72, 73, 83, 77, 65, 84, 65, 128, 72, 89, 80, + 79, 68, 73, 65, 83, 84, 79, 76, 69, 128, 73, 67, 69, 76, 65, 78, 68, 73, + 67, 45, 89, 82, 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, + 73, 78, 84, 69, 82, 83, 89, 76, 76, 65, 66, 73, 195, 74, 85, 68, 69, 79, + 45, 83, 80, 65, 78, 73, 83, 200, 75, 73, 89, 69, 79, 75, 45, 82, 73, 69, + 85, 76, 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79, 206, 77, 65, + 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77, 65, 67, 82, 79, 78, 45, + 66, 82, 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, 86, 69, + 128, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, 79, 82, 80, + 72, 79, 76, 79, 71, 73, 67, 65, 204, 79, 80, 69, 78, 45, 79, 85, 84, 76, + 73, 78, 69, 196, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 210, 82, + 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, + 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 50, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 53, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 54, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 48, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 57, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 50, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 51, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 54, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 55, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, + 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 48, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 51, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 52, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 55, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 48, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 49, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 52, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, + 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 56, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 49, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 50, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 53, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 56, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 57, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 50, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, + 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 54, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 53, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 57, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 48, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 51, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 54, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 55, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 54, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 48, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 49, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, + 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 52, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 55, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 56, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 49, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 56, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 52, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 53, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 56, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 56, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, + 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 50, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 57, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 53, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 54, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 57, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 50, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 51, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 50, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 54, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 50, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, + 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 48, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 50, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 51, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 52, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 50, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 55, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 48, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 49, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 50, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 52, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 53, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, + 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 56, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 50, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 50, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 49, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 50, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 50, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 53, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 56, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 57, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 50, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 50, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 50, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, + 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 54, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 50, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 57, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 48, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 51, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 54, + 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 65, 210, 83, 73, 79, 83, + 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, + 85, 75, 72, 128, 83, 73, 79, 83, 45, 80, 72, 73, 69, 85, 80, 72, 128, 83, + 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 83, 84, 82, 65, 71, 71, + 73, 83, 77, 65, 84, 65, 128, 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, + 83, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, 79, 82, 77, 128, 84, 73, 75, + 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, 84, 82, 65, 78, 83, 77, 73, 83, + 83, 73, 79, 78, 128, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 128, + 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128, 86, 79, 87, 69, 76, + 45, 67, 65, 82, 82, 73, 69, 210, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, + 89, 65, 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 71, 82, + 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 73, 78, 83, 84, 82, 85, 77, 69, + 78, 84, 65, 204, 65, 82, 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 69, 82, 73, 83, 80, 79, 77, - 69, 78, 73, 128, 67, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 65, 82, - 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 80, 65, 82, 69, 78, 84, 72, 69, - 83, 73, 83, 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78, 128, 73, 78, - 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 67, 65, 78, 68, 82, 65, 66, 73, - 78, 68, 85, 128, 69, 82, 82, 79, 82, 45, 66, 65, 82, 82, 69, 196, 83, 85, - 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 66, 76, 65, 67, 75, 45, 76, 69, - 84, 84, 69, 210, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 128, 67, 65, - 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 69, 75, 70, 79, 78, 73, 84, 73, - 75, 79, 78, 128, 74, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 82, 73, + 69, 78, 73, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 83, 128, 67, 45, + 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 80, 85, 78, 67, 84, 85, 65, 84, + 73, 79, 78, 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 67, 65, + 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 69, 82, 82, 79, 82, 45, 66, 65, + 82, 82, 69, 196, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 66, 76, + 65, 67, 75, 45, 76, 69, 84, 84, 69, 210, 65, 80, 80, 82, 79, 88, 73, 77, + 65, 84, 69, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 69, 75, + 70, 79, 78, 73, 84, 73, 75, 79, 78, 128, 74, 45, 83, 73, 77, 80, 76, 73, + 70, 73, 69, 196, 77, 73, 68, 68, 76, 69, 45, 87, 69, 76, 83, 200, 82, 73, 69, 85, 76, 45, 72, 73, 69, 85, 72, 128, 83, 79, 85, 84, 72, 45, 83, 76, 65, 86, 69, 217, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 83, 84, 82, 79, 76, 79, 71, 73, 67, 65, 204, 71, 65, 89, 65, 78, 85, 75, 73, @@ -1252,60 +1349,62 @@ 69, 85, 80, 128, 83, 69, 77, 73, 67, 73, 82, 67, 85, 76, 65, 210, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 73, 78, - 84, 69, 82, 83, 69, 67, 84, 73, 78, 199, 80, 73, 69, 85, 80, 45, 67, 73, - 69, 85, 67, 128, 81, 85, 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 82, 73, - 69, 85, 76, 45, 78, 73, 69, 85, 78, 128, 83, 73, 88, 84, 89, 45, 70, 79, - 85, 82, 84, 200, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 87, - 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 87, 69, 68, 71, 69, 45, 84, 65, - 73, 76, 69, 196, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 71, - 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, 77, 65, 76, 71, 65, 77, 65, - 84, 73, 79, 206, 65, 80, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 85, - 71, 77, 69, 78, 84, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76, 76, 65, - 84, 73, 79, 206, 67, 73, 69, 85, 67, 45, 73, 69, 85, 78, 71, 128, 67, 79, - 78, 74, 85, 78, 67, 84, 73, 79, 78, 128, 67, 79, 78, 84, 82, 65, 67, 84, - 73, 79, 78, 128, 67, 79, 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, - 82, 80, 79, 82, 65, 84, 73, 79, 78, 128, 67, 79, 85, 78, 84, 69, 82, 66, - 79, 82, 69, 128, 67, 79, 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 68, 65, - 72, 89, 65, 65, 85, 83, 72, 45, 50, 128, 68, 69, 67, 82, 69, 83, 67, 69, - 78, 68, 79, 128, 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, - 78, 79, 77, 73, 78, 65, 84, 79, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, - 68, 69, 84, 128, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 73, - 83, 84, 73, 78, 71, 85, 73, 83, 72, 128, 68, 79, 65, 67, 72, 65, 83, 72, - 77, 69, 69, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 55, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 55, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 50, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, - 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, - 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 55, 128, 68, 79, - 84, 83, 45, 49, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, - 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 55, 128, 68, 79, - 84, 83, 45, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, - 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, - 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 69, 65, 77, 72, 65, 78, 67, 72, - 79, 76, 76, 128, 69, 78, 76, 65, 82, 71, 69, 77, 69, 78, 84, 128, 70, 73, - 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70, 82, 79, 78, 84, 45, 84, 73, - 76, 84, 69, 196, 71, 85, 65, 82, 68, 69, 68, 78, 69, 83, 83, 128, 72, 65, - 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 73, 69, 85, 72, 45, 77, 73, - 69, 85, 77, 128, 72, 73, 69, 85, 72, 45, 78, 73, 69, 85, 78, 128, 72, 73, - 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, 72, 45, 82, 73, - 69, 85, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 73, 69, - 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 77, 73, - 69, 85, 77, 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128, 73, 78, - 84, 69, 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 82, 67, 65, 76, - 65, 84, 69, 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 75, 73, - 82, 79, 77, 69, 69, 84, 79, 82, 85, 128, 76, 65, 75, 75, 72, 65, 78, 71, - 89, 65, 79, 128, 77, 73, 69, 85, 77, 45, 72, 73, 69, 85, 72, 128, 77, 73, - 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 85, 85, 83, 73, 75, 65, 84, - 79, 65, 78, 128, 78, 65, 65, 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 69, + 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 73, 78, 84, 69, 82, 83, 69, 67, + 84, 73, 78, 199, 80, 73, 69, 85, 80, 45, 67, 73, 69, 85, 67, 128, 81, 85, + 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 82, 73, 69, 85, 76, 45, 78, 73, + 69, 85, 78, 128, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 200, 84, 82, + 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 87, 69, 78, 84, 89, 45, 70, + 79, 85, 82, 128, 87, 69, 68, 71, 69, 45, 84, 65, 73, 76, 69, 196, 65, 69, + 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 71, 71, 82, 65, 86, 65, 84, + 73, 79, 78, 128, 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 80, + 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 85, 71, 77, 69, 78, 84, 65, + 84, 73, 79, 206, 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, 67, 73, + 69, 85, 67, 45, 73, 69, 85, 78, 71, 128, 67, 79, 78, 74, 85, 78, 67, 84, + 73, 79, 78, 128, 67, 79, 78, 84, 82, 65, 67, 84, 73, 79, 78, 128, 67, 79, + 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, 82, 80, 79, 82, 65, 84, + 73, 79, 78, 128, 67, 79, 85, 78, 84, 69, 82, 66, 79, 82, 69, 128, 67, 79, + 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 68, 65, 72, 89, 65, 65, 85, 83, + 72, 45, 50, 128, 68, 69, 67, 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, + 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, 78, 79, 77, 73, 78, 65, + 84, 79, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68, 69, + 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 73, 83, 84, 73, 78, 71, 85, + 73, 83, 72, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 69, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, + 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 50, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 55, 56, 128, 68, 79, + 84, 83, 45, 50, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 85, 66, 76, 69, 45, 69, + 78, 68, 69, 196, 69, 65, 77, 72, 65, 78, 67, 72, 79, 76, 76, 128, 69, 78, + 76, 65, 82, 71, 69, 77, 69, 78, 84, 128, 69, 88, 67, 76, 65, 77, 65, 84, + 73, 79, 78, 128, 70, 73, 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70, 82, + 79, 78, 84, 45, 84, 73, 76, 84, 69, 196, 71, 85, 65, 82, 68, 69, 68, 78, + 69, 83, 83, 128, 72, 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 73, + 69, 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, 73, 69, 85, 72, 45, 78, 73, + 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, + 69, 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 76, 217, 73, 69, 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, + 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 73, 69, 85, 78, 71, 45, 80, 73, + 69, 85, 80, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, + 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 74, 73, 72, 86, 65, 77, 85, 76, + 73, 89, 65, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79, 82, 85, 128, 76, 65, + 75, 75, 72, 65, 78, 71, 89, 65, 79, 128, 77, 73, 69, 85, 77, 45, 72, 73, + 69, 85, 72, 128, 77, 73, 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 85, + 85, 83, 73, 75, 65, 84, 79, 65, 78, 128, 78, 65, 65, 75, 83, 73, 75, 89, + 65, 89, 65, 128, 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 206, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 73, 69, 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 80, 65, 82, 65, 75, 76, 73, 84, @@ -1376,1322 +1475,1488 @@ 45, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 56, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 57, 57, 128, 83, 80, 82, 69, 67, 72, 71, 69, - 83, 65, 78, 199, 83, 85, 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 84, 69, - 84, 82, 65, 70, 79, 78, 73, 65, 83, 128, 84, 72, 65, 78, 84, 72, 65, 75, - 72, 65, 84, 128, 84, 72, 82, 69, 69, 45, 80, 69, 82, 45, 69, 205, 84, 79, - 65, 78, 68, 65, 75, 72, 73, 65, 84, 128, 84, 82, 65, 78, 83, 77, 73, 83, - 83, 73, 79, 206, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, - 69, 78, 84, 89, 45, 78, 73, 78, 69, 128, 85, 78, 65, 83, 80, 73, 82, 65, - 84, 69, 68, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 128, 83, 85, 80, - 69, 82, 83, 67, 82, 73, 80, 212, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 206, 73, 78, 68, 69, 80, 69, - 78, 68, 69, 78, 212, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78, 201, 69, 88, - 67, 76, 65, 77, 65, 84, 73, 79, 206, 68, 69, 83, 67, 82, 73, 80, 84, 73, - 79, 206, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 68, 79, 85, 66, 76, - 69, 45, 76, 73, 78, 197, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193, 65, - 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 85, 80, 45, 80, 79, 73, 78, 84, - 73, 78, 199, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78, 197, 73, 77, 80, 69, - 82, 70, 69, 67, 84, 85, 205, 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, - 65, 82, 82, 79, 87, 45, 84, 65, 73, 76, 128, 68, 79, 65, 67, 72, 65, 83, - 72, 77, 69, 197, 65, 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 76, 84, - 69, 82, 78, 65, 84, 73, 86, 197, 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, - 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, - 73, 78, 69, 65, 210, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, - 80, 79, 83, 73, 84, 73, 79, 78, 128, 82, 73, 69, 85, 76, 45, 83, 73, 79, - 83, 128, 83, 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 83, 65, 78, 71, - 73, 69, 85, 78, 71, 128, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 65, - 69, 68, 65, 45, 80, 73, 76, 76, 65, 128, 67, 79, 78, 83, 69, 67, 85, 84, - 73, 86, 197, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 69, 78, 84, 69, - 82, 80, 82, 73, 83, 69, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, - 77, 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, 77, 79, 78, 79, 71, 82, 65, - 77, 77, 79, 211, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 73, 69, - 85, 78, 45, 83, 73, 79, 83, 128, 79, 86, 69, 82, 76, 65, 80, 80, 73, 78, - 199, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 75, 76, - 73, 84, 73, 75, 201, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 69, - 82, 67, 85, 83, 83, 73, 86, 69, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79, - 78, 128, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67, 84, 73, - 76, 73, 78, 69, 65, 210, 82, 69, 80, 76, 65, 67, 69, 77, 69, 78, 212, 83, - 65, 76, 76, 65, 76, 76, 65, 72, 79, 213, 83, 73, 79, 83, 45, 78, 73, 69, - 85, 78, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, - 71, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, - 83, 83, 65, 78, 71, 82, 73, 69, 85, 76, 128, 84, 65, 66, 85, 76, 65, 84, - 73, 79, 78, 128, 84, 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84, 72, 69, - 77, 65, 84, 73, 83, 77, 79, 211, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, - 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 79, 128, 65, 76, 84, 69, 82, 78, - 65, 84, 73, 79, 206, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, - 84, 73, 75, 69, 78, 79, 77, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, - 65, 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 83, 128, 65, 83, 84, 69, 82, - 73, 83, 67, 85, 83, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 66, - 65, 67, 75, 45, 84, 73, 76, 84, 69, 196, 66, 65, 82, 73, 89, 79, 79, 83, - 65, 78, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 67, 73, 82, 67, - 85, 76, 65, 84, 73, 79, 206, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, - 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 76, 73, 65, - 78, 67, 69, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 78, - 84, 69, 78, 84, 73, 79, 78, 128, 67, 79, 82, 82, 69, 83, 80, 79, 78, 68, - 211, 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 68, 69, 70, 73, 78, 73, - 84, 73, 79, 78, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 73, - 65, 69, 82, 69, 83, 73, 90, 69, 196, 68, 73, 77, 69, 78, 83, 73, 79, 78, - 65, 204, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, 68, 73, 83, 80, 69, - 82, 83, 73, 79, 78, 128, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, - 73, 86, 69, 82, 71, 69, 78, 67, 69, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 52, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 128, 68, 79, 84, 83, - 45, 49, 50, 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 56, 128, - 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, - 51, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 56, 128, 68, 79, 84, - 83, 45, 49, 50, 51, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 49, 50, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, - 50, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 55, 128, 68, 79, - 84, 83, 45, 49, 50, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, - 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, - 49, 50, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 55, 128, 68, - 79, 84, 83, 45, 49, 50, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, - 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 54, 55, 56, 128, 68, 79, 84, 83, - 45, 49, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55, 128, - 68, 79, 84, 83, 45, 49, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, - 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 56, 128, 68, 79, 84, - 83, 45, 49, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, - 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, - 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, - 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 49, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 53, 54, 55, 56, 128, 68, - 79, 84, 83, 45, 50, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, - 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 56, 128, 68, 79, 84, 83, - 45, 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 56, 128, - 68, 79, 84, 83, 45, 50, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, - 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 56, 128, 68, 79, 84, - 83, 45, 50, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 54, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, - 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 55, 56, 128, 68, 79, - 84, 83, 45, 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, - 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, - 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, - 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, - 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 56, 128, 69, 75, 83, 84, - 82, 69, 80, 84, 79, 78, 128, 69, 77, 66, 82, 79, 73, 68, 69, 82, 89, 128, - 69, 78, 67, 79, 85, 78, 84, 69, 82, 83, 128, 69, 78, 84, 72, 85, 83, 73, - 65, 83, 77, 128, 69, 81, 85, 73, 65, 78, 71, 85, 76, 65, 210, 69, 88, 72, - 65, 85, 83, 84, 73, 79, 78, 128, 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, - 128, 70, 69, 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 79, 82, 77, 65, 84, - 84, 73, 78, 71, 128, 70, 79, 85, 82, 45, 80, 69, 82, 45, 69, 205, 70, 79, - 85, 82, 45, 83, 84, 82, 73, 78, 199, 72, 66, 65, 83, 65, 45, 69, 83, 65, - 83, 193, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 89, 80, 72, 69, - 78, 65, 84, 73, 79, 206, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128, 73, - 77, 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 78, 70, 79, 82, 77, 65, 84, - 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196, 75, 73, 82, 79, - 71, 85, 82, 65, 77, 85, 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65, 128, - 76, 69, 70, 84, 45, 83, 72, 65, 68, 69, 196, 76, 73, 77, 73, 84, 65, 84, - 73, 79, 78, 128, 77, 69, 77, 66, 69, 82, 83, 72, 73, 80, 128, 78, 65, 78, + 76, 69, 67, 84, 79, 82, 45, 57, 57, 128, 83, 69, 77, 73, 83, 69, 88, 84, + 73, 76, 69, 128, 83, 80, 82, 69, 67, 72, 71, 69, 83, 65, 78, 199, 83, 85, + 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 84, 69, 84, 82, 65, 70, 79, 78, + 73, 65, 83, 128, 84, 72, 65, 78, 84, 72, 65, 75, 72, 65, 84, 128, 84, 72, + 82, 69, 69, 45, 80, 69, 82, 45, 69, 205, 84, 79, 65, 78, 68, 65, 75, 72, + 73, 65, 84, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 206, 84, 87, + 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45, 78, + 73, 78, 69, 128, 85, 78, 65, 83, 80, 73, 82, 65, 84, 69, 68, 128, 85, 80, + 65, 68, 72, 77, 65, 78, 73, 89, 65, 128, 80, 85, 78, 67, 84, 85, 65, 84, + 73, 79, 206, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 128, 83, 85, 80, 69, + 82, 83, 67, 82, 73, 80, 212, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 128, + 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 206, 73, 78, 68, 69, 80, 69, 78, + 68, 69, 78, 212, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78, 201, 68, 69, 83, + 67, 82, 73, 80, 84, 73, 79, 206, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, + 211, 68, 79, 85, 66, 76, 69, 45, 76, 73, 78, 197, 77, 65, 72, 65, 65, 80, + 82, 65, 65, 78, 193, 65, 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 67, 72, + 65, 82, 65, 67, 84, 69, 82, 83, 128, 85, 80, 45, 80, 79, 73, 78, 84, 73, + 78, 199, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78, 197, 73, 77, 80, 69, 82, + 70, 69, 67, 84, 85, 205, 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, 65, + 82, 82, 79, 87, 45, 84, 65, 73, 76, 128, 68, 79, 65, 67, 72, 65, 83, 72, + 77, 69, 197, 65, 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 76, 84, 69, + 82, 78, 65, 84, 73, 86, 197, 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, + 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 73, + 78, 69, 65, 210, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, 80, + 79, 83, 73, 84, 73, 79, 78, 128, 82, 73, 69, 85, 76, 45, 83, 73, 79, 83, + 128, 83, 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 83, 65, 78, 71, 73, + 69, 85, 78, 71, 128, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 65, 69, + 68, 65, 45, 80, 73, 76, 76, 65, 128, 67, 79, 78, 83, 69, 67, 85, 84, 73, + 86, 197, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 69, 78, 84, 69, 82, + 80, 82, 73, 83, 69, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, 77, + 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, 77, 79, 78, 79, 71, 82, 65, 77, + 77, 79, 211, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 73, 69, 85, + 78, 45, 83, 73, 79, 83, 128, 79, 86, 69, 82, 76, 65, 80, 80, 73, 78, 199, + 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 75, 76, 73, + 84, 73, 75, 201, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 69, 82, + 67, 85, 83, 83, 73, 86, 69, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, + 128, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67, 84, 73, 76, + 73, 78, 69, 65, 210, 82, 69, 80, 76, 65, 67, 69, 77, 69, 78, 212, 83, 65, + 76, 76, 65, 76, 76, 65, 72, 79, 213, 83, 73, 79, 83, 45, 78, 73, 69, 85, + 78, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, 71, + 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 83, + 83, 65, 78, 71, 82, 73, 69, 85, 76, 128, 84, 65, 66, 85, 76, 65, 84, 73, + 79, 78, 128, 84, 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84, 72, 69, 77, + 65, 84, 73, 83, 77, 79, 211, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, 128, + 84, 87, 69, 78, 84, 89, 45, 84, 87, 79, 128, 65, 76, 84, 69, 82, 78, 65, + 84, 73, 79, 206, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, 84, + 73, 75, 69, 78, 79, 77, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65, + 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 83, 128, 65, 83, 84, 69, 82, 73, + 83, 67, 85, 83, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 66, 65, + 67, 75, 45, 84, 73, 76, 84, 69, 196, 66, 65, 82, 73, 89, 79, 79, 83, 65, + 78, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 67, 73, 82, 67, 85, + 76, 65, 84, 73, 79, 206, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, + 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 76, 73, 65, 78, + 67, 69, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 78, 84, + 69, 78, 84, 73, 79, 78, 128, 67, 79, 82, 82, 69, 83, 80, 79, 78, 68, 211, + 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 68, 65, 71, 66, 65, 83, 73, + 78, 78, 65, 128, 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 128, 68, 69, 78, + 79, 77, 73, 78, 65, 84, 79, 210, 68, 73, 65, 69, 82, 69, 83, 73, 90, 69, + 196, 68, 73, 77, 69, 78, 83, 73, 79, 78, 65, 204, 68, 73, 82, 69, 67, 84, + 73, 79, 78, 65, 204, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, 68, 73, + 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, 73, 86, 69, 82, 71, 69, 78, 67, + 69, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, + 49, 50, 51, 52, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 55, 128, 68, + 79, 84, 83, 45, 49, 50, 51, 52, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 55, 128, 68, 79, 84, 83, + 45, 49, 50, 51, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55, 128, + 68, 79, 84, 83, 45, 49, 50, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, + 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 128, 68, 79, 84, + 83, 45, 49, 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 56, + 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, + 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, + 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, + 49, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 128, 68, + 79, 84, 83, 45, 49, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, + 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 55, 128, 68, 79, 84, 83, + 45, 49, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 55, 56, 128, + 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 55, 56, 128, 68, 79, 84, + 83, 45, 49, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55, + 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, + 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, + 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, + 50, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55, 128, 68, + 79, 84, 83, 45, 50, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, + 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 55, 128, 68, 79, 84, 83, + 45, 50, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 55, 56, 128, + 68, 79, 84, 83, 45, 50, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, + 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 56, 128, 68, 79, 84, + 83, 45, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 54, 55, 56, + 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, + 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55, + 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, + 52, 53, 54, 55, 56, 128, 69, 75, 83, 84, 82, 69, 80, 84, 79, 78, 128, 69, + 77, 66, 82, 79, 73, 68, 69, 82, 89, 128, 69, 78, 67, 79, 85, 78, 84, 69, + 82, 83, 128, 69, 78, 84, 72, 85, 83, 73, 65, 83, 77, 128, 69, 81, 85, 73, + 65, 78, 71, 85, 76, 65, 210, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78, 128, + 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 69, 76, 76, 79, 87, 83, + 72, 73, 80, 128, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 85, + 82, 45, 80, 69, 82, 45, 69, 205, 70, 79, 85, 82, 45, 83, 84, 82, 73, 78, + 199, 71, 66, 65, 75, 85, 82, 85, 78, 69, 78, 128, 72, 66, 65, 83, 65, 45, + 69, 83, 65, 83, 193, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 89, + 80, 72, 69, 78, 65, 84, 73, 79, 206, 73, 77, 73, 68, 73, 65, 82, 71, 79, + 78, 128, 73, 77, 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 78, 70, 79, 82, + 77, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196, 75, + 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 85, 78, 68, 68, 65, 76, 73, + 89, 65, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78, 128, 76, 69, 70, 84, + 45, 83, 72, 65, 68, 69, 196, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, + 76, 73, 77, 73, 84, 65, 84, 73, 79, 78, 128, 77, 69, 77, 66, 69, 82, 83, + 72, 73, 80, 128, 77, 85, 76, 84, 73, 79, 67, 85, 76, 65, 210, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 76, 73, 90, 69, 196, 80, 65, - 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 79, 83, 83, 69, 83, 83, 73, 79, - 78, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, 79, 74, 69, - 67, 84, 73, 86, 69, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197, 82, - 65, 72, 77, 65, 84, 85, 76, 76, 65, 200, 82, 69, 83, 73, 83, 84, 65, 78, - 67, 69, 128, 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 79, - 76, 85, 84, 73, 79, 78, 128, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 57, 128, 83, 72, 65, 76, 83, 72, 69, 76, 69, - 84, 128, 83, 73, 79, 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, - 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77, 128, 83, - 83, 65, 78, 71, 65, 82, 65, 69, 65, 128, 83, 84, 65, 78, 68, 83, 84, 73, - 76, 76, 128, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 83, - 84, 73, 84, 85, 84, 69, 128, 83, 89, 78, 67, 72, 82, 79, 78, 79, 85, 211, - 84, 69, 82, 77, 73, 78, 65, 84, 79, 82, 128, 84, 72, 73, 82, 84, 89, 45, - 79, 78, 69, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 82, 65, - 78, 83, 86, 69, 82, 83, 65, 204, 84, 87, 69, 78, 84, 89, 45, 83, 73, 88, - 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 89, 128, 87, 73, 68, 69, 45, 72, - 69, 65, 68, 69, 196, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128, 76, 69, 83, - 83, 45, 84, 72, 65, 78, 128, 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 69, - 81, 85, 73, 86, 65, 76, 69, 78, 212, 83, 69, 80, 65, 82, 65, 84, 79, 82, - 128, 65, 82, 82, 79, 87, 72, 69, 65, 68, 128, 65, 76, 80, 65, 80, 82, 65, - 65, 78, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 69, 88, 84, 69, 78, - 83, 73, 79, 78, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, 210, 80, 72, 65, - 82, 89, 78, 71, 69, 65, 204, 80, 82, 79, 76, 65, 84, 73, 79, 78, 197, 83, - 69, 77, 73, 67, 79, 76, 79, 78, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, - 128, 84, 87, 79, 45, 72, 69, 65, 68, 69, 196, 65, 77, 80, 69, 82, 83, 65, - 78, 68, 128, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 84, 82, 79, 69, 90, - 69, 78, 73, 65, 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 83, 69, 77, - 73, 68, 73, 82, 69, 67, 212, 83, 69, 86, 69, 78, 84, 69, 69, 78, 128, 87, - 79, 79, 68, 83, 45, 67, 82, 69, 197, 66, 65, 67, 75, 83, 76, 65, 83, 72, - 128, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 69, 88, 84, 82, 65, 45, 72, - 73, 71, 200, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, 73, 77, 80, 69, 82, - 70, 69, 67, 84, 193, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 82, 69, 67, - 84, 65, 78, 71, 76, 69, 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 67, - 79, 78, 84, 65, 73, 78, 73, 78, 199, 68, 69, 76, 73, 77, 73, 84, 69, 82, - 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 128, 69, 80, 73, 68, 65, 85, 82, - 69, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 79, 85, 82, 71, - 76, 65, 83, 83, 128, 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83, 69, 77, - 73, 77, 73, 78, 73, 77, 193, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 84, - 82, 73, 65, 78, 71, 85, 76, 65, 210, 65, 80, 79, 83, 84, 82, 79, 70, 79, - 201, 65, 80, 79, 83, 84, 82, 79, 70, 79, 211, 65, 82, 80, 69, 71, 71, 73, - 65, 84, 207, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206, 67, 69, 78, 84, 82, - 69, 76, 73, 78, 197, 67, 72, 65, 82, 65, 67, 84, 69, 82, 128, 67, 79, 80, - 82, 79, 68, 85, 67, 84, 128, 67, 82, 79, 83, 83, 72, 65, 84, 67, 200, 69, - 77, 66, 69, 68, 68, 73, 78, 71, 128, 70, 73, 78, 65, 78, 67, 73, 65, 76, - 128, 70, 79, 76, 76, 79, 87, 73, 78, 71, 128, 70, 82, 69, 84, 66, 79, 65, - 82, 68, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, 71, 79, 82, 84, 72, - 77, 73, 75, 79, 206, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 75, 72, 65, - 75, 65, 83, 83, 73, 65, 206, 80, 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, - 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 69, 78, 84, 65, 83, 69, 77, 69, - 128, 80, 72, 73, 76, 73, 80, 80, 73, 78, 197, 83, 69, 77, 73, 67, 73, 82, - 67, 76, 197, 83, 85, 77, 77, 65, 84, 73, 79, 78, 128, 83, 85, 80, 69, 82, - 86, 73, 83, 69, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49, 128, 83, 89, 77, - 66, 79, 76, 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83, - 89, 77, 66, 79, 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, - 128, 83, 89, 77, 66, 79, 76, 45, 49, 56, 128, 83, 89, 77, 66, 79, 76, 45, - 49, 57, 128, 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89, 77, 66, 79, - 76, 45, 50, 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77, - 66, 79, 76, 45, 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, - 89, 77, 66, 79, 76, 45, 53, 51, 128, 83, 89, 77, 66, 79, 76, 45, 53, 52, - 128, 84, 69, 76, 69, 80, 72, 79, 78, 69, 128, 84, 69, 84, 82, 65, 83, 69, - 77, 69, 128, 84, 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 77, 79, - 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, 82, 73, - 71, 82, 65, 77, 77, 79, 211, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 65, - 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 66, 85, 78, 68, 65, 78, 67, 69, - 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 78, 84, 73, 70, 79, 78, - 73, 65, 128, 65, 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 82, 45, 82, 65, - 72, 69, 69, 77, 128, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 84, 84, - 69, 78, 84, 73, 79, 78, 128, 66, 65, 67, 75, 83, 80, 65, 67, 69, 128, 66, - 69, 71, 73, 78, 78, 73, 78, 71, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, - 197, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 72, 65, 86, 73, 89, 65, - 78, 73, 128, 67, 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 79, 77, 80, 76, - 69, 84, 69, 68, 128, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, 80, - 89, 82, 73, 71, 72, 84, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, - 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 69, 80, 65, 82, 84, 85, 82, 69, - 128, 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 73, 70, 70, 69, 82, 69, - 78, 67, 197, 68, 73, 70, 70, 73, 67, 85, 76, 84, 217, 68, 79, 84, 83, 45, - 49, 50, 51, 52, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 128, 68, 79, 84, - 83, 45, 49, 50, 51, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 55, 128, 68, - 79, 84, 83, 45, 49, 50, 51, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, - 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 128, 68, 79, 84, 83, 45, 49, 50, - 52, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 56, 128, 68, 79, 84, 83, 45, - 49, 50, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 53, 55, 128, 68, 79, 84, - 83, 45, 49, 50, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 54, 55, 128, 68, - 79, 84, 83, 45, 49, 50, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 55, 56, - 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 128, 68, 79, 84, 83, 45, 49, 51, - 52, 54, 128, 68, 79, 84, 83, 45, 49, 51, 52, 55, 128, 68, 79, 84, 83, 45, - 49, 51, 52, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 128, 68, 79, 84, - 83, 45, 49, 51, 53, 55, 128, 68, 79, 84, 83, 45, 49, 51, 53, 56, 128, 68, - 79, 84, 83, 45, 49, 51, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 49, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, - 53, 54, 128, 68, 79, 84, 83, 45, 49, 52, 53, 55, 128, 68, 79, 84, 83, 45, - 49, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 128, 68, 79, 84, - 83, 45, 49, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 52, 55, 56, 128, 68, - 79, 84, 83, 45, 49, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 53, 54, 56, - 128, 68, 79, 84, 83, 45, 49, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 54, - 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, - 50, 51, 52, 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, 55, 128, 68, 79, 84, - 83, 45, 50, 51, 52, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 128, 68, - 79, 84, 83, 45, 50, 51, 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 53, 56, - 128, 68, 79, 84, 83, 45, 50, 51, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, - 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 55, 56, 128, 68, 79, 84, 83, 45, - 50, 52, 53, 54, 128, 68, 79, 84, 83, 45, 50, 52, 53, 55, 128, 68, 79, 84, - 83, 45, 50, 52, 53, 56, 128, 68, 79, 84, 83, 45, 50, 52, 54, 55, 128, 68, - 79, 84, 83, 45, 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, 50, 52, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 53, - 54, 56, 128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, - 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 56, 128, 68, - 79, 84, 83, 45, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, - 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, - 54, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, - 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, - 83, 45, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, - 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, - 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 69, 69, 66, 69, 69, 70, 73, - 76, 73, 128, 69, 78, 65, 82, 77, 79, 78, 73, 79, 211, 69, 78, 68, 69, 65, - 86, 79, 85, 82, 128, 69, 78, 68, 79, 70, 79, 78, 79, 78, 128, 69, 83, 84, - 73, 77, 65, 84, 69, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, 69, - 89, 66, 69, 89, 70, 73, 76, 73, 128, 70, 79, 79, 84, 83, 84, 79, 79, 76, - 128, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 82, 73, 67, 65, 84, 73, - 86, 69, 128, 71, 65, 84, 72, 69, 82, 73, 78, 71, 128, 71, 69, 77, 73, 78, - 65, 84, 73, 79, 206, 71, 78, 65, 86, 73, 89, 65, 78, 73, 128, 71, 79, 82, - 71, 79, 84, 69, 82, 73, 128, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, 71, - 85, 82, 65, 77, 85, 84, 79, 78, 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, - 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 89, 83, 84, 69, 82, 69, - 83, 73, 211, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, 84, - 72, 79, 82, 65, 128, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, - 82, 69, 77, 69, 78, 84, 128, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, 73, - 78, 70, 76, 85, 69, 78, 67, 69, 128, 73, 78, 78, 79, 67, 69, 78, 67, 69, - 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 74, 69, 82, 85, 83, 65, 76, - 69, 77, 128, 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 69, 77, 80, 72, - 82, 69, 78, 71, 128, 75, 69, 78, 84, 73, 77, 65, 84, 65, 128, 75, 73, 82, - 79, 87, 65, 84, 84, 79, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, 75, - 85, 82, 85, 90, 69, 73, 82, 79, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, - 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 73, 71, 72, 84, 78, 73, - 78, 71, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 84, 69, 82, - 73, 65, 76, 83, 128, 77, 69, 84, 79, 66, 69, 76, 85, 83, 128, 77, 73, 82, - 73, 66, 65, 65, 82, 85, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77, - 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 85, 75, 80, 72, 82, 69, 78, 71, - 128, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 79, 65, 66, 79, 65, 70, 73, - 76, 73, 128, 79, 79, 66, 79, 79, 70, 73, 76, 73, 128, 79, 82, 84, 72, 79, - 71, 79, 78, 65, 204, 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 82, - 65, 71, 82, 65, 80, 72, 128, 80, 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, - 73, 84, 67, 72, 70, 79, 82, 75, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, - 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 79, 82, 82, 69, 67, 84, - 85, 83, 128, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, - 77, 85, 79, 89, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211, 81, 85, 65, - 84, 69, 82, 78, 73, 79, 206, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, - 85, 83, 72, 83, 72, 65, 89, 65, 128, 82, 69, 71, 73, 83, 84, 69, 82, 69, - 196, 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 80, 82, 69, 83, 69, - 78, 84, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83, 85, 80, - 73, 78, 85, 83, 128, 82, 73, 71, 72, 84, 45, 83, 73, 68, 197, 83, 67, 65, - 78, 68, 73, 67, 85, 83, 128, 83, 69, 80, 84, 69, 77, 66, 69, 82, 128, 83, - 69, 86, 69, 82, 65, 78, 67, 69, 128, 83, 72, 65, 86, 73, 89, 65, 78, 73, - 128, 83, 72, 79, 82, 84, 69, 78, 69, 82, 128, 83, 72, 79, 85, 76, 68, 69, - 82, 69, 196, 83, 73, 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 83, - 84, 82, 73, 78, 199, 83, 84, 82, 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, - 79, 75, 69, 45, 49, 49, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, - 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 89, 77, 66, 79, 76, 45, 49, 48, - 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77, 66, 79, 76, 45, - 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, 79, - 76, 45, 50, 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 50, 128, 83, 89, 77, - 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66, 79, 76, 45, 50, 54, 128, 83, - 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76, 45, 50, 57, - 128, 83, 89, 77, 66, 79, 76, 45, 51, 48, 128, 83, 89, 77, 66, 79, 76, 45, - 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83, 89, 77, 66, 79, - 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, 77, - 66, 79, 76, 45, 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 52, 48, 128, 83, - 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52, 51, - 128, 83, 89, 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, 45, - 52, 55, 128, 83, 89, 77, 66, 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, 79, - 76, 45, 52, 57, 128, 83, 89, 82, 77, 65, 84, 73, 75, 73, 128, 84, 65, 75, - 72, 65, 76, 76, 85, 83, 128, 84, 65, 87, 69, 76, 76, 69, 77, 69, 212, 84, - 72, 69, 82, 69, 70, 79, 82, 69, 128, 84, 72, 82, 69, 69, 45, 76, 73, 78, - 197, 84, 82, 73, 70, 79, 76, 73, 65, 84, 197, 84, 82, 73, 70, 79, 78, 73, - 65, 83, 128, 84, 82, 73, 71, 79, 82, 71, 79, 78, 128, 84, 85, 84, 69, 89, - 65, 83, 65, 84, 128, 86, 73, 83, 65, 82, 71, 65, 89, 65, 128, 87, 65, 83, - 83, 65, 76, 76, 65, 77, 128, 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, - 79, 82, 68, 83, 80, 65, 67, 69, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, - 128, 76, 69, 83, 83, 45, 84, 72, 65, 206, 68, 79, 87, 78, 87, 65, 82, 68, - 211, 84, 82, 73, 65, 78, 71, 76, 69, 128, 79, 80, 69, 82, 65, 84, 79, 82, - 128, 83, 85, 66, 83, 67, 82, 73, 80, 212, 84, 72, 79, 85, 83, 65, 78, 68, - 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 81, 85, 79, 84, 65, 84, 73, 79, - 206, 65, 83, 84, 69, 82, 73, 83, 75, 128, 79, 82, 78, 65, 77, 69, 78, 84, - 128, 82, 69, 84, 82, 79, 70, 76, 69, 216, 65, 82, 67, 72, 65, 73, 79, 78, - 128, 68, 73, 65, 69, 82, 69, 83, 73, 211, 66, 76, 65, 67, 75, 70, 79, 79, - 212, 68, 69, 78, 84, 73, 83, 84, 82, 217, 68, 73, 65, 76, 89, 84, 73, 75, - 193, 73, 78, 84, 69, 71, 82, 65, 76, 128, 65, 78, 85, 83, 86, 65, 82, 65, - 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, 76, 69, 70, 84, 45, 83, 84, 69, - 205, 82, 69, 67, 89, 67, 76, 73, 78, 199, 65, 66, 75, 72, 65, 83, 73, 65, - 206, 68, 73, 65, 76, 69, 67, 84, 45, 208, 68, 79, 68, 69, 75, 65, 84, 65, - 128, 69, 76, 76, 73, 80, 83, 73, 83, 128, 81, 85, 65, 68, 82, 65, 78, 84, - 128, 81, 85, 65, 68, 82, 85, 80, 76, 197, 68, 73, 65, 84, 79, 78, 73, 75, - 201, 69, 78, 67, 76, 79, 83, 73, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, - 128, 80, 76, 65, 83, 84, 73, 67, 83, 128, 65, 82, 82, 79, 87, 72, 69, 65, - 196, 73, 84, 69, 82, 65, 84, 73, 79, 206, 78, 79, 84, 69, 72, 69, 65, 68, - 128, 78, 85, 77, 69, 82, 65, 84, 79, 210, 65, 86, 65, 71, 82, 65, 72, 65, - 128, 69, 73, 71, 72, 84, 69, 69, 78, 128, 70, 79, 85, 82, 84, 69, 69, 78, - 128, 78, 73, 78, 69, 84, 69, 69, 78, 128, 83, 85, 80, 69, 82, 83, 69, 84, - 128, 84, 72, 73, 82, 84, 69, 69, 78, 128, 68, 73, 65, 71, 79, 78, 65, 76, - 128, 69, 88, 84, 82, 65, 45, 76, 79, 215, 70, 76, 79, 82, 69, 84, 84, 69, - 128, 73, 68, 69, 78, 84, 73, 67, 65, 204, 75, 69, 78, 84, 73, 77, 65, 84, - 193, 80, 65, 82, 65, 71, 82, 65, 80, 200, 82, 69, 76, 65, 84, 73, 79, 78, - 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 69, 66, 65, 84, 66, 69, 73, - 212, 83, 69, 80, 65, 82, 65, 84, 79, 210, 65, 76, 84, 69, 82, 78, 65, 84, - 197, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68, 69, 80, 65, 82, 84, 73, 78, - 199, 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 73, 83, 72, 72, 79, 79, 75, - 128, 73, 78, 70, 73, 78, 73, 84, 89, 128, 77, 79, 85, 78, 84, 65, 73, 78, - 128, 77, 85, 76, 84, 73, 77, 65, 80, 128, 77, 85, 85, 82, 68, 72, 65, 74, - 193, 80, 65, 82, 65, 76, 76, 69, 76, 128, 80, 82, 69, 67, 69, 68, 69, 83, - 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 80, 72, 69, 82, 73, 67, 65, - 204, 83, 85, 66, 76, 73, 78, 69, 65, 210, 83, 85, 67, 67, 69, 69, 68, 83, - 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 84, 69, 76, 69, 80, 72, 79, 78, - 197, 84, 72, 79, 85, 83, 65, 78, 68, 211, 89, 69, 83, 73, 69, 85, 78, 71, - 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 67, 65, 85, 76, 68, 82, 79, 78, - 128, 67, 79, 78, 83, 84, 65, 78, 84, 128, 68, 73, 70, 79, 78, 73, 65, 83, - 128, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 82, 65, 67, 72, 77, 65, 83, - 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 71, 65, 82, 83, 72, 85, 78, 73, - 128, 71, 65, 84, 72, 69, 82, 73, 78, 199, 71, 76, 73, 83, 83, 65, 78, 68, - 207, 71, 82, 69, 71, 79, 82, 73, 65, 206, 73, 78, 67, 82, 69, 65, 83, 69, - 128, 73, 78, 83, 69, 82, 84, 73, 79, 206, 73, 78, 86, 73, 83, 73, 66, 76, - 197, 73, 83, 45, 80, 73, 76, 76, 65, 128, 79, 86, 69, 82, 82, 73, 68, 69, - 128, 79, 89, 82, 65, 78, 73, 83, 77, 193, 80, 69, 68, 69, 83, 84, 65, 76, - 128, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80, 82, 65, 77, 45, 66, 85, 79, - 206, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 79, 76, 79, 78, 71, 69, - 196, 80, 82, 79, 80, 69, 76, 76, 69, 210, 82, 69, 83, 79, 85, 82, 67, 69, - 128, 82, 69, 83, 80, 79, 78, 83, 69, 128, 82, 69, 86, 69, 82, 83, 69, 68, - 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 85, 66, 71, 82, 79, 85, 80, - 128, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 89, 77, 66, 79, 76, 45, 49, - 128, 83, 89, 77, 66, 79, 76, 45, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52, - 128, 83, 89, 77, 66, 79, 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, 45, 55, - 128, 83, 89, 77, 66, 79, 76, 45, 56, 128, 83, 89, 77, 77, 69, 84, 82, 73, - 195, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 82, 73, 83, 73, 77, 79, 85, - 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 85, 78, 68, 69, 82, 76, 73, 78, - 197, 85, 78, 68, 69, 82, 84, 73, 69, 128, 85, 78, 73, 86, 69, 82, 83, 65, - 204, 65, 68, 68, 82, 69, 83, 83, 69, 196, 65, 69, 69, 89, 65, 78, 78, 65, - 128, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 78, 85, 68, 65, 84, 84, 65, - 128, 65, 80, 79, 68, 69, 88, 73, 65, 128, 65, 80, 79, 84, 72, 69, 77, 65, - 128, 65, 80, 80, 82, 79, 65, 67, 72, 128, 65, 81, 85, 65, 82, 73, 85, 83, - 128, 65, 82, 45, 82, 65, 72, 77, 65, 206, 65, 82, 65, 69, 65, 45, 69, 79, - 128, 65, 82, 71, 79, 84, 69, 82, 73, 128, 65, 82, 73, 83, 84, 69, 82, 65, - 128, 65, 83, 67, 69, 78, 68, 73, 78, 199, 65, 83, 84, 69, 82, 73, 83, 75, - 211, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 84, 84, 72, 65, 67, 65, 78, - 128, 66, 65, 67, 75, 83, 76, 65, 83, 200, 66, 69, 86, 69, 82, 65, 71, 69, - 128, 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 83, 69, 67, 84, 73, 78, - 199, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 82, 65, 78, 67, 72, 73, 78, - 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, 85, 83, 83, 89, 69, 82, 85, - 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 82, 89, 83, 84, 73, 65, - 206, 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 84, 84, 65, 87, 65, - 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 76, 73, 77, 65, 67, 85, 83, - 128, 67, 79, 78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 71, 82, 85, 69, 78, - 212, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 84, 79, 85, 82, 69, - 196, 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 82, 69, 83, 67, 69, 78, 84, - 128, 68, 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 82, 75, 69, 78, 73, 78, - 199, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 69, 67, 69, 77, 66, 69, 82, - 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68, 69, 76, 73, 77, 73, 84, 69, - 210, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 71, 79, 82, 71, 79, 78, - 128, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 79, 84, 83, 45, 49, 50, 51, - 128, 68, 79, 84, 83, 45, 49, 50, 52, 128, 68, 79, 84, 83, 45, 49, 50, 53, - 128, 68, 79, 84, 83, 45, 49, 50, 54, 128, 68, 79, 84, 83, 45, 49, 50, 55, - 128, 68, 79, 84, 83, 45, 49, 50, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, - 128, 68, 79, 84, 83, 45, 49, 51, 53, 128, 68, 79, 84, 83, 45, 49, 51, 54, - 128, 68, 79, 84, 83, 45, 49, 51, 55, 128, 68, 79, 84, 83, 45, 49, 51, 56, - 128, 68, 79, 84, 83, 45, 49, 52, 53, 128, 68, 79, 84, 83, 45, 49, 52, 54, - 128, 68, 79, 84, 83, 45, 49, 52, 55, 128, 68, 79, 84, 83, 45, 49, 52, 56, - 128, 68, 79, 84, 83, 45, 49, 53, 54, 128, 68, 79, 84, 83, 45, 49, 53, 55, - 128, 68, 79, 84, 83, 45, 49, 53, 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, - 128, 68, 79, 84, 83, 45, 49, 54, 56, 128, 68, 79, 84, 83, 45, 49, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 51, 52, 128, 68, 79, 84, 83, 45, 50, 51, 53, - 128, 68, 79, 84, 83, 45, 50, 51, 54, 128, 68, 79, 84, 83, 45, 50, 51, 55, - 128, 68, 79, 84, 83, 45, 50, 51, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, - 128, 68, 79, 84, 83, 45, 50, 52, 54, 128, 68, 79, 84, 83, 45, 50, 52, 55, - 128, 68, 79, 84, 83, 45, 50, 52, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, - 128, 68, 79, 84, 83, 45, 50, 53, 55, 128, 68, 79, 84, 83, 45, 50, 53, 56, - 128, 68, 79, 84, 83, 45, 50, 54, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, - 128, 68, 79, 84, 83, 45, 50, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, - 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 55, - 128, 68, 79, 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, - 128, 68, 79, 84, 83, 45, 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 56, - 128, 68, 79, 84, 83, 45, 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 51, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, - 128, 68, 79, 84, 83, 45, 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 56, - 128, 68, 79, 84, 83, 45, 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, - 128, 68, 79, 84, 83, 45, 52, 55, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, - 128, 68, 79, 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 55, 56, - 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 84, 69, 68, 45, 76, - 128, 68, 79, 84, 84, 69, 68, 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 80, - 128, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 86, 73, 83, 86, 65, 82, 65, - 128, 69, 68, 73, 84, 79, 82, 73, 65, 204, 69, 78, 86, 69, 76, 79, 80, 69, - 128, 69, 80, 69, 71, 69, 82, 77, 65, 128, 69, 83, 84, 73, 77, 65, 84, 69, - 196, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 84, 69, 82, 78, 73, 84, 89, - 128, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 84, 72, 65, 84, 65, 78, - 128, 70, 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, 83, 84, 73, 86, 65, 76, - 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, 45, 50, - 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, 73, 86, 69, 45, 76, 73, 78, - 197, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 82, 65, 71, 77, 69, 78, 84, - 128, 70, 82, 65, 71, 82, 65, 78, 84, 128, 70, 85, 76, 76, 78, 69, 83, 83, - 128, 70, 85, 78, 67, 84, 73, 79, 78, 128, 71, 69, 78, 73, 84, 73, 86, 69, - 128, 71, 69, 79, 77, 69, 84, 82, 73, 195, 72, 65, 78, 45, 65, 75, 65, 84, - 128, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 77, 79, 78, 73, 67, - 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 85, 65, 82, 65, 68, 68, 79, - 128, 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, 79, 78, 79, 78, - 128, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 82, 69, 65, 83, 69, - 211, 73, 82, 85, 89, 65, 78, 78, 65, 128, 74, 65, 86, 73, 89, 65, 78, 73, - 128, 75, 65, 83, 82, 65, 84, 65, 78, 128, 75, 65, 84, 72, 73, 83, 84, 73, - 128, 75, 69, 89, 66, 79, 65, 82, 68, 128, 75, 79, 78, 84, 69, 86, 77, 65, - 128, 75, 82, 69, 77, 65, 83, 84, 73, 128, 76, 65, 82, 89, 78, 71, 69, 65, - 204, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 73, 65, 66, 73, 76, 73, 84, - 217, 76, 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 82, 82, 65, 73, 78, 69, - 128, 77, 65, 72, 65, 80, 65, 75, 72, 128, 77, 65, 73, 77, 65, 76, 65, 73, - 128, 77, 65, 73, 89, 65, 77, 79, 75, 128, 77, 65, 78, 71, 65, 76, 65, 77, - 128, 77, 65, 83, 67, 85, 76, 73, 78, 197, 77, 69, 68, 73, 67, 73, 78, 69, - 128, 77, 69, 83, 83, 69, 78, 73, 65, 206, 77, 73, 78, 73, 83, 84, 69, 82, - 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 78, 73, 75, 72, 65, 72, 73, 84, - 128, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78, 79, 86, 69, 77, 66, 69, 82, - 128, 79, 86, 69, 82, 76, 65, 73, 68, 128, 80, 65, 65, 83, 69, 78, 84, 79, - 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65, 76, 79, 67, 72, 75, 65, - 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 82, 73, 67, 72, 79, 78, - 128, 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 69, 76, 65, 83, 84, 79, 78, - 128, 80, 69, 82, 77, 65, 78, 69, 78, 212, 80, 73, 84, 67, 72, 70, 79, 82, - 203, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80, 79, 82, 82, 69, 67, 84, 85, - 211, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 80, 73, 73, - 128, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79, 71, 82, 69, 83, 83, - 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 81, 65, 73, 82, 84, 72, 82, 65, - 128, 81, 85, 65, 82, 84, 69, 82, 83, 128, 81, 85, 69, 83, 84, 73, 79, 78, - 128, 82, 69, 67, 69, 80, 84, 73, 86, 197, 82, 69, 67, 79, 82, 68, 69, 82, - 128, 82, 69, 67, 79, 82, 68, 73, 78, 199, 82, 69, 67, 84, 65, 78, 71, 76, - 197, 82, 69, 70, 69, 82, 69, 78, 67, 197, 82, 69, 76, 73, 71, 73, 79, 78, - 128, 82, 69, 78, 84, 79, 71, 69, 78, 128, 82, 73, 71, 72, 84, 72, 65, 78, - 196, 82, 85, 75, 75, 65, 75, 72, 65, 128, 83, 65, 78, 84, 73, 73, 77, 85, - 128, 83, 65, 88, 73, 77, 65, 84, 65, 128, 83, 67, 65, 78, 68, 73, 67, 85, - 211, 83, 67, 79, 82, 80, 73, 85, 83, 128, 83, 69, 77, 73, 67, 79, 76, 79, - 206, 83, 69, 86, 69, 78, 84, 69, 69, 206, 83, 72, 65, 77, 82, 79, 67, 75, - 128, 83, 72, 69, 45, 71, 79, 65, 84, 128, 83, 73, 67, 75, 78, 69, 83, 83, - 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 84, 65, 76, 76, 73, 79, 78, - 128, 83, 84, 79, 80, 80, 65, 71, 69, 128, 83, 84, 79, 80, 80, 73, 78, 71, - 128, 83, 84, 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 84, 67, 72, 69, - 196, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75, 69, 45, 50, - 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, 45, 52, - 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, 45, 54, - 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, 45, 56, - 128, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 85, 73, 84, 65, 66, 76, 69, - 128, 83, 85, 82, 82, 79, 85, 78, 68, 128, 83, 89, 77, 66, 79, 76, 45, 51, - 128, 83, 89, 77, 66, 79, 76, 45, 54, 128, 83, 89, 77, 66, 79, 76, 45, 57, - 128, 83, 89, 77, 77, 69, 84, 82, 89, 128, 83, 89, 78, 68, 69, 83, 77, 79, - 211, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 69, 84, 82, 65, 80, 76, 73, - 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 82, 69, 65, 68, 73, 78, 71, - 128, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 78, - 128, 84, 82, 85, 78, 67, 65, 84, 69, 196, 85, 73, 76, 76, 69, 65, 78, 78, - 128, 85, 77, 66, 82, 69, 76, 76, 65, 128, 85, 78, 68, 69, 82, 68, 79, 84, - 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 86, 69, 82, 83, 73, 67, 76, 69, - 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 83, 65, 76, 76, 65, 77, - 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 80, 79, 75, 82, 73, 83, 73, - 211, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 87, 65, 82, 65, 75, 65, 89, - 128, 73, 78, 86, 69, 82, 84, 69, 196, 78, 69, 71, 65, 84, 73, 86, 197, - 85, 71, 65, 82, 73, 84, 73, 195, 66, 85, 71, 73, 78, 69, 83, 197, 72, 85, - 78, 68, 82, 69, 68, 128, 67, 69, 68, 73, 76, 76, 65, 128, 84, 82, 73, 65, - 78, 71, 76, 197, 78, 79, 84, 69, 72, 69, 65, 196, 83, 85, 80, 69, 82, 83, - 69, 212, 70, 82, 65, 67, 84, 73, 79, 206, 81, 85, 69, 83, 84, 73, 79, - 206, 84, 65, 71, 66, 65, 78, 87, 193, 81, 85, 65, 68, 82, 65, 78, 212, - 68, 73, 65, 71, 79, 78, 65, 204, 85, 80, 83, 73, 76, 79, 78, 128, 79, 86, - 69, 82, 76, 65, 89, 128, 77, 65, 82, 84, 89, 82, 73, 193, 79, 86, 69, 82, - 66, 65, 82, 128, 68, 73, 65, 77, 79, 78, 68, 128, 69, 80, 83, 73, 76, 79, - 78, 128, 72, 65, 78, 71, 90, 72, 79, 213, 73, 78, 84, 69, 71, 82, 65, - 204, 77, 69, 65, 83, 85, 82, 69, 196, 79, 77, 73, 67, 82, 79, 78, 128, - 84, 79, 82, 84, 79, 73, 83, 197, 79, 82, 78, 65, 77, 69, 78, 212, 86, 73, - 83, 65, 82, 71, 65, 128, 69, 88, 84, 69, 78, 68, 69, 196, 72, 65, 82, 80, - 79, 79, 78, 128, 80, 82, 69, 67, 69, 68, 69, 211, 83, 79, 76, 73, 68, 85, - 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 84, 72, 69, 83, 80, 73, 65, - 206, 67, 79, 78, 84, 65, 73, 78, 211, 68, 73, 71, 82, 65, 80, 72, 128, - 77, 69, 84, 82, 73, 67, 65, 204, 77, 79, 78, 79, 71, 82, 65, 205, 67, 82, - 79, 83, 83, 73, 78, 199, 83, 73, 77, 65, 78, 83, 73, 211, 83, 84, 65, 84, - 69, 82, 83, 128, 83, 85, 66, 85, 78, 73, 84, 128, 83, 73, 68, 69, 87, 65, - 89, 211, 83, 81, 85, 65, 82, 69, 68, 128, 84, 65, 76, 69, 78, 84, 83, - 128, 84, 72, 79, 85, 83, 65, 78, 196, 66, 65, 82, 76, 73, 78, 69, 128, - 68, 73, 86, 73, 83, 73, 79, 206, 73, 79, 84, 73, 70, 73, 69, 196, 80, 65, - 82, 65, 76, 76, 69, 204, 83, 73, 88, 84, 69, 69, 78, 128, 83, 85, 66, 71, - 82, 79, 85, 208, 83, 85, 82, 82, 79, 85, 78, 196, 85, 80, 87, 65, 82, 68, - 83, 128, 70, 73, 70, 84, 69, 69, 78, 128, 79, 80, 69, 82, 65, 84, 79, - 210, 79, 82, 73, 71, 73, 78, 65, 204, 68, 73, 65, 83, 84, 79, 76, 201, - 68, 73, 86, 73, 68, 69, 82, 128, 70, 65, 84, 72, 65, 84, 65, 206, 73, 90, - 72, 73, 84, 83, 65, 128, 77, 89, 83, 76, 73, 84, 69, 128, 80, 79, 73, 78, - 84, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72, 212, 65, 83, 84, 69, 82, 73, - 83, 203, 66, 65, 89, 65, 78, 78, 65, 128, 67, 72, 82, 79, 78, 79, 78, - 128, 68, 73, 71, 79, 82, 71, 79, 206, 69, 73, 71, 72, 84, 72, 83, 128, - 70, 73, 78, 71, 69, 82, 69, 196, 71, 65, 89, 65, 78, 78, 65, 128, 72, 65, - 82, 75, 76, 69, 65, 206, 74, 65, 89, 65, 78, 78, 65, 128, 75, 79, 82, 79, - 78, 73, 83, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 79, 90, 69, 78, 71, - 69, 128, 77, 65, 75, 83, 85, 82, 65, 128, 78, 79, 45, 66, 82, 69, 65, - 203, 80, 73, 78, 87, 72, 69, 69, 204, 81, 85, 65, 82, 84, 69, 82, 211, - 82, 69, 80, 69, 65, 84, 69, 196, 83, 65, 89, 65, 78, 78, 65, 128, 83, 69, - 76, 69, 67, 84, 79, 210, 83, 81, 85, 73, 71, 71, 76, 197, 84, 69, 84, 65, - 82, 84, 79, 211, 84, 82, 79, 77, 73, 75, 79, 206, 65, 67, 84, 73, 86, 65, - 84, 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 75, 72, 77, 73, 77, 73, - 195, 65, 80, 79, 68, 69, 82, 77, 193, 65, 82, 73, 83, 84, 69, 82, 193, - 66, 69, 84, 87, 69, 69, 78, 128, 66, 73, 76, 65, 66, 73, 65, 204, 67, 65, - 89, 65, 78, 78, 65, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 72, 65, 82, - 73, 79, 84, 128, 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 82, 79, 78, 79, - 85, 128, 67, 76, 79, 84, 72, 69, 83, 128, 67, 79, 82, 78, 69, 82, 83, - 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 80, 45, 66, 85, 79, 206, - 68, 65, 80, 45, 77, 85, 79, 217, 68, 65, 80, 45, 80, 82, 65, 205, 68, 69, - 89, 84, 69, 82, 79, 211, 68, 73, 71, 65, 77, 77, 65, 128, 68, 73, 83, 73, - 77, 79, 85, 128, 69, 77, 80, 72, 65, 83, 73, 211, 70, 69, 77, 73, 78, 73, - 78, 197, 70, 69, 82, 77, 65, 84, 65, 128, 70, 73, 83, 72, 72, 79, 79, - 203, 71, 76, 65, 71, 79, 76, 73, 128, 73, 78, 72, 69, 82, 69, 78, 212, - 73, 78, 84, 69, 82, 73, 79, 210, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, - 89, 65, 78, 78, 65, 128, 75, 79, 77, 66, 85, 86, 65, 128, 76, 45, 83, 72, - 65, 80, 69, 196, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 89, 65, 78, 78, - 65, 128, 76, 74, 85, 68, 73, 74, 69, 128, 76, 79, 71, 79, 84, 89, 80, - 197, 77, 69, 65, 83, 85, 82, 69, 128, 77, 85, 76, 84, 73, 83, 69, 212, - 78, 65, 89, 65, 78, 78, 65, 128, 79, 77, 73, 83, 83, 73, 79, 206, 80, 65, - 89, 65, 78, 78, 65, 128, 80, 69, 68, 69, 83, 84, 65, 204, 80, 69, 84, 65, - 76, 76, 69, 196, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82, 65, 77, 45, 80, - 73, 201, 81, 85, 65, 82, 84, 69, 82, 128, 82, 71, 89, 73, 78, 71, 83, - 128, 83, 45, 83, 72, 65, 80, 69, 196, 83, 69, 77, 73, 83, 79, 70, 212, - 83, 69, 77, 75, 65, 84, 72, 128, 83, 69, 86, 69, 78, 84, 89, 128, 83, 72, - 65, 80, 73, 78, 71, 128, 83, 72, 84, 65, 80, 73, 67, 128, 83, 79, 67, 73, - 69, 84, 89, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 69, 67, 73, 65, - 76, 128, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, 82, 79, 75, 69, 83, - 128, 84, 72, 69, 83, 69, 79, 83, 128, 84, 72, 85, 78, 68, 69, 82, 128, - 84, 82, 73, 83, 69, 77, 69, 128, 85, 66, 65, 68, 65, 77, 65, 128, 87, 65, - 73, 84, 73, 78, 71, 128, 90, 72, 73, 86, 69, 84, 69, 128, 65, 65, 89, 65, - 78, 78, 65, 128, 65, 66, 65, 70, 73, 76, 73, 128, 65, 68, 86, 65, 78, 67, - 69, 128, 65, 69, 89, 65, 78, 78, 65, 128, 65, 73, 89, 65, 78, 78, 65, - 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 86, 69, 79, 76, 65, 210, - 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 85, 76, 65, 82, 128, 65, 78, - 85, 83, 86, 65, 82, 193, 65, 80, 79, 84, 72, 69, 83, 128, 65, 82, 65, 69, - 65, 45, 73, 128, 65, 82, 65, 69, 65, 45, 85, 128, 65, 82, 67, 72, 65, 73, - 79, 206, 65, 82, 79, 85, 83, 73, 78, 199, 65, 85, 89, 65, 78, 78, 65, - 128, 66, 65, 65, 82, 69, 82, 85, 128, 66, 65, 73, 82, 75, 65, 78, 128, - 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 73, 69, 82, 128, 66, 65, - 84, 72, 84, 85, 66, 128, 66, 69, 67, 65, 85, 83, 69, 128, 66, 69, 76, 71, - 84, 72, 79, 210, 66, 69, 82, 75, 65, 78, 65, 206, 66, 73, 68, 69, 78, 84, - 65, 204, 66, 79, 85, 78, 68, 65, 82, 217, 66, 82, 65, 75, 67, 69, 84, - 128, 66, 82, 73, 83, 84, 76, 69, 128, 66, 85, 85, 77, 73, 83, 72, 128, - 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, - 82, 82, 73, 65, 71, 197, 67, 69, 76, 83, 73, 85, 83, 128, 67, 72, 65, 77, - 73, 76, 73, 128, 67, 76, 73, 78, 71, 73, 78, 199, 67, 79, 77, 80, 65, 82, - 69, 128, 67, 79, 78, 83, 84, 65, 78, 212, 67, 79, 78, 84, 65, 67, 84, - 128, 67, 79, 82, 79, 78, 73, 83, 128, 67, 79, 82, 82, 69, 67, 84, 128, - 67, 82, 69, 65, 84, 73, 86, 197, 67, 82, 69, 83, 67, 69, 78, 212, 67, 82, - 85, 90, 69, 73, 82, 207, 67, 85, 83, 84, 79, 77, 69, 210, 67, 87, 69, 79, - 82, 84, 72, 128, 67, 89, 80, 69, 82, 85, 83, 128, 67, 89, 82, 69, 78, 65, - 73, 195, 68, 65, 71, 65, 76, 71, 65, 128, 68, 69, 67, 65, 89, 69, 68, - 128, 68, 69, 89, 84, 69, 82, 79, 213, 68, 72, 65, 76, 65, 84, 72, 128, - 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 84, 79, 78, 79, 206, 68, 73, - 71, 82, 65, 77, 77, 193, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, 80, 76, - 79, 85, 78, 128, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 86, 73, 68, 69, - 83, 128, 68, 79, 84, 83, 45, 49, 50, 128, 68, 79, 84, 83, 45, 49, 51, - 128, 68, 79, 84, 83, 45, 49, 52, 128, 68, 79, 84, 83, 45, 49, 53, 128, - 68, 79, 84, 83, 45, 49, 54, 128, 68, 79, 84, 83, 45, 49, 55, 128, 68, 79, - 84, 83, 45, 49, 56, 128, 68, 79, 84, 83, 45, 50, 51, 128, 68, 79, 84, 83, - 45, 50, 52, 128, 68, 79, 84, 83, 45, 50, 53, 128, 68, 79, 84, 83, 45, 50, - 54, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 56, - 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, 45, 51, 53, 128, - 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, - 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, - 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, - 56, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, 55, - 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, - 68, 79, 84, 83, 45, 54, 56, 128, 68, 79, 84, 83, 45, 55, 56, 128, 68, 82, - 65, 67, 72, 77, 65, 128, 68, 82, 65, 70, 84, 73, 78, 199, 69, 65, 66, 72, - 65, 68, 72, 128, 69, 65, 68, 72, 65, 68, 72, 128, 69, 66, 69, 70, 73, 76, - 73, 128, 69, 73, 71, 72, 84, 69, 69, 206, 69, 76, 65, 70, 82, 79, 78, - 128, 69, 76, 69, 67, 84, 82, 73, 195, 69, 78, 81, 85, 73, 82, 89, 128, - 69, 78, 84, 69, 82, 73, 78, 199, 69, 84, 78, 65, 72, 84, 65, 128, 69, 86, - 69, 78, 73, 78, 71, 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, 89, 65, - 78, 78, 65, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 73, 83, 72, 69, 89, - 69, 128, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79, 79, 84, 78, 79, 84, - 197, 70, 79, 85, 82, 84, 69, 69, 206, 70, 82, 79, 87, 78, 73, 78, 199, - 71, 65, 82, 77, 69, 78, 84, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 82, - 65, 80, 72, 69, 77, 197, 72, 65, 70, 85, 75, 72, 65, 128, 72, 65, 76, 65, - 78, 84, 65, 128, 72, 65, 76, 66, 69, 82, 68, 128, 72, 65, 83, 65, 78, 84, - 65, 128, 72, 65, 89, 65, 78, 78, 65, 128, 72, 69, 65, 68, 73, 78, 71, - 128, 72, 69, 65, 86, 69, 78, 76, 217, 73, 45, 65, 82, 65, 69, 65, 128, - 73, 66, 73, 70, 73, 76, 73, 128, 73, 67, 72, 65, 68, 73, 78, 128, 73, 73, - 89, 65, 78, 78, 65, 128, 73, 78, 68, 73, 82, 69, 67, 212, 73, 78, 70, 73, - 78, 73, 84, 217, 73, 78, 84, 69, 82, 69, 83, 212, 73, 79, 68, 72, 65, 68, - 72, 128, 74, 65, 78, 85, 65, 82, 89, 128, 74, 65, 80, 65, 78, 69, 83, - 197, 74, 85, 80, 73, 84, 69, 82, 128, 75, 65, 75, 65, 66, 65, 84, 128, - 75, 65, 82, 65, 84, 84, 79, 128, 75, 65, 82, 79, 82, 73, 73, 128, 75, 73, - 78, 83, 72, 73, 80, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 79, 77, - 85, 85, 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 76, 65, 78, 71, 85, 65, - 71, 197, 76, 79, 67, 65, 84, 73, 79, 206, 77, 65, 73, 75, 85, 82, 79, - 128, 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 78, 83, 89, 79, 78, 128, - 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, - 82, 82, 73, 65, 71, 197, 77, 65, 82, 82, 89, 73, 78, 199, 77, 65, 83, 83, - 73, 78, 71, 128, 77, 65, 89, 65, 78, 78, 65, 128, 77, 69, 71, 65, 84, 79, - 78, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 84, 82, 69, 84, 69, - 211, 77, 73, 75, 85, 82, 79, 78, 128, 77, 73, 76, 76, 73, 79, 78, 211, - 77, 79, 68, 69, 83, 84, 89, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77, 79, - 82, 78, 73, 78, 71, 128, 77, 85, 76, 84, 73, 80, 76, 197, 78, 65, 84, 73, - 79, 78, 65, 204, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 80, 84, 85, 78, - 69, 128, 78, 69, 87, 76, 73, 78, 69, 128, 78, 71, 69, 65, 68, 65, 76, - 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 78, 69, 84, 69, 69, 206, - 79, 66, 79, 70, 73, 76, 73, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 78, - 69, 45, 76, 73, 78, 197, 79, 78, 69, 83, 69, 76, 70, 128, 79, 79, 89, 65, - 78, 78, 65, 128, 79, 82, 84, 72, 79, 68, 79, 216, 79, 85, 84, 76, 73, 78, - 69, 128, 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 76, 76, 65, 87, 65, - 128, 80, 65, 84, 84, 69, 82, 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, - 80, 69, 84, 65, 83, 77, 65, 128, 80, 69, 84, 65, 83, 84, 73, 128, 80, 72, - 73, 78, 84, 72, 85, 128, 80, 72, 85, 84, 72, 65, 79, 128, 80, 79, 68, 65, - 84, 85, 83, 128, 80, 82, 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69, 68, - 69, 196, 80, 82, 69, 86, 73, 79, 85, 211, 80, 82, 73, 86, 65, 84, 69, - 128, 80, 82, 79, 80, 69, 82, 84, 217, 82, 65, 75, 72, 65, 78, 71, 128, - 82, 65, 80, 73, 83, 77, 65, 128, 82, 65, 89, 65, 78, 78, 65, 128, 82, 69, - 65, 72, 77, 85, 75, 128, 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 84, 82, - 69, 65, 84, 128, 82, 73, 84, 84, 79, 82, 85, 128, 82, 85, 85, 66, 85, 82, - 85, 128, 83, 65, 73, 75, 85, 82, 85, 128, 83, 65, 76, 84, 73, 82, 69, - 128, 83, 65, 77, 80, 72, 65, 79, 128, 83, 65, 78, 89, 79, 79, 71, 193, - 83, 67, 72, 79, 76, 65, 82, 128, 83, 67, 82, 85, 80, 76, 69, 128, 83, 69, - 71, 77, 69, 78, 84, 128, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 78, 75, + 78, 65, 69, 76, 65, 69, 78, 71, 128, 80, 65, 78, 69, 85, 76, 69, 85, 78, + 71, 128, 80, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 69, 68, 69, 83, + 84, 82, 73, 65, 78, 128, 80, 79, 83, 83, 69, 83, 83, 73, 79, 78, 128, 80, + 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, 79, 74, 69, 67, 84, 73, + 86, 69, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197, 82, 65, 72, 77, + 65, 84, 85, 76, 76, 65, 200, 82, 69, 83, 73, 83, 84, 65, 78, 67, 69, 128, + 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 79, 76, 85, 84, + 73, 79, 78, 128, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 57, 128, 83, 72, 65, 76, 83, 72, 69, 76, 69, 84, 128, 83, + 73, 79, 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, 73, 69, 85, + 78, 71, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77, 128, 83, 83, 65, 78, + 71, 65, 82, 65, 69, 65, 128, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, + 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 83, 84, 73, 84, + 85, 84, 69, 128, 83, 89, 78, 67, 72, 82, 79, 78, 79, 85, 211, 84, 69, 82, + 77, 73, 78, 65, 84, 79, 82, 128, 84, 72, 73, 82, 84, 89, 45, 79, 78, 69, + 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 82, 65, 78, 83, 86, + 69, 82, 83, 65, 204, 84, 87, 69, 78, 84, 89, 45, 83, 73, 88, 128, 86, 69, + 82, 84, 73, 67, 65, 76, 76, 89, 128, 87, 73, 68, 69, 45, 72, 69, 65, 68, + 69, 196, 65, 67, 82, 79, 80, 72, 79, 78, 73, 195, 67, 73, 82, 67, 85, 77, + 70, 76, 69, 216, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128, 80, 72, 79, 69, + 78, 73, 67, 73, 65, 206, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 65, 78, + 78, 79, 84, 65, 84, 73, 79, 206, 69, 81, 85, 73, 86, 65, 76, 69, 78, 212, + 83, 69, 80, 65, 82, 65, 84, 79, 82, 128, 84, 87, 79, 45, 72, 69, 65, 68, + 69, 196, 65, 82, 82, 79, 87, 72, 69, 65, 68, 128, 68, 79, 87, 78, 87, 65, + 82, 68, 83, 128, 65, 76, 80, 65, 80, 82, 65, 65, 78, 193, 69, 88, 84, 69, + 78, 83, 73, 79, 78, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, 210, 80, 72, + 65, 82, 89, 78, 71, 69, 65, 204, 80, 82, 79, 76, 65, 84, 73, 79, 78, 197, + 83, 69, 77, 73, 67, 79, 76, 79, 78, 128, 84, 85, 82, 78, 83, 84, 73, 76, + 69, 128, 65, 77, 80, 69, 82, 83, 65, 78, 68, 128, 76, 69, 70, 84, 87, 65, + 82, 68, 83, 128, 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, 67, 79, 77, 77, + 69, 82, 67, 73, 65, 204, 69, 80, 73, 71, 82, 65, 80, 72, 73, 195, 83, 69, + 77, 73, 68, 73, 82, 69, 67, 212, 83, 69, 86, 69, 78, 84, 69, 69, 78, 128, + 87, 79, 79, 68, 83, 45, 67, 82, 69, 197, 66, 65, 67, 75, 83, 76, 65, 83, + 72, 128, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 69, 88, 84, 82, 65, 45, + 72, 73, 71, 200, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, 73, 77, 80, 69, + 82, 70, 69, 67, 84, 193, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 82, 69, + 67, 84, 65, 78, 71, 76, 69, 128, 82, 73, 71, 72, 84, 45, 72, 65, 78, 196, + 84, 82, 73, 65, 78, 71, 85, 76, 65, 210, 86, 69, 82, 84, 73, 67, 65, 76, + 76, 217, 67, 79, 78, 84, 65, 73, 78, 73, 78, 199, 68, 69, 76, 73, 77, 73, + 84, 69, 82, 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 128, 69, 80, 73, 68, + 65, 85, 82, 69, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 79, + 85, 82, 71, 76, 65, 83, 83, 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, 128, + 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83, 69, 77, 73, 77, 73, 78, 73, + 77, 193, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 65, 80, 79, 83, 84, 82, + 79, 70, 79, 201, 65, 80, 79, 83, 84, 82, 79, 70, 79, 211, 65, 82, 80, 69, + 71, 71, 73, 65, 84, 207, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206, 67, 69, + 78, 84, 82, 69, 76, 73, 78, 197, 67, 72, 65, 82, 65, 67, 84, 69, 82, 128, + 67, 79, 80, 82, 79, 68, 85, 67, 84, 128, 67, 82, 79, 83, 83, 72, 65, 84, + 67, 200, 67, 85, 65, 84, 82, 73, 76, 76, 79, 128, 68, 69, 83, 67, 69, 78, + 68, 73, 78, 199, 69, 77, 66, 69, 68, 68, 73, 78, 71, 128, 70, 73, 78, 65, + 78, 67, 73, 65, 76, 128, 70, 79, 76, 76, 79, 87, 73, 78, 71, 128, 70, 82, + 69, 84, 66, 79, 65, 82, 68, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, + 71, 79, 82, 84, 72, 77, 73, 75, 79, 206, 73, 67, 72, 73, 77, 65, 84, 79, + 83, 128, 75, 72, 65, 75, 65, 83, 83, 73, 65, 206, 80, 65, 65, 45, 80, 73, + 76, 76, 65, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 82, 65, + 80, 72, 82, 65, 83, 197, 80, 69, 78, 84, 65, 83, 69, 77, 69, 128, 80, 72, + 73, 76, 73, 80, 80, 73, 78, 197, 83, 69, 77, 73, 67, 73, 82, 67, 76, 197, + 83, 85, 77, 77, 65, 84, 73, 79, 78, 128, 83, 85, 80, 69, 82, 86, 73, 83, + 69, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49, 128, 83, 89, 77, 66, 79, 76, + 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83, 89, 77, 66, + 79, 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, 128, 83, 89, + 77, 66, 79, 76, 45, 49, 56, 128, 83, 89, 77, 66, 79, 76, 45, 49, 57, 128, + 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89, 77, 66, 79, 76, 45, 50, + 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77, 66, 79, 76, + 45, 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, 89, 77, 66, + 79, 76, 45, 53, 51, 128, 83, 89, 77, 66, 79, 76, 45, 53, 52, 128, 84, 69, + 76, 69, 80, 72, 79, 78, 69, 128, 84, 69, 84, 82, 65, 83, 69, 77, 69, 128, + 84, 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 77, 79, 76, 79, 45, + 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, 82, 73, 71, 82, 65, + 77, 77, 79, 211, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 86, 73, 83, 73, + 71, 79, 84, 72, 73, 195, 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 66, + 85, 78, 68, 65, 78, 67, 69, 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, + 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, 78, 84, 73, 70, 79, 78, 73, + 65, 128, 65, 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 82, 45, 82, 65, 72, + 69, 69, 77, 128, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 84, 84, 69, + 78, 84, 73, 79, 78, 128, 66, 65, 67, 75, 83, 80, 65, 67, 69, 128, 66, 69, + 71, 73, 78, 78, 73, 78, 71, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, + 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 67, 65, 80, 82, 73, 67, 79, 82, + 78, 128, 67, 72, 65, 86, 73, 89, 65, 78, 73, 128, 67, 76, 79, 83, 69, 78, + 69, 83, 83, 128, 67, 79, 77, 80, 76, 69, 84, 69, 68, 128, 67, 79, 78, 74, + 79, 73, 78, 73, 78, 199, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, + 80, 89, 82, 73, 71, 72, 84, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, + 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 69, 80, 65, 82, 84, 85, 82, + 69, 128, 68, 73, 70, 70, 69, 82, 69, 78, 67, 197, 68, 73, 70, 70, 73, 67, + 85, 76, 84, 217, 68, 79, 84, 83, 45, 49, 50, 51, 52, 128, 68, 79, 84, 83, + 45, 49, 50, 51, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 56, 128, + 68, 79, 84, 83, 45, 49, 50, 52, 53, 128, 68, 79, 84, 83, 45, 49, 50, 52, + 54, 128, 68, 79, 84, 83, 45, 49, 50, 52, 55, 128, 68, 79, 84, 83, 45, 49, + 50, 52, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 128, 68, 79, 84, 83, + 45, 49, 50, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 54, 56, 128, + 68, 79, 84, 83, 45, 49, 50, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, + 53, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 128, 68, 79, 84, 83, 45, 49, + 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 56, 128, 68, 79, 84, 83, + 45, 49, 51, 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 53, 55, 128, 68, 79, + 84, 83, 45, 49, 51, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 54, 55, 128, + 68, 79, 84, 83, 45, 49, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 55, + 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, + 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 52, 53, 56, 128, 68, 79, 84, 83, + 45, 49, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 52, 54, 56, 128, 68, 79, + 84, 83, 45, 49, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 53, 54, 55, 128, + 68, 79, 84, 83, 45, 49, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 53, 55, + 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, + 51, 52, 53, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 128, 68, 79, 84, 83, + 45, 50, 51, 52, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 56, 128, 68, 79, + 84, 83, 45, 50, 51, 53, 54, 128, 68, 79, 84, 83, 45, 50, 51, 53, 55, 128, + 68, 79, 84, 83, 45, 50, 51, 53, 56, 128, 68, 79, 84, 83, 45, 50, 51, 54, + 55, 128, 68, 79, 84, 83, 45, 50, 51, 54, 56, 128, 68, 79, 84, 83, 45, 50, + 51, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 128, 68, 79, 84, 83, + 45, 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 56, 128, 68, 79, + 84, 83, 45, 50, 52, 54, 55, 128, 68, 79, 84, 83, 45, 50, 52, 54, 56, 128, + 68, 79, 84, 83, 45, 50, 52, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, + 55, 128, 68, 79, 84, 83, 45, 50, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, + 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, + 45, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55, 128, + 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, + 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, + 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, 79, + 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, + 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, + 56, 128, 69, 69, 66, 69, 69, 70, 73, 76, 73, 128, 69, 76, 69, 67, 84, 82, + 73, 67, 65, 204, 69, 78, 65, 82, 77, 79, 78, 73, 79, 211, 69, 78, 68, 69, + 65, 86, 79, 85, 82, 128, 69, 78, 68, 79, 70, 79, 78, 79, 78, 128, 69, 83, + 84, 73, 77, 65, 84, 69, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, + 69, 89, 66, 69, 89, 70, 73, 76, 73, 128, 70, 79, 79, 84, 83, 84, 79, 79, + 76, 128, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 82, 73, 67, 65, 84, + 73, 86, 69, 128, 71, 65, 84, 72, 69, 82, 73, 78, 71, 128, 71, 69, 77, 73, + 78, 65, 84, 73, 79, 206, 71, 78, 65, 86, 73, 89, 65, 78, 73, 128, 71, 79, + 82, 71, 79, 84, 69, 82, 73, 128, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, + 71, 85, 82, 65, 77, 85, 84, 79, 78, 128, 72, 69, 75, 85, 84, 65, 65, 82, + 85, 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 89, 83, 84, 69, 82, + 69, 83, 73, 211, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, + 84, 72, 79, 82, 65, 128, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, + 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, + 73, 78, 70, 76, 85, 69, 78, 67, 69, 128, 73, 78, 78, 79, 67, 69, 78, 67, + 69, 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 74, 69, 82, 85, 83, 65, + 76, 69, 77, 128, 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 69, 77, 80, + 72, 82, 69, 78, 71, 128, 75, 69, 78, 84, 73, 77, 65, 84, 65, 128, 75, 73, + 82, 79, 87, 65, 84, 84, 79, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, + 75, 85, 82, 85, 90, 69, 73, 82, 79, 128, 76, 65, 66, 79, 85, 82, 73, 78, + 71, 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 73, 71, 72, 84, 78, + 73, 78, 71, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 84, 69, + 82, 73, 65, 76, 83, 128, 77, 69, 84, 79, 66, 69, 76, 85, 83, 128, 77, 73, + 82, 73, 66, 65, 65, 82, 85, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, + 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 85, 45, 71, 65, 65, 72, 76, + 65, 193, 77, 85, 75, 80, 72, 82, 69, 78, 71, 128, 78, 73, 71, 71, 65, 72, + 73, 84, 65, 128, 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 73, + 68, 65, 77, 73, 78, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, 79, 79, + 66, 79, 79, 70, 73, 76, 73, 128, 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, + 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 77, 73, 78, 71, 75, 65, + 76, 128, 80, 65, 77, 85, 78, 71, 75, 65, 72, 128, 80, 65, 78, 71, 76, 65, + 89, 65, 82, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, 128, 80, 65, 82, 65, + 71, 82, 65, 80, 72, 128, 80, 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, 73, + 84, 67, 72, 70, 79, 82, 75, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, + 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 79, 82, 82, 69, 67, 84, 85, + 83, 128, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 77, + 85, 79, 89, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211, 81, 85, 65, 84, + 69, 82, 78, 73, 79, 206, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, 85, + 83, 72, 83, 72, 65, 89, 65, 128, 82, 69, 71, 73, 83, 84, 69, 82, 69, 196, + 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 80, 82, 69, 83, 69, 78, + 84, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83, 85, 80, 73, + 78, 85, 83, 128, 82, 73, 71, 72, 84, 45, 83, 73, 68, 197, 83, 67, 65, 78, + 68, 73, 67, 85, 83, 128, 83, 69, 80, 84, 69, 77, 66, 69, 82, 128, 83, 69, + 83, 84, 69, 82, 84, 73, 85, 211, 83, 69, 86, 69, 82, 65, 78, 67, 69, 128, + 83, 72, 65, 86, 73, 89, 65, 78, 73, 128, 83, 72, 79, 82, 84, 69, 78, 69, + 82, 128, 83, 72, 79, 85, 76, 68, 69, 82, 69, 196, 83, 73, 88, 45, 80, 69, + 82, 45, 69, 205, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, 83, 84, 82, 79, + 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 85, + 66, 83, 84, 73, 84, 85, 84, 197, 83, 85, 80, 69, 82, 70, 73, 88, 69, 196, + 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 89, 77, 66, 79, 76, 45, 49, + 48, 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77, 66, 79, 76, + 45, 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, + 79, 76, 45, 50, 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 50, 128, 83, 89, + 77, 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66, 79, 76, 45, 50, 54, 128, + 83, 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76, 45, 50, + 57, 128, 83, 89, 77, 66, 79, 76, 45, 51, 48, 128, 83, 89, 77, 66, 79, 76, + 45, 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83, 89, 77, 66, + 79, 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, + 77, 66, 79, 76, 45, 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 52, 48, 128, + 83, 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52, + 51, 128, 83, 89, 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, + 45, 52, 55, 128, 83, 89, 77, 66, 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, + 79, 76, 45, 52, 57, 128, 83, 89, 82, 77, 65, 84, 73, 75, 73, 128, 84, 65, + 75, 72, 65, 76, 76, 85, 83, 128, 84, 65, 87, 69, 76, 76, 69, 77, 69, 212, + 84, 72, 69, 82, 69, 70, 79, 82, 69, 128, 84, 72, 82, 69, 69, 45, 76, 73, + 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 73, 70, 79, 76, + 73, 65, 84, 197, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 71, + 79, 82, 71, 79, 78, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 86, 73, + 83, 65, 82, 71, 65, 89, 65, 128, 87, 65, 83, 83, 65, 76, 76, 65, 77, 128, + 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, 79, 82, 68, 83, 80, 65, 67, + 69, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, 128, 83, 85, 66, 74, 79, 73, + 78, 69, 196, 76, 69, 83, 83, 45, 84, 72, 65, 206, 68, 79, 87, 78, 87, 65, + 82, 68, 211, 79, 80, 69, 82, 65, 84, 79, 82, 128, 84, 82, 73, 65, 78, 71, + 76, 69, 128, 67, 79, 78, 83, 79, 78, 65, 78, 212, 83, 85, 66, 83, 67, 82, + 73, 80, 212, 84, 72, 79, 85, 83, 65, 78, 68, 128, 85, 78, 68, 69, 82, 66, + 65, 82, 128, 65, 83, 84, 69, 82, 73, 83, 75, 128, 81, 85, 79, 84, 65, 84, + 73, 79, 206, 79, 82, 78, 65, 77, 69, 78, 84, 128, 82, 69, 84, 82, 79, 70, + 76, 69, 216, 65, 82, 67, 72, 65, 73, 79, 78, 128, 68, 73, 65, 69, 82, 69, + 83, 73, 211, 66, 76, 65, 67, 75, 70, 79, 79, 212, 68, 69, 78, 84, 73, 83, + 84, 82, 217, 65, 78, 85, 83, 86, 65, 82, 65, 128, 68, 73, 65, 76, 89, 84, + 73, 75, 193, 73, 78, 84, 69, 71, 82, 65, 76, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 128, 76, 69, 70, 84, 45, 83, 84, 69, 205, 81, 85, 65, 68, 82, 85, + 80, 76, 197, 82, 69, 67, 89, 67, 76, 73, 78, 199, 65, 82, 82, 79, 87, 72, + 69, 65, 196, 65, 66, 75, 72, 65, 83, 73, 65, 206, 68, 73, 65, 76, 69, 67, + 84, 45, 208, 68, 79, 68, 69, 75, 65, 84, 65, 128, 69, 76, 76, 73, 80, 83, + 73, 83, 128, 81, 85, 65, 68, 82, 65, 78, 84, 128, 65, 86, 65, 71, 82, 65, + 72, 65, 128, 68, 73, 65, 84, 79, 78, 73, 75, 201, 69, 78, 67, 76, 79, 83, + 73, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, 128, 80, 76, 65, 83, 84, 73, + 67, 83, 128, 73, 84, 69, 82, 65, 84, 73, 79, 206, 78, 79, 84, 69, 72, 69, + 65, 68, 128, 78, 85, 77, 69, 82, 65, 84, 79, 210, 83, 85, 80, 69, 82, 83, + 69, 84, 128, 69, 73, 71, 72, 84, 69, 69, 78, 128, 70, 76, 65, 84, 84, 69, + 78, 69, 196, 70, 79, 85, 82, 84, 69, 69, 78, 128, 76, 69, 70, 84, 45, 72, + 65, 78, 196, 78, 73, 78, 69, 84, 69, 69, 78, 128, 84, 72, 73, 82, 84, 69, + 69, 78, 128, 65, 76, 84, 69, 82, 78, 65, 84, 197, 68, 73, 65, 71, 79, 78, + 65, 76, 128, 69, 88, 84, 82, 65, 45, 76, 79, 215, 70, 76, 79, 82, 69, 84, + 84, 69, 128, 73, 68, 69, 78, 84, 73, 67, 65, 204, 75, 69, 78, 84, 73, 77, + 65, 84, 193, 77, 79, 78, 79, 67, 85, 76, 65, 210, 80, 65, 82, 65, 71, 82, + 65, 80, 200, 80, 69, 78, 84, 65, 71, 79, 78, 128, 82, 69, 76, 65, 84, 73, + 79, 78, 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 69, 66, 65, 84, 66, + 69, 73, 212, 83, 69, 80, 65, 82, 65, 84, 79, 210, 68, 68, 65, 89, 65, 78, + 78, 65, 128, 68, 69, 80, 65, 82, 84, 73, 78, 199, 70, 65, 78, 69, 82, 79, + 83, 73, 211, 70, 73, 83, 72, 72, 79, 79, 75, 128, 73, 78, 70, 73, 78, 73, + 84, 89, 128, 73, 78, 86, 73, 83, 73, 66, 76, 197, 77, 79, 78, 79, 71, 82, + 65, 80, 200, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 85, 76, 84, 73, 77, + 65, 80, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 80, 65, 82, 65, 76, 76, + 69, 76, 128, 80, 82, 69, 67, 69, 68, 69, 83, 128, 82, 69, 86, 69, 82, 83, + 69, 68, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 80, 72, 69, 82, 73, + 67, 65, 204, 83, 85, 66, 76, 73, 78, 69, 65, 210, 83, 85, 67, 67, 69, 69, + 68, 83, 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 84, 69, 76, 69, 80, 72, + 79, 78, 197, 84, 72, 79, 85, 83, 65, 78, 68, 211, 89, 69, 83, 73, 69, 85, + 78, 71, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 66, 73, 78, 79, 67, 85, + 76, 65, 210, 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 79, 78, 83, 84, 65, + 78, 84, 128, 67, 85, 65, 84, 82, 73, 76, 76, 207, 68, 73, 70, 79, 78, 73, + 65, 83, 128, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 82, 65, 67, 72, 77, + 65, 83, 128, 70, 76, 79, 85, 82, 73, 83, 72, 128, 71, 65, 82, 83, 72, 85, + 78, 73, 128, 71, 65, 84, 72, 69, 82, 73, 78, 199, 71, 76, 73, 83, 83, 65, + 78, 68, 207, 71, 82, 69, 71, 79, 82, 73, 65, 206, 73, 78, 67, 82, 69, 65, + 83, 69, 128, 73, 78, 83, 69, 82, 84, 73, 79, 206, 73, 83, 45, 80, 73, 76, + 76, 65, 128, 79, 86, 69, 82, 82, 73, 68, 69, 128, 79, 89, 82, 65, 78, 73, + 83, 77, 193, 80, 65, 76, 79, 67, 72, 75, 65, 128, 80, 69, 68, 69, 83, 84, + 65, 76, 128, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80, 82, 65, 77, 45, 66, + 85, 79, 206, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 69, 67, 69, 68, + 73, 78, 199, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 80, 69, 76, + 76, 69, 210, 81, 85, 65, 82, 84, 69, 82, 83, 128, 82, 69, 83, 79, 85, 82, + 67, 69, 128, 82, 69, 83, 80, 79, 78, 83, 69, 128, 83, 65, 76, 84, 73, 76, + 76, 79, 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 85, 66, 71, 82, 79, + 85, 80, 128, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 89, 77, 66, 79, 76, + 45, 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 128, 83, 89, 77, 66, 79, 76, + 45, 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, + 45, 55, 128, 83, 89, 77, 66, 79, 76, 45, 56, 128, 83, 89, 77, 77, 69, 84, + 82, 73, 195, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 82, 69, 83, 73, 76, + 76, 79, 128, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 83, 73, 77, + 79, 85, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84, 85, 68, 68, 65, + 65, 71, 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68, 69, 82, 84, + 73, 69, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 65, 68, 68, 82, 69, 83, + 83, 69, 196, 65, 69, 69, 89, 65, 78, 78, 65, 128, 65, 73, 82, 80, 76, 65, + 78, 69, 128, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 80, 79, 68, 69, 88, + 73, 65, 128, 65, 80, 79, 84, 72, 69, 77, 65, 128, 65, 80, 80, 82, 79, 65, + 67, 72, 128, 65, 81, 85, 65, 82, 73, 85, 83, 128, 65, 82, 45, 82, 65, 72, + 77, 65, 206, 65, 82, 65, 69, 65, 45, 69, 79, 128, 65, 82, 71, 79, 84, 69, + 82, 73, 128, 65, 82, 73, 83, 84, 69, 82, 65, 128, 65, 83, 67, 69, 78, 68, + 73, 78, 199, 65, 83, 80, 73, 82, 65, 84, 69, 196, 65, 83, 84, 69, 82, 73, + 83, 75, 211, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 84, 84, 72, 65, 67, + 65, 78, 128, 66, 65, 67, 75, 83, 76, 65, 83, 200, 66, 69, 86, 69, 82, 65, + 71, 69, 128, 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 83, 69, 67, 84, + 73, 78, 199, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 82, 65, 78, 67, 72, + 73, 78, 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, 85, 83, 83, 89, 69, + 82, 85, 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 82, 80, 69, 78, + 84, 82, 217, 67, 65, 82, 89, 83, 84, 73, 65, 206, 67, 69, 78, 84, 85, 82, + 73, 65, 204, 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 84, 84, 65, + 87, 65, 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 76, 73, 77, 65, 67, + 85, 83, 128, 67, 79, 78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 71, 82, 85, + 69, 78, 212, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 84, 79, 85, + 82, 69, 196, 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 82, 69, 83, 67, 69, + 78, 84, 128, 68, 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 82, 75, 69, 78, + 73, 78, 199, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 69, 67, 69, 77, 66, + 69, 82, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68, 69, 76, 73, 77, 73, + 84, 69, 210, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 71, 79, 82, 71, + 79, 78, 128, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 73, 86, 73, 83, 73, + 79, 78, 128, 68, 79, 84, 83, 45, 49, 50, 51, 128, 68, 79, 84, 83, 45, 49, + 50, 52, 128, 68, 79, 84, 83, 45, 49, 50, 53, 128, 68, 79, 84, 83, 45, 49, + 50, 54, 128, 68, 79, 84, 83, 45, 49, 50, 55, 128, 68, 79, 84, 83, 45, 49, + 50, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 128, 68, 79, 84, 83, 45, 49, + 51, 53, 128, 68, 79, 84, 83, 45, 49, 51, 54, 128, 68, 79, 84, 83, 45, 49, + 51, 55, 128, 68, 79, 84, 83, 45, 49, 51, 56, 128, 68, 79, 84, 83, 45, 49, + 52, 53, 128, 68, 79, 84, 83, 45, 49, 52, 54, 128, 68, 79, 84, 83, 45, 49, + 52, 55, 128, 68, 79, 84, 83, 45, 49, 52, 56, 128, 68, 79, 84, 83, 45, 49, + 53, 54, 128, 68, 79, 84, 83, 45, 49, 53, 55, 128, 68, 79, 84, 83, 45, 49, + 53, 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, 128, 68, 79, 84, 83, 45, 49, + 54, 56, 128, 68, 79, 84, 83, 45, 49, 55, 56, 128, 68, 79, 84, 83, 45, 50, + 51, 52, 128, 68, 79, 84, 83, 45, 50, 51, 53, 128, 68, 79, 84, 83, 45, 50, + 51, 54, 128, 68, 79, 84, 83, 45, 50, 51, 55, 128, 68, 79, 84, 83, 45, 50, + 51, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 128, 68, 79, 84, 83, 45, 50, + 52, 54, 128, 68, 79, 84, 83, 45, 50, 52, 55, 128, 68, 79, 84, 83, 45, 50, + 52, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, 128, 68, 79, 84, 83, 45, 50, + 53, 55, 128, 68, 79, 84, 83, 45, 50, 53, 56, 128, 68, 79, 84, 83, 45, 50, + 54, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, 128, 68, 79, 84, 83, 45, 50, + 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, + 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, + 52, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, + 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 56, 128, 68, 79, 84, 83, 45, 51, + 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56, 128, 68, 79, 84, 83, 45, 51, + 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, + 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 56, 128, 68, 79, 84, 83, 45, 52, + 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, 128, 68, 79, 84, 83, 45, 52, + 55, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, + 54, 56, 128, 68, 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 54, + 55, 56, 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, + 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 85, 80, 79, 78, 68, + 73, 85, 211, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 86, 73, 83, 86, 65, + 82, 65, 128, 69, 68, 73, 84, 79, 82, 73, 65, 204, 69, 78, 86, 69, 76, 79, + 80, 69, 128, 69, 80, 69, 71, 69, 82, 77, 65, 128, 69, 83, 84, 73, 77, 65, + 84, 69, 196, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 84, 69, 82, 78, 73, + 84, 89, 128, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 84, 72, 65, 84, + 65, 78, 128, 70, 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, 83, 84, 73, 86, + 65, 76, 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, + 45, 50, 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, 73, 86, 69, 45, 76, + 73, 78, 197, 70, 76, 65, 84, 78, 69, 83, 83, 128, 70, 79, 85, 82, 45, 76, + 73, 78, 197, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 71, 82, 65, + 78, 84, 128, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85, 78, 67, 84, 73, + 79, 78, 128, 71, 65, 85, 78, 84, 76, 69, 84, 128, 71, 69, 78, 73, 84, 73, + 86, 69, 128, 71, 69, 79, 77, 69, 84, 82, 73, 195, 72, 65, 78, 45, 65, 75, + 65, 84, 128, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 77, 79, 78, + 73, 67, 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 85, 65, 82, 65, 68, + 68, 79, 128, 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, 79, 78, + 79, 78, 128, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 82, 69, 65, + 83, 69, 211, 73, 78, 86, 69, 82, 84, 69, 68, 128, 73, 82, 85, 89, 65, 78, + 78, 65, 128, 74, 65, 86, 73, 89, 65, 78, 73, 128, 75, 65, 83, 82, 65, 84, + 65, 78, 128, 75, 65, 84, 72, 73, 83, 84, 73, 128, 75, 69, 89, 66, 79, 65, + 82, 68, 128, 75, 79, 78, 84, 69, 86, 77, 65, 128, 75, 82, 69, 77, 65, 83, + 84, 73, 128, 76, 65, 82, 89, 78, 71, 69, 65, 204, 76, 69, 70, 84, 45, 83, + 73, 68, 197, 76, 73, 65, 66, 73, 76, 73, 84, 217, 76, 79, 67, 65, 84, 73, + 86, 69, 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 77, 65, 72, 65, 80, 65, + 75, 72, 128, 77, 65, 73, 77, 65, 76, 65, 73, 128, 77, 65, 73, 89, 65, 77, + 79, 75, 128, 77, 65, 78, 65, 67, 76, 69, 83, 128, 77, 65, 78, 71, 65, 76, + 65, 77, 128, 77, 65, 83, 67, 85, 76, 73, 78, 197, 77, 69, 68, 73, 67, 73, + 78, 69, 128, 77, 69, 83, 83, 69, 78, 73, 65, 206, 77, 73, 78, 73, 83, 84, + 69, 82, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 78, 73, 75, 72, 65, 72, + 73, 84, 128, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78, 79, 86, 69, 77, 66, + 69, 82, 128, 79, 86, 69, 82, 76, 65, 73, 68, 128, 80, 65, 65, 83, 69, 78, + 84, 79, 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65, 77, 69, 78, 69, + 78, 71, 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 78, 71, 72, 85, + 76, 85, 128, 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 89, 65, 75, + 82, 65, 128, 80, 65, 78, 89, 69, 67, 69, 75, 128, 80, 65, 82, 73, 67, 72, + 79, 78, 128, 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 69, 76, 65, 83, 84, + 79, 78, 128, 80, 69, 82, 77, 65, 78, 69, 78, 212, 80, 72, 65, 65, 82, 75, + 65, 65, 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 76, 69, 84, 72, 82, + 79, 78, 128, 80, 79, 75, 82, 89, 84, 73, 69, 128, 80, 79, 82, 82, 69, 67, + 84, 85, 211, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 80, + 73, 73, 128, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79, 71, 82, 69, + 83, 83, 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 81, 65, 73, 82, 84, 72, + 82, 65, 128, 81, 85, 69, 83, 84, 73, 79, 78, 128, 81, 85, 73, 78, 65, 82, + 73, 85, 211, 81, 85, 73, 78, 67, 85, 78, 88, 128, 82, 69, 67, 69, 80, 84, + 73, 86, 197, 82, 69, 67, 79, 82, 68, 69, 82, 128, 82, 69, 67, 79, 82, 68, + 73, 78, 199, 82, 69, 67, 84, 65, 78, 71, 76, 197, 82, 69, 70, 69, 82, 69, + 78, 67, 197, 82, 69, 76, 73, 71, 73, 79, 78, 128, 82, 69, 78, 84, 79, 71, + 69, 78, 128, 82, 73, 71, 72, 84, 72, 65, 78, 196, 82, 85, 75, 75, 65, 75, + 72, 65, 128, 83, 65, 77, 65, 82, 73, 84, 65, 206, 83, 65, 78, 84, 73, 73, + 77, 85, 128, 83, 65, 88, 73, 77, 65, 84, 65, 128, 83, 67, 65, 78, 68, 73, + 67, 85, 211, 83, 67, 79, 82, 80, 73, 85, 83, 128, 83, 69, 77, 73, 67, 79, + 76, 79, 206, 83, 69, 86, 69, 78, 84, 69, 69, 206, 83, 72, 65, 77, 82, 79, + 67, 75, 128, 83, 72, 69, 45, 71, 79, 65, 84, 128, 83, 72, 69, 83, 72, 76, + 65, 77, 128, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 80, 76, 73, 84, 84, + 73, 78, 199, 83, 84, 65, 76, 76, 73, 79, 78, 128, 83, 84, 79, 80, 80, 65, + 71, 69, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 82, 65, 73, 78, + 69, 82, 128, 83, 84, 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 84, 67, + 72, 69, 196, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75, 69, + 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, + 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, + 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, + 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 85, 73, 84, 65, 66, + 76, 69, 128, 83, 85, 82, 82, 79, 85, 78, 68, 128, 83, 89, 77, 66, 79, 76, + 45, 51, 128, 83, 89, 77, 66, 79, 76, 45, 54, 128, 83, 89, 77, 66, 79, 76, + 45, 57, 128, 83, 89, 77, 77, 69, 84, 82, 89, 128, 83, 89, 78, 68, 69, 83, + 77, 79, 211, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 69, 84, 82, 65, 80, + 76, 73, 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 82, 69, 65, 68, 73, + 78, 71, 128, 84, 82, 79, 77, 73, 75, 79, 78, 128, 84, 82, 85, 78, 67, 65, + 84, 69, 196, 85, 73, 76, 76, 69, 65, 78, 78, 128, 85, 77, 66, 82, 69, 76, + 76, 65, 128, 85, 78, 68, 69, 82, 68, 79, 84, 128, 85, 78, 77, 65, 82, 82, + 73, 69, 196, 86, 69, 82, 83, 73, 67, 76, 69, 128, 86, 79, 73, 67, 69, 76, + 69, 83, 211, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 83, 65, 76, 76, + 65, 77, 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 80, 79, 75, 82, 73, + 83, 73, 211, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 87, 65, 82, 65, 75, + 65, 89, 128, 80, 72, 65, 73, 83, 84, 79, 211, 73, 78, 86, 69, 82, 84, 69, + 196, 78, 69, 71, 65, 84, 73, 86, 197, 85, 71, 65, 82, 73, 84, 73, 195, + 66, 85, 71, 73, 78, 69, 83, 197, 68, 73, 65, 71, 79, 78, 65, 204, 72, 85, + 78, 68, 82, 69, 68, 128, 70, 82, 65, 67, 84, 73, 79, 206, 67, 82, 79, 83, + 83, 73, 78, 199, 67, 69, 68, 73, 76, 76, 65, 128, 84, 82, 73, 65, 78, 71, + 76, 197, 69, 88, 84, 69, 78, 68, 69, 196, 81, 85, 69, 83, 84, 73, 79, + 206, 83, 85, 80, 69, 82, 83, 69, 212, 78, 79, 84, 69, 72, 69, 65, 196, + 67, 79, 85, 78, 84, 73, 78, 199, 84, 65, 71, 66, 65, 78, 87, 193, 79, 86, + 69, 82, 76, 65, 89, 128, 81, 85, 65, 68, 82, 65, 78, 212, 84, 79, 82, 84, + 79, 73, 83, 197, 68, 73, 65, 77, 79, 78, 68, 128, 83, 81, 85, 65, 82, 69, + 68, 128, 85, 80, 83, 73, 76, 79, 78, 128, 73, 79, 84, 73, 70, 73, 69, + 196, 77, 65, 82, 84, 89, 82, 73, 193, 79, 86, 69, 82, 66, 65, 82, 128, + 69, 80, 83, 73, 76, 79, 78, 128, 72, 65, 78, 71, 90, 72, 79, 213, 73, 78, + 84, 69, 71, 82, 65, 204, 77, 69, 65, 83, 85, 82, 69, 196, 79, 77, 73, 67, + 82, 79, 78, 128, 86, 73, 83, 65, 82, 71, 65, 128, 79, 82, 78, 65, 77, 69, + 78, 212, 83, 79, 76, 73, 68, 85, 83, 128, 72, 65, 82, 80, 79, 79, 78, + 128, 80, 82, 69, 67, 69, 68, 69, 211, 83, 85, 67, 67, 69, 69, 68, 211, + 84, 72, 69, 83, 80, 73, 65, 206, 66, 65, 77, 66, 79, 79, 83, 128, 67, 73, + 82, 67, 76, 69, 83, 128, 67, 79, 78, 84, 65, 73, 78, 211, 68, 73, 71, 82, + 65, 80, 72, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 79, 78, 79, 71, 82, + 65, 205, 83, 73, 68, 69, 87, 65, 89, 211, 84, 72, 79, 85, 83, 65, 78, + 196, 79, 80, 69, 82, 65, 84, 79, 210, 79, 80, 80, 79, 83, 73, 78, 199, + 83, 73, 77, 65, 78, 83, 73, 211, 83, 84, 65, 84, 69, 82, 83, 128, 83, 85, + 66, 85, 78, 73, 84, 128, 76, 79, 90, 69, 78, 71, 69, 128, 84, 65, 76, 69, + 78, 84, 83, 128, 66, 65, 82, 76, 73, 78, 69, 128, 68, 73, 71, 65, 77, 77, + 65, 128, 68, 73, 86, 73, 83, 73, 79, 206, 80, 65, 82, 65, 76, 76, 69, + 204, 83, 72, 69, 83, 72, 73, 71, 128, 83, 73, 88, 84, 69, 69, 78, 128, + 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 82, 82, 79, 85, 78, 196, 85, 80, + 87, 65, 82, 68, 83, 128, 68, 73, 86, 73, 68, 69, 82, 128, 70, 73, 70, 84, + 69, 69, 78, 128, 79, 82, 73, 71, 73, 78, 65, 204, 82, 79, 84, 85, 78, 68, + 65, 128, 65, 83, 84, 69, 82, 73, 83, 203, 68, 73, 65, 83, 84, 79, 76, + 201, 68, 82, 65, 85, 71, 72, 84, 211, 69, 76, 76, 73, 80, 83, 69, 128, + 70, 65, 84, 72, 65, 84, 65, 206, 73, 90, 72, 73, 84, 83, 65, 128, 77, 73, + 76, 76, 73, 79, 78, 211, 77, 89, 83, 76, 73, 84, 69, 128, 80, 79, 73, 78, + 84, 69, 82, 128, 81, 85, 65, 82, 84, 69, 82, 128, 83, 81, 85, 73, 71, 71, + 76, 197, 83, 84, 82, 65, 73, 71, 72, 212, 65, 83, 83, 89, 82, 73, 65, + 206, 66, 65, 89, 65, 78, 78, 65, 128, 67, 72, 82, 79, 78, 79, 78, 128, + 68, 73, 71, 79, 82, 71, 79, 206, 69, 73, 71, 72, 84, 72, 83, 128, 70, 73, + 78, 71, 69, 82, 69, 196, 71, 65, 89, 65, 78, 78, 65, 128, 72, 65, 82, 75, + 76, 69, 65, 206, 72, 69, 88, 65, 71, 79, 78, 128, 74, 65, 89, 65, 78, 78, + 65, 128, 74, 69, 71, 79, 71, 65, 78, 128, 75, 79, 82, 79, 78, 73, 83, + 128, 76, 69, 65, 84, 72, 69, 82, 128, 77, 65, 75, 83, 85, 82, 65, 128, + 78, 79, 45, 66, 82, 69, 65, 203, 80, 73, 78, 87, 72, 69, 69, 204, 81, 85, + 65, 82, 84, 69, 82, 211, 82, 69, 80, 69, 65, 84, 69, 196, 83, 65, 89, 65, + 78, 78, 65, 128, 83, 69, 76, 69, 67, 84, 79, 210, 84, 69, 84, 65, 82, 84, + 79, 211, 84, 82, 79, 77, 73, 75, 79, 206, 65, 67, 84, 73, 86, 65, 84, + 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 75, 72, 77, 73, 77, 73, 195, + 65, 80, 79, 68, 69, 82, 77, 193, 65, 82, 73, 83, 84, 69, 82, 193, 66, 69, + 84, 87, 69, 69, 78, 128, 66, 73, 76, 65, 66, 73, 65, 204, 67, 65, 89, 65, + 78, 78, 65, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 72, 65, 82, 73, 79, + 84, 128, 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 82, 79, 78, 79, 85, + 128, 67, 76, 79, 84, 72, 69, 83, 128, 67, 79, 82, 78, 69, 82, 83, 128, + 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, + 80, 45, 77, 85, 79, 217, 68, 65, 80, 45, 80, 82, 65, 205, 68, 69, 89, 84, + 69, 82, 79, 211, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 83, 73, 77, 79, + 85, 128, 69, 77, 80, 72, 65, 83, 73, 211, 70, 69, 77, 73, 78, 73, 78, + 197, 70, 69, 82, 77, 65, 84, 65, 128, 70, 73, 83, 72, 72, 79, 79, 203, + 71, 76, 65, 71, 79, 76, 73, 128, 73, 78, 72, 69, 82, 69, 78, 212, 73, 78, + 84, 69, 82, 73, 79, 210, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 89, 65, + 78, 78, 65, 128, 75, 79, 77, 66, 85, 86, 65, 128, 76, 45, 83, 72, 65, 80, + 69, 196, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 89, 65, 78, 78, 65, + 128, 76, 74, 85, 68, 73, 74, 69, 128, 76, 79, 71, 79, 84, 89, 80, 197, + 77, 69, 65, 83, 85, 82, 69, 128, 77, 85, 76, 84, 73, 80, 76, 197, 77, 85, + 76, 84, 73, 83, 69, 212, 78, 65, 89, 65, 78, 78, 65, 128, 78, 85, 84, 73, + 76, 76, 85, 128, 79, 77, 73, 83, 83, 73, 79, 206, 80, 65, 89, 65, 78, 78, + 65, 128, 80, 65, 89, 69, 82, 79, 75, 128, 80, 69, 68, 69, 83, 84, 65, + 204, 80, 69, 84, 65, 76, 76, 69, 196, 80, 82, 65, 77, 45, 66, 69, 201, + 80, 82, 65, 77, 45, 80, 73, 201, 82, 71, 89, 73, 78, 71, 83, 128, 83, 45, + 83, 72, 65, 80, 69, 196, 83, 69, 77, 73, 83, 79, 70, 212, 83, 69, 77, 75, + 65, 84, 72, 128, 83, 69, 86, 69, 78, 84, 89, 128, 83, 72, 65, 80, 73, 78, + 71, 128, 83, 72, 84, 65, 80, 73, 67, 128, 83, 79, 67, 73, 69, 84, 89, + 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 69, 67, 73, 65, 76, 128, + 83, 81, 85, 73, 82, 82, 69, 204, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, + 82, 79, 75, 69, 83, 128, 84, 72, 69, 83, 69, 79, 83, 128, 84, 72, 85, 78, + 68, 69, 82, 128, 84, 82, 73, 83, 69, 77, 69, 128, 85, 66, 65, 68, 65, 77, + 65, 128, 87, 65, 73, 84, 73, 78, 71, 128, 90, 72, 73, 86, 69, 84, 69, + 128, 65, 65, 89, 65, 78, 78, 65, 128, 65, 66, 65, 70, 73, 76, 73, 128, + 65, 68, 86, 65, 78, 67, 69, 128, 65, 69, 89, 65, 78, 78, 65, 128, 65, 73, + 89, 65, 78, 78, 65, 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 86, 69, + 79, 76, 65, 210, 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 85, 76, 65, + 82, 128, 65, 78, 85, 83, 86, 65, 82, 193, 65, 80, 79, 84, 72, 69, 83, + 128, 65, 82, 65, 69, 65, 45, 73, 128, 65, 82, 65, 69, 65, 45, 85, 128, + 65, 82, 67, 72, 65, 73, 79, 206, 65, 82, 79, 85, 83, 73, 78, 199, 65, 85, + 89, 65, 78, 78, 65, 128, 66, 65, 65, 82, 69, 82, 85, 128, 66, 65, 73, 82, + 75, 65, 78, 128, 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 73, 69, + 82, 128, 66, 65, 84, 72, 84, 85, 66, 128, 66, 69, 67, 65, 85, 83, 69, + 128, 66, 69, 69, 72, 73, 86, 69, 128, 66, 69, 76, 71, 84, 72, 79, 210, + 66, 69, 82, 75, 65, 78, 65, 206, 66, 73, 68, 69, 78, 84, 65, 204, 66, 79, + 85, 78, 68, 65, 82, 217, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82, 73, 83, + 84, 76, 69, 128, 66, 85, 85, 77, 73, 83, 72, 128, 67, 65, 69, 83, 85, 82, + 65, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, 80, 84, 73, 86, 69, + 128, 67, 65, 82, 82, 73, 65, 71, 197, 67, 69, 76, 83, 73, 85, 83, 128, + 67, 72, 65, 77, 73, 76, 73, 128, 67, 76, 73, 78, 71, 73, 78, 199, 67, 79, + 77, 80, 65, 82, 69, 128, 67, 79, 78, 83, 84, 65, 78, 212, 67, 79, 78, 84, + 65, 67, 84, 128, 67, 79, 82, 79, 78, 73, 83, 128, 67, 79, 82, 82, 69, 67, + 84, 128, 67, 82, 69, 65, 84, 73, 86, 197, 67, 82, 69, 83, 67, 69, 78, + 212, 67, 82, 85, 90, 69, 73, 82, 207, 67, 85, 82, 82, 69, 78, 84, 128, + 67, 85, 83, 84, 79, 77, 69, 210, 67, 87, 69, 79, 82, 84, 72, 128, 67, 89, + 80, 69, 82, 85, 83, 128, 67, 89, 82, 69, 78, 65, 73, 195, 68, 65, 71, 65, + 76, 71, 65, 128, 68, 69, 67, 65, 89, 69, 68, 128, 68, 69, 78, 65, 82, 73, + 85, 211, 68, 69, 89, 84, 69, 82, 79, 213, 68, 72, 65, 76, 65, 84, 72, + 128, 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 84, 79, 78, 79, 206, + 68, 73, 71, 82, 65, 77, 77, 193, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, + 80, 76, 79, 85, 78, 128, 68, 73, 86, 73, 68, 69, 83, 128, 68, 79, 84, 83, + 45, 49, 50, 128, 68, 79, 84, 83, 45, 49, 51, 128, 68, 79, 84, 83, 45, 49, + 52, 128, 68, 79, 84, 83, 45, 49, 53, 128, 68, 79, 84, 83, 45, 49, 54, + 128, 68, 79, 84, 83, 45, 49, 55, 128, 68, 79, 84, 83, 45, 49, 56, 128, + 68, 79, 84, 83, 45, 50, 51, 128, 68, 79, 84, 83, 45, 50, 52, 128, 68, 79, + 84, 83, 45, 50, 53, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, + 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 51, + 52, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, 84, 83, 45, 51, 54, + 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, 56, 128, + 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, + 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, + 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, 84, 83, 45, 53, + 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, 68, 79, 84, 83, 45, 54, 56, + 128, 68, 79, 84, 83, 45, 55, 56, 128, 68, 82, 65, 67, 72, 77, 65, 128, + 68, 82, 65, 70, 84, 73, 78, 199, 69, 65, 66, 72, 65, 68, 72, 128, 69, 65, + 68, 72, 65, 68, 72, 128, 69, 66, 69, 70, 73, 76, 73, 128, 69, 73, 71, 72, + 84, 69, 69, 206, 69, 76, 65, 70, 82, 79, 78, 128, 69, 76, 69, 67, 84, 82, + 73, 195, 69, 77, 80, 72, 65, 84, 73, 195, 69, 78, 81, 85, 73, 82, 89, + 128, 69, 78, 84, 69, 82, 73, 78, 199, 69, 84, 78, 65, 72, 84, 65, 128, + 69, 86, 69, 78, 73, 78, 71, 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, + 89, 65, 78, 78, 65, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 73, 83, 72, + 69, 89, 69, 128, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79, 79, 84, 78, 79, + 84, 197, 70, 79, 85, 82, 84, 69, 69, 206, 70, 82, 79, 87, 78, 73, 78, + 199, 71, 65, 82, 77, 69, 78, 84, 128, 71, 69, 83, 72, 84, 73, 78, 128, + 71, 73, 82, 85, 68, 65, 65, 128, 71, 82, 65, 80, 72, 69, 77, 197, 72, 65, + 70, 85, 75, 72, 65, 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65, 76, 66, + 69, 82, 68, 128, 72, 65, 83, 65, 78, 84, 65, 128, 72, 65, 89, 65, 78, 78, + 65, 128, 72, 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, 86, 69, 78, 76, + 217, 73, 45, 65, 82, 65, 69, 65, 128, 73, 66, 73, 70, 73, 76, 73, 128, + 73, 67, 72, 65, 68, 73, 78, 128, 73, 73, 89, 65, 78, 78, 65, 128, 73, 76, + 73, 77, 77, 85, 51, 128, 73, 76, 73, 77, 77, 85, 52, 128, 73, 78, 68, 73, + 82, 69, 67, 212, 73, 78, 70, 73, 78, 73, 84, 217, 73, 78, 84, 69, 82, 69, + 83, 212, 73, 79, 68, 72, 65, 68, 72, 128, 74, 65, 78, 85, 65, 82, 89, + 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 85, 80, 73, 84, 69, 82, 128, + 75, 65, 75, 65, 66, 65, 84, 128, 75, 65, 82, 65, 84, 84, 79, 128, 75, 65, + 82, 79, 82, 73, 73, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 73, 78, 83, + 72, 73, 80, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 79, 77, 85, 85, + 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 76, 65, 78, 71, 85, 65, 71, + 197, 76, 79, 67, 65, 84, 73, 79, 206, 77, 65, 73, 75, 85, 82, 79, 128, + 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 78, 83, 89, 79, 78, 128, 77, 65, + 82, 66, 85, 84, 65, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 82, + 73, 65, 71, 197, 77, 65, 82, 82, 89, 73, 78, 199, 77, 65, 83, 83, 73, 78, + 71, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 89, 65, 78, 78, 65, + 128, 77, 69, 71, 65, 84, 79, 78, 128, 77, 69, 82, 67, 85, 82, 89, 128, + 77, 69, 84, 82, 69, 84, 69, 211, 77, 73, 75, 85, 82, 79, 78, 128, 77, 79, + 68, 69, 83, 84, 89, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77, 79, 82, 78, + 73, 78, 71, 128, 78, 65, 84, 73, 79, 78, 65, 204, 78, 69, 71, 65, 84, 73, + 79, 206, 78, 69, 80, 84, 85, 78, 69, 128, 78, 69, 87, 76, 73, 78, 69, + 128, 78, 71, 69, 65, 68, 65, 76, 128, 78, 73, 75, 65, 72, 73, 84, 128, + 78, 73, 78, 69, 84, 69, 69, 206, 78, 89, 73, 78, 45, 68, 79, 128, 79, 66, + 79, 70, 73, 76, 73, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 78, 69, 45, + 76, 73, 78, 197, 79, 78, 69, 83, 69, 76, 70, 128, 79, 79, 89, 65, 78, 78, + 65, 128, 79, 82, 84, 72, 79, 68, 79, 216, 79, 85, 84, 76, 73, 78, 69, + 128, 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 76, 76, 65, 87, 65, 128, + 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, + 78, 89, 73, 75, 85, 128, 80, 65, 78, 89, 85, 75, 85, 128, 80, 65, 80, 89, + 82, 85, 83, 128, 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 84, 84, 69, 82, + 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, 80, 69, 84, 65, 83, 77, 65, + 128, 80, 69, 84, 65, 83, 84, 73, 128, 80, 72, 73, 78, 84, 72, 85, 128, + 80, 72, 85, 84, 72, 65, 79, 128, 80, 79, 68, 65, 84, 85, 83, 128, 80, 82, + 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 86, + 73, 79, 85, 211, 80, 82, 73, 86, 65, 84, 69, 128, 80, 82, 79, 80, 69, 82, + 84, 217, 82, 65, 75, 72, 65, 78, 71, 128, 82, 65, 80, 73, 83, 77, 65, + 128, 82, 65, 89, 65, 78, 78, 65, 128, 82, 69, 65, 72, 77, 85, 75, 128, + 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 82, 69, 75, 65, 78, 128, 82, 69, + 84, 82, 69, 65, 84, 128, 82, 73, 84, 84, 79, 82, 85, 128, 82, 79, 83, 69, + 84, 84, 69, 128, 82, 85, 85, 66, 85, 82, 85, 128, 83, 65, 73, 75, 85, 82, + 85, 128, 83, 65, 76, 84, 73, 82, 69, 128, 83, 65, 77, 80, 72, 65, 79, + 128, 83, 65, 78, 89, 79, 79, 71, 193, 83, 67, 72, 79, 76, 65, 82, 128, + 83, 67, 82, 85, 80, 76, 69, 128, 83, 69, 71, 77, 69, 78, 84, 128, 83, 69, + 77, 85, 78, 67, 73, 193, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 78, 75, 73, 78, 71, 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73, 88, 45, 76, 73, - 78, 197, 83, 78, 79, 87, 77, 65, 78, 128, 83, 80, 73, 82, 65, 78, 84, - 128, 83, 80, 82, 73, 78, 71, 83, 128, 83, 81, 85, 65, 82, 69, 83, 128, - 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, 65, 86, 82, 79, 83, 128, 83, 84, - 65, 86, 82, 79, 85, 128, 83, 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 73, - 67, 84, 76, 217, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 67, 67, 69, 69, - 68, 128, 83, 89, 78, 69, 86, 77, 65, 128, 84, 65, 73, 83, 89, 79, 85, - 128, 84, 65, 84, 87, 69, 69, 76, 128, 84, 67, 72, 69, 72, 69, 72, 128, - 84, 69, 83, 83, 65, 82, 79, 206, 84, 69, 83, 83, 69, 82, 65, 128, 84, 72, - 73, 82, 84, 69, 69, 206, 84, 72, 85, 82, 73, 83, 65, 218, 84, 73, 78, 65, - 71, 77, 65, 128, 84, 73, 82, 79, 78, 73, 65, 206, 84, 79, 82, 67, 85, 76, - 85, 211, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 89, 66, 76, 73, 79, - 206, 84, 86, 73, 77, 65, 68, 85, 210, 84, 87, 79, 45, 76, 73, 78, 197, - 85, 45, 69, 79, 45, 69, 85, 128, 85, 66, 85, 70, 73, 76, 73, 128, 85, 77, - 66, 82, 69, 76, 76, 193, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 89, 65, - 78, 78, 65, 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 76, 76, 65, 71, - 69, 128, 86, 79, 73, 67, 73, 78, 71, 128, 87, 65, 83, 65, 76, 76, 65, - 205, 87, 65, 83, 84, 73, 78, 71, 128, 89, 65, 89, 65, 78, 78, 65, 128, - 89, 79, 85, 84, 72, 70, 85, 204, 89, 80, 79, 82, 82, 79, 73, 128, 79, 83, - 77, 65, 78, 89, 193, 67, 73, 82, 67, 76, 69, 128, 66, 82, 65, 67, 75, 69, - 212, 85, 80, 83, 73, 76, 79, 206, 65, 67, 67, 69, 78, 84, 128, 68, 73, - 78, 71, 66, 65, 212, 69, 80, 83, 73, 76, 79, 206, 83, 76, 65, 78, 84, 69, - 196, 83, 81, 85, 65, 82, 69, 128, 72, 65, 78, 85, 78, 79, 207, 68, 65, - 71, 69, 83, 72, 128, 71, 76, 79, 84, 84, 65, 204, 84, 65, 71, 65, 76, 79, - 199, 79, 77, 73, 67, 82, 79, 206, 80, 65, 76, 65, 84, 65, 204, 78, 65, - 83, 75, 65, 80, 201, 67, 79, 82, 78, 69, 82, 128, 69, 76, 69, 77, 69, 78, - 212, 66, 85, 76, 76, 69, 84, 128, 68, 79, 84, 76, 69, 83, 211, 79, 71, - 79, 78, 69, 75, 128, 86, 73, 82, 65, 77, 65, 128, 75, 73, 82, 71, 72, 73, - 218, 82, 69, 86, 69, 82, 83, 197, 68, 73, 65, 77, 79, 78, 196, 84, 87, - 69, 78, 84, 89, 128, 68, 79, 85, 66, 76, 69, 128, 78, 69, 73, 84, 72, 69, - 210, 81, 85, 65, 82, 84, 69, 210, 83, 73, 77, 73, 76, 65, 210, 83, 73, - 78, 71, 76, 69, 128, 83, 79, 76, 73, 68, 85, 211, 83, 81, 85, 65, 82, 69, - 196, 67, 72, 73, 78, 69, 83, 197, 78, 85, 78, 65, 86, 73, 203, 83, 85, - 66, 83, 69, 84, 128, 84, 72, 45, 67, 82, 69, 197, 84, 82, 73, 71, 82, 65, - 205, 65, 82, 75, 84, 73, 75, 207, 69, 76, 69, 86, 69, 78, 128, 72, 85, - 78, 68, 82, 69, 196, 72, 89, 80, 72, 69, 78, 128, 73, 78, 83, 73, 68, 69, - 128, 77, 65, 82, 75, 69, 82, 128, 79, 80, 69, 78, 73, 78, 199, 84, 87, - 69, 76, 86, 69, 128, 69, 73, 71, 72, 84, 72, 211, 80, 65, 82, 84, 73, 65, - 204, 84, 72, 73, 82, 84, 89, 128, 86, 82, 65, 67, 72, 89, 128, 65, 82, - 82, 79, 87, 83, 128, 70, 65, 76, 76, 73, 78, 199, 79, 66, 76, 73, 81, 85, - 197, 80, 69, 82, 67, 69, 78, 212, 84, 72, 82, 79, 85, 71, 200, 67, 69, + 78, 197, 83, 76, 65, 86, 79, 78, 73, 195, 83, 78, 79, 87, 77, 65, 78, + 128, 83, 80, 73, 82, 65, 78, 84, 128, 83, 80, 82, 73, 78, 71, 83, 128, + 83, 81, 85, 65, 82, 69, 83, 128, 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, + 65, 86, 82, 79, 83, 128, 83, 84, 65, 86, 82, 79, 85, 128, 83, 84, 82, 65, + 84, 73, 65, 206, 83, 84, 82, 73, 67, 84, 76, 217, 83, 85, 66, 74, 69, 67, + 84, 128, 83, 85, 67, 67, 69, 69, 68, 128, 83, 89, 78, 69, 86, 77, 65, + 128, 84, 65, 73, 76, 76, 69, 83, 211, 84, 65, 73, 83, 89, 79, 85, 128, + 84, 65, 84, 84, 79, 79, 69, 196, 84, 65, 84, 87, 69, 69, 76, 128, 84, 67, + 72, 69, 72, 69, 72, 128, 84, 69, 83, 83, 65, 82, 79, 206, 84, 69, 83, 83, + 69, 82, 65, 128, 84, 72, 73, 82, 84, 69, 69, 206, 84, 72, 85, 82, 73, 83, + 65, 218, 84, 73, 78, 65, 71, 77, 65, 128, 84, 73, 82, 79, 78, 73, 65, + 206, 84, 79, 82, 67, 85, 76, 85, 211, 84, 82, 73, 73, 83, 65, 80, 128, + 84, 82, 89, 66, 76, 73, 79, 206, 84, 84, 85, 68, 68, 65, 71, 128, 84, 86, + 73, 77, 65, 68, 85, 210, 84, 87, 79, 45, 76, 73, 78, 197, 85, 45, 69, 79, + 45, 69, 85, 128, 85, 66, 85, 70, 73, 76, 73, 128, 85, 77, 66, 82, 69, 76, + 76, 193, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 89, 65, 78, 78, 65, + 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 76, 76, 65, 71, 69, 128, + 86, 79, 73, 67, 73, 78, 71, 128, 87, 65, 83, 65, 76, 76, 65, 205, 87, 65, + 83, 84, 73, 78, 71, 128, 89, 65, 89, 65, 78, 78, 65, 128, 89, 79, 85, 84, + 72, 70, 85, 204, 89, 80, 79, 82, 82, 79, 73, 128, 72, 65, 82, 80, 79, 79, + 206, 80, 69, 82, 83, 73, 65, 206, 83, 72, 65, 86, 73, 65, 206, 85, 80, + 87, 65, 82, 68, 211, 77, 65, 72, 74, 79, 78, 199, 67, 73, 82, 67, 76, 69, + 128, 79, 83, 77, 65, 78, 89, 193, 66, 82, 65, 67, 75, 69, 212, 85, 80, + 83, 73, 76, 79, 206, 65, 67, 67, 69, 78, 84, 128, 68, 73, 78, 71, 66, 65, + 212, 83, 81, 85, 65, 82, 69, 128, 69, 80, 83, 73, 76, 79, 206, 83, 76, + 65, 78, 84, 69, 196, 86, 65, 82, 73, 65, 78, 212, 71, 76, 79, 84, 84, 65, + 204, 72, 65, 78, 85, 78, 79, 207, 68, 65, 71, 69, 83, 72, 128, 84, 65, + 71, 65, 76, 79, 199, 79, 77, 73, 67, 82, 79, 206, 80, 65, 76, 65, 84, 65, + 204, 82, 69, 86, 69, 82, 83, 197, 73, 78, 83, 85, 76, 65, 210, 78, 65, + 83, 75, 65, 80, 201, 67, 79, 82, 78, 69, 82, 128, 68, 73, 65, 77, 79, 78, + 196, 84, 72, 82, 79, 85, 71, 200, 86, 73, 82, 65, 77, 65, 128, 69, 76, + 69, 77, 69, 78, 212, 66, 85, 76, 76, 69, 84, 128, 68, 79, 84, 76, 69, 83, + 211, 79, 71, 79, 78, 69, 75, 128, 84, 69, 68, 85, 78, 71, 128, 75, 73, + 82, 71, 72, 73, 218, 83, 81, 85, 65, 82, 69, 196, 84, 87, 69, 78, 84, 89, + 128, 81, 85, 65, 82, 84, 69, 210, 83, 79, 76, 73, 68, 85, 211, 68, 79, + 85, 66, 76, 69, 128, 72, 85, 78, 68, 82, 69, 196, 73, 78, 83, 73, 68, 69, + 128, 78, 69, 73, 84, 72, 69, 210, 83, 73, 77, 73, 76, 65, 210, 83, 73, + 78, 71, 76, 69, 128, 83, 85, 66, 83, 69, 84, 128, 87, 69, 83, 84, 69, 82, + 206, 67, 72, 73, 78, 69, 83, 197, 78, 85, 78, 65, 86, 73, 203, 84, 72, + 45, 67, 82, 69, 197, 84, 82, 73, 71, 82, 65, 205, 65, 82, 75, 84, 73, 75, + 207, 69, 76, 69, 86, 69, 78, 128, 72, 89, 80, 72, 69, 78, 128, 77, 65, + 82, 75, 69, 82, 128, 79, 80, 69, 78, 73, 78, 199, 84, 87, 69, 76, 86, 69, + 128, 65, 82, 82, 79, 87, 83, 128, 68, 82, 65, 71, 79, 78, 128, 69, 73, + 71, 72, 84, 72, 211, 75, 65, 83, 75, 65, 76, 128, 79, 66, 76, 73, 81, 85, + 197, 80, 65, 82, 84, 73, 65, 204, 84, 72, 73, 82, 84, 89, 128, 86, 82, + 65, 67, 72, 89, 128, 65, 82, 67, 72, 65, 73, 195, 70, 65, 76, 76, 73, 78, + 199, 77, 69, 65, 83, 85, 82, 197, 80, 69, 82, 67, 69, 78, 212, 67, 69, 68, 73, 76, 76, 193, 67, 79, 78, 84, 82, 79, 204, 67, 85, 82, 86, 73, 78, 199, 68, 73, 71, 82, 65, 80, 200, 69, 81, 85, 65, 76, 83, 128, 70, 73, 76, 76, 69, 82, 128, 71, 65, 78, 71, 73, 65, 128, 73, 78, 86, 69, 82, 83, - 197, 73, 79, 84, 65, 84, 69, 196, 75, 69, 78, 84, 73, 77, 193, 77, 69, - 65, 83, 85, 82, 197, 82, 79, 85, 78, 68, 69, 196, 83, 65, 78, 89, 65, 75, - 193, 84, 67, 72, 69, 72, 69, 200, 84, 79, 80, 66, 65, 82, 128, 84, 85, - 82, 84, 76, 69, 128, 89, 73, 68, 68, 73, 83, 200, 45, 75, 72, 89, 73, 76, - 128, 66, 79, 84, 84, 79, 77, 128, 67, 69, 78, 84, 82, 69, 128, 67, 69, - 78, 84, 82, 69, 196, 67, 79, 78, 84, 65, 73, 206, 67, 79, 78, 84, 79, 85, - 210, 67, 82, 79, 83, 83, 69, 196, 68, 65, 78, 84, 65, 74, 193, 68, 73, - 86, 73, 68, 69, 196, 68, 79, 84, 84, 69, 68, 128, 68, 82, 65, 71, 79, 78, - 128, 70, 73, 70, 84, 72, 83, 128, 72, 69, 65, 86, 69, 78, 128, 75, 79, - 77, 66, 85, 86, 193, 75, 82, 65, 84, 73, 77, 193, 76, 69, 65, 68, 69, 82, - 128, 77, 65, 82, 66, 85, 84, 193, 77, 69, 77, 66, 69, 82, 128, 78, 65, - 84, 85, 82, 65, 204, 78, 73, 78, 69, 84, 89, 128, 80, 69, 78, 67, 73, 76, - 128, 81, 65, 77, 65, 84, 83, 128, 83, 75, 76, 73, 82, 79, 206, 83, 79, - 71, 68, 73, 65, 206, 83, 84, 73, 71, 77, 65, 128, 83, 89, 78, 65, 71, 77, - 193, 84, 65, 65, 76, 85, 74, 193, 84, 72, 69, 83, 69, 79, 211, 84, 79, - 78, 71, 85, 69, 128, 65, 67, 65, 68, 69, 77, 217, 65, 67, 67, 79, 85, 78, - 212, 65, 78, 67, 72, 79, 82, 128, 65, 78, 67, 79, 82, 65, 128, 65, 80, - 76, 79, 85, 78, 128, 65, 82, 67, 72, 65, 73, 195, 66, 65, 76, 85, 68, 65, - 128, 66, 65, 77, 66, 79, 79, 128, 66, 65, 83, 72, 75, 73, 210, 66, 73, - 78, 68, 73, 78, 199, 66, 73, 83, 72, 79, 80, 128, 66, 79, 87, 84, 73, 69, - 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 82, 73, 86, 73, 128, 67, 76, - 85, 83, 84, 69, 210, 68, 65, 71, 71, 69, 82, 128, 68, 65, 80, 45, 66, 69, - 201, 68, 65, 80, 45, 80, 73, 201, 68, 69, 67, 73, 77, 65, 204, 68, 73, - 86, 73, 68, 69, 128, 68, 74, 69, 82, 86, 73, 128, 68, 79, 85, 66, 76, 69, - 196, 68, 82, 65, 67, 72, 77, 193, 69, 65, 82, 84, 72, 76, 217, 69, 73, - 71, 72, 84, 89, 128, 69, 83, 67, 65, 80, 69, 128, 70, 69, 65, 84, 72, 69, - 210, 70, 76, 69, 88, 85, 83, 128, 71, 69, 82, 69, 83, 72, 128, 71, 72, - 85, 78, 78, 65, 128, 71, 82, 69, 65, 84, 69, 210, 72, 79, 76, 68, 73, 78, - 199, 73, 78, 72, 73, 66, 73, 212, 73, 83, 83, 72, 65, 82, 128, 73, 90, - 72, 73, 84, 83, 193, 75, 69, 69, 80, 73, 78, 199, 75, 72, 73, 69, 85, 75, - 200, 75, 76, 65, 83, 77, 65, 128, 75, 78, 73, 71, 72, 84, 128, 75, 79, - 82, 65, 78, 73, 195, 76, 69, 71, 69, 84, 79, 211, 77, 65, 76, 65, 75, 79, - 206, 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 75, 45, 50, 128, 77, 79, - 82, 84, 65, 82, 128, 78, 69, 71, 65, 84, 69, 196, 78, 79, 84, 67, 72, 69, - 196, 79, 82, 68, 73, 78, 65, 204, 80, 72, 73, 69, 85, 80, 200, 80, 72, - 82, 65, 83, 69, 128, 80, 73, 76, 67, 82, 79, 215, 80, 76, 65, 71, 73, 79, - 211, 80, 79, 75, 79, 74, 73, 128, 82, 69, 84, 85, 82, 78, 128, 82, 73, - 75, 82, 73, 75, 128, 83, 69, 82, 73, 70, 83, 128, 83, 72, 65, 80, 69, 83, - 128, 83, 73, 88, 84, 69, 69, 206, 83, 76, 79, 80, 73, 78, 199, 83, 77, - 65, 76, 76, 69, 210, 83, 77, 73, 76, 73, 78, 199, 83, 80, 69, 69, 67, 72, - 128, 83, 80, 73, 68, 69, 82, 217, 84, 65, 77, 73, 78, 71, 128, 84, 69, - 76, 69, 73, 65, 128, 84, 69, 76, 73, 83, 72, 193, 84, 69, 83, 83, 69, 82, - 193, 84, 72, 69, 84, 72, 69, 128, 84, 72, 73, 69, 85, 84, 200, 84, 72, - 82, 69, 65, 68, 128, 84, 72, 82, 69, 69, 45, 196, 84, 86, 82, 73, 68, 79, - 128, 85, 80, 84, 85, 82, 78, 128, 89, 69, 76, 76, 79, 87, 128, 89, 79, - 45, 89, 65, 69, 128, 89, 85, 45, 89, 69, 79, 128, 90, 69, 77, 76, 74, 65, - 128, 65, 66, 89, 83, 77, 65, 204, 65, 70, 71, 72, 65, 78, 201, 65, 70, - 82, 73, 67, 65, 206, 65, 72, 65, 71, 71, 65, 210, 65, 73, 72, 86, 85, 83, - 128, 65, 73, 86, 73, 76, 73, 203, 65, 76, 65, 89, 72, 69, 128, 65, 76, - 73, 71, 78, 69, 196, 65, 78, 78, 85, 73, 84, 217, 65, 80, 65, 65, 84, 79, - 128, 65, 82, 65, 69, 65, 69, 128, 65, 82, 77, 79, 85, 82, 128, 65, 82, - 82, 73, 86, 69, 128, 65, 82, 83, 69, 79, 83, 128, 65, 82, 85, 72, 85, 65, - 128, 65, 83, 67, 69, 78, 84, 128, 65, 85, 71, 85, 83, 84, 128, 65, 85, - 83, 84, 82, 65, 204, 65, 86, 69, 82, 65, 71, 197, 66, 65, 68, 71, 69, 82, + 197, 73, 79, 84, 65, 84, 69, 196, 75, 69, 78, 84, 73, 77, 193, 82, 79, + 85, 78, 68, 69, 196, 83, 65, 78, 89, 65, 75, 193, 84, 67, 72, 69, 72, 69, + 200, 84, 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, + 78, 69, 45, 53, 128, 84, 79, 80, 66, 65, 82, 128, 84, 85, 82, 84, 76, 69, + 128, 89, 73, 68, 68, 73, 83, 200, 45, 75, 72, 89, 73, 76, 128, 65, 83, + 72, 71, 65, 66, 128, 66, 65, 77, 66, 79, 79, 128, 66, 79, 84, 84, 79, 77, + 128, 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, 82, 69, 196, 67, 79, + 78, 84, 65, 73, 206, 67, 79, 78, 84, 79, 85, 210, 67, 79, 85, 78, 67, 73, + 204, 67, 82, 79, 83, 83, 69, 196, 68, 65, 78, 84, 65, 74, 193, 68, 73, + 86, 73, 68, 69, 196, 68, 79, 84, 84, 69, 68, 128, 69, 65, 83, 84, 69, 82, + 206, 70, 73, 70, 84, 72, 83, 128, 72, 69, 65, 86, 69, 78, 128, 75, 79, + 77, 66, 85, 86, 193, 75, 82, 65, 84, 73, 77, 193, 75, 85, 83, 72, 85, 50, + 128, 76, 69, 65, 68, 69, 82, 128, 77, 65, 82, 66, 85, 84, 193, 77, 69, + 77, 66, 69, 82, 128, 78, 65, 84, 85, 82, 65, 204, 78, 73, 78, 69, 84, 89, + 128, 80, 69, 78, 67, 73, 76, 128, 81, 65, 77, 65, 84, 83, 128, 83, 75, + 76, 73, 82, 79, 206, 83, 79, 71, 68, 73, 65, 206, 83, 84, 73, 71, 77, 65, + 128, 83, 89, 78, 65, 71, 77, 193, 84, 65, 65, 76, 85, 74, 193, 84, 72, + 69, 83, 69, 79, 211, 84, 79, 78, 71, 85, 69, 128, 65, 67, 65, 68, 69, 77, + 217, 65, 67, 67, 79, 85, 78, 212, 65, 78, 67, 72, 79, 82, 128, 65, 78, + 67, 79, 82, 65, 128, 65, 80, 76, 79, 85, 78, 128, 66, 65, 76, 85, 68, 65, + 128, 66, 65, 83, 72, 75, 73, 210, 66, 69, 78, 90, 69, 78, 197, 66, 73, + 78, 68, 73, 78, 199, 66, 73, 83, 72, 79, 80, 128, 66, 76, 69, 78, 68, 69, + 196, 66, 79, 87, 84, 73, 69, 128, 66, 82, 65, 78, 67, 72, 128, 67, 69, + 82, 45, 87, 65, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 82, 73, 86, 73, + 128, 67, 76, 85, 83, 84, 69, 210, 68, 65, 71, 71, 69, 82, 128, 68, 65, + 80, 45, 66, 69, 201, 68, 65, 80, 45, 80, 73, 201, 68, 69, 67, 73, 77, 65, + 204, 68, 73, 86, 73, 68, 69, 128, 68, 74, 69, 82, 86, 73, 128, 68, 79, + 85, 66, 76, 69, 196, 68, 82, 65, 67, 72, 77, 193, 69, 65, 82, 84, 72, 76, + 217, 69, 73, 71, 72, 84, 89, 128, 69, 83, 67, 65, 80, 69, 128, 70, 69, + 65, 84, 72, 69, 210, 70, 76, 69, 88, 85, 83, 128, 71, 69, 82, 69, 83, 72, + 128, 71, 72, 85, 78, 78, 65, 128, 71, 82, 69, 65, 84, 69, 210, 72, 69, + 76, 77, 69, 84, 128, 72, 79, 76, 68, 73, 78, 199, 73, 78, 72, 73, 66, 73, + 212, 73, 83, 83, 72, 65, 82, 128, 73, 90, 72, 73, 84, 83, 193, 75, 65, + 86, 89, 75, 65, 128, 75, 69, 69, 80, 73, 78, 199, 75, 72, 73, 69, 85, 75, + 200, 75, 73, 83, 73, 77, 53, 128, 75, 76, 65, 83, 77, 65, 128, 75, 78, + 73, 71, 72, 84, 128, 75, 79, 82, 65, 78, 73, 195, 76, 69, 71, 69, 84, 79, + 211, 77, 65, 76, 65, 75, 79, 206, 77, 65, 82, 75, 45, 49, 128, 77, 65, + 82, 75, 45, 50, 128, 77, 79, 82, 84, 65, 82, 128, 77, 85, 67, 65, 65, 68, + 128, 78, 69, 71, 65, 84, 69, 196, 78, 69, 85, 84, 82, 65, 204, 78, 79, + 84, 67, 72, 69, 196, 79, 82, 68, 73, 78, 65, 204, 80, 65, 76, 65, 85, 78, + 199, 80, 72, 73, 69, 85, 80, 200, 80, 72, 82, 65, 83, 69, 128, 80, 73, + 76, 67, 82, 79, 215, 80, 76, 65, 71, 73, 79, 211, 80, 76, 79, 80, 72, 85, + 128, 80, 79, 75, 79, 74, 73, 128, 82, 69, 84, 85, 82, 78, 128, 82, 73, + 75, 82, 73, 75, 128, 83, 69, 82, 73, 70, 83, 128, 83, 69, 88, 84, 85, 76, + 193, 83, 72, 65, 80, 69, 83, 128, 83, 73, 88, 84, 69, 69, 206, 83, 76, + 79, 80, 73, 78, 199, 83, 77, 65, 76, 76, 69, 210, 83, 77, 73, 76, 73, 78, + 199, 83, 80, 69, 69, 67, 72, 128, 83, 80, 73, 68, 69, 82, 217, 83, 85, + 82, 65, 78, 71, 128, 84, 65, 45, 82, 79, 76, 128, 84, 65, 77, 73, 78, 71, + 128, 84, 69, 76, 69, 73, 65, 128, 84, 69, 76, 73, 83, 72, 193, 84, 69, + 83, 83, 69, 82, 193, 84, 72, 69, 84, 72, 69, 128, 84, 72, 73, 69, 85, 84, + 200, 84, 72, 82, 69, 65, 68, 128, 84, 72, 82, 69, 69, 45, 196, 84, 79, + 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 54, 128, 84, 86, 82, 73, 68, 79, + 128, 85, 80, 84, 85, 82, 78, 128, 87, 79, 76, 79, 83, 79, 128, 89, 69, + 76, 76, 79, 87, 128, 89, 79, 45, 89, 65, 69, 128, 89, 85, 45, 89, 69, 79, + 128, 90, 69, 77, 76, 74, 65, 128, 90, 69, 77, 76, 89, 65, 128, 65, 66, + 89, 83, 77, 65, 204, 65, 70, 71, 72, 65, 78, 201, 65, 70, 82, 73, 67, 65, + 206, 65, 72, 65, 71, 71, 65, 210, 65, 73, 72, 86, 85, 83, 128, 65, 73, + 75, 65, 82, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 76, 65, 89, 72, 69, + 128, 65, 76, 73, 71, 78, 69, 196, 65, 78, 78, 85, 73, 84, 217, 65, 80, + 65, 65, 84, 79, 128, 65, 82, 65, 69, 65, 69, 128, 65, 82, 77, 79, 85, 82, + 128, 65, 82, 82, 73, 86, 69, 128, 65, 82, 83, 69, 79, 83, 128, 65, 82, + 85, 72, 85, 65, 128, 65, 83, 67, 69, 78, 84, 128, 65, 85, 71, 85, 83, 84, + 128, 65, 85, 83, 84, 82, 65, 204, 65, 85, 84, 85, 77, 78, 128, 65, 86, + 69, 82, 65, 71, 197, 66, 65, 68, 71, 69, 82, 128, 66, 65, 72, 65, 82, 50, 128, 66, 65, 73, 77, 65, 73, 128, 66, 65, 78, 84, 79, 67, 128, 66, 65, - 82, 76, 69, 89, 128, 66, 65, 82, 82, 69, 69, 128, 66, 69, 78, 90, 69, 78, - 197, 66, 69, 84, 87, 69, 69, 206, 66, 69, 89, 89, 65, 76, 128, 66, 73, - 84, 84, 69, 82, 128, 66, 79, 82, 85, 84, 79, 128, 66, 82, 65, 78, 67, 72, - 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 79, 78, 90, 69, 128, 66, 85, - 67, 75, 76, 69, 128, 67, 65, 78, 67, 69, 76, 128, 67, 65, 78, 67, 69, 82, - 128, 67, 65, 84, 65, 87, 65, 128, 67, 65, 85, 84, 73, 79, 206, 67, 72, - 65, 77, 75, 79, 128, 67, 72, 65, 78, 71, 69, 128, 67, 72, 65, 82, 73, 79, - 212, 67, 72, 69, 86, 82, 79, 206, 67, 72, 73, 82, 69, 84, 128, 67, 72, + 82, 76, 69, 89, 128, 66, 65, 82, 82, 69, 69, 128, 66, 69, 84, 87, 69, 69, + 206, 66, 69, 89, 89, 65, 76, 128, 66, 73, 84, 84, 69, 82, 128, 66, 79, + 82, 85, 84, 79, 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 79, 78, 90, 69, + 128, 66, 85, 67, 75, 76, 69, 128, 67, 65, 78, 67, 69, 76, 128, 67, 65, + 78, 67, 69, 82, 128, 67, 65, 78, 68, 82, 65, 128, 67, 65, 84, 65, 87, 65, + 128, 67, 65, 85, 84, 73, 79, 206, 67, 72, 65, 77, 75, 79, 128, 67, 72, + 65, 78, 71, 69, 128, 67, 72, 65, 82, 73, 79, 212, 67, 72, 69, 86, 82, 79, + 206, 67, 72, 73, 82, 69, 84, 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, 85, 82, 67, 72, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 45, 50, 128, 67, 76, 73, 86, 73, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 79, - 70, 70, 73, 78, 128, 67, 79, 78, 73, 67, 65, 204, 67, 79, 82, 80, 83, 69, - 128, 67, 85, 82, 82, 69, 78, 212, 68, 65, 65, 68, 72, 85, 128, 68, 65, - 76, 65, 84, 72, 128, 68, 65, 77, 65, 82, 85, 128, 68, 65, 83, 69, 73, 65, - 128, 68, 68, 65, 72, 65, 76, 128, 68, 69, 76, 69, 84, 69, 128, 68, 69, - 76, 80, 72, 73, 195, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 82, 77, 65, - 128, 68, 73, 69, 83, 73, 83, 128, 68, 73, 80, 80, 69, 82, 128, 68, 73, - 86, 79, 82, 67, 197, 68, 79, 84, 83, 45, 49, 128, 68, 79, 84, 83, 45, 50, - 128, 68, 79, 84, 83, 45, 51, 128, 68, 79, 84, 83, 45, 52, 128, 68, 79, - 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 55, - 128, 68, 79, 84, 83, 45, 56, 128, 68, 85, 84, 73, 69, 83, 128, 69, 73, - 71, 72, 84, 72, 128, 69, 78, 65, 82, 88, 73, 211, 69, 88, 67, 69, 83, 83, - 128, 69, 88, 73, 83, 84, 83, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, - 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65, 67, 69, 45, 52, - 128, 70, 65, 67, 69, 45, 53, 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, - 77, 73, 76, 89, 128, 70, 65, 84, 72, 69, 82, 128, 70, 69, 77, 65, 76, 69, - 128, 70, 69, 82, 77, 65, 84, 193, 70, 73, 70, 84, 69, 69, 206, 70, 76, - 65, 71, 45, 49, 128, 70, 76, 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 51, - 128, 70, 76, 65, 71, 45, 52, 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, - 73, 71, 72, 84, 128, 70, 76, 79, 87, 69, 82, 128, 70, 79, 82, 67, 69, 83, - 128, 70, 85, 78, 69, 82, 65, 204, 71, 69, 68, 79, 76, 65, 128, 71, 69, - 77, 73, 78, 73, 128, 71, 69, 78, 69, 82, 73, 195, 71, 72, 65, 73, 78, 85, - 128, 71, 72, 65, 77, 65, 76, 128, 71, 82, 79, 85, 78, 68, 128, 71, 85, - 65, 82, 65, 78, 201, 72, 65, 70, 85, 75, 72, 128, 72, 69, 73, 83, 69, 73, - 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, - 82, 77, 69, 83, 128, 72, 69, 82, 85, 84, 85, 128, 72, 82, 89, 86, 78, 73, - 193, 72, 85, 73, 73, 84, 79, 128, 73, 45, 66, 69, 65, 77, 128, 73, 77, - 73, 83, 69, 79, 211, 73, 78, 71, 87, 65, 90, 128, 73, 78, 73, 78, 71, 85, - 128, 73, 78, 83, 69, 67, 84, 128, 73, 78, 83, 85, 76, 65, 210, 74, 79, - 73, 78, 69, 68, 128, 75, 65, 78, 65, 75, 79, 128, 75, 65, 78, 84, 65, 74, - 193, 75, 69, 70, 85, 76, 65, 128, 75, 69, 89, 67, 65, 80, 128, 75, 72, - 79, 77, 85, 84, 128, 75, 76, 73, 84, 79, 78, 128, 75, 79, 82, 85, 78, 65, + 70, 70, 73, 78, 128, 67, 79, 76, 85, 77, 78, 128, 67, 79, 78, 73, 67, 65, + 204, 67, 79, 82, 80, 83, 69, 128, 67, 85, 82, 82, 69, 78, 212, 68, 65, + 65, 68, 72, 85, 128, 68, 65, 76, 65, 84, 72, 128, 68, 65, 77, 65, 82, 85, + 128, 68, 65, 83, 69, 73, 65, 128, 68, 68, 65, 72, 65, 76, 128, 68, 69, + 76, 69, 84, 69, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 78, 78, 69, 78, + 128, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 82, 77, 65, 128, 68, 73, + 69, 83, 73, 83, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73, 80, 80, 69, 82, + 128, 68, 73, 86, 79, 82, 67, 197, 68, 79, 76, 73, 85, 77, 128, 68, 79, + 84, 83, 45, 49, 128, 68, 79, 84, 83, 45, 50, 128, 68, 79, 84, 83, 45, 51, + 128, 68, 79, 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 53, 128, 68, 79, + 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 56, + 128, 68, 85, 84, 73, 69, 83, 128, 69, 73, 71, 72, 84, 72, 128, 69, 78, + 65, 82, 88, 73, 211, 69, 88, 67, 69, 83, 83, 128, 69, 88, 73, 83, 84, 83, + 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 67, 69, 45, 50, 128, 70, 65, + 67, 69, 45, 51, 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 53, + 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, 77, 73, 76, 89, 128, 70, 65, + 84, 72, 69, 82, 128, 70, 69, 77, 65, 76, 69, 128, 70, 69, 82, 77, 65, 84, + 193, 70, 73, 70, 84, 69, 69, 206, 70, 76, 65, 71, 45, 49, 128, 70, 76, + 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 52, + 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, + 79, 87, 69, 82, 128, 70, 79, 82, 67, 69, 83, 128, 70, 85, 78, 69, 82, 65, + 204, 71, 65, 83, 72, 65, 78, 128, 71, 69, 68, 79, 76, 65, 128, 71, 69, + 77, 73, 78, 73, 128, 71, 69, 78, 69, 82, 73, 195, 71, 69, 83, 72, 84, 73, + 206, 71, 72, 65, 73, 78, 85, 128, 71, 72, 65, 77, 65, 76, 128, 71, 82, + 65, 84, 69, 82, 128, 71, 82, 79, 85, 78, 68, 128, 71, 85, 65, 82, 65, 78, + 201, 71, 85, 82, 85, 83, 72, 128, 72, 65, 70, 85, 75, 72, 128, 72, 69, + 73, 83, 69, 73, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, 82, 77, 69, 83, + 128, 72, 69, 82, 85, 84, 85, 128, 72, 82, 89, 86, 78, 73, 193, 72, 85, + 73, 73, 84, 79, 128, 73, 45, 66, 69, 65, 77, 128, 73, 76, 73, 77, 77, 85, + 128, 73, 77, 73, 83, 69, 79, 211, 73, 78, 71, 87, 65, 90, 128, 73, 78, + 73, 78, 71, 85, 128, 73, 78, 83, 69, 67, 84, 128, 74, 79, 73, 78, 69, 68, + 128, 75, 65, 78, 65, 75, 79, 128, 75, 65, 78, 84, 65, 74, 193, 75, 69, + 70, 85, 76, 65, 128, 75, 69, 77, 80, 76, 73, 128, 75, 69, 77, 80, 85, 76, + 128, 75, 69, 89, 67, 65, 80, 128, 75, 72, 79, 77, 85, 84, 128, 75, 76, + 73, 84, 79, 78, 128, 75, 79, 82, 85, 78, 65, 128, 75, 87, 85, 51, 49, 56, 128, 75, 89, 65, 84, 72, 79, 211, 75, 89, 85, 82, 73, 73, 128, 76, 65, - 77, 65, 68, 72, 128, 76, 65, 84, 69, 82, 65, 204, 76, 69, 71, 73, 79, 78, - 128, 76, 69, 73, 77, 77, 65, 128, 76, 69, 84, 84, 69, 82, 128, 76, 73, - 77, 73, 84, 69, 196, 76, 73, 78, 69, 45, 49, 128, 76, 73, 78, 69, 45, 51, - 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 57, 128, 76, 73, - 78, 75, 73, 78, 199, 76, 79, 90, 69, 78, 71, 197, 77, 65, 73, 68, 69, 78, - 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 82, 75, 45, 51, 128, 77, 65, - 82, 75, 45, 52, 128, 77, 65, 82, 85, 75, 85, 128, 77, 65, 84, 82, 73, 88, - 128, 77, 65, 88, 73, 77, 65, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, - 71, 65, 76, 73, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 84, 82, 73, 65, - 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 76, 76, 69, 84, 128, 77, 73, - 78, 73, 77, 65, 128, 77, 79, 68, 69, 76, 83, 128, 77, 79, 84, 72, 69, 82, - 128, 77, 85, 81, 68, 65, 77, 128, 78, 65, 85, 84, 72, 83, 128, 78, 69, - 78, 65, 78, 79, 128, 78, 73, 82, 85, 71, 85, 128, 78, 79, 75, 72, 85, 75, - 128, 78, 79, 77, 73, 78, 65, 204, 78, 85, 77, 66, 69, 82, 128, 78, 85, - 78, 65, 86, 85, 212, 79, 66, 69, 76, 79, 83, 128, 79, 77, 65, 76, 79, 78, - 128, 79, 80, 69, 78, 45, 80, 128, 79, 80, 80, 79, 83, 69, 128, 79, 82, - 73, 71, 73, 78, 128, 79, 84, 72, 65, 76, 65, 206, 80, 65, 76, 85, 84, 65, + 72, 83, 72, 85, 128, 76, 65, 77, 65, 68, 72, 128, 76, 65, 84, 69, 82, 65, + 204, 76, 69, 71, 73, 79, 78, 128, 76, 69, 73, 77, 77, 65, 128, 76, 69, + 84, 84, 69, 82, 128, 76, 73, 76, 73, 84, 72, 128, 76, 73, 77, 73, 84, 69, + 196, 76, 73, 77, 77, 85, 50, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, + 78, 69, 45, 51, 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 57, + 128, 76, 73, 78, 75, 73, 78, 199, 76, 79, 90, 69, 78, 71, 197, 77, 65, + 73, 68, 69, 78, 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 82, 75, 45, 51, + 128, 77, 65, 82, 75, 45, 52, 128, 77, 65, 82, 85, 75, 85, 128, 77, 65, + 84, 82, 73, 88, 128, 77, 65, 88, 73, 77, 65, 128, 77, 69, 68, 73, 85, 77, + 128, 77, 69, 71, 65, 76, 73, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, + 84, 82, 73, 65, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 76, 76, 69, 84, + 128, 77, 73, 78, 73, 77, 65, 128, 77, 79, 68, 69, 76, 83, 128, 77, 79, + 84, 72, 69, 82, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 81, 68, 65, 77, + 128, 77, 85, 82, 71, 85, 50, 128, 78, 65, 85, 84, 72, 83, 128, 78, 69, + 78, 65, 78, 79, 128, 78, 69, 85, 84, 69, 82, 128, 78, 73, 78, 68, 65, 50, + 128, 78, 73, 82, 85, 71, 85, 128, 78, 79, 75, 72, 85, 75, 128, 78, 79, + 77, 73, 78, 65, 204, 78, 85, 77, 66, 69, 82, 128, 78, 85, 78, 65, 86, 85, + 212, 79, 66, 69, 76, 79, 83, 128, 79, 77, 65, 76, 79, 78, 128, 79, 80, + 69, 78, 45, 80, 128, 79, 80, 80, 79, 83, 69, 128, 79, 82, 67, 72, 73, 68, + 128, 79, 82, 73, 71, 73, 78, 128, 79, 84, 72, 65, 76, 65, 206, 80, 65, + 76, 76, 65, 83, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 83, 72, 84, 65, 128, 80, 69, 78, 73, 72, 73, 128, 80, 69, 82, 83, 79, 78, 128, 80, 73, 75, 85, 82, 85, 128, 80, 73, 80, 73, 78, 71, 128, 80, 73, 83, 67, 69, 83, 128, 80, 79, 73, 78, 84, 79, 128, 80, 82, 69, 67, 69, 68, 197, 80, 82, 69, 70, 65, 67, 197, 80, 82, 79, 68, 85, 67, 212, 80, 85, 82, 73, 84, 89, 128, 80, 85, 83, 72, 73, 78, 199, 81, 69, - 84, 65, 78, 65, 128, 81, 85, 66, 85, 84, 83, 128, 82, 69, 80, 69, 65, 84, - 128, 82, 73, 84, 85, 65, 76, 128, 82, 85, 78, 79, 85, 84, 128, 83, 65, - 65, 68, 72, 85, 128, 83, 65, 74, 68, 65, 72, 128, 83, 65, 77, 69, 75, 72, - 128, 83, 65, 78, 78, 89, 65, 128, 83, 65, 84, 85, 82, 78, 128, 83, 67, - 65, 76, 69, 83, 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 73, 80, 84, - 128, 83, 69, 65, 71, 85, 76, 204, 83, 69, 67, 79, 78, 68, 128, 83, 69, - 67, 82, 69, 84, 128, 83, 69, 67, 84, 79, 82, 128, 83, 69, 73, 83, 77, 65, - 128, 83, 69, 82, 86, 73, 67, 197, 83, 69, 86, 69, 78, 84, 217, 83, 72, - 65, 68, 68, 65, 128, 83, 72, 65, 75, 84, 73, 128, 83, 72, 69, 69, 78, 85, - 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 85, 70, 70, 76, 197, 83, 73, - 67, 75, 76, 69, 128, 83, 73, 88, 84, 72, 83, 128, 83, 76, 79, 87, 76, 89, - 128, 83, 80, 65, 84, 72, 73, 128, 83, 80, 73, 82, 73, 84, 128, 83, 80, - 82, 79, 85, 84, 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 82, 65, 73, 70, - 128, 83, 84, 82, 73, 68, 69, 128, 83, 84, 82, 79, 75, 69, 211, 83, 85, - 66, 73, 84, 79, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 82, 70, 65, 67, - 197, 83, 87, 79, 82, 68, 83, 128, 83, 89, 78, 65, 70, 73, 128, 83, 89, - 79, 85, 87, 65, 128, 84, 65, 84, 87, 69, 69, 204, 84, 65, 85, 82, 85, 83, + 84, 65, 78, 65, 128, 81, 85, 66, 85, 84, 83, 128, 82, 65, 77, 66, 65, 84, + 128, 82, 69, 80, 69, 65, 84, 128, 82, 73, 84, 85, 65, 76, 128, 82, 85, + 78, 79, 85, 84, 128, 83, 65, 65, 68, 72, 85, 128, 83, 65, 74, 68, 65, 72, + 128, 83, 65, 77, 69, 75, 72, 128, 83, 65, 78, 71, 65, 50, 128, 83, 65, + 78, 78, 89, 65, 128, 83, 65, 84, 85, 82, 78, 128, 83, 67, 65, 76, 69, 83, + 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 73, 80, 84, 128, 83, 69, + 65, 71, 85, 76, 204, 83, 69, 67, 79, 78, 68, 128, 83, 69, 67, 82, 69, 84, + 128, 83, 69, 67, 84, 79, 82, 128, 83, 69, 73, 83, 77, 65, 128, 83, 69, + 82, 86, 73, 67, 197, 83, 69, 86, 69, 78, 84, 217, 83, 69, 88, 84, 65, 78, + 211, 83, 72, 65, 68, 68, 65, 128, 83, 72, 65, 75, 84, 73, 128, 83, 72, + 69, 69, 78, 85, 128, 83, 72, 69, 83, 72, 50, 128, 83, 72, 69, 83, 72, 73, + 199, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 78, 73, 71, 128, 83, 72, + 79, 82, 84, 83, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85, 70, 70, 76, + 197, 83, 73, 67, 75, 76, 69, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, + 88, 84, 72, 83, 128, 83, 76, 79, 87, 76, 89, 128, 83, 80, 65, 67, 73, 78, + 199, 83, 80, 65, 84, 72, 73, 128, 83, 80, 73, 82, 65, 76, 128, 83, 80, + 73, 82, 73, 84, 128, 83, 80, 82, 73, 78, 71, 128, 83, 80, 82, 79, 85, 84, + 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 82, 65, 73, 70, 128, 83, 84, + 82, 73, 68, 69, 128, 83, 84, 82, 79, 75, 69, 211, 83, 85, 66, 73, 84, 79, + 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 77, 65, 83, 72, 128, 83, 85, + 77, 77, 69, 82, 128, 83, 85, 82, 70, 65, 67, 197, 83, 87, 79, 82, 68, 83, + 128, 83, 89, 78, 65, 70, 73, 128, 83, 89, 79, 85, 87, 65, 128, 84, 65, + 76, 73, 78, 71, 128, 84, 65, 84, 87, 69, 69, 204, 84, 65, 85, 82, 85, 83, 128, 84, 69, 78, 85, 84, 79, 128, 84, 72, 65, 65, 76, 85, 128, 84, 72, 65, 72, 65, 78, 128, 84, 72, 65, 78, 78, 65, 128, 84, 72, 73, 82, 68, 83, 128, 84, 72, 73, 85, 84, 72, 128, 84, 73, 80, 69, 72, 65, 128, 84, 79, - 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, 78, 69, 45, 52, - 128, 84, 79, 78, 69, 45, 53, 128, 84, 79, 78, 69, 45, 54, 128, 84, 82, - 73, 80, 76, 73, 128, 84, 82, 73, 80, 79, 68, 128, 84, 83, 72, 85, 71, 83, - 128, 84, 84, 69, 72, 69, 72, 128, 84, 85, 82, 66, 65, 78, 128, 85, 80, - 82, 73, 71, 72, 212, 85, 80, 87, 65, 82, 68, 128, 85, 82, 65, 78, 85, 83, - 128, 86, 65, 76, 76, 69, 89, 128, 86, 65, 82, 69, 73, 65, 201, 86, 65, - 82, 73, 65, 78, 212, 86, 65, 82, 73, 75, 65, 128, 86, 73, 67, 84, 79, 82, - 217, 86, 73, 82, 73, 65, 77, 128, 86, 73, 83, 65, 82, 71, 193, 86, 79, - 76, 84, 65, 71, 197, 87, 65, 82, 78, 73, 78, 199, 87, 69, 65, 80, 79, 78, - 128, 87, 72, 69, 69, 76, 69, 196, 87, 82, 73, 84, 73, 78, 199, 89, 70, - 69, 83, 73, 83, 128, 89, 79, 45, 89, 69, 79, 128, 89, 80, 83, 73, 76, 73, - 128, 83, 89, 76, 79, 84, 201, 67, 65, 82, 79, 78, 128, 66, 82, 69, 86, - 69, 128, 66, 76, 65, 67, 75, 128, 77, 73, 68, 68, 76, 197, 65, 67, 67, - 69, 78, 212, 84, 82, 73, 80, 76, 197, 68, 79, 84, 84, 69, 196, 83, 84, - 82, 79, 75, 197, 86, 69, 83, 83, 69, 204, 69, 81, 85, 65, 76, 211, 71, - 79, 84, 72, 73, 195, 72, 69, 65, 86, 89, 128, 83, 73, 78, 71, 76, 197, - 66, 76, 79, 67, 75, 128, 77, 65, 78, 67, 72, 213, 84, 79, 78, 79, 83, - 128, 66, 79, 84, 84, 79, 205, 70, 84, 72, 79, 82, 193, 77, 69, 68, 73, - 85, 205, 79, 77, 69, 71, 65, 128, 83, 73, 71, 77, 65, 128, 65, 76, 80, - 72, 65, 128, 67, 76, 79, 83, 69, 196, 68, 65, 83, 73, 65, 128, 83, 85, - 66, 83, 69, 212, 67, 79, 77, 77, 65, 128, 68, 69, 76, 84, 65, 128, 86, - 85, 76, 71, 65, 210, 67, 79, 82, 78, 69, 210, 69, 81, 85, 65, 76, 128, - 76, 65, 77, 68, 65, 128, 67, 82, 79, 83, 83, 128, 73, 67, 72, 79, 83, - 128, 83, 65, 89, 73, 83, 201, 84, 72, 69, 84, 65, 128, 87, 72, 73, 84, - 69, 128, 65, 76, 77, 79, 83, 212, 75, 65, 80, 80, 65, 128, 77, 65, 67, - 82, 79, 206, 78, 85, 66, 73, 65, 206, 89, 45, 67, 82, 69, 197, 66, 69, - 83, 73, 68, 197, 67, 69, 78, 84, 82, 197, 83, 72, 65, 68, 68, 193, 84, - 87, 69, 78, 84, 217, 69, 65, 82, 84, 72, 128, 70, 73, 70, 84, 89, 128, - 76, 69, 78, 71, 84, 200, 78, 79, 82, 77, 65, 204, 84, 72, 73, 82, 84, - 217, 68, 65, 83, 72, 69, 196, 68, 73, 71, 82, 65, 205, 80, 82, 73, 77, - 69, 128, 85, 78, 73, 79, 78, 128, 67, 65, 78, 68, 82, 193, 82, 69, 80, - 69, 65, 212, 84, 69, 77, 80, 85, 211, 84, 85, 65, 82, 69, 199, 76, 85, - 78, 65, 84, 197, 82, 73, 83, 73, 78, 199, 82, 84, 65, 71, 83, 128, 68, - 73, 69, 83, 73, 211, 68, 73, 80, 76, 73, 128, 73, 78, 68, 69, 88, 128, - 75, 79, 80, 80, 65, 128, 78, 65, 66, 76, 65, 128, 78, 85, 75, 84, 65, - 128, 79, 84, 84, 65, 86, 193, 82, 65, 73, 83, 69, 196, 83, 67, 72, 87, - 65, 128, 83, 72, 73, 77, 65, 128, 83, 84, 65, 70, 70, 128, 89, 70, 69, - 83, 73, 211, 66, 65, 76, 76, 79, 212, 66, 65, 82, 82, 69, 197, 67, 76, - 73, 67, 75, 128, 67, 85, 66, 69, 68, 128, 67, 85, 82, 86, 69, 196, 70, - 69, 77, 65, 76, 197, 70, 69, 78, 67, 69, 128, 75, 79, 82, 69, 65, 206, - 76, 69, 73, 77, 77, 193, 76, 73, 84, 84, 76, 197, 78, 69, 83, 84, 69, - 196, 85, 73, 71, 72, 85, 210, 87, 65, 84, 69, 82, 128, 87, 69, 73, 71, - 72, 212, 65, 76, 65, 89, 72, 197, 66, 65, 83, 83, 65, 128, 66, 82, 73, - 68, 71, 197, 67, 72, 82, 79, 77, 193, 68, 65, 78, 68, 65, 128, 68, 69, - 71, 82, 69, 197, 68, 69, 86, 73, 67, 197, 68, 79, 76, 76, 65, 210, 80, - 65, 73, 82, 69, 196, 80, 65, 84, 65, 72, 128, 80, 73, 69, 67, 69, 128, - 80, 79, 69, 84, 82, 217, 83, 65, 77, 80, 73, 128, 83, 75, 69, 87, 69, - 196, 84, 73, 77, 69, 83, 128, 84, 84, 69, 72, 69, 200, 87, 73, 71, 71, - 76, 217, 90, 73, 71, 90, 65, 199, 65, 82, 79, 85, 78, 196, 65, 82, 83, - 69, 79, 211, 66, 82, 79, 75, 69, 206, 67, 65, 82, 69, 84, 128, 67, 76, - 73, 70, 70, 128, 67, 76, 79, 84, 72, 128, 68, 65, 71, 69, 83, 200, 68, - 65, 77, 77, 65, 128, 70, 76, 79, 82, 65, 204, 70, 79, 82, 84, 89, 128, - 72, 69, 65, 82, 84, 128, 76, 65, 77, 69, 68, 128, 77, 65, 80, 73, 81, - 128, 78, 45, 67, 82, 69, 197, 80, 79, 83, 84, 65, 204, 80, 84, 72, 65, - 72, 193, 83, 67, 72, 69, 77, 193, 83, 69, 71, 79, 76, 128, 83, 72, 65, - 68, 69, 128, 83, 77, 65, 76, 76, 128, 83, 84, 82, 69, 83, 211, 84, 72, - 79, 82, 78, 128, 84, 73, 84, 76, 79, 128, 84, 79, 79, 84, 72, 128, 86, - 65, 82, 69, 73, 193, 87, 72, 69, 65, 84, 128, 90, 81, 65, 80, 72, 193, - 65, 76, 65, 80, 72, 128, 66, 69, 65, 77, 69, 196, 66, 69, 82, 66, 69, - 210, 66, 73, 78, 65, 82, 217, 66, 73, 78, 68, 73, 128, 66, 79, 87, 84, - 73, 197, 67, 72, 69, 67, 75, 128, 67, 85, 82, 86, 69, 128, 68, 65, 76, - 68, 65, 128, 68, 65, 76, 69, 84, 128, 68, 68, 65, 72, 65, 204, 68, 69, - 65, 84, 72, 128, 68, 79, 66, 82, 79, 128, 68, 90, 69, 76, 79, 128, 69, - 84, 69, 82, 79, 206, 70, 65, 67, 84, 79, 210, 70, 73, 71, 85, 82, 197, - 70, 76, 79, 79, 82, 128, 70, 79, 82, 75, 69, 196, 70, 82, 73, 84, 85, - 128, 71, 65, 80, 80, 69, 196, 71, 69, 78, 73, 75, 201, 71, 72, 65, 73, - 78, 128, 71, 72, 79, 83, 84, 128, 71, 72, 85, 78, 78, 193, 71, 78, 89, - 73, 83, 128, 71, 79, 82, 71, 73, 128, 72, 65, 77, 77, 69, 210, 72, 65, - 77, 90, 65, 128, 72, 73, 82, 73, 81, 128, 72, 79, 76, 65, 77, 128, 72, - 79, 82, 83, 69, 128, 72, 87, 65, 73, 82, 128, 73, 65, 85, 68, 65, 128, - 75, 65, 90, 65, 75, 200, 75, 73, 89, 69, 79, 203, 75, 76, 65, 83, 77, - 193, 76, 65, 66, 79, 82, 128, 76, 65, 82, 71, 69, 210, 76, 65, 85, 76, - 65, 128, 76, 69, 83, 83, 69, 210, 77, 69, 84, 65, 76, 128, 77, 79, 85, - 84, 72, 128, 78, 65, 83, 72, 73, 128, 78, 79, 84, 69, 83, 128, 79, 71, - 79, 78, 69, 203, 79, 76, 73, 71, 79, 206, 79, 82, 78, 65, 84, 197, 80, - 73, 65, 83, 77, 193, 80, 76, 65, 78, 67, 203, 80, 79, 73, 78, 84, 128, - 80, 79, 87, 69, 82, 128, 80, 82, 79, 84, 79, 211, 81, 65, 84, 65, 78, - 128, 81, 85, 69, 69, 78, 128, 81, 85, 73, 76, 76, 128, 82, 69, 65, 67, - 72, 128, 82, 71, 89, 65, 78, 128, 82, 73, 84, 83, 73, 128, 83, 67, 82, - 69, 69, 206, 83, 69, 71, 78, 79, 128, 83, 69, 82, 73, 70, 211, 83, 69, - 83, 65, 77, 197, 83, 72, 65, 78, 71, 128, 83, 72, 65, 82, 80, 128, 83, - 72, 67, 72, 65, 128, 83, 72, 69, 69, 80, 128, 83, 72, 69, 76, 70, 128, - 83, 72, 69, 76, 76, 128, 83, 72, 79, 82, 84, 211, 83, 72, 87, 65, 65, - 128, 83, 72, 87, 73, 73, 128, 83, 72, 87, 79, 79, 128, 83, 73, 71, 78, - 83, 128, 83, 73, 78, 68, 72, 201, 83, 73, 88, 84, 89, 128, 83, 76, 79, - 86, 79, 128, 83, 80, 69, 65, 82, 128, 83, 80, 73, 82, 73, 212, 83, 84, - 79, 67, 75, 128, 83, 84, 85, 68, 89, 128, 83, 85, 75, 85, 78, 128, 84, - 65, 78, 78, 69, 196, 84, 69, 76, 79, 85, 211, 84, 72, 87, 65, 65, 128, - 84, 73, 71, 69, 82, 128, 84, 73, 75, 69, 85, 212, 84, 82, 85, 78, 75, - 128, 84, 83, 65, 68, 73, 128, 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, - 83, 128, 84, 87, 69, 76, 86, 197, 87, 65, 84, 67, 72, 128, 87, 79, 77, - 65, 78, 128, 89, 69, 83, 84, 85, 128, 89, 79, 45, 89, 65, 128, 89, 85, - 45, 89, 69, 128, 90, 90, 73, 69, 84, 128, 45, 67, 72, 65, 76, 128, 45, - 75, 72, 89, 85, 196, 45, 80, 72, 82, 85, 128, 65, 68, 68, 65, 75, 128, - 65, 71, 65, 73, 78, 128, 65, 72, 83, 68, 65, 128, 65, 76, 73, 70, 85, - 128, 65, 77, 79, 85, 78, 212, 65, 78, 80, 69, 65, 128, 65, 80, 65, 82, - 84, 128, 65, 80, 82, 73, 76, 128, 65, 82, 69, 80, 65, 128, 65, 82, 73, - 69, 83, 128, 65, 82, 76, 65, 85, 199, 65, 82, 79, 85, 82, 193, 65, 82, - 82, 65, 89, 128, 65, 82, 84, 65, 66, 197, 66, 66, 73, 69, 80, 128, 66, - 66, 73, 69, 84, 128, 66, 66, 73, 69, 88, 128, 66, 66, 85, 79, 80, 128, - 66, 66, 85, 79, 88, 128, 66, 66, 85, 82, 88, 128, 66, 69, 69, 84, 65, - 128, 66, 69, 70, 79, 82, 197, 66, 69, 72, 69, 72, 128, 66, 69, 73, 84, - 72, 128, 66, 72, 69, 84, 72, 128, 66, 73, 82, 71, 65, 128, 66, 73, 84, - 73, 78, 199, 66, 76, 65, 78, 75, 128, 66, 76, 79, 79, 68, 128, 66, 82, - 65, 67, 69, 128, 66, 82, 65, 78, 67, 200, 66, 82, 69, 65, 84, 200, 66, - 82, 85, 83, 72, 128, 66, 83, 84, 65, 82, 128, 66, 85, 76, 76, 69, 212, - 67, 65, 77, 78, 85, 195, 67, 65, 78, 67, 69, 204, 67, 65, 85, 68, 65, - 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 69, 69, 128, 67, 69, 65, 76, - 67, 128, 67, 69, 73, 82, 84, 128, 67, 72, 65, 68, 65, 128, 67, 72, 65, - 73, 82, 128, 67, 72, 65, 78, 71, 128, 67, 72, 73, 76, 68, 128, 67, 72, - 73, 78, 71, 128, 67, 72, 79, 75, 69, 128, 67, 72, 85, 76, 65, 128, 67, - 72, 85, 79, 80, 128, 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, 88, 128, - 67, 72, 85, 82, 88, 128, 67, 72, 89, 82, 88, 128, 67, 76, 79, 85, 68, - 128, 67, 79, 69, 78, 71, 128, 67, 79, 76, 79, 82, 128, 67, 79, 77, 69, - 84, 128, 67, 79, 77, 73, 78, 199, 67, 79, 77, 77, 79, 206, 67, 79, 86, - 69, 82, 128, 67, 82, 69, 68, 73, 212, 67, 82, 79, 73, 88, 128, 68, 65, - 65, 83, 85, 128, 68, 65, 76, 65, 84, 200, 68, 65, 82, 71, 65, 128, 68, - 65, 86, 73, 68, 128, 68, 68, 68, 72, 65, 128, 68, 68, 73, 69, 80, 128, - 68, 68, 73, 69, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, 88, - 128, 68, 68, 85, 82, 88, 128, 68, 69, 76, 69, 84, 197, 68, 69, 82, 69, - 84, 128, 68, 73, 70, 65, 84, 128, 68, 73, 80, 84, 69, 128, 68, 73, 86, - 73, 68, 197, 68, 79, 77, 65, 73, 206, 68, 79, 85, 66, 84, 128, 68, 82, - 73, 86, 69, 128, 68, 82, 79, 80, 83, 128, 69, 69, 75, 65, 65, 128, 69, - 73, 71, 72, 84, 217, 69, 76, 69, 86, 69, 206, 69, 76, 73, 70, 73, 128, - 69, 78, 84, 69, 82, 128, 69, 79, 76, 72, 88, 128, 69, 81, 85, 73, 68, - 128, 69, 85, 45, 69, 85, 128, 69, 88, 73, 83, 84, 128, 70, 65, 65, 70, - 85, 128, 70, 65, 73, 72, 85, 128, 70, 65, 84, 72, 65, 128, 70, 69, 65, - 82, 78, 128, 70, 72, 84, 79, 82, 193, 70, 73, 69, 76, 68, 128, 70, 73, - 70, 84, 72, 128, 70, 73, 71, 72, 84, 128, 70, 73, 76, 76, 69, 196, 70, - 73, 78, 73, 84, 197, 70, 76, 79, 87, 69, 210, 70, 76, 85, 84, 69, 128, - 70, 79, 76, 76, 89, 128, 70, 79, 82, 67, 69, 128, 70, 79, 82, 84, 69, - 128, 70, 82, 65, 77, 69, 128, 70, 82, 69, 78, 67, 200, 70, 82, 79, 87, - 78, 128, 71, 65, 65, 70, 85, 128, 71, 65, 68, 79, 76, 128, 71, 65, 77, - 65, 76, 128, 71, 65, 77, 76, 65, 128, 71, 65, 78, 77, 65, 128, 71, 65, - 82, 79, 78, 128, 71, 69, 78, 84, 76, 197, 71, 69, 82, 69, 83, 200, 71, - 69, 82, 77, 65, 206, 71, 71, 73, 69, 80, 128, 71, 71, 73, 69, 88, 128, - 71, 71, 85, 79, 80, 128, 71, 71, 85, 79, 84, 128, 71, 71, 85, 79, 88, - 128, 71, 71, 85, 82, 88, 128, 71, 71, 87, 65, 65, 128, 71, 71, 87, 69, - 69, 128, 71, 73, 77, 69, 76, 128, 71, 73, 78, 73, 73, 128, 71, 76, 69, - 73, 67, 200, 71, 82, 65, 67, 69, 128, 71, 82, 65, 73, 78, 128, 71, 82, - 65, 83, 83, 128, 72, 45, 84, 89, 80, 197, 72, 65, 45, 72, 65, 128, 72, + 78, 69, 45, 49, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 79, 68, + 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 85, 71, 83, 128, 84, 84, + 69, 72, 69, 72, 128, 84, 85, 82, 66, 65, 78, 128, 85, 80, 82, 73, 71, 72, + 212, 85, 80, 87, 65, 82, 68, 128, 85, 82, 65, 78, 85, 83, 128, 85, 83, + 72, 85, 77, 88, 128, 86, 65, 76, 76, 69, 89, 128, 86, 65, 82, 69, 73, 65, + 201, 86, 65, 82, 73, 75, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86, 73, + 82, 73, 65, 77, 128, 86, 73, 83, 65, 82, 71, 193, 86, 79, 76, 84, 65, 71, + 197, 87, 65, 82, 78, 73, 78, 199, 87, 69, 65, 80, 79, 78, 128, 87, 72, + 69, 69, 76, 69, 196, 87, 73, 78, 84, 69, 82, 128, 87, 82, 73, 84, 73, 78, + 199, 89, 65, 75, 65, 83, 72, 128, 89, 70, 69, 83, 73, 83, 128, 89, 79, + 45, 89, 69, 79, 128, 89, 80, 83, 73, 76, 73, 128, 84, 72, 65, 65, 78, + 193, 67, 65, 82, 73, 65, 206, 86, 65, 82, 73, 65, 128, 83, 89, 76, 79, + 84, 201, 67, 65, 82, 79, 78, 128, 77, 73, 68, 68, 76, 197, 66, 76, 65, + 67, 75, 128, 82, 69, 74, 65, 78, 199, 65, 67, 67, 69, 78, 212, 84, 82, + 73, 80, 76, 197, 68, 79, 84, 84, 69, 196, 69, 81, 85, 65, 76, 211, 76, + 89, 67, 73, 65, 206, 86, 69, 83, 83, 69, 204, 76, 89, 68, 73, 65, 206, + 75, 73, 83, 73, 77, 181, 67, 76, 79, 83, 69, 196, 66, 79, 84, 84, 79, + 205, 77, 69, 68, 73, 85, 205, 83, 73, 78, 71, 76, 197, 72, 69, 65, 86, + 89, 128, 77, 65, 78, 67, 72, 213, 66, 76, 79, 67, 75, 128, 67, 79, 77, + 77, 65, 128, 79, 77, 69, 71, 65, 128, 84, 79, 78, 79, 83, 128, 65, 76, + 80, 72, 65, 128, 70, 84, 72, 79, 82, 193, 83, 73, 71, 77, 65, 128, 68, + 65, 83, 73, 65, 128, 68, 69, 76, 84, 65, 128, 83, 85, 66, 83, 69, 212, + 65, 76, 77, 79, 83, 212, 67, 79, 82, 78, 69, 210, 86, 85, 76, 71, 65, + 210, 69, 81, 85, 65, 76, 128, 76, 65, 77, 68, 65, 128, 77, 65, 67, 82, + 79, 206, 67, 82, 79, 83, 83, 128, 73, 67, 72, 79, 83, 128, 78, 73, 78, + 68, 65, 178, 83, 65, 89, 73, 83, 201, 84, 72, 69, 84, 65, 128, 87, 72, + 73, 84, 69, 128, 75, 65, 80, 80, 65, 128, 78, 85, 66, 73, 65, 206, 89, + 45, 67, 82, 69, 197, 66, 69, 83, 73, 68, 197, 67, 69, 78, 84, 82, 197, + 83, 72, 65, 68, 68, 193, 84, 87, 69, 78, 84, 217, 69, 65, 82, 84, 72, + 128, 70, 73, 70, 84, 89, 128, 76, 69, 78, 71, 84, 200, 76, 73, 84, 84, + 76, 197, 76, 85, 78, 65, 84, 197, 78, 79, 82, 77, 65, 204, 82, 65, 73, + 83, 69, 196, 84, 72, 73, 82, 84, 217, 67, 65, 78, 68, 82, 193, 68, 65, + 78, 68, 65, 128, 68, 65, 83, 72, 69, 196, 68, 73, 71, 82, 65, 205, 71, + 69, 83, 72, 50, 128, 80, 82, 73, 77, 69, 128, 82, 73, 83, 73, 78, 199, + 83, 72, 65, 82, 50, 128, 85, 78, 73, 79, 78, 128, 82, 69, 80, 69, 65, + 212, 84, 69, 77, 80, 85, 211, 84, 85, 65, 82, 69, 199, 66, 65, 82, 82, + 69, 197, 78, 85, 75, 84, 65, 128, 80, 79, 87, 69, 82, 211, 82, 84, 65, + 71, 83, 128, 83, 65, 83, 65, 75, 128, 67, 72, 73, 76, 76, 213, 68, 73, + 69, 83, 73, 211, 68, 73, 80, 76, 73, 128, 73, 78, 68, 69, 88, 128, 75, + 79, 80, 80, 65, 128, 78, 65, 66, 76, 65, 128, 79, 84, 84, 65, 86, 193, + 83, 65, 77, 80, 73, 128, 83, 67, 72, 87, 65, 128, 83, 72, 73, 77, 65, + 128, 83, 84, 65, 70, 70, 128, 89, 70, 69, 83, 73, 211, 66, 65, 76, 76, + 79, 212, 66, 82, 79, 75, 69, 206, 67, 76, 73, 67, 75, 128, 67, 85, 66, + 69, 68, 128, 67, 85, 82, 86, 69, 196, 70, 69, 77, 65, 76, 197, 70, 69, + 78, 67, 69, 128, 71, 69, 83, 72, 85, 128, 75, 65, 83, 75, 65, 204, 75, + 79, 82, 69, 65, 206, 76, 65, 71, 65, 66, 128, 76, 69, 73, 77, 77, 193, + 78, 69, 83, 84, 69, 196, 83, 72, 65, 82, 85, 128, 83, 84, 82, 69, 83, + 211, 84, 73, 77, 69, 83, 128, 85, 73, 71, 72, 85, 210, 87, 65, 84, 69, + 82, 128, 87, 69, 73, 71, 72, 212, 90, 73, 71, 90, 65, 199, 65, 76, 65, + 89, 72, 197, 66, 65, 76, 65, 71, 128, 66, 65, 83, 83, 65, 128, 66, 82, + 73, 68, 71, 197, 67, 72, 82, 79, 77, 193, 68, 65, 77, 77, 65, 128, 68, + 69, 71, 82, 69, 197, 68, 69, 86, 73, 67, 197, 68, 79, 76, 76, 65, 210, + 68, 90, 69, 76, 79, 128, 69, 82, 73, 78, 50, 128, 76, 85, 71, 65, 76, + 128, 80, 65, 73, 82, 69, 196, 80, 65, 84, 65, 72, 128, 80, 73, 69, 67, + 69, 128, 80, 79, 69, 84, 82, 217, 81, 85, 73, 76, 76, 128, 83, 75, 69, + 87, 69, 196, 84, 84, 69, 72, 69, 200, 87, 73, 71, 71, 76, 217, 65, 82, + 79, 85, 78, 196, 65, 82, 83, 69, 79, 211, 66, 85, 76, 85, 71, 128, 67, + 65, 82, 69, 84, 128, 67, 76, 73, 70, 70, 128, 67, 76, 79, 84, 72, 128, + 68, 65, 71, 69, 83, 200, 68, 74, 69, 82, 86, 128, 70, 76, 79, 82, 65, + 204, 70, 79, 82, 84, 89, 128, 72, 69, 65, 82, 84, 128, 76, 65, 77, 69, + 68, 128, 77, 65, 80, 73, 81, 128, 78, 45, 67, 82, 69, 197, 79, 71, 79, + 78, 69, 203, 80, 79, 73, 78, 84, 128, 80, 79, 83, 84, 65, 204, 80, 84, + 72, 65, 72, 193, 83, 67, 72, 69, 77, 193, 83, 69, 71, 79, 76, 128, 83, + 72, 65, 68, 69, 128, 83, 72, 67, 72, 65, 128, 83, 77, 65, 76, 76, 128, + 84, 65, 76, 73, 78, 199, 84, 72, 73, 82, 68, 211, 84, 72, 79, 82, 78, + 128, 84, 73, 84, 76, 79, 128, 84, 79, 79, 84, 72, 128, 84, 83, 72, 69, + 71, 128, 86, 65, 82, 69, 73, 193, 87, 72, 69, 65, 84, 128, 87, 79, 77, + 65, 78, 128, 90, 81, 65, 80, 72, 193, 65, 76, 65, 80, 72, 128, 66, 69, + 65, 77, 69, 196, 66, 69, 82, 66, 69, 210, 66, 73, 78, 65, 82, 217, 66, + 73, 78, 68, 73, 128, 66, 79, 87, 84, 73, 197, 67, 72, 69, 67, 75, 128, + 67, 72, 73, 76, 68, 128, 67, 85, 82, 86, 69, 128, 68, 65, 76, 68, 65, + 128, 68, 65, 76, 69, 84, 128, 68, 68, 65, 72, 65, 204, 68, 69, 65, 84, + 72, 128, 68, 79, 66, 82, 79, 128, 69, 83, 72, 69, 51, 128, 69, 84, 69, + 82, 79, 206, 70, 65, 67, 84, 79, 210, 70, 65, 84, 72, 65, 128, 70, 73, + 71, 85, 82, 197, 70, 76, 79, 79, 82, 128, 70, 76, 85, 84, 69, 128, 70, + 79, 82, 75, 69, 196, 70, 82, 73, 84, 85, 128, 71, 65, 80, 80, 69, 196, + 71, 69, 78, 73, 75, 201, 71, 72, 65, 73, 78, 128, 71, 72, 79, 83, 84, + 128, 71, 72, 85, 78, 78, 193, 71, 78, 89, 73, 83, 128, 71, 79, 82, 71, + 73, 128, 72, 65, 77, 77, 69, 210, 72, 65, 77, 90, 65, 128, 72, 73, 82, + 73, 81, 128, 72, 79, 76, 65, 77, 128, 72, 79, 82, 83, 69, 128, 72, 87, + 65, 73, 82, 128, 72, 89, 80, 72, 69, 206, 73, 65, 85, 68, 65, 128, 75, + 65, 83, 82, 65, 128, 75, 65, 90, 65, 75, 200, 75, 73, 89, 69, 79, 203, + 75, 76, 65, 83, 77, 193, 76, 65, 66, 79, 82, 128, 76, 65, 71, 65, 82, + 128, 76, 65, 82, 71, 69, 210, 76, 65, 85, 76, 65, 128, 76, 69, 78, 71, + 65, 128, 76, 69, 83, 83, 69, 210, 76, 79, 78, 71, 65, 128, 77, 65, 83, + 72, 50, 128, 77, 69, 84, 65, 76, 128, 77, 79, 85, 84, 72, 128, 78, 65, + 83, 72, 73, 128, 78, 79, 84, 67, 72, 128, 78, 79, 84, 69, 83, 128, 78, + 85, 78, 85, 90, 128, 79, 76, 73, 71, 79, 206, 79, 82, 78, 65, 84, 197, + 80, 73, 65, 83, 77, 193, 80, 73, 82, 73, 71, 128, 80, 76, 65, 78, 67, + 203, 80, 79, 87, 69, 82, 128, 80, 82, 79, 84, 79, 211, 81, 65, 84, 65, + 78, 128, 81, 85, 69, 69, 78, 128, 82, 69, 65, 67, 72, 128, 82, 71, 89, + 65, 78, 128, 82, 73, 84, 83, 73, 128, 82, 78, 89, 73, 78, 199, 83, 67, + 82, 69, 69, 206, 83, 69, 71, 78, 79, 128, 83, 69, 82, 73, 70, 211, 83, + 69, 83, 65, 77, 197, 83, 72, 65, 78, 71, 128, 83, 72, 65, 82, 80, 128, + 83, 72, 69, 69, 80, 128, 83, 72, 69, 76, 70, 128, 83, 72, 69, 76, 76, + 128, 83, 72, 69, 83, 72, 128, 83, 72, 79, 82, 84, 211, 83, 72, 87, 65, + 65, 128, 83, 72, 87, 73, 73, 128, 83, 72, 87, 79, 79, 128, 83, 73, 71, + 78, 83, 128, 83, 73, 76, 65, 51, 128, 83, 73, 78, 68, 72, 201, 83, 73, + 88, 84, 72, 128, 83, 73, 88, 84, 89, 128, 83, 76, 79, 86, 79, 128, 83, + 80, 69, 65, 82, 128, 83, 80, 73, 82, 73, 212, 83, 84, 79, 67, 75, 128, + 83, 84, 85, 68, 89, 128, 83, 85, 72, 85, 82, 128, 83, 85, 75, 85, 78, + 128, 84, 65, 78, 78, 69, 196, 84, 69, 76, 79, 85, 211, 84, 72, 87, 65, + 65, 128, 84, 73, 71, 69, 82, 128, 84, 73, 75, 69, 85, 212, 84, 82, 85, + 78, 75, 128, 84, 83, 65, 68, 73, 128, 84, 83, 72, 69, 83, 128, 84, 87, + 69, 76, 86, 197, 85, 82, 85, 68, 65, 128, 87, 65, 84, 67, 72, 128, 89, + 69, 83, 84, 85, 128, 89, 79, 45, 89, 65, 128, 89, 85, 45, 89, 69, 128, + 90, 90, 73, 69, 84, 128, 45, 67, 72, 65, 76, 128, 45, 75, 72, 89, 85, + 196, 45, 80, 72, 82, 85, 128, 65, 68, 68, 65, 75, 128, 65, 71, 65, 73, + 78, 128, 65, 72, 83, 68, 65, 128, 65, 75, 65, 82, 65, 128, 65, 76, 69, + 80, 72, 128, 65, 76, 73, 70, 85, 128, 65, 77, 79, 85, 78, 212, 65, 78, + 80, 69, 65, 128, 65, 78, 83, 72, 69, 128, 65, 80, 65, 82, 84, 128, 65, + 80, 82, 73, 76, 128, 65, 82, 69, 80, 65, 128, 65, 82, 73, 69, 83, 128, + 65, 82, 75, 65, 66, 128, 65, 82, 76, 65, 85, 199, 65, 82, 79, 85, 82, + 193, 65, 82, 82, 65, 89, 128, 65, 82, 84, 65, 66, 197, 65, 83, 65, 76, + 50, 128, 65, 83, 89, 85, 82, 193, 66, 65, 82, 65, 50, 128, 66, 66, 73, + 69, 80, 128, 66, 66, 73, 69, 84, 128, 66, 66, 73, 69, 88, 128, 66, 66, + 85, 79, 80, 128, 66, 66, 85, 79, 88, 128, 66, 66, 85, 82, 88, 128, 66, + 69, 69, 84, 65, 128, 66, 69, 70, 79, 82, 197, 66, 69, 72, 69, 72, 128, + 66, 69, 73, 84, 72, 128, 66, 69, 78, 68, 69, 128, 66, 72, 69, 84, 72, + 128, 66, 73, 82, 71, 65, 128, 66, 73, 83, 65, 72, 128, 66, 73, 84, 73, + 78, 199, 66, 76, 65, 78, 75, 128, 66, 76, 79, 79, 68, 128, 66, 82, 65, + 67, 69, 128, 66, 82, 65, 78, 67, 200, 66, 82, 69, 65, 84, 200, 66, 82, + 85, 83, 72, 128, 66, 83, 84, 65, 82, 128, 66, 85, 76, 76, 69, 212, 67, + 65, 76, 89, 65, 128, 67, 65, 77, 78, 85, 195, 67, 65, 78, 67, 69, 204, + 67, 65, 85, 68, 65, 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 69, 69, + 128, 67, 69, 65, 76, 67, 128, 67, 69, 67, 69, 75, 128, 67, 69, 73, 82, + 84, 128, 67, 69, 82, 69, 83, 128, 67, 72, 65, 68, 65, 128, 67, 72, 65, + 73, 82, 128, 67, 72, 65, 78, 71, 128, 67, 72, 73, 78, 71, 128, 67, 72, + 79, 75, 69, 128, 67, 72, 85, 76, 65, 128, 67, 72, 85, 79, 80, 128, 67, + 72, 85, 79, 84, 128, 67, 72, 85, 79, 88, 128, 67, 72, 85, 82, 88, 128, + 67, 72, 89, 82, 88, 128, 67, 76, 79, 85, 68, 128, 67, 79, 69, 78, 71, + 128, 67, 79, 76, 79, 82, 128, 67, 79, 77, 69, 84, 128, 67, 79, 77, 73, + 78, 199, 67, 79, 77, 77, 79, 206, 67, 79, 86, 69, 82, 128, 67, 82, 69, + 68, 73, 212, 67, 82, 79, 73, 88, 128, 68, 65, 65, 83, 85, 128, 68, 65, + 69, 78, 71, 128, 68, 65, 73, 78, 71, 128, 68, 65, 76, 65, 84, 200, 68, + 65, 82, 65, 51, 128, 68, 65, 82, 65, 52, 128, 68, 65, 82, 71, 65, 128, + 68, 65, 86, 73, 68, 128, 68, 68, 68, 72, 65, 128, 68, 68, 73, 69, 80, + 128, 68, 68, 73, 69, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, + 88, 128, 68, 68, 85, 82, 88, 128, 68, 69, 76, 69, 84, 197, 68, 69, 82, + 69, 84, 128, 68, 69, 85, 78, 71, 128, 68, 72, 72, 69, 69, 128, 68, 72, + 72, 79, 79, 128, 68, 73, 70, 65, 84, 128, 68, 73, 80, 84, 69, 128, 68, + 73, 86, 73, 68, 197, 68, 79, 77, 65, 73, 206, 68, 79, 79, 78, 71, 128, + 68, 79, 85, 66, 84, 128, 68, 82, 73, 86, 69, 128, 68, 82, 79, 80, 83, + 128, 68, 85, 71, 85, 68, 128, 69, 65, 71, 76, 69, 128, 69, 69, 75, 65, + 65, 128, 69, 73, 71, 72, 84, 217, 69, 75, 65, 82, 65, 128, 69, 76, 69, + 86, 69, 206, 69, 76, 73, 70, 73, 128, 69, 78, 68, 69, 80, 128, 69, 78, + 84, 69, 82, 128, 69, 79, 76, 72, 88, 128, 69, 81, 85, 73, 68, 128, 69, + 83, 45, 84, 69, 128, 69, 83, 72, 49, 54, 128, 69, 83, 72, 50, 49, 128, + 69, 85, 45, 69, 85, 128, 69, 88, 73, 83, 84, 128, 70, 65, 65, 70, 85, + 128, 70, 65, 73, 72, 85, 128, 70, 69, 65, 82, 78, 128, 70, 69, 69, 78, + 71, 128, 70, 72, 84, 79, 82, 193, 70, 73, 69, 76, 68, 128, 70, 73, 70, + 84, 72, 128, 70, 73, 71, 72, 84, 128, 70, 73, 76, 76, 69, 196, 70, 73, + 78, 73, 84, 197, 70, 76, 79, 87, 69, 210, 70, 79, 76, 76, 89, 128, 70, + 79, 82, 67, 69, 128, 70, 79, 82, 84, 69, 128, 70, 82, 65, 77, 69, 128, + 70, 82, 69, 78, 67, 200, 70, 82, 79, 87, 78, 128, 71, 65, 65, 70, 85, + 128, 71, 65, 68, 79, 76, 128, 71, 65, 77, 65, 76, 128, 71, 65, 77, 76, + 65, 128, 71, 65, 78, 77, 65, 128, 71, 65, 82, 79, 78, 128, 71, 69, 78, + 84, 76, 197, 71, 69, 82, 69, 83, 200, 71, 69, 82, 77, 65, 206, 71, 71, + 73, 69, 80, 128, 71, 71, 73, 69, 88, 128, 71, 71, 85, 79, 80, 128, 71, + 71, 85, 79, 84, 128, 71, 71, 85, 79, 88, 128, 71, 71, 85, 82, 88, 128, + 71, 71, 87, 65, 65, 128, 71, 71, 87, 69, 69, 128, 71, 73, 68, 73, 77, + 128, 71, 73, 77, 69, 76, 128, 71, 73, 78, 73, 73, 128, 71, 73, 83, 65, + 76, 128, 71, 76, 69, 73, 67, 200, 71, 82, 65, 67, 69, 128, 71, 82, 65, + 73, 78, 128, 71, 82, 65, 83, 83, 128, 71, 85, 82, 85, 78, 128, 72, 45, + 84, 89, 80, 197, 72, 65, 45, 72, 65, 128, 72, 65, 65, 82, 85, 128, 72, 65, 71, 76, 65, 218, 72, 65, 73, 84, 85, 128, 72, 65, 78, 68, 83, 128, - 72, 69, 65, 86, 69, 206, 72, 73, 68, 73, 78, 199, 72, 76, 73, 69, 80, - 128, 72, 76, 73, 69, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, 79, - 88, 128, 72, 76, 85, 82, 88, 128, 72, 76, 89, 82, 88, 128, 72, 77, 73, - 69, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, - 85, 79, 88, 128, 72, 77, 85, 82, 88, 128, 72, 77, 89, 82, 88, 128, 72, - 78, 73, 69, 80, 128, 72, 78, 73, 69, 84, 128, 72, 78, 73, 69, 88, 128, - 72, 78, 85, 79, 88, 128, 72, 79, 79, 82, 85, 128, 72, 79, 85, 83, 69, - 128, 72, 85, 77, 65, 78, 128, 72, 85, 82, 65, 78, 128, 72, 88, 73, 69, - 80, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, 69, 88, 128, 72, 88, 85, - 79, 80, 128, 72, 88, 85, 79, 84, 128, 72, 88, 85, 79, 88, 128, 72, 89, - 80, 72, 69, 206, 73, 67, 72, 79, 85, 128, 73, 71, 71, 87, 83, 128, 73, - 78, 78, 69, 82, 128, 73, 83, 65, 75, 73, 193, 74, 74, 73, 69, 80, 128, - 74, 74, 73, 69, 84, 128, 74, 74, 73, 69, 88, 128, 74, 74, 85, 79, 80, - 128, 74, 74, 85, 79, 88, 128, 74, 74, 85, 82, 88, 128, 74, 79, 89, 79, - 85, 211, 74, 85, 68, 71, 69, 128, 74, 85, 69, 85, 73, 128, 75, 65, 65, - 70, 85, 128, 75, 65, 73, 82, 73, 128, 75, 65, 83, 82, 65, 128, 75, 65, - 84, 65, 86, 193, 75, 65, 85, 78, 65, 128, 75, 69, 69, 83, 85, 128, 75, - 69, 72, 69, 72, 128, 75, 69, 76, 86, 73, 206, 75, 69, 78, 65, 84, 128, - 75, 72, 65, 78, 68, 193, 75, 72, 65, 80, 72, 128, 75, 72, 85, 65, 84, - 128, 75, 72, 87, 65, 73, 128, 75, 78, 73, 70, 69, 128, 75, 79, 79, 80, - 79, 128, 75, 85, 83, 77, 65, 128, 75, 88, 87, 65, 65, 128, 75, 88, 87, - 69, 69, 128, 76, 45, 84, 89, 80, 197, 76, 65, 65, 77, 85, 128, 76, 65, - 71, 85, 83, 128, 76, 65, 77, 66, 68, 193, 76, 65, 85, 75, 65, 218, 76, - 69, 77, 79, 73, 128, 76, 73, 66, 82, 65, 128, 76, 73, 77, 73, 84, 128, - 76, 73, 78, 69, 83, 128, 76, 73, 81, 85, 73, 196, 76, 79, 78, 71, 65, - 128, 76, 79, 84, 85, 83, 128, 76, 79, 85, 82, 69, 128, 77, 65, 68, 68, - 65, 128, 77, 65, 68, 68, 65, 200, 77, 65, 72, 72, 65, 128, 77, 65, 73, - 82, 85, 128, 77, 65, 78, 78, 65, 128, 77, 65, 78, 78, 65, 218, 77, 65, - 81, 65, 70, 128, 77, 65, 82, 67, 72, 128, 77, 65, 83, 79, 82, 193, 77, - 69, 69, 77, 85, 128, 77, 69, 73, 90, 73, 128, 77, 69, 76, 79, 78, 128, - 77, 69, 77, 66, 69, 210, 77, 69, 82, 75, 72, 193, 77, 69, 84, 69, 71, - 128, 77, 69, 90, 90, 79, 128, 77, 71, 73, 69, 88, 128, 77, 71, 85, 79, - 80, 128, 77, 71, 85, 79, 88, 128, 77, 71, 85, 82, 88, 128, 77, 73, 75, - 82, 73, 128, 77, 73, 75, 82, 79, 206, 77, 73, 82, 69, 68, 128, 77, 73, - 83, 82, 65, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 85, 76, 207, 77, - 79, 78, 84, 72, 128, 77, 79, 85, 78, 68, 128, 77, 85, 78, 65, 72, 128, - 77, 85, 83, 73, 67, 128, 78, 65, 82, 82, 79, 215, 78, 65, 85, 68, 73, - 218, 78, 65, 88, 73, 65, 206, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, - 88, 128, 78, 66, 85, 82, 88, 128, 78, 66, 89, 82, 88, 128, 78, 68, 73, - 69, 88, 128, 78, 68, 85, 82, 88, 128, 78, 71, 65, 65, 73, 128, 78, 71, - 73, 69, 80, 128, 78, 71, 73, 69, 88, 128, 78, 71, 79, 69, 72, 128, 78, - 71, 85, 79, 84, 128, 78, 71, 85, 79, 88, 128, 78, 73, 78, 69, 84, 217, + 72, 65, 84, 72, 73, 128, 72, 69, 65, 86, 69, 206, 72, 73, 68, 73, 78, + 199, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, 88, 128, 72, 76, 85, 79, + 80, 128, 72, 76, 85, 79, 88, 128, 72, 76, 85, 82, 88, 128, 72, 76, 89, + 82, 88, 128, 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, + 85, 79, 80, 128, 72, 77, 85, 79, 88, 128, 72, 77, 85, 82, 88, 128, 72, + 77, 89, 82, 88, 128, 72, 78, 73, 69, 80, 128, 72, 78, 73, 69, 84, 128, + 72, 78, 73, 69, 88, 128, 72, 78, 85, 79, 88, 128, 72, 79, 79, 82, 85, + 128, 72, 79, 85, 83, 69, 128, 72, 85, 77, 65, 78, 128, 72, 85, 82, 65, + 78, 128, 72, 88, 73, 69, 80, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, + 69, 88, 128, 72, 88, 85, 79, 80, 128, 72, 88, 85, 79, 84, 128, 72, 88, + 85, 79, 88, 128, 72, 90, 90, 90, 71, 128, 73, 67, 72, 79, 85, 128, 73, + 71, 71, 87, 83, 128, 73, 76, 73, 77, 77, 213, 73, 77, 73, 78, 51, 128, + 73, 78, 78, 69, 82, 128, 73, 83, 65, 75, 73, 193, 74, 74, 73, 69, 80, + 128, 74, 74, 73, 69, 84, 128, 74, 74, 73, 69, 88, 128, 74, 74, 85, 79, + 80, 128, 74, 74, 85, 79, 88, 128, 74, 74, 85, 82, 88, 128, 74, 79, 75, + 69, 82, 128, 74, 79, 89, 79, 85, 211, 74, 85, 68, 71, 69, 128, 74, 85, + 69, 85, 73, 128, 75, 65, 65, 70, 85, 128, 75, 65, 73, 82, 73, 128, 75, + 65, 80, 65, 76, 128, 75, 65, 84, 65, 86, 193, 75, 65, 85, 78, 65, 128, + 75, 69, 69, 78, 71, 128, 75, 69, 69, 83, 85, 128, 75, 69, 72, 69, 72, + 128, 75, 69, 76, 86, 73, 206, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, + 85, 204, 75, 69, 78, 65, 84, 128, 75, 69, 83, 72, 50, 128, 75, 72, 65, + 78, 68, 193, 75, 72, 65, 80, 72, 128, 75, 72, 85, 65, 84, 128, 75, 72, + 87, 65, 73, 128, 75, 73, 83, 65, 76, 128, 75, 78, 73, 70, 69, 128, 75, + 79, 79, 80, 79, 128, 75, 85, 83, 77, 65, 128, 75, 88, 87, 65, 65, 128, + 75, 88, 87, 69, 69, 128, 76, 45, 84, 89, 80, 197, 76, 65, 65, 77, 85, + 128, 76, 65, 71, 85, 83, 128, 76, 65, 77, 66, 68, 193, 76, 65, 84, 73, + 75, 128, 76, 65, 85, 75, 65, 218, 76, 69, 77, 79, 73, 128, 76, 73, 66, + 82, 65, 128, 76, 73, 77, 73, 84, 128, 76, 73, 78, 69, 83, 128, 76, 73, + 81, 85, 73, 196, 76, 79, 84, 85, 83, 128, 76, 79, 85, 82, 69, 128, 77, + 65, 68, 68, 65, 128, 77, 65, 68, 68, 65, 200, 77, 65, 72, 72, 65, 128, + 77, 65, 73, 82, 85, 128, 77, 65, 78, 78, 65, 128, 77, 65, 78, 78, 65, + 218, 77, 65, 81, 65, 70, 128, 77, 65, 82, 67, 72, 128, 77, 65, 83, 79, + 82, 193, 77, 69, 69, 77, 85, 128, 77, 69, 73, 90, 73, 128, 77, 69, 76, + 79, 78, 128, 77, 69, 77, 66, 69, 210, 77, 69, 82, 75, 72, 193, 77, 69, + 84, 69, 71, 128, 77, 69, 90, 90, 79, 128, 77, 71, 66, 69, 69, 128, 77, + 71, 66, 79, 79, 128, 77, 71, 73, 69, 88, 128, 77, 71, 85, 79, 80, 128, + 77, 71, 85, 79, 88, 128, 77, 71, 85, 82, 88, 128, 77, 73, 75, 82, 73, + 128, 77, 73, 75, 82, 79, 206, 77, 73, 82, 69, 68, 128, 77, 73, 83, 82, + 65, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 85, 76, 207, 77, 79, 78, + 84, 72, 128, 77, 79, 85, 78, 68, 128, 77, 85, 78, 65, 72, 128, 77, 85, + 83, 72, 51, 128, 77, 85, 83, 73, 67, 128, 78, 65, 71, 65, 82, 128, 78, + 65, 82, 82, 79, 215, 78, 65, 85, 68, 73, 218, 78, 65, 88, 73, 65, 206, + 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 88, 128, 78, 66, 85, 82, 88, + 128, 78, 66, 89, 82, 88, 128, 78, 68, 73, 69, 88, 128, 78, 68, 85, 82, + 88, 128, 78, 71, 65, 65, 73, 128, 78, 71, 71, 69, 69, 128, 78, 71, 71, + 69, 78, 128, 78, 71, 71, 79, 79, 128, 78, 71, 73, 69, 80, 128, 78, 71, + 73, 69, 88, 128, 78, 71, 79, 69, 72, 128, 78, 71, 85, 79, 84, 128, 78, + 71, 85, 79, 88, 128, 78, 73, 78, 69, 84, 217, 78, 73, 83, 65, 71, 128, 78, 74, 73, 69, 80, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73, 69, 88, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 82, 88, 128, 78, 74, 89, 82, 88, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, 73, 73, 128, 78, 78, 71, - 79, 79, 128, 78, 79, 79, 78, 85, 128, 78, 79, 84, 67, 72, 128, 78, 79, - 84, 84, 79, 128, 78, 82, 85, 82, 88, 128, 78, 82, 89, 82, 88, 128, 78, - 85, 77, 69, 82, 207, 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 84, 128, - 78, 89, 73, 69, 88, 128, 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 88, - 128, 78, 90, 73, 69, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 85, 79, - 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, 89, 82, 88, 128, 79, 66, 74, - 69, 67, 212, 79, 74, 69, 79, 78, 128, 79, 76, 73, 86, 69, 128, 79, 78, + 79, 79, 128, 78, 79, 79, 78, 85, 128, 78, 79, 84, 84, 79, 128, 78, 82, + 85, 82, 88, 128, 78, 82, 89, 82, 88, 128, 78, 85, 77, 69, 82, 207, 78, + 89, 73, 69, 80, 128, 78, 89, 73, 69, 84, 128, 78, 89, 73, 69, 88, 128, + 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 88, 128, 78, 90, 73, 69, 80, + 128, 78, 90, 73, 69, 88, 128, 78, 90, 85, 79, 88, 128, 78, 90, 85, 82, + 88, 128, 78, 90, 89, 82, 88, 128, 79, 66, 74, 69, 67, 212, 79, 74, 69, + 79, 78, 128, 79, 75, 65, 82, 65, 128, 79, 76, 73, 86, 69, 128, 79, 78, 75, 65, 82, 128, 79, 80, 84, 73, 79, 206, 79, 84, 72, 65, 76, 128, 79, 85, 78, 75, 73, 193, 79, 88, 69, 73, 65, 201, 80, 65, 65, 84, 85, 128, - 80, 65, 83, 69, 81, 128, 80, 65, 83, 85, 81, 128, 80, 65, 84, 65, 75, - 128, 80, 65, 90, 69, 82, 128, 80, 69, 65, 67, 69, 128, 80, 69, 69, 90, - 73, 128, 80, 69, 72, 69, 72, 128, 80, 69, 73, 84, 72, 128, 80, 69, 78, - 83, 85, 128, 80, 69, 79, 82, 84, 200, 80, 69, 82, 84, 72, 207, 80, 69, - 83, 69, 84, 193, 80, 72, 78, 65, 69, 203, 80, 72, 85, 78, 71, 128, 80, - 73, 65, 78, 79, 128, 80, 76, 85, 84, 79, 128, 80, 79, 69, 84, 73, 195, - 80, 79, 78, 68, 79, 128, 80, 82, 73, 78, 84, 128, 80, 82, 79, 79, 70, - 128, 80, 82, 79, 86, 69, 128, 81, 65, 65, 70, 85, 128, 81, 65, 68, 77, - 65, 128, 81, 65, 77, 65, 84, 211, 81, 65, 82, 78, 69, 217, 81, 72, 87, - 65, 65, 128, 81, 72, 87, 69, 69, 128, 82, 45, 67, 82, 69, 197, 82, 65, - 73, 68, 65, 128, 82, 65, 83, 72, 65, 128, 82, 65, 83, 79, 85, 204, 82, - 65, 84, 73, 79, 128, 82, 69, 67, 79, 82, 196, 82, 69, 84, 85, 82, 206, - 82, 69, 86, 73, 65, 128, 82, 69, 86, 77, 65, 128, 82, 72, 79, 84, 73, - 195, 82, 73, 86, 69, 82, 128, 82, 78, 79, 79, 78, 128, 82, 79, 66, 65, - 84, 128, 82, 82, 85, 79, 88, 128, 82, 82, 85, 82, 88, 128, 82, 82, 89, - 82, 88, 128, 82, 85, 80, 73, 73, 128, 82, 87, 65, 72, 65, 128, 83, 65, - 68, 72, 69, 128, 83, 65, 70, 72, 65, 128, 83, 65, 77, 69, 75, 200, 83, - 65, 77, 75, 65, 128, 83, 65, 77, 89, 79, 203, 83, 65, 78, 65, 72, 128, - 83, 65, 85, 73, 76, 128, 83, 69, 69, 78, 85, 128, 83, 69, 73, 83, 77, - 193, 83, 69, 78, 84, 73, 128, 83, 72, 69, 69, 78, 128, 83, 72, 69, 81, - 69, 204, 83, 72, 69, 86, 65, 128, 83, 72, 73, 73, 78, 128, 83, 72, 79, - 79, 84, 128, 83, 72, 79, 82, 84, 128, 83, 72, 85, 79, 80, 128, 83, 72, - 85, 79, 88, 128, 83, 72, 85, 82, 88, 128, 83, 72, 89, 82, 88, 128, 83, - 73, 88, 84, 72, 128, 83, 76, 65, 86, 69, 128, 83, 76, 73, 67, 69, 128, - 83, 76, 79, 80, 69, 128, 83, 77, 69, 65, 82, 128, 83, 77, 73, 76, 69, - 128, 83, 78, 65, 75, 69, 128, 83, 78, 79, 85, 84, 128, 83, 79, 85, 78, - 68, 128, 83, 79, 87, 73, 76, 207, 83, 80, 73, 67, 69, 128, 83, 80, 79, - 79, 78, 128, 83, 80, 85, 78, 71, 211, 83, 81, 85, 73, 83, 200, 83, 83, - 73, 69, 80, 128, 83, 83, 73, 69, 88, 128, 83, 83, 89, 82, 88, 128, 83, - 84, 65, 78, 68, 128, 83, 84, 65, 82, 75, 128, 83, 84, 69, 65, 77, 128, - 83, 84, 79, 78, 69, 128, 83, 84, 79, 86, 69, 128, 83, 87, 69, 69, 84, - 128, 83, 87, 79, 82, 68, 128, 83, 89, 82, 77, 65, 128, 84, 65, 76, 69, - 78, 212, 84, 65, 80, 69, 82, 128, 84, 67, 72, 69, 72, 128, 84, 69, 73, - 87, 83, 128, 84, 69, 86, 73, 82, 128, 84, 72, 73, 71, 72, 128, 84, 72, - 73, 82, 68, 128, 84, 72, 73, 82, 68, 211, 84, 72, 73, 84, 65, 128, 84, - 72, 79, 78, 71, 128, 84, 72, 85, 78, 71, 128, 84, 73, 78, 78, 69, 128, - 84, 73, 80, 80, 73, 128, 84, 76, 72, 69, 69, 128, 84, 82, 65, 67, 75, - 128, 84, 82, 73, 84, 79, 211, 84, 82, 85, 84, 72, 128, 84, 83, 69, 82, - 69, 128, 84, 84, 83, 69, 69, 128, 84, 84, 84, 72, 65, 128, 84, 85, 71, - 82, 73, 203, 84, 85, 82, 79, 50, 128, 84, 89, 80, 69, 45, 177, 84, 89, - 80, 69, 45, 178, 84, 89, 80, 69, 45, 179, 84, 89, 80, 69, 45, 180, 84, - 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 182, 84, 89, 80, 69, 45, 183, - 85, 78, 73, 84, 89, 128, 85, 80, 87, 65, 82, 196, 86, 65, 65, 86, 85, - 128, 86, 65, 83, 73, 83, 128, 86, 65, 84, 72, 89, 128, 86, 69, 67, 84, - 79, 210, 86, 69, 82, 71, 69, 128, 86, 73, 82, 71, 65, 128, 86, 73, 82, - 71, 79, 128, 86, 79, 76, 85, 77, 197, 87, 65, 65, 86, 85, 128, 87, 65, - 83, 76, 65, 128, 87, 72, 69, 69, 76, 128, 87, 73, 78, 74, 65, 128, 87, - 82, 69, 65, 84, 200, 87, 82, 79, 78, 71, 128, 88, 69, 83, 84, 69, 211, - 89, 65, 45, 89, 79, 128, 89, 65, 65, 68, 79, 128, 89, 65, 65, 82, 85, - 128, 89, 65, 68, 68, 72, 128, 89, 65, 71, 72, 72, 128, 89, 65, 75, 72, - 72, 128, 89, 69, 79, 45, 79, 128, 89, 69, 79, 45, 85, 128, 89, 69, 84, - 73, 86, 128, 89, 73, 90, 69, 84, 128, 89, 85, 45, 69, 79, 128, 90, 65, - 82, 81, 65, 128, 90, 65, 89, 73, 78, 128, 90, 72, 65, 73, 78, 128, 90, - 72, 85, 79, 80, 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, 82, 88, 128, - 90, 72, 89, 82, 88, 128, 90, 73, 76, 68, 69, 128, 90, 73, 78, 79, 82, - 128, 90, 89, 71, 79, 83, 128, 90, 90, 73, 69, 80, 128, 90, 90, 73, 69, - 88, 128, 90, 90, 85, 82, 88, 128, 90, 90, 89, 82, 88, 128, 78, 65, 71, - 82, 201, 83, 72, 79, 82, 212, 83, 72, 69, 69, 206, 90, 69, 82, 79, 128, - 82, 79, 77, 65, 206, 84, 73, 76, 68, 197, 76, 69, 70, 84, 128, 79, 71, - 72, 65, 205, 86, 79, 67, 65, 204, 78, 79, 82, 84, 200, 67, 85, 82, 76, - 217, 65, 84, 84, 73, 195, 83, 79, 85, 84, 200, 66, 69, 76, 79, 215, 66, - 85, 72, 73, 196, 80, 79, 73, 78, 212, 84, 65, 67, 75, 128, 68, 65, 83, - 72, 128, 68, 79, 87, 78, 128, 73, 79, 84, 65, 128, 78, 45, 65, 82, 217, - 82, 69, 83, 84, 128, 71, 72, 65, 73, 206, 65, 67, 85, 84, 197, 66, 69, - 84, 65, 128, 66, 82, 69, 86, 197, 67, 79, 77, 77, 193, 71, 82, 65, 86, - 197, 75, 79, 69, 84, 128, 86, 65, 82, 73, 193, 90, 69, 84, 65, 128, 67, - 72, 69, 83, 211, 67, 85, 82, 76, 128, 83, 72, 69, 76, 204, 84, 72, 69, - 84, 193, 83, 79, 85, 78, 196, 85, 78, 73, 79, 206, 65, 76, 69, 70, 128, - 65, 84, 84, 65, 203, 68, 79, 84, 83, 128, 70, 79, 82, 84, 217, 72, 65, - 76, 70, 128, 78, 79, 84, 69, 128, 84, 79, 78, 65, 204, 73, 77, 65, 71, - 197, 80, 76, 85, 83, 128, 65, 71, 79, 71, 201, 69, 77, 80, 84, 217, 72, - 69, 65, 82, 212, 83, 85, 73, 84, 128, 70, 73, 70, 84, 217, 70, 73, 76, - 76, 128, 75, 65, 84, 79, 128, 75, 69, 72, 69, 200, 76, 65, 82, 71, 197, - 83, 72, 65, 68, 128, 66, 69, 71, 73, 206, 67, 65, 82, 69, 212, 70, 65, - 82, 83, 201, 70, 73, 82, 69, 128, 72, 79, 82, 73, 128, 75, 65, 80, 80, - 193, 77, 79, 79, 78, 128, 83, 69, 86, 69, 206, 83, 72, 69, 73, 128, 83, - 72, 73, 78, 128, 83, 85, 78, 71, 128, 84, 73, 67, 75, 128, 67, 76, 69, - 70, 128, 67, 82, 79, 83, 211, 70, 65, 84, 72, 193, 70, 73, 82, 83, 212, - 77, 65, 68, 68, 193, 81, 85, 65, 68, 128, 82, 85, 80, 69, 197, 83, 73, - 71, 77, 193, 83, 84, 69, 77, 128, 84, 67, 72, 69, 200, 84, 73, 77, 69, - 211, 84, 83, 72, 69, 199, 89, 65, 78, 71, 128, 65, 76, 84, 65, 128, 66, - 69, 72, 69, 200, 67, 72, 69, 67, 203, 67, 82, 79, 80, 128, 68, 65, 77, - 77, 193, 70, 73, 84, 65, 128, 71, 82, 69, 65, 212, 72, 65, 78, 68, 128, - 73, 90, 72, 69, 128, 74, 79, 73, 78, 128, 75, 65, 80, 65, 128, 75, 65, - 83, 82, 193, 75, 72, 69, 73, 128, 75, 87, 65, 65, 128, 76, 79, 78, 71, - 128, 78, 71, 79, 69, 200, 79, 66, 79, 76, 211, 80, 69, 72, 69, 200, 82, + 80, 65, 78, 84, 73, 128, 80, 65, 83, 69, 81, 128, 80, 65, 83, 85, 81, + 128, 80, 65, 84, 65, 75, 128, 80, 65, 90, 69, 82, 128, 80, 69, 65, 67, + 69, 128, 80, 69, 69, 90, 73, 128, 80, 69, 72, 69, 72, 128, 80, 69, 73, + 84, 72, 128, 80, 69, 78, 83, 85, 128, 80, 69, 79, 82, 84, 200, 80, 69, + 80, 69, 84, 128, 80, 69, 82, 84, 72, 207, 80, 69, 83, 69, 84, 193, 80, + 69, 83, 72, 50, 128, 80, 72, 78, 65, 69, 203, 80, 72, 85, 78, 71, 128, + 80, 73, 65, 78, 79, 128, 80, 76, 85, 77, 69, 196, 80, 76, 85, 84, 79, + 128, 80, 79, 69, 84, 73, 195, 80, 79, 78, 68, 79, 128, 80, 82, 73, 78, + 84, 128, 80, 82, 79, 79, 70, 128, 80, 82, 79, 86, 69, 128, 81, 65, 65, + 70, 85, 128, 81, 65, 68, 77, 65, 128, 81, 65, 77, 65, 84, 211, 81, 65, + 82, 78, 69, 217, 81, 72, 87, 65, 65, 128, 81, 72, 87, 69, 69, 128, 82, + 45, 67, 82, 69, 197, 82, 65, 73, 68, 65, 128, 82, 65, 83, 72, 65, 128, + 82, 65, 83, 79, 85, 204, 82, 65, 84, 73, 79, 128, 82, 69, 67, 79, 82, + 196, 82, 69, 76, 65, 65, 128, 82, 69, 84, 85, 82, 206, 82, 69, 86, 73, + 65, 128, 82, 69, 86, 77, 65, 128, 82, 72, 79, 84, 73, 195, 82, 73, 67, + 69, 77, 128, 82, 73, 86, 69, 82, 128, 82, 78, 79, 79, 78, 128, 82, 79, + 66, 65, 84, 128, 82, 82, 85, 79, 88, 128, 82, 82, 85, 82, 88, 128, 82, + 82, 89, 82, 88, 128, 82, 85, 80, 73, 73, 128, 82, 87, 65, 72, 65, 128, + 83, 65, 68, 72, 69, 128, 83, 65, 70, 72, 65, 128, 83, 65, 77, 69, 75, + 200, 83, 65, 77, 75, 65, 128, 83, 65, 77, 89, 79, 203, 83, 65, 78, 65, + 72, 128, 83, 65, 85, 73, 76, 128, 83, 69, 69, 78, 85, 128, 83, 69, 73, + 83, 77, 193, 83, 69, 78, 84, 73, 128, 83, 72, 65, 66, 54, 128, 83, 72, + 69, 69, 78, 128, 83, 72, 69, 71, 57, 128, 83, 72, 69, 81, 69, 204, 83, + 72, 69, 86, 65, 128, 83, 72, 73, 73, 78, 128, 83, 72, 73, 84, 65, 128, + 83, 72, 79, 79, 84, 128, 83, 72, 79, 82, 84, 128, 83, 72, 85, 79, 80, + 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 82, 88, 128, 83, 72, 89, 82, + 88, 128, 83, 73, 88, 84, 72, 211, 83, 76, 65, 86, 69, 128, 83, 76, 73, + 67, 69, 128, 83, 76, 73, 78, 71, 128, 83, 76, 79, 80, 69, 128, 83, 77, + 69, 65, 82, 128, 83, 77, 73, 76, 69, 128, 83, 78, 65, 75, 69, 128, 83, + 78, 79, 85, 84, 128, 83, 79, 85, 78, 68, 128, 83, 79, 87, 73, 76, 207, + 83, 80, 73, 67, 69, 128, 83, 80, 79, 79, 78, 128, 83, 80, 85, 78, 71, + 211, 83, 81, 85, 73, 83, 200, 83, 83, 73, 69, 80, 128, 83, 83, 73, 69, + 88, 128, 83, 83, 89, 82, 88, 128, 83, 84, 65, 78, 68, 128, 83, 84, 65, + 82, 75, 128, 83, 84, 69, 65, 77, 128, 83, 84, 79, 78, 69, 128, 83, 84, + 79, 86, 69, 128, 83, 87, 69, 69, 84, 128, 83, 87, 79, 82, 68, 128, 83, + 89, 82, 77, 65, 128, 84, 65, 76, 69, 78, 212, 84, 65, 80, 69, 82, 128, + 84, 67, 72, 69, 72, 128, 84, 69, 71, 69, 72, 128, 84, 69, 73, 87, 83, + 128, 84, 69, 86, 73, 82, 128, 84, 72, 73, 71, 72, 128, 84, 72, 73, 82, + 68, 128, 84, 72, 73, 84, 65, 128, 84, 72, 79, 78, 71, 128, 84, 72, 85, + 78, 71, 128, 84, 72, 89, 79, 79, 205, 84, 73, 65, 82, 65, 128, 84, 73, + 78, 78, 69, 128, 84, 73, 80, 80, 73, 128, 84, 76, 72, 69, 69, 128, 84, + 82, 65, 67, 75, 128, 84, 82, 73, 84, 79, 211, 84, 82, 85, 84, 72, 128, + 84, 83, 69, 82, 69, 128, 84, 83, 72, 79, 79, 203, 84, 84, 83, 69, 69, + 128, 84, 84, 84, 72, 65, 128, 84, 85, 71, 82, 73, 203, 84, 85, 78, 78, + 89, 128, 84, 85, 82, 79, 50, 128, 84, 85, 85, 77, 85, 128, 84, 89, 80, + 69, 45, 177, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 179, 84, 89, + 80, 69, 45, 180, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 182, 84, + 89, 80, 69, 45, 183, 85, 68, 65, 65, 84, 128, 85, 75, 65, 82, 65, 128, + 85, 77, 66, 73, 78, 128, 85, 78, 73, 84, 89, 128, 85, 80, 87, 65, 82, + 196, 85, 83, 83, 85, 51, 128, 85, 84, 85, 75, 73, 128, 86, 65, 65, 86, + 85, 128, 86, 65, 83, 73, 83, 128, 86, 65, 84, 72, 89, 128, 86, 69, 67, + 84, 79, 210, 86, 69, 82, 71, 69, 128, 86, 69, 83, 84, 65, 128, 86, 73, + 82, 71, 65, 128, 86, 73, 82, 71, 79, 128, 86, 79, 76, 85, 77, 197, 86, + 90, 77, 69, 84, 128, 87, 65, 65, 86, 85, 128, 87, 65, 83, 76, 65, 128, + 87, 72, 69, 69, 76, 128, 87, 73, 78, 68, 85, 128, 87, 73, 78, 74, 65, + 128, 87, 82, 69, 65, 84, 200, 87, 82, 79, 78, 71, 128, 88, 69, 83, 84, + 69, 211, 89, 65, 45, 89, 79, 128, 89, 65, 65, 68, 79, 128, 89, 65, 65, + 82, 85, 128, 89, 65, 68, 68, 72, 128, 89, 65, 71, 72, 72, 128, 89, 65, + 75, 72, 72, 128, 89, 69, 79, 45, 79, 128, 89, 69, 79, 45, 85, 128, 89, + 69, 84, 73, 86, 128, 89, 73, 90, 69, 84, 128, 89, 85, 45, 69, 79, 128, + 90, 65, 82, 81, 65, 128, 90, 65, 89, 73, 78, 128, 90, 72, 65, 73, 78, + 128, 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, 82, + 88, 128, 90, 72, 89, 82, 88, 128, 90, 73, 76, 68, 69, 128, 90, 73, 78, + 79, 82, 128, 90, 85, 66, 85, 82, 128, 90, 89, 71, 79, 83, 128, 90, 90, + 73, 69, 80, 128, 90, 90, 73, 69, 88, 128, 90, 90, 85, 82, 88, 128, 90, + 90, 89, 82, 88, 128, 85, 80, 80, 69, 210, 82, 79, 77, 65, 206, 75, 65, + 89, 65, 200, 65, 76, 80, 72, 193, 83, 84, 79, 80, 128, 67, 72, 73, 75, + 201, 79, 77, 69, 71, 193, 79, 88, 73, 65, 128, 83, 72, 79, 82, 212, 90, + 69, 82, 79, 128, 78, 65, 71, 82, 201, 84, 73, 76, 68, 197, 83, 72, 69, + 69, 206, 71, 85, 78, 85, 128, 84, 69, 78, 85, 128, 76, 69, 70, 84, 128, + 78, 79, 82, 84, 200, 79, 71, 72, 65, 205, 86, 79, 67, 65, 204, 67, 85, + 82, 76, 217, 65, 84, 84, 73, 195, 83, 79, 85, 84, 200, 80, 79, 73, 78, + 212, 66, 69, 76, 79, 215, 66, 85, 72, 73, 196, 73, 79, 84, 65, 128, 82, + 69, 83, 84, 128, 84, 65, 67, 75, 128, 68, 65, 83, 72, 128, 68, 79, 87, + 78, 128, 75, 65, 82, 69, 206, 78, 45, 65, 82, 217, 83, 69, 86, 69, 206, + 68, 73, 83, 72, 128, 71, 72, 65, 73, 206, 83, 72, 69, 76, 204, 65, 67, + 85, 84, 197, 66, 69, 84, 65, 128, 66, 82, 69, 86, 197, 67, 79, 77, 77, + 193, 71, 82, 65, 86, 197, 75, 79, 69, 84, 128, 86, 65, 82, 73, 193, 67, + 85, 82, 76, 128, 68, 79, 84, 83, 128, 72, 65, 76, 70, 128, 76, 65, 71, + 65, 210, 90, 69, 84, 65, 128, 65, 76, 69, 70, 128, 67, 72, 69, 83, 211, + 70, 65, 82, 83, 201, 78, 85, 78, 85, 218, 84, 72, 69, 84, 193, 80, 76, + 85, 83, 128, 83, 79, 85, 78, 196, 85, 78, 73, 79, 206, 65, 84, 84, 65, + 203, 70, 79, 82, 84, 217, 76, 65, 82, 71, 197, 78, 79, 84, 69, 128, 84, + 65, 75, 52, 128, 84, 79, 78, 65, 204, 70, 73, 70, 84, 217, 73, 77, 65, + 71, 197, 75, 69, 72, 69, 200, 83, 72, 65, 68, 128, 65, 71, 79, 71, 201, + 69, 77, 80, 84, 217, 72, 69, 65, 82, 212, 83, 73, 71, 77, 193, 83, 85, + 73, 84, 128, 87, 73, 78, 68, 128, 70, 73, 76, 76, 128, 75, 65, 84, 79, + 128, 76, 79, 79, 80, 128, 83, 72, 73, 78, 128, 66, 69, 71, 73, 206, 67, + 65, 82, 69, 212, 70, 73, 82, 69, 128, 71, 73, 83, 72, 128, 72, 79, 82, + 73, 128, 75, 65, 80, 80, 193, 77, 79, 79, 78, 128, 83, 72, 69, 73, 128, + 83, 84, 69, 77, 128, 83, 85, 78, 71, 128, 84, 73, 67, 75, 128, 66, 65, + 67, 75, 128, 66, 65, 78, 50, 128, 67, 76, 69, 70, 128, 67, 82, 79, 83, + 211, 70, 65, 84, 72, 193, 70, 73, 82, 83, 212, 70, 73, 84, 65, 128, 71, + 82, 69, 65, 212, 77, 65, 68, 68, 193, 77, 85, 83, 72, 128, 78, 68, 79, + 76, 197, 81, 85, 65, 68, 128, 82, 79, 79, 84, 128, 82, 85, 80, 69, 197, + 83, 72, 65, 82, 208, 84, 67, 72, 69, 200, 84, 72, 69, 69, 128, 84, 72, + 73, 82, 196, 84, 83, 72, 65, 128, 84, 83, 72, 69, 199, 89, 65, 78, 71, + 128, 65, 76, 84, 65, 128, 66, 69, 72, 69, 200, 67, 72, 69, 67, 203, 67, + 82, 79, 80, 128, 68, 65, 77, 77, 193, 71, 65, 78, 50, 128, 71, 73, 82, + 50, 128, 72, 65, 78, 68, 128, 73, 90, 72, 69, 128, 74, 79, 73, 78, 128, + 75, 65, 68, 51, 128, 75, 65, 80, 65, 128, 75, 65, 83, 82, 193, 75, 72, + 69, 73, 128, 75, 87, 65, 65, 128, 77, 85, 83, 72, 179, 78, 71, 79, 69, + 200, 79, 66, 79, 76, 211, 80, 69, 72, 69, 200, 80, 73, 82, 73, 199, 82, 65, 70, 69, 128, 82, 78, 79, 79, 206, 82, 84, 65, 71, 211, 83, 67, 72, - 87, 193, 83, 72, 65, 82, 208, 84, 72, 65, 65, 128, 84, 72, 69, 69, 128, - 86, 65, 78, 69, 128, 87, 65, 86, 69, 128, 87, 73, 78, 68, 128, 65, 76, - 76, 79, 128, 66, 73, 82, 68, 128, 67, 65, 82, 79, 206, 67, 72, 65, 82, - 128, 67, 72, 73, 78, 128, 67, 72, 82, 79, 193, 67, 73, 69, 85, 195, 67, - 87, 65, 65, 128, 68, 69, 76, 84, 193, 70, 79, 79, 84, 128, 71, 72, 65, - 78, 128, 71, 79, 76, 68, 128, 71, 82, 65, 83, 211, 72, 65, 84, 65, 198, - 73, 69, 85, 78, 199, 74, 72, 65, 78, 128, 75, 69, 84, 84, 201, 75, 72, - 65, 82, 128, 76, 76, 76, 65, 128, 76, 79, 79, 80, 128, 77, 78, 65, 83, - 128, 77, 85, 83, 73, 195, 77, 87, 65, 65, 128, 78, 87, 65, 65, 128, 79, - 85, 84, 69, 210, 79, 88, 69, 73, 193, 80, 65, 80, 69, 210, 80, 69, 68, - 65, 204, 80, 72, 65, 82, 128, 80, 79, 76, 69, 128, 80, 82, 73, 77, 197, - 80, 87, 65, 65, 128, 82, 79, 79, 84, 128, 83, 69, 69, 78, 128, 83, 72, - 87, 65, 128, 83, 73, 76, 75, 128, 83, 73, 77, 65, 128, 83, 84, 65, 82, - 212, 83, 87, 65, 65, 128, 83, 87, 65, 83, 200, 84, 72, 73, 73, 128, 84, - 72, 73, 82, 196, 84, 83, 72, 65, 128, 84, 84, 72, 79, 128, 84, 87, 65, - 65, 128, 87, 73, 78, 69, 128, 89, 65, 71, 72, 128, 89, 65, 90, 72, 128, - 89, 73, 87, 78, 128, 89, 87, 65, 65, 128, 90, 72, 65, 82, 128, 90, 72, - 69, 69, 128, 45, 68, 90, 85, 196, 65, 76, 70, 65, 128, 65, 80, 69, 83, - 207, 65, 82, 71, 73, 128, 66, 66, 85, 84, 128, 66, 69, 65, 84, 128, 66, - 76, 65, 68, 197, 66, 76, 85, 69, 128, 66, 79, 78, 69, 128, 66, 82, 85, - 83, 200, 66, 85, 75, 89, 128, 66, 90, 85, 78, 199, 67, 65, 82, 84, 128, - 67, 85, 79, 80, 128, 67, 85, 82, 86, 197, 67, 87, 73, 73, 128, 67, 87, - 79, 79, 128, 68, 65, 76, 69, 212, 68, 68, 85, 82, 128, 68, 69, 69, 82, - 128, 68, 90, 72, 65, 128, 68, 90, 72, 69, 128, 68, 90, 74, 69, 128, 69, + 87, 193, 83, 72, 73, 68, 128, 83, 72, 87, 69, 128, 84, 72, 65, 65, 128, + 84, 72, 79, 82, 206, 84, 85, 71, 50, 128, 86, 65, 78, 69, 128, 87, 65, + 86, 69, 128, 90, 72, 69, 69, 128, 65, 76, 76, 79, 128, 66, 73, 82, 68, + 128, 67, 65, 82, 73, 203, 67, 65, 82, 79, 206, 67, 67, 72, 69, 128, 67, + 72, 65, 82, 128, 67, 72, 73, 78, 128, 67, 72, 82, 79, 193, 67, 73, 69, + 85, 195, 67, 87, 65, 65, 128, 68, 69, 76, 84, 193, 70, 79, 79, 84, 128, + 71, 72, 65, 78, 128, 71, 79, 76, 68, 128, 71, 82, 65, 83, 211, 72, 65, + 84, 65, 198, 73, 69, 85, 78, 199, 74, 72, 65, 78, 128, 75, 69, 84, 84, + 201, 75, 72, 65, 82, 128, 76, 73, 83, 72, 128, 76, 76, 76, 65, 128, 76, + 85, 71, 65, 204, 77, 78, 65, 83, 128, 77, 85, 82, 68, 193, 77, 85, 83, + 73, 195, 77, 87, 65, 65, 128, 78, 65, 71, 65, 128, 78, 87, 65, 65, 128, + 79, 85, 84, 69, 210, 79, 88, 69, 73, 193, 80, 65, 80, 69, 210, 80, 69, + 68, 65, 204, 80, 72, 65, 82, 128, 80, 79, 76, 69, 128, 80, 82, 73, 77, + 197, 80, 87, 65, 65, 128, 83, 69, 69, 78, 128, 83, 72, 65, 51, 128, 83, + 72, 65, 82, 178, 83, 72, 69, 69, 128, 83, 72, 73, 84, 193, 83, 72, 87, + 65, 128, 83, 73, 76, 75, 128, 83, 73, 77, 65, 128, 83, 84, 65, 82, 212, + 83, 87, 65, 65, 128, 83, 87, 65, 83, 200, 84, 72, 73, 73, 128, 84, 72, + 79, 79, 128, 84, 82, 69, 69, 128, 84, 84, 72, 79, 128, 84, 87, 65, 65, + 128, 87, 73, 78, 69, 128, 89, 65, 71, 72, 128, 89, 65, 90, 72, 128, 89, + 73, 87, 78, 128, 89, 87, 65, 65, 128, 90, 65, 73, 78, 128, 90, 72, 65, + 82, 128, 45, 68, 90, 85, 196, 65, 76, 69, 85, 212, 65, 76, 70, 65, 128, + 65, 77, 65, 82, 128, 65, 80, 69, 83, 207, 65, 82, 71, 73, 128, 66, 66, + 85, 84, 128, 66, 69, 65, 84, 128, 66, 76, 65, 68, 197, 66, 76, 85, 69, + 128, 66, 79, 78, 69, 128, 66, 82, 79, 65, 196, 66, 82, 85, 83, 200, 66, + 85, 75, 89, 128, 66, 90, 85, 78, 199, 67, 65, 82, 84, 128, 67, 85, 79, + 80, 128, 67, 85, 82, 86, 197, 67, 87, 73, 73, 128, 67, 87, 79, 79, 128, + 68, 65, 76, 69, 212, 68, 65, 78, 71, 128, 68, 68, 85, 82, 128, 68, 69, + 69, 82, 128, 68, 73, 77, 50, 128, 68, 90, 72, 65, 128, 68, 90, 72, 69, + 128, 68, 90, 74, 69, 128, 68, 90, 87, 69, 128, 68, 90, 90, 69, 128, 69, 65, 82, 84, 200, 69, 82, 65, 83, 197, 70, 69, 69, 68, 128, 70, 73, 83, 72, 128, 70, 76, 65, 71, 128, 70, 76, 65, 84, 128, 70, 82, 79, 71, 128, - 70, 87, 65, 65, 128, 71, 65, 84, 69, 128, 71, 67, 73, 71, 128, 71, 71, - 79, 80, 128, 71, 71, 85, 79, 128, 71, 72, 65, 68, 128, 71, 72, 72, 65, - 128, 71, 73, 77, 69, 204, 71, 79, 65, 76, 128, 71, 82, 65, 67, 197, 71, - 83, 85, 77, 128, 71, 89, 65, 83, 128, 71, 89, 79, 78, 128, 72, 65, 84, - 69, 128, 72, 65, 86, 69, 128, 72, 66, 65, 83, 193, 72, 69, 82, 85, 128, - 72, 72, 65, 65, 128, 72, 73, 69, 85, 200, 72, 88, 73, 84, 128, 72, 88, - 79, 80, 128, 72, 88, 85, 79, 128, 74, 65, 68, 69, 128, 74, 69, 69, 77, - 128, 74, 72, 69, 72, 128, 74, 74, 73, 69, 128, 74, 74, 85, 84, 128, 75, - 65, 75, 79, 128, 75, 72, 65, 72, 128, 75, 72, 65, 78, 199, 75, 72, 72, - 65, 128, 75, 78, 73, 70, 197, 75, 83, 83, 65, 128, 75, 87, 73, 73, 128, - 75, 87, 79, 79, 128, 76, 69, 65, 70, 128, 76, 73, 87, 78, 128, 76, 79, - 78, 71, 193, 76, 79, 87, 45, 185, 76, 87, 65, 65, 128, 76, 87, 73, 73, - 128, 76, 87, 79, 79, 128, 77, 69, 65, 84, 128, 77, 69, 69, 77, 128, 77, - 69, 69, 84, 128, 77, 69, 83, 79, 128, 77, 73, 69, 85, 205, 77, 79, 85, - 78, 196, 77, 87, 73, 73, 128, 77, 87, 79, 79, 128, 78, 65, 77, 69, 128, - 78, 65, 78, 65, 128, 78, 66, 73, 69, 128, 78, 73, 69, 85, 206, 78, 78, - 78, 65, 128, 78, 79, 68, 69, 128, 78, 89, 73, 80, 128, 78, 89, 79, 80, - 128, 78, 90, 85, 80, 128, 80, 65, 87, 78, 128, 80, 73, 69, 85, 208, 80, - 73, 87, 82, 128, 80, 76, 65, 67, 197, 80, 79, 85, 78, 196, 80, 87, 73, - 73, 128, 80, 87, 79, 79, 128, 81, 85, 79, 84, 197, 82, 65, 89, 83, 128, - 82, 66, 65, 83, 193, 82, 73, 69, 85, 204, 82, 73, 83, 72, 128, 82, 79, - 79, 75, 128, 82, 87, 65, 65, 128, 83, 65, 76, 76, 193, 83, 65, 76, 84, - 128, 83, 69, 65, 76, 128, 83, 72, 65, 65, 128, 83, 72, 65, 84, 128, 83, - 72, 69, 69, 128, 83, 72, 72, 65, 128, 83, 72, 73, 70, 212, 83, 72, 79, - 71, 201, 83, 72, 85, 82, 128, 83, 72, 87, 69, 128, 83, 72, 87, 73, 128, - 83, 72, 87, 79, 128, 83, 76, 85, 82, 128, 83, 77, 65, 83, 200, 83, 78, - 79, 85, 212, 83, 80, 65, 68, 197, 83, 81, 85, 65, 212, 83, 84, 65, 70, - 198, 83, 85, 75, 85, 206, 83, 87, 73, 73, 128, 83, 87, 79, 79, 128, 84, - 69, 88, 84, 128, 84, 72, 69, 82, 197, 84, 72, 79, 79, 128, 84, 73, 77, - 69, 128, 84, 73, 87, 78, 128, 84, 76, 72, 65, 128, 84, 76, 72, 69, 128, - 84, 76, 72, 73, 128, 84, 76, 72, 79, 128, 84, 82, 69, 69, 128, 84, 82, - 85, 69, 128, 84, 83, 72, 69, 128, 84, 87, 73, 73, 128, 84, 87, 79, 79, - 128, 85, 78, 68, 69, 210, 86, 69, 68, 69, 128, 86, 73, 68, 65, 128, 87, - 65, 76, 75, 128, 87, 65, 83, 76, 193, 87, 65, 84, 69, 210, 87, 72, 79, - 76, 197, 87, 79, 79, 68, 128, 87, 79, 79, 76, 128, 87, 89, 78, 78, 128, - 89, 65, 75, 72, 128, 89, 65, 84, 73, 128, 89, 69, 82, 73, 128, 89, 79, - 45, 73, 128, 89, 79, 71, 72, 128, 89, 85, 45, 73, 128, 89, 87, 73, 73, - 128, 89, 87, 79, 79, 128, 90, 65, 73, 78, 128, 90, 65, 81, 69, 198, 90, - 65, 84, 65, 128, 90, 76, 65, 77, 193, 45, 67, 72, 65, 210, 65, 69, 83, - 67, 128, 65, 70, 84, 69, 210, 65, 72, 83, 65, 128, 65, 73, 76, 77, 128, - 65, 73, 78, 78, 128, 65, 75, 66, 65, 210, 65, 76, 71, 73, 218, 65, 76, + 70, 87, 65, 65, 128, 71, 65, 66, 65, 128, 71, 65, 84, 69, 128, 71, 67, + 73, 71, 128, 71, 71, 79, 80, 128, 71, 71, 85, 79, 128, 71, 72, 65, 68, + 128, 71, 72, 72, 65, 128, 71, 73, 77, 69, 204, 71, 79, 65, 76, 128, 71, + 82, 65, 67, 197, 71, 83, 85, 77, 128, 71, 85, 82, 55, 128, 71, 89, 65, + 83, 128, 71, 89, 79, 78, 128, 72, 65, 84, 69, 128, 72, 65, 86, 69, 128, + 72, 66, 65, 83, 193, 72, 69, 78, 71, 128, 72, 69, 82, 85, 128, 72, 72, + 65, 65, 128, 72, 73, 69, 85, 200, 72, 85, 66, 50, 128, 72, 88, 73, 84, + 128, 72, 88, 79, 80, 128, 72, 88, 85, 79, 128, 73, 77, 73, 78, 128, 74, + 65, 68, 69, 128, 74, 69, 69, 77, 128, 74, 72, 69, 72, 128, 74, 74, 73, + 69, 128, 74, 74, 85, 84, 128, 75, 65, 68, 50, 128, 75, 65, 68, 53, 128, + 75, 65, 75, 79, 128, 75, 72, 65, 72, 128, 75, 72, 65, 78, 199, 75, 72, + 72, 65, 128, 75, 78, 73, 70, 197, 75, 83, 83, 65, 128, 75, 87, 73, 73, + 128, 75, 87, 79, 79, 128, 76, 69, 65, 70, 128, 76, 69, 78, 71, 193, 76, + 73, 87, 78, 128, 76, 79, 78, 71, 193, 76, 79, 87, 45, 185, 76, 87, 65, + 65, 128, 76, 87, 73, 73, 128, 76, 87, 79, 79, 128, 77, 69, 65, 84, 128, + 77, 69, 69, 77, 128, 77, 69, 69, 84, 128, 77, 69, 83, 79, 128, 77, 73, + 69, 85, 205, 77, 73, 76, 76, 197, 77, 79, 85, 78, 196, 77, 87, 73, 73, + 128, 77, 87, 79, 79, 128, 78, 65, 77, 69, 128, 78, 65, 78, 65, 128, 78, + 66, 73, 69, 128, 78, 71, 71, 65, 128, 78, 73, 69, 85, 206, 78, 78, 78, + 65, 128, 78, 79, 68, 69, 128, 78, 89, 69, 69, 128, 78, 89, 73, 80, 128, + 78, 89, 79, 80, 128, 78, 90, 85, 80, 128, 80, 65, 87, 78, 128, 80, 73, + 69, 85, 208, 80, 73, 87, 82, 128, 80, 76, 65, 67, 197, 80, 79, 85, 78, + 196, 80, 87, 73, 73, 128, 80, 87, 79, 79, 128, 81, 85, 79, 84, 197, 82, + 65, 89, 83, 128, 82, 66, 65, 83, 193, 82, 73, 69, 85, 204, 82, 79, 79, + 75, 128, 82, 85, 77, 65, 201, 82, 87, 65, 65, 128, 83, 65, 68, 69, 128, + 83, 65, 76, 76, 193, 83, 65, 76, 84, 128, 83, 69, 65, 76, 128, 83, 72, + 65, 65, 128, 83, 72, 65, 84, 128, 83, 72, 72, 65, 128, 83, 72, 73, 70, + 212, 83, 72, 79, 71, 201, 83, 72, 79, 79, 128, 83, 72, 85, 82, 128, 83, + 72, 87, 73, 128, 83, 72, 87, 79, 128, 83, 73, 71, 52, 128, 83, 76, 85, + 82, 128, 83, 77, 65, 83, 200, 83, 78, 79, 85, 212, 83, 80, 65, 68, 197, + 83, 81, 85, 65, 212, 83, 84, 65, 70, 198, 83, 85, 75, 85, 206, 83, 87, + 73, 73, 128, 83, 87, 79, 79, 128, 84, 67, 72, 69, 128, 84, 69, 88, 84, + 128, 84, 72, 69, 82, 197, 84, 73, 77, 69, 128, 84, 73, 87, 78, 128, 84, + 76, 72, 65, 128, 84, 76, 72, 69, 128, 84, 76, 72, 73, 128, 84, 76, 72, + 79, 128, 84, 82, 85, 69, 128, 84, 83, 72, 69, 128, 84, 83, 83, 69, 128, + 84, 83, 87, 69, 128, 84, 87, 73, 73, 128, 84, 87, 79, 79, 128, 85, 78, + 68, 69, 210, 86, 69, 68, 69, 128, 86, 69, 78, 68, 128, 86, 73, 68, 65, + 128, 87, 65, 76, 75, 128, 87, 65, 83, 76, 193, 87, 65, 84, 69, 210, 87, + 72, 79, 76, 197, 87, 79, 79, 68, 128, 87, 79, 79, 76, 128, 87, 89, 78, + 78, 128, 89, 65, 75, 72, 128, 89, 65, 84, 73, 128, 89, 69, 82, 73, 128, + 89, 79, 45, 73, 128, 89, 79, 71, 72, 128, 89, 85, 45, 73, 128, 89, 87, + 73, 73, 128, 89, 87, 79, 79, 128, 90, 65, 81, 69, 198, 90, 65, 84, 65, + 128, 90, 72, 87, 69, 128, 90, 76, 65, 77, 193, 45, 67, 72, 65, 210, 65, + 68, 69, 71, 128, 65, 69, 83, 67, 128, 65, 70, 84, 69, 210, 65, 72, 65, + 68, 128, 65, 72, 83, 65, 128, 65, 73, 76, 77, 128, 65, 73, 78, 78, 128, + 65, 75, 65, 82, 193, 65, 75, 66, 65, 210, 65, 76, 71, 73, 218, 65, 76, 76, 65, 200, 65, 76, 80, 65, 128, 65, 77, 80, 83, 128, 65, 78, 72, 85, - 128, 65, 78, 75, 72, 128, 65, 78, 83, 85, 218, 65, 82, 77, 89, 128, 65, - 84, 78, 65, 200, 65, 85, 78, 78, 128, 65, 89, 65, 72, 128, 66, 48, 49, - 56, 128, 66, 48, 49, 57, 128, 66, 48, 50, 50, 128, 66, 48, 51, 52, 128, - 66, 48, 52, 55, 128, 66, 48, 52, 57, 128, 66, 48, 53, 54, 128, 66, 48, - 54, 51, 128, 66, 48, 54, 52, 128, 66, 48, 55, 57, 128, 66, 48, 56, 50, - 128, 66, 48, 56, 51, 128, 66, 48, 56, 54, 128, 66, 48, 56, 57, 128, 66, - 49, 48, 53, 198, 66, 49, 48, 53, 205, 66, 49, 48, 54, 198, 66, 49, 48, - 54, 205, 66, 49, 48, 55, 198, 66, 49, 48, 55, 205, 66, 49, 48, 56, 198, - 66, 49, 48, 56, 205, 66, 49, 48, 57, 198, 66, 49, 48, 57, 205, 66, 49, - 51, 50, 128, 66, 49, 52, 50, 128, 66, 49, 52, 54, 128, 66, 49, 53, 48, - 128, 66, 49, 53, 50, 128, 66, 49, 53, 51, 128, 66, 49, 53, 52, 128, 66, - 49, 53, 53, 128, 66, 49, 53, 55, 128, 66, 49, 53, 56, 128, 66, 49, 54, - 48, 128, 66, 49, 54, 49, 128, 66, 49, 54, 52, 128, 66, 49, 54, 53, 128, - 66, 49, 54, 54, 128, 66, 49, 54, 55, 128, 66, 49, 54, 56, 128, 66, 49, - 54, 57, 128, 66, 49, 55, 48, 128, 66, 49, 55, 49, 128, 66, 49, 55, 50, - 128, 66, 49, 55, 52, 128, 66, 49, 55, 55, 128, 66, 49, 55, 56, 128, 66, - 49, 55, 57, 128, 66, 49, 56, 48, 128, 66, 49, 56, 49, 128, 66, 49, 56, - 50, 128, 66, 49, 56, 51, 128, 66, 49, 56, 52, 128, 66, 49, 56, 53, 128, - 66, 49, 56, 57, 128, 66, 49, 57, 48, 128, 66, 50, 48, 48, 128, 66, 50, - 48, 49, 128, 66, 50, 48, 50, 128, 66, 50, 48, 51, 128, 66, 50, 48, 52, - 128, 66, 50, 48, 53, 128, 66, 50, 48, 54, 128, 66, 50, 48, 55, 128, 66, - 50, 48, 56, 128, 66, 50, 48, 57, 128, 66, 50, 49, 48, 128, 66, 50, 49, - 49, 128, 66, 50, 49, 50, 128, 66, 50, 49, 51, 128, 66, 50, 49, 52, 128, - 66, 50, 49, 53, 128, 66, 50, 49, 54, 128, 66, 50, 49, 55, 128, 66, 50, - 49, 56, 128, 66, 50, 49, 57, 128, 66, 50, 50, 49, 128, 66, 50, 50, 50, - 128, 66, 50, 50, 54, 128, 66, 50, 50, 55, 128, 66, 50, 50, 56, 128, 66, - 50, 50, 57, 128, 66, 50, 51, 50, 128, 66, 50, 51, 52, 128, 66, 50, 51, - 54, 128, 66, 50, 52, 53, 128, 66, 50, 52, 54, 128, 66, 50, 52, 56, 128, - 66, 50, 52, 57, 128, 66, 50, 53, 48, 128, 66, 50, 53, 49, 128, 66, 50, - 53, 50, 128, 66, 50, 53, 51, 128, 66, 50, 53, 53, 128, 66, 50, 53, 54, - 128, 66, 50, 53, 55, 128, 66, 50, 53, 56, 128, 66, 50, 53, 57, 128, 66, - 51, 48, 53, 128, 66, 65, 67, 75, 128, 66, 65, 71, 65, 128, 66, 65, 72, - 84, 128, 66, 65, 82, 83, 128, 66, 65, 83, 69, 128, 66, 66, 65, 80, 128, - 66, 66, 65, 84, 128, 66, 66, 65, 88, 128, 66, 66, 69, 80, 128, 66, 66, - 69, 88, 128, 66, 66, 73, 69, 128, 66, 66, 73, 80, 128, 66, 66, 73, 84, - 128, 66, 66, 73, 88, 128, 66, 66, 79, 80, 128, 66, 66, 79, 84, 128, 66, - 66, 79, 88, 128, 66, 66, 85, 79, 128, 66, 66, 85, 80, 128, 66, 66, 85, - 82, 128, 66, 66, 85, 88, 128, 66, 66, 89, 80, 128, 66, 66, 89, 84, 128, - 66, 66, 89, 88, 128, 66, 67, 65, 68, 128, 66, 69, 65, 78, 128, 66, 69, - 69, 72, 128, 66, 69, 76, 76, 128, 66, 69, 76, 84, 128, 66, 69, 78, 68, - 128, 66, 69, 79, 82, 195, 66, 69, 84, 72, 128, 66, 73, 82, 85, 128, 66, - 76, 65, 78, 203, 66, 79, 65, 82, 128, 66, 79, 65, 84, 128, 66, 79, 68, - 89, 128, 66, 83, 68, 85, 211, 66, 83, 75, 65, 173, 66, 83, 75, 85, 210, - 66, 85, 76, 76, 128, 66, 85, 77, 80, 217, 66, 87, 69, 69, 128, 67, 65, - 65, 73, 128, 67, 65, 76, 67, 128, 67, 65, 76, 76, 128, 67, 65, 80, 79, - 128, 67, 65, 86, 69, 128, 67, 65, 89, 78, 128, 67, 67, 65, 65, 128, 67, - 67, 69, 69, 128, 67, 67, 72, 65, 128, 67, 67, 72, 69, 128, 67, 67, 72, - 73, 128, 67, 67, 72, 79, 128, 67, 67, 72, 85, 128, 67, 72, 65, 78, 128, - 67, 72, 65, 80, 128, 67, 72, 65, 84, 128, 67, 72, 65, 88, 128, 67, 72, - 69, 80, 128, 67, 72, 69, 84, 128, 67, 72, 69, 88, 128, 67, 72, 79, 65, - 128, 67, 72, 79, 69, 128, 67, 72, 79, 80, 128, 67, 72, 79, 84, 128, 67, - 72, 79, 88, 128, 67, 72, 85, 79, 128, 67, 72, 85, 80, 128, 67, 72, 85, - 82, 128, 67, 72, 85, 88, 128, 67, 72, 89, 80, 128, 67, 72, 89, 82, 128, - 67, 72, 89, 84, 128, 67, 72, 89, 88, 128, 67, 73, 69, 80, 128, 67, 73, - 69, 84, 128, 67, 73, 69, 88, 128, 67, 76, 65, 78, 128, 67, 76, 65, 87, - 128, 67, 76, 69, 65, 210, 67, 76, 79, 83, 197, 67, 79, 68, 65, 128, 67, - 79, 76, 76, 128, 67, 79, 80, 89, 128, 67, 85, 79, 88, 128, 67, 85, 82, - 88, 128, 67, 89, 82, 88, 128, 68, 65, 71, 65, 218, 68, 65, 71, 83, 128, - 68, 65, 73, 82, 128, 68, 65, 77, 80, 128, 68, 65, 82, 84, 128, 68, 68, - 65, 65, 128, 68, 68, 65, 76, 128, 68, 68, 65, 80, 128, 68, 68, 65, 84, - 128, 68, 68, 65, 88, 128, 68, 68, 69, 69, 128, 68, 68, 69, 80, 128, 68, - 68, 69, 88, 128, 68, 68, 72, 79, 128, 68, 68, 73, 69, 128, 68, 68, 73, - 80, 128, 68, 68, 73, 84, 128, 68, 68, 73, 88, 128, 68, 68, 79, 65, 128, - 68, 68, 79, 80, 128, 68, 68, 79, 84, 128, 68, 68, 79, 88, 128, 68, 68, - 85, 79, 128, 68, 68, 85, 80, 128, 68, 68, 85, 84, 128, 68, 68, 85, 88, - 128, 68, 68, 87, 65, 128, 68, 69, 65, 68, 128, 68, 69, 66, 73, 212, 68, - 69, 69, 76, 128, 68, 69, 72, 73, 128, 68, 69, 75, 65, 128, 68, 69, 83, - 73, 128, 68, 72, 65, 76, 128, 68, 73, 80, 76, 201, 68, 73, 83, 72, 128, - 68, 73, 84, 84, 207, 68, 76, 69, 69, 128, 68, 79, 73, 84, 128, 68, 79, - 79, 82, 128, 68, 79, 82, 85, 128, 68, 82, 85, 77, 128, 68, 89, 69, 72, - 128, 68, 90, 69, 69, 128, 69, 72, 87, 65, 218, 69, 74, 69, 67, 212, 69, + 128, 65, 78, 75, 72, 128, 65, 78, 83, 85, 218, 65, 80, 73, 78, 128, 65, + 82, 65, 68, 128, 65, 82, 77, 89, 128, 65, 83, 72, 57, 128, 65, 84, 78, + 65, 200, 65, 85, 78, 78, 128, 65, 89, 65, 72, 128, 66, 48, 49, 56, 128, + 66, 48, 49, 57, 128, 66, 48, 50, 50, 128, 66, 48, 51, 52, 128, 66, 48, + 52, 55, 128, 66, 48, 52, 57, 128, 66, 48, 53, 54, 128, 66, 48, 54, 51, + 128, 66, 48, 54, 52, 128, 66, 48, 55, 57, 128, 66, 48, 56, 50, 128, 66, + 48, 56, 51, 128, 66, 48, 56, 54, 128, 66, 48, 56, 57, 128, 66, 49, 48, + 53, 198, 66, 49, 48, 53, 205, 66, 49, 48, 54, 198, 66, 49, 48, 54, 205, + 66, 49, 48, 55, 198, 66, 49, 48, 55, 205, 66, 49, 48, 56, 198, 66, 49, + 48, 56, 205, 66, 49, 48, 57, 198, 66, 49, 48, 57, 205, 66, 49, 51, 50, + 128, 66, 49, 52, 50, 128, 66, 49, 52, 54, 128, 66, 49, 53, 48, 128, 66, + 49, 53, 50, 128, 66, 49, 53, 51, 128, 66, 49, 53, 52, 128, 66, 49, 53, + 53, 128, 66, 49, 53, 55, 128, 66, 49, 53, 56, 128, 66, 49, 54, 48, 128, + 66, 49, 54, 49, 128, 66, 49, 54, 52, 128, 66, 49, 54, 53, 128, 66, 49, + 54, 54, 128, 66, 49, 54, 55, 128, 66, 49, 54, 56, 128, 66, 49, 54, 57, + 128, 66, 49, 55, 48, 128, 66, 49, 55, 49, 128, 66, 49, 55, 50, 128, 66, + 49, 55, 52, 128, 66, 49, 55, 55, 128, 66, 49, 55, 56, 128, 66, 49, 55, + 57, 128, 66, 49, 56, 48, 128, 66, 49, 56, 49, 128, 66, 49, 56, 50, 128, + 66, 49, 56, 51, 128, 66, 49, 56, 52, 128, 66, 49, 56, 53, 128, 66, 49, + 56, 57, 128, 66, 49, 57, 48, 128, 66, 50, 48, 48, 128, 66, 50, 48, 49, + 128, 66, 50, 48, 50, 128, 66, 50, 48, 51, 128, 66, 50, 48, 52, 128, 66, + 50, 48, 53, 128, 66, 50, 48, 54, 128, 66, 50, 48, 55, 128, 66, 50, 48, + 56, 128, 66, 50, 48, 57, 128, 66, 50, 49, 48, 128, 66, 50, 49, 49, 128, + 66, 50, 49, 50, 128, 66, 50, 49, 51, 128, 66, 50, 49, 52, 128, 66, 50, + 49, 53, 128, 66, 50, 49, 54, 128, 66, 50, 49, 55, 128, 66, 50, 49, 56, + 128, 66, 50, 49, 57, 128, 66, 50, 50, 49, 128, 66, 50, 50, 50, 128, 66, + 50, 50, 54, 128, 66, 50, 50, 55, 128, 66, 50, 50, 56, 128, 66, 50, 50, + 57, 128, 66, 50, 51, 50, 128, 66, 50, 51, 52, 128, 66, 50, 51, 54, 128, + 66, 50, 52, 53, 128, 66, 50, 52, 54, 128, 66, 50, 52, 56, 128, 66, 50, + 52, 57, 128, 66, 50, 53, 48, 128, 66, 50, 53, 49, 128, 66, 50, 53, 50, + 128, 66, 50, 53, 51, 128, 66, 50, 53, 53, 128, 66, 50, 53, 54, 128, 66, + 50, 53, 55, 128, 66, 50, 53, 56, 128, 66, 50, 53, 57, 128, 66, 51, 48, + 53, 128, 66, 65, 71, 51, 128, 66, 65, 71, 65, 128, 66, 65, 72, 84, 128, + 66, 65, 78, 68, 128, 66, 65, 82, 83, 128, 66, 65, 83, 69, 128, 66, 66, + 65, 80, 128, 66, 66, 65, 84, 128, 66, 66, 65, 88, 128, 66, 66, 69, 80, + 128, 66, 66, 69, 88, 128, 66, 66, 73, 69, 128, 66, 66, 73, 80, 128, 66, + 66, 73, 84, 128, 66, 66, 73, 88, 128, 66, 66, 79, 80, 128, 66, 66, 79, + 84, 128, 66, 66, 79, 88, 128, 66, 66, 85, 79, 128, 66, 66, 85, 80, 128, + 66, 66, 85, 82, 128, 66, 66, 85, 88, 128, 66, 66, 89, 80, 128, 66, 66, + 89, 84, 128, 66, 66, 89, 88, 128, 66, 67, 65, 68, 128, 66, 69, 65, 78, + 128, 66, 69, 69, 72, 128, 66, 69, 76, 76, 128, 66, 69, 76, 84, 128, 66, + 69, 78, 68, 128, 66, 69, 79, 82, 195, 66, 69, 84, 72, 128, 66, 72, 69, + 69, 128, 66, 72, 79, 79, 128, 66, 73, 82, 85, 128, 66, 76, 65, 78, 203, + 66, 79, 65, 82, 128, 66, 79, 65, 84, 128, 66, 79, 68, 89, 128, 66, 83, + 68, 85, 211, 66, 83, 75, 65, 173, 66, 83, 75, 85, 210, 66, 85, 76, 76, + 128, 66, 85, 76, 76, 211, 66, 85, 76, 85, 199, 66, 85, 77, 80, 217, 66, + 85, 82, 50, 128, 66, 87, 69, 69, 128, 67, 45, 49, 56, 128, 67, 45, 51, + 57, 128, 67, 65, 65, 73, 128, 67, 65, 76, 67, 128, 67, 65, 76, 76, 128, + 67, 65, 76, 89, 193, 67, 65, 80, 79, 128, 67, 65, 86, 69, 128, 67, 65, + 89, 78, 128, 67, 67, 65, 65, 128, 67, 67, 69, 69, 128, 67, 67, 72, 65, + 128, 67, 67, 72, 73, 128, 67, 67, 72, 79, 128, 67, 67, 72, 85, 128, 67, + 72, 65, 78, 128, 67, 72, 65, 80, 128, 67, 72, 65, 84, 128, 67, 72, 65, + 88, 128, 67, 72, 69, 80, 128, 67, 72, 69, 84, 128, 67, 72, 69, 88, 128, + 67, 72, 72, 65, 128, 67, 72, 79, 65, 128, 67, 72, 79, 69, 128, 67, 72, + 79, 80, 128, 67, 72, 79, 84, 128, 67, 72, 79, 88, 128, 67, 72, 85, 79, + 128, 67, 72, 85, 80, 128, 67, 72, 85, 82, 128, 67, 72, 85, 88, 128, 67, + 72, 89, 80, 128, 67, 72, 89, 82, 128, 67, 72, 89, 84, 128, 67, 72, 89, + 88, 128, 67, 73, 69, 80, 128, 67, 73, 69, 84, 128, 67, 73, 69, 88, 128, + 67, 76, 65, 78, 128, 67, 76, 65, 87, 128, 67, 76, 69, 65, 210, 67, 76, + 79, 83, 197, 67, 76, 85, 66, 128, 67, 79, 68, 65, 128, 67, 79, 76, 76, + 128, 67, 79, 77, 66, 128, 67, 79, 80, 89, 128, 67, 85, 79, 88, 128, 67, + 85, 82, 88, 128, 67, 89, 82, 88, 128, 68, 65, 71, 65, 218, 68, 65, 71, + 83, 128, 68, 65, 73, 82, 128, 68, 65, 77, 80, 128, 68, 65, 82, 84, 128, + 68, 68, 65, 65, 128, 68, 68, 65, 76, 128, 68, 68, 65, 80, 128, 68, 68, + 65, 84, 128, 68, 68, 65, 88, 128, 68, 68, 68, 65, 128, 68, 68, 69, 69, + 128, 68, 68, 69, 80, 128, 68, 68, 69, 88, 128, 68, 68, 72, 79, 128, 68, + 68, 73, 69, 128, 68, 68, 73, 80, 128, 68, 68, 73, 84, 128, 68, 68, 73, + 88, 128, 68, 68, 79, 65, 128, 68, 68, 79, 80, 128, 68, 68, 79, 84, 128, + 68, 68, 79, 88, 128, 68, 68, 85, 79, 128, 68, 68, 85, 80, 128, 68, 68, + 85, 84, 128, 68, 68, 85, 88, 128, 68, 68, 87, 65, 128, 68, 69, 65, 68, + 128, 68, 69, 66, 73, 212, 68, 69, 69, 76, 128, 68, 69, 72, 73, 128, 68, + 69, 75, 65, 128, 68, 69, 76, 84, 128, 68, 69, 78, 71, 128, 68, 69, 83, + 73, 128, 68, 72, 65, 76, 128, 68, 72, 69, 69, 128, 68, 72, 72, 65, 128, + 68, 72, 72, 69, 128, 68, 72, 72, 73, 128, 68, 72, 72, 79, 128, 68, 72, + 72, 85, 128, 68, 72, 79, 79, 128, 68, 73, 80, 76, 201, 68, 73, 84, 84, + 207, 68, 75, 65, 82, 128, 68, 76, 69, 69, 128, 68, 79, 45, 79, 128, 68, + 79, 73, 84, 128, 68, 79, 78, 71, 128, 68, 79, 79, 82, 128, 68, 79, 82, + 85, 128, 68, 79, 86, 69, 128, 68, 82, 85, 77, 128, 68, 85, 66, 50, 128, + 68, 85, 78, 51, 128, 68, 85, 78, 52, 128, 68, 85, 82, 50, 128, 68, 89, + 69, 72, 128, 68, 90, 69, 69, 128, 69, 65, 82, 76, 217, 69, 68, 73, 78, + 128, 69, 71, 73, 82, 128, 69, 72, 87, 65, 218, 69, 74, 69, 67, 212, 69, 78, 84, 69, 210, 69, 84, 72, 69, 204, 69, 85, 45, 85, 128, 69, 85, 76, - 69, 210, 70, 65, 65, 73, 128, 70, 65, 78, 71, 128, 70, 76, 73, 80, 128, - 70, 79, 82, 77, 211, 70, 82, 65, 78, 195, 70, 85, 82, 88, 128, 70, 85, - 83, 69, 128, 70, 87, 69, 69, 128, 71, 65, 77, 65, 204, 71, 68, 65, 78, - 128, 71, 69, 65, 82, 128, 71, 71, 65, 65, 128, 71, 71, 65, 80, 128, 71, - 71, 65, 84, 128, 71, 71, 65, 88, 128, 71, 71, 69, 69, 128, 71, 71, 69, - 80, 128, 71, 71, 69, 84, 128, 71, 71, 69, 88, 128, 71, 71, 73, 69, 128, - 71, 71, 73, 84, 128, 71, 71, 73, 88, 128, 71, 71, 79, 84, 128, 71, 71, - 79, 88, 128, 71, 71, 85, 80, 128, 71, 71, 85, 82, 128, 71, 71, 85, 84, - 128, 71, 71, 85, 88, 128, 71, 71, 87, 65, 128, 71, 71, 87, 69, 128, 71, - 71, 87, 73, 128, 71, 72, 69, 69, 128, 71, 73, 66, 65, 128, 71, 73, 69, - 84, 128, 71, 73, 71, 65, 128, 71, 79, 73, 78, 199, 71, 79, 82, 84, 128, - 71, 85, 69, 72, 128, 71, 89, 65, 65, 128, 71, 89, 69, 69, 128, 72, 65, - 69, 71, 204, 72, 65, 71, 76, 128, 72, 69, 77, 80, 128, 72, 72, 69, 69, - 128, 72, 72, 87, 65, 128, 72, 73, 69, 88, 128, 72, 73, 90, 66, 128, 72, - 76, 65, 80, 128, 72, 76, 65, 84, 128, 72, 76, 65, 88, 128, 72, 76, 69, - 80, 128, 72, 76, 69, 88, 128, 72, 76, 73, 69, 128, 72, 76, 73, 80, 128, - 72, 76, 73, 84, 128, 72, 76, 73, 88, 128, 72, 76, 79, 80, 128, 72, 76, - 79, 88, 128, 72, 76, 85, 79, 128, 72, 76, 85, 80, 128, 72, 76, 85, 82, - 128, 72, 76, 85, 84, 128, 72, 76, 85, 88, 128, 72, 76, 89, 80, 128, 72, - 76, 89, 82, 128, 72, 76, 89, 84, 128, 72, 76, 89, 88, 128, 72, 77, 65, - 80, 128, 72, 77, 65, 84, 128, 72, 77, 65, 88, 128, 72, 77, 73, 69, 128, - 72, 77, 73, 80, 128, 72, 77, 73, 84, 128, 72, 77, 73, 88, 128, 72, 77, - 79, 80, 128, 72, 77, 79, 84, 128, 72, 77, 79, 88, 128, 72, 77, 85, 79, - 128, 72, 77, 85, 80, 128, 72, 77, 85, 82, 128, 72, 77, 85, 84, 128, 72, - 77, 85, 88, 128, 72, 77, 89, 80, 128, 72, 77, 89, 82, 128, 72, 77, 89, - 88, 128, 72, 78, 65, 80, 128, 72, 78, 65, 84, 128, 72, 78, 65, 88, 128, - 72, 78, 69, 80, 128, 72, 78, 69, 88, 128, 72, 78, 73, 69, 128, 72, 78, - 73, 80, 128, 72, 78, 73, 84, 128, 72, 78, 73, 88, 128, 72, 78, 79, 80, - 128, 72, 78, 79, 84, 128, 72, 78, 79, 88, 128, 72, 78, 85, 79, 128, 72, - 78, 85, 84, 128, 72, 79, 79, 78, 128, 72, 79, 84, 65, 128, 72, 80, 87, - 71, 128, 72, 85, 77, 65, 206, 72, 88, 65, 80, 128, 72, 88, 65, 84, 128, - 72, 88, 65, 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 88, 128, 72, 88, - 73, 69, 128, 72, 88, 73, 80, 128, 72, 88, 73, 88, 128, 72, 88, 79, 84, - 128, 72, 88, 79, 88, 128, 72, 90, 87, 71, 128, 72, 90, 90, 80, 128, 72, - 90, 90, 90, 128, 73, 45, 69, 85, 128, 73, 45, 89, 65, 128, 73, 68, 76, - 69, 128, 73, 70, 73, 78, 128, 73, 76, 85, 89, 128, 73, 78, 67, 72, 128, - 73, 78, 78, 69, 210, 73, 78, 78, 78, 128, 73, 78, 84, 73, 128, 73, 83, - 79, 78, 128, 73, 84, 69, 77, 128, 73, 85, 74, 65, 128, 74, 69, 82, 65, + 69, 210, 69, 90, 69, 78, 128, 70, 65, 65, 73, 128, 70, 65, 78, 71, 128, + 70, 76, 73, 80, 128, 70, 79, 82, 77, 211, 70, 82, 65, 78, 195, 70, 85, + 82, 88, 128, 70, 85, 83, 69, 128, 70, 87, 69, 69, 128, 71, 65, 77, 65, + 204, 71, 65, 77, 76, 128, 71, 65, 82, 51, 128, 71, 66, 69, 78, 128, 71, + 66, 79, 78, 128, 71, 68, 65, 78, 128, 71, 69, 65, 82, 128, 71, 69, 68, + 69, 128, 71, 71, 65, 65, 128, 71, 71, 65, 80, 128, 71, 71, 65, 84, 128, + 71, 71, 65, 88, 128, 71, 71, 69, 80, 128, 71, 71, 69, 84, 128, 71, 71, + 69, 88, 128, 71, 71, 73, 69, 128, 71, 71, 73, 84, 128, 71, 71, 73, 88, + 128, 71, 71, 79, 84, 128, 71, 71, 79, 88, 128, 71, 71, 85, 80, 128, 71, + 71, 85, 82, 128, 71, 71, 85, 84, 128, 71, 71, 85, 88, 128, 71, 71, 87, + 65, 128, 71, 71, 87, 69, 128, 71, 71, 87, 73, 128, 71, 72, 69, 69, 128, + 71, 72, 87, 65, 128, 71, 73, 66, 65, 128, 71, 73, 69, 84, 128, 71, 73, + 71, 65, 128, 71, 73, 82, 51, 128, 71, 79, 73, 78, 199, 71, 79, 78, 71, + 128, 71, 79, 82, 65, 128, 71, 79, 82, 84, 128, 71, 82, 69, 69, 206, 71, + 85, 69, 72, 128, 71, 89, 65, 65, 128, 71, 89, 69, 69, 128, 72, 65, 69, + 71, 204, 72, 65, 71, 76, 128, 72, 65, 83, 69, 210, 72, 69, 77, 80, 128, + 72, 72, 87, 65, 128, 72, 73, 68, 69, 128, 72, 73, 69, 88, 128, 72, 73, + 90, 66, 128, 72, 76, 65, 80, 128, 72, 76, 65, 84, 128, 72, 76, 65, 88, + 128, 72, 76, 69, 80, 128, 72, 76, 69, 88, 128, 72, 76, 73, 69, 128, 72, + 76, 73, 80, 128, 72, 76, 73, 84, 128, 72, 76, 73, 88, 128, 72, 76, 79, + 80, 128, 72, 76, 79, 88, 128, 72, 76, 85, 79, 128, 72, 76, 85, 80, 128, + 72, 76, 85, 82, 128, 72, 76, 85, 84, 128, 72, 76, 85, 88, 128, 72, 76, + 89, 80, 128, 72, 76, 89, 82, 128, 72, 76, 89, 84, 128, 72, 76, 89, 88, + 128, 72, 77, 65, 80, 128, 72, 77, 65, 84, 128, 72, 77, 65, 88, 128, 72, + 77, 73, 69, 128, 72, 77, 73, 80, 128, 72, 77, 73, 84, 128, 72, 77, 73, + 88, 128, 72, 77, 79, 80, 128, 72, 77, 79, 84, 128, 72, 77, 79, 88, 128, + 72, 77, 85, 79, 128, 72, 77, 85, 80, 128, 72, 77, 85, 82, 128, 72, 77, + 85, 84, 128, 72, 77, 85, 88, 128, 72, 77, 89, 80, 128, 72, 77, 89, 82, + 128, 72, 77, 89, 88, 128, 72, 78, 65, 80, 128, 72, 78, 65, 84, 128, 72, + 78, 65, 88, 128, 72, 78, 69, 80, 128, 72, 78, 69, 88, 128, 72, 78, 73, + 69, 128, 72, 78, 73, 80, 128, 72, 78, 73, 84, 128, 72, 78, 73, 88, 128, + 72, 78, 79, 80, 128, 72, 78, 79, 84, 128, 72, 78, 79, 88, 128, 72, 78, + 85, 79, 128, 72, 78, 85, 84, 128, 72, 79, 76, 65, 205, 72, 79, 79, 78, + 128, 72, 79, 84, 65, 128, 72, 80, 87, 71, 128, 72, 85, 76, 50, 128, 72, + 85, 77, 65, 206, 72, 88, 65, 80, 128, 72, 88, 65, 84, 128, 72, 88, 65, + 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 88, 128, 72, 88, 73, 69, 128, + 72, 88, 73, 80, 128, 72, 88, 73, 88, 128, 72, 88, 79, 84, 128, 72, 88, + 79, 88, 128, 72, 88, 87, 71, 128, 72, 90, 87, 71, 128, 72, 90, 90, 80, + 128, 72, 90, 90, 90, 128, 73, 45, 69, 85, 128, 73, 45, 89, 65, 128, 73, + 68, 76, 69, 128, 73, 70, 73, 78, 128, 73, 75, 65, 82, 193, 73, 76, 85, + 84, 128, 73, 76, 85, 89, 128, 73, 78, 67, 72, 128, 73, 78, 78, 69, 210, + 73, 78, 78, 78, 128, 73, 78, 84, 73, 128, 73, 83, 79, 78, 128, 73, 84, + 69, 77, 128, 73, 85, 74, 65, 128, 74, 69, 82, 65, 128, 74, 69, 82, 65, 206, 74, 74, 69, 69, 128, 74, 74, 73, 80, 128, 74, 74, 73, 84, 128, 74, 74, 73, 88, 128, 74, 74, 79, 80, 128, 74, 74, 79, 84, 128, 74, 74, 79, 88, 128, 74, 74, 85, 79, 128, 74, 74, 85, 80, 128, 74, 74, 85, 82, 128, 74, 74, 85, 88, 128, 74, 74, 89, 80, 128, 74, 74, 89, 84, 128, 74, 74, - 89, 88, 128, 74, 85, 76, 89, 128, 74, 85, 78, 69, 128, 74, 85, 79, 84, - 128, 75, 65, 65, 70, 128, 75, 65, 65, 73, 128, 75, 65, 80, 72, 128, 75, - 65, 80, 79, 128, 75, 67, 65, 76, 128, 75, 72, 65, 65, 128, 75, 72, 65, - 73, 128, 75, 72, 65, 78, 128, 75, 72, 69, 69, 128, 75, 72, 79, 78, 128, - 75, 73, 67, 75, 128, 75, 73, 69, 80, 128, 75, 73, 69, 88, 128, 75, 73, - 82, 79, 128, 75, 75, 69, 69, 128, 75, 79, 77, 66, 213, 75, 79, 84, 79, - 128, 75, 85, 79, 80, 128, 75, 85, 79, 88, 128, 75, 85, 82, 84, 128, 75, - 85, 82, 88, 128, 75, 85, 85, 72, 128, 75, 87, 69, 69, 128, 75, 88, 65, - 65, 128, 75, 88, 69, 69, 128, 75, 88, 87, 65, 128, 75, 88, 87, 69, 128, - 75, 88, 87, 73, 128, 75, 89, 65, 65, 128, 75, 89, 69, 69, 128, 76, 65, - 65, 73, 128, 76, 65, 65, 78, 128, 76, 65, 69, 86, 128, 76, 65, 77, 69, - 128, 76, 65, 77, 69, 196, 76, 68, 65, 78, 128, 76, 69, 69, 75, 128, 76, - 69, 71, 83, 128, 76, 69, 86, 69, 204, 76, 69, 90, 72, 128, 76, 72, 65, - 65, 128, 76, 72, 73, 73, 128, 76, 72, 79, 79, 128, 76, 73, 69, 84, 128, - 76, 73, 70, 69, 128, 76, 73, 84, 82, 193, 76, 79, 76, 76, 128, 76, 79, - 79, 84, 128, 76, 85, 73, 83, 128, 76, 85, 79, 84, 128, 77, 65, 65, 73, - 128, 77, 65, 82, 69, 128, 77, 69, 82, 73, 128, 77, 69, 83, 72, 128, 77, + 89, 88, 128, 74, 79, 78, 71, 128, 74, 85, 76, 89, 128, 74, 85, 78, 69, + 128, 74, 85, 78, 79, 128, 74, 85, 79, 84, 128, 75, 65, 65, 70, 128, 75, + 65, 65, 73, 128, 75, 65, 68, 52, 128, 75, 65, 77, 50, 128, 75, 65, 77, + 52, 128, 75, 65, 78, 71, 128, 75, 65, 80, 72, 128, 75, 65, 80, 79, 128, + 75, 67, 65, 76, 128, 75, 72, 65, 65, 128, 75, 72, 65, 73, 128, 75, 72, + 65, 78, 128, 75, 72, 69, 69, 128, 75, 72, 79, 78, 128, 75, 73, 67, 75, + 128, 75, 73, 69, 80, 128, 75, 73, 69, 88, 128, 75, 73, 82, 79, 128, 75, + 73, 83, 72, 128, 75, 75, 69, 69, 128, 75, 79, 77, 66, 213, 75, 79, 84, + 79, 128, 75, 80, 65, 78, 128, 75, 80, 69, 69, 128, 75, 80, 69, 78, 128, + 75, 80, 79, 79, 128, 75, 85, 78, 71, 128, 75, 85, 79, 80, 128, 75, 85, + 79, 88, 128, 75, 85, 82, 84, 128, 75, 85, 82, 88, 128, 75, 85, 85, 72, + 128, 75, 87, 69, 69, 128, 75, 88, 65, 65, 128, 75, 88, 69, 69, 128, 75, + 88, 87, 65, 128, 75, 88, 87, 69, 128, 75, 88, 87, 73, 128, 75, 89, 65, + 65, 128, 75, 89, 69, 69, 128, 76, 65, 65, 73, 128, 76, 65, 65, 78, 128, + 76, 65, 67, 65, 128, 76, 65, 69, 86, 128, 76, 65, 77, 68, 128, 76, 65, + 77, 69, 128, 76, 65, 77, 69, 196, 76, 68, 65, 78, 128, 76, 69, 69, 75, + 128, 76, 69, 71, 83, 128, 76, 69, 86, 69, 204, 76, 69, 90, 72, 128, 76, + 72, 65, 65, 128, 76, 72, 73, 73, 128, 76, 72, 79, 79, 128, 76, 73, 69, + 84, 128, 76, 73, 70, 69, 128, 76, 73, 76, 89, 128, 76, 73, 84, 82, 193, + 76, 79, 76, 76, 128, 76, 79, 79, 84, 128, 76, 85, 73, 83, 128, 76, 85, + 79, 84, 128, 77, 65, 65, 73, 128, 77, 65, 68, 85, 128, 77, 65, 82, 69, + 128, 77, 66, 69, 69, 128, 77, 69, 82, 73, 128, 77, 69, 83, 72, 128, 77, 69, 83, 73, 128, 77, 71, 65, 80, 128, 77, 71, 65, 84, 128, 77, 71, 65, - 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 88, 128, 77, 71, 73, 69, 128, - 77, 71, 79, 80, 128, 77, 71, 79, 84, 128, 77, 71, 79, 88, 128, 77, 71, - 85, 79, 128, 77, 71, 85, 80, 128, 77, 71, 85, 82, 128, 77, 71, 85, 84, - 128, 77, 71, 85, 88, 128, 77, 73, 67, 82, 207, 77, 73, 73, 78, 128, 77, - 73, 76, 76, 197, 77, 73, 77, 69, 128, 77, 73, 78, 89, 128, 77, 73, 82, - 73, 128, 77, 78, 89, 65, 205, 77, 79, 78, 84, 200, 77, 79, 85, 84, 200, - 77, 79, 86, 69, 196, 77, 85, 73, 78, 128, 77, 85, 76, 84, 201, 77, 85, - 79, 84, 128, 77, 87, 69, 69, 128, 78, 65, 65, 73, 128, 78, 65, 73, 82, - 193, 78, 65, 78, 68, 128, 78, 66, 65, 80, 128, 78, 66, 65, 84, 128, 78, - 66, 65, 88, 128, 78, 66, 73, 80, 128, 78, 66, 73, 84, 128, 78, 66, 73, - 88, 128, 78, 66, 79, 80, 128, 78, 66, 79, 84, 128, 78, 66, 79, 88, 128, - 78, 66, 85, 80, 128, 78, 66, 85, 82, 128, 78, 66, 85, 84, 128, 78, 66, - 85, 88, 128, 78, 66, 89, 80, 128, 78, 66, 89, 82, 128, 78, 66, 89, 84, - 128, 78, 66, 89, 88, 128, 78, 68, 65, 80, 128, 78, 68, 65, 84, 128, 78, - 68, 65, 88, 128, 78, 68, 69, 80, 128, 78, 68, 73, 69, 128, 78, 68, 73, - 80, 128, 78, 68, 73, 84, 128, 78, 68, 73, 88, 128, 78, 68, 79, 80, 128, - 78, 68, 79, 84, 128, 78, 68, 79, 88, 128, 78, 68, 85, 80, 128, 78, 68, - 85, 82, 128, 78, 68, 85, 84, 128, 78, 68, 85, 88, 128, 78, 71, 65, 73, - 128, 78, 71, 65, 80, 128, 78, 71, 65, 84, 128, 78, 71, 65, 88, 128, 78, - 71, 69, 80, 128, 78, 71, 69, 88, 128, 78, 71, 73, 69, 128, 78, 71, 75, - 65, 128, 78, 71, 79, 80, 128, 78, 71, 79, 84, 128, 78, 71, 79, 88, 128, - 78, 71, 85, 79, 128, 78, 74, 73, 69, 128, 78, 74, 73, 80, 128, 78, 74, - 73, 84, 128, 78, 74, 73, 88, 128, 78, 74, 79, 80, 128, 78, 74, 79, 84, + 88, 128, 77, 71, 66, 65, 128, 77, 71, 66, 69, 128, 77, 71, 66, 73, 128, + 77, 71, 66, 79, 128, 77, 71, 66, 85, 128, 77, 71, 69, 80, 128, 77, 71, + 69, 88, 128, 77, 71, 73, 69, 128, 77, 71, 79, 80, 128, 77, 71, 79, 84, + 128, 77, 71, 79, 88, 128, 77, 71, 85, 79, 128, 77, 71, 85, 80, 128, 77, + 71, 85, 82, 128, 77, 71, 85, 84, 128, 77, 71, 85, 88, 128, 77, 73, 67, + 82, 207, 77, 73, 73, 78, 128, 77, 73, 77, 69, 128, 77, 73, 78, 89, 128, + 77, 73, 82, 73, 128, 77, 78, 89, 65, 205, 77, 79, 78, 84, 200, 77, 79, + 85, 84, 200, 77, 79, 86, 69, 196, 77, 85, 73, 78, 128, 77, 85, 76, 84, + 201, 77, 85, 79, 84, 128, 77, 87, 69, 69, 128, 78, 65, 65, 73, 128, 78, + 65, 73, 82, 193, 78, 65, 77, 50, 128, 78, 65, 78, 68, 128, 78, 66, 65, + 80, 128, 78, 66, 65, 84, 128, 78, 66, 65, 88, 128, 78, 66, 73, 80, 128, + 78, 66, 73, 84, 128, 78, 66, 73, 88, 128, 78, 66, 79, 80, 128, 78, 66, + 79, 84, 128, 78, 66, 79, 88, 128, 78, 66, 85, 80, 128, 78, 66, 85, 82, + 128, 78, 66, 85, 84, 128, 78, 66, 85, 88, 128, 78, 66, 89, 80, 128, 78, + 66, 89, 82, 128, 78, 66, 89, 84, 128, 78, 66, 89, 88, 128, 78, 68, 65, + 80, 128, 78, 68, 65, 84, 128, 78, 68, 65, 88, 128, 78, 68, 69, 69, 128, + 78, 68, 73, 69, 128, 78, 68, 73, 80, 128, 78, 68, 73, 84, 128, 78, 68, + 73, 88, 128, 78, 68, 79, 79, 128, 78, 68, 79, 80, 128, 78, 68, 79, 84, + 128, 78, 68, 79, 88, 128, 78, 68, 85, 80, 128, 78, 68, 85, 82, 128, 78, + 68, 85, 84, 128, 78, 68, 85, 88, 128, 78, 71, 65, 73, 128, 78, 71, 65, + 78, 128, 78, 71, 65, 80, 128, 78, 71, 65, 84, 128, 78, 71, 65, 88, 128, + 78, 71, 69, 78, 128, 78, 71, 69, 80, 128, 78, 71, 69, 88, 128, 78, 71, + 71, 69, 128, 78, 71, 71, 73, 128, 78, 71, 71, 79, 128, 78, 71, 71, 85, + 128, 78, 71, 73, 69, 128, 78, 71, 75, 65, 128, 78, 71, 79, 78, 128, 78, + 71, 79, 80, 128, 78, 71, 79, 84, 128, 78, 71, 79, 88, 128, 78, 71, 85, + 79, 128, 78, 72, 74, 65, 128, 78, 72, 85, 69, 128, 78, 74, 69, 69, 128, + 78, 74, 73, 69, 128, 78, 74, 73, 80, 128, 78, 74, 73, 84, 128, 78, 74, + 73, 88, 128, 78, 74, 79, 79, 128, 78, 74, 79, 80, 128, 78, 74, 79, 84, 128, 78, 74, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74, 85, 80, 128, 78, 74, 85, 82, 128, 78, 74, 85, 88, 128, 78, 74, 89, 80, 128, 78, 74, 89, 82, 128, 78, 74, 89, 84, 128, 78, 74, 89, 88, 128, 78, 78, 71, 65, 128, @@ -2700,6089 +2965,7377 @@ 128, 78, 82, 69, 84, 128, 78, 82, 69, 88, 128, 78, 82, 79, 80, 128, 78, 82, 79, 88, 128, 78, 82, 85, 80, 128, 78, 82, 85, 82, 128, 78, 82, 85, 84, 128, 78, 82, 85, 88, 128, 78, 82, 89, 80, 128, 78, 82, 89, 82, 128, - 78, 82, 89, 84, 128, 78, 82, 89, 88, 128, 78, 85, 76, 76, 128, 78, 85, - 79, 80, 128, 78, 85, 82, 88, 128, 78, 85, 85, 78, 128, 78, 89, 65, 65, - 128, 78, 89, 67, 65, 128, 78, 89, 69, 69, 128, 78, 89, 69, 72, 128, 78, - 89, 73, 69, 128, 78, 89, 73, 84, 128, 78, 89, 73, 88, 128, 78, 89, 79, - 65, 128, 78, 89, 79, 84, 128, 78, 89, 79, 88, 128, 78, 89, 85, 79, 128, - 78, 89, 85, 80, 128, 78, 89, 85, 84, 128, 78, 89, 85, 88, 128, 78, 89, - 87, 65, 128, 78, 90, 65, 80, 128, 78, 90, 65, 84, 128, 78, 90, 65, 88, - 128, 78, 90, 69, 88, 128, 78, 90, 73, 69, 128, 78, 90, 73, 80, 128, 78, - 90, 73, 84, 128, 78, 90, 73, 88, 128, 78, 90, 79, 80, 128, 78, 90, 79, - 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 82, 128, 78, 90, 85, 88, 128, - 78, 90, 89, 80, 128, 78, 90, 89, 82, 128, 78, 90, 89, 84, 128, 78, 90, - 89, 88, 128, 79, 45, 69, 79, 128, 79, 45, 89, 69, 128, 79, 78, 83, 85, - 128, 79, 79, 77, 85, 128, 79, 79, 90, 69, 128, 79, 85, 78, 67, 197, 80, - 65, 65, 73, 128, 80, 65, 68, 77, 193, 80, 65, 82, 65, 128, 80, 69, 65, - 67, 197, 80, 69, 69, 80, 128, 80, 69, 78, 78, 217, 80, 69, 83, 79, 128, - 80, 72, 65, 65, 128, 80, 72, 65, 78, 128, 80, 72, 69, 69, 128, 80, 72, - 79, 65, 128, 80, 72, 87, 65, 128, 80, 73, 67, 75, 128, 80, 73, 69, 80, - 128, 80, 73, 69, 88, 128, 80, 73, 75, 79, 128, 80, 76, 79, 87, 128, 80, - 82, 65, 77, 128, 80, 82, 73, 78, 212, 80, 85, 79, 80, 128, 80, 85, 79, - 88, 128, 80, 85, 82, 88, 128, 80, 87, 69, 69, 128, 80, 89, 82, 88, 128, - 81, 65, 65, 70, 128, 81, 65, 65, 73, 128, 81, 65, 80, 72, 128, 81, 72, - 65, 65, 128, 81, 72, 69, 69, 128, 81, 72, 87, 65, 128, 81, 72, 87, 69, - 128, 81, 72, 87, 73, 128, 81, 73, 69, 80, 128, 81, 73, 69, 84, 128, 81, - 73, 69, 88, 128, 81, 79, 80, 65, 128, 81, 85, 79, 80, 128, 81, 85, 79, - 84, 128, 81, 85, 79, 88, 128, 81, 85, 82, 88, 128, 81, 85, 85, 86, 128, - 81, 87, 65, 65, 128, 81, 87, 69, 69, 128, 81, 89, 65, 65, 128, 81, 89, - 69, 69, 128, 81, 89, 82, 88, 128, 82, 65, 65, 73, 128, 82, 65, 73, 68, - 207, 82, 65, 78, 71, 197, 82, 69, 77, 85, 128, 82, 73, 67, 69, 128, 82, - 73, 69, 76, 128, 82, 73, 82, 65, 128, 82, 79, 65, 82, 128, 82, 82, 65, - 88, 128, 82, 82, 69, 72, 128, 82, 82, 69, 80, 128, 82, 82, 69, 84, 128, - 82, 82, 69, 88, 128, 82, 82, 79, 80, 128, 82, 82, 79, 84, 128, 82, 82, - 79, 88, 128, 82, 82, 85, 79, 128, 82, 82, 85, 80, 128, 82, 82, 85, 82, - 128, 82, 82, 85, 84, 128, 82, 82, 85, 88, 128, 82, 82, 89, 80, 128, 82, - 82, 89, 82, 128, 82, 82, 89, 84, 128, 82, 82, 89, 88, 128, 82, 85, 73, - 83, 128, 82, 85, 76, 69, 128, 82, 85, 79, 80, 128, 82, 85, 83, 73, 128, - 83, 65, 45, 73, 128, 83, 65, 65, 73, 128, 83, 65, 68, 69, 128, 83, 65, - 73, 76, 128, 83, 65, 76, 65, 128, 83, 65, 76, 65, 205, 83, 66, 82, 85, - 204, 83, 67, 87, 65, 128, 83, 68, 79, 78, 199, 83, 72, 65, 80, 128, 83, - 72, 65, 88, 128, 83, 72, 69, 80, 128, 83, 72, 69, 84, 128, 83, 72, 69, - 88, 128, 83, 72, 73, 73, 128, 83, 72, 73, 77, 193, 83, 72, 79, 65, 128, - 83, 72, 79, 79, 128, 83, 72, 79, 84, 128, 83, 72, 79, 88, 128, 83, 72, - 85, 79, 128, 83, 72, 85, 80, 128, 83, 72, 85, 84, 128, 83, 72, 85, 88, - 128, 83, 72, 89, 80, 128, 83, 72, 89, 82, 128, 83, 72, 89, 84, 128, 83, - 72, 89, 88, 128, 83, 73, 71, 69, 204, 83, 73, 88, 84, 217, 83, 75, 73, - 78, 128, 83, 75, 85, 76, 204, 83, 75, 87, 65, 128, 83, 78, 65, 75, 197, - 83, 80, 79, 84, 128, 83, 80, 87, 65, 128, 83, 83, 65, 65, 128, 83, 83, - 65, 80, 128, 83, 83, 65, 84, 128, 83, 83, 65, 88, 128, 83, 83, 69, 69, - 128, 83, 83, 69, 80, 128, 83, 83, 69, 88, 128, 83, 83, 73, 69, 128, 83, - 83, 73, 80, 128, 83, 83, 73, 84, 128, 83, 83, 73, 88, 128, 83, 83, 79, - 80, 128, 83, 83, 79, 84, 128, 83, 83, 79, 88, 128, 83, 83, 85, 80, 128, - 83, 83, 85, 84, 128, 83, 83, 85, 88, 128, 83, 83, 89, 80, 128, 83, 83, - 89, 82, 128, 83, 83, 89, 84, 128, 83, 83, 89, 88, 128, 83, 84, 65, 78, - 128, 83, 84, 69, 80, 128, 83, 84, 73, 76, 197, 83, 84, 73, 76, 204, 83, - 84, 87, 65, 128, 83, 85, 79, 80, 128, 83, 85, 79, 88, 128, 83, 85, 82, - 88, 128, 83, 87, 85, 78, 199, 83, 90, 65, 65, 128, 83, 90, 69, 69, 128, - 83, 90, 87, 65, 128, 83, 90, 87, 71, 128, 84, 65, 65, 73, 128, 84, 65, - 75, 69, 128, 84, 65, 76, 76, 128, 84, 69, 45, 85, 128, 84, 69, 78, 84, - 128, 84, 69, 84, 72, 128, 84, 72, 69, 72, 128, 84, 72, 69, 77, 193, 84, - 72, 69, 89, 128, 84, 72, 79, 65, 128, 84, 72, 85, 82, 211, 84, 72, 87, - 65, 128, 84, 73, 69, 80, 128, 84, 73, 69, 88, 128, 84, 73, 71, 72, 212, - 84, 73, 78, 89, 128, 84, 73, 87, 65, 218, 84, 76, 69, 69, 128, 84, 76, - 72, 85, 128, 84, 79, 84, 65, 204, 84, 82, 65, 68, 197, 84, 82, 73, 79, - 206, 84, 83, 65, 65, 128, 84, 83, 65, 68, 201, 84, 83, 87, 65, 128, 84, - 84, 65, 65, 128, 84, 84, 69, 69, 128, 84, 84, 69, 72, 128, 84, 84, 72, - 69, 128, 84, 84, 72, 73, 128, 84, 84, 83, 65, 128, 84, 84, 83, 69, 128, - 84, 84, 83, 73, 128, 84, 84, 83, 79, 128, 84, 84, 83, 85, 128, 84, 85, - 79, 80, 128, 84, 85, 79, 84, 128, 84, 85, 79, 88, 128, 84, 85, 82, 88, - 128, 84, 90, 65, 65, 128, 84, 90, 69, 69, 128, 84, 90, 79, 65, 128, 85, - 45, 65, 69, 128, 85, 65, 84, 72, 128, 86, 73, 69, 80, 128, 86, 73, 69, - 84, 128, 86, 73, 69, 88, 128, 86, 85, 82, 88, 128, 86, 89, 82, 88, 128, - 87, 65, 69, 78, 128, 87, 65, 76, 76, 128, 87, 69, 76, 76, 128, 87, 69, - 83, 84, 128, 87, 79, 82, 75, 128, 87, 82, 65, 80, 128, 87, 85, 78, 74, - 207, 87, 85, 79, 80, 128, 87, 85, 79, 88, 128, 88, 73, 82, 79, 206, 88, - 89, 65, 65, 128, 88, 89, 69, 69, 128, 88, 89, 82, 88, 128, 89, 65, 45, - 79, 128, 89, 65, 65, 73, 128, 89, 65, 66, 72, 128, 89, 65, 67, 72, 128, - 89, 65, 68, 68, 128, 89, 65, 68, 72, 128, 89, 65, 71, 78, 128, 89, 65, - 72, 72, 128, 89, 65, 82, 82, 128, 89, 65, 83, 72, 128, 89, 65, 83, 83, - 128, 89, 65, 84, 72, 128, 89, 65, 84, 84, 128, 89, 65, 90, 90, 128, 89, - 69, 82, 65, 200, 89, 73, 45, 85, 128, 89, 73, 78, 71, 128, 89, 79, 45, - 79, 128, 89, 79, 77, 79, 128, 89, 79, 82, 73, 128, 89, 85, 45, 65, 128, - 89, 85, 45, 69, 128, 89, 85, 45, 85, 128, 89, 85, 65, 78, 128, 89, 85, - 68, 72, 128, 89, 85, 79, 84, 128, 89, 85, 82, 88, 128, 89, 89, 82, 88, - 128, 90, 65, 89, 73, 206, 90, 72, 65, 65, 128, 90, 72, 65, 80, 128, 90, - 72, 65, 84, 128, 90, 72, 65, 88, 128, 90, 72, 69, 80, 128, 90, 72, 69, - 84, 128, 90, 72, 69, 88, 128, 90, 72, 79, 80, 128, 90, 72, 79, 84, 128, - 90, 72, 79, 88, 128, 90, 72, 85, 79, 128, 90, 72, 85, 80, 128, 90, 72, - 85, 82, 128, 90, 72, 85, 84, 128, 90, 72, 85, 88, 128, 90, 72, 87, 65, - 128, 90, 72, 89, 80, 128, 90, 72, 89, 82, 128, 90, 72, 89, 84, 128, 90, - 72, 89, 88, 128, 90, 85, 79, 80, 128, 90, 90, 65, 65, 128, 90, 90, 65, - 80, 128, 90, 90, 65, 84, 128, 90, 90, 65, 88, 128, 90, 90, 69, 69, 128, - 90, 90, 69, 80, 128, 90, 90, 69, 88, 128, 90, 90, 73, 69, 128, 90, 90, - 73, 80, 128, 90, 90, 73, 84, 128, 90, 90, 73, 88, 128, 90, 90, 79, 80, - 128, 90, 90, 79, 88, 128, 90, 90, 85, 80, 128, 90, 90, 85, 82, 128, 90, - 90, 85, 88, 128, 90, 90, 89, 80, 128, 90, 90, 89, 82, 128, 90, 90, 89, - 84, 128, 90, 90, 89, 88, 128, 79, 80, 69, 206, 70, 85, 76, 204, 83, 69, - 69, 206, 73, 79, 84, 193, 69, 65, 83, 212, 70, 82, 79, 205, 84, 79, 68, - 207, 70, 73, 86, 197, 72, 79, 85, 210, 84, 69, 78, 128, 83, 73, 66, 197, - 70, 79, 85, 210, 79, 86, 69, 210, 72, 79, 82, 206, 81, 85, 65, 196, 68, - 65, 83, 200, 78, 69, 79, 128, 80, 72, 73, 128, 80, 83, 73, 128, 84, 72, - 69, 200, 75, 79, 77, 201, 82, 72, 79, 128, 89, 85, 83, 128, 71, 72, 65, - 128, 79, 88, 73, 193, 82, 79, 67, 128, 66, 72, 65, 128, 83, 65, 82, 193, - 84, 65, 67, 203, 84, 65, 85, 128, 68, 79, 69, 211, 74, 72, 65, 128, 82, - 82, 65, 128, 87, 73, 68, 197, 82, 68, 69, 204, 83, 72, 73, 206, 87, 65, - 86, 217, 90, 65, 73, 206, 68, 73, 71, 193, 83, 72, 79, 128, 65, 82, 67, - 128, 75, 65, 70, 128, 76, 69, 71, 128, 83, 84, 79, 208, 84, 65, 77, 128, - 89, 65, 78, 199, 68, 90, 69, 128, 71, 72, 69, 128, 71, 79, 65, 204, 71, - 84, 69, 210, 78, 85, 78, 128, 78, 89, 79, 128, 83, 84, 65, 210, 83, 85, - 78, 128, 84, 65, 73, 204, 87, 65, 86, 197, 87, 65, 87, 128, 87, 79, 82, - 196, 90, 69, 82, 207, 65, 80, 76, 201, 66, 69, 69, 200, 67, 76, 69, 198, - 68, 74, 69, 128, 68, 75, 65, 210, 68, 89, 69, 200, 68, 90, 65, 128, 69, - 73, 69, 128, 70, 69, 72, 128, 70, 73, 83, 200, 71, 65, 78, 128, 71, 85, - 69, 200, 72, 73, 69, 128, 75, 83, 73, 128, 76, 65, 77, 197, 76, 74, 69, - 128, 77, 69, 77, 128, 77, 71, 79, 128, 77, 85, 67, 200, 77, 87, 65, 128, - 78, 65, 77, 197, 78, 65, 82, 128, 78, 74, 69, 128, 78, 79, 87, 128, 78, - 87, 65, 128, 78, 89, 69, 200, 78, 89, 73, 128, 79, 79, 85, 128, 80, 69, - 69, 128, 82, 65, 65, 128, 84, 72, 69, 206, 84, 73, 67, 203, 84, 84, 69, - 200, 89, 79, 68, 128, 66, 65, 83, 197, 66, 69, 69, 128, 66, 79, 87, 128, - 66, 90, 72, 201, 67, 79, 87, 128, 68, 79, 78, 128, 70, 76, 65, 212, 70, - 82, 69, 197, 72, 65, 69, 128, 74, 73, 76, 128, 75, 69, 72, 128, 75, 72, - 73, 128, 75, 72, 79, 128, 75, 87, 69, 128, 75, 87, 73, 128, 76, 65, 83, - 128, 76, 79, 79, 128, 76, 87, 65, 128, 77, 69, 78, 128, 77, 87, 69, 128, - 77, 87, 73, 128, 78, 65, 65, 128, 78, 89, 73, 211, 80, 65, 82, 128, 80, - 69, 72, 128, 80, 72, 79, 128, 80, 87, 69, 128, 80, 87, 73, 128, 81, 65, - 65, 128, 81, 65, 82, 128, 82, 65, 69, 128, 82, 72, 65, 128, 83, 72, 79, - 197, 83, 72, 85, 128, 83, 83, 73, 128, 83, 83, 79, 128, 83, 83, 85, 128, - 84, 72, 65, 204, 84, 79, 79, 128, 84, 87, 69, 128, 86, 69, 69, 128, 86, - 73, 78, 128, 87, 65, 69, 128, 87, 65, 76, 203, 87, 69, 79, 128, 88, 65, - 78, 128, 88, 69, 72, 128, 89, 65, 75, 128, 89, 65, 84, 128, 89, 89, 65, - 128, 90, 69, 78, 128, 65, 76, 76, 201, 65, 89, 66, 128, 65, 90, 85, 128, - 66, 65, 65, 128, 66, 69, 72, 128, 66, 69, 78, 128, 66, 79, 76, 212, 66, - 87, 65, 128, 67, 73, 80, 128, 67, 76, 85, 194, 67, 79, 79, 128, 67, 85, - 80, 128, 67, 87, 69, 128, 67, 87, 73, 128, 67, 87, 79, 128, 67, 89, 80, - 128, 67, 89, 84, 128, 68, 68, 65, 204, 68, 68, 69, 128, 68, 68, 73, 128, - 68, 68, 85, 128, 68, 69, 73, 128, 68, 74, 65, 128, 68, 76, 65, 128, 68, - 79, 71, 128, 68, 82, 85, 205, 69, 87, 69, 128, 70, 65, 65, 128, 70, 69, - 69, 128, 70, 69, 73, 128, 70, 76, 89, 128, 70, 85, 82, 128, 70, 85, 83, - 193, 70, 87, 65, 128, 71, 65, 89, 128, 71, 71, 65, 128, 71, 71, 69, 128, - 71, 71, 73, 128, 71, 71, 79, 128, 71, 71, 85, 128, 71, 72, 79, 128, 71, - 73, 77, 128, 71, 74, 69, 128, 72, 65, 82, 196, 72, 77, 79, 128, 72, 78, - 65, 128, 73, 83, 79, 206, 74, 74, 73, 128, 74, 74, 79, 128, 74, 74, 85, - 128, 74, 74, 89, 128, 75, 65, 73, 128, 75, 69, 78, 128, 75, 72, 69, 128, - 75, 73, 84, 128, 75, 74, 69, 128, 75, 75, 65, 128, 75, 79, 79, 128, 75, - 86, 65, 128, 75, 87, 79, 128, 76, 65, 65, 128, 76, 87, 69, 128, 76, 87, - 73, 128, 76, 87, 79, 128, 77, 65, 65, 128, 77, 79, 79, 128, 77, 79, 79, - 206, 77, 80, 65, 128, 77, 87, 79, 128, 78, 69, 69, 128, 78, 71, 65, 211, - 78, 73, 66, 128, 78, 79, 79, 128, 78, 82, 65, 128, 78, 87, 69, 128, 78, - 89, 85, 128, 79, 72, 77, 128, 79, 73, 76, 128, 79, 75, 84, 207, 79, 78, - 78, 128, 79, 84, 85, 128, 80, 65, 65, 128, 80, 65, 82, 212, 80, 65, 84, - 200, 80, 72, 85, 210, 80, 79, 76, 201, 80, 79, 79, 128, 80, 85, 84, 128, - 80, 87, 79, 128, 80, 89, 84, 128, 81, 65, 73, 128, 81, 73, 73, 128, 81, + 78, 82, 89, 84, 128, 78, 82, 89, 88, 128, 78, 85, 49, 49, 128, 78, 85, + 76, 76, 128, 78, 85, 79, 80, 128, 78, 85, 82, 88, 128, 78, 85, 85, 78, + 128, 78, 89, 65, 65, 128, 78, 89, 67, 65, 128, 78, 89, 69, 72, 128, 78, + 89, 73, 69, 128, 78, 89, 73, 84, 128, 78, 89, 73, 88, 128, 78, 89, 74, + 65, 128, 78, 89, 79, 65, 128, 78, 89, 79, 79, 128, 78, 89, 79, 84, 128, + 78, 89, 79, 88, 128, 78, 89, 85, 79, 128, 78, 89, 85, 80, 128, 78, 89, + 85, 84, 128, 78, 89, 85, 88, 128, 78, 89, 87, 65, 128, 78, 90, 65, 80, + 128, 78, 90, 65, 84, 128, 78, 90, 65, 88, 128, 78, 90, 69, 88, 128, 78, + 90, 73, 69, 128, 78, 90, 73, 80, 128, 78, 90, 73, 84, 128, 78, 90, 73, + 88, 128, 78, 90, 79, 80, 128, 78, 90, 79, 88, 128, 78, 90, 85, 79, 128, + 78, 90, 85, 82, 128, 78, 90, 85, 88, 128, 78, 90, 89, 80, 128, 78, 90, + 89, 82, 128, 78, 90, 89, 84, 128, 78, 90, 89, 88, 128, 79, 45, 69, 79, + 128, 79, 45, 89, 69, 128, 79, 75, 65, 82, 193, 79, 78, 83, 85, 128, 79, + 79, 77, 85, 128, 79, 79, 90, 69, 128, 79, 85, 78, 67, 197, 80, 65, 65, + 73, 128, 80, 65, 68, 77, 193, 80, 65, 78, 71, 128, 80, 65, 82, 65, 128, + 80, 69, 65, 67, 197, 80, 69, 69, 80, 128, 80, 69, 78, 78, 217, 80, 69, + 80, 69, 212, 80, 69, 83, 79, 128, 80, 72, 65, 65, 128, 80, 72, 65, 78, + 128, 80, 72, 69, 69, 128, 80, 72, 79, 65, 128, 80, 72, 87, 65, 128, 80, + 73, 67, 75, 128, 80, 73, 69, 80, 128, 80, 73, 69, 88, 128, 80, 73, 75, + 79, 128, 80, 76, 65, 75, 128, 80, 76, 65, 78, 197, 80, 76, 79, 87, 128, + 80, 76, 85, 75, 128, 80, 76, 85, 77, 128, 80, 82, 65, 77, 128, 80, 82, + 73, 78, 212, 80, 85, 78, 71, 128, 80, 85, 79, 80, 128, 80, 85, 79, 88, + 128, 80, 85, 82, 88, 128, 80, 87, 69, 69, 128, 80, 89, 82, 88, 128, 81, + 65, 65, 70, 128, 81, 65, 65, 73, 128, 81, 65, 80, 72, 128, 81, 72, 65, + 65, 128, 81, 72, 69, 69, 128, 81, 72, 87, 65, 128, 81, 72, 87, 69, 128, + 81, 72, 87, 73, 128, 81, 73, 69, 80, 128, 81, 73, 69, 84, 128, 81, 73, + 69, 88, 128, 81, 79, 80, 65, 128, 81, 85, 79, 80, 128, 81, 85, 79, 84, + 128, 81, 85, 79, 88, 128, 81, 85, 82, 88, 128, 81, 85, 85, 86, 128, 81, + 87, 65, 65, 128, 81, 87, 69, 69, 128, 81, 89, 65, 65, 128, 81, 89, 69, + 69, 128, 81, 89, 82, 88, 128, 82, 65, 65, 73, 128, 82, 65, 73, 68, 207, + 82, 65, 78, 71, 197, 82, 69, 77, 85, 128, 82, 73, 67, 69, 128, 82, 73, + 69, 76, 128, 82, 73, 82, 65, 128, 82, 79, 65, 82, 128, 82, 79, 83, 72, + 128, 82, 82, 65, 88, 128, 82, 82, 69, 72, 128, 82, 82, 69, 80, 128, 82, + 82, 69, 84, 128, 82, 82, 69, 88, 128, 82, 82, 79, 80, 128, 82, 82, 79, + 84, 128, 82, 82, 79, 88, 128, 82, 82, 85, 79, 128, 82, 82, 85, 80, 128, + 82, 82, 85, 82, 128, 82, 82, 85, 84, 128, 82, 82, 85, 88, 128, 82, 82, + 89, 80, 128, 82, 82, 89, 82, 128, 82, 82, 89, 84, 128, 82, 82, 89, 88, + 128, 82, 85, 73, 83, 128, 82, 85, 76, 69, 128, 82, 85, 79, 80, 128, 82, + 85, 83, 73, 128, 83, 65, 45, 73, 128, 83, 65, 65, 73, 128, 83, 65, 71, + 65, 128, 83, 65, 73, 76, 128, 83, 65, 76, 65, 128, 83, 65, 76, 65, 205, + 83, 65, 80, 65, 128, 83, 65, 82, 73, 128, 83, 66, 82, 85, 204, 83, 67, + 87, 65, 128, 83, 68, 79, 78, 199, 83, 69, 77, 75, 128, 83, 72, 65, 54, + 128, 83, 72, 65, 80, 128, 83, 72, 65, 82, 213, 83, 72, 65, 88, 128, 83, + 72, 69, 78, 128, 83, 72, 69, 80, 128, 83, 72, 69, 84, 128, 83, 72, 69, + 88, 128, 83, 72, 73, 73, 128, 83, 72, 73, 77, 128, 83, 72, 73, 77, 193, + 83, 72, 73, 82, 128, 83, 72, 79, 65, 128, 83, 72, 79, 84, 128, 83, 72, + 79, 88, 128, 83, 72, 85, 79, 128, 83, 72, 85, 80, 128, 83, 72, 85, 84, + 128, 83, 72, 85, 88, 128, 83, 72, 89, 65, 128, 83, 72, 89, 80, 128, 83, + 72, 89, 82, 128, 83, 72, 89, 84, 128, 83, 72, 89, 88, 128, 83, 73, 71, + 69, 204, 83, 73, 75, 50, 128, 83, 73, 75, 73, 128, 83, 73, 88, 84, 217, + 83, 75, 73, 78, 128, 83, 75, 85, 76, 204, 83, 75, 87, 65, 128, 83, 78, + 65, 75, 197, 83, 80, 79, 84, 128, 83, 80, 87, 65, 128, 83, 83, 65, 65, + 128, 83, 83, 65, 80, 128, 83, 83, 65, 84, 128, 83, 83, 65, 88, 128, 83, + 83, 69, 69, 128, 83, 83, 69, 80, 128, 83, 83, 69, 88, 128, 83, 83, 73, + 69, 128, 83, 83, 73, 80, 128, 83, 83, 73, 84, 128, 83, 83, 73, 88, 128, + 83, 83, 79, 80, 128, 83, 83, 79, 84, 128, 83, 83, 79, 88, 128, 83, 83, + 85, 80, 128, 83, 83, 85, 84, 128, 83, 83, 85, 88, 128, 83, 83, 89, 80, + 128, 83, 83, 89, 82, 128, 83, 83, 89, 84, 128, 83, 83, 89, 88, 128, 83, + 84, 65, 78, 128, 83, 84, 69, 80, 128, 83, 84, 73, 76, 197, 83, 84, 73, + 76, 204, 83, 84, 87, 65, 128, 83, 85, 68, 50, 128, 83, 85, 75, 85, 128, + 83, 85, 79, 80, 128, 83, 85, 79, 88, 128, 83, 85, 82, 57, 128, 83, 85, + 82, 88, 128, 83, 87, 85, 78, 199, 83, 90, 65, 65, 128, 83, 90, 69, 69, + 128, 83, 90, 87, 65, 128, 83, 90, 87, 71, 128, 84, 65, 65, 73, 128, 84, + 65, 75, 69, 128, 84, 65, 76, 76, 128, 84, 69, 45, 85, 128, 84, 69, 78, + 84, 128, 84, 69, 84, 72, 128, 84, 72, 69, 72, 128, 84, 72, 69, 77, 193, + 84, 72, 69, 89, 128, 84, 72, 79, 65, 128, 84, 72, 85, 82, 211, 84, 72, + 87, 65, 128, 84, 73, 69, 80, 128, 84, 73, 69, 88, 128, 84, 73, 71, 72, + 212, 84, 73, 78, 89, 128, 84, 73, 87, 65, 218, 84, 76, 69, 69, 128, 84, + 76, 72, 85, 128, 84, 79, 78, 71, 128, 84, 79, 84, 65, 204, 84, 82, 65, + 68, 197, 84, 82, 73, 79, 206, 84, 83, 65, 65, 128, 84, 83, 65, 68, 201, + 84, 83, 87, 65, 128, 84, 84, 65, 65, 128, 84, 84, 69, 69, 128, 84, 84, + 69, 72, 128, 84, 84, 72, 69, 128, 84, 84, 72, 73, 128, 84, 84, 83, 65, + 128, 84, 84, 83, 69, 128, 84, 84, 83, 73, 128, 84, 84, 83, 79, 128, 84, + 84, 83, 85, 128, 84, 85, 79, 80, 128, 84, 85, 79, 84, 128, 84, 85, 79, + 88, 128, 84, 85, 82, 88, 128, 84, 90, 65, 65, 128, 84, 90, 69, 69, 128, + 84, 90, 79, 65, 128, 85, 45, 65, 69, 128, 85, 65, 84, 72, 128, 85, 68, + 85, 71, 128, 85, 75, 65, 82, 193, 85, 77, 85, 77, 128, 85, 82, 73, 51, + 128, 85, 82, 85, 68, 193, 85, 83, 72, 50, 128, 85, 83, 72, 88, 128, 85, + 83, 83, 85, 128, 85, 85, 85, 50, 128, 85, 85, 85, 51, 128, 85, 85, 85, + 85, 128, 86, 73, 69, 80, 128, 86, 73, 69, 84, 128, 86, 73, 69, 88, 128, + 86, 73, 78, 69, 128, 86, 85, 82, 88, 128, 86, 89, 82, 88, 128, 87, 65, + 69, 78, 128, 87, 65, 76, 76, 128, 87, 69, 76, 76, 128, 87, 69, 83, 84, + 128, 87, 79, 79, 78, 128, 87, 79, 82, 75, 128, 87, 82, 65, 80, 128, 87, + 85, 78, 74, 207, 87, 85, 79, 80, 128, 87, 85, 79, 88, 128, 88, 73, 82, + 79, 206, 88, 89, 65, 65, 128, 88, 89, 69, 69, 128, 88, 89, 82, 88, 128, + 89, 65, 45, 79, 128, 89, 65, 65, 73, 128, 89, 65, 66, 72, 128, 89, 65, + 67, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, 72, 128, 89, 65, 71, 78, + 128, 89, 65, 72, 72, 128, 89, 65, 82, 82, 128, 89, 65, 83, 72, 128, 89, + 65, 83, 83, 128, 89, 65, 84, 72, 128, 89, 65, 84, 84, 128, 89, 65, 90, + 90, 128, 89, 69, 82, 65, 200, 89, 73, 45, 85, 128, 89, 73, 78, 71, 128, + 89, 79, 45, 79, 128, 89, 79, 77, 79, 128, 89, 79, 82, 73, 128, 89, 85, + 45, 65, 128, 89, 85, 45, 69, 128, 89, 85, 45, 85, 128, 89, 85, 65, 78, + 128, 89, 85, 68, 72, 128, 89, 85, 79, 84, 128, 89, 85, 82, 88, 128, 89, + 89, 82, 88, 128, 90, 65, 77, 88, 128, 90, 65, 89, 73, 206, 90, 72, 65, + 65, 128, 90, 72, 65, 80, 128, 90, 72, 65, 84, 128, 90, 72, 65, 88, 128, + 90, 72, 69, 80, 128, 90, 72, 69, 84, 128, 90, 72, 69, 88, 128, 90, 72, + 79, 79, 128, 90, 72, 79, 80, 128, 90, 72, 79, 84, 128, 90, 72, 79, 88, + 128, 90, 72, 85, 79, 128, 90, 72, 85, 80, 128, 90, 72, 85, 82, 128, 90, + 72, 85, 84, 128, 90, 72, 85, 88, 128, 90, 72, 87, 65, 128, 90, 72, 89, + 80, 128, 90, 72, 89, 82, 128, 90, 72, 89, 84, 128, 90, 72, 89, 88, 128, + 90, 73, 90, 50, 128, 90, 85, 79, 80, 128, 90, 90, 65, 65, 128, 90, 90, + 65, 80, 128, 90, 90, 65, 84, 128, 90, 90, 65, 88, 128, 90, 90, 69, 69, + 128, 90, 90, 69, 80, 128, 90, 90, 69, 88, 128, 90, 90, 73, 69, 128, 90, + 90, 73, 80, 128, 90, 90, 73, 84, 128, 90, 90, 73, 88, 128, 90, 90, 79, + 80, 128, 90, 90, 79, 88, 128, 90, 90, 85, 80, 128, 90, 90, 85, 82, 128, + 90, 90, 85, 88, 128, 90, 90, 89, 80, 128, 90, 90, 89, 82, 128, 90, 90, + 89, 84, 128, 90, 90, 89, 88, 128, 79, 80, 69, 206, 68, 73, 83, 195, 70, + 73, 86, 197, 70, 79, 85, 210, 70, 85, 76, 204, 83, 69, 69, 206, 83, 72, + 65, 206, 73, 79, 84, 193, 69, 65, 83, 212, 70, 82, 79, 205, 84, 79, 68, + 207, 84, 69, 78, 128, 72, 79, 85, 210, 89, 85, 83, 128, 83, 73, 66, 197, + 68, 65, 83, 200, 81, 85, 65, 196, 69, 90, 69, 206, 78, 69, 79, 128, 78, + 85, 78, 128, 80, 72, 73, 128, 66, 72, 65, 128, 71, 65, 78, 178, 71, 72, + 65, 128, 80, 83, 73, 128, 84, 72, 69, 200, 66, 65, 68, 128, 75, 79, 77, + 201, 82, 72, 79, 128, 79, 88, 73, 193, 82, 79, 67, 128, 84, 65, 85, 128, + 74, 72, 65, 128, 83, 65, 82, 193, 84, 65, 67, 203, 68, 79, 69, 211, 75, + 85, 82, 128, 82, 82, 65, 128, 83, 72, 73, 205, 82, 68, 69, 204, 85, 78, + 73, 212, 73, 71, 73, 128, 83, 72, 65, 179, 84, 65, 73, 204, 84, 69, 78, + 211, 87, 65, 86, 217, 87, 73, 68, 197, 71, 73, 83, 200, 83, 72, 73, 206, + 83, 72, 79, 128, 90, 65, 73, 206, 68, 73, 71, 193, 68, 90, 65, 128, 68, + 90, 69, 128, 75, 65, 70, 128, 76, 65, 76, 128, 76, 69, 71, 128, 77, 85, + 83, 200, 87, 79, 82, 196, 65, 82, 67, 128, 71, 72, 69, 128, 75, 65, 75, + 128, 78, 89, 79, 128, 83, 84, 79, 208, 84, 65, 77, 128, 87, 65, 86, 197, + 89, 65, 78, 199, 89, 65, 84, 128, 90, 69, 82, 207, 68, 85, 78, 179, 71, + 73, 82, 179, 71, 79, 65, 204, 71, 84, 69, 210, 71, 85, 78, 213, 72, 85, + 66, 178, 77, 69, 77, 128, 78, 65, 71, 193, 78, 74, 69, 128, 78, 89, 73, + 128, 80, 65, 80, 128, 82, 72, 65, 128, 83, 72, 73, 210, 83, 84, 65, 210, + 83, 85, 78, 128, 84, 87, 69, 128, 87, 65, 87, 128, 89, 79, 68, 128, 65, + 80, 76, 201, 66, 66, 65, 128, 66, 69, 69, 200, 66, 79, 87, 128, 67, 76, + 69, 198, 68, 74, 69, 128, 68, 75, 65, 210, 68, 89, 69, 200, 69, 73, 69, + 128, 70, 69, 72, 128, 70, 73, 83, 200, 71, 73, 52, 128, 71, 85, 69, 200, + 72, 73, 69, 128, 73, 68, 73, 205, 75, 83, 73, 128, 75, 85, 51, 128, 76, + 65, 77, 197, 76, 74, 69, 128, 76, 79, 79, 128, 77, 71, 79, 128, 77, 85, + 67, 200, 77, 87, 65, 128, 78, 65, 77, 197, 78, 65, 82, 128, 78, 79, 87, + 128, 78, 87, 65, 128, 78, 89, 69, 200, 78, 89, 73, 211, 79, 79, 85, 128, + 80, 72, 79, 128, 82, 65, 65, 128, 83, 65, 82, 128, 83, 71, 65, 215, 83, + 79, 79, 128, 84, 65, 71, 128, 84, 72, 69, 206, 84, 73, 67, 203, 84, 79, + 79, 128, 84, 84, 69, 200, 84, 85, 71, 178, 84, 85, 82, 128, 86, 69, 69, + 128, 86, 69, 82, 217, 89, 69, 82, 128, 89, 69, 82, 213, 66, 65, 76, 128, + 66, 65, 83, 197, 66, 90, 72, 201, 67, 79, 79, 128, 67, 79, 87, 128, 67, + 87, 73, 128, 68, 79, 78, 128, 68, 85, 66, 128, 68, 87, 69, 128, 70, 65, + 65, 128, 70, 69, 69, 128, 70, 76, 65, 212, 70, 82, 69, 197, 72, 65, 69, + 128, 74, 73, 76, 128, 74, 79, 78, 193, 75, 69, 72, 128, 75, 72, 73, 128, + 75, 72, 79, 128, 75, 73, 68, 128, 75, 75, 65, 128, 75, 79, 79, 128, 75, + 87, 69, 128, 75, 87, 73, 128, 76, 85, 50, 128, 76, 85, 76, 128, 76, 87, + 65, 128, 77, 69, 78, 128, 77, 79, 79, 128, 77, 79, 79, 206, 77, 87, 69, + 128, 77, 87, 73, 128, 78, 65, 65, 128, 78, 69, 69, 128, 78, 79, 79, 128, + 78, 89, 85, 128, 80, 65, 82, 128, 80, 69, 72, 128, 80, 87, 69, 128, 80, + 87, 73, 128, 81, 65, 65, 128, 81, 65, 82, 128, 82, 65, 69, 128, 82, 69, + 80, 193, 83, 72, 79, 197, 83, 83, 73, 128, 83, 83, 79, 128, 83, 85, 82, + 128, 84, 65, 66, 128, 84, 69, 84, 128, 84, 72, 65, 204, 85, 77, 85, 205, + 86, 65, 86, 128, 86, 73, 78, 128, 87, 65, 69, 128, 87, 65, 76, 203, 87, + 65, 85, 128, 87, 69, 79, 128, 88, 65, 78, 128, 88, 69, 72, 128, 89, 65, + 75, 128, 89, 89, 65, 128, 90, 72, 73, 128, 90, 72, 79, 128, 90, 72, 85, + 128, 65, 76, 76, 201, 65, 83, 72, 178, 65, 88, 69, 128, 65, 89, 66, 128, + 65, 90, 85, 128, 66, 65, 65, 128, 66, 65, 67, 203, 66, 65, 78, 178, 66, + 66, 69, 128, 66, 69, 72, 128, 66, 69, 84, 128, 66, 72, 79, 128, 66, 79, + 76, 212, 66, 82, 68, 193, 66, 87, 65, 128, 67, 65, 84, 128, 67, 73, 80, + 128, 67, 76, 85, 194, 67, 79, 78, 128, 67, 85, 66, 197, 67, 85, 80, 128, + 67, 87, 69, 128, 67, 87, 79, 128, 67, 89, 80, 128, 67, 89, 84, 128, 68, + 65, 78, 199, 68, 65, 82, 128, 68, 65, 84, 197, 68, 68, 65, 204, 68, 68, + 69, 128, 68, 68, 73, 128, 68, 68, 85, 128, 68, 69, 73, 128, 68, 73, 66, + 128, 68, 74, 65, 128, 68, 76, 65, 128, 68, 79, 71, 128, 68, 82, 85, 205, + 68, 85, 78, 128, 69, 82, 82, 128, 69, 87, 69, 128, 70, 69, 73, 128, 70, + 76, 89, 128, 70, 79, 79, 128, 70, 85, 82, 128, 70, 85, 83, 193, 70, 87, + 65, 128, 71, 65, 68, 128, 71, 65, 89, 128, 71, 72, 79, 128, 71, 73, 77, + 128, 71, 73, 82, 178, 71, 74, 69, 128, 72, 65, 82, 196, 72, 76, 65, 128, + 72, 77, 79, 128, 72, 78, 65, 128, 73, 77, 73, 206, 73, 83, 79, 206, 74, + 74, 65, 128, 74, 74, 73, 128, 74, 74, 79, 128, 74, 74, 85, 128, 74, 74, + 89, 128, 75, 65, 50, 128, 75, 65, 66, 193, 75, 65, 73, 128, 75, 69, 78, + 128, 75, 72, 69, 128, 75, 73, 84, 128, 75, 74, 69, 128, 75, 80, 65, 128, + 75, 85, 76, 128, 75, 86, 65, 128, 75, 87, 79, 128, 76, 73, 68, 128, 76, + 87, 69, 128, 76, 87, 73, 128, 76, 87, 79, 128, 77, 65, 65, 128, 77, 66, + 65, 128, 77, 68, 85, 206, 77, 80, 65, 128, 77, 85, 71, 128, 77, 87, 79, + 128, 78, 71, 65, 211, 78, 73, 66, 128, 78, 74, 73, 128, 78, 74, 79, 128, + 78, 74, 85, 128, 78, 82, 65, 128, 78, 87, 69, 128, 78, 89, 69, 128, 79, + 72, 77, 128, 79, 73, 76, 128, 79, 75, 84, 207, 79, 78, 78, 128, 79, 84, + 85, 128, 80, 65, 65, 128, 80, 65, 82, 212, 80, 65, 84, 200, 80, 72, 85, + 210, 80, 76, 65, 128, 80, 79, 76, 201, 80, 85, 84, 128, 80, 87, 79, 128, + 80, 89, 84, 128, 81, 65, 73, 128, 81, 73, 73, 128, 81, 79, 70, 128, 81, 79, 84, 128, 81, 85, 79, 128, 81, 85, 85, 128, 82, 71, 89, 193, 82, 78, - 65, 205, 82, 82, 69, 200, 82, 82, 79, 128, 83, 69, 72, 128, 83, 72, 65, - 196, 83, 72, 79, 199, 83, 72, 89, 128, 83, 73, 79, 211, 83, 74, 69, 128, - 83, 79, 79, 128, 83, 79, 85, 128, 83, 83, 69, 128, 83, 87, 69, 128, 83, - 87, 73, 128, 83, 87, 79, 128, 84, 65, 71, 128, 84, 65, 84, 128, 84, 65, - 86, 128, 84, 69, 84, 128, 84, 74, 69, 128, 84, 76, 65, 128, 84, 76, 73, - 128, 84, 76, 85, 128, 84, 79, 84, 128, 84, 82, 69, 197, 84, 84, 73, 128, - 84, 87, 73, 128, 85, 83, 69, 196, 86, 65, 86, 128, 86, 69, 80, 128, 86, - 69, 82, 217, 86, 69, 87, 128, 86, 79, 85, 128, 86, 85, 82, 128, 87, 65, - 85, 128, 88, 86, 65, 128, 89, 65, 74, 128, 89, 65, 81, 128, 89, 65, 90, - 128, 89, 69, 65, 210, 89, 69, 82, 213, 89, 70, 69, 206, 89, 79, 79, 128, - 89, 87, 69, 128, 89, 87, 73, 128, 89, 87, 79, 128, 90, 72, 73, 128, 90, - 72, 79, 128, 90, 72, 85, 128, 90, 79, 84, 128, 90, 90, 65, 128, 90, 90, - 69, 128, 90, 90, 73, 128, 90, 90, 85, 128, 65, 65, 89, 128, 65, 68, 65, - 203, 65, 77, 66, 193, 65, 82, 67, 200, 65, 84, 79, 205, 65, 85, 69, 128, - 65, 87, 69, 128, 65, 88, 69, 128, 65, 89, 69, 210, 66, 48, 48, 177, 66, - 48, 48, 178, 66, 48, 48, 179, 66, 48, 48, 180, 66, 48, 48, 181, 66, 48, - 48, 182, 66, 48, 48, 183, 66, 48, 48, 184, 66, 48, 48, 185, 66, 48, 49, - 176, 66, 48, 49, 177, 66, 48, 49, 178, 66, 48, 49, 179, 66, 48, 49, 180, - 66, 48, 49, 181, 66, 48, 49, 182, 66, 48, 49, 183, 66, 48, 50, 176, 66, - 48, 50, 177, 66, 48, 50, 179, 66, 48, 50, 180, 66, 48, 50, 181, 66, 48, - 50, 182, 66, 48, 50, 183, 66, 48, 50, 184, 66, 48, 50, 185, 66, 48, 51, - 176, 66, 48, 51, 177, 66, 48, 51, 178, 66, 48, 51, 179, 66, 48, 51, 182, - 66, 48, 51, 183, 66, 48, 51, 184, 66, 48, 51, 185, 66, 48, 52, 176, 66, - 48, 52, 177, 66, 48, 52, 178, 66, 48, 52, 179, 66, 48, 52, 180, 66, 48, - 52, 181, 66, 48, 52, 182, 66, 48, 52, 184, 66, 48, 53, 176, 66, 48, 53, - 177, 66, 48, 53, 178, 66, 48, 53, 179, 66, 48, 53, 180, 66, 48, 53, 181, - 66, 48, 53, 183, 66, 48, 53, 184, 66, 48, 53, 185, 66, 48, 54, 176, 66, - 48, 54, 177, 66, 48, 54, 178, 66, 48, 54, 181, 66, 48, 54, 182, 66, 48, - 54, 183, 66, 48, 54, 184, 66, 48, 54, 185, 66, 48, 55, 176, 66, 48, 55, - 177, 66, 48, 55, 178, 66, 48, 55, 179, 66, 48, 55, 180, 66, 48, 55, 181, - 66, 48, 55, 182, 66, 48, 55, 183, 66, 48, 55, 184, 66, 48, 56, 176, 66, - 48, 56, 177, 66, 48, 56, 181, 66, 48, 56, 183, 66, 48, 57, 176, 66, 48, - 57, 177, 66, 49, 48, 176, 66, 49, 48, 178, 66, 49, 48, 180, 66, 49, 48, - 181, 66, 49, 50, 176, 66, 49, 50, 177, 66, 49, 50, 178, 66, 49, 50, 179, - 66, 49, 50, 181, 66, 49, 50, 183, 66, 49, 50, 184, 66, 49, 51, 176, 66, - 49, 51, 177, 66, 49, 51, 179, 66, 49, 51, 181, 66, 49, 52, 176, 66, 49, - 52, 177, 66, 49, 52, 181, 66, 49, 53, 177, 66, 49, 53, 182, 66, 49, 53, - 185, 66, 49, 54, 178, 66, 49, 54, 179, 66, 49, 55, 179, 66, 49, 55, 182, - 66, 49, 57, 177, 66, 50, 50, 176, 66, 50, 50, 181, 66, 50, 51, 176, 66, - 50, 51, 177, 66, 50, 51, 179, 66, 50, 52, 176, 66, 50, 52, 177, 66, 50, - 52, 178, 66, 50, 52, 179, 66, 50, 52, 183, 66, 50, 53, 180, 66, 65, 78, - 203, 66, 66, 65, 128, 66, 66, 69, 128, 66, 66, 73, 128, 66, 66, 79, 128, + 65, 205, 82, 79, 79, 128, 82, 82, 69, 200, 82, 82, 79, 128, 83, 69, 72, + 128, 83, 71, 65, 194, 83, 72, 65, 196, 83, 72, 73, 196, 83, 72, 79, 199, + 83, 72, 89, 128, 83, 73, 71, 128, 83, 73, 71, 180, 83, 73, 79, 211, 83, + 74, 69, 128, 83, 79, 85, 128, 83, 87, 73, 128, 83, 87, 79, 128, 84, 65, + 84, 128, 84, 65, 86, 128, 84, 73, 82, 128, 84, 74, 69, 128, 84, 76, 65, + 128, 84, 76, 73, 128, 84, 76, 85, 128, 84, 79, 84, 128, 84, 82, 69, 197, + 84, 84, 73, 128, 84, 85, 75, 128, 84, 85, 77, 128, 84, 87, 73, 128, 85, + 83, 69, 196, 86, 69, 80, 128, 86, 69, 87, 128, 86, 79, 85, 128, 86, 85, + 82, 128, 88, 86, 65, 128, 89, 65, 74, 128, 89, 65, 81, 128, 89, 65, 90, + 128, 89, 69, 65, 210, 89, 70, 69, 206, 89, 87, 69, 128, 89, 87, 73, 128, + 89, 87, 79, 128, 90, 73, 68, 193, 90, 79, 79, 128, 90, 79, 84, 128, 90, + 90, 65, 128, 90, 90, 73, 128, 90, 90, 85, 128, 65, 65, 74, 128, 65, 65, + 75, 128, 65, 65, 77, 128, 65, 65, 87, 128, 65, 65, 89, 128, 65, 68, 65, + 203, 65, 68, 69, 199, 65, 77, 65, 210, 65, 77, 66, 193, 65, 82, 65, 196, + 65, 82, 67, 200, 65, 84, 79, 205, 65, 85, 69, 128, 65, 87, 69, 128, 65, + 89, 69, 210, 66, 48, 48, 177, 66, 48, 48, 178, 66, 48, 48, 179, 66, 48, + 48, 180, 66, 48, 48, 181, 66, 48, 48, 182, 66, 48, 48, 183, 66, 48, 48, + 184, 66, 48, 48, 185, 66, 48, 49, 176, 66, 48, 49, 177, 66, 48, 49, 178, + 66, 48, 49, 179, 66, 48, 49, 180, 66, 48, 49, 181, 66, 48, 49, 182, 66, + 48, 49, 183, 66, 48, 50, 176, 66, 48, 50, 177, 66, 48, 50, 179, 66, 48, + 50, 180, 66, 48, 50, 181, 66, 48, 50, 182, 66, 48, 50, 183, 66, 48, 50, + 184, 66, 48, 50, 185, 66, 48, 51, 176, 66, 48, 51, 177, 66, 48, 51, 178, + 66, 48, 51, 179, 66, 48, 51, 182, 66, 48, 51, 183, 66, 48, 51, 184, 66, + 48, 51, 185, 66, 48, 52, 176, 66, 48, 52, 177, 66, 48, 52, 178, 66, 48, + 52, 179, 66, 48, 52, 180, 66, 48, 52, 181, 66, 48, 52, 182, 66, 48, 52, + 184, 66, 48, 53, 176, 66, 48, 53, 177, 66, 48, 53, 178, 66, 48, 53, 179, + 66, 48, 53, 180, 66, 48, 53, 181, 66, 48, 53, 183, 66, 48, 53, 184, 66, + 48, 53, 185, 66, 48, 54, 176, 66, 48, 54, 177, 66, 48, 54, 178, 66, 48, + 54, 181, 66, 48, 54, 182, 66, 48, 54, 183, 66, 48, 54, 184, 66, 48, 54, + 185, 66, 48, 55, 176, 66, 48, 55, 177, 66, 48, 55, 178, 66, 48, 55, 179, + 66, 48, 55, 180, 66, 48, 55, 181, 66, 48, 55, 182, 66, 48, 55, 183, 66, + 48, 55, 184, 66, 48, 56, 176, 66, 48, 56, 177, 66, 48, 56, 181, 66, 48, + 56, 183, 66, 48, 57, 176, 66, 48, 57, 177, 66, 49, 48, 176, 66, 49, 48, + 178, 66, 49, 48, 180, 66, 49, 48, 181, 66, 49, 50, 176, 66, 49, 50, 177, + 66, 49, 50, 178, 66, 49, 50, 179, 66, 49, 50, 181, 66, 49, 50, 183, 66, + 49, 50, 184, 66, 49, 51, 176, 66, 49, 51, 177, 66, 49, 51, 179, 66, 49, + 51, 181, 66, 49, 52, 176, 66, 49, 52, 177, 66, 49, 52, 181, 66, 49, 53, + 177, 66, 49, 53, 182, 66, 49, 53, 185, 66, 49, 54, 178, 66, 49, 54, 179, + 66, 49, 55, 179, 66, 49, 55, 182, 66, 49, 57, 177, 66, 50, 50, 176, 66, + 50, 50, 181, 66, 50, 51, 176, 66, 50, 51, 177, 66, 50, 51, 179, 66, 50, + 52, 176, 66, 50, 52, 177, 66, 50, 52, 178, 66, 50, 52, 179, 66, 50, 52, + 183, 66, 50, 53, 180, 66, 65, 78, 203, 66, 66, 73, 128, 66, 66, 79, 128, 66, 66, 85, 128, 66, 66, 89, 128, 66, 67, 65, 196, 66, 69, 76, 204, 66, - 69, 76, 212, 66, 69, 84, 128, 66, 69, 84, 193, 66, 72, 79, 128, 66, 73, - 66, 128, 66, 73, 71, 128, 66, 75, 65, 173, 66, 79, 65, 128, 66, 87, 69, - 128, 66, 87, 73, 128, 66, 88, 71, 128, 67, 65, 68, 193, 67, 65, 78, 199, - 67, 65, 82, 197, 67, 65, 84, 128, 67, 65, 88, 128, 67, 67, 65, 128, 67, - 67, 69, 128, 67, 67, 73, 128, 67, 67, 79, 128, 67, 67, 85, 128, 67, 69, - 68, 201, 67, 69, 78, 128, 67, 69, 80, 128, 67, 69, 88, 128, 67, 72, 65, - 196, 67, 72, 69, 206, 67, 73, 69, 128, 67, 73, 73, 128, 67, 73, 84, 128, - 67, 73, 88, 128, 67, 79, 65, 128, 67, 79, 80, 128, 67, 79, 84, 128, 67, - 79, 88, 128, 67, 85, 66, 197, 67, 85, 79, 128, 67, 85, 82, 128, 67, 85, + 69, 76, 212, 66, 69, 84, 193, 66, 72, 69, 128, 66, 72, 73, 128, 66, 72, + 85, 128, 66, 73, 66, 128, 66, 73, 71, 128, 66, 75, 65, 173, 66, 79, 65, + 128, 66, 85, 82, 213, 66, 87, 69, 128, 66, 87, 73, 128, 66, 88, 71, 128, + 67, 65, 68, 193, 67, 65, 78, 199, 67, 65, 82, 197, 67, 65, 88, 128, 67, + 67, 65, 128, 67, 67, 69, 128, 67, 67, 73, 128, 67, 67, 79, 128, 67, 67, + 85, 128, 67, 69, 68, 201, 67, 69, 78, 128, 67, 69, 80, 128, 67, 69, 88, + 128, 67, 72, 65, 196, 67, 72, 69, 206, 67, 73, 69, 128, 67, 73, 73, 128, + 67, 73, 84, 128, 67, 73, 88, 128, 67, 79, 65, 128, 67, 79, 80, 128, 67, + 79, 84, 128, 67, 79, 88, 128, 67, 85, 79, 128, 67, 85, 82, 128, 67, 85, 84, 128, 67, 85, 88, 128, 67, 89, 65, 128, 67, 89, 82, 128, 67, 89, 88, 128, 68, 65, 68, 128, 68, 65, 69, 199, 68, 65, 77, 208, 68, 65, 82, 203, - 68, 65, 84, 197, 68, 69, 75, 128, 68, 69, 90, 200, 68, 76, 73, 128, 68, + 68, 69, 75, 128, 68, 69, 90, 200, 68, 72, 73, 128, 68, 76, 73, 128, 68, 76, 79, 128, 68, 76, 85, 128, 68, 82, 73, 204, 68, 82, 89, 128, 68, 85, - 76, 128, 68, 87, 69, 128, 68, 87, 79, 128, 68, 89, 79, 128, 68, 90, 73, - 128, 68, 90, 79, 128, 68, 90, 85, 128, 69, 71, 71, 128, 69, 73, 83, 128, - 69, 75, 83, 128, 69, 78, 78, 128, 69, 78, 79, 211, 69, 79, 72, 128, 69, - 82, 71, 128, 69, 82, 82, 128, 69, 85, 82, 207, 69, 88, 79, 128, 70, 65, - 78, 128, 70, 65, 80, 128, 70, 65, 88, 128, 70, 69, 69, 196, 70, 69, 72, - 213, 70, 69, 78, 199, 70, 69, 79, 200, 70, 70, 73, 128, 70, 70, 76, 128, - 70, 73, 73, 128, 70, 73, 76, 197, 70, 73, 76, 204, 70, 73, 80, 128, 70, - 73, 84, 128, 70, 73, 88, 128, 70, 79, 79, 128, 70, 79, 80, 128, 70, 79, - 88, 128, 70, 85, 80, 128, 70, 85, 84, 128, 70, 85, 88, 128, 70, 87, 69, - 128, 70, 87, 73, 128, 70, 89, 65, 128, 70, 89, 80, 128, 70, 89, 84, 128, - 70, 89, 88, 128, 71, 65, 70, 128, 71, 65, 71, 128, 71, 65, 76, 128, 71, - 65, 82, 128, 71, 67, 65, 206, 71, 69, 66, 207, 71, 69, 84, 193, 71, 72, - 73, 128, 71, 72, 85, 128, 71, 72, 90, 128, 71, 73, 80, 128, 71, 79, 65, - 128, 71, 80, 65, 128, 71, 83, 85, 205, 71, 89, 65, 128, 71, 89, 69, 128, - 71, 89, 70, 213, 71, 89, 73, 128, 71, 89, 79, 128, 71, 89, 85, 128, 72, - 69, 76, 205, 72, 69, 78, 199, 72, 72, 69, 128, 72, 72, 73, 128, 72, 72, - 79, 128, 72, 72, 85, 128, 72, 76, 65, 128, 72, 76, 69, 128, 72, 76, 73, - 128, 72, 76, 79, 128, 72, 76, 85, 128, 72, 76, 89, 128, 72, 77, 73, 128, - 72, 77, 85, 128, 72, 77, 89, 128, 72, 78, 69, 128, 72, 78, 73, 128, 72, - 80, 65, 128, 72, 87, 85, 128, 72, 88, 65, 128, 72, 88, 69, 128, 72, 88, - 73, 128, 72, 88, 79, 128, 72, 90, 71, 128, 72, 90, 84, 128, 72, 90, 87, - 128, 72, 90, 90, 128, 73, 45, 65, 128, 73, 45, 79, 128, 73, 79, 82, 128, - 74, 65, 65, 128, 74, 65, 82, 128, 74, 69, 72, 128, 74, 69, 82, 128, 74, - 72, 79, 128, 74, 73, 65, 128, 74, 74, 65, 128, 74, 74, 69, 128, 74, 79, - 65, 128, 74, 79, 89, 128, 74, 87, 65, 128, 75, 65, 72, 128, 75, 65, 80, - 128, 75, 65, 85, 206, 75, 65, 88, 128, 75, 69, 80, 128, 75, 69, 88, 128, - 75, 69, 89, 128, 75, 72, 90, 128, 75, 73, 69, 128, 75, 73, 72, 128, 75, - 73, 73, 128, 75, 73, 80, 128, 75, 73, 88, 128, 75, 75, 69, 128, 75, 75, - 73, 128, 75, 75, 79, 128, 75, 75, 85, 128, 75, 79, 65, 128, 75, 79, 72, - 128, 75, 79, 80, 128, 75, 79, 84, 128, 75, 79, 88, 128, 75, 80, 65, 128, - 75, 82, 65, 128, 75, 85, 79, 128, 75, 85, 80, 128, 75, 85, 82, 128, 75, - 85, 84, 128, 75, 85, 88, 128, 75, 88, 65, 128, 75, 88, 69, 128, 75, 88, - 73, 128, 75, 88, 79, 128, 75, 88, 85, 128, 75, 89, 65, 128, 75, 89, 69, - 128, 75, 89, 73, 128, 75, 89, 79, 128, 75, 89, 85, 128, 76, 65, 69, 128, - 76, 65, 71, 213, 76, 65, 83, 212, 76, 65, 90, 217, 76, 69, 79, 128, 76, - 72, 65, 199, 76, 73, 68, 128, 76, 73, 73, 128, 76, 73, 78, 203, 76, 73, - 82, 193, 76, 79, 65, 128, 76, 79, 71, 128, 76, 79, 71, 210, 76, 79, 84, - 128, 76, 89, 89, 128, 77, 65, 83, 213, 77, 65, 89, 128, 77, 67, 72, 213, - 77, 68, 85, 206, 77, 69, 84, 193, 77, 69, 88, 128, 77, 71, 65, 128, 77, - 71, 69, 128, 77, 71, 85, 128, 77, 72, 90, 128, 77, 73, 73, 128, 77, 73, - 76, 128, 77, 73, 76, 204, 77, 73, 77, 128, 77, 79, 65, 128, 77, 79, 76, - 128, 77, 89, 65, 128, 77, 89, 84, 128, 78, 65, 71, 128, 78, 65, 79, 211, - 78, 66, 65, 128, 78, 66, 73, 128, 78, 66, 79, 128, 78, 66, 85, 128, 78, - 66, 89, 128, 78, 68, 69, 128, 78, 69, 78, 128, 78, 69, 84, 128, 78, 69, - 88, 212, 78, 71, 71, 128, 78, 74, 73, 128, 78, 74, 79, 128, 78, 74, 85, - 128, 78, 74, 89, 128, 78, 78, 71, 128, 78, 78, 79, 128, 78, 79, 65, 128, - 78, 82, 69, 128, 78, 82, 79, 128, 78, 82, 85, 128, 78, 82, 89, 128, 78, - 85, 76, 204, 78, 85, 80, 128, 78, 85, 82, 128, 78, 85, 88, 128, 78, 89, - 69, 128, 78, 90, 65, 128, 78, 90, 73, 128, 78, 90, 85, 128, 78, 90, 89, - 128, 79, 45, 69, 128, 79, 65, 75, 128, 79, 65, 89, 128, 79, 66, 79, 204, - 80, 65, 80, 128, 80, 65, 84, 128, 80, 65, 88, 128, 80, 72, 85, 128, 80, - 73, 69, 128, 80, 73, 71, 128, 80, 73, 80, 128, 80, 73, 84, 128, 80, 73, - 88, 128, 80, 76, 65, 128, 80, 79, 65, 128, 80, 79, 80, 128, 80, 79, 88, - 128, 80, 80, 77, 128, 80, 85, 50, 128, 80, 85, 79, 128, 80, 85, 80, 128, - 80, 85, 82, 128, 80, 85, 88, 128, 80, 89, 80, 128, 80, 89, 82, 128, 80, - 89, 88, 128, 81, 65, 76, 193, 81, 65, 81, 128, 81, 65, 85, 128, 81, 69, - 69, 128, 81, 72, 65, 128, 81, 72, 69, 128, 81, 72, 73, 128, 81, 72, 79, - 128, 81, 72, 85, 128, 81, 73, 69, 128, 81, 73, 80, 128, 81, 73, 84, 128, - 81, 73, 88, 128, 81, 79, 65, 128, 81, 79, 70, 128, 81, 79, 79, 128, 81, - 79, 80, 128, 81, 79, 88, 128, 81, 85, 65, 128, 81, 85, 69, 128, 81, 85, - 73, 128, 81, 85, 75, 128, 81, 85, 80, 128, 81, 85, 82, 128, 81, 85, 84, - 128, 81, 85, 86, 128, 81, 85, 88, 128, 81, 87, 65, 128, 81, 87, 69, 128, - 81, 87, 73, 128, 81, 89, 65, 128, 81, 89, 69, 128, 81, 89, 73, 128, 81, - 89, 79, 128, 81, 89, 80, 128, 81, 89, 82, 128, 81, 89, 84, 128, 81, 89, - 85, 128, 81, 89, 88, 128, 82, 65, 50, 128, 82, 65, 51, 128, 82, 65, 68, - 128, 82, 65, 68, 201, 82, 65, 73, 206, 82, 65, 77, 211, 82, 69, 73, 196, - 82, 73, 80, 128, 82, 74, 69, 128, 82, 74, 69, 211, 82, 79, 65, 128, 82, - 79, 79, 128, 82, 82, 69, 128, 82, 82, 85, 128, 82, 82, 89, 128, 82, 85, - 65, 128, 82, 85, 78, 128, 82, 87, 65, 128, 82, 89, 65, 128, 82, 89, 89, - 128, 83, 45, 87, 128, 83, 65, 68, 128, 83, 65, 89, 128, 83, 66, 85, 194, - 83, 71, 65, 194, 83, 71, 79, 210, 83, 71, 82, 193, 83, 73, 73, 128, 83, - 73, 78, 197, 83, 75, 87, 128, 83, 78, 65, 208, 83, 79, 65, 128, 83, 79, - 87, 128, 83, 83, 89, 128, 83, 85, 65, 128, 83, 85, 79, 128, 83, 85, 82, - 128, 83, 90, 65, 128, 83, 90, 69, 128, 83, 90, 73, 128, 83, 90, 79, 128, - 83, 90, 85, 128, 84, 65, 50, 128, 84, 65, 79, 128, 84, 65, 80, 128, 84, - 65, 80, 197, 84, 65, 87, 128, 84, 65, 88, 128, 84, 69, 83, 200, 84, 69, - 84, 200, 84, 69, 88, 128, 84, 72, 69, 211, 84, 72, 73, 206, 84, 72, 90, - 128, 84, 73, 73, 128, 84, 73, 80, 128, 84, 73, 84, 128, 84, 73, 88, 128, - 84, 76, 86, 128, 84, 79, 65, 128, 84, 79, 88, 128, 84, 82, 73, 128, 84, - 83, 86, 128, 84, 84, 72, 128, 84, 84, 85, 128, 84, 85, 79, 128, 84, 85, - 80, 128, 84, 85, 82, 128, 84, 85, 84, 128, 84, 85, 88, 128, 84, 89, 65, - 128, 84, 89, 69, 128, 84, 89, 73, 128, 84, 89, 79, 128, 84, 90, 65, 128, - 84, 90, 69, 128, 84, 90, 73, 128, 84, 90, 79, 128, 84, 90, 85, 128, 85, - 69, 69, 128, 85, 69, 89, 128, 85, 78, 68, 207, 85, 78, 73, 212, 85, 82, - 85, 218, 86, 65, 65, 128, 86, 65, 80, 128, 86, 65, 84, 128, 86, 65, 88, - 128, 86, 69, 72, 128, 86, 69, 88, 128, 86, 73, 69, 128, 86, 73, 80, 128, - 86, 73, 84, 128, 86, 73, 88, 128, 86, 79, 73, 196, 86, 79, 80, 128, 86, - 79, 84, 128, 86, 79, 87, 128, 86, 79, 88, 128, 86, 85, 80, 128, 86, 85, - 84, 128, 86, 85, 88, 128, 86, 87, 65, 128, 86, 89, 80, 128, 86, 89, 82, - 128, 86, 89, 84, 128, 86, 89, 88, 128, 87, 65, 80, 128, 87, 65, 84, 128, - 87, 65, 88, 128, 87, 69, 80, 128, 87, 69, 88, 128, 87, 79, 65, 128, 87, - 79, 69, 128, 87, 79, 80, 128, 87, 79, 82, 203, 87, 79, 88, 128, 87, 85, - 79, 128, 87, 89, 78, 206, 88, 79, 65, 128, 88, 79, 82, 128, 88, 89, 65, - 128, 88, 89, 69, 128, 88, 89, 73, 128, 88, 89, 79, 128, 88, 89, 80, 128, - 88, 89, 82, 128, 88, 89, 84, 128, 88, 89, 85, 128, 88, 89, 88, 128, 89, - 65, 66, 128, 89, 65, 68, 128, 89, 65, 70, 128, 89, 65, 71, 128, 89, 65, - 77, 128, 89, 65, 80, 128, 89, 65, 82, 128, 89, 65, 86, 128, 89, 65, 87, - 128, 89, 65, 89, 128, 89, 69, 65, 128, 89, 69, 87, 128, 89, 69, 89, 128, - 89, 73, 73, 128, 89, 85, 68, 200, 89, 85, 82, 128, 89, 89, 80, 128, 89, - 89, 82, 128, 89, 89, 84, 128, 89, 89, 88, 128, 90, 65, 72, 128, 90, 72, - 89, 128, 90, 76, 65, 128, 90, 79, 79, 128, 90, 82, 65, 128, 90, 85, 84, - 128, 90, 90, 89, 128, 75, 65, 198, 66, 69, 200, 68, 65, 217, 84, 72, 197, - 70, 69, 200, 68, 65, 196, 83, 65, 196, 69, 78, 196, 81, 65, 198, 84, 65, - 200, 65, 82, 195, 78, 79, 210, 76, 69, 203, 77, 65, 201, 79, 67, 210, 66, - 73, 199, 82, 72, 207, 84, 69, 206, 87, 65, 215, 89, 73, 199, 67, 72, 197, - 77, 71, 207, 65, 82, 205, 66, 85, 212, 67, 85, 205, 71, 72, 197, 78, 69, - 207, 80, 85, 128, 84, 73, 208, 71, 65, 198, 75, 72, 207, 90, 65, 200, 68, - 73, 197, 80, 72, 201, 90, 72, 197, 80, 72, 207, 81, 73, 128, 81, 85, 128, - 83, 73, 216, 67, 72, 207, 77, 69, 206, 77, 73, 196, 78, 69, 212, 80, 69, - 200, 81, 79, 128, 86, 69, 200, 89, 79, 196, 66, 65, 199, 66, 69, 212, 68, - 89, 207, 70, 79, 128, 72, 65, 193, 75, 65, 201, 78, 65, 199, 81, 69, 128, - 82, 65, 196, 83, 73, 206, 86, 65, 214, 45, 85, 205, 67, 72, 201, 68, 65, - 208, 68, 85, 204, 68, 90, 128, 69, 88, 207, 71, 82, 213, 71, 85, 199, 72, - 79, 212, 72, 80, 128, 72, 86, 128, 73, 74, 128, 73, 85, 128, 73, 89, 128, - 74, 69, 200, 74, 79, 212, 75, 69, 217, 75, 71, 128, 75, 75, 128, 76, 74, - 128, 77, 73, 199, 78, 74, 128, 78, 85, 206, 78, 86, 128, 78, 89, 201, 79, - 72, 205, 80, 65, 215, 81, 79, 207, 82, 68, 207, 83, 85, 206, 83, 87, 128, - 87, 79, 206, 89, 69, 206, 89, 85, 211, 65, 78, 207, 66, 69, 206, 66, 79, - 215, 66, 81, 128, 67, 77, 128, 67, 85, 212, 68, 76, 128, 68, 77, 128, 68, - 82, 217, 68, 86, 128, 69, 67, 200, 70, 77, 128, 70, 89, 128, 71, 66, 128, - 71, 86, 128, 71, 89, 128, 72, 71, 128, 72, 75, 128, 73, 83, 211, 75, 66, - 128, 75, 73, 208, 75, 76, 128, 75, 77, 128, 75, 84, 128, 75, 86, 128, 76, + 72, 128, 68, 85, 76, 128, 68, 85, 77, 128, 68, 87, 79, 128, 68, 89, 79, + 128, 68, 90, 73, 128, 68, 90, 79, 128, 68, 90, 85, 128, 69, 68, 68, 128, + 69, 71, 71, 128, 69, 73, 83, 128, 69, 75, 83, 128, 69, 78, 78, 128, 69, + 78, 79, 211, 69, 79, 72, 128, 69, 82, 71, 128, 69, 83, 72, 178, 69, 85, + 82, 207, 69, 88, 79, 128, 70, 65, 78, 128, 70, 65, 80, 128, 70, 65, 88, + 128, 70, 69, 69, 196, 70, 69, 72, 213, 70, 69, 78, 199, 70, 69, 79, 200, + 70, 70, 73, 128, 70, 70, 76, 128, 70, 73, 73, 128, 70, 73, 76, 197, 70, + 73, 76, 204, 70, 73, 80, 128, 70, 73, 84, 128, 70, 73, 88, 128, 70, 76, + 65, 128, 70, 79, 80, 128, 70, 79, 88, 128, 70, 85, 80, 128, 70, 85, 84, + 128, 70, 85, 88, 128, 70, 87, 69, 128, 70, 87, 73, 128, 70, 89, 65, 128, + 70, 89, 80, 128, 70, 89, 84, 128, 70, 89, 88, 128, 71, 65, 66, 193, 71, + 65, 70, 128, 71, 65, 71, 128, 71, 65, 77, 128, 71, 67, 65, 206, 71, 69, + 66, 193, 71, 69, 66, 207, 71, 69, 84, 193, 71, 72, 73, 128, 71, 72, 85, + 128, 71, 72, 90, 128, 71, 73, 80, 128, 71, 76, 65, 128, 71, 79, 65, 128, + 71, 80, 65, 128, 71, 83, 85, 205, 71, 85, 76, 128, 71, 85, 77, 128, 71, + 89, 65, 128, 71, 89, 69, 128, 71, 89, 70, 213, 71, 89, 73, 128, 71, 89, + 79, 128, 71, 89, 85, 128, 72, 69, 76, 205, 72, 69, 78, 199, 72, 76, 69, + 128, 72, 76, 73, 128, 72, 76, 79, 128, 72, 76, 85, 128, 72, 76, 89, 128, + 72, 77, 73, 128, 72, 77, 85, 128, 72, 77, 89, 128, 72, 78, 69, 128, 72, + 78, 73, 128, 72, 80, 65, 128, 72, 85, 78, 128, 72, 87, 85, 128, 72, 88, + 65, 128, 72, 88, 69, 128, 72, 88, 73, 128, 72, 88, 79, 128, 72, 90, 71, + 128, 72, 90, 84, 128, 72, 90, 87, 128, 72, 90, 90, 128, 73, 45, 65, 128, + 73, 45, 79, 128, 73, 76, 50, 128, 73, 79, 82, 128, 74, 65, 65, 128, 74, + 65, 82, 128, 74, 69, 72, 128, 74, 69, 82, 128, 74, 72, 79, 128, 74, 73, + 65, 128, 74, 74, 69, 128, 74, 79, 65, 128, 74, 79, 89, 128, 74, 87, 65, + 128, 75, 65, 68, 179, 75, 65, 68, 181, 75, 65, 80, 128, 75, 65, 85, 206, + 75, 65, 88, 128, 75, 69, 80, 128, 75, 69, 88, 128, 75, 69, 89, 128, 75, + 72, 79, 212, 75, 72, 90, 128, 75, 73, 69, 128, 75, 73, 72, 128, 75, 73, + 73, 128, 75, 73, 80, 128, 75, 73, 88, 128, 75, 75, 69, 128, 75, 75, 73, + 128, 75, 75, 79, 128, 75, 75, 85, 128, 75, 76, 65, 128, 75, 79, 65, 128, + 75, 79, 72, 128, 75, 79, 80, 128, 75, 79, 84, 128, 75, 79, 88, 128, 75, + 80, 69, 128, 75, 80, 73, 128, 75, 80, 79, 128, 75, 80, 85, 128, 75, 85, + 52, 128, 75, 85, 55, 128, 75, 85, 79, 128, 75, 85, 80, 128, 75, 85, 84, + 128, 75, 85, 88, 128, 75, 88, 65, 128, 75, 88, 69, 128, 75, 88, 73, 128, + 75, 88, 79, 128, 75, 88, 85, 128, 75, 89, 65, 128, 75, 89, 69, 128, 75, + 89, 73, 128, 75, 89, 79, 128, 75, 89, 85, 128, 76, 65, 69, 128, 76, 65, + 71, 213, 76, 65, 83, 212, 76, 65, 84, 197, 76, 65, 90, 217, 76, 68, 50, + 128, 76, 69, 79, 128, 76, 72, 65, 199, 76, 73, 73, 128, 76, 73, 76, 128, + 76, 73, 78, 203, 76, 73, 82, 193, 76, 79, 65, 128, 76, 79, 71, 128, 76, + 79, 71, 210, 76, 79, 84, 128, 76, 85, 51, 128, 76, 85, 72, 128, 76, 89, + 89, 128, 77, 65, 50, 128, 77, 65, 72, 128, 77, 65, 83, 213, 77, 65, 89, + 128, 77, 66, 50, 128, 77, 66, 51, 128, 77, 66, 52, 128, 77, 66, 69, 128, + 77, 66, 73, 128, 77, 66, 79, 128, 77, 66, 85, 128, 77, 67, 72, 213, 77, + 69, 84, 193, 77, 69, 88, 128, 77, 71, 65, 128, 77, 71, 69, 128, 77, 71, + 85, 128, 77, 72, 90, 128, 77, 73, 73, 128, 77, 73, 76, 128, 77, 73, 76, + 204, 77, 73, 77, 128, 77, 79, 65, 128, 77, 79, 76, 128, 77, 85, 69, 128, + 77, 89, 65, 128, 77, 89, 84, 128, 78, 65, 50, 128, 78, 65, 71, 128, 78, + 65, 77, 128, 78, 65, 79, 211, 78, 66, 65, 128, 78, 66, 73, 128, 78, 66, + 79, 128, 78, 66, 85, 128, 78, 66, 89, 128, 78, 69, 84, 128, 78, 69, 88, + 212, 78, 71, 71, 128, 78, 72, 65, 128, 78, 73, 50, 128, 78, 73, 77, 128, + 78, 74, 89, 128, 78, 78, 71, 128, 78, 78, 79, 128, 78, 79, 65, 128, 78, + 82, 69, 128, 78, 82, 79, 128, 78, 82, 85, 128, 78, 82, 89, 128, 78, 85, + 69, 128, 78, 85, 76, 204, 78, 85, 77, 128, 78, 85, 80, 128, 78, 85, 82, + 128, 78, 85, 88, 128, 78, 89, 69, 212, 78, 90, 65, 128, 78, 90, 73, 128, + 78, 90, 85, 128, 78, 90, 89, 128, 79, 45, 69, 128, 79, 65, 75, 128, 79, + 65, 89, 128, 79, 66, 79, 204, 79, 84, 84, 128, 80, 65, 68, 128, 80, 65, + 76, 205, 80, 65, 84, 128, 80, 65, 88, 128, 80, 73, 69, 128, 80, 73, 71, + 128, 80, 73, 80, 128, 80, 73, 84, 128, 80, 73, 88, 128, 80, 79, 65, 128, + 80, 79, 80, 128, 80, 79, 88, 128, 80, 80, 77, 128, 80, 85, 50, 128, 80, + 85, 79, 128, 80, 85, 80, 128, 80, 85, 82, 128, 80, 85, 88, 128, 80, 89, + 80, 128, 80, 89, 82, 128, 80, 89, 88, 128, 81, 65, 76, 193, 81, 65, 81, + 128, 81, 65, 85, 128, 81, 69, 69, 128, 81, 72, 65, 128, 81, 72, 69, 128, + 81, 72, 73, 128, 81, 72, 79, 128, 81, 72, 85, 128, 81, 73, 69, 128, 81, + 73, 80, 128, 81, 73, 84, 128, 81, 73, 88, 128, 81, 79, 65, 128, 81, 79, + 79, 128, 81, 79, 80, 128, 81, 79, 88, 128, 81, 85, 65, 128, 81, 85, 69, + 128, 81, 85, 73, 128, 81, 85, 75, 128, 81, 85, 80, 128, 81, 85, 82, 128, + 81, 85, 84, 128, 81, 85, 86, 128, 81, 85, 88, 128, 81, 87, 65, 128, 81, + 87, 69, 128, 81, 87, 73, 128, 81, 89, 65, 128, 81, 89, 69, 128, 81, 89, + 73, 128, 81, 89, 79, 128, 81, 89, 80, 128, 81, 89, 82, 128, 81, 89, 84, + 128, 81, 89, 85, 128, 81, 89, 88, 128, 82, 65, 66, 128, 82, 65, 68, 201, + 82, 65, 73, 206, 82, 65, 77, 211, 82, 69, 73, 196, 82, 73, 80, 128, 82, + 74, 69, 128, 82, 74, 69, 211, 82, 79, 65, 128, 82, 82, 69, 128, 82, 82, + 85, 128, 82, 82, 89, 128, 82, 85, 65, 128, 82, 87, 65, 128, 82, 89, 65, + 128, 82, 89, 89, 128, 83, 45, 87, 128, 83, 65, 87, 128, 83, 65, 89, 128, + 83, 66, 85, 194, 83, 71, 79, 210, 83, 71, 82, 193, 83, 72, 85, 178, 83, + 73, 73, 128, 83, 73, 75, 178, 83, 73, 78, 197, 83, 75, 87, 128, 83, 78, + 65, 208, 83, 79, 65, 128, 83, 79, 87, 128, 83, 83, 89, 128, 83, 84, 50, + 128, 83, 85, 65, 128, 83, 85, 68, 128, 83, 85, 75, 213, 83, 85, 79, 128, + 83, 87, 71, 128, 83, 87, 90, 128, 83, 89, 65, 128, 83, 90, 65, 128, 83, + 90, 69, 128, 83, 90, 73, 128, 83, 90, 79, 128, 83, 90, 85, 128, 83, 90, + 90, 128, 84, 65, 50, 128, 84, 65, 76, 204, 84, 65, 79, 128, 84, 65, 80, + 128, 84, 65, 80, 197, 84, 65, 87, 128, 84, 65, 88, 128, 84, 69, 78, 213, + 84, 69, 83, 200, 84, 69, 84, 200, 84, 69, 88, 128, 84, 72, 69, 211, 84, + 72, 73, 206, 84, 72, 90, 128, 84, 73, 73, 128, 84, 73, 76, 128, 84, 73, + 80, 128, 84, 73, 84, 128, 84, 73, 88, 128, 84, 76, 86, 128, 84, 79, 65, + 128, 84, 79, 88, 128, 84, 82, 73, 128, 84, 83, 86, 128, 84, 84, 50, 128, + 84, 84, 72, 128, 84, 84, 85, 128, 84, 85, 79, 128, 84, 85, 80, 128, 84, + 85, 84, 128, 84, 85, 88, 128, 84, 89, 65, 128, 84, 89, 69, 128, 84, 89, + 73, 128, 84, 89, 79, 128, 84, 90, 65, 128, 84, 90, 69, 128, 84, 90, 73, + 128, 84, 90, 73, 210, 84, 90, 79, 128, 84, 90, 85, 128, 85, 69, 69, 128, + 85, 69, 89, 128, 85, 78, 68, 207, 85, 82, 52, 128, 85, 82, 73, 128, 85, + 82, 85, 218, 85, 90, 51, 128, 85, 90, 85, 128, 86, 65, 65, 128, 86, 65, + 80, 128, 86, 65, 84, 128, 86, 65, 88, 128, 86, 69, 72, 128, 86, 69, 88, + 128, 86, 73, 69, 128, 86, 73, 80, 128, 86, 73, 84, 128, 86, 73, 88, 128, + 86, 79, 73, 196, 86, 79, 79, 128, 86, 79, 80, 128, 86, 79, 84, 128, 86, + 79, 87, 128, 86, 79, 88, 128, 86, 85, 80, 128, 86, 85, 84, 128, 86, 85, + 88, 128, 86, 87, 65, 128, 86, 89, 80, 128, 86, 89, 82, 128, 86, 89, 84, + 128, 86, 89, 88, 128, 87, 65, 78, 128, 87, 65, 80, 128, 87, 65, 84, 128, + 87, 65, 88, 128, 87, 69, 78, 128, 87, 69, 80, 128, 87, 69, 88, 128, 87, + 73, 78, 128, 87, 79, 65, 128, 87, 79, 69, 128, 87, 79, 78, 128, 87, 79, + 80, 128, 87, 79, 82, 203, 87, 79, 88, 128, 87, 85, 78, 128, 87, 85, 79, + 128, 87, 89, 78, 206, 88, 79, 65, 128, 88, 79, 82, 128, 88, 89, 65, 128, + 88, 89, 69, 128, 88, 89, 73, 128, 88, 89, 79, 128, 88, 89, 80, 128, 88, + 89, 82, 128, 88, 89, 84, 128, 88, 89, 85, 128, 88, 89, 88, 128, 89, 65, + 66, 128, 89, 65, 68, 128, 89, 65, 70, 128, 89, 65, 71, 128, 89, 65, 77, + 128, 89, 65, 80, 128, 89, 65, 86, 128, 89, 65, 87, 128, 89, 65, 89, 128, + 89, 69, 65, 128, 89, 69, 87, 128, 89, 69, 89, 128, 89, 73, 73, 128, 89, + 85, 68, 200, 89, 85, 82, 128, 89, 89, 80, 128, 89, 89, 82, 128, 89, 89, + 84, 128, 89, 89, 88, 128, 90, 65, 71, 128, 90, 65, 72, 128, 90, 65, 73, + 128, 90, 69, 50, 128, 90, 72, 89, 128, 90, 73, 51, 128, 90, 73, 66, 128, + 90, 73, 71, 128, 90, 76, 65, 128, 90, 82, 65, 128, 90, 85, 53, 128, 90, + 85, 77, 128, 90, 85, 84, 128, 90, 90, 89, 128, 71, 65, 178, 75, 65, 198, + 66, 69, 200, 68, 65, 217, 84, 72, 197, 70, 69, 200, 76, 85, 178, 68, 65, + 196, 68, 65, 199, 83, 65, 196, 84, 65, 200, 83, 65, 199, 69, 78, 196, 81, + 65, 198, 82, 79, 196, 65, 66, 178, 83, 73, 216, 78, 85, 206, 65, 82, 195, + 73, 71, 201, 78, 79, 210, 66, 73, 199, 80, 87, 207, 84, 69, 206, 87, 65, + 215, 89, 73, 199, 76, 69, 203, 77, 71, 207, 79, 67, 210, 83, 72, 197, 71, + 72, 197, 82, 72, 207, 67, 72, 197, 65, 82, 205, 66, 85, 212, 67, 85, 205, + 71, 65, 196, 78, 69, 207, 84, 73, 208, 85, 82, 178, 71, 65, 198, 75, 72, + 207, 90, 65, 200, 68, 73, 197, 80, 72, 201, 90, 72, 197, 71, 85, 178, 71, + 85, 196, 80, 72, 207, 81, 73, 128, 81, 85, 128, 84, 65, 194, 84, 73, 210, + 67, 72, 207, 70, 79, 128, 75, 65, 201, 77, 69, 206, 77, 73, 196, 78, 65, + 199, 78, 69, 212, 79, 68, 196, 80, 69, 200, 81, 79, 128, 86, 69, 200, 89, + 79, 196, 66, 65, 199, 66, 69, 212, 68, 89, 207, 71, 73, 180, 72, 65, 193, + 75, 75, 128, 76, 65, 204, 76, 85, 205, 81, 69, 128, 83, 73, 206, 85, 76, + 213, 86, 65, 214, 45, 85, 205, 66, 85, 210, 67, 72, 201, 68, 65, 208, 68, + 85, 204, 68, 90, 128, 69, 88, 207, 71, 82, 213, 71, 85, 199, 72, 71, 128, + 72, 80, 128, 72, 86, 128, 73, 74, 128, 73, 85, 128, 73, 89, 128, 74, 69, + 200, 74, 79, 212, 75, 65, 203, 75, 69, 217, 75, 71, 128, 75, 85, 204, 76, + 74, 128, 77, 73, 199, 77, 77, 128, 78, 73, 205, 78, 74, 128, 78, 86, 128, + 78, 89, 201, 79, 72, 205, 79, 86, 128, 80, 65, 215, 81, 79, 207, 82, 68, + 207, 83, 72, 213, 83, 85, 206, 83, 87, 128, 84, 90, 128, 87, 79, 206, 89, + 69, 206, 89, 85, 211, 65, 78, 207, 66, 65, 204, 66, 69, 206, 66, 79, 215, + 66, 81, 128, 67, 77, 128, 67, 85, 212, 68, 73, 206, 68, 76, 128, 68, 77, + 128, 68, 82, 217, 68, 85, 194, 68, 86, 128, 69, 67, 200, 70, 77, 128, 70, + 89, 128, 71, 66, 128, 71, 85, 205, 71, 86, 128, 71, 89, 128, 72, 75, 128, + 73, 83, 211, 75, 65, 178, 75, 66, 128, 75, 73, 196, 75, 73, 208, 75, 76, + 128, 75, 77, 128, 75, 84, 128, 75, 85, 179, 75, 85, 180, 75, 86, 128, 76, 65, 215, 76, 67, 197, 76, 67, 201, 76, 72, 128, 76, 78, 128, 76, 88, 128, - 77, 66, 128, 77, 69, 205, 77, 71, 128, 77, 72, 128, 77, 76, 128, 77, 77, - 128, 77, 83, 128, 77, 86, 128, 77, 87, 128, 78, 65, 193, 78, 70, 128, 78, - 71, 207, 78, 72, 128, 78, 77, 128, 78, 87, 128, 78, 89, 196, 79, 86, 128, - 80, 67, 128, 80, 69, 211, 80, 70, 128, 80, 79, 208, 80, 82, 128, 80, 86, - 128, 80, 87, 128, 81, 79, 198, 81, 89, 128, 82, 73, 206, 82, 74, 197, 82, - 85, 194, 83, 78, 193, 83, 79, 198, 83, 82, 128, 84, 65, 213, 84, 65, 214, - 84, 69, 197, 84, 69, 212, 84, 73, 210, 84, 82, 128, 86, 69, 197, 86, 69, - 215, 87, 66, 128, 87, 86, 128, 88, 89, 128, 89, 65, 210, 89, 86, 128, 90, - 76, 193, 66, 217, 77, 213, 65, 197, 89, 213, 68, 218, 90, 197, 75, 205, - 67, 205, 68, 205, 75, 213, 77, 205, 68, 194, 76, 218, 77, 194, 77, 207, - 77, 214, 77, 215, 80, 207, 81, 208, 84, 195, 202, 209, + 77, 69, 205, 77, 71, 128, 77, 72, 128, 77, 83, 128, 77, 85, 199, 77, 86, + 128, 77, 87, 128, 78, 65, 193, 78, 70, 128, 78, 71, 207, 78, 72, 128, 78, + 77, 128, 78, 87, 128, 78, 89, 196, 79, 66, 128, 80, 50, 128, 80, 65, 208, + 80, 67, 128, 80, 68, 128, 80, 69, 211, 80, 70, 128, 80, 71, 128, 80, 79, + 208, 80, 82, 128, 80, 86, 128, 80, 87, 128, 80, 90, 128, 81, 79, 198, 81, + 89, 128, 82, 73, 206, 82, 74, 197, 82, 85, 194, 83, 71, 128, 83, 78, 193, + 83, 79, 198, 83, 80, 128, 83, 82, 128, 83, 85, 210, 83, 90, 128, 84, 65, + 213, 84, 65, 214, 84, 69, 197, 84, 69, 212, 84, 78, 128, 84, 82, 128, 85, + 90, 179, 86, 69, 197, 86, 69, 215, 87, 66, 128, 87, 86, 128, 88, 89, 128, + 89, 65, 210, 89, 86, 128, 90, 65, 204, 90, 73, 194, 90, 76, 193, 90, 85, + 181, 66, 217, 65, 197, 69, 178, 89, 213, 66, 201, 68, 218, 90, 197, 68, + 213, 75, 205, 67, 205, 68, 205, 77, 205, 67, 193, 68, 194, 76, 218, 77, + 194, 77, 207, 77, 214, 77, 215, 80, 207, 81, 208, 84, 195, 90, 201, 202, + 209, }; static unsigned short lexicon_offset[] = { - 0, 0, 6, 10, 15, 23, 30, 32, 35, 40, 53, 65, 71, 77, 82, 90, 99, 103, - 108, 116, 119, 126, 130, 138, 144, 150, 157, 162, 172, 175, 182, 187, - 193, 201, 206, 215, 222, 229, 238, 243, 251, 255, 256, 264, 270, 276, - 282, 288, 295, 301, 309, 318, 322, 327, 330, 337, 344, 350, 353, 362, - 370, 375, 381, 387, 392, 397, 402, 405, 407, 413, 418, 426, 299, 428, - 430, 439, 100, 447, 457, 465, 467, 478, 481, 494, 498, 504, 514, 519, - 522, 524, 533, 538, 545, 549, 556, 559, 564, 569, 572, 582, 591, 599, - 606, 614, 618, 626, 634, 643, 647, 654, 662, 671, 675, 683, 689, 698, - 705, 708, 709, 714, 719, 728, 735, 738, 745, 751, 755, 763, 173, 767, - 773, 782, 750, 789, 263, 797, 803, 808, 812, 825, 834, 839, 842, 852, - 753, 857, 866, 875, 877, 882, 887, 894, 904, 907, 909, 913, 921, 22, 929, - 933, 938, 947, 543, 950, 960, 964, 971, 977, 983, 988, 994, 997, 1000, - 80, 1007, 1015, 1025, 1030, 1035, 1042, 1044, 1054, 779, 1058, 1062, - 1069, 1074, 1081, 1085, 1089, 1094, 1104, 1110, 1023, 1112, 1117, 1123, - 325, 1130, 1134, 1140, 1144, 1147, 1152, 1158, 1163, 1083, 1169, 1176, - 1181, 1183, 1185, 1190, 1195, 624, 1204, 1210, 1213, 1215, 1221, 31, - 1224, 1226, 1179, 1229, 1237, 1243, 1250, 1274, 1296, 1318, 1340, 1361, - 1382, 1402, 1422, 1441, 1460, 1479, 1498, 1517, 1536, 1555, 1574, 1592, - 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1789, 1806, - 1823, 1840, 1857, 1874, 1891, 1908, 1925, 1942, 1959, 1975, 1991, 2007, - 2023, 2039, 2055, 2071, 2087, 2103, 2119, 2135, 2151, 2167, 2183, 2199, - 2215, 2231, 2247, 2263, 2279, 2295, 2311, 2327, 2343, 2359, 2375, 2391, - 2407, 2423, 2439, 2455, 2471, 2487, 2503, 2519, 2535, 2551, 2567, 2583, - 2599, 2615, 2631, 2647, 2663, 2679, 2695, 2711, 2727, 2743, 2759, 2775, - 2791, 2807, 2823, 2839, 2855, 2871, 2887, 2903, 2919, 2935, 2951, 2967, - 2983, 2999, 3015, 3031, 3047, 3063, 3079, 3095, 3111, 3127, 3143, 3159, - 3175, 3191, 3207, 3223, 3239, 3255, 3271, 3287, 3303, 3319, 3335, 3351, - 3367, 3383, 3399, 3415, 3431, 3447, 3463, 3479, 3495, 3511, 3527, 3543, - 3559, 3575, 3591, 3607, 3623, 3639, 3655, 3671, 3687, 3703, 3719, 3735, - 3751, 3767, 3783, 3799, 3815, 3831, 3847, 3863, 3879, 3895, 3911, 3927, - 3943, 3959, 3975, 3991, 4007, 4023, 4039, 4055, 4071, 4087, 4103, 4119, - 4135, 4151, 4167, 4183, 4199, 4215, 4231, 4247, 4263, 4279, 4295, 4311, - 4327, 4343, 4359, 4375, 4391, 4407, 4423, 4439, 4455, 4471, 4487, 4503, - 4519, 4535, 4551, 4567, 4583, 4599, 4615, 4631, 4647, 4663, 4679, 4695, - 4711, 4727, 4743, 4759, 4775, 4791, 4807, 4823, 4839, 4855, 4871, 4887, - 4903, 4919, 4935, 4951, 4967, 4983, 4999, 5015, 5031, 5047, 5063, 5079, - 5095, 5111, 5127, 5143, 5159, 5175, 5191, 5207, 5223, 5239, 5255, 5271, - 5287, 5303, 5319, 5335, 5351, 5367, 5383, 5399, 5415, 5431, 5447, 5463, - 5479, 5495, 5511, 5527, 5543, 5559, 5575, 5591, 5607, 5623, 5639, 5655, - 5671, 5687, 5703, 5719, 5735, 5751, 5767, 5783, 5799, 5815, 5831, 5847, - 5863, 5879, 5895, 5911, 5927, 5943, 5959, 5975, 5991, 6007, 6023, 6039, - 6055, 6071, 6087, 6103, 6119, 6135, 6151, 6167, 6183, 6199, 6215, 6231, - 6247, 6263, 6279, 6295, 6311, 6327, 6343, 6359, 6375, 6391, 6407, 6423, - 6439, 6455, 6471, 6487, 6503, 6519, 6535, 6551, 6567, 6583, 6599, 6615, - 6631, 6647, 6663, 6679, 6695, 6711, 6727, 6743, 6759, 6775, 6791, 6807, - 6823, 6839, 6855, 6871, 6887, 6903, 6919, 6935, 6951, 6967, 6983, 6999, - 7015, 7031, 7047, 7063, 7079, 7095, 7111, 7127, 7143, 7159, 7175, 7191, - 7207, 7223, 7239, 7255, 7271, 7287, 7303, 7319, 7335, 7351, 7367, 7383, - 7399, 7415, 7431, 7447, 7463, 7479, 7495, 7511, 7527, 7543, 7559, 7575, - 7591, 7607, 7623, 7639, 7655, 7671, 7687, 7703, 7719, 7735, 7751, 7767, - 7783, 7799, 7815, 7831, 7847, 7863, 7879, 7895, 7911, 7927, 7943, 7959, - 7975, 7991, 8007, 8023, 8039, 8055, 8071, 8087, 8103, 8119, 8135, 8151, - 8167, 8183, 8199, 8215, 8231, 8247, 8263, 8279, 8295, 8311, 8327, 8343, - 8359, 8375, 8391, 8407, 8423, 8439, 8455, 8471, 8487, 8503, 8519, 8535, - 8551, 8567, 8583, 8599, 8615, 8631, 8647, 8663, 8679, 8695, 8711, 8727, - 8743, 8759, 8775, 8791, 8807, 8823, 8839, 8855, 8871, 8887, 8903, 8919, - 8935, 8951, 8967, 8983, 8999, 9015, 9031, 9047, 9063, 9079, 9095, 9111, - 9127, 9143, 9159, 9175, 9191, 9207, 9223, 9239, 9255, 9271, 9287, 9303, - 9319, 9335, 9351, 9367, 9383, 9399, 9415, 9431, 9447, 9463, 9479, 9495, - 9511, 9527, 9543, 9559, 9575, 9591, 9607, 9623, 9639, 9655, 9671, 9687, - 9703, 9719, 9735, 9751, 9767, 9783, 9799, 9815, 9831, 9847, 9863, 9879, - 9895, 9911, 9927, 9943, 9959, 9975, 9991, 10007, 10023, 10039, 10055, - 10071, 10087, 10103, 10119, 10135, 10151, 10167, 10183, 10199, 10215, - 10231, 10247, 10263, 10279, 10295, 10311, 10327, 10343, 10359, 10375, - 10391, 10407, 10423, 10439, 10455, 10471, 10487, 10503, 10519, 10535, - 10551, 10567, 10583, 10599, 10615, 10631, 10647, 10663, 10679, 10695, - 10711, 10727, 10743, 10759, 10775, 10791, 10807, 10823, 10839, 10855, - 10871, 10887, 10903, 10919, 10934, 10949, 10964, 10979, 10994, 11009, - 11024, 11039, 11054, 11069, 11084, 11099, 11114, 11129, 11144, 11159, - 11174, 11189, 11204, 11219, 11234, 11249, 11264, 11279, 11294, 11309, - 11324, 11339, 11354, 11369, 11384, 11399, 11414, 11429, 11444, 11459, - 11474, 11489, 11504, 11519, 11534, 11549, 11564, 11579, 11594, 11609, - 11624, 11639, 11654, 11669, 11684, 11699, 11714, 11729, 11744, 11759, - 11774, 11789, 11804, 11819, 11834, 11849, 11864, 11879, 11894, 11909, - 11924, 11939, 11954, 11969, 11984, 11999, 12014, 12029, 12044, 12059, - 12074, 12089, 12104, 12119, 12134, 12149, 12164, 12179, 12194, 12209, - 12224, 12239, 12254, 12269, 12284, 12299, 12314, 12329, 12344, 12359, - 12374, 12389, 12404, 12419, 12434, 12449, 12464, 12479, 12494, 12509, - 12524, 12539, 12554, 12569, 12584, 12599, 12614, 12629, 12644, 12659, - 12674, 12689, 12704, 12719, 12734, 12749, 12764, 12779, 12794, 12809, - 12824, 12839, 12854, 12869, 12884, 12899, 12914, 12929, 12944, 12959, - 12974, 12989, 13004, 13019, 13034, 13049, 13064, 13079, 13094, 13109, - 13124, 13139, 13154, 13169, 13184, 13199, 13214, 13229, 13244, 13259, - 13274, 13289, 13304, 13319, 13334, 13349, 13364, 13379, 13394, 13409, - 13424, 13439, 13454, 13469, 13484, 13499, 13514, 13529, 13544, 13559, - 13574, 13589, 13604, 13619, 13634, 13649, 13664, 13679, 13694, 13709, - 13724, 13739, 13754, 13769, 13784, 13799, 13814, 13829, 13844, 13859, - 13874, 13889, 13904, 13919, 13934, 13949, 13964, 13979, 13994, 14009, - 14024, 14039, 14054, 14069, 14084, 14099, 14114, 14129, 14144, 14159, - 14174, 14189, 14204, 14219, 14234, 14249, 14264, 14279, 14294, 14309, - 14324, 14339, 14354, 14369, 14384, 14399, 14414, 14429, 14444, 14459, - 14474, 14489, 14504, 14519, 14534, 14549, 14564, 14579, 14594, 14609, - 14624, 14639, 14654, 14669, 14684, 14699, 14714, 14729, 14744, 14759, - 14774, 14789, 14804, 14819, 14834, 14849, 14864, 14879, 14894, 14909, - 14924, 14939, 14954, 14969, 14984, 14999, 15014, 15029, 15044, 15059, - 15074, 15089, 15104, 15119, 15134, 15149, 15164, 15179, 15194, 15209, - 15224, 15239, 15254, 15269, 15284, 15299, 15314, 15329, 15344, 15359, - 15374, 15389, 15404, 15419, 15434, 15449, 15464, 15479, 15494, 15509, - 15524, 15539, 15554, 15569, 15584, 15599, 15614, 15629, 15644, 15659, - 15674, 15689, 15704, 15719, 15734, 15749, 15764, 15779, 15794, 15809, - 15824, 15839, 15854, 15869, 15884, 15899, 15914, 15929, 15944, 15959, - 15974, 15989, 16004, 16019, 16034, 16049, 16064, 16079, 16094, 16109, - 16124, 16139, 16154, 16169, 16184, 16199, 16214, 16229, 16244, 16259, - 16274, 16289, 16304, 16319, 16334, 16349, 16364, 16379, 16394, 16409, - 16424, 16439, 16454, 16469, 16484, 16499, 16514, 16529, 16544, 16559, - 16574, 16589, 16604, 16619, 16634, 16649, 16664, 16679, 16694, 16709, - 16724, 16739, 16754, 16769, 16784, 16799, 16814, 16829, 16844, 16859, - 16874, 16889, 16904, 16919, 16934, 16949, 16964, 16979, 16994, 17009, - 17024, 17039, 17054, 17069, 17084, 17099, 17114, 17129, 17144, 17159, - 17174, 17189, 17204, 17219, 17234, 17249, 17264, 17279, 17294, 17309, - 17324, 17339, 17354, 17369, 17384, 17399, 17414, 17429, 17444, 17459, - 17474, 17489, 17504, 17519, 17534, 17549, 17564, 17579, 17594, 17609, - 17624, 17639, 17654, 17669, 17684, 17699, 17714, 17729, 17744, 17759, - 17774, 17789, 17804, 17819, 17834, 17849, 17864, 17879, 17894, 17909, - 17924, 17939, 17954, 17969, 17984, 17999, 18014, 18029, 18044, 18059, - 18074, 18089, 18104, 18119, 18134, 18149, 18164, 18179, 18194, 18209, - 18224, 18239, 18254, 18269, 18283, 18297, 18311, 18325, 18339, 1408, - 18353, 18367, 18381, 18395, 18409, 18423, 18437, 18451, 18465, 18479, - 18493, 18507, 18521, 18535, 18549, 18563, 18577, 18591, 18605, 18619, - 18633, 18647, 18661, 18675, 18689, 18703, 1809, 18717, 18731, 18745, - 18759, 18773, 18787, 18801, 18815, 18829, 18843, 18857, 18871, 18885, - 18899, 18913, 18927, 18941, 18954, 18967, 18980, 18993, 19006, 19019, - 19032, 19045, 19058, 19071, 19084, 19097, 19110, 19123, 19136, 19149, - 19162, 19175, 19188, 19201, 19214, 19227, 19240, 1759, 19253, 19266, - 19279, 19292, 19305, 19318, 19331, 19344, 19357, 19370, 19383, 19396, - 19409, 19422, 19435, 19448, 19461, 19474, 19487, 19500, 19513, 19526, - 19539, 19552, 19565, 19578, 19591, 19604, 19617, 19630, 19643, 19656, - 19669, 19682, 19695, 19708, 19721, 1523, 19734, 19747, 19760, 19773, - 19786, 19799, 19812, 19825, 19838, 19851, 19864, 19877, 19890, 19903, - 19916, 19929, 19942, 19955, 19968, 19981, 19994, 20007, 20020, 20033, - 20046, 20059, 20072, 20085, 20098, 20111, 20124, 20137, 20150, 20163, - 20176, 20189, 20202, 20215, 20228, 20241, 20254, 20267, 20280, 20293, - 20306, 20319, 20332, 20345, 20358, 20371, 20384, 20397, 20410, 20423, - 20436, 20449, 20462, 20475, 20488, 20501, 20514, 20527, 20540, 20553, - 20566, 20579, 20592, 20605, 20618, 20631, 20644, 20657, 20670, 20683, - 20696, 20709, 20722, 20735, 20748, 20761, 20774, 20787, 20800, 20813, - 20826, 20839, 20852, 20865, 20878, 20891, 20904, 20917, 20930, 20943, - 20956, 20969, 20982, 20995, 21008, 21021, 21034, 21047, 21060, 21073, - 21086, 21099, 21112, 21125, 21138, 21151, 21164, 21177, 21190, 21203, - 21216, 21229, 21242, 21255, 21268, 21281, 21294, 21307, 21320, 21333, - 21346, 21359, 21372, 21385, 21398, 21411, 21424, 21437, 21450, 21463, - 21476, 21489, 21502, 21515, 21528, 21541, 21554, 21567, 21580, 21593, - 21606, 21619, 21632, 21645, 21658, 21671, 21684, 21697, 21710, 21723, - 21736, 21749, 21762, 21775, 21788, 21801, 21814, 21827, 21840, 21853, - 21866, 21879, 21892, 21905, 21918, 21931, 21944, 21957, 21970, 21983, - 21996, 22009, 22022, 22034, 22046, 22058, 22070, 22082, 22094, 22106, - 22118, 22130, 22142, 22154, 22166, 22178, 22190, 22202, 22214, 22226, - 22238, 1670, 22250, 22262, 22274, 1616, 22286, 22298, 22310, 22322, - 22334, 22346, 22358, 1505, 1598, 22370, 1634, 22382, 22394, 22406, 22418, - 22430, 22442, 22454, 22466, 22478, 22490, 22502, 22514, 22526, 22538, - 22550, 22562, 22574, 22586, 22598, 22610, 22622, 22634, 22646, 22658, - 22670, 22682, 22694, 22706, 22718, 22730, 22742, 22754, 22766, 22778, - 22790, 22802, 22814, 22826, 22838, 22850, 22862, 22874, 22886, 22898, - 22910, 22922, 22934, 22946, 22958, 22970, 22982, 22994, 23006, 23018, - 23030, 23042, 23054, 23066, 23078, 23090, 23102, 23114, 23126, 23138, - 23150, 23162, 23174, 23186, 23198, 23210, 23222, 23234, 23246, 23258, - 23270, 23282, 23294, 23306, 23318, 23330, 23342, 23354, 23366, 23378, - 23390, 23402, 23414, 1390, 23426, 23438, 23450, 1724, 23462, 23474, - 23486, 23498, 23510, 23522, 23534, 23546, 23558, 23570, 23582, 23594, - 23606, 23618, 23630, 23642, 23654, 23666, 23678, 23690, 23702, 23714, - 23726, 23738, 23750, 23762, 23774, 23786, 23798, 23810, 23822, 23834, - 23846, 23858, 23870, 23882, 23894, 23906, 23918, 23930, 23942, 23954, - 23966, 23978, 23990, 24002, 24014, 24026, 24038, 24050, 24062, 24074, - 24086, 24098, 24110, 24122, 24134, 24146, 24158, 24170, 24182, 24194, - 24206, 24218, 24230, 24242, 24254, 24266, 24278, 24290, 24302, 24314, - 24326, 24338, 24350, 24362, 24374, 24386, 24398, 24410, 24422, 24434, - 24446, 24458, 24470, 24482, 24494, 24506, 24518, 24530, 24542, 24554, - 24566, 24578, 24590, 24602, 24614, 24626, 24638, 24650, 24662, 24674, - 24686, 24698, 24710, 24722, 24734, 24746, 24758, 24770, 24781, 24792, - 24803, 24814, 24825, 24836, 24847, 24858, 24869, 24880, 24891, 24902, - 24913, 24924, 24935, 24946, 24957, 1795, 24968, 24979, 24990, 25001, - 25012, 25023, 25034, 25045, 25056, 1880, 1307, 25067, 1430, 25078, 25089, - 25100, 25111, 25122, 25133, 1897, 25144, 25155, 25166, 25177, 25188, - 25199, 25210, 25221, 25232, 25243, 25254, 25265, 25276, 25287, 1863, - 25298, 25309, 25320, 25331, 25342, 25353, 25364, 25375, 25386, 25397, - 25408, 25419, 25430, 25441, 25452, 25463, 25474, 25485, 25496, 25507, - 25518, 25529, 25540, 25551, 25562, 25573, 25584, 25595, 25606, 25617, - 25628, 25639, 25650, 25661, 25672, 25683, 25694, 25705, 25716, 25727, - 25738, 25749, 25760, 25771, 25782, 25793, 25804, 25815, 25826, 25837, - 25848, 25859, 25870, 25881, 25892, 25903, 25914, 25925, 25936, 25947, - 25958, 25969, 25980, 25991, 26002, 26013, 26024, 26035, 26046, 26057, - 26068, 26079, 26090, 26101, 26112, 26123, 26134, 26145, 26156, 26167, - 26178, 26189, 26200, 26211, 26222, 26233, 26244, 26255, 26266, 26277, - 26288, 26299, 26310, 26321, 26332, 26343, 26354, 26365, 26376, 26387, - 26398, 26409, 26420, 26431, 26442, 26453, 18580, 26464, 26475, 26486, - 26497, 26508, 26519, 26530, 26541, 26552, 26563, 26574, 26585, 26596, - 26607, 26618, 26629, 26640, 26651, 26662, 26673, 26684, 26695, 26706, - 26717, 26728, 26739, 26750, 26761, 26772, 26783, 26794, 26805, 26816, - 26827, 26838, 26849, 26860, 26871, 26882, 26893, 26904, 26915, 26926, - 26937, 26948, 26959, 26970, 26981, 26992, 27003, 27013, 27023, 27033, - 27043, 27053, 27063, 27073, 27083, 27093, 27103, 27113, 27123, 27133, - 27143, 27153, 27163, 27173, 27183, 27193, 27203, 22072, 27213, 27223, - 27233, 27243, 27253, 27263, 27273, 27283, 1372, 27293, 27303, 27313, - 27323, 27333, 27343, 27353, 27363, 27373, 27383, 27393, 27403, 27413, - 27423, 27433, 27443, 27453, 27463, 27473, 27483, 27493, 27503, 27513, - 27523, 27533, 27543, 27553, 27563, 27573, 27583, 27593, 27603, 27613, - 27623, 27633, 27643, 27653, 27663, 27673, 27683, 27693, 27703, 27713, - 27723, 27733, 27743, 27753, 27763, 27773, 27783, 27793, 27803, 27813, - 27823, 27833, 27843, 27853, 27863, 27873, 27883, 27893, 27903, 27913, - 27923, 27933, 27943, 27953, 27963, 27973, 27983, 27993, 19490, 28003, - 22672, 28013, 28023, 28033, 28043, 28053, 28063, 28073, 28083, 28093, - 28103, 28113, 28123, 28133, 28143, 28153, 28163, 28173, 28183, 28193, - 28203, 28213, 28223, 28233, 28243, 28253, 28263, 28273, 28283, 28293, - 28303, 28313, 28323, 28333, 28343, 28353, 28363, 28373, 28383, 28393, - 28403, 28413, 28423, 28433, 28443, 28453, 28463, 28473, 28483, 28493, - 28503, 28513, 28523, 28533, 28543, 28553, 28563, 28573, 28583, 28593, - 28603, 28613, 28623, 28633, 28643, 28653, 28663, 28673, 28683, 28693, - 28703, 28713, 28723, 28733, 28743, 28753, 28763, 28773, 28783, 28793, - 28803, 28813, 28823, 28833, 28843, 28853, 28863, 28873, 28883, 28893, - 28903, 28913, 28923, 28933, 28943, 28953, 28963, 28973, 28983, 28993, - 29003, 29013, 29023, 29033, 29043, 29053, 29063, 29073, 29083, 29093, - 29103, 29113, 29123, 29133, 29143, 29153, 29163, 29173, 29183, 29193, - 29203, 29213, 29223, 29233, 29243, 29253, 29263, 29273, 29283, 29293, - 29303, 29313, 29323, 29333, 29343, 1949, 29353, 29363, 29373, 29383, - 29393, 29403, 29413, 29423, 29433, 29443, 29453, 29463, 29473, 29483, - 29493, 29503, 29513, 29523, 29533, 29543, 29553, 29563, 29573, 29583, - 29593, 29603, 29613, 29623, 29633, 29643, 29653, 29663, 29673, 29683, - 29693, 29703, 29713, 29723, 29733, 29743, 29753, 29763, 29773, 29783, - 29793, 29803, 29813, 29823, 29833, 29843, 29853, 29863, 29873, 29883, - 29893, 29903, 29913, 29923, 29933, 29942, 29951, 29960, 29969, 29978, - 29987, 29996, 30005, 30014, 30023, 30032, 30041, 30050, 30059, 30068, - 30077, 30086, 18958, 30095, 30104, 30113, 30122, 30131, 30140, 30149, - 30158, 30167, 30176, 30185, 30194, 30203, 30212, 30221, 30230, 30239, - 30248, 30257, 30266, 30275, 30284, 30293, 30302, 30311, 30320, 30329, - 30338, 30347, 30356, 30365, 30374, 30383, 30392, 30401, 30410, 30419, - 30428, 30437, 30446, 30455, 30464, 30473, 24926, 30482, 30491, 30500, - 30509, 30518, 30527, 30536, 30545, 30554, 30563, 30572, 30581, 30590, - 30599, 30608, 30617, 30626, 30635, 30644, 30653, 30662, 30671, 30680, - 30689, 30698, 30707, 30716, 25135, 30725, 30734, 30743, 30752, 30761, - 30770, 30779, 30788, 30797, 30806, 30815, 30824, 30833, 30842, 30851, - 30860, 30869, 30878, 30887, 30896, 30905, 1287, 30914, 30923, 30932, - 30941, 30950, 30959, 30968, 30977, 30986, 30995, 31004, 31013, 31022, - 31031, 31040, 31049, 29894, 31058, 31067, 31076, 31085, 31094, 31103, - 31112, 31121, 31130, 31139, 31148, 31157, 31166, 31175, 31184, 31193, - 31202, 31211, 31220, 31229, 31238, 31247, 31256, 31265, 31274, 31283, - 31292, 31301, 31310, 31319, 31328, 31337, 31346, 31355, 31364, 31373, - 31382, 31391, 31400, 31409, 31418, 31427, 31436, 31445, 31454, 31463, - 31472, 31481, 31490, 31499, 31508, 31517, 31526, 31535, 31544, 31553, - 31562, 31571, 31580, 31589, 31598, 31607, 31616, 31625, 31634, 31643, - 31652, 31661, 31670, 31679, 31688, 31697, 31706, 31715, 31724, 31733, - 31742, 31751, 31760, 31769, 31778, 31787, 31796, 31805, 31814, 31823, - 31832, 31841, 31850, 31859, 31868, 31877, 31886, 31895, 31904, 31913, - 31922, 31931, 31940, 31949, 31958, 31967, 31976, 31985, 31994, 32003, - 32012, 32021, 32030, 32039, 32048, 32057, 32066, 32075, 32084, 32093, - 32102, 32111, 32120, 32129, 32138, 32147, 32156, 32165, 32174, 32183, - 32192, 32201, 32210, 10766, 32219, 32228, 32237, 32246, 32255, 32264, - 32273, 32282, 32291, 32300, 32309, 32318, 32327, 32336, 32345, 32354, - 32363, 32372, 32381, 32390, 32399, 32408, 32417, 32426, 32435, 32444, - 32453, 32462, 32471, 32480, 32489, 32498, 32507, 32516, 32525, 32534, - 32543, 32552, 32561, 32570, 32579, 32588, 32597, 32606, 32615, 32624, - 32633, 32642, 32651, 32660, 32669, 32678, 32687, 32696, 32705, 32714, - 32723, 1848, 32732, 32741, 32750, 32759, 32768, 32777, 32786, 32795, - 32804, 32813, 32822, 32831, 32840, 32849, 32858, 32867, 32876, 32885, - 32894, 32903, 32912, 32921, 32930, 32939, 32948, 32957, 32966, 32975, - 32984, 32993, 33002, 33011, 33020, 33029, 33038, 33047, 33056, 33065, - 33074, 33083, 33091, 33099, 33107, 33115, 18289, 33123, 33131, 33139, - 33147, 33155, 33163, 33171, 33179, 33187, 33195, 33203, 33211, 33219, - 33227, 33235, 33243, 33251, 33259, 33267, 27465, 33275, 33283, 33291, - 33299, 33307, 33315, 33323, 33331, 33339, 33347, 19609, 33355, 33363, - 33371, 33379, 33387, 33395, 33403, 18317, 33411, 33419, 33427, 33435, - 33443, 1471, 33451, 33459, 2047, 19765, 33467, 1967, 33475, 33483, 33491, - 18373, 33499, 33507, 33515, 33523, 18985, 22362, 33531, 33539, 33547, - 33555, 33563, 33571, 33579, 33587, 33595, 33603, 30402, 33611, 33619, - 33627, 33635, 33643, 33651, 33659, 33667, 33675, 33683, 33691, 1815, - 33699, 33707, 33715, 33723, 33731, 33739, 33747, 33755, 33763, 33771, - 33779, 33787, 33795, 33803, 33811, 33819, 33827, 33835, 33843, 33851, - 33859, 33867, 33875, 33883, 33891, 33899, 33907, 33915, 33923, 33931, - 33939, 33947, 33955, 33963, 33971, 33979, 33987, 33995, 34003, 34011, - 34019, 34027, 34035, 34043, 34051, 34059, 34067, 34075, 34083, 34091, - 27265, 34099, 34107, 34115, 34123, 34131, 34139, 34147, 34155, 34163, - 34171, 34179, 34187, 34195, 34203, 34211, 34219, 30906, 34227, 34235, - 34243, 34251, 34259, 34267, 34275, 34283, 34291, 34299, 34307, 34315, - 34323, 34331, 34339, 34347, 34355, 34363, 34371, 34379, 34387, 34395, - 34403, 34411, 34419, 34427, 34435, 34443, 34451, 34459, 34467, 34475, - 34483, 34491, 34499, 34507, 34515, 34523, 34531, 34539, 34547, 27325, - 34555, 34563, 34571, 34579, 34587, 34595, 34603, 34611, 34619, 34627, - 34635, 34643, 34651, 34659, 34667, 34675, 34683, 26467, 34691, 34699, - 34707, 34715, 34723, 34731, 34739, 34747, 34755, 34763, 34771, 34779, - 34787, 34795, 34803, 34811, 34819, 34827, 34835, 34843, 34851, 34859, - 34867, 34875, 34883, 34891, 34899, 34907, 34915, 34923, 34931, 34939, - 34947, 34955, 34963, 34971, 34979, 34987, 34995, 30951, 35003, 35011, - 35019, 35027, 35035, 35043, 35051, 35059, 35067, 35075, 35083, 35091, - 35099, 26588, 35107, 35115, 1934, 35123, 35131, 35139, 35147, 35155, - 35163, 35171, 35179, 32706, 35187, 35195, 35203, 35211, 35219, 35227, - 35235, 35243, 35251, 35259, 35267, 35275, 35283, 35291, 35299, 35307, - 35315, 35323, 35331, 35339, 2015, 35347, 35355, 10863, 35363, 35371, - 35379, 35387, 35395, 35403, 35411, 35419, 35427, 23310, 35435, 35443, - 35451, 35459, 35467, 35475, 35483, 35491, 35499, 35507, 35515, 35523, - 35531, 35539, 35547, 35555, 35563, 35571, 35579, 35587, 35595, 35603, - 35611, 35619, 35627, 35635, 35643, 35651, 35659, 35667, 35675, 35683, - 19141, 35691, 35699, 35707, 35715, 35723, 35731, 35739, 35747, 35755, - 1710, 35763, 35771, 35779, 35787, 35795, 35803, 35811, 35819, 35827, - 35835, 35843, 35851, 35859, 35867, 35875, 35883, 35891, 35899, 35907, - 35915, 35923, 35931, 35939, 35947, 35955, 35963, 35971, 35979, 35987, - 35995, 36003, 36011, 36019, 18905, 36027, 36035, 36043, 36051, 36059, - 36067, 36075, 36083, 36091, 36099, 36107, 28965, 36115, 36123, 36131, - 36139, 36147, 36155, 36163, 36171, 36179, 36187, 36195, 36202, 36209, - 36216, 36223, 36230, 19753, 36237, 36244, 36251, 36258, 36265, 36272, - 36279, 36286, 36293, 36300, 36307, 36314, 36321, 36328, 36335, 36342, - 36349, 11047, 36356, 36363, 36370, 36377, 36384, 36391, 36398, 36405, - 36412, 36419, 36426, 36433, 36440, 36447, 36454, 36461, 36468, 36475, - 36482, 36489, 36496, 36503, 36510, 36517, 1510, 36524, 36531, 1603, - 36538, 36545, 36552, 36559, 36566, 36573, 36580, 36587, 36594, 36601, - 36608, 36615, 36622, 36629, 36636, 36643, 36650, 1354, 36657, 36664, - 36671, 36678, 36685, 36692, 36699, 36706, 36713, 36720, 36727, 36734, - 36741, 36748, 36755, 36762, 36769, 36776, 36783, 26578, 36790, 36797, - 36804, 36811, 36818, 36825, 36832, 36839, 36846, 36853, 36860, 36867, - 36874, 36881, 36888, 36895, 36902, 36909, 36916, 36923, 36930, 36937, - 36944, 36951, 36958, 36965, 36972, 36979, 36986, 36993, 30187, 37000, - 37007, 37014, 37021, 37028, 37035, 37042, 37049, 37056, 37063, 37070, - 37077, 37084, 37091, 37098, 37105, 37112, 37119, 37126, 37133, 37140, - 37147, 37154, 37161, 37168, 37175, 37182, 37189, 37196, 37203, 37210, - 37217, 37224, 37231, 37238, 37245, 37252, 37259, 37266, 37273, 37280, - 22123, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 37336, 37343, - 37350, 37357, 37364, 37371, 37378, 37385, 37392, 37399, 37406, 37413, - 37420, 37427, 37434, 37441, 37448, 37455, 37462, 37469, 37476, 37483, - 37490, 25291, 37497, 37504, 37511, 37518, 37525, 37532, 37539, 37546, - 37553, 37560, 37567, 30403, 37574, 37581, 37588, 37595, 37602, 37609, - 37616, 37623, 37630, 1747, 37637, 37644, 37651, 37658, 37665, 37672, - 37679, 37686, 37693, 37700, 37707, 37714, 37721, 37728, 37735, 37742, - 37749, 37756, 37763, 37770, 37777, 37784, 37791, 37798, 37805, 37812, - 37819, 37826, 37833, 37840, 37847, 37854, 37861, 37868, 37875, 37882, - 37889, 37896, 37903, 37910, 37917, 37924, 37931, 37938, 37945, 37952, - 37959, 37966, 30952, 37973, 37980, 37987, 37994, 38001, 38008, 38015, - 38022, 38029, 38036, 38043, 38050, 38057, 38064, 38071, 38078, 38085, - 38092, 38099, 38106, 38113, 38120, 38127, 38134, 38141, 38148, 38155, - 26512, 38162, 38169, 38176, 38183, 38190, 38197, 38204, 38211, 38218, - 38225, 38232, 38239, 38246, 38253, 34308, 38260, 38267, 38274, 38281, - 38288, 38295, 38302, 38309, 38316, 38323, 38330, 38337, 38344, 38351, - 38358, 38365, 38372, 38379, 38386, 38393, 38400, 38407, 38414, 38421, - 38428, 38435, 38442, 38449, 38456, 38463, 38470, 38477, 38484, 38491, - 38498, 38505, 38512, 38519, 38526, 38533, 38540, 38547, 38554, 38561, - 38568, 38575, 38582, 29166, 38589, 38596, 38603, 38610, 38617, 35596, - 38624, 38631, 38638, 38645, 38652, 38659, 38666, 38673, 38680, 38687, - 38694, 33196, 38701, 38708, 38715, 38722, 38729, 38736, 38743, 38750, - 38757, 38764, 38771, 38778, 38785, 38792, 38799, 38806, 38813, 38820, - 38827, 38834, 38841, 38848, 38855, 38862, 38869, 38876, 38883, 38890, - 38897, 38904, 30772, 38911, 38918, 38925, 38932, 23167, 38939, 38946, - 38953, 38960, 38967, 38974, 38981, 38988, 38995, 39002, 39009, 39016, - 39023, 39030, 39037, 39044, 39051, 39058, 39065, 39072, 39079, 39086, - 39093, 39100, 39107, 39114, 39121, 39128, 30970, 39135, 39142, 39149, - 28966, 39156, 39163, 39170, 39177, 39184, 39191, 39198, 39205, 39212, - 39219, 39226, 39233, 39240, 39247, 39254, 39261, 39267, 39273, 39279, - 39285, 39291, 39297, 39303, 39309, 39315, 39321, 39327, 38086, 33917, - 39333, 39339, 39345, 39351, 27927, 39357, 39363, 39369, 39375, 39381, - 39387, 39393, 39399, 27127, 39405, 39411, 39417, 39423, 39255, 39429, - 39435, 39441, 39447, 39453, 39459, 39465, 27227, 39471, 39477, 39483, - 39489, 39495, 39501, 39507, 39513, 39519, 39525, 39531, 39537, 39543, - 39549, 39555, 39561, 27287, 39567, 39573, 39579, 39585, 25061, 22148, - 39591, 19299, 28047, 39597, 39603, 39609, 39615, 19065, 39621, 39627, - 1312, 39633, 39639, 1549, 22580, 39645, 39651, 18347, 39657, 22448, - 39663, 39669, 1416, 39675, 18753, 39681, 19286, 39687, 39693, 39699, - 39705, 39711, 39717, 39723, 39729, 39735, 39741, 33613, 39747, 39753, - 39759, 39765, 27137, 39771, 39777, 39783, 39789, 39795, 39801, 39807, - 39813, 39819, 39825, 39831, 10973, 1198, 39837, 39843, 39849, 39855, - 39861, 39867, 39873, 39879, 39885, 39891, 39897, 39903, 39909, 39915, - 39921, 39927, 39933, 39939, 39945, 39951, 22460, 39957, 39963, 39969, - 39975, 39981, 39987, 39993, 39999, 40005, 40011, 40017, 40023, 40029, - 40035, 40041, 40047, 40053, 40059, 26876, 40065, 40071, 40077, 40083, - 40089, 40095, 40101, 40107, 40113, 40119, 40125, 30980, 27197, 40131, - 40137, 40143, 40149, 40155, 40161, 40167, 40173, 40179, 40185, 40191, - 40197, 40203, 40209, 40215, 40221, 40227, 40233, 40239, 40245, 40251, - 40257, 40263, 40269, 40275, 40281, 40287, 40293, 40299, 40305, 27377, - 40311, 40317, 40323, 40329, 40335, 40341, 40347, 40353, 40359, 40365, - 40371, 40377, 40383, 40389, 40395, 40401, 40407, 40413, 40419, 40425, - 40431, 40437, 40443, 40449, 40455, 40461, 40467, 40473, 40479, 40485, - 40491, 40497, 40503, 40509, 40515, 40521, 40527, 40533, 40539, 40545, - 32861, 40551, 40557, 40563, 40569, 40575, 40581, 40587, 40593, 40599, - 40605, 40611, 40617, 40623, 40629, 40635, 40641, 40647, 40653, 40659, - 40665, 40671, 40677, 40683, 40689, 40695, 40701, 40707, 40713, 26469, - 40719, 40725, 40731, 40737, 40743, 40749, 40755, 40761, 40767, 40773, - 40779, 40785, 40791, 40797, 40803, 40809, 40815, 40821, 40827, 40833, - 40839, 40845, 40851, 27367, 40857, 40863, 40869, 40875, 40881, 40887, - 40893, 40899, 40905, 40911, 40917, 40923, 40929, 40935, 40941, 40947, - 40953, 40959, 40965, 40971, 40977, 40983, 40989, 40995, 41001, 41007, - 41013, 41019, 41025, 41031, 41037, 41043, 37827, 41049, 41055, 41061, - 41067, 41073, 41079, 41085, 41091, 41097, 41103, 34469, 41109, 41115, - 41121, 41127, 41133, 41139, 41145, 41151, 41157, 41163, 41169, 41175, - 41181, 36093, 41187, 41193, 41199, 41205, 41211, 41217, 41223, 41229, - 41235, 41241, 41247, 41253, 41259, 41265, 41271, 41277, 41283, 41289, - 41295, 41301, 41307, 41313, 41319, 41325, 41331, 41337, 41343, 41349, - 41355, 41361, 41367, 41373, 41379, 41385, 41391, 41397, 41403, 41409, - 41415, 41421, 41427, 41433, 41439, 41445, 34701, 41451, 41457, 41463, - 41469, 41475, 41481, 41487, 22712, 41493, 41499, 41505, 41511, 41517, - 41523, 41529, 41535, 41541, 41547, 41553, 41559, 41565, 41571, 41577, - 41583, 41589, 41595, 41601, 41607, 41613, 41619, 41625, 41631, 41637, - 41643, 41649, 41655, 41661, 41667, 41673, 41679, 41685, 41691, 41697, - 41703, 41709, 41715, 41721, 41727, 41733, 41739, 41745, 41751, 41757, - 41763, 41769, 41775, 41781, 41787, 41793, 41799, 41805, 41811, 41817, - 41823, 41829, 41835, 41841, 41847, 41853, 41859, 41865, 41871, 41877, - 41883, 41889, 41895, 41901, 41907, 41913, 41919, 41925, 41931, 41937, - 41943, 41949, 41955, 41961, 41967, 41973, 41979, 41985, 41991, 41997, - 42003, 42009, 42015, 42021, 42027, 42033, 42039, 42045, 42051, 42057, - 42063, 42069, 42075, 42081, 42087, 42093, 42099, 42105, 42111, 42117, - 42123, 42129, 42135, 42141, 42147, 42153, 42159, 42165, 42171, 42177, - 42183, 42189, 37169, 42195, 42201, 42207, 42213, 42219, 42225, 42231, - 42237, 42243, 42249, 42255, 42261, 42267, 42273, 42279, 42285, 42291, - 42297, 42303, 42309, 42315, 42321, 42327, 42333, 42339, 42345, 42351, - 42357, 42363, 42369, 42375, 42381, 42387, 42393, 42399, 42405, 42411, - 42417, 42423, 42429, 42435, 42441, 42447, 42453, 42459, 42465, 42471, - 42477, 42483, 42489, 42495, 42501, 42507, 42513, 42519, 42525, 42531, - 42537, 42543, 42549, 42555, 42561, 42567, 42573, 42579, 42585, 42591, - 42597, 42603, 42609, 42615, 42621, 42627, 42633, 42639, 42645, 42651, - 42657, 42663, 42669, 42675, 42681, 42687, 42693, 42699, 42705, 42711, - 42717, 42723, 42729, 32393, 42735, 42741, 42747, 42753, 42759, 42765, - 42771, 42777, 42783, 42789, 42795, 42801, 42807, 42813, 42819, 42825, - 42831, 42837, 42843, 42849, 42855, 10943, 42861, 42867, 42873, 42879, - 42885, 42891, 42897, 42903, 42909, 42915, 42921, 42927, 42933, 42939, - 22496, 42945, 42951, 42957, 39122, 42963, 42969, 30989, 42975, 42981, - 42987, 42993, 42999, 43005, 43011, 43017, 43023, 43029, 43035, 43041, - 43047, 43053, 43059, 43065, 43071, 43077, 43083, 43089, 43095, 43101, - 43107, 43113, 43119, 43125, 43131, 43137, 43143, 43149, 43155, 43161, - 43167, 43173, 43179, 43185, 29087, 43191, 43197, 43203, 43209, 43215, - 43221, 43227, 43233, 43239, 43245, 43251, 43257, 43263, 43269, 43275, - 43281, 43287, 43293, 43299, 43305, 43311, 43317, 43323, 43329, 43335, - 43341, 43347, 43353, 43359, 43365, 43371, 43376, 43381, 43386, 43391, - 43396, 43401, 43406, 43411, 43416, 30198, 43421, 19157, 43426, 43431, - 40864, 43436, 43441, 43446, 28858, 43451, 43456, 43461, 43466, 43471, - 43476, 43481, 43486, 43491, 43496, 43501, 43506, 43511, 43060, 43516, - 41068, 29308, 43521, 43526, 43531, 39784, 43536, 43541, 43546, 43551, - 43556, 43561, 43566, 43571, 43576, 40024, 43581, 43586, 43591, 43596, - 43601, 32682, 43606, 43611, 43616, 43621, 43626, 43631, 43636, 43641, - 43646, 43651, 43656, 43661, 43666, 43671, 43676, 43681, 43686, 43691, - 43696, 1377, 43701, 43706, 43711, 43716, 17919, 43721, 43726, 43731, - 43736, 43741, 43746, 43751, 43756, 43761, 43766, 43771, 43776, 43781, - 43786, 40900, 43791, 43796, 43801, 43806, 43811, 43816, 43821, 43826, - 43831, 43836, 43841, 43846, 43851, 43856, 43861, 43866, 43871, 43876, - 43881, 43886, 39880, 43891, 43896, 42916, 43901, 43906, 434, 43911, - 31152, 43916, 43921, 43926, 43931, 43936, 43941, 43946, 43951, 43956, - 1153, 43961, 43966, 43971, 43976, 43981, 27058, 43986, 43991, 43996, - 44001, 44006, 44011, 39382, 44016, 44021, 44026, 44031, 44036, 44041, - 44046, 44051, 44056, 44061, 44066, 44071, 44076, 44081, 44086, 44091, - 44096, 44101, 44106, 44111, 18949, 44116, 44121, 44126, 44131, 44136, - 44141, 44146, 44151, 44156, 44161, 44166, 44171, 44176, 44181, 44186, - 44191, 43294, 44196, 38220, 44201, 44206, 44211, 44216, 44221, 44226, - 44231, 44236, 42958, 19404, 44241, 44246, 44251, 44256, 40120, 44261, - 44266, 44271, 44276, 44281, 44286, 44291, 44296, 26437, 44301, 44306, - 44311, 44316, 29288, 44321, 44326, 44331, 44336, 44341, 44346, 44351, - 44356, 44361, 44366, 44371, 44376, 44381, 44386, 44391, 44396, 44401, - 44406, 44411, 44416, 44421, 44426, 44431, 44436, 44441, 44446, 44451, - 44456, 44461, 44466, 44471, 44476, 26591, 44481, 44486, 44491, 44496, - 27388, 44501, 33830, 44506, 44511, 44516, 44521, 44526, 44531, 44536, - 44541, 44546, 44551, 44556, 44561, 44566, 44571, 44576, 44581, 44586, - 44591, 44596, 44601, 42634, 44606, 44611, 44616, 32745, 44621, 44626, - 30819, 44631, 44636, 44641, 44646, 44651, 44656, 41446, 44661, 44666, - 37100, 44671, 44676, 44681, 18572, 44686, 44691, 44696, 44701, 35590, - 44706, 44711, 44716, 44721, 44726, 44731, 36974, 38633, 44736, 44741, - 44746, 44751, 44756, 44761, 44766, 44771, 44776, 44781, 44786, 44791, - 44796, 44801, 44806, 44811, 44816, 44821, 44826, 44831, 44836, 44841, - 44846, 44851, 43054, 44856, 37275, 44861, 44866, 44871, 44876, 36358, - 44881, 44886, 44891, 44896, 44901, 44906, 44911, 44916, 44921, 44926, - 44931, 44936, 44941, 44946, 44951, 44956, 44961, 44966, 44971, 44976, - 44981, 28938, 44986, 44991, 44996, 45001, 45006, 38136, 45011, 45016, - 45021, 45026, 45031, 45036, 45041, 45046, 32934, 45051, 45056, 45061, - 45066, 45071, 45076, 45081, 45086, 45091, 45096, 45101, 45106, 45111, - 45116, 45121, 45126, 45131, 45136, 45141, 45146, 45151, 45156, 45161, - 45166, 45171, 45176, 45181, 45186, 45191, 45196, 45201, 45206, 45211, - 45216, 45221, 45226, 45231, 45236, 45241, 45246, 45251, 45256, 45261, - 45266, 45271, 45276, 45281, 45286, 45291, 45296, 45301, 45306, 45311, - 45316, 45321, 45326, 45331, 45336, 45341, 45346, 45351, 45356, 45361, - 45366, 45371, 45376, 45381, 45386, 45391, 45396, 45401, 45406, 45411, - 45416, 45421, 45426, 45431, 45436, 45441, 45446, 45451, 45456, 45461, - 45466, 45471, 45476, 45481, 45486, 45491, 45496, 45501, 45506, 45511, - 45516, 45521, 45526, 45531, 45536, 45541, 45546, 45551, 45556, 45561, - 45566, 45571, 45576, 45581, 45586, 45591, 45596, 45601, 45606, 45611, - 45616, 45621, 45626, 45631, 45636, 45641, 45646, 45651, 45656, 45661, - 45666, 45671, 45676, 45681, 45686, 45691, 45696, 45701, 45706, 45711, - 45716, 45721, 45726, 40750, 40756, 40762, 45731, 45736, 45741, 45746, - 45751, 45756, 45761, 45766, 45771, 45776, 29328, 40768, 40774, 40780, - 45781, 42142, 45786, 45791, 45796, 45801, 45806, 45811, 45816, 45821, - 45826, 45831, 45836, 45841, 45846, 40894, 45851, 45856, 45861, 45866, - 45871, 45876, 45881, 45886, 45891, 45896, 45901, 45906, 45911, 45916, - 45921, 45926, 39682, 45931, 45936, 45941, 45946, 45951, 45956, 45961, - 45966, 45971, 45976, 45981, 45986, 45991, 45996, 46001, 46006, 46011, - 46016, 46021, 46026, 46031, 46036, 46041, 46046, 46051, 46056, 46061, - 46066, 46071, 46076, 46081, 46086, 46091, 46096, 46101, 46106, 46111, - 46116, 46121, 46126, 46131, 46136, 46141, 46146, 46151, 46156, 46161, - 46166, 46171, 46176, 46181, 41074, 41080, 46186, 46191, 46196, 46201, - 46206, 46211, 46216, 46221, 41092, 41098, 46226, 46231, 30666, 46236, - 46241, 46246, 43258, 43264, 46251, 46256, 46261, 46266, 46271, 46276, - 46281, 46286, 46291, 46296, 46301, 46306, 46311, 46316, 46321, 46326, - 46331, 46336, 46341, 46346, 46351, 46356, 46361, 46366, 46371, 46376, - 46381, 46386, 46391, 46396, 46401, 46406, 46411, 46416, 46421, 46426, - 41374, 46431, 41380, 46436, 46441, 46446, 18446, 33486, 46451, 41386, - 41392, 41398, 41404, 41410, 41416, 46456, 46461, 46466, 46471, 40924, - 46476, 40810, 46481, 46486, 46491, 42976, 46496, 46501, 46506, 46511, - 46516, 46521, 46526, 46531, 46536, 46541, 46546, 46551, 46556, 46561, - 46566, 46571, 46576, 46581, 46586, 46591, 46596, 46601, 46606, 46611, - 46616, 46621, 46626, 46631, 46636, 46641, 46646, 46651, 46656, 46661, - 46666, 46671, 46676, 46681, 46686, 46691, 46696, 46701, 46706, 46711, - 46716, 46721, 46726, 46731, 46736, 46741, 46746, 46751, 46756, 46761, - 46766, 46771, 46776, 42484, 40960, 40966, 40972, 42562, 46781, 46786, - 46791, 46796, 46801, 46806, 46811, 46816, 46821, 46826, 46831, 46836, - 46841, 46846, 46851, 46856, 46861, 46866, 46871, 46876, 46881, 46886, - 46891, 46896, 46901, 46906, 41686, 41692, 41698, 46911, 46916, 46921, - 46926, 46931, 46936, 46941, 46946, 46951, 46956, 46961, 46966, 46971, - 46976, 46981, 46986, 41704, 46991, 41710, 41716, 42232, 46996, 47001, - 47006, 47011, 47016, 47021, 47026, 47031, 47036, 47041, 47046, 47051, - 47056, 47061, 47066, 47071, 47076, 47081, 47086, 47091, 47096, 47101, - 47106, 47111, 47116, 47121, 47126, 47131, 47136, 47141, 47146, 47151, - 39280, 47156, 47161, 47166, 47171, 47176, 47181, 47186, 47191, 47196, - 43024, 47201, 47206, 41500, 47211, 41506, 47216, 47221, 47226, 47231, - 47236, 41512, 47241, 41518, 41524, 41530, 47246, 38031, 47251, 47256, - 47261, 47266, 47271, 47276, 47281, 47286, 47291, 47296, 47301, 47306, - 47311, 47316, 47321, 47326, 47331, 47336, 47341, 41536, 41542, 47346, - 47351, 47356, 47361, 47366, 47371, 47376, 47381, 47386, 35374, 47391, - 47396, 41548, 47401, 41554, 29338, 41560, 47406, 47411, 47416, 47421, - 38542, 47426, 47431, 47436, 47441, 47446, 47451, 47456, 47461, 47466, - 47471, 47476, 47481, 47486, 47491, 47496, 47501, 47506, 47511, 47516, - 47521, 47526, 39646, 47531, 47536, 47541, 47546, 47551, 47556, 47561, - 47566, 47571, 47576, 47581, 42238, 47586, 47591, 47596, 47601, 47606, - 47611, 47616, 42244, 47621, 42250, 47626, 47631, 47636, 47641, 41572, - 41584, 39586, 47646, 47651, 47656, 47661, 47666, 47671, 47676, 47681, - 47686, 47691, 47696, 47701, 47706, 47711, 47716, 47721, 47726, 47731, - 38773, 47736, 47741, 47746, 47751, 47756, 47761, 47766, 47771, 47776, - 47781, 47786, 47791, 47796, 47801, 47806, 47811, 47816, 47821, 47826, - 41590, 47831, 47836, 47841, 47846, 47851, 47856, 47861, 47866, 47871, - 47876, 47881, 47886, 47891, 47896, 47901, 47906, 47911, 47916, 47921, - 47926, 47931, 47936, 47941, 47946, 47951, 47956, 47961, 47966, 47971, - 47976, 47981, 47986, 47991, 47996, 48001, 48006, 48011, 48016, 48021, - 48026, 48031, 48036, 48041, 48046, 48051, 48056, 48061, 48066, 48071, - 48076, 48081, 48086, 48091, 48096, 48101, 48106, 48111, 48116, 48121, - 48126, 48131, 48136, 48141, 48146, 48151, 48156, 48161, 48166, 48171, - 48176, 48181, 48186, 48191, 48196, 48201, 48206, 48211, 48216, 48221, - 48226, 48231, 48236, 48241, 48246, 48251, 48256, 48261, 48266, 48271, - 48276, 48281, 48286, 48291, 48296, 42520, 48301, 48306, 48311, 48316, - 48321, 48326, 48331, 48336, 48341, 48346, 48351, 48356, 48361, 48366, - 48371, 48376, 48381, 48386, 48391, 48396, 42646, 42274, 48401, 42280, - 48406, 48411, 48416, 48421, 48426, 48431, 48436, 48441, 48446, 48451, - 48456, 48461, 48466, 48471, 48476, 48481, 48486, 48491, 48496, 48501, - 48506, 48511, 48516, 48521, 48526, 48531, 48536, 48541, 42880, 42886, - 48546, 48551, 48556, 48561, 48566, 31089, 48571, 942, 48576, 48581, - 48586, 48591, 48596, 48601, 48606, 48611, 48616, 48621, 48626, 48631, - 48636, 48641, 48646, 48651, 48656, 48661, 48666, 48671, 48676, 48681, - 48686, 48691, 48696, 48701, 48706, 48711, 48716, 48721, 27328, 48726, - 48731, 42892, 48736, 48741, 48746, 48751, 48756, 48761, 48766, 48771, - 48776, 48781, 42382, 48786, 48791, 48796, 48801, 48806, 48811, 48816, - 48821, 48826, 27138, 48831, 48836, 48841, 48846, 48851, 48856, 38486, - 48861, 48866, 48871, 48876, 48881, 48886, 48891, 48896, 48901, 48906, - 48911, 48916, 48921, 48926, 48931, 48936, 48941, 48946, 48951, 48956, - 48961, 48966, 40636, 48971, 33406, 39011, 29348, 48976, 48981, 48986, - 48991, 48996, 49001, 49006, 49011, 49016, 33702, 49021, 49026, 49031, - 49036, 49041, 41620, 41626, 41632, 49046, 41650, 41836, 41842, 49051, - 49056, 49061, 49066, 49071, 49076, 49081, 49086, 49091, 49096, 49101, - 49106, 49111, 49116, 49121, 49126, 49131, 49136, 49141, 42292, 42298, - 42304, 49146, 49151, 49156, 49161, 49166, 49171, 49176, 49181, 49186, - 42310, 49191, 42316, 49196, 49201, 49206, 49211, 49216, 49221, 49226, - 49231, 49236, 49241, 49246, 49251, 49256, 49261, 49266, 49271, 49276, - 49281, 49286, 49291, 49296, 49301, 49306, 42322, 42328, 49311, 42334, - 42340, 42346, 49316, 49321, 49326, 49331, 49336, 49341, 49346, 49351, - 49356, 49361, 49366, 49371, 49376, 49381, 49386, 49391, 49396, 49401, - 49406, 49411, 49416, 602, 49420, 27259, 49424, 33007, 24876, 49428, - 49432, 49436, 33959, 42581, 49440, 49444, 19743, 41909, 26427, 49448, - 49452, 49456, 41225, 32368, 40451, 49460, 49464, 49468, 32638, 49472, - 49476, 49480, 39395, 39797, 45837, 49484, 49488, 49492, 22282, 49496, - 49500, 49504, 38858, 41069, 49508, 18601, 49512, 49516, 49520, 28969, - 49524, 49528, 49532, 49536, 39473, 45832, 49540, 33559, 27159, 45652, - 36268, 19197, 39737, 49544, 26570, 49548, 44277, 31081, 49552, 49556, - 49560, 49564, 30451, 38543, 49568, 29069, 40811, 49572, 37374, 48912, - 49576, 40895, 46937, 49580, 49584, 44857, 49588, 49592, 38914, 49596, - 43817, 23302, 45842, 49600, 49604, 49608, 49612, 260, 35095, 49616, - 49620, 25503, 49624, 49628, 39845, 49632, 30928, 40409, 49636, 49640, - 49644, 46227, 49648, 49652, 49656, 49660, 46067, 49664, 49668, 49672, - 49676, 49680, 47192, 49684, 49688, 49692, 49696, 49700, 46912, 33052, - 49704, 49708, 49712, 49716, 49720, 49724, 49728, 49732, 49736, 47732, - 33943, 49740, 49744, 49748, 49752, 49756, 49760, 49764, 48582, 49768, - 27439, 43055, 40319, 34151, 49772, 49776, 49780, 40481, 46457, 46462, - 49784, 46232, 39131, 49788, 49792, 49796, 49800, 45847, 36842, 49804, - 48442, 32125, 49808, 40523, 35775, 37332, 49812, 49816, 42239, 49820, - 37136, 24694, 45892, 38123, 49824, 49828, 49832, 49836, 48567, 49840, - 49844, 49848, 44827, 49852, 49856, 49860, 49864, 49868, 49872, 47727, - 46742, 49876, 38746, 49880, 49884, 49888, 49892, 49896, 49900, 49904, - 49908, 47742, 48307, 49912, 49916, 49920, 49924, 49928, 49932, 48877, - 31270, 37213, 48887, 49936, 22030, 49940, 1177, 48922, 48927, 29089, - 48712, 49944, 34047, 49948, 49952, 49956, 49960, 49964, 40493, 49968, - 49972, 37423, 45067, 49976, 49980, 37430, 43295, 49984, 49988, 40013, - 49992, 49996, 50000, 50004, 50008, 50012, 50016, 30739, 45667, 50020, - 45817, 38291, 34607, 50024, 50028, 50032, 50036, 50040, 50044, 50048, - 50052, 50056, 50060, 50064, 50068, 50072, 50076, 50080, 50084, 50088, - 50092, 50096, 31144, 50100, 50104, 50108, 50112, 50116, 50120, 50124, - 50128, 46342, 46347, 50132, 50136, 50140, 50144, 50148, 50152, 50156, - 50160, 46377, 50164, 40901, 43692, 50168, 50172, 42809, 50176, 50180, - 50184, 50188, 50192, 41159, 50196, 33079, 50200, 50204, 50208, 50212, - 50216, 50220, 50224, 50228, 50232, 46202, 44837, 44842, 46527, 50236, - 50240, 50244, 46587, 50248, 22750, 50252, 50256, 46637, 50260, 30748, - 50264, 50268, 50272, 50276, 50280, 35103, 50284, 50288, 50292, 50296, - 50300, 50304, 43972, 50308, 42257, 50312, 50316, 50320, 50324, 24898, - 50328, 32503, 50332, 50336, 33903, 50340, 50344, 50348, 41963, 50352, - 50356, 50360, 50364, 50368, 18447, 47747, 973, 50372, 50376, 50380, - 50384, 48587, 50388, 30289, 50392, 50396, 50400, 50404, 50408, 50412, - 50416, 50420, 50424, 50428, 50432, 48882, 50436, 50440, 50444, 50448, - 35671, 50452, 50456, 34495, 50460, 40031, 50464, 50468, 50472, 30325, - 50476, 42605, 50480, 38445, 50484, 50488, 50492, 50496, 50500, 50504, - 50508, 50512, 41417, 40487, 50516, 50520, 40403, 50524, 50528, 50532, - 50536, 50540, 47867, 50544, 47882, 47912, 50548, 50552, 50556, 48737, - 50560, 50564, 50568, 44287, 50572, 44617, 47972, 50576, 50580, 50584, - 42017, 50588, 49067, 34375, 42161, 50592, 50596, 43229, 31099, 40253, - 50600, 32989, 50604, 34559, 27229, 50608, 50612, 50616, 50620, 50624, - 50628, 50632, 50636, 50640, 50644, 50648, 50652, 50656, 50660, 50664, - 50668, 50672, 50676, 50680, 50684, 50688, 50692, 50696, 50700, 50704, - 50708, 50712, 50716, 50720, 50724, 50728, 50732, 50736, 50740, 50744, - 50748, 50752, 50756, 50760, 50764, 50768, 50772, 50776, 50780, 50784, - 50788, 50792, 50796, 50800, 50804, 50808, 50812, 50816, 50820, 50824, - 50828, 50832, 50836, 50840, 50844, 50848, 50852, 50856, 50860, 50864, - 50868, 50872, 50876, 50880, 50884, 50888, 50892, 50896, 50900, 50904, - 50908, 50912, 50916, 50920, 50924, 50928, 50932, 50936, 50940, 50944, - 50948, 50952, 50956, 50960, 50964, 50968, 50972, 50976, 50980, 50984, - 50988, 50992, 50996, 51000, 51004, 51008, 51012, 51016, 51020, 51024, - 51028, 51032, 51036, 51040, 51044, 51048, 51052, 51056, 51060, 51064, - 51068, 51072, 45597, 35295, 45607, 51076, 51080, 51084, 51088, 51092, - 51096, 51100, 32494, 51104, 51108, 45612, 51112, 51116, 45617, 51120, - 51124, 44587, 51128, 45627, 45632, 45637, 51132, 51136, 45642, 45647, - 45657, 45662, 44197, 45672, 51140, 51144, 51148, 45677, 47497, 45682, - 45687, 51152, 30100, 51156, 51160, 51164, 51168, 51172, 51176, 51180, - 51184, 51188, 51192, 45822, 51196, 51200, 51204, 51208, 51212, 36541, - 51216, 51220, 51224, 51228, 51232, 51236, 51240, 51244, 51248, 51252, - 51256, 51260, 51264, 51268, 51272, 51276, 25481, 51280, 51284, 35543, - 51288, 46052, 51292, 46057, 36135, 51296, 46062, 51300, 42071, 46072, - 39647, 51304, 46082, 46087, 46092, 46097, 46102, 46857, 51308, 51312, - 51316, 46107, 48447, 46112, 46122, 51320, 51324, 51328, 46127, 46132, - 44267, 46137, 46142, 46147, 51332, 51336, 51340, 51344, 51348, 51352, - 51356, 51360, 51364, 51368, 51372, 51376, 51380, 51384, 26339, 44552, - 51388, 51392, 51396, 51400, 41117, 51404, 51408, 51412, 51416, 51420, - 51424, 51428, 51432, 51436, 51440, 51444, 51448, 51452, 51456, 51460, - 51464, 51468, 51472, 51476, 51480, 51484, 51488, 51492, 51496, 51500, - 51504, 51508, 51512, 46327, 51516, 46332, 46337, 51520, 51524, 37010, - 46352, 51528, 46357, 51532, 51536, 51540, 46362, 51544, 46367, 46372, - 51548, 44342, 46382, 51552, 461, 51556, 44347, 46387, 46392, 46397, - 46402, 46407, 46412, 46417, 51560, 51564, 51568, 51572, 51576, 51580, - 44467, 29909, 45857, 45867, 30217, 35999, 51584, 51588, 45872, 45877, - 45882, 41939, 51592, 51596, 51600, 51604, 44117, 26394, 32359, 51608, - 51612, 51616, 51620, 51624, 51628, 34967, 51632, 51636, 51640, 51644, - 51648, 45887, 32431, 44812, 36975, 45902, 45907, 51652, 45912, 39683, - 44742, 44747, 44752, 51656, 51660, 51664, 51668, 51672, 51676, 51680, - 51684, 51688, 51692, 51696, 49142, 31198, 40751, 40643, 40763, 26405, - 45007, 51700, 41747, 36031, 48837, 51704, 51708, 51712, 51716, 51720, - 51724, 44452, 46917, 46922, 46927, 51728, 51732, 51736, 46932, 46942, - 51740, 46947, 46952, 46957, 44457, 46962, 51744, 46967, 47707, 46972, - 46977, 51748, 51752, 32089, 51756, 51760, 47067, 51764, 622, 51768, - 51772, 25426, 51776, 51780, 51784, 51788, 51792, 51796, 51800, 51804, - 51808, 51812, 51816, 51820, 22210, 51824, 51828, 51832, 51836, 51840, - 51844, 51848, 51852, 51856, 51860, 51864, 51868, 51872, 51876, 51880, - 51884, 51888, 51892, 51896, 51900, 51904, 51908, 29899, 46502, 51912, - 44317, 46512, 51916, 51920, 46517, 36331, 24777, 51924, 44832, 48847, - 51928, 51932, 51936, 46277, 51940, 46537, 46542, 51944, 51948, 51952, - 46547, 51956, 284, 46552, 46557, 46562, 44757, 46572, 46577, 46582, - 46592, 46597, 51960, 30460, 51964, 46607, 46612, 51968, 51972, 51976, - 51980, 51984, 51988, 51992, 51996, 52000, 46617, 52004, 52008, 52012, - 52016, 46622, 41891, 46632, 52020, 52024, 46642, 46647, 46652, 46657, - 46662, 38298, 46672, 52028, 46677, 52032, 46687, 52036, 42095, 52040, - 46692, 18190, 46702, 52044, 52048, 52052, 52056, 52060, 39815, 52064, - 40085, 22678, 22138, 52068, 46707, 52072, 46712, 52076, 33679, 52080, - 35871, 27879, 46717, 41429, 46722, 33407, 46732, 52084, 52088, 52092, - 52096, 52100, 52104, 52108, 46737, 43337, 46747, 52112, 52116, 52120, - 52124, 52128, 46752, 52132, 52136, 46757, 52140, 52144, 52148, 37661, - 52152, 52156, 52160, 52164, 43259, 43265, 52168, 52172, 52176, 19652, - 43001, 52180, 52184, 52188, 44187, 52192, 52196, 52200, 52204, 52208, - 52212, 52216, 52220, 52224, 48577, 52228, 52232, 41123, 52236, 52240, - 52244, 52248, 52252, 52256, 52260, 52264, 52268, 52272, 52276, 52280, - 52284, 52288, 52292, 52296, 52300, 52304, 52308, 52312, 52316, 52320, - 52324, 52328, 52332, 52336, 52340, 52344, 52348, 52352, 52356, 52360, - 52364, 52368, 52372, 52376, 52380, 52384, 52388, 52392, 52396, 52400, - 52404, 52408, 52412, 52416, 52420, 52424, 52428, 52432, 52436, 52440, - 52444, 47752, 33119, 52448, 47757, 41363, 47767, 29009, 35311, 52452, - 52456, 52460, 43073, 52464, 52468, 43792, 48332, 47777, 52472, 52476, - 52480, 52484, 52488, 48342, 47782, 47787, 47792, 47797, 52492, 52496, - 47802, 47807, 47812, 47817, 52500, 52504, 52508, 36063, 25514, 48602, - 52512, 52516, 48612, 48617, 52520, 52524, 52528, 48622, 52532, 52536, - 48627, 48632, 52540, 52544, 52548, 38648, 48642, 48647, 52552, 48652, - 52556, 30109, 52560, 44377, 52564, 48657, 52568, 48662, 48667, 48672, - 48677, 48682, 48687, 52572, 52576, 52580, 52584, 52588, 52592, 52596, - 52600, 52604, 52608, 52612, 48892, 48697, 52616, 52620, 52624, 52628, - 52632, 52636, 52640, 52644, 52648, 52652, 52656, 52660, 1955, 52664, - 52668, 52672, 52676, 52680, 52684, 52688, 52692, 52696, 52700, 52704, - 52708, 52712, 52716, 52720, 52724, 52728, 52732, 52736, 49167, 46257, - 52740, 52744, 27869, 52748, 52752, 45062, 29329, 40769, 40775, 33687, - 37276, 52756, 34447, 52760, 52764, 52768, 52772, 52776, 52780, 52784, - 52788, 52792, 52796, 52800, 52804, 52808, 52812, 52816, 52820, 52824, - 52828, 52832, 52836, 52840, 52844, 52848, 52852, 52856, 52860, 52864, - 52868, 52872, 52876, 52880, 52884, 52888, 52892, 52896, 47112, 47117, - 46807, 46812, 44422, 46817, 52900, 44427, 52904, 46822, 46827, 44432, - 47122, 47127, 47132, 52908, 52912, 52916, 52920, 52924, 52928, 52932, - 52936, 52940, 52944, 52948, 52952, 52956, 37626, 52960, 52964, 52968, - 44382, 52972, 52976, 52980, 52984, 52988, 52992, 47862, 52996, 44607, - 47872, 47877, 44612, 47887, 53000, 47892, 47897, 53004, 47902, 47907, - 53008, 53012, 53016, 53020, 53024, 47917, 47922, 47927, 49342, 47932, - 53028, 47937, 47942, 47947, 47952, 53032, 48962, 53036, 47957, 47962, - 53040, 47967, 53044, 47977, 48747, 47982, 47987, 47992, 47997, 53048, - 42474, 36675, 1086, 19640, 49781, 603, 39492, 28980, 27870, 33560, 5572, - 19198, 53052, 53055, 53058, 31190, 33296, 4804, 5060, 32504, 50381, - 45013, 53061, 37438, 39864, 50369, 32288, 38138, 49533, 5316, 53064, - 26516, 53067, 36955, 53070, 36731, 49589, 29110, 50293, 43224, 40230, - 974, 53073, 10931, 53076, 24899, 53079, 44743, 34008, 651, 38544, 42522, - 31910, 1419, 672, 4868, 6084, 51633, 18896, 49108, 53082, 26571, 23315, - 44553, 44748, 51669, 49757, 37704, 23111, 53085, 45893, 22643, 800, - 18938, 764, 40410, 44053, 991, 40086, 1155, 38446, 53088, 53091, 23171, - 53094, 41826, 28910, 25130, 41046, 32198, 53097, 38642, 23435, 40032, - 43290, 53100, 53103, 53106, 53109, 42018, 53112, 51185, 22679, 53115, - 22703, 37662, 53118, 53121, 53124, 22139, 53127, 43170, 35872, 25427, - 30929, 53130, 53133, 42468, 53136, 5124, 51093, 51305, 38992, 53139, - 30452, 50185, 53142, 11036, 27850, 36899, 51661, 31145, 53145, 38761, - 51089, 53148, 30479, 26582, 22391, 40218, 37270, 37851, 1127, 10756, - 53151, 298, 40518, 51657, 49208, 53154, 41988, 50001, 18951, 24695, 5908, - 27900, 19445, 34040, 50189, 22583, 53157, 53160, 53163, 33152, 53166, - 18448, 33080, 51085, 53169, 36000, 33800, 39936, 53172, 53175, 53178, - 29260, 36710, 53181, 53184, 18378, 53187, 36997, 43134, 53190, 12, 53193, - 53196, 5380, 51181, 49553, 53199, 39600, 31028, 623, 36096, 6148, 53202, - 53205, 53208, 53211, 33008, 1091, 34120, 53214, 53217, 22739, 53220, - 37543, 22451, 53223, 51961, 49168, 53226, 24659, 34112, 51097, 53229, - 51189, 28000, 53232, 53235, 53238, 32495, 36339, 50501, 53241, 40686, - 53244, 53247, 53250, 53253, 53256, 53259, 42594, 53262, 53265, 53268, - 53271, 53274, 53277, 53280, 52541, 53283, 26989, 31019, 53286, 53289, - 53292, 53295, 53298, 45888, 51377, 53301, 1178, 285, 53304, 53307, 53310, - 26329, 53313, 52673, 53316, 37144, 35760, 53319, 50621, 51393, 53322, - 18131, 53325, 4676, 4692, 48873, 53328, 30461, 50525, 24683, 45608, - 53331, 53334, 53337, 27440, 5348, 5364, 1476, 53340, 53343, 5588, 53346, - 53349, 53352, 53355, 53358, 47158, 24778, 6164, 51429, 53361, 53364, - 53367, 51357, 324, 53370, 53373, 53376, 53379, 51541, 38943, 27530, - 26395, 40254, 53382, 26384, 1082, 50193, 53385, 42006, 794, 53388, 53391, - 53394, 53397, 53400, 53403, 53406, 53409, 53412, 45003, 53415, 52657, - 53418, 786, 53421, 40068, 53424, 53427, 53430, 53433, 53436, 53439, - 53442, 53445, 45053, 53448, 53451, 44513, 53454, 53457, 53460, 40500, - 53463, 53466, 53469, 40776, 29340, 53472, 53475, 53478, 1972, 52233, - 53481, 53484, 41154, 53487, 53490, 45998, 53493, 53496, 53499, 53502, - 53505, 30011, 53508, 53511, 53514, 37557, 52557, 53517, 53520, 53523, - 53526, 40092, 53529, 53532, 18868, 44348, 1032, 46868, 53535, 53538, - 39336, 53541, 46773, 53544, 51149, 51881, 53547, 53550, 45813, 53553, - 44153, 53556, 52161, 19407, 416, 286, 38237, 1316, 2325, 39973, 21, 38, - 32694, 50274, 53559, 30075, 53561, 320, 36305, 53563, 36235, 42469, - 49918, 213, 44189, 53565, 479, 34049, 53518, 53567, 919, 40093, 42079, - 316, 395, 53569, 885, 30651, 204, 53571, 53329, 53573, 53575, 4, 27891, - 1102, 43604, 1115, 36466, 53577, 53579, 24834, 892, 50538, 373, 53200, - 771, 88, 51526, 703, 53581, 351, 106, 44484, 53116, 39793, 24867, 39325, - 53583, 53585, 35145, 49498, 53587, 53589, 53591, 25164, 43679, 53593, - 53595, 34617, 51966, 53597, 8, 1056, 554, 998, 36034, 39, 98, 14, 5, 161, - 102, 317, 70, 9, 52, 321, 34, 53225, 401, 171, 404, 523, 53599, 53600, + 0, 0, 6, 10, 15, 23, 27, 34, 39, 41, 44, 50, 63, 75, 84, 90, 95, 103, + 112, 116, 121, 129, 134, 137, 144, 149, 157, 163, 169, 177, 184, 194, + 199, 202, 209, 212, 217, 226, 232, 241, 248, 255, 260, 264, 273, 281, + 282, 288, 294, 302, 308, 314, 320, 328, 333, 340, 344, 347, 349, 355, + 362, 369, 377, 380, 385, 390, 396, 398, 403, 412, 419, 425, 286, 430, + 432, 434, 438, 443, 446, 452, 456, 464, 474, 481, 113, 490, 498, 503, + 511, 516, 524, 535, 538, 542, 555, 565, 571, 574, 575, 582, 584, 593, + 301, 596, 600, 608, 613, 615, 619, 622, 628, 635, 642, 647, 651, 660, + 670, 679, 688, 692, 698, 706, 713, 721, 725, 731, 735, 743, 752, 756, + 627, 763, 771, 775, 784, 789, 792, 796, 804, 813, 816, 821, 831, 840, + 847, 200, 733, 850, 857, 580, 865, 873, 879, 884, 891, 894, 900, 906, + 911, 916, 929, 22, 934, 937, 947, 952, 956, 962, 971, 974, 984, 993, 997, + 1002, 1007, 1012, 1019, 1027, 1030, 1040, 1043, 1045, 1053, 1057, 1061, + 93, 1064, 1069, 1075, 1077, 1086, 1089, 1092, 1097, 1099, 1105, 1111, + 1113, 1117, 331, 1120, 1128, 1132, 1136, 1141, 1144, 1150, 1154, 1161, + 1164, 1170, 80, 1176, 1178, 1181, 1183, 657, 1188, 1196, 1203, 1213, + 1222, 1230, 1232, 1256, 1278, 1300, 1322, 1343, 1364, 1384, 1404, 1423, + 1442, 1461, 1480, 1499, 1518, 1537, 1556, 1574, 1592, 1610, 1628, 1646, + 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1807, 1824, 1841, 1858, + 1875, 1892, 1909, 1926, 1943, 1960, 1977, 1994, 2011, 2028, 2045, 2062, + 2079, 2096, 2113, 2130, 2147, 2164, 2181, 2198, 2215, 2232, 2249, 2266, + 2283, 2300, 2317, 2334, 2351, 2368, 2385, 2402, 2419, 2436, 2453, 2470, + 2487, 2504, 2521, 2538, 2555, 2572, 2589, 2606, 2623, 2640, 2657, 2674, + 2691, 2708, 2725, 2742, 2759, 2776, 2793, 2810, 2826, 2842, 2858, 2874, + 2890, 2906, 2922, 2938, 2954, 2970, 2986, 3002, 3018, 3034, 3050, 3066, + 3082, 3098, 3114, 3130, 3146, 3162, 3178, 3194, 3210, 3226, 3242, 3258, + 3274, 3290, 3306, 3322, 3338, 3354, 3370, 3386, 3402, 3418, 3434, 3450, + 3466, 3482, 3498, 3514, 3530, 3546, 3562, 3578, 3594, 3610, 3626, 3642, + 3658, 3674, 3690, 3706, 3722, 3738, 3754, 3770, 3786, 3802, 3818, 3834, + 3850, 3866, 3882, 3898, 3914, 3930, 3946, 3962, 3978, 3994, 4010, 4026, + 4042, 4058, 4074, 4090, 4106, 4122, 4138, 4154, 4170, 4186, 4202, 4218, + 4234, 4250, 4266, 4282, 4298, 4314, 4330, 4346, 4362, 4378, 4394, 4410, + 4426, 4442, 4458, 4474, 4490, 4506, 4522, 4538, 4554, 4570, 4586, 4602, + 4618, 4634, 4650, 4666, 4682, 4698, 4714, 4730, 4746, 4762, 4778, 4794, + 4810, 4826, 4842, 4858, 4874, 4890, 4906, 4922, 4938, 4954, 4970, 4986, + 5002, 5018, 5034, 5050, 5066, 5082, 5098, 5114, 5130, 5146, 5162, 5178, + 5194, 5210, 5226, 5242, 5258, 5274, 5290, 5306, 5322, 5338, 5354, 5370, + 5386, 5402, 5418, 5434, 5450, 5466, 5482, 5498, 5514, 5530, 5546, 5562, + 5578, 5594, 5610, 5626, 5642, 5658, 5674, 5690, 5706, 5722, 5738, 5754, + 5770, 5786, 5802, 5818, 5834, 5850, 5866, 5882, 5898, 5914, 5930, 5946, + 5962, 5978, 5994, 6010, 6026, 6042, 6058, 6074, 6090, 6106, 6122, 6138, + 6154, 6170, 6186, 6202, 6218, 6234, 6250, 6266, 6282, 6298, 6314, 6330, + 6346, 6362, 6378, 6394, 6410, 6426, 6442, 6458, 6474, 6490, 6506, 6522, + 6538, 6554, 6570, 6586, 6602, 6618, 6634, 6650, 6666, 6682, 6698, 6714, + 6730, 6746, 6762, 6778, 6794, 6810, 6826, 6842, 6858, 6874, 6890, 6906, + 6922, 6938, 6954, 6970, 6986, 7002, 7018, 7034, 7050, 7066, 7082, 7098, + 7114, 7130, 7146, 7162, 7178, 7194, 7210, 7226, 7242, 7258, 7274, 7290, + 7306, 7322, 7338, 7354, 7370, 7386, 7402, 7418, 7434, 7450, 7466, 7482, + 7498, 7514, 7530, 7546, 7562, 7578, 7594, 7610, 7626, 7642, 7658, 7674, + 7690, 7706, 7722, 7738, 7754, 7770, 7786, 7802, 7818, 7834, 7850, 7866, + 7882, 7898, 7914, 7930, 7946, 7962, 7978, 7994, 8010, 8026, 8042, 8058, + 8074, 8090, 8106, 8122, 8138, 8154, 8170, 8186, 8202, 8218, 8234, 8250, + 8266, 8282, 8298, 8314, 8330, 8346, 8362, 8378, 8394, 8410, 8426, 8442, + 8458, 8474, 8490, 8506, 8522, 8538, 8554, 8570, 8586, 8602, 8618, 8634, + 8650, 8666, 8682, 8698, 8714, 8730, 8746, 8762, 8778, 8794, 8810, 8826, + 8842, 8858, 8874, 8890, 8906, 8922, 8938, 8954, 8970, 8986, 9002, 9018, + 9034, 9050, 9066, 9082, 9098, 9114, 9130, 9146, 9162, 9178, 9194, 9210, + 9226, 9242, 9258, 9274, 9290, 9306, 9322, 9338, 9354, 9370, 9386, 9402, + 9418, 9434, 9450, 9466, 9482, 9498, 9514, 9530, 9546, 9562, 9578, 9594, + 9610, 9626, 9642, 9658, 9674, 9690, 9706, 9722, 9738, 9754, 9770, 9786, + 9802, 9818, 9834, 9850, 9866, 9882, 9898, 9914, 9930, 9946, 9962, 9978, + 9994, 10010, 10026, 10042, 10058, 10074, 10090, 10106, 10122, 10138, + 10154, 10170, 10186, 10202, 10218, 10234, 10250, 10266, 10282, 10298, + 10314, 10330, 10346, 10362, 10378, 10394, 10410, 10426, 10442, 10458, + 10474, 10490, 10506, 10522, 10538, 10554, 10570, 10586, 10602, 10618, + 10634, 10650, 10666, 10682, 10698, 10714, 10730, 10746, 10762, 10778, + 10794, 10810, 10826, 10842, 10858, 10874, 10890, 10906, 10922, 10938, + 10954, 10970, 10986, 11002, 11018, 11034, 11050, 11066, 11082, 11098, + 11114, 11130, 11146, 11162, 11178, 11194, 11210, 11226, 11242, 11258, + 11274, 11290, 11306, 11322, 11338, 11354, 11370, 11386, 11402, 11418, + 11434, 11450, 11466, 11482, 11498, 11514, 11530, 11546, 11562, 11578, + 11594, 11610, 11626, 11642, 11658, 11674, 11690, 11706, 11722, 11738, + 11754, 11770, 11785, 11800, 11815, 11830, 11845, 11860, 11875, 11890, + 11905, 11920, 11935, 11950, 11965, 11980, 11995, 12010, 12025, 12040, + 12055, 12070, 12085, 12100, 12115, 12130, 12145, 12160, 12175, 12190, + 12205, 12220, 12235, 12250, 12265, 12280, 12295, 12310, 12325, 12340, + 12355, 12370, 12385, 12400, 12415, 12430, 12445, 12460, 12475, 12490, + 12505, 12520, 12535, 12550, 12565, 12580, 12595, 12610, 12625, 12640, + 12655, 12670, 12685, 12700, 12715, 12730, 12745, 12760, 12775, 12790, + 12805, 12820, 12835, 12850, 12865, 12880, 12895, 12910, 12925, 12940, + 12955, 12970, 12985, 13000, 13015, 13030, 13045, 13060, 13075, 13090, + 13105, 13120, 13135, 13150, 13165, 13180, 13195, 13210, 13225, 13240, + 13255, 13270, 13285, 13300, 13315, 13330, 13345, 13360, 13375, 13390, + 13405, 13420, 13435, 13450, 13465, 13480, 13495, 13510, 13525, 13540, + 13555, 13570, 13585, 13600, 13615, 13630, 13645, 13660, 13675, 13690, + 13705, 13720, 13735, 13750, 13765, 13780, 13795, 13810, 13825, 13840, + 13855, 13870, 13885, 13900, 13915, 13930, 13945, 13960, 13975, 13990, + 14005, 14020, 14035, 14050, 14065, 14080, 14095, 14110, 14125, 14140, + 14155, 14170, 14185, 14200, 14215, 14230, 14245, 14260, 14275, 14290, + 14305, 14320, 14335, 14350, 14365, 14380, 14395, 14410, 14425, 14440, + 14455, 14470, 14485, 14500, 14515, 14530, 14545, 14560, 14575, 14590, + 14605, 14620, 14635, 14650, 14665, 14680, 14695, 14710, 14725, 14740, + 14755, 14770, 14785, 14800, 14815, 14830, 14845, 14860, 14875, 14890, + 14905, 14920, 14935, 14950, 14965, 14980, 14995, 15010, 15025, 15040, + 15055, 15070, 15085, 15100, 15115, 15130, 15145, 15160, 15175, 15190, + 15205, 15220, 15235, 15250, 15265, 15280, 15295, 15310, 15325, 15340, + 15355, 15370, 15385, 15400, 15415, 15430, 15445, 15460, 15475, 15490, + 15505, 15520, 15535, 15550, 15565, 15580, 15595, 15610, 15625, 15640, + 15655, 15670, 15685, 15700, 15715, 15730, 15745, 15760, 15775, 15790, + 15805, 15820, 15835, 15850, 15865, 15880, 15895, 15910, 15925, 15940, + 15955, 15970, 15985, 16000, 16015, 16030, 16045, 16060, 16075, 16090, + 16105, 16120, 16135, 16150, 16165, 16180, 16195, 16210, 16225, 16240, + 16255, 16270, 16285, 16300, 16315, 16330, 16345, 16360, 16375, 16390, + 16405, 16420, 16435, 16450, 16465, 16480, 16495, 16510, 16525, 16540, + 16555, 16570, 16585, 16600, 16615, 16630, 16645, 16660, 16675, 16690, + 16705, 16720, 16735, 16750, 16765, 16780, 16795, 16810, 16825, 16840, + 16855, 16870, 16885, 16900, 16915, 16930, 16945, 16960, 16975, 16990, + 17005, 17020, 17035, 17050, 17065, 17080, 17095, 17110, 17125, 17140, + 17155, 17170, 17185, 17200, 17215, 17230, 17245, 17260, 17275, 17290, + 17305, 17320, 17335, 17350, 17365, 17380, 17395, 17410, 17425, 17440, + 17455, 17470, 17485, 17500, 17515, 17530, 17545, 17560, 17575, 17590, + 17605, 17620, 17635, 17650, 17665, 17680, 17695, 17710, 17725, 17740, + 17755, 17770, 17785, 17800, 17815, 17830, 17845, 17860, 17875, 17890, + 17905, 17920, 17935, 17950, 17965, 17980, 17995, 18010, 18025, 18040, + 18055, 18070, 18085, 18100, 18115, 18130, 18145, 18160, 18175, 18190, + 18205, 18220, 18235, 18250, 18265, 18280, 18295, 18310, 18325, 18340, + 18355, 18370, 18385, 18400, 18415, 18430, 18445, 18460, 18475, 18490, + 18505, 18520, 18535, 18550, 18565, 18580, 18595, 18610, 18625, 18640, + 18655, 18670, 18685, 18700, 18715, 18730, 18745, 18760, 18775, 18790, + 18805, 18820, 18835, 18850, 18865, 18880, 18895, 18910, 18925, 18940, + 18955, 18970, 18985, 19000, 19015, 19030, 19045, 19060, 19075, 19090, + 19105, 19120, 19135, 19150, 19165, 19180, 19195, 19210, 19225, 19240, + 19255, 19270, 19285, 19300, 19315, 19330, 19345, 19360, 19375, 19390, + 19405, 19420, 19435, 19450, 19465, 19480, 19495, 19510, 19525, 19540, + 19555, 19570, 19585, 19600, 19615, 19630, 19645, 19660, 19675, 19690, + 19705, 19720, 19735, 19750, 19765, 19780, 19795, 19810, 19825, 19840, + 19855, 19870, 19884, 19898, 19912, 19926, 19940, 1390, 19954, 19968, + 19982, 19996, 20010, 20024, 20038, 20052, 20066, 20080, 20094, 20108, + 20122, 20136, 20150, 20164, 20178, 20192, 20206, 20220, 20234, 20248, + 20262, 20276, 20290, 20304, 20318, 1827, 20332, 20346, 20360, 20374, + 20388, 20402, 20416, 20430, 20444, 20458, 20472, 20486, 20500, 20514, + 20528, 20542, 20556, 20569, 20582, 20595, 20608, 20621, 20634, 20647, + 20660, 20673, 20686, 20699, 20712, 20725, 20738, 20751, 20764, 20777, + 20790, 20803, 20816, 20829, 20842, 20855, 20868, 1777, 20881, 20894, + 20907, 20920, 20933, 20946, 20959, 20972, 20985, 20998, 21011, 21024, + 21037, 21050, 21063, 21076, 21089, 21102, 21115, 21128, 21141, 21154, + 21167, 21180, 21193, 21206, 21219, 21232, 21245, 21258, 21271, 21284, + 21297, 21310, 21323, 21336, 21349, 21362, 21375, 21388, 21401, 21414, + 21427, 21440, 1505, 21453, 21466, 21479, 21492, 21505, 21518, 21531, + 21544, 21557, 21570, 21583, 21596, 21609, 21622, 21635, 21648, 21661, + 21674, 21687, 21700, 21713, 21726, 21739, 21752, 21765, 21778, 21791, + 21804, 21817, 21830, 21843, 21856, 21869, 21882, 21895, 21908, 21921, + 21934, 21947, 21960, 21973, 21986, 21999, 22012, 22025, 22038, 22051, + 22064, 22077, 22090, 22103, 22116, 22129, 22142, 22155, 22168, 22181, + 22194, 22207, 22220, 22233, 22246, 22259, 22272, 22285, 22298, 22311, + 22324, 22337, 22350, 22363, 22376, 22389, 22402, 22415, 22428, 22441, + 22454, 22467, 22480, 22493, 22506, 22519, 22532, 22545, 22558, 22571, + 22584, 22597, 22610, 22623, 22636, 22649, 22662, 22675, 22688, 22701, + 22714, 22727, 22740, 22753, 22766, 22779, 22792, 22805, 22818, 22831, + 22844, 22857, 22870, 22883, 22896, 22909, 22922, 22935, 22948, 22961, + 22974, 22987, 23000, 23013, 23026, 23039, 23052, 23065, 23078, 23091, + 23104, 23117, 23130, 23143, 23156, 23169, 23182, 23195, 23208, 23221, + 23234, 23247, 23260, 23273, 23286, 23299, 23312, 23325, 23338, 23351, + 23364, 23377, 23390, 23403, 23416, 23429, 23442, 23455, 23468, 23481, + 23494, 23507, 23520, 23533, 23546, 23559, 23572, 23585, 23598, 23611, + 23624, 23637, 23650, 23663, 23676, 23689, 23702, 23715, 23728, 23741, + 23754, 23766, 23778, 23790, 23802, 23814, 23826, 23838, 23850, 23862, + 23874, 23886, 23898, 23910, 23922, 23934, 23946, 23958, 23970, 23982, + 1688, 23994, 24006, 24018, 1598, 24030, 24042, 24054, 24066, 24078, + 24090, 24102, 1487, 1580, 24114, 1616, 24126, 24138, 24150, 24162, 24174, + 24186, 24198, 24210, 24222, 24234, 24246, 24258, 24270, 24282, 24294, + 24306, 24318, 24330, 24342, 24354, 24366, 24378, 24390, 24402, 24414, + 24426, 24438, 24450, 24462, 24474, 24486, 24498, 24510, 24522, 24534, + 24546, 24558, 24570, 24582, 24594, 24606, 24618, 24630, 24642, 24654, + 24666, 24678, 24690, 24702, 24714, 24726, 24738, 24750, 24762, 24774, + 24786, 24798, 24810, 24822, 24834, 24846, 24858, 24870, 24882, 24894, + 24906, 24918, 24930, 24942, 24954, 24966, 24978, 24990, 25002, 25014, + 25026, 25038, 25050, 25062, 25074, 25086, 25098, 25110, 25122, 25134, + 25146, 25158, 25170, 25182, 25194, 1372, 25206, 25218, 25230, 1742, + 25242, 25254, 25266, 25278, 25290, 25302, 25314, 25326, 25338, 25350, + 25362, 25374, 25386, 25398, 25410, 25422, 25434, 25446, 25458, 25470, + 25482, 25494, 25506, 25518, 25530, 25542, 25554, 25566, 25578, 25590, + 25602, 25614, 25626, 25638, 25650, 25662, 25674, 25686, 25698, 25710, + 25722, 25734, 25746, 25758, 25770, 25782, 25794, 25806, 25818, 25830, + 25842, 25854, 25866, 25878, 25890, 25902, 25914, 25926, 25938, 25950, + 25962, 25974, 25986, 25998, 26010, 26022, 26034, 26046, 26058, 26070, + 26082, 26094, 26106, 26118, 26130, 26142, 26154, 26166, 26178, 26190, + 26202, 26214, 26226, 26238, 26250, 26262, 26274, 26286, 26298, 26310, + 26322, 26334, 26346, 26358, 26370, 26382, 26394, 26406, 26418, 26430, + 26442, 26454, 26466, 26478, 26490, 26502, 26514, 26526, 26538, 26550, + 26562, 26574, 26585, 26596, 26607, 26618, 26629, 26640, 26651, 26662, + 26673, 26684, 26695, 26706, 26717, 26728, 26739, 26750, 26761, 26772, + 1813, 26783, 26794, 26805, 26816, 26827, 26838, 26849, 26860, 26871, + 2731, 1289, 26882, 1412, 26893, 26904, 26915, 26926, 26937, 26948, 2748, + 26959, 26970, 26981, 26992, 27003, 27014, 27025, 27036, 27047, 27058, + 27069, 27080, 27091, 27102, 2714, 27113, 27124, 27135, 27146, 27157, + 27168, 27179, 27190, 27201, 27212, 27223, 27234, 27245, 27256, 27267, + 27278, 27289, 27300, 27311, 27322, 27333, 27344, 27355, 27366, 27377, + 27388, 27399, 27410, 27421, 27432, 27443, 27454, 27465, 27476, 27487, + 27498, 27509, 27520, 27531, 27542, 27553, 27564, 27575, 27586, 27597, + 27608, 27619, 27630, 27641, 27652, 27663, 27674, 27685, 27696, 27707, + 27718, 27729, 27740, 27751, 27762, 27773, 27784, 27795, 27806, 27817, + 27828, 27839, 27850, 27861, 27872, 27883, 27894, 27905, 27916, 27927, + 27938, 27949, 27960, 27971, 27982, 27993, 28004, 28015, 28026, 28037, + 28048, 28059, 28070, 28081, 28092, 28103, 28114, 28125, 28136, 28147, + 28158, 28169, 28180, 28191, 28202, 28213, 28224, 28235, 28246, 28257, + 28268, 28279, 28290, 20181, 28301, 28312, 28323, 28334, 28345, 28356, + 28367, 28378, 28389, 28400, 28411, 28422, 28433, 28444, 28455, 28466, + 28477, 28488, 28499, 28510, 28521, 28532, 28543, 28554, 28565, 28576, + 28587, 28598, 28609, 28620, 28631, 28642, 28653, 28664, 28675, 28686, + 28697, 28708, 28719, 28730, 28741, 28752, 28763, 28774, 28785, 28796, + 28807, 28818, 28829, 28840, 28851, 28862, 28873, 28884, 28895, 28906, + 28916, 28926, 28936, 28946, 28956, 28966, 28976, 28986, 28996, 29006, + 29016, 29026, 29036, 29046, 29056, 29066, 29076, 29086, 29096, 29106, + 29116, 29126, 29136, 29146, 23828, 29156, 29166, 29176, 29186, 29196, + 29206, 29216, 29226, 29236, 1354, 29246, 29256, 29266, 29276, 29286, + 29296, 29306, 29316, 29326, 29336, 29346, 29356, 29366, 29376, 29386, + 29396, 29406, 29416, 29426, 29436, 29446, 29456, 29466, 29476, 29486, + 29496, 29506, 29516, 29526, 29536, 29546, 29556, 29566, 29576, 29586, + 29596, 29606, 29616, 29626, 29636, 29646, 29656, 29666, 29676, 29686, + 29696, 29706, 29716, 29726, 29736, 29746, 29756, 29766, 29776, 29786, + 29796, 29806, 29816, 29826, 29836, 29846, 29856, 29866, 29876, 29886, + 29896, 29906, 29916, 29926, 29936, 29946, 29956, 29966, 29976, 29986, + 29996, 30006, 30016, 30026, 21157, 30036, 24428, 30046, 30056, 30066, + 30076, 30086, 30096, 30106, 30116, 30126, 30136, 30146, 30156, 30166, + 30176, 30186, 30196, 30206, 30216, 30226, 30236, 30246, 30256, 30266, + 30276, 30286, 30296, 30306, 30316, 30326, 30336, 30346, 30356, 30366, + 30376, 30386, 30396, 30406, 30416, 30426, 30436, 30446, 30456, 30466, + 30476, 30486, 30496, 30506, 30516, 30526, 30536, 30546, 30556, 30566, + 30576, 30586, 30596, 30606, 30616, 30626, 30636, 30646, 30656, 30666, + 30676, 30686, 30696, 30706, 30716, 30726, 30736, 30746, 30756, 30766, + 30776, 30786, 30796, 30806, 30816, 30826, 30836, 30846, 30856, 30866, + 30876, 30886, 30896, 30906, 30916, 30926, 30936, 30946, 30956, 30966, + 30976, 30986, 30996, 31006, 31016, 31026, 31036, 31046, 31056, 31066, + 31076, 31086, 31096, 31106, 31116, 31126, 31136, 31146, 31156, 31166, + 31176, 31186, 31196, 31206, 31216, 31226, 31236, 31246, 31256, 31266, + 31276, 31286, 31296, 31306, 31316, 31326, 31336, 31346, 31356, 31366, + 31376, 31386, 31396, 31406, 31416, 31426, 31436, 31446, 2800, 31456, + 31466, 31476, 31486, 31496, 31506, 31516, 31526, 31536, 31546, 31556, + 31566, 31576, 31586, 31596, 31606, 31616, 31626, 31636, 31646, 31656, + 31666, 31676, 31686, 31696, 31706, 31716, 31726, 31736, 31746, 31756, + 31766, 31776, 31786, 31796, 31806, 31816, 31826, 31836, 31846, 31856, + 31866, 31876, 31886, 31896, 31906, 31916, 31926, 31936, 31946, 31956, + 31966, 31976, 31986, 31996, 32006, 32016, 32026, 32036, 32046, 32056, + 32066, 32075, 32084, 32093, 32102, 32111, 32120, 32129, 32138, 32147, + 32156, 32165, 32174, 32183, 32192, 32201, 32210, 32219, 32228, 32237, + 20573, 32246, 32255, 32264, 32273, 32282, 32291, 32300, 32309, 32318, + 32327, 32336, 32345, 32354, 32363, 32372, 32381, 32390, 32399, 32408, + 32417, 32426, 32435, 32444, 32453, 32462, 32471, 32480, 32489, 32498, + 32507, 32516, 32525, 32534, 32543, 32552, 32561, 32570, 32579, 32588, + 32597, 32606, 32615, 32624, 32633, 32642, 32651, 32660, 32669, 32678, + 26741, 32687, 32696, 32705, 32714, 32723, 32732, 32741, 32750, 32759, + 32768, 32777, 32786, 32795, 32804, 32813, 32822, 32831, 32840, 32849, + 32858, 32867, 32876, 32885, 32894, 32903, 32912, 32921, 32930, 32939, + 32948, 26950, 32957, 32966, 32975, 32984, 32993, 33002, 33011, 33020, + 33029, 33038, 33047, 33056, 33065, 33074, 33083, 33092, 33101, 33110, + 33119, 33128, 33137, 33146, 33155, 33164, 33173, 33182, 1269, 33191, + 33200, 33209, 33218, 33227, 33236, 33245, 33254, 33263, 33272, 33281, + 33290, 33299, 33308, 33317, 33326, 33335, 32027, 33344, 33353, 33362, + 33371, 33380, 33389, 33398, 33407, 33416, 33425, 33434, 33443, 33452, + 33461, 33470, 33479, 33488, 33497, 33506, 33515, 33524, 33533, 33542, + 33551, 33560, 33569, 33578, 33587, 33596, 33605, 33614, 33623, 33632, + 33641, 33650, 33659, 33668, 33677, 33686, 33695, 33704, 33713, 33722, + 33731, 33740, 33749, 33758, 33767, 33776, 33785, 33794, 33803, 33812, + 33821, 33830, 33839, 33848, 33857, 33866, 33875, 33884, 33893, 33902, + 33911, 33920, 33929, 33938, 33947, 33956, 33965, 33974, 33983, 33992, + 34001, 34010, 34019, 34028, 34037, 34046, 34055, 34064, 34073, 34082, + 34091, 34100, 34109, 34118, 34127, 34136, 34145, 34154, 34163, 34172, + 34181, 34190, 34199, 34208, 34217, 34226, 34235, 34244, 34253, 34262, + 34271, 34280, 34289, 34298, 34307, 34316, 34325, 34334, 34343, 34352, + 34361, 34370, 34379, 34388, 34397, 34406, 34415, 34424, 34433, 34442, + 34451, 34460, 34469, 34478, 34487, 34496, 34505, 34514, 34523, 34532, + 34541, 34550, 34559, 11617, 34568, 34577, 34586, 34595, 34604, 34613, + 34622, 34631, 34640, 34649, 34658, 34667, 34676, 34685, 34694, 34703, + 34712, 34721, 34730, 34739, 34748, 34757, 34766, 34775, 34784, 34793, + 34802, 34811, 34820, 34829, 34838, 34847, 34856, 34865, 34874, 34883, + 34892, 34901, 34910, 34919, 34928, 34937, 34946, 34955, 34964, 34973, + 34982, 34991, 35000, 35009, 35018, 35027, 35036, 35045, 35054, 35063, + 35072, 35081, 35090, 35099, 35108, 35117, 35126, 35135, 35144, 35153, + 35162, 2699, 35171, 35180, 35189, 35198, 35207, 35216, 35225, 35234, + 35243, 35252, 35261, 35270, 35279, 35288, 35297, 35306, 35315, 35324, + 35333, 35342, 35351, 35360, 35369, 35378, 35387, 35396, 35405, 35414, + 35423, 35432, 35441, 35450, 35459, 35468, 35477, 35486, 35495, 35504, + 35513, 35522, 35531, 35539, 35547, 35555, 35563, 35571, 35579, 35587, + 35595, 19890, 35603, 35611, 35619, 35627, 35635, 35643, 35651, 35659, + 35667, 35675, 35683, 35691, 35699, 35707, 35715, 35723, 35731, 35739, + 35747, 35755, 35763, 35771, 29428, 35779, 35787, 35795, 35803, 35811, + 35819, 35827, 35835, 35843, 35851, 21276, 35859, 35867, 35875, 35883, + 35891, 35899, 35907, 35915, 35923, 35931, 35939, 21484, 19918, 35947, + 35955, 1453, 35963, 35971, 2898, 35979, 2818, 35987, 35995, 36003, 36011, + 19974, 36019, 36027, 36035, 36043, 36051, 20600, 36059, 24106, 36067, + 36075, 36083, 36091, 36099, 36107, 36115, 36123, 36131, 36139, 36147, + 36155, 36163, 36171, 32589, 36179, 36187, 36195, 36203, 36211, 36219, + 36227, 36235, 36243, 36251, 36259, 36267, 1833, 36275, 36283, 36291, + 36299, 36307, 36315, 36323, 36331, 36339, 36347, 36355, 36363, 36371, + 36379, 36387, 36395, 36403, 36411, 36419, 36427, 36435, 36443, 36451, + 36459, 36467, 36475, 36483, 36491, 36499, 36507, 36515, 36523, 36531, + 36539, 36547, 36555, 36563, 36571, 36579, 36587, 36595, 36603, 36611, + 36619, 36627, 36635, 36643, 36651, 36659, 36667, 36675, 36683, 29208, + 36691, 36699, 36707, 36715, 36723, 36731, 36739, 36747, 36755, 36763, + 36771, 36779, 36787, 36795, 36803, 36811, 33174, 36819, 36827, 36835, + 36843, 36851, 36859, 36867, 36875, 36883, 36891, 36899, 36907, 36915, + 36923, 36931, 36939, 36947, 36955, 36963, 36971, 36979, 36987, 36995, + 37003, 37011, 37019, 37027, 37035, 37043, 37051, 37059, 37067, 37075, + 37083, 37091, 37099, 37107, 37115, 37123, 37131, 37139, 37147, 37155, + 29288, 37163, 37171, 37179, 37187, 37195, 37203, 37211, 37219, 37227, + 37235, 37243, 37251, 37259, 37267, 37275, 37283, 37291, 37299, 37307, + 28304, 37315, 37323, 37331, 37339, 37347, 37355, 37363, 37371, 37379, + 37387, 37395, 37403, 37411, 37419, 37427, 37435, 37443, 37451, 37459, + 37467, 37475, 37483, 37491, 37499, 37507, 37515, 37523, 37531, 37539, + 37547, 37555, 37563, 37571, 37579, 37587, 37595, 37603, 37611, 33228, + 37619, 37627, 37635, 37643, 37651, 37659, 37667, 37675, 37683, 37691, + 37699, 37707, 37715, 37723, 28458, 37731, 37739, 2785, 37747, 37755, + 37763, 37771, 37779, 37787, 37795, 37803, 37811, 35136, 37819, 37827, + 37835, 37843, 37851, 37859, 37867, 37875, 37883, 37891, 37899, 37907, + 37915, 37923, 37931, 37939, 37947, 37955, 37963, 37971, 37979, 37987, + 37995, 2866, 38003, 38011, 11714, 38019, 38027, 38035, 38043, 38051, + 38059, 38067, 38075, 38083, 38091, 25078, 38099, 38107, 38115, 38123, + 38131, 38139, 38147, 38155, 38163, 38171, 38179, 38187, 38195, 38203, + 38211, 38219, 38227, 38235, 38243, 38251, 38259, 38267, 38275, 38283, + 38291, 38299, 38307, 38315, 38323, 38331, 38339, 38347, 38355, 38363, + 38371, 38379, 38387, 20769, 38395, 38403, 38411, 38419, 38427, 38435, + 38443, 38451, 38459, 1728, 38467, 38475, 38483, 38491, 38499, 38507, + 38515, 38523, 38531, 38539, 38547, 38555, 38563, 38571, 26434, 38579, + 38587, 38595, 38603, 38611, 38619, 38627, 38635, 38643, 38651, 38659, + 38667, 38675, 38683, 38691, 38699, 38707, 38715, 38723, 38731, 38739, + 38747, 38755, 38763, 38771, 20520, 38779, 38787, 38795, 38803, 38811, + 38819, 38827, 38835, 38843, 38851, 38859, 38867, 30998, 38875, 38883, + 38891, 38899, 38907, 38915, 38923, 38931, 38939, 38947, 38955, 38962, + 20965, 38969, 38976, 38983, 38990, 38997, 39004, 39011, 39018, 39025, + 20679, 39032, 39039, 39046, 39053, 39060, 39067, 39074, 39081, 39088, + 39095, 39102, 39109, 39116, 39123, 39130, 39137, 39144, 39151, 39158, + 39165, 39172, 39179, 39186, 11898, 39193, 39200, 39207, 39214, 39221, + 39228, 39235, 39242, 39249, 39256, 39263, 39270, 39277, 39284, 39291, + 39298, 39305, 39312, 39319, 39326, 39333, 39340, 39347, 39354, 39361, + 39368, 1492, 39375, 39382, 39389, 1585, 39396, 39403, 39410, 39417, + 39424, 39431, 39438, 39445, 39452, 39459, 39466, 39473, 39480, 39487, + 39494, 1336, 39501, 39508, 39515, 39522, 39529, 39536, 39543, 39550, + 39557, 39564, 39571, 39578, 39585, 39592, 39599, 32356, 39606, 39613, + 39620, 39627, 39634, 39641, 39648, 39655, 39662, 39669, 28448, 39676, + 39683, 39690, 39697, 39704, 39711, 39718, 39725, 39732, 39739, 23855, + 39746, 39753, 39760, 39767, 39774, 39781, 39788, 39795, 39802, 39809, + 39816, 39823, 39830, 39837, 39844, 39851, 39858, 39865, 39872, 39879, + 39886, 39893, 39900, 39907, 39914, 39921, 39928, 39935, 39942, 39949, + 39956, 39963, 39970, 39977, 39984, 39991, 39998, 40005, 40012, 40019, + 40026, 40033, 40040, 40047, 40054, 40061, 40068, 40075, 40082, 40089, + 40096, 40103, 40110, 40117, 40124, 40131, 40138, 40145, 40152, 40159, + 40166, 40173, 40180, 40187, 40194, 40201, 40208, 40215, 40222, 40229, + 40236, 40243, 40250, 40257, 40264, 40271, 40278, 40285, 33022, 40292, + 40299, 40306, 40313, 40320, 40327, 40334, 40341, 40348, 40355, 40362, + 40369, 40376, 40383, 40390, 40397, 40404, 40411, 40418, 40425, 40432, + 40439, 40446, 40453, 40460, 40467, 40474, 40481, 40488, 40495, 40502, + 27106, 40509, 40516, 40523, 40530, 40537, 40544, 40551, 40558, 40565, + 40572, 40579, 40586, 32590, 40593, 40600, 40607, 40614, 40621, 40628, + 40635, 40642, 40649, 1765, 40656, 40663, 40670, 40677, 40684, 40691, + 40698, 40705, 40712, 40719, 40726, 40733, 40740, 40747, 40754, 40761, + 40768, 40775, 40782, 40789, 40796, 40803, 40810, 40817, 40824, 40831, + 40838, 40845, 40852, 40859, 40866, 40873, 40880, 40887, 40894, 40901, + 40908, 40915, 40922, 40929, 40936, 40943, 40950, 40957, 40964, 40971, + 40978, 40985, 40992, 40999, 41006, 41013, 41020, 33229, 41027, 41034, + 41041, 41048, 41055, 41062, 41069, 41076, 41083, 41090, 41097, 41104, + 41111, 41118, 41125, 41132, 41139, 41146, 41153, 41160, 31239, 41167, + 41174, 41181, 41188, 41195, 41202, 41209, 41216, 41223, 41230, 28349, + 41237, 41244, 41251, 41258, 41265, 41272, 41279, 41286, 41293, 41300, + 41307, 41314, 41321, 41328, 36900, 41335, 41342, 41349, 41356, 41363, + 41370, 41377, 41384, 41391, 41398, 41405, 41412, 41419, 41426, 41433, + 41440, 41447, 41454, 41461, 41468, 41475, 41482, 37876, 41489, 41496, + 41503, 41510, 41517, 41524, 41531, 41538, 41545, 41552, 41559, 41566, + 41573, 41580, 41587, 41594, 41601, 41608, 41615, 41622, 41629, 41636, + 41643, 41650, 41657, 41664, 41671, 41678, 41685, 41692, 41699, 41706, + 41713, 41720, 41727, 31199, 41734, 41741, 41748, 41755, 41762, 41769, + 38252, 41776, 41783, 41790, 41797, 41804, 41811, 41818, 41825, 41832, + 41839, 41846, 41853, 41860, 35708, 41867, 41874, 41881, 41888, 41895, + 41902, 41909, 41916, 41923, 41930, 41937, 41944, 41951, 41958, 41965, + 41972, 41979, 41986, 41993, 42000, 42007, 42014, 42021, 42028, 42035, + 42042, 42049, 42056, 42063, 42070, 42077, 42084, 42091, 42098, 42105, + 42112, 42119, 42126, 42133, 42140, 42147, 42154, 42161, 42168, 42175, + 42182, 24935, 42189, 42196, 42203, 42210, 42217, 42224, 42231, 42238, + 42245, 42252, 42259, 42266, 42273, 42280, 42287, 42294, 42301, 42308, + 42315, 42322, 42329, 42336, 42343, 42350, 42357, 42364, 42371, 42378, + 33247, 42385, 42392, 42399, 42406, 30999, 42413, 42420, 42427, 42434, + 42441, 42448, 42455, 42462, 42469, 42476, 42483, 42490, 42497, 42504, + 42511, 42518, 1676, 42525, 42531, 42537, 29600, 30040, 42543, 42549, + 42555, 42561, 21434, 42567, 42573, 42579, 42585, 42591, 42597, 42603, + 29840, 42609, 42615, 41140, 42621, 42627, 42633, 35965, 42639, 42645, + 42651, 42657, 29070, 42663, 42669, 29940, 42675, 42681, 42687, 42693, + 42699, 42705, 42711, 42519, 42717, 42723, 42729, 42735, 42741, 42747, + 29170, 42753, 42759, 42765, 42771, 42777, 42783, 42789, 42795, 42801, + 42807, 42813, 42819, 42825, 29230, 42831, 42837, 42843, 42849, 42855, + 42861, 42867, 42873, 26876, 42879, 42885, 42891, 42897, 20927, 42903, + 42909, 42915, 42921, 42927, 23880, 29460, 42933, 42939, 42945, 42951, + 20693, 42957, 42963, 42969, 42975, 42981, 1294, 42987, 42993, 1531, + 24336, 42999, 43005, 19948, 43011, 24204, 43017, 1398, 20368, 43023, + 43029, 20914, 43035, 43041, 43047, 43053, 43059, 43065, 43071, 43077, + 43083, 43089, 43095, 36181, 43101, 43107, 43113, 43119, 43125, 43131, + 29080, 43137, 43143, 43149, 43155, 43161, 43167, 43173, 43179, 43185, + 43191, 43197, 43203, 43209, 43215, 43221, 43227, 43233, 24216, 11824, + 32069, 43239, 43245, 43251, 43257, 43263, 43269, 43275, 43281, 43287, + 43293, 43299, 43305, 43311, 43317, 43323, 43329, 43335, 43341, 43347, + 43353, 43359, 43365, 43371, 43377, 43383, 43389, 43395, 43401, 43407, + 43413, 43419, 43425, 43431, 43437, 43443, 43449, 43455, 43461, 43467, + 43473, 43479, 43485, 43491, 28779, 43497, 43503, 43509, 43515, 43521, + 43527, 43533, 43539, 43545, 43551, 43557, 43563, 33257, 29140, 43569, + 43575, 43581, 43587, 43593, 43599, 43605, 43611, 43617, 43623, 43629, + 43635, 43641, 43647, 43653, 43659, 43665, 43671, 43677, 43683, 43689, + 43695, 43701, 43707, 43713, 43719, 43725, 43731, 43737, 43743, 43749, + 43755, 43761, 43767, 43773, 43779, 43785, 43791, 29350, 43797, 43803, + 43809, 43815, 43821, 43827, 43833, 43839, 43845, 43851, 43857, 43863, + 43869, 43875, 43881, 43887, 43893, 43899, 43905, 43911, 43917, 43923, + 43929, 43935, 43941, 43947, 43953, 43959, 43965, 43971, 43977, 43983, + 43989, 43995, 44001, 44007, 44013, 44019, 44025, 44031, 44037, 44043, + 44049, 44055, 35309, 44061, 44067, 44073, 44079, 44085, 44091, 44097, + 44103, 44109, 44115, 44121, 44127, 44133, 44139, 44145, 44151, 44157, + 44163, 44169, 44175, 44181, 44187, 44193, 44199, 44205, 44211, 44217, + 44223, 44229, 44235, 28306, 44241, 44247, 44253, 44259, 44265, 44271, + 44277, 44283, 44289, 44295, 44301, 44307, 44313, 44319, 44325, 44331, + 44337, 44343, 44349, 44355, 44361, 44367, 44373, 44379, 44385, 44391, + 44397, 44403, 44409, 29340, 44415, 44421, 44427, 44433, 44439, 44445, + 44451, 44457, 44463, 44469, 44475, 44481, 44487, 44493, 44499, 44505, + 44511, 44517, 44523, 44529, 44535, 44541, 44547, 44553, 44559, 44565, + 44571, 44577, 44583, 44589, 44595, 44601, 44607, 44613, 44619, 40860, + 44625, 44631, 44637, 44643, 44649, 44655, 44661, 44667, 44673, 44679, + 44685, 44691, 44697, 37069, 44703, 44709, 44715, 44721, 44727, 44733, + 44739, 44745, 44751, 44757, 44763, 44769, 44775, 44781, 44787, 44793, + 44799, 44805, 44811, 44817, 44823, 38853, 44829, 44835, 44841, 44847, + 44853, 44859, 44865, 44871, 44877, 44883, 44889, 44895, 44901, 44907, + 44913, 44919, 44925, 44931, 44937, 44943, 44949, 44955, 44961, 44967, + 44973, 44979, 34661, 44985, 44991, 44997, 45003, 45009, 45015, 45021, + 45027, 45033, 45039, 45045, 45051, 45057, 45063, 45069, 45075, 45081, + 45087, 45093, 45099, 45105, 45111, 37325, 45117, 45123, 45129, 45135, + 45141, 45147, 45153, 45159, 45165, 45171, 24468, 45177, 45183, 45189, + 45195, 45201, 45207, 45213, 45219, 45225, 45231, 45237, 45243, 45249, + 45255, 45261, 45267, 45273, 45279, 45285, 45291, 45297, 45303, 45309, + 45315, 45321, 45327, 45333, 45339, 45345, 45351, 40482, 45357, 45363, + 45369, 45375, 45381, 45387, 45393, 45399, 45405, 45411, 45417, 45423, + 45429, 45435, 45441, 45447, 45453, 45459, 45465, 45471, 45477, 45483, + 45489, 45495, 45501, 45507, 45513, 45519, 45525, 45531, 45537, 45543, + 45549, 45555, 45561, 45567, 45573, 45579, 45585, 45591, 45597, 45603, + 45609, 45615, 45621, 45627, 41301, 45633, 45639, 45645, 45651, 45657, + 45663, 45669, 45675, 45681, 45687, 45693, 45699, 45705, 45711, 45717, + 45723, 45729, 45735, 45741, 45747, 45753, 45759, 45765, 45771, 45777, + 45783, 45789, 45795, 45801, 45807, 45813, 45819, 45825, 45831, 45837, + 45843, 45849, 45855, 45861, 45867, 45873, 45879, 45885, 45891, 45897, + 45903, 45909, 45915, 45921, 45927, 45933, 45939, 45945, 45951, 45957, + 45963, 40097, 45969, 45975, 45981, 45987, 45993, 45999, 46005, 46011, + 46017, 46023, 46029, 46035, 46041, 46047, 46053, 46059, 46065, 46071, + 46077, 46083, 46089, 46095, 46101, 46107, 46113, 46119, 46125, 46131, + 46137, 46143, 46149, 46155, 46161, 46167, 46173, 46179, 46185, 46191, + 46197, 46203, 46209, 46215, 46221, 46227, 46233, 46239, 46245, 46251, + 46257, 46263, 46269, 46275, 46281, 46287, 33239, 46293, 46299, 46305, + 46311, 46317, 46323, 46329, 46335, 46341, 46347, 46353, 46359, 46365, + 46371, 46377, 46383, 46389, 46395, 46401, 46407, 46413, 46419, 46425, + 46431, 46437, 46443, 46449, 46455, 46461, 46467, 46473, 46479, 46485, + 46491, 46497, 46503, 46509, 46515, 46521, 46527, 46533, 46539, 46545, + 34751, 46551, 46557, 46563, 46569, 46575, 46581, 46587, 46593, 46599, + 46605, 46611, 46617, 46623, 46629, 46635, 46641, 46647, 46653, 46659, + 46665, 46671, 46677, 46683, 46689, 46695, 11794, 46701, 46707, 46713, + 46719, 46725, 46731, 46737, 46743, 46749, 46755, 46761, 46767, 46773, + 46779, 24252, 46785, 46791, 46797, 46803, 42372, 46809, 46815, 33266, + 46821, 46827, 46833, 46839, 46845, 46851, 46857, 46863, 46869, 46875, + 46881, 46887, 46893, 46899, 46905, 46911, 46917, 46923, 46929, 46935, + 46941, 46947, 46953, 46959, 46965, 46971, 46977, 46983, 46989, 46995, + 47001, 47007, 47013, 47019, 47025, 47031, 47037, 47043, 47049, 47055, + 47061, 47067, 47073, 47079, 47085, 47091, 47097, 31120, 47103, 47109, + 47115, 47121, 47127, 47133, 47139, 47145, 47151, 47157, 47163, 47169, + 47175, 47181, 47187, 47193, 47199, 47205, 47211, 47217, 47223, 47229, + 47235, 47241, 47247, 47253, 47259, 47265, 47271, 47277, 47283, 47289, + 47295, 35013, 47300, 47305, 47310, 47315, 47320, 47325, 47330, 47335, + 47340, 47345, 47350, 47355, 47360, 47365, 47370, 20785, 47375, 47380, + 47385, 47390, 32367, 44422, 47395, 47400, 43162, 47405, 47410, 47415, + 47420, 30891, 47425, 47430, 46918, 47435, 47440, 47445, 47450, 47455, + 47460, 47465, 47470, 47475, 47480, 47485, 47490, 47495, 47500, 47505, + 44662, 46756, 47510, 47515, 47520, 47525, 31411, 47530, 47535, 47540, + 47545, 47550, 47555, 43444, 47560, 47565, 47570, 47575, 47580, 47585, + 47590, 47595, 47600, 47605, 47610, 47615, 47620, 47625, 35112, 47630, + 47635, 47640, 47645, 47650, 47655, 47660, 47665, 47670, 43786, 47675, + 47680, 47685, 47690, 47695, 47700, 47705, 47710, 1359, 47715, 47720, + 47725, 47730, 47735, 38510, 47740, 47745, 42065, 18770, 47750, 47755, + 47760, 47765, 29001, 47770, 47775, 47780, 47785, 47790, 47795, 47800, + 39692, 47805, 47810, 47815, 47820, 47825, 47830, 47835, 47840, 47845, + 44464, 47850, 47855, 47860, 47865, 47870, 47875, 47880, 47885, 47890, + 47895, 47900, 28461, 47905, 34797, 42226, 47910, 47915, 47920, 47925, + 47930, 47935, 47940, 47945, 47950, 47955, 47960, 43282, 47965, 47970, + 47975, 47980, 47985, 485, 33438, 47990, 47995, 48000, 48005, 48010, + 48015, 48020, 48025, 48030, 48035, 48040, 48045, 1100, 48050, 48055, + 48060, 48065, 48070, 48075, 48080, 48085, 48090, 48095, 48100, 48105, + 42670, 48110, 48115, 48120, 48125, 48130, 48135, 48140, 48145, 48150, + 48155, 48160, 33069, 48165, 48170, 48175, 44236, 48180, 48185, 48190, + 48195, 48200, 48205, 48210, 48215, 48220, 48225, 48230, 20564, 48235, + 48240, 48245, 48250, 48255, 48260, 48265, 48270, 48275, 48280, 48285, + 48290, 48295, 48300, 48305, 48310, 48315, 48320, 47212, 48325, 41295, + 48330, 48335, 48340, 48345, 48350, 48355, 48360, 48365, 48370, 46798, + 21071, 48375, 48380, 48385, 48390, 43558, 48395, 48400, 48405, 48410, + 48415, 48420, 48425, 48430, 48435, 48440, 48445, 48450, 28274, 48455, + 48460, 48465, 48470, 31391, 48475, 48480, 48485, 48490, 48495, 48500, + 48505, 48510, 48515, 48520, 48525, 48530, 48535, 48540, 48545, 48550, + 48555, 48560, 48565, 48570, 48575, 42778, 48580, 48585, 48590, 48595, + 48600, 48605, 48610, 48615, 48620, 48625, 48630, 48635, 48640, 48645, + 48650, 48655, 48660, 48665, 48670, 48675, 48680, 48685, 29361, 48690, + 48695, 45358, 36398, 48700, 48705, 48710, 48715, 48720, 48725, 48730, + 48735, 48740, 48745, 48750, 48755, 48760, 48765, 48770, 48775, 48780, + 48785, 48790, 48795, 48800, 48805, 46450, 48810, 48815, 48820, 48825, + 35184, 48830, 48835, 48840, 48845, 48850, 48855, 48860, 48865, 45112, + 48870, 48875, 40007, 48880, 32853, 48885, 20173, 48890, 48895, 48900, + 48905, 48910, 48915, 38246, 48920, 48925, 48930, 48935, 48940, 48945, + 39860, 41799, 48950, 48955, 48960, 48965, 48970, 48975, 48980, 48985, + 48990, 48995, 49000, 49005, 49010, 49015, 49020, 49025, 49030, 49035, + 49040, 49045, 49050, 49055, 49060, 46912, 49065, 49070, 49075, 40231, + 49080, 49085, 49090, 49095, 49100, 39104, 49105, 49110, 49115, 49120, + 49125, 49130, 49135, 49140, 49145, 49150, 49155, 49160, 49165, 49170, + 49175, 49180, 49185, 49190, 49195, 49200, 49205, 30971, 49210, 49215, + 49220, 49225, 49230, 49235, 49240, 41204, 49245, 49250, 28373, 49255, + 49260, 49265, 49270, 49275, 49280, 49285, 49290, 35382, 49295, 49300, + 27328, 49305, 49310, 49315, 49320, 49325, 49330, 49335, 49340, 49345, + 49350, 49355, 49360, 49365, 49370, 49375, 49380, 49385, 49390, 49395, + 49400, 49405, 49410, 49415, 49420, 49425, 49430, 49435, 49440, 49445, + 49450, 49455, 49460, 49465, 49470, 49475, 49480, 49485, 49490, 49495, + 49500, 49505, 49510, 49515, 49520, 49525, 49530, 49535, 49540, 49545, + 49550, 49555, 49560, 49565, 49570, 49575, 49580, 49585, 49590, 49595, + 49600, 49605, 49610, 49615, 49620, 49625, 49630, 49635, 49640, 49645, + 49650, 49655, 49660, 49665, 49670, 49675, 49680, 49685, 49690, 49695, + 49700, 49705, 49710, 49715, 49720, 49725, 49730, 49735, 49740, 49745, + 49750, 49755, 49760, 49765, 49770, 49775, 49780, 49785, 49790, 49795, + 49800, 49805, 49810, 49815, 49820, 49825, 49830, 49835, 49840, 24157, + 49845, 49850, 49855, 49860, 49865, 49870, 49875, 49880, 49885, 49890, + 49895, 49900, 49905, 49910, 49915, 49920, 49925, 49930, 49935, 49940, + 49945, 49950, 49955, 49960, 49965, 49970, 49975, 49980, 49985, 49990, + 49995, 44296, 44302, 44308, 50000, 50005, 50010, 50015, 50020, 50025, + 50030, 50035, 50040, 50045, 50050, 50055, 31431, 44314, 44320, 50060, + 44326, 50065, 45898, 50070, 50075, 50080, 50085, 50090, 50095, 50100, + 50105, 50110, 50115, 50120, 50125, 50130, 50135, 50140, 44458, 50145, + 50150, 50155, 50160, 50165, 50170, 50175, 50180, 50185, 50190, 50195, + 50200, 50205, 50210, 50215, 50220, 50225, 43030, 50230, 50235, 50240, + 50245, 50250, 50255, 50260, 50265, 50270, 50275, 50280, 50285, 50290, + 50295, 50300, 50305, 50310, 50315, 50320, 50325, 50330, 50335, 50340, + 50345, 50350, 50355, 50360, 50365, 50370, 50375, 50380, 50385, 50390, + 50395, 50400, 50405, 50410, 50415, 50420, 50425, 50430, 50435, 50440, + 50445, 50450, 50455, 50460, 50465, 50470, 50475, 50480, 50485, 50490, + 50495, 50500, 50505, 50510, 50515, 50520, 50525, 50530, 50535, 50540, + 44668, 44674, 29471, 50545, 50550, 50555, 50560, 50565, 50570, 50575, + 50580, 50585, 50590, 50595, 50600, 50605, 50610, 39181, 44686, 50615, + 44692, 50620, 50625, 50630, 32898, 50635, 50640, 50645, 50650, 50655, + 47176, 47182, 38334, 50660, 50665, 50670, 50675, 50680, 50685, 50690, + 50695, 50700, 50705, 50710, 50715, 50720, 50725, 50730, 45754, 50735, + 50740, 45760, 50745, 50750, 50755, 50760, 50765, 50770, 50775, 45922, + 50780, 50785, 50790, 50795, 50800, 50805, 50810, 50815, 50820, 50825, + 50830, 50835, 50840, 50845, 50850, 50855, 50860, 50865, 45028, 50870, + 45034, 50875, 50880, 50885, 50890, 50895, 50900, 20047, 50905, 36006, + 50910, 45040, 45046, 45052, 45058, 45064, 45070, 50915, 50920, 50925, + 50930, 44500, 50935, 50940, 44362, 44716, 50945, 50950, 50955, 46822, + 50960, 50965, 50970, 50975, 50980, 50985, 50990, 50995, 51000, 51005, + 51010, 51015, 51020, 51025, 51030, 51035, 51040, 51045, 51050, 51055, + 51060, 51065, 51070, 51075, 51080, 51085, 51090, 51095, 51100, 51105, + 51110, 51115, 51120, 51125, 51130, 51135, 51140, 51145, 51150, 51155, + 51160, 51165, 51170, 51175, 51180, 51185, 51190, 51195, 51200, 51205, + 51210, 51215, 51220, 51225, 51230, 51235, 51240, 51245, 51250, 46282, + 44530, 44536, 44542, 46366, 51255, 51260, 51265, 51270, 51275, 51280, + 51285, 51290, 51295, 51300, 51305, 51310, 51315, 51320, 51325, 51330, + 45076, 51335, 51340, 51345, 51350, 51355, 51360, 51365, 51370, 51375, + 51380, 51385, 51390, 51395, 51400, 45382, 45388, 45394, 51405, 51410, + 51415, 51420, 51425, 51430, 51435, 51440, 51445, 51450, 51455, 51460, + 51465, 51470, 51475, 51480, 51485, 51490, 45400, 51495, 45406, 45412, + 46012, 51500, 51505, 51510, 51515, 51520, 51525, 51530, 51535, 51540, + 51545, 51550, 51555, 51560, 51565, 51570, 51575, 51580, 51585, 51590, + 51595, 51600, 51605, 51610, 51615, 51620, 51625, 51630, 51635, 51640, + 51645, 51650, 51655, 51660, 51665, 51670, 51675, 51680, 51685, 51690, + 51695, 51700, 51705, 51710, 42562, 51715, 51720, 51725, 51730, 51735, + 51740, 51745, 51750, 51755, 51760, 46876, 51765, 51770, 45184, 51775, + 45190, 51780, 51785, 51790, 51795, 51800, 51805, 45196, 51810, 45202, + 45208, 45214, 51815, 51820, 41085, 51825, 51830, 39580, 51835, 51840, + 51845, 51850, 51855, 51860, 51865, 51870, 51875, 51880, 51885, 51890, + 51895, 51900, 51905, 51910, 51915, 51920, 51925, 51930, 51935, 51940, + 51945, 45220, 45226, 51950, 51955, 51960, 51965, 51970, 51975, 51980, + 51985, 38030, 51990, 51995, 45232, 52000, 45238, 31441, 45244, 52005, + 52010, 52015, 52020, 52025, 41673, 52030, 52035, 52040, 52045, 52050, + 52055, 52060, 52065, 52070, 52075, 52080, 52085, 52090, 52095, 52100, + 52105, 52110, 52115, 52120, 52125, 52130, 44818, 43000, 52135, 52140, + 52145, 52150, 52155, 52160, 52165, 52170, 52175, 52180, 52185, 52190, + 46018, 52195, 52200, 52205, 52210, 52215, 52220, 52225, 52230, 52235, + 52240, 52245, 52250, 52255, 46024, 52260, 52265, 46030, 52270, 52275, + 52280, 39790, 52285, 52290, 52295, 45256, 45268, 42928, 52300, 52305, + 52310, 52315, 52320, 52325, 52330, 52335, 52340, 52345, 52350, 52355, + 52360, 52365, 52370, 52375, 52380, 52385, 52390, 52395, 41953, 52400, + 52405, 52410, 52415, 52420, 52425, 52430, 52435, 52440, 52445, 52450, + 52455, 52460, 52465, 52470, 52475, 52480, 52485, 52490, 52495, 45274, + 52500, 52505, 52510, 52515, 52520, 52525, 52530, 52535, 52540, 52545, + 52550, 52555, 52560, 52565, 52570, 52575, 52580, 52585, 52590, 52595, + 52600, 52605, 52610, 52615, 52620, 52625, 52630, 52635, 52640, 52645, + 52650, 52655, 52660, 52665, 52670, 52675, 52680, 52685, 52690, 52695, + 52700, 52705, 52710, 52715, 52720, 52725, 52730, 52735, 52740, 52745, + 52750, 52755, 52760, 52765, 52770, 52775, 52780, 52785, 52790, 52795, + 52800, 52805, 52810, 52815, 52820, 52825, 52830, 52835, 52840, 52845, + 52850, 52855, 52860, 52865, 52870, 52875, 52880, 52885, 52890, 52895, + 52900, 52905, 52910, 52915, 52920, 52925, 52930, 52935, 52940, 52945, + 52950, 52955, 52960, 52965, 52970, 52975, 52980, 52985, 52990, 52995, + 53000, 53005, 53010, 46324, 53015, 53020, 53025, 53030, 53035, 53040, + 53045, 53050, 53055, 53060, 53065, 53070, 53075, 53080, 53085, 53090, + 53095, 53100, 53105, 53110, 53115, 46462, 46048, 53120, 46054, 53125, + 53130, 53135, 53140, 53145, 53150, 53155, 53160, 53165, 53170, 53175, + 53180, 53185, 53190, 53195, 53200, 53205, 53210, 53215, 53220, 53225, + 53230, 53235, 28219, 53240, 53245, 53250, 53255, 53260, 53265, 53270, + 53275, 53280, 53285, 53290, 53295, 53300, 46720, 46726, 53305, 53310, + 53315, 53320, 53325, 53330, 53335, 33375, 53340, 1081, 53345, 53350, + 53355, 53360, 53365, 53370, 53375, 53380, 53385, 53390, 53395, 53400, + 53405, 53410, 53415, 53420, 53425, 53430, 53435, 53440, 53445, 53450, + 53455, 53460, 53465, 53470, 53475, 53480, 53485, 53490, 53495, 53500, + 53505, 29291, 53510, 53515, 46732, 53520, 53525, 53530, 53535, 53540, + 53545, 53550, 33492, 53555, 53560, 53565, 46162, 53570, 53575, 53580, + 53585, 53590, 53595, 53600, 53605, 53610, 26437, 28230, 53615, 53620, + 53625, 53630, 53635, 53640, 53645, 41603, 53650, 53655, 53660, 53665, + 53670, 53675, 53680, 53685, 53690, 53695, 53700, 53705, 53710, 53715, + 53720, 53725, 53730, 53735, 53740, 53745, 53750, 53755, 44140, 53760, + 53765, 53770, 53775, 38574, 35934, 53780, 53785, 42282, 53790, 53795, + 53800, 53805, 53810, 53815, 31451, 53820, 53825, 53830, 53835, 53840, + 53845, 53850, 53855, 36374, 53860, 53865, 36278, 53870, 53875, 53880, + 53885, 53890, 53895, 45304, 45310, 45316, 53900, 45334, 45568, 45574, + 53905, 53910, 53915, 53920, 53925, 53930, 53935, 53940, 53945, 53950, + 53955, 53960, 53965, 53970, 53975, 53980, 53985, 53990, 53995, 46066, + 46072, 46078, 54000, 54005, 54010, 54015, 54020, 54025, 54030, 54035, + 54040, 46084, 54045, 46090, 54050, 54055, 54060, 54065, 54070, 54075, + 54080, 54085, 54090, 54095, 54100, 54105, 54110, 54115, 54120, 54125, + 54130, 54135, 54140, 54145, 54150, 54155, 54160, 54165, 54170, 46096, + 46102, 54175, 54180, 46108, 46114, 46120, 54185, 54190, 54195, 54200, + 54205, 54210, 54215, 54220, 54225, 54230, 54235, 54240, 54245, 54250, + 54255, 54260, 54265, 54270, 54275, 54280, 47941, 54285, 54289, 54293, + 54297, 709, 54301, 54305, 35446, 46385, 54309, 26680, 54313, 43769, + 54317, 36527, 54321, 43595, 28253, 54325, 43421, 29172, 35059, 54329, + 54333, 20202, 42683, 54337, 34726, 54341, 44219, 54345, 47971, 54349, + 43187, 24026, 42045, 54353, 54357, 54361, 44663, 43751, 54365, 54369, + 50131, 54373, 54377, 27428, 54381, 54385, 54389, 54393, 36511, 54397, + 54401, 54405, 54409, 54413, 54417, 54421, 36103, 48016, 54425, 42779, + 54429, 54433, 54437, 48421, 32656, 20825, 54441, 36735, 28440, 54445, + 29092, 49911, 31272, 44777, 54449, 43085, 54453, 54457, 54461, 54465, + 54469, 33367, 44363, 54473, 54477, 54481, 41429, 40351, 53701, 30052, + 54485, 47876, 41674, 54489, 54493, 54497, 28495, 54501, 54505, 54509, + 37719, 54513, 45095, 42150, 54517, 24158, 54521, 42101, 43241, 54525, + 44459, 51431, 54529, 49041, 52821, 54533, 54537, 48536, 54541, 54545, + 54549, 54553, 50621, 54557, 45755, 50136, 50381, 54561, 36239, 54565, + 54569, 54573, 54577, 54581, 51406, 35500, 298, 54585, 54589, 54593, + 54597, 54601, 51616, 53351, 54605, 27318, 46913, 43805, 54609, 54613, + 54617, 43253, 40141, 33205, 43895, 54621, 54625, 40421, 48811, 54629, + 50626, 54633, 54637, 54641, 54645, 54649, 54653, 54657, 54661, 54665, + 51756, 54669, 54673, 48791, 54677, 54681, 40862, 54685, 54689, 54693, + 54697, 54701, 54705, 54709, 54713, 54717, 54721, 54725, 54729, 52396, + 54733, 54737, 54741, 54745, 54749, 54753, 54757, 54761, 29402, 54765, + 54769, 54773, 53676, 54777, 54781, 54785, 54789, 54793, 54797, 54801, + 54805, 43973, 43985, 50916, 54809, 54813, 54817, 42381, 54821, 54825, + 50141, 39735, 54829, 54833, 53171, 54837, 34465, 54841, 54845, 53766, + 54849, 44027, 38487, 40295, 44807, 54853, 54857, 54861, 54865, 46019, + 45923, 54869, 40050, 26486, 32287, 44465, 50191, 47961, 41184, 54873, + 54877, 31332, 54881, 54885, 54889, 54893, 53326, 54897, 54901, 53336, + 54905, 54909, 46409, 41779, 50561, 54913, 54917, 54921, 24506, 54925, + 31282, 54929, 54933, 54937, 54941, 54945, 36055, 54949, 52391, 54953, + 51206, 54957, 41919, 54961, 54965, 51626, 54969, 54973, 54977, 54981, + 54985, 20048, 52406, 958, 53026, 54989, 45977, 54993, 54997, 55001, + 53801, 55005, 53666, 53671, 55009, 33574, 55013, 55017, 23762, 38375, + 47316, 53711, 53716, 31122, 53481, 36615, 55021, 55025, 55029, 55033, + 55037, 55041, 45071, 55045, 55049, 55053, 49321, 55057, 40428, 47213, + 52551, 52586, 55061, 50676, 55065, 55069, 55073, 43427, 55077, 55081, + 55085, 55089, 55093, 55097, 55101, 55105, 55109, 55113, 50736, 55117, + 55121, 55125, 55129, 32971, 55133, 50116, 41380, 55137, 50121, 37215, + 55141, 55145, 55149, 55153, 55157, 55161, 55165, 55169, 55173, 38831, + 55177, 55181, 55185, 55189, 55193, 55197, 55201, 55205, 50396, 55209, + 37855, 55213, 55217, 55221, 55225, 55229, 55233, 55237, 33430, 55241, + 55245, 55249, 55253, 55257, 55261, 41947, 55265, 55269, 51866, 50781, + 52236, 52241, 52246, 52251, 55273, 55277, 55281, 55285, 50811, 50826, + 55289, 47711, 50171, 55293, 55297, 55301, 34825, 44723, 46643, 55305, + 24494, 55309, 55313, 55317, 55321, 55325, 55329, 55333, 34861, 55337, + 55341, 35527, 51596, 55345, 55349, 55353, 55357, 55361, 55365, 55369, + 55373, 32032, 49051, 49056, 55377, 50991, 55381, 55385, 55389, 51051, + 55393, 55397, 55401, 51101, 55405, 55409, 32980, 55413, 44357, 43517, + 24434, 23870, 55417, 55421, 45089, 55425, 55429, 55433, 37727, 55437, + 55441, 55445, 55449, 55453, 55457, 48061, 55461, 46037, 55465, 55469, + 55473, 55477, 26702, 55481, 34915, 55485, 55489, 36471, 55493, 55497, + 55501, 45695, 55505, 55509, 55513, 55517, 55521, 55525, 52411, 55529, + 55533, 55537, 55541, 55545, 50596, 53356, 55549, 32413, 55553, 55557, + 55561, 55565, 55569, 55573, 55577, 55581, 55585, 55589, 49071, 49076, + 55593, 55597, 55601, 55605, 55609, 55613, 55617, 37095, 55621, 43451, + 55625, 55629, 55633, 32503, 55637, 55641, 55645, 46415, 55649, 38319, + 49316, 55653, 55657, 55661, 55665, 55669, 43979, 55673, 55677, 43889, + 55681, 55685, 55689, 55693, 52531, 52556, 55697, 55701, 55705, 53521, + 55709, 48431, 55713, 55717, 48826, 52646, 55721, 48441, 55725, 45749, + 55729, 53921, 36967, 45917, 55733, 55737, 55741, 55745, 55749, 18351, + 55753, 55757, 47147, 33385, 43703, 47521, 55761, 55765, 35428, 55769, + 55773, 37167, 55777, 55781, 55785, 55789, 55793, 55797, 55801, 55805, + 55809, 55813, 55817, 55821, 55825, 55829, 55833, 55837, 55841, 55845, + 55849, 55853, 55857, 55861, 55865, 55869, 55873, 55877, 55881, 55885, + 55889, 55893, 55897, 55901, 55905, 55909, 55913, 55917, 55921, 55925, + 55929, 55933, 55937, 55941, 55945, 55949, 55953, 55957, 55961, 55965, + 55969, 55973, 55977, 55981, 55985, 55989, 55993, 55997, 56001, 56005, + 56009, 56013, 56017, 56021, 56025, 56029, 56033, 56037, 56041, 56045, + 56049, 56053, 56057, 56061, 56065, 56069, 56073, 56077, 56081, 56085, + 56089, 56093, 56097, 56101, 56105, 56109, 56113, 56117, 56121, 56125, + 56129, 56133, 56137, 56141, 56145, 56149, 56153, 56157, 56161, 56165, + 56169, 56173, 56177, 56181, 56185, 56189, 56193, 56197, 56201, 56205, + 56209, 56213, 56217, 56221, 56225, 56229, 56233, 56237, 49856, 37943, + 49866, 56241, 56245, 56249, 56253, 56257, 34906, 56261, 56265, 49871, + 56269, 49876, 56273, 56277, 56281, 56285, 48786, 56289, 49886, 49891, + 49896, 56293, 43013, 56297, 39581, 49901, 49906, 49916, 49921, 56301, + 48326, 49931, 56305, 56309, 56313, 49936, 52101, 49941, 49946, 56317, + 32251, 56321, 56325, 56329, 56333, 56337, 56341, 56345, 56349, 56353, + 56357, 56361, 56365, 56369, 56373, 39399, 56377, 56381, 56385, 56389, + 56393, 56397, 56401, 56405, 56409, 56413, 56417, 56421, 56425, 56429, + 56433, 27296, 56437, 56441, 38191, 41653, 56445, 50361, 56449, 50366, + 38895, 50371, 56453, 45815, 44819, 43001, 56457, 46493, 56461, 40834, + 50401, 45077, 50406, 39560, 50411, 50416, 51336, 56465, 56469, 56473, + 50421, 53176, 52156, 50426, 50436, 56477, 56481, 56485, 56489, 56493, + 50441, 50446, 48406, 50451, 50456, 50461, 56497, 56501, 56505, 56509, + 56513, 56517, 29152, 56521, 56525, 56529, 56533, 56537, 56541, 56545, + 26713, 56549, 48746, 56553, 56557, 56561, 56565, 44729, 56569, 56573, + 56577, 56581, 56585, 56589, 56593, 56597, 56601, 56605, 56609, 56613, + 56617, 56621, 56625, 56629, 56633, 56637, 56641, 56645, 56649, 56653, + 56657, 56661, 56665, 56669, 56673, 56677, 56681, 50766, 50771, 50776, + 51871, 51876, 51881, 51886, 56685, 56689, 56693, 35041, 39917, 50786, + 56697, 50791, 56701, 56705, 56709, 50796, 56713, 50801, 50806, 56717, + 56721, 45935, 48501, 50816, 56725, 520, 56729, 41660, 56733, 56737, + 48506, 50821, 50831, 50836, 50841, 50846, 50851, 56741, 56745, 56749, + 56753, 56757, 56761, 48656, 32042, 20565, 50151, 50161, 38751, 56765, + 39322, 56769, 50166, 50176, 45671, 50521, 50526, 50531, 50536, 48236, + 47671, 28220, 34717, 56773, 56777, 56781, 56785, 56789, 37583, 56793, + 56797, 56801, 56805, 56809, 50186, 39861, 50201, 50206, 56813, 37671, + 56817, 50211, 43031, 48956, 48961, 56821, 56825, 56829, 56833, 56837, + 56841, 56845, 56849, 56853, 56857, 56861, 53996, 28528, 44297, 44147, + 44309, 56865, 28231, 49241, 51961, 56869, 45449, 38783, 53621, 56873, + 56877, 56881, 56885, 56889, 56893, 48631, 51411, 51416, 51421, 56897, + 56901, 52326, 51426, 51436, 56905, 51441, 51446, 51451, 48636, 51456, + 56909, 51461, 52371, 51466, 51471, 20981, 56913, 56917, 31342, 56921, + 34429, 56925, 56929, 56933, 604, 56937, 56941, 56945, 27241, 56949, + 56953, 56957, 56961, 56965, 56969, 56973, 56977, 56981, 56985, 56989, + 56993, 56997, 23942, 57001, 57005, 57009, 57013, 57017, 57021, 57025, + 34807, 57029, 57033, 44057, 57037, 57041, 57045, 57049, 57053, 57057, + 57061, 57065, 57069, 57073, 57077, 57081, 57085, 57089, 57093, 57097, + 50966, 57101, 48471, 57105, 50976, 57109, 57113, 57117, 50981, 35473, + 26592, 57121, 49046, 53631, 57125, 57129, 57133, 50691, 57137, 51001, + 51006, 57141, 57145, 57149, 51011, 57153, 316, 51016, 57157, 57161, + 51021, 51026, 48971, 51036, 51041, 51046, 51056, 51061, 57165, 57169, + 57173, 32665, 48311, 57177, 51071, 51076, 57181, 57185, 57189, 57193, + 57197, 57201, 57205, 57209, 57213, 41268, 57217, 57221, 57225, 57229, + 57233, 57237, 51081, 57241, 57245, 57249, 57253, 51086, 45629, 51096, + 44993, 57257, 57261, 51106, 51111, 57265, 20258, 51116, 51121, 51126, + 41387, 51136, 57269, 51141, 57273, 51151, 57277, 57281, 45839, 57285, + 57289, 51156, 19056, 51166, 57293, 57297, 57301, 57305, 57309, 28264, + 51171, 57313, 51176, 57317, 35943, 57321, 38599, 57325, 57329, 29892, + 51181, 57333, 51186, 35935, 51196, 47117, 57337, 57341, 57345, 57349, + 51201, 47255, 51211, 57353, 57357, 57361, 57365, 57369, 57373, 57377, + 51216, 57381, 57385, 51221, 57389, 57393, 57397, 40673, 57401, 57405, + 57409, 57413, 47177, 47183, 57417, 57421, 57425, 21332, 34798, 11638, + 57429, 57433, 57437, 51611, 57441, 57445, 48316, 40218, 57449, 57453, + 57457, 57461, 57465, 57469, 57473, 53346, 57477, 42791, 57481, 44735, + 57485, 57489, 57493, 57497, 57501, 57505, 57509, 57513, 57517, 57521, + 57525, 57529, 57533, 57537, 57541, 57545, 57549, 57553, 57557, 57561, + 57565, 57569, 57573, 57577, 57581, 57585, 57589, 57593, 57597, 57601, + 57605, 57609, 57613, 57617, 57621, 57625, 57629, 57633, 57637, 57641, + 57645, 57649, 57653, 57657, 57661, 57665, 44291, 44639, 57669, 49296, + 57673, 57677, 57681, 45299, 52416, 44267, 35583, 57685, 52421, 45017, + 52431, 31042, 37959, 57689, 57693, 57697, 46937, 57701, 47851, 53051, + 52441, 57705, 57709, 57713, 57717, 45125, 53061, 52446, 52451, 52456, + 52461, 57721, 57725, 52466, 52471, 52476, 52481, 57729, 57733, 31362, + 38815, 27329, 57737, 53371, 57741, 57745, 53381, 53386, 57749, 57753, + 42066, 57757, 53391, 57761, 57765, 57769, 53396, 53401, 57773, 57777, + 57781, 41814, 53411, 53416, 57785, 53421, 57789, 57793, 32260, 57797, + 57801, 57805, 57809, 53426, 53431, 53436, 57813, 57817, 57821, 53441, + 53446, 53451, 53456, 57825, 57829, 57833, 57837, 57841, 57845, 57849, + 46205, 57853, 57857, 57861, 57865, 57869, 57873, 53681, 57877, 53466, + 57881, 57885, 57889, 57893, 57897, 57901, 57905, 57909, 57913, 57917, + 57921, 57925, 57929, 2806, 57933, 57937, 57941, 57945, 57949, 57953, + 57957, 57961, 57965, 57969, 57973, 57977, 57981, 57985, 57989, 57993, + 57997, 58001, 58005, 58009, 54021, 50666, 58013, 58017, 34789, 29872, + 58021, 31432, 44315, 44321, 50061, 58025, 36263, 58029, 40232, 38511, + 58033, 37039, 53816, 58037, 58041, 58045, 58049, 58053, 58057, 58061, + 58065, 58069, 58073, 58077, 58081, 58085, 58089, 58093, 58097, 58101, + 58105, 58109, 58113, 58117, 58121, 58125, 58129, 58133, 58137, 58141, + 58145, 58149, 58153, 58157, 58161, 58165, 58169, 58173, 58177, 58181, + 58185, 58189, 58193, 58197, 58201, 58205, 51666, 51671, 51281, 51286, + 48596, 51291, 58209, 48601, 58213, 51296, 51301, 48606, 51676, 51681, + 51686, 58217, 58221, 58225, 58229, 58233, 58237, 58241, 58245, 58249, + 58253, 58257, 58261, 58265, 40645, 58269, 58273, 31352, 48546, 58277, + 58281, 58285, 58289, 58293, 58297, 52526, 58301, 48816, 52536, 52546, + 48821, 52561, 58305, 52566, 52571, 58309, 52576, 52581, 58313, 58317, + 58321, 58325, 58329, 58333, 58337, 52591, 52596, 52601, 58341, 54211, + 52606, 58345, 58349, 58353, 52611, 58357, 52616, 52621, 52626, 58361, + 53751, 52631, 52636, 58365, 58369, 58373, 52641, 58377, 52651, 53531, + 52656, 52661, 52666, 52671, 58381, 58385, 20826, 27429, 21320, 6423, + 36104, 35784, 46266, 39519, 33494, 710, 54790, 5911, 5655, 40436, 58388, + 6167, 34916, 58391, 58394, 49252, 39582, 34637, 54410, 43026, 53817, + 55542, 43680, 41206, 54538, 28353, 58397, 959, 1102, 54958, 6935, 58400, + 58403, 58406, 58409, 56794, 58412, 58415, 56302, 36576, 39610, 24867, + 31143, 689, 11782, 53962, 47962, 47142, 26703, 58418, 33377, 58421, + 34232, 58424, 58427, 25083, 5719, 20566, 478, 25215, 41675, 897, 648, + 58430, 43518, 24939, 20511, 50192, 46326, 58433, 20553, 1401, 1147, + 28441, 34790, 58436, 43896, 40408, 44616, 48957, 54598, 58439, 51877, + 23871, 58442, 40723, 38312, 47208, 24399, 30943, 56834, 43668, 38600, + 41808, 29853, 58445, 34547, 44562, 40674, 58448, 51887, 29453, 45558, + 58451, 26945, 58454, 58457, 58460, 48157, 24435, 32684, 27242, 58463, + 48892, 58466, 58469, 58472, 45750, 56346, 58475, 44592, 24159, 58478, + 39792, 45720, 5975, 58481, 40471, 47076, 33206, 29513, 31283, 11887, + 24459, 57026, 56826, 58484, 58487, 58490, 29913, 42256, 58493, 55322, + 58496, 46260, 58499, 58502, 285, 33431, 55094, 51882, 28397, 38856, + 56458, 58505, 24135, 40226, 58508, 2807, 39694, 44022, 56822, 58511, + 31343, 20631, 26487, 35528, 58514, 21112, 36608, 55326, 11607, 58517, + 24207, 54067, 58520, 6759, 605, 58523, 58526, 39589, 47297, 58529, 58532, + 58535, 35640, 58538, 19979, 58541, 38464, 39904, 47034, 20049, 6231, + 58544, 56342, 38296, 36368, 43332, 6999, 58547, 43704, 58550, 58553, + 58556, 58559, 58562, 35429, 58565, 31323, 58568, 58571, 24495, 913, + 48357, 58574, 58577, 5527, 5671, 12, 25095, 55026, 58580, 58583, 56350, + 54442, 58586, 42936, 34907, 33305, 44202, 48107, 58589, 58592, 1210, + 58595, 58598, 58601, 28892, 56542, 35447, 36712, 58604, 55770, 28870, + 58607, 21086, 40569, 53982, 40555, 58610, 19951, 58613, 42648, 50112, + 57166, 54022, 58616, 5703, 26451, 36704, 58619, 56254, 1458, 58622, + 30033, 58625, 54690, 58628, 58631, 6551, 34817, 55662, 58634, 58637, + 58640, 58643, 56946, 58646, 58649, 56710, 55210, 56958, 58652, 46398, + 58655, 58658, 58661, 58664, 58667, 43104, 58670, 58673, 58676, 50037, + 57774, 58679, 33296, 50302, 58682, 58685, 58688, 58691, 58694, 58697, + 50187, 58700, 39862, 58703, 317, 58706, 58709, 58712, 55226, 28155, + 58715, 58718, 57942, 58721, 40058, 632, 58724, 37032, 51357, 58727, + 55086, 56558, 58730, 18982, 58733, 5543, 53662, 33188, 42978, 58736, + 32666, 55682, 26475, 49867, 58739, 58742, 53932, 58745, 58748, 29403, + 6199, 6215, 58751, 58754, 6295, 6439, 58757, 58760, 58763, 58766, 58769, + 58772, 6679, 58775, 43944, 51717, 26593, 7015, 56594, 58778, 58781, + 47977, 58784, 56522, 330, 58787, 58790, 58793, 43560, 58796, 42193, + 35992, 20787, 28221, 21385, 58799, 28210, 1058, 55330, 53312, 58802, + 58805, 45738, 862, 58808, 58811, 58814, 58817, 58820, 58823, 58826, + 58829, 58832, 58835, 58838, 42081, 58841, 49237, 58844, 57926, 58847, + 416, 43500, 58850, 58853, 58856, 50727, 58859, 58862, 58865, 58868, + 49302, 58871, 55534, 29093, 58874, 48697, 58877, 58880, 58883, 43992, + 58886, 39001, 58889, 58892, 44322, 31443, 58895, 58898, 58901, 58904, + 58907, 58910, 58913, 2823, 57482, 58916, 58919, 44772, 58922, 58925, + 50307, 58928, 58931, 58934, 11812, 58937, 58940, 58943, 58946, 32153, + 58949, 58952, 58955, 58958, 58961, 57790, 58964, 58967, 58970, 58973, + 58976, 43524, 58979, 58982, 20483, 1297, 48507, 20696, 58985, 58988, + 58991, 58994, 51242, 58997, 56314, 57070, 59000, 59003, 59006, 59009, + 48272, 59012, 59015, 59018, 57410, 606, 1059, 3112, 441, 1402, 711, 88, + 21074, 3176, 55679, 41319, 1298, 318, 43369, 21, 37, 35124, 39121, 863, + 1186, 55419, 904, 59021, 37777, 45361, 19058, 32, 1010, 197, 383, 342, + 29214, 59023, 101, 39030, 761, 59025, 46261, 54439, 54995, 239, 829, + 48318, 59027, 210, 47628, 855, 26649, 36617, 57759, 58968, 59029, 59031, + 1025, 43525, 57807, 32820, 42985, 224, 1194, 26748, 633, 59033, 32883, + 59035, 38545, 27034, 59037, 271, 626, 57179, 388, 950, 877, 36273, 58614, + 59039, 59041, 4, 147, 28924, 26671, 1142, 24196, 54395, 59043, 300, + 53198, 28277, 42775, 58587, 32289, 55339, 56695, 59045, 59047, 540, 378, + 119, 48673, 58467, 696, 43177, 42655, 932, 32044, 32676, 1109, 42595, + 59049, 59051, 59053, 59055, 59057, 39072, 26979, 444, 59059, 59061, + 37225, 59063, 8, 802, 1115, 48798, 454, 790, 59065, 40, 38786, 5, 14, + 111, 26, 133, 49, 115, 62, 225, 9, 43, 83, 58615, 583, 402, 193, 59067, + 445, 59068, }; /* code->name phrasebook */ #define phrasebook_shift 7 -#define phrasebook_short 226 +#define phrasebook_short 222 static unsigned char phrasebook[] = { - 0, 240, 15, 233, 54, 69, 235, 51, 69, 61, 52, 240, 114, 52, 238, 107, 52, - 234, 17, 233, 59, 40, 232, 74, 38, 232, 74, 235, 52, 248, 49, 52, 240, - 27, 231, 94, 248, 37, 208, 236, 177, 26, 242, 217, 26, 127, 26, 111, 26, - 166, 26, 177, 26, 176, 26, 187, 26, 203, 26, 195, 26, 202, 240, 24, 234, - 14, 235, 44, 52, 240, 7, 52, 232, 68, 52, 236, 156, 69, 234, 20, 254, 20, - 8, 5, 1, 67, 8, 5, 1, 217, 8, 5, 1, 255, 18, 8, 5, 1, 209, 8, 5, 1, 72, - 8, 5, 1, 255, 19, 8, 5, 1, 210, 8, 5, 1, 192, 8, 5, 1, 71, 8, 5, 1, 221, - 8, 5, 1, 255, 15, 8, 5, 1, 162, 8, 5, 1, 173, 8, 5, 1, 197, 8, 5, 1, 73, - 8, 5, 1, 223, 8, 5, 1, 255, 20, 8, 5, 1, 144, 8, 5, 1, 193, 8, 5, 1, 214, - 8, 5, 1, 79, 8, 5, 1, 179, 8, 5, 1, 255, 16, 8, 5, 1, 206, 8, 5, 1, 255, - 14, 8, 5, 1, 255, 17, 40, 31, 104, 238, 75, 236, 177, 38, 31, 104, 190, - 238, 54, 170, 242, 224, 242, 245, 238, 54, 8, 3, 1, 67, 8, 3, 1, 217, 8, - 3, 1, 255, 18, 8, 3, 1, 209, 8, 3, 1, 72, 8, 3, 1, 255, 19, 8, 3, 1, 210, - 8, 3, 1, 192, 8, 3, 1, 71, 8, 3, 1, 221, 8, 3, 1, 255, 15, 8, 3, 1, 162, - 8, 3, 1, 173, 8, 3, 1, 197, 8, 3, 1, 73, 8, 3, 1, 223, 8, 3, 1, 255, 20, - 8, 3, 1, 144, 8, 3, 1, 193, 8, 3, 1, 214, 8, 3, 1, 79, 8, 3, 1, 179, 8, - 3, 1, 255, 16, 8, 3, 1, 206, 8, 3, 1, 255, 14, 8, 3, 1, 255, 17, 40, 242, - 225, 104, 59, 242, 224, 38, 242, 225, 104, 169, 236, 233, 240, 15, 236, - 145, 233, 54, 69, 249, 39, 52, 243, 246, 52, 236, 181, 52, 254, 134, 52, - 240, 129, 125, 238, 213, 52, 175, 235, 195, 52, 237, 9, 238, 205, 234, - 30, 231, 87, 45, 185, 235, 51, 69, 161, 52, 248, 186, 238, 93, 234, 245, - 52, 196, 240, 112, 52, 234, 236, 52, 233, 49, 111, 233, 49, 166, 242, - 241, 238, 54, 246, 81, 52, 238, 208, 52, 240, 1, 248, 40, 236, 151, 233, - 49, 127, 236, 58, 238, 205, 234, 30, 231, 36, 45, 185, 235, 51, 69, 240, - 30, 236, 155, 253, 125, 237, 33, 240, 30, 236, 155, 253, 125, 243, 7, - 240, 30, 236, 155, 204, 236, 84, 236, 145, 236, 156, 69, 8, 5, 1, 134, 2, - 191, 8, 5, 1, 134, 2, 135, 8, 5, 1, 134, 2, 233, 48, 8, 5, 1, 134, 2, - 169, 8, 5, 1, 134, 2, 175, 8, 5, 1, 134, 2, 248, 51, 48, 8, 5, 1, 253, - 178, 8, 5, 1, 255, 105, 2, 236, 151, 8, 5, 1, 157, 2, 191, 8, 5, 1, 157, - 2, 135, 8, 5, 1, 157, 2, 233, 48, 8, 5, 1, 157, 2, 175, 8, 5, 1, 220, 2, - 191, 8, 5, 1, 220, 2, 135, 8, 5, 1, 220, 2, 233, 48, 8, 5, 1, 220, 2, - 175, 8, 5, 1, 248, 109, 8, 5, 1, 255, 98, 2, 169, 8, 5, 1, 117, 2, 191, - 8, 5, 1, 117, 2, 135, 8, 5, 1, 117, 2, 233, 48, 8, 5, 1, 117, 2, 169, 8, - 5, 1, 117, 2, 175, 231, 37, 52, 8, 5, 1, 117, 2, 108, 8, 5, 1, 132, 2, - 191, 8, 5, 1, 132, 2, 135, 8, 5, 1, 132, 2, 233, 48, 8, 5, 1, 132, 2, - 175, 8, 5, 1, 255, 107, 2, 135, 8, 5, 1, 240, 149, 8, 3, 1, 243, 74, 193, - 8, 3, 1, 134, 2, 191, 8, 3, 1, 134, 2, 135, 8, 3, 1, 134, 2, 233, 48, 8, - 3, 1, 134, 2, 169, 8, 3, 1, 134, 2, 175, 8, 3, 1, 134, 2, 248, 51, 48, 8, - 3, 1, 253, 178, 8, 3, 1, 255, 105, 2, 236, 151, 8, 3, 1, 157, 2, 191, 8, - 3, 1, 157, 2, 135, 8, 3, 1, 157, 2, 233, 48, 8, 3, 1, 157, 2, 175, 8, 3, - 1, 220, 2, 191, 8, 3, 1, 220, 2, 135, 8, 3, 1, 220, 2, 233, 48, 8, 3, 1, - 220, 2, 175, 8, 3, 1, 248, 109, 8, 3, 1, 255, 98, 2, 169, 8, 3, 1, 117, - 2, 191, 8, 3, 1, 117, 2, 135, 8, 3, 1, 117, 2, 233, 48, 8, 3, 1, 117, 2, - 169, 8, 3, 1, 117, 2, 175, 236, 196, 52, 8, 3, 1, 117, 2, 108, 8, 3, 1, - 132, 2, 191, 8, 3, 1, 132, 2, 135, 8, 3, 1, 132, 2, 233, 48, 8, 3, 1, - 132, 2, 175, 8, 3, 1, 255, 107, 2, 135, 8, 3, 1, 240, 149, 8, 3, 1, 255, - 107, 2, 175, 8, 5, 1, 134, 2, 196, 8, 3, 1, 134, 2, 196, 8, 5, 1, 134, 2, - 239, 255, 8, 3, 1, 134, 2, 239, 255, 8, 5, 1, 134, 2, 238, 71, 8, 3, 1, - 134, 2, 238, 71, 8, 5, 1, 255, 105, 2, 135, 8, 3, 1, 255, 105, 2, 135, 8, - 5, 1, 255, 105, 2, 233, 48, 8, 3, 1, 255, 105, 2, 233, 48, 8, 5, 1, 255, - 105, 2, 53, 48, 8, 3, 1, 255, 105, 2, 53, 48, 8, 5, 1, 255, 105, 2, 239, - 254, 8, 3, 1, 255, 105, 2, 239, 254, 8, 5, 1, 255, 103, 2, 239, 254, 8, - 3, 1, 255, 103, 2, 239, 254, 8, 5, 1, 255, 103, 2, 108, 8, 3, 1, 255, - 103, 2, 108, 8, 5, 1, 157, 2, 196, 8, 3, 1, 157, 2, 196, 8, 5, 1, 157, 2, - 239, 255, 8, 3, 1, 157, 2, 239, 255, 8, 5, 1, 157, 2, 53, 48, 8, 3, 1, - 157, 2, 53, 48, 8, 5, 1, 157, 2, 238, 71, 8, 3, 1, 157, 2, 238, 71, 8, 5, - 1, 157, 2, 239, 254, 8, 3, 1, 157, 2, 239, 254, 8, 5, 1, 255, 104, 2, - 233, 48, 8, 3, 1, 255, 104, 2, 233, 48, 8, 5, 1, 255, 104, 2, 239, 255, - 8, 3, 1, 255, 104, 2, 239, 255, 8, 5, 1, 255, 104, 2, 53, 48, 8, 3, 1, - 255, 104, 2, 53, 48, 8, 5, 1, 255, 104, 2, 236, 151, 8, 3, 1, 255, 104, - 2, 236, 151, 8, 5, 1, 255, 106, 2, 233, 48, 8, 3, 1, 255, 106, 2, 233, - 48, 8, 5, 1, 255, 106, 2, 108, 8, 3, 1, 255, 106, 2, 108, 8, 5, 1, 220, - 2, 169, 8, 3, 1, 220, 2, 169, 8, 5, 1, 220, 2, 196, 8, 3, 1, 220, 2, 196, - 8, 5, 1, 220, 2, 239, 255, 8, 3, 1, 220, 2, 239, 255, 8, 5, 1, 220, 2, - 238, 71, 8, 3, 1, 220, 2, 238, 71, 8, 5, 1, 220, 2, 53, 48, 8, 3, 1, 238, - 70, 71, 8, 5, 18, 254, 99, 8, 3, 18, 254, 99, 8, 5, 1, 255, 115, 2, 233, - 48, 8, 3, 1, 255, 115, 2, 233, 48, 8, 5, 1, 255, 109, 2, 236, 151, 8, 3, - 1, 255, 109, 2, 236, 151, 8, 3, 1, 251, 164, 8, 5, 1, 255, 100, 2, 135, - 8, 3, 1, 255, 100, 2, 135, 8, 5, 1, 255, 100, 2, 236, 151, 8, 3, 1, 255, - 100, 2, 236, 151, 8, 5, 1, 255, 100, 2, 239, 254, 8, 3, 1, 255, 100, 2, - 239, 254, 8, 5, 1, 255, 100, 2, 240, 1, 248, 40, 8, 3, 1, 255, 100, 2, - 240, 1, 248, 40, 8, 5, 1, 255, 100, 2, 108, 8, 3, 1, 255, 100, 2, 108, 8, - 5, 1, 255, 98, 2, 135, 8, 3, 1, 255, 98, 2, 135, 8, 5, 1, 255, 98, 2, - 236, 151, 8, 3, 1, 255, 98, 2, 236, 151, 8, 5, 1, 255, 98, 2, 239, 254, - 8, 3, 1, 255, 98, 2, 239, 254, 8, 3, 1, 255, 98, 237, 241, 255, 25, 233, - 59, 8, 5, 1, 248, 108, 8, 3, 1, 248, 108, 8, 5, 1, 117, 2, 196, 8, 3, 1, - 117, 2, 196, 8, 5, 1, 117, 2, 239, 255, 8, 3, 1, 117, 2, 239, 255, 8, 5, - 1, 117, 2, 45, 135, 8, 3, 1, 117, 2, 45, 135, 8, 5, 18, 253, 193, 8, 3, - 18, 253, 193, 8, 5, 1, 255, 101, 2, 135, 8, 3, 1, 255, 101, 2, 135, 8, 5, - 1, 255, 101, 2, 236, 151, 8, 3, 1, 255, 101, 2, 236, 151, 8, 5, 1, 255, - 101, 2, 239, 254, 8, 3, 1, 255, 101, 2, 239, 254, 8, 5, 1, 255, 99, 2, - 135, 8, 3, 1, 255, 99, 2, 135, 8, 5, 1, 255, 99, 2, 233, 48, 8, 3, 1, - 255, 99, 2, 233, 48, 8, 5, 1, 255, 99, 2, 236, 151, 8, 3, 1, 255, 99, 2, - 236, 151, 8, 5, 1, 255, 99, 2, 239, 254, 8, 3, 1, 255, 99, 2, 239, 254, - 8, 5, 1, 255, 102, 2, 236, 151, 8, 3, 1, 255, 102, 2, 236, 151, 8, 5, 1, - 255, 102, 2, 239, 254, 8, 3, 1, 255, 102, 2, 239, 254, 8, 5, 1, 255, 102, - 2, 108, 8, 3, 1, 255, 102, 2, 108, 8, 5, 1, 132, 2, 169, 8, 3, 1, 132, 2, - 169, 8, 5, 1, 132, 2, 196, 8, 3, 1, 132, 2, 196, 8, 5, 1, 132, 2, 239, - 255, 8, 3, 1, 132, 2, 239, 255, 8, 5, 1, 132, 2, 248, 51, 48, 8, 3, 1, - 132, 2, 248, 51, 48, 8, 5, 1, 132, 2, 45, 135, 8, 3, 1, 132, 2, 45, 135, - 8, 5, 1, 132, 2, 238, 71, 8, 3, 1, 132, 2, 238, 71, 8, 5, 1, 255, 111, 2, - 233, 48, 8, 3, 1, 255, 111, 2, 233, 48, 8, 5, 1, 255, 107, 2, 233, 48, 8, - 3, 1, 255, 107, 2, 233, 48, 8, 5, 1, 255, 107, 2, 175, 8, 5, 1, 255, 97, - 2, 135, 8, 3, 1, 255, 97, 2, 135, 8, 5, 1, 255, 97, 2, 53, 48, 8, 3, 1, - 255, 97, 2, 53, 48, 8, 5, 1, 255, 97, 2, 239, 254, 8, 3, 1, 255, 97, 2, - 239, 254, 8, 3, 1, 183, 193, 8, 3, 1, 41, 2, 108, 8, 5, 1, 41, 2, 90, 8, - 5, 1, 41, 2, 238, 124, 8, 3, 1, 41, 2, 238, 124, 8, 5, 1, 188, 187, 8, 3, - 1, 188, 187, 8, 5, 1, 248, 35, 73, 8, 5, 1, 255, 105, 2, 90, 8, 3, 1, - 255, 105, 2, 90, 8, 5, 1, 238, 238, 209, 8, 5, 1, 255, 103, 2, 90, 8, 5, - 1, 255, 103, 2, 238, 124, 8, 3, 1, 255, 103, 2, 238, 124, 8, 3, 1, 205, - 240, 28, 8, 5, 1, 224, 72, 8, 5, 1, 240, 86, 8, 5, 1, 248, 35, 72, 8, 5, - 1, 255, 112, 2, 90, 8, 3, 1, 255, 112, 2, 90, 8, 5, 1, 255, 104, 2, 90, - 8, 5, 1, 240, 10, 8, 3, 1, 254, 98, 8, 5, 1, 242, 237, 8, 5, 1, 220, 2, - 108, 8, 5, 1, 255, 109, 2, 90, 8, 3, 1, 255, 109, 2, 90, 8, 3, 1, 255, - 100, 2, 125, 8, 3, 1, 241, 212, 2, 108, 8, 5, 1, 205, 173, 8, 5, 1, 255, - 98, 2, 40, 90, 8, 3, 1, 255, 98, 2, 183, 38, 248, 117, 8, 5, 1, 117, 2, - 240, 1, 169, 8, 5, 1, 117, 2, 243, 8, 8, 3, 1, 117, 2, 243, 8, 8, 5, 1, - 254, 42, 8, 3, 1, 254, 42, 8, 5, 1, 255, 114, 2, 90, 8, 3, 1, 255, 114, - 2, 90, 8, 1, 254, 135, 8, 5, 1, 188, 111, 8, 3, 1, 188, 111, 8, 5, 1, - 248, 93, 8, 1, 224, 254, 38, 243, 105, 8, 3, 1, 255, 102, 2, 238, 65, 90, - 8, 5, 1, 255, 102, 2, 90, 8, 3, 1, 255, 102, 2, 90, 8, 5, 1, 255, 102, 2, - 235, 54, 90, 8, 5, 1, 132, 2, 243, 8, 8, 3, 1, 132, 2, 243, 8, 8, 5, 1, - 236, 160, 8, 5, 1, 255, 110, 2, 90, 8, 5, 1, 255, 107, 2, 90, 8, 3, 1, - 255, 107, 2, 90, 8, 5, 1, 255, 97, 2, 108, 8, 3, 1, 255, 97, 2, 108, 8, - 5, 1, 248, 155, 8, 5, 1, 253, 244, 235, 142, 8, 3, 1, 253, 244, 235, 142, - 8, 3, 1, 253, 244, 2, 242, 226, 8, 1, 171, 2, 108, 8, 5, 1, 188, 176, 8, - 3, 1, 188, 176, 8, 1, 236, 145, 238, 62, 248, 119, 2, 108, 8, 1, 244, 54, - 8, 1, 241, 82, 240, 93, 8, 1, 239, 114, 240, 93, 8, 1, 237, 59, 240, 93, - 8, 1, 235, 54, 240, 93, 8, 5, 1, 255, 40, 2, 239, 254, 8, 5, 1, 255, 103, - 2, 3, 1, 255, 97, 2, 239, 254, 8, 3, 1, 255, 40, 2, 239, 254, 8, 5, 1, - 254, 109, 8, 5, 1, 255, 100, 2, 3, 1, 221, 8, 3, 1, 254, 109, 8, 5, 1, - 254, 113, 8, 5, 1, 255, 98, 2, 3, 1, 221, 8, 3, 1, 254, 113, 8, 5, 1, - 134, 2, 239, 254, 8, 3, 1, 134, 2, 239, 254, 8, 5, 1, 220, 2, 239, 254, - 8, 3, 1, 220, 2, 239, 254, 8, 5, 1, 117, 2, 239, 254, 8, 3, 1, 117, 2, - 239, 254, 8, 5, 1, 132, 2, 239, 254, 8, 3, 1, 132, 2, 239, 254, 8, 5, 1, - 132, 2, 235, 56, 19, 196, 8, 3, 1, 132, 2, 235, 56, 19, 196, 8, 5, 1, - 132, 2, 235, 56, 19, 135, 8, 3, 1, 132, 2, 235, 56, 19, 135, 8, 5, 1, - 132, 2, 235, 56, 19, 239, 254, 8, 3, 1, 132, 2, 235, 56, 19, 239, 254, 8, - 5, 1, 132, 2, 235, 56, 19, 191, 8, 3, 1, 132, 2, 235, 56, 19, 191, 8, 3, - 1, 205, 72, 8, 5, 1, 134, 2, 235, 56, 19, 196, 8, 3, 1, 134, 2, 235, 56, - 19, 196, 8, 5, 1, 134, 2, 53, 60, 19, 196, 8, 3, 1, 134, 2, 53, 60, 19, - 196, 8, 5, 1, 255, 30, 2, 196, 8, 3, 1, 255, 30, 2, 196, 8, 5, 1, 255, - 104, 2, 108, 8, 3, 1, 255, 104, 2, 108, 8, 5, 1, 255, 104, 2, 239, 254, - 8, 3, 1, 255, 104, 2, 239, 254, 8, 5, 1, 255, 109, 2, 239, 254, 8, 3, 1, - 255, 109, 2, 239, 254, 8, 5, 1, 117, 2, 238, 71, 8, 3, 1, 117, 2, 238, - 71, 8, 5, 1, 117, 2, 240, 204, 19, 196, 8, 3, 1, 117, 2, 240, 204, 19, - 196, 8, 5, 1, 253, 244, 2, 239, 254, 8, 3, 1, 253, 244, 2, 239, 254, 8, - 3, 1, 255, 115, 2, 239, 254, 8, 5, 1, 254, 88, 8, 5, 1, 255, 103, 2, 3, - 1, 255, 17, 8, 3, 1, 254, 88, 8, 5, 1, 255, 104, 2, 135, 8, 3, 1, 255, - 104, 2, 135, 8, 5, 1, 240, 190, 8, 5, 1, 244, 54, 8, 5, 1, 255, 98, 2, - 191, 8, 3, 1, 255, 98, 2, 191, 8, 5, 1, 134, 2, 248, 51, 60, 19, 135, 8, - 3, 1, 134, 2, 248, 51, 60, 19, 135, 8, 5, 1, 255, 30, 2, 135, 8, 3, 1, - 255, 30, 2, 135, 8, 5, 1, 117, 2, 240, 5, 19, 135, 8, 3, 1, 117, 2, 240, - 5, 19, 135, 8, 5, 1, 134, 2, 45, 191, 8, 3, 1, 134, 2, 45, 191, 8, 5, 1, - 134, 2, 236, 145, 239, 255, 8, 3, 1, 134, 2, 236, 145, 239, 255, 8, 5, 1, - 157, 2, 45, 191, 8, 3, 1, 157, 2, 45, 191, 8, 5, 1, 157, 2, 236, 145, - 239, 255, 8, 3, 1, 157, 2, 236, 145, 239, 255, 8, 5, 1, 220, 2, 45, 191, - 8, 3, 1, 220, 2, 45, 191, 8, 5, 1, 220, 2, 236, 145, 239, 255, 8, 3, 1, - 220, 2, 236, 145, 239, 255, 8, 5, 1, 117, 2, 45, 191, 8, 3, 1, 117, 2, - 45, 191, 8, 5, 1, 117, 2, 236, 145, 239, 255, 8, 3, 1, 117, 2, 236, 145, - 239, 255, 8, 5, 1, 255, 101, 2, 45, 191, 8, 3, 1, 255, 101, 2, 45, 191, - 8, 5, 1, 255, 101, 2, 236, 145, 239, 255, 8, 3, 1, 255, 101, 2, 236, 145, - 239, 255, 8, 5, 1, 132, 2, 45, 191, 8, 3, 1, 132, 2, 45, 191, 8, 5, 1, - 132, 2, 236, 145, 239, 255, 8, 3, 1, 132, 2, 236, 145, 239, 255, 8, 5, 1, - 255, 99, 2, 242, 244, 46, 8, 3, 1, 255, 99, 2, 242, 244, 46, 8, 5, 1, - 255, 102, 2, 242, 244, 46, 8, 3, 1, 255, 102, 2, 242, 244, 46, 8, 5, 1, - 244, 59, 8, 3, 1, 244, 59, 8, 5, 1, 255, 106, 2, 239, 254, 8, 3, 1, 255, - 106, 2, 239, 254, 8, 5, 1, 255, 98, 2, 183, 38, 248, 117, 8, 3, 1, 255, - 103, 2, 242, 253, 8, 5, 1, 254, 10, 8, 3, 1, 254, 10, 8, 5, 1, 255, 97, - 2, 90, 8, 3, 1, 255, 97, 2, 90, 8, 5, 1, 134, 2, 53, 48, 8, 3, 1, 134, 2, - 53, 48, 8, 5, 1, 157, 2, 236, 151, 8, 3, 1, 157, 2, 236, 151, 8, 5, 1, - 117, 2, 235, 56, 19, 196, 8, 3, 1, 117, 2, 235, 56, 19, 196, 8, 5, 1, - 117, 2, 242, 219, 19, 196, 8, 3, 1, 117, 2, 242, 219, 19, 196, 8, 5, 1, - 117, 2, 53, 48, 8, 3, 1, 117, 2, 53, 48, 8, 5, 1, 117, 2, 53, 60, 19, - 196, 8, 3, 1, 117, 2, 53, 60, 19, 196, 8, 5, 1, 255, 107, 2, 196, 8, 3, - 1, 255, 107, 2, 196, 8, 3, 1, 255, 100, 2, 242, 253, 8, 3, 1, 255, 98, 2, - 242, 253, 8, 3, 1, 255, 102, 2, 242, 253, 8, 3, 1, 238, 70, 221, 8, 3, 1, - 255, 71, 236, 182, 8, 3, 1, 255, 89, 236, 182, 8, 5, 1, 134, 2, 108, 8, - 5, 1, 255, 105, 2, 108, 8, 3, 1, 255, 105, 2, 108, 8, 5, 1, 255, 100, 2, - 125, 8, 5, 1, 255, 102, 2, 236, 159, 108, 8, 3, 1, 255, 99, 2, 243, 126, - 242, 226, 8, 3, 1, 255, 97, 2, 243, 126, 242, 226, 8, 5, 1, 238, 62, 208, - 8, 3, 1, 205, 67, 8, 3, 1, 240, 22, 8, 3, 1, 205, 240, 22, 8, 3, 1, 41, - 2, 90, 8, 3, 1, 248, 35, 73, 8, 3, 1, 255, 105, 2, 242, 253, 8, 3, 1, - 255, 103, 2, 242, 226, 8, 3, 1, 255, 103, 2, 90, 8, 3, 1, 224, 72, 8, 3, - 1, 240, 86, 8, 3, 1, 243, 73, 2, 90, 8, 3, 1, 248, 35, 72, 8, 3, 1, 224, - 248, 35, 72, 8, 3, 1, 224, 248, 35, 157, 2, 90, 8, 3, 1, 240, 23, 224, - 248, 35, 72, 8, 3, 1, 238, 70, 255, 115, 2, 108, 8, 3, 1, 255, 104, 2, - 90, 8, 3, 1, 84, 210, 8, 1, 3, 5, 210, 8, 3, 1, 240, 10, 8, 3, 1, 252, - 129, 243, 8, 8, 3, 1, 205, 192, 8, 3, 1, 255, 106, 2, 90, 8, 3, 1, 251, - 52, 2, 90, 8, 3, 1, 220, 2, 108, 8, 3, 1, 242, 237, 8, 1, 3, 5, 71, 8, 3, - 1, 255, 100, 2, 240, 1, 169, 8, 3, 1, 255, 100, 2, 244, 216, 8, 3, 1, - 255, 100, 2, 235, 54, 90, 8, 3, 1, 246, 43, 8, 3, 1, 205, 173, 8, 3, 1, - 205, 255, 108, 2, 183, 248, 117, 8, 3, 1, 255, 108, 2, 90, 8, 3, 1, 255, - 98, 2, 40, 90, 8, 3, 1, 255, 98, 2, 235, 54, 90, 8, 1, 3, 5, 197, 8, 3, - 1, 240, 60, 73, 8, 1, 3, 5, 253, 193, 8, 3, 1, 240, 23, 240, 20, 8, 3, 1, - 248, 68, 8, 3, 1, 205, 144, 8, 3, 1, 205, 255, 101, 2, 183, 248, 117, 8, - 3, 1, 205, 255, 101, 2, 90, 8, 3, 1, 255, 101, 2, 183, 248, 117, 8, 3, 1, - 255, 101, 2, 242, 226, 8, 3, 1, 255, 101, 2, 235, 100, 8, 3, 1, 224, 255, - 101, 2, 235, 100, 8, 1, 3, 5, 144, 8, 1, 3, 5, 236, 145, 144, 8, 3, 1, - 255, 99, 2, 90, 8, 3, 1, 248, 93, 8, 3, 1, 238, 70, 255, 115, 2, 240, 5, - 19, 90, 8, 3, 1, 244, 23, 224, 248, 93, 8, 3, 1, 254, 38, 2, 242, 253, 8, - 3, 1, 205, 214, 8, 3, 1, 255, 102, 2, 235, 54, 90, 8, 3, 1, 132, 125, 8, - 3, 1, 236, 160, 8, 3, 1, 255, 110, 2, 90, 8, 3, 1, 205, 179, 8, 3, 1, - 205, 255, 16, 8, 3, 1, 205, 255, 14, 8, 1, 3, 5, 255, 14, 8, 3, 1, 255, - 97, 2, 235, 54, 90, 8, 3, 1, 255, 97, 2, 242, 253, 8, 3, 1, 248, 155, 8, - 3, 1, 253, 244, 2, 242, 253, 8, 1, 238, 62, 208, 8, 1, 234, 12, 240, 59, - 234, 192, 8, 1, 236, 145, 238, 62, 208, 8, 1, 236, 110, 255, 18, 8, 1, - 236, 249, 240, 93, 8, 1, 3, 5, 217, 8, 3, 1, 240, 23, 248, 35, 72, 8, 1, - 3, 5, 255, 104, 2, 90, 8, 1, 3, 5, 192, 8, 3, 1, 255, 115, 2, 231, 101, - 8, 3, 1, 205, 255, 15, 8, 1, 3, 5, 162, 8, 3, 1, 255, 116, 2, 90, 8, 1, - 238, 62, 248, 119, 2, 108, 8, 1, 224, 238, 62, 248, 119, 2, 108, 8, 3, 1, - 255, 40, 236, 182, 8, 3, 1, 250, 192, 236, 182, 8, 3, 1, 255, 40, 238, - 112, 2, 242, 253, 8, 3, 1, 255, 94, 236, 182, 8, 3, 1, 252, 215, 236, - 182, 8, 3, 1, 255, 92, 238, 112, 2, 242, 253, 8, 3, 1, 250, 239, 236, - 182, 8, 3, 1, 255, 78, 236, 182, 8, 3, 1, 255, 79, 236, 182, 8, 1, 236, - 249, 233, 95, 8, 1, 237, 77, 233, 95, 8, 3, 1, 205, 255, 106, 2, 235, - 100, 8, 3, 1, 205, 255, 106, 2, 237, 11, 19, 242, 226, 49, 1, 3, 192, 49, - 1, 3, 255, 106, 2, 90, 49, 1, 3, 221, 49, 1, 3, 144, 49, 1, 3, 205, 144, - 49, 1, 3, 205, 255, 101, 2, 90, 49, 1, 3, 5, 236, 145, 144, 49, 1, 3, - 255, 16, 49, 1, 3, 255, 14, 49, 1, 240, 57, 49, 1, 45, 240, 57, 49, 1, - 205, 240, 27, 49, 1, 233, 59, 49, 1, 224, 240, 27, 49, 1, 38, 137, 242, - 233, 49, 1, 40, 137, 242, 233, 49, 1, 238, 62, 208, 49, 1, 224, 238, 62, - 208, 49, 1, 40, 234, 7, 49, 1, 38, 234, 7, 49, 1, 88, 234, 7, 49, 1, 92, - 234, 7, 49, 1, 190, 238, 54, 239, 254, 49, 1, 59, 242, 224, 49, 1, 196, - 49, 1, 242, 241, 238, 54, 49, 1, 242, 245, 238, 54, 49, 1, 170, 59, 242, - 224, 49, 1, 170, 196, 49, 1, 170, 242, 245, 238, 54, 49, 1, 170, 242, - 241, 238, 54, 49, 1, 234, 43, 240, 24, 49, 1, 137, 234, 43, 240, 24, 49, - 1, 238, 130, 38, 137, 242, 233, 49, 1, 238, 130, 40, 137, 242, 233, 49, - 1, 88, 242, 234, 49, 1, 92, 242, 234, 49, 1, 248, 49, 52, 49, 1, 242, - 250, 52, 239, 255, 53, 48, 248, 51, 48, 238, 71, 3, 169, 45, 242, 241, - 238, 54, 49, 1, 242, 83, 90, 49, 1, 243, 38, 238, 54, 49, 1, 3, 240, 10, - 49, 1, 3, 162, 49, 1, 3, 193, 49, 1, 3, 206, 49, 1, 3, 224, 238, 62, 208, - 49, 1, 234, 27, 188, 125, 49, 1, 200, 188, 125, 49, 1, 254, 40, 188, 125, - 49, 1, 170, 188, 125, 49, 1, 235, 87, 188, 125, 49, 1, 254, 15, 235, 98, - 188, 69, 49, 1, 248, 122, 235, 98, 188, 69, 49, 1, 238, 44, 49, 1, 233, - 47, 49, 1, 45, 233, 59, 49, 1, 170, 92, 234, 7, 49, 1, 170, 88, 234, 7, - 49, 1, 170, 40, 234, 7, 49, 1, 170, 38, 234, 7, 49, 1, 170, 242, 233, 49, - 1, 240, 1, 242, 245, 238, 54, 49, 1, 240, 1, 45, 242, 245, 238, 54, 49, - 1, 240, 1, 45, 242, 241, 238, 54, 49, 1, 170, 169, 49, 1, 240, 84, 240, - 24, 49, 1, 243, 24, 200, 243, 78, 49, 1, 253, 165, 200, 243, 78, 49, 1, - 243, 24, 170, 243, 78, 49, 1, 253, 165, 170, 243, 78, 49, 1, 240, 226, - 49, 1, 248, 35, 240, 226, 49, 1, 170, 40, 56, 50, 242, 245, 238, 54, 50, - 242, 241, 238, 54, 50, 190, 238, 54, 50, 169, 50, 196, 50, 235, 74, 50, - 239, 255, 50, 53, 48, 50, 175, 50, 248, 45, 48, 50, 248, 51, 48, 50, 45, - 242, 241, 238, 54, 50, 239, 254, 50, 59, 248, 41, 48, 50, 45, 59, 248, - 41, 48, 50, 45, 242, 245, 238, 54, 50, 232, 77, 50, 236, 145, 239, 255, - 50, 205, 242, 244, 48, 50, 242, 244, 48, 50, 224, 242, 244, 48, 50, 242, - 244, 60, 225, 50, 242, 245, 240, 2, 46, 50, 242, 241, 240, 2, 46, 50, 40, - 248, 84, 46, 50, 38, 248, 84, 46, 50, 40, 185, 48, 50, 243, 8, 50, 40, - 137, 248, 51, 46, 50, 88, 248, 84, 46, 50, 92, 248, 84, 46, 50, 248, 49, - 21, 46, 50, 242, 250, 21, 46, 50, 233, 222, 248, 45, 46, 50, 235, 54, - 248, 45, 46, 50, 53, 46, 50, 235, 56, 46, 50, 248, 51, 46, 50, 242, 244, - 46, 50, 236, 151, 50, 238, 71, 50, 59, 248, 41, 46, 50, 240, 109, 46, 50, - 236, 145, 45, 249, 239, 46, 50, 243, 86, 46, 50, 190, 240, 2, 46, 50, - 242, 243, 46, 50, 236, 145, 242, 243, 46, 50, 242, 219, 46, 50, 240, 42, - 46, 50, 170, 242, 224, 50, 45, 170, 242, 224, 50, 242, 219, 236, 161, 50, - 242, 215, 240, 5, 236, 161, 50, 183, 240, 5, 236, 161, 50, 242, 215, 238, - 83, 236, 161, 50, 183, 238, 83, 236, 161, 50, 38, 137, 248, 51, 46, 50, - 236, 145, 240, 109, 46, 50, 31, 46, 50, 239, 184, 46, 50, 255, 113, 48, - 50, 59, 169, 50, 45, 235, 74, 50, 242, 245, 188, 69, 50, 242, 241, 188, - 69, 50, 17, 232, 71, 50, 17, 236, 229, 50, 17, 235, 59, 240, 16, 50, 17, - 231, 35, 50, 240, 109, 48, 50, 240, 7, 21, 46, 50, 45, 59, 248, 41, 46, - 50, 40, 185, 46, 50, 161, 242, 219, 48, 50, 234, 200, 48, 50, 240, 40, - 95, 153, 48, 50, 40, 38, 65, 46, 50, 226, 226, 65, 46, 50, 237, 166, 238, - 140, 50, 38, 235, 76, 48, 50, 40, 137, 248, 51, 48, 50, 237, 10, 50, 255, - 113, 46, 50, 40, 235, 76, 46, 50, 38, 235, 76, 46, 50, 38, 235, 76, 19, - 88, 235, 76, 46, 50, 38, 137, 248, 51, 48, 50, 53, 60, 225, 50, 236, 219, - 46, 50, 45, 248, 51, 46, 50, 240, 126, 48, 50, 45, 242, 243, 46, 50, 45, - 239, 255, 50, 45, 196, 50, 45, 240, 42, 46, 50, 45, 169, 50, 45, 236, - 145, 239, 255, 50, 45, 77, 65, 46, 50, 8, 3, 1, 67, 50, 8, 3, 1, 72, 50, - 8, 3, 1, 71, 50, 8, 3, 1, 73, 50, 8, 3, 1, 79, 50, 8, 3, 1, 255, 18, 50, - 8, 3, 1, 209, 50, 8, 3, 1, 192, 50, 8, 3, 1, 173, 50, 8, 3, 1, 144, 50, - 8, 3, 1, 214, 50, 8, 3, 1, 179, 50, 8, 3, 1, 206, 17, 178, 52, 17, 168, - 178, 52, 17, 231, 35, 17, 236, 156, 69, 17, 240, 16, 17, 235, 59, 240, - 16, 17, 5, 1, 194, 2, 240, 16, 17, 254, 140, 238, 223, 17, 5, 1, 238, 57, - 2, 240, 16, 17, 5, 1, 253, 123, 2, 240, 16, 17, 5, 1, 248, 42, 2, 240, - 16, 17, 5, 1, 238, 64, 2, 240, 16, 17, 5, 1, 238, 53, 2, 240, 16, 17, 5, - 1, 211, 2, 240, 16, 17, 3, 1, 248, 42, 2, 235, 59, 19, 240, 16, 17, 5, 1, - 240, 22, 17, 5, 1, 242, 242, 17, 5, 1, 240, 10, 17, 5, 1, 240, 28, 17, 5, - 1, 236, 165, 17, 5, 1, 242, 251, 17, 5, 1, 248, 87, 17, 5, 1, 240, 38, - 17, 5, 1, 242, 237, 17, 5, 1, 240, 41, 17, 5, 1, 240, 33, 17, 5, 1, 253, - 154, 17, 5, 1, 253, 150, 17, 5, 1, 253, 188, 17, 5, 1, 236, 169, 17, 5, - 1, 253, 147, 17, 5, 1, 248, 73, 17, 5, 1, 240, 21, 17, 5, 1, 248, 85, 17, - 5, 1, 236, 160, 17, 5, 1, 248, 68, 17, 5, 1, 248, 67, 17, 5, 1, 248, 69, - 17, 5, 1, 240, 20, 17, 5, 1, 248, 42, 2, 234, 26, 17, 5, 1, 238, 53, 2, - 234, 26, 17, 3, 1, 194, 2, 240, 16, 17, 3, 1, 238, 57, 2, 240, 16, 17, 3, - 1, 253, 123, 2, 240, 16, 17, 3, 1, 248, 42, 2, 240, 16, 17, 3, 1, 238, - 53, 2, 235, 59, 19, 240, 16, 17, 3, 1, 240, 22, 17, 3, 1, 242, 242, 17, - 3, 1, 240, 10, 17, 3, 1, 240, 28, 17, 3, 1, 236, 165, 17, 3, 1, 242, 251, - 17, 3, 1, 248, 87, 17, 3, 1, 240, 38, 17, 3, 1, 242, 237, 17, 3, 1, 240, - 41, 17, 3, 1, 240, 33, 17, 3, 1, 253, 154, 17, 3, 1, 253, 150, 17, 3, 1, - 253, 188, 17, 3, 1, 236, 169, 17, 3, 1, 253, 147, 17, 3, 1, 248, 73, 17, - 3, 1, 30, 240, 21, 17, 3, 1, 240, 21, 17, 3, 1, 248, 85, 17, 3, 1, 236, - 160, 17, 3, 1, 248, 68, 17, 3, 1, 248, 67, 17, 3, 1, 248, 69, 17, 3, 1, - 240, 20, 17, 3, 1, 248, 42, 2, 234, 26, 17, 3, 1, 238, 53, 2, 234, 26, - 17, 3, 1, 238, 64, 2, 240, 16, 17, 3, 1, 238, 53, 2, 240, 16, 17, 3, 1, - 211, 2, 240, 16, 17, 250, 118, 91, 17, 243, 0, 91, 17, 238, 53, 2, 248, - 45, 91, 17, 238, 53, 2, 242, 241, 19, 248, 45, 91, 17, 238, 53, 2, 235, - 56, 19, 248, 45, 91, 17, 254, 11, 91, 17, 255, 29, 91, 17, 254, 65, 91, - 17, 1, 238, 162, 240, 77, 17, 3, 1, 238, 162, 240, 77, 17, 1, 238, 152, - 17, 3, 1, 238, 152, 17, 1, 237, 6, 17, 3, 1, 237, 6, 17, 1, 240, 77, 17, - 3, 1, 240, 77, 17, 1, 240, 121, 17, 3, 1, 240, 121, 62, 5, 1, 243, 32, - 62, 3, 1, 243, 32, 62, 5, 1, 249, 62, 62, 3, 1, 249, 62, 62, 5, 1, 243, - 64, 62, 3, 1, 243, 64, 62, 5, 1, 243, 28, 62, 3, 1, 243, 28, 62, 5, 1, - 238, 115, 62, 3, 1, 238, 115, 62, 5, 1, 240, 88, 62, 3, 1, 240, 88, 62, - 5, 1, 249, 53, 62, 3, 1, 249, 53, 17, 243, 29, 91, 17, 253, 218, 91, 17, - 240, 67, 243, 45, 91, 17, 1, 249, 211, 17, 5, 243, 0, 91, 17, 240, 67, - 238, 57, 91, 17, 224, 240, 67, 238, 57, 91, 17, 5, 1, 248, 110, 17, 3, 1, - 248, 110, 17, 5, 240, 67, 243, 45, 91, 17, 5, 1, 248, 134, 17, 3, 1, 248, - 134, 17, 253, 218, 2, 240, 5, 91, 17, 5, 224, 240, 67, 243, 45, 91, 17, - 5, 240, 4, 240, 67, 243, 45, 91, 17, 5, 224, 240, 4, 240, 67, 243, 45, - 91, 32, 5, 1, 255, 42, 2, 191, 32, 5, 1, 254, 100, 32, 5, 1, 248, 150, - 32, 5, 1, 249, 77, 32, 5, 1, 235, 156, 253, 237, 32, 5, 1, 248, 126, 32, - 5, 1, 226, 228, 71, 32, 5, 1, 253, 189, 32, 5, 1, 254, 24, 32, 5, 1, 248, - 165, 32, 5, 1, 248, 174, 32, 5, 1, 244, 40, 32, 5, 1, 249, 96, 32, 5, 1, - 220, 2, 191, 32, 5, 1, 242, 215, 79, 32, 5, 1, 243, 166, 32, 5, 1, 67, - 32, 5, 1, 253, 242, 32, 5, 1, 254, 12, 32, 5, 1, 248, 127, 32, 5, 1, 253, - 200, 32, 5, 1, 253, 237, 32, 5, 1, 248, 123, 32, 5, 1, 253, 228, 32, 5, - 1, 71, 32, 5, 1, 242, 215, 71, 32, 5, 1, 201, 32, 5, 1, 254, 3, 32, 5, 1, - 254, 22, 32, 5, 1, 253, 202, 32, 5, 1, 73, 32, 5, 1, 253, 175, 32, 5, 1, - 254, 4, 32, 5, 1, 254, 23, 32, 5, 1, 253, 195, 32, 5, 1, 79, 32, 5, 1, - 254, 21, 32, 5, 1, 219, 32, 5, 1, 248, 112, 32, 5, 1, 248, 88, 32, 5, 1, - 248, 46, 32, 5, 1, 240, 224, 32, 5, 1, 249, 79, 52, 32, 5, 1, 243, 83, - 32, 5, 1, 248, 186, 52, 32, 5, 1, 72, 32, 5, 1, 253, 161, 32, 5, 1, 216, - 32, 3, 1, 67, 32, 3, 1, 253, 242, 32, 3, 1, 254, 12, 32, 3, 1, 248, 127, - 32, 3, 1, 253, 200, 32, 3, 1, 253, 237, 32, 3, 1, 248, 123, 32, 3, 1, - 253, 228, 32, 3, 1, 71, 32, 3, 1, 242, 215, 71, 32, 3, 1, 201, 32, 3, 1, - 254, 3, 32, 3, 1, 254, 22, 32, 3, 1, 253, 202, 32, 3, 1, 73, 32, 3, 1, - 253, 175, 32, 3, 1, 254, 4, 32, 3, 1, 254, 23, 32, 3, 1, 253, 195, 32, 3, - 1, 79, 32, 3, 1, 254, 21, 32, 3, 1, 219, 32, 3, 1, 248, 112, 32, 3, 1, - 248, 88, 32, 3, 1, 248, 46, 32, 3, 1, 240, 224, 32, 3, 1, 249, 79, 52, - 32, 3, 1, 243, 83, 32, 3, 1, 248, 186, 52, 32, 3, 1, 72, 32, 3, 1, 253, - 161, 32, 3, 1, 216, 32, 3, 1, 255, 42, 2, 191, 32, 3, 1, 254, 100, 32, 3, - 1, 248, 150, 32, 3, 1, 249, 77, 32, 3, 1, 235, 156, 253, 237, 32, 3, 1, - 248, 126, 32, 3, 1, 226, 228, 71, 32, 3, 1, 253, 189, 32, 3, 1, 254, 24, - 32, 3, 1, 248, 165, 32, 3, 1, 248, 174, 32, 3, 1, 244, 40, 32, 3, 1, 249, - 96, 32, 3, 1, 220, 2, 191, 32, 3, 1, 242, 215, 79, 32, 3, 1, 243, 166, - 32, 5, 1, 240, 20, 32, 3, 1, 240, 20, 32, 5, 1, 249, 21, 32, 3, 1, 249, - 21, 32, 5, 1, 236, 197, 72, 32, 3, 1, 236, 197, 72, 32, 5, 1, 240, 101, - 248, 74, 32, 3, 1, 240, 101, 248, 74, 32, 5, 1, 236, 197, 240, 101, 248, - 74, 32, 3, 1, 236, 197, 240, 101, 248, 74, 32, 5, 1, 253, 213, 248, 74, - 32, 3, 1, 253, 213, 248, 74, 32, 5, 1, 236, 197, 253, 213, 248, 74, 32, - 3, 1, 236, 197, 253, 213, 248, 74, 32, 5, 1, 248, 163, 32, 3, 1, 248, - 163, 32, 5, 1, 248, 69, 32, 3, 1, 248, 69, 32, 5, 1, 243, 57, 32, 3, 1, - 243, 57, 32, 5, 1, 236, 215, 32, 3, 1, 236, 215, 32, 5, 1, 238, 192, 2, - 45, 242, 245, 238, 54, 32, 3, 1, 238, 192, 2, 45, 242, 245, 238, 54, 32, - 5, 1, 254, 130, 32, 3, 1, 254, 130, 32, 5, 1, 244, 1, 240, 20, 32, 3, 1, - 244, 1, 240, 20, 32, 5, 1, 211, 2, 240, 150, 32, 3, 1, 211, 2, 240, 150, - 32, 5, 1, 254, 67, 32, 3, 1, 254, 67, 32, 5, 1, 240, 77, 32, 3, 1, 240, - 77, 32, 235, 114, 52, 50, 32, 240, 150, 50, 32, 231, 27, 50, 32, 148, - 235, 135, 50, 32, 159, 235, 135, 50, 32, 238, 92, 235, 114, 52, 50, 32, - 237, 211, 52, 32, 5, 1, 242, 215, 220, 2, 242, 226, 32, 3, 1, 242, 215, - 220, 2, 242, 226, 32, 5, 1, 237, 36, 52, 32, 3, 1, 237, 36, 52, 32, 5, 1, - 255, 54, 2, 243, 36, 32, 3, 1, 255, 54, 2, 243, 36, 32, 5, 1, 253, 233, - 2, 238, 231, 32, 3, 1, 253, 233, 2, 238, 231, 32, 5, 1, 253, 233, 2, 108, - 32, 3, 1, 253, 233, 2, 108, 32, 5, 1, 253, 233, 2, 240, 1, 90, 32, 3, 1, - 253, 233, 2, 240, 1, 90, 32, 5, 1, 254, 16, 2, 234, 2, 32, 3, 1, 254, 16, - 2, 234, 2, 32, 5, 1, 255, 46, 2, 234, 2, 32, 3, 1, 255, 46, 2, 234, 2, - 32, 5, 1, 255, 26, 2, 234, 2, 32, 3, 1, 255, 26, 2, 234, 2, 32, 5, 1, - 255, 26, 2, 59, 108, 32, 3, 1, 255, 26, 2, 59, 108, 32, 5, 1, 255, 26, 2, - 108, 32, 3, 1, 255, 26, 2, 108, 32, 5, 1, 238, 165, 201, 32, 3, 1, 238, - 165, 201, 32, 5, 1, 255, 23, 2, 234, 2, 32, 3, 1, 255, 23, 2, 234, 2, 32, - 5, 18, 255, 23, 248, 127, 32, 3, 18, 255, 23, 248, 127, 32, 5, 1, 255, - 38, 2, 240, 1, 90, 32, 3, 1, 255, 38, 2, 240, 1, 90, 32, 5, 1, 235, 66, - 219, 32, 3, 1, 235, 66, 219, 32, 5, 1, 255, 55, 2, 234, 2, 32, 3, 1, 255, - 55, 2, 234, 2, 32, 5, 1, 255, 45, 2, 234, 2, 32, 3, 1, 255, 45, 2, 234, - 2, 32, 5, 1, 236, 218, 79, 32, 3, 1, 236, 218, 79, 32, 5, 1, 236, 218, - 132, 2, 108, 32, 3, 1, 236, 218, 132, 2, 108, 32, 5, 1, 255, 58, 2, 234, - 2, 32, 3, 1, 255, 58, 2, 234, 2, 32, 5, 18, 255, 45, 248, 112, 32, 3, 18, - 255, 45, 248, 112, 32, 5, 1, 253, 223, 2, 234, 2, 32, 3, 1, 253, 223, 2, - 234, 2, 32, 5, 1, 253, 223, 2, 59, 108, 32, 3, 1, 253, 223, 2, 59, 108, - 32, 5, 1, 244, 10, 32, 3, 1, 244, 10, 32, 5, 1, 235, 66, 248, 88, 32, 3, - 1, 235, 66, 248, 88, 32, 5, 1, 235, 66, 253, 223, 2, 234, 2, 32, 3, 1, - 235, 66, 253, 223, 2, 234, 2, 32, 1, 236, 69, 32, 5, 1, 254, 16, 2, 239, - 255, 32, 3, 1, 254, 16, 2, 239, 255, 32, 5, 1, 255, 26, 2, 90, 32, 3, 1, - 255, 26, 2, 90, 32, 5, 1, 255, 49, 2, 242, 226, 32, 3, 1, 255, 49, 2, - 242, 226, 32, 5, 1, 255, 23, 2, 90, 32, 3, 1, 255, 23, 2, 90, 32, 5, 1, - 255, 23, 2, 242, 226, 32, 3, 1, 255, 23, 2, 242, 226, 32, 5, 1, 234, 59, - 248, 88, 32, 3, 1, 234, 59, 248, 88, 32, 5, 1, 255, 28, 2, 242, 226, 32, - 3, 1, 255, 28, 2, 242, 226, 32, 5, 1, 134, 2, 239, 255, 32, 3, 1, 134, 2, - 239, 255, 32, 5, 1, 134, 2, 175, 32, 3, 1, 134, 2, 175, 32, 5, 18, 134, - 253, 237, 32, 3, 18, 134, 253, 237, 32, 5, 1, 255, 42, 2, 239, 255, 32, - 3, 1, 255, 42, 2, 239, 255, 32, 5, 1, 240, 86, 32, 3, 1, 240, 86, 32, 5, - 1, 243, 73, 2, 175, 32, 3, 1, 243, 73, 2, 175, 32, 5, 1, 254, 16, 2, 175, - 32, 3, 1, 254, 16, 2, 175, 32, 5, 1, 255, 46, 2, 175, 32, 3, 1, 255, 46, - 2, 175, 32, 5, 1, 235, 66, 248, 126, 32, 3, 1, 235, 66, 248, 126, 32, 5, - 1, 220, 2, 196, 32, 3, 1, 220, 2, 196, 32, 5, 1, 220, 2, 175, 32, 3, 1, - 220, 2, 175, 32, 5, 1, 117, 2, 175, 32, 3, 1, 117, 2, 175, 32, 5, 1, 240, - 60, 73, 32, 3, 1, 240, 60, 73, 32, 5, 1, 240, 60, 117, 2, 175, 32, 3, 1, - 240, 60, 117, 2, 175, 32, 5, 1, 157, 2, 175, 32, 3, 1, 157, 2, 175, 32, - 5, 1, 132, 2, 196, 32, 3, 1, 132, 2, 196, 32, 5, 1, 132, 2, 175, 32, 3, - 1, 132, 2, 175, 32, 5, 1, 132, 2, 45, 135, 32, 3, 1, 132, 2, 45, 135, 32, - 5, 1, 253, 223, 2, 175, 32, 3, 1, 253, 223, 2, 175, 32, 5, 1, 253, 233, - 2, 234, 2, 32, 3, 1, 253, 233, 2, 234, 2, 32, 5, 1, 249, 207, 2, 175, 32, - 3, 1, 249, 207, 2, 175, 32, 5, 1, 248, 72, 253, 200, 32, 3, 1, 248, 72, - 253, 200, 32, 5, 1, 248, 72, 248, 150, 32, 3, 1, 248, 72, 248, 150, 32, - 5, 1, 248, 72, 249, 220, 32, 3, 1, 248, 72, 249, 220, 32, 5, 1, 248, 72, - 243, 167, 32, 3, 1, 248, 72, 243, 167, 32, 5, 1, 248, 72, 248, 165, 32, - 3, 1, 248, 72, 248, 165, 32, 5, 1, 248, 72, 248, 174, 32, 3, 1, 248, 72, - 248, 174, 32, 5, 1, 248, 72, 249, 165, 32, 3, 1, 248, 72, 249, 165, 32, - 5, 1, 248, 72, 249, 178, 32, 3, 1, 248, 72, 249, 178, 100, 5, 1, 249, 28, - 100, 5, 1, 249, 32, 100, 5, 1, 249, 76, 100, 5, 1, 253, 133, 100, 5, 1, - 248, 208, 100, 5, 1, 253, 163, 100, 5, 1, 254, 36, 100, 5, 1, 254, 60, - 100, 5, 1, 87, 100, 5, 1, 248, 123, 100, 5, 1, 248, 216, 100, 5, 1, 243, - 216, 100, 5, 1, 249, 17, 100, 5, 1, 253, 152, 100, 5, 1, 249, 93, 100, 5, - 1, 253, 184, 100, 5, 1, 253, 146, 100, 5, 1, 243, 182, 100, 5, 1, 243, - 155, 100, 5, 1, 248, 228, 100, 5, 1, 253, 189, 100, 5, 1, 248, 175, 100, - 5, 1, 248, 46, 100, 5, 1, 254, 13, 100, 5, 1, 248, 57, 100, 5, 1, 248, - 237, 100, 5, 1, 243, 201, 100, 5, 1, 253, 130, 100, 5, 1, 249, 159, 100, - 5, 1, 249, 195, 100, 5, 1, 244, 32, 100, 5, 1, 248, 245, 100, 5, 1, 253, - 224, 100, 5, 1, 243, 136, 100, 5, 1, 243, 244, 100, 5, 1, 248, 218, 100, - 5, 1, 254, 118, 100, 5, 1, 248, 156, 100, 49, 1, 40, 137, 242, 233, 100, - 233, 59, 100, 237, 8, 69, 100, 233, 54, 69, 100, 240, 27, 100, 236, 156, - 69, 100, 232, 88, 69, 100, 3, 1, 249, 28, 100, 3, 1, 249, 32, 100, 3, 1, - 249, 76, 100, 3, 1, 253, 133, 100, 3, 1, 248, 208, 100, 3, 1, 253, 163, - 100, 3, 1, 254, 36, 100, 3, 1, 254, 60, 100, 3, 1, 87, 100, 3, 1, 248, - 123, 100, 3, 1, 248, 216, 100, 3, 1, 243, 216, 100, 3, 1, 249, 17, 100, - 3, 1, 253, 152, 100, 3, 1, 249, 93, 100, 3, 1, 253, 184, 100, 3, 1, 253, - 146, 100, 3, 1, 243, 182, 100, 3, 1, 243, 155, 100, 3, 1, 248, 228, 100, - 3, 1, 253, 189, 100, 3, 1, 248, 175, 100, 3, 1, 248, 46, 100, 3, 1, 254, - 13, 100, 3, 1, 248, 57, 100, 3, 1, 248, 237, 100, 3, 1, 243, 201, 100, 3, - 1, 253, 130, 100, 3, 1, 249, 159, 100, 3, 1, 249, 195, 100, 3, 1, 244, - 32, 100, 3, 1, 248, 245, 100, 3, 1, 253, 224, 100, 3, 1, 243, 136, 100, - 3, 1, 243, 244, 100, 3, 1, 248, 218, 100, 3, 1, 254, 118, 100, 3, 1, 248, - 156, 100, 3, 18, 254, 159, 243, 136, 100, 248, 37, 208, 100, 238, 93, 68, - 240, 2, 237, 152, 68, 240, 2, 240, 145, 68, 240, 2, 233, 242, 68, 240, 2, - 244, 64, 240, 212, 68, 240, 2, 244, 64, 241, 120, 68, 240, 2, 239, 222, - 68, 240, 2, 242, 81, 68, 240, 2, 242, 200, 68, 240, 2, 239, 158, 68, 240, - 2, 242, 197, 68, 240, 2, 242, 145, 68, 240, 2, 238, 186, 68, 240, 2, 241, - 126, 239, 141, 68, 240, 2, 234, 56, 68, 240, 2, 242, 71, 246, 238, 68, - 240, 2, 238, 224, 239, 80, 68, 240, 2, 242, 50, 68, 240, 2, 244, 85, 239, - 88, 68, 240, 2, 241, 250, 68, 240, 2, 236, 54, 68, 240, 2, 239, 134, 68, - 240, 2, 241, 235, 239, 106, 68, 240, 2, 241, 73, 68, 240, 2, 242, 69, 68, - 240, 2, 238, 224, 239, 171, 68, 240, 2, 247, 225, 254, 145, 247, 232, 68, - 240, 2, 252, 58, 68, 240, 2, 245, 226, 68, 240, 2, 245, 61, 68, 240, 2, - 242, 208, 68, 158, 241, 230, 238, 51, 68, 242, 232, 242, 105, 68, 242, - 232, 243, 98, 240, 145, 68, 242, 232, 243, 98, 240, 118, 68, 242, 232, - 243, 98, 238, 149, 68, 242, 232, 240, 187, 68, 242, 232, 242, 159, 68, - 242, 232, 240, 145, 68, 242, 232, 240, 118, 68, 242, 232, 238, 149, 68, - 242, 232, 240, 188, 68, 242, 232, 239, 172, 68, 242, 232, 240, 133, 128, - 240, 140, 68, 242, 232, 241, 236, 68, 233, 51, 241, 228, 68, 242, 232, - 243, 70, 68, 233, 51, 242, 47, 68, 242, 232, 248, 102, 248, 40, 68, 242, - 232, 254, 73, 248, 40, 68, 233, 51, 254, 240, 242, 48, 68, 158, 189, 248, - 40, 68, 158, 168, 248, 40, 68, 233, 51, 254, 114, 237, 167, 68, 242, 232, - 242, 70, 240, 212, 68, 1, 243, 3, 68, 1, 250, 117, 68, 1, 241, 136, 68, - 1, 240, 165, 68, 1, 253, 168, 68, 1, 249, 192, 68, 1, 242, 201, 68, 1, - 251, 54, 68, 1, 249, 176, 68, 1, 248, 193, 68, 1, 30, 248, 116, 68, 1, - 248, 116, 68, 1, 240, 139, 68, 1, 30, 248, 166, 68, 1, 248, 166, 68, 1, - 30, 248, 132, 68, 1, 248, 132, 68, 1, 239, 178, 68, 1, 243, 144, 68, 1, - 30, 253, 175, 68, 1, 253, 175, 68, 1, 30, 240, 248, 68, 1, 240, 248, 68, - 1, 252, 99, 68, 1, 243, 253, 68, 1, 243, 33, 68, 1, 249, 175, 68, 18, - 238, 126, 45, 249, 192, 68, 18, 238, 126, 254, 76, 248, 193, 68, 18, 238, - 126, 45, 248, 193, 68, 233, 51, 238, 186, 68, 233, 51, 234, 56, 11, 61, - 52, 11, 21, 242, 97, 11, 237, 159, 238, 95, 11, 21, 242, 93, 238, 237, - 52, 11, 240, 27, 11, 250, 186, 234, 6, 11, 242, 63, 244, 46, 52, 11, 21, - 241, 245, 11, 21, 233, 100, 240, 107, 235, 40, 11, 21, 240, 107, 235, - 173, 11, 21, 233, 228, 238, 242, 11, 21, 252, 127, 238, 244, 244, 80, 11, - 21, 235, 31, 11, 3, 200, 248, 137, 11, 234, 14, 11, 240, 3, 53, 233, 51, - 69, 11, 236, 156, 69, 11, 1, 240, 186, 11, 1, 83, 2, 243, 42, 48, 11, 1, - 83, 2, 143, 48, 11, 1, 253, 220, 2, 143, 48, 11, 1, 83, 2, 143, 46, 11, - 1, 57, 2, 143, 48, 11, 1, 243, 3, 11, 1, 249, 31, 11, 1, 253, 127, 237, - 200, 11, 1, 252, 213, 11, 1, 247, 142, 11, 1, 243, 200, 11, 1, 251, 45, - 11, 1, 243, 205, 11, 1, 250, 180, 11, 1, 247, 141, 11, 1, 248, 245, 11, - 1, 244, 63, 11, 1, 243, 120, 11, 1, 242, 103, 11, 1, 252, 165, 11, 1, - 250, 178, 11, 1, 248, 137, 11, 1, 253, 97, 11, 1, 248, 105, 11, 1, 240, - 180, 11, 238, 22, 11, 1, 248, 156, 11, 1, 249, 145, 11, 1, 248, 116, 11, - 1, 251, 182, 11, 1, 243, 223, 11, 1, 243, 236, 11, 1, 251, 50, 11, 1, - 248, 142, 11, 1, 83, 236, 232, 11, 1, 248, 144, 11, 236, 18, 11, 235, - 197, 11, 236, 43, 11, 241, 103, 11, 240, 134, 11, 241, 193, 11, 239, 191, - 11, 240, 240, 11, 241, 223, 48, 11, 143, 48, 11, 143, 46, 11, 235, 48, - 243, 3, 11, 236, 145, 240, 134, 11, 158, 198, 238, 187, 11, 236, 144, 11, - 33, 21, 3, 255, 110, 48, 11, 33, 21, 236, 145, 3, 255, 110, 48, 11, 33, - 21, 53, 46, 11, 224, 240, 134, 11, 243, 40, 2, 171, 243, 5, 232, 73, 26, - 242, 217, 232, 73, 26, 127, 232, 73, 26, 111, 232, 73, 26, 166, 232, 73, - 26, 177, 232, 73, 26, 176, 232, 73, 26, 187, 232, 73, 26, 203, 232, 73, - 26, 195, 232, 73, 26, 202, 11, 238, 107, 52, 11, 238, 176, 234, 6, 11, - 235, 114, 234, 6, 11, 248, 48, 238, 74, 242, 229, 11, 1, 238, 70, 249, - 31, 11, 1, 238, 70, 249, 145, 11, 1, 233, 49, 243, 3, 11, 1, 83, 242, - 182, 11, 1, 83, 2, 248, 103, 143, 48, 11, 1, 83, 2, 248, 103, 143, 46, - 11, 1, 200, 240, 186, 11, 1, 200, 143, 243, 3, 11, 1, 200, 143, 248, 142, - 11, 1, 132, 2, 143, 48, 11, 1, 200, 143, 248, 144, 11, 1, 247, 165, 11, - 1, 239, 231, 11, 1, 244, 214, 11, 1, 253, 127, 2, 242, 233, 11, 1, 253, - 127, 2, 204, 181, 60, 234, 9, 11, 1, 248, 237, 11, 1, 242, 143, 11, 1, - 241, 28, 11, 1, 94, 2, 143, 48, 11, 1, 94, 2, 171, 181, 59, 48, 11, 1, - 246, 201, 11, 1, 245, 77, 11, 1, 94, 2, 204, 181, 48, 11, 1, 242, 142, - 11, 1, 238, 23, 11, 1, 245, 37, 11, 1, 253, 199, 2, 242, 233, 11, 1, 253, - 199, 2, 53, 46, 11, 1, 253, 199, 2, 53, 242, 230, 19, 3, 248, 137, 11, 1, - 241, 71, 11, 1, 239, 38, 11, 1, 250, 208, 11, 1, 253, 199, 2, 204, 181, - 60, 234, 9, 11, 1, 253, 199, 2, 248, 58, 181, 48, 11, 1, 247, 36, 11, 1, - 253, 143, 2, 3, 179, 11, 1, 253, 143, 2, 242, 233, 11, 1, 253, 143, 2, - 53, 46, 11, 1, 253, 143, 2, 3, 255, 110, 46, 11, 1, 253, 143, 2, 53, 242, - 230, 19, 53, 48, 11, 1, 253, 143, 2, 171, 181, 48, 11, 1, 251, 112, 11, - 1, 253, 143, 2, 248, 58, 181, 48, 11, 1, 248, 39, 2, 53, 242, 230, 19, - 53, 48, 11, 1, 248, 39, 2, 204, 181, 46, 11, 1, 248, 39, 2, 204, 181, - 242, 230, 19, 204, 181, 48, 11, 1, 253, 157, 2, 171, 181, 46, 11, 1, 253, - 157, 2, 204, 181, 48, 11, 1, 253, 169, 2, 204, 181, 48, 11, 1, 253, 158, - 2, 204, 181, 48, 11, 1, 238, 70, 248, 156, 11, 1, 253, 153, 2, 53, 246, - 92, 46, 11, 1, 253, 153, 2, 53, 46, 11, 1, 253, 10, 11, 1, 253, 153, 2, - 204, 181, 46, 11, 1, 242, 53, 11, 1, 253, 167, 2, 53, 48, 11, 1, 253, - 167, 2, 204, 181, 48, 11, 1, 241, 197, 11, 1, 243, 126, 248, 116, 11, 1, - 253, 135, 2, 242, 233, 11, 1, 253, 135, 2, 53, 48, 11, 1, 254, 26, 11, 1, - 253, 135, 2, 204, 181, 46, 11, 1, 251, 5, 11, 1, 253, 246, 2, 242, 233, - 11, 1, 242, 8, 11, 1, 253, 246, 2, 171, 181, 46, 11, 1, 245, 129, 11, 1, - 253, 246, 2, 204, 181, 48, 11, 1, 182, 2, 3, 179, 11, 1, 182, 2, 53, 48, - 11, 1, 182, 2, 204, 181, 48, 11, 1, 182, 2, 204, 181, 46, 11, 1, 198, 2, - 53, 46, 11, 1, 198, 238, 187, 11, 1, 242, 85, 11, 1, 198, 2, 242, 233, - 11, 1, 198, 2, 204, 181, 48, 11, 1, 253, 124, 232, 133, 11, 1, 243, 47, - 2, 53, 48, 11, 1, 253, 124, 2, 57, 48, 11, 1, 253, 124, 243, 185, 11, 1, - 253, 124, 248, 128, 2, 143, 48, 11, 1, 253, 127, 238, 144, 243, 185, 11, - 1, 253, 220, 2, 242, 233, 11, 1, 238, 73, 253, 193, 11, 1, 253, 193, 11, - 1, 79, 11, 1, 253, 161, 11, 1, 238, 73, 253, 161, 11, 1, 253, 220, 2, - 171, 181, 48, 11, 1, 254, 12, 11, 1, 243, 26, 248, 144, 11, 1, 57, 2, - 242, 226, 11, 1, 57, 2, 3, 179, 11, 1, 253, 220, 2, 53, 48, 11, 1, 72, - 11, 1, 57, 2, 204, 181, 46, 11, 1, 57, 239, 5, 11, 1, 57, 240, 92, 2, - 143, 48, 11, 248, 37, 208, 11, 1, 253, 178, 11, 3, 200, 18, 253, 157, 2, - 182, 2, 83, 236, 232, 11, 3, 200, 18, 253, 167, 2, 182, 2, 83, 236, 232, - 11, 3, 200, 51, 54, 13, 11, 3, 200, 182, 243, 3, 11, 3, 200, 243, 200, - 11, 3, 200, 204, 243, 5, 11, 3, 200, 243, 120, 11, 253, 165, 147, 244, - 87, 11, 243, 124, 147, 254, 237, 255, 49, 245, 147, 11, 3, 200, 238, 121, - 242, 217, 11, 3, 200, 239, 234, 233, 97, 242, 217, 11, 3, 200, 238, 70, - 251, 49, 147, 243, 205, 11, 3, 200, 51, 39, 13, 11, 3, 170, 243, 120, 11, - 3, 200, 241, 222, 11, 3, 248, 142, 11, 3, 248, 144, 11, 3, 200, 248, 144, - 11, 3, 200, 243, 236, 11, 243, 245, 147, 239, 177, 11, 243, 15, 240, 46, - 170, 208, 11, 243, 15, 240, 46, 200, 208, 11, 238, 121, 200, 248, 119, 2, - 241, 109, 238, 129, 11, 3, 170, 243, 223, 11, 1, 253, 199, 2, 236, 145, - 179, 11, 1, 253, 143, 2, 236, 145, 179, 236, 174, 232, 73, 26, 242, 217, - 236, 174, 232, 73, 26, 127, 236, 174, 232, 73, 26, 111, 236, 174, 232, - 73, 26, 166, 236, 174, 232, 73, 26, 177, 236, 174, 232, 73, 26, 176, 236, - 174, 232, 73, 26, 187, 236, 174, 232, 73, 26, 203, 236, 174, 232, 73, 26, - 195, 236, 174, 232, 73, 26, 202, 11, 1, 242, 216, 2, 53, 46, 11, 1, 253, - 155, 2, 53, 46, 11, 1, 242, 240, 2, 53, 46, 11, 21, 240, 233, 234, 17, - 11, 21, 240, 233, 232, 197, 248, 228, 11, 1, 253, 124, 2, 236, 145, 179, - 129, 253, 165, 147, 234, 232, 129, 233, 80, 248, 37, 208, 129, 235, 110, - 248, 37, 208, 129, 233, 80, 240, 24, 129, 235, 110, 240, 24, 129, 163, - 240, 24, 129, 243, 14, 240, 122, 242, 220, 129, 243, 14, 240, 122, 225, - 129, 233, 80, 243, 14, 240, 122, 242, 220, 129, 235, 110, 243, 14, 240, - 122, 225, 129, 232, 121, 129, 236, 227, 239, 150, 129, 236, 227, 234, - 222, 129, 236, 227, 233, 117, 129, 232, 88, 69, 129, 1, 240, 155, 129, 1, - 233, 49, 240, 155, 129, 1, 244, 219, 129, 1, 241, 121, 129, 1, 245, 96, - 235, 123, 129, 1, 239, 35, 129, 1, 238, 70, 241, 72, 243, 255, 129, 1, - 253, 168, 129, 1, 248, 142, 129, 1, 244, 63, 129, 1, 245, 142, 129, 1, - 247, 140, 129, 1, 252, 216, 235, 123, 129, 1, 247, 238, 129, 1, 253, 87, - 253, 168, 129, 1, 246, 5, 129, 1, 239, 113, 129, 1, 251, 235, 129, 1, - 248, 132, 129, 1, 237, 37, 129, 1, 30, 237, 37, 129, 1, 72, 129, 1, 253, - 175, 129, 1, 224, 253, 175, 129, 1, 242, 92, 129, 1, 247, 6, 129, 1, 243, - 255, 129, 1, 243, 33, 129, 1, 252, 211, 129, 1, 184, 241, 30, 129, 1, - 184, 239, 84, 129, 1, 184, 237, 104, 129, 240, 143, 48, 129, 240, 143, - 46, 129, 240, 143, 238, 136, 129, 240, 154, 48, 129, 240, 154, 46, 129, - 240, 154, 238, 136, 129, 243, 252, 48, 129, 243, 252, 46, 129, 240, 4, - 244, 66, 233, 50, 129, 240, 4, 244, 66, 237, 61, 129, 243, 192, 48, 129, - 243, 192, 46, 129, 233, 205, 238, 136, 129, 243, 170, 48, 129, 243, 170, - 46, 129, 242, 91, 129, 237, 9, 248, 40, 129, 234, 244, 129, 236, 94, 129, - 171, 59, 181, 48, 129, 171, 59, 181, 46, 129, 204, 181, 48, 129, 204, - 181, 46, 129, 238, 106, 248, 41, 48, 129, 238, 106, 248, 41, 46, 129, - 241, 251, 129, 237, 71, 129, 1, 238, 151, 242, 202, 129, 1, 238, 151, - 241, 201, 129, 1, 238, 151, 254, 62, 11, 1, 253, 136, 2, 204, 181, 232, - 173, 46, 11, 1, 253, 136, 2, 53, 242, 230, 19, 204, 181, 48, 11, 1, 253, - 136, 2, 204, 181, 236, 150, 226, 226, 46, 11, 1, 253, 136, 2, 204, 181, - 236, 150, 226, 226, 242, 230, 19, 171, 181, 48, 11, 1, 253, 136, 2, 171, - 181, 242, 230, 19, 53, 48, 11, 1, 253, 136, 2, 236, 145, 3, 255, 110, 46, - 11, 1, 253, 136, 2, 3, 179, 11, 1, 94, 2, 171, 181, 48, 11, 1, 94, 2, - 204, 181, 236, 150, 226, 226, 46, 11, 1, 253, 199, 2, 171, 181, 234, 33, - 242, 230, 19, 3, 248, 137, 11, 1, 253, 199, 2, 236, 145, 3, 255, 110, 46, - 11, 1, 253, 143, 2, 108, 11, 1, 248, 39, 2, 248, 58, 181, 48, 11, 1, 253, - 158, 2, 171, 181, 48, 11, 1, 253, 158, 2, 204, 181, 236, 150, 235, 45, - 48, 11, 1, 253, 158, 2, 171, 181, 234, 33, 48, 11, 1, 253, 153, 2, 171, - 181, 46, 11, 1, 253, 153, 2, 204, 181, 236, 150, 226, 226, 46, 11, 1, - 243, 21, 2, 53, 48, 11, 1, 243, 21, 2, 204, 181, 48, 11, 1, 243, 21, 2, - 204, 181, 236, 150, 226, 226, 46, 11, 1, 51, 2, 53, 48, 11, 1, 51, 2, 53, - 46, 11, 1, 198, 2, 171, 181, 46, 11, 1, 198, 2, 3, 248, 137, 11, 1, 198, - 2, 3, 179, 11, 1, 182, 2, 125, 11, 1, 253, 143, 2, 171, 181, 234, 33, 48, - 11, 1, 253, 143, 2, 143, 48, 11, 1, 248, 39, 2, 171, 181, 234, 33, 48, - 199, 1, 248, 114, 199, 1, 234, 254, 199, 1, 242, 22, 199, 1, 248, 182, - 199, 1, 249, 30, 199, 1, 234, 218, 199, 1, 241, 191, 199, 1, 241, 8, 199, - 1, 242, 173, 199, 1, 241, 231, 199, 1, 241, 101, 199, 1, 239, 41, 199, 1, - 243, 76, 199, 1, 241, 210, 199, 1, 241, 119, 199, 1, 234, 195, 199, 1, - 242, 99, 199, 1, 235, 199, 199, 1, 236, 143, 199, 1, 236, 127, 199, 1, - 248, 191, 199, 1, 236, 72, 199, 1, 236, 42, 199, 1, 234, 100, 199, 1, - 247, 163, 199, 1, 243, 194, 199, 1, 246, 8, 199, 1, 239, 217, 199, 1, - 249, 216, 199, 1, 239, 193, 199, 1, 239, 176, 199, 1, 239, 34, 199, 1, - 87, 199, 1, 253, 222, 199, 1, 244, 74, 199, 1, 239, 83, 199, 1, 242, 68, - 199, 1, 242, 181, 199, 237, 54, 199, 234, 88, 199, 237, 176, 199, 234, - 183, 199, 238, 37, 199, 234, 229, 199, 237, 145, 199, 234, 189, 199, 237, - 223, 199, 234, 228, 199, 240, 240, 199, 1, 248, 231, 85, 21, 232, 77, 85, - 21, 235, 61, 85, 21, 236, 173, 85, 1, 242, 215, 67, 85, 1, 67, 85, 1, - 253, 140, 85, 1, 71, 85, 1, 253, 142, 85, 1, 79, 85, 1, 253, 148, 85, 1, - 165, 144, 85, 1, 165, 162, 85, 1, 240, 61, 72, 85, 1, 242, 215, 72, 85, - 1, 72, 85, 1, 253, 149, 85, 1, 240, 61, 73, 85, 1, 242, 215, 73, 85, 1, - 73, 85, 1, 253, 151, 85, 1, 201, 85, 1, 248, 61, 85, 1, 253, 139, 85, 1, - 248, 77, 85, 1, 248, 50, 85, 1, 253, 152, 85, 1, 248, 57, 85, 1, 253, - 146, 85, 1, 248, 89, 85, 1, 248, 78, 85, 1, 248, 71, 85, 1, 242, 247, 85, - 1, 248, 75, 85, 1, 242, 249, 85, 1, 248, 82, 85, 1, 253, 126, 85, 1, 248, - 55, 85, 1, 253, 133, 85, 1, 248, 76, 85, 1, 253, 131, 85, 1, 243, 234, - 85, 1, 253, 129, 85, 1, 248, 65, 85, 1, 253, 141, 85, 1, 248, 81, 85, 1, - 222, 85, 1, 216, 85, 1, 253, 130, 85, 1, 248, 96, 85, 1, 253, 134, 85, 1, - 248, 94, 85, 1, 243, 104, 85, 1, 253, 171, 85, 1, 248, 46, 85, 1, 248, - 66, 85, 1, 253, 132, 85, 1, 219, 85, 21, 240, 81, 85, 21, 235, 80, 85, - 33, 21, 253, 140, 85, 33, 21, 71, 85, 33, 21, 253, 142, 85, 33, 21, 79, - 85, 33, 21, 253, 148, 85, 33, 21, 165, 144, 85, 33, 21, 165, 253, 182, - 85, 33, 21, 240, 61, 72, 85, 33, 21, 242, 215, 72, 85, 33, 21, 72, 85, - 33, 21, 253, 149, 85, 33, 21, 240, 61, 73, 85, 33, 21, 242, 215, 73, 85, - 33, 21, 73, 85, 33, 21, 253, 151, 85, 21, 238, 72, 85, 254, 43, 85, 240, - 148, 21, 239, 233, 85, 240, 148, 21, 235, 163, 85, 242, 245, 238, 54, 85, - 242, 241, 238, 54, 85, 1, 253, 217, 85, 1, 243, 207, 85, 1, 243, 183, 85, - 1, 253, 163, 85, 1, 241, 75, 85, 1, 248, 246, 85, 1, 253, 179, 85, 1, - 249, 24, 85, 1, 165, 253, 182, 85, 1, 165, 253, 191, 85, 33, 21, 165, - 162, 85, 33, 21, 165, 253, 191, 85, 240, 111, 85, 45, 240, 111, 85, 26, - 242, 217, 85, 26, 127, 85, 26, 111, 85, 26, 166, 85, 26, 177, 85, 26, - 176, 85, 26, 187, 85, 26, 203, 85, 26, 195, 85, 26, 202, 85, 232, 88, 52, - 85, 1, 238, 62, 208, 101, 21, 232, 77, 101, 21, 235, 61, 101, 21, 236, - 173, 101, 1, 67, 101, 1, 253, 140, 101, 1, 71, 101, 1, 253, 142, 101, 1, - 79, 101, 1, 253, 148, 101, 1, 165, 144, 101, 1, 165, 162, 101, 1, 72, - 101, 1, 253, 149, 101, 1, 73, 101, 1, 253, 151, 101, 1, 201, 101, 1, 248, - 61, 101, 1, 253, 139, 101, 1, 248, 77, 101, 1, 248, 50, 101, 1, 253, 152, - 101, 1, 248, 57, 101, 1, 253, 146, 101, 1, 248, 89, 101, 1, 248, 78, 101, - 1, 248, 71, 101, 1, 242, 247, 101, 1, 248, 75, 101, 1, 242, 249, 101, 1, - 248, 82, 101, 1, 253, 126, 101, 1, 248, 55, 101, 1, 253, 133, 101, 1, - 248, 76, 101, 1, 253, 131, 101, 1, 253, 129, 101, 1, 248, 65, 101, 1, - 253, 141, 101, 1, 248, 81, 101, 1, 222, 101, 1, 216, 101, 1, 253, 130, - 101, 1, 253, 134, 101, 1, 248, 46, 101, 1, 248, 66, 101, 1, 253, 132, - 101, 1, 219, 101, 21, 240, 81, 101, 21, 235, 80, 101, 33, 21, 253, 140, - 101, 33, 21, 71, 101, 33, 21, 253, 142, 101, 33, 21, 79, 101, 33, 21, - 253, 148, 101, 33, 21, 165, 144, 101, 33, 21, 165, 253, 182, 101, 33, 21, - 72, 101, 33, 21, 253, 149, 101, 33, 21, 73, 101, 33, 21, 253, 151, 101, - 21, 238, 72, 101, 1, 241, 200, 253, 126, 101, 255, 39, 240, 51, 69, 101, - 1, 248, 96, 101, 1, 248, 246, 101, 1, 249, 24, 101, 1, 165, 253, 182, - 101, 1, 165, 253, 191, 101, 33, 21, 165, 162, 101, 33, 21, 165, 253, 191, - 101, 26, 242, 217, 101, 26, 127, 101, 26, 111, 101, 26, 166, 101, 26, - 177, 101, 26, 176, 101, 26, 187, 101, 26, 203, 101, 26, 195, 101, 26, - 202, 101, 1, 255, 63, 2, 240, 1, 235, 86, 101, 1, 255, 63, 2, 168, 235, - 86, 101, 243, 44, 69, 101, 243, 44, 52, 101, 236, 181, 235, 79, 127, 101, - 236, 181, 235, 79, 111, 101, 236, 181, 235, 79, 166, 101, 236, 181, 235, - 79, 177, 101, 236, 181, 235, 79, 253, 125, 251, 190, 249, 1, 253, 145, - 232, 129, 101, 236, 181, 233, 131, 236, 202, 101, 238, 191, 133, 21, 249, - 233, 240, 160, 133, 21, 240, 160, 133, 21, 236, 173, 133, 1, 67, 133, 1, - 253, 140, 133, 1, 71, 133, 1, 253, 142, 133, 1, 79, 133, 1, 253, 148, - 133, 1, 253, 164, 133, 1, 253, 149, 133, 1, 253, 156, 133, 1, 253, 151, - 133, 1, 201, 133, 1, 248, 61, 133, 1, 253, 139, 133, 1, 248, 77, 133, 1, - 248, 50, 133, 1, 253, 152, 133, 1, 248, 57, 133, 1, 253, 146, 133, 1, - 248, 89, 133, 1, 248, 78, 133, 1, 248, 71, 133, 1, 242, 247, 133, 1, 248, - 75, 133, 1, 242, 249, 133, 1, 248, 82, 133, 1, 253, 126, 133, 1, 248, 55, - 133, 1, 253, 133, 133, 1, 248, 76, 133, 1, 253, 131, 133, 1, 253, 129, - 133, 1, 248, 65, 133, 1, 253, 141, 133, 1, 248, 81, 133, 1, 222, 133, 1, - 216, 133, 1, 253, 130, 133, 1, 253, 134, 133, 1, 248, 94, 133, 1, 253, - 171, 133, 1, 248, 46, 133, 1, 253, 132, 133, 1, 219, 133, 21, 240, 81, - 133, 33, 21, 253, 140, 133, 33, 21, 71, 133, 33, 21, 253, 142, 133, 33, - 21, 79, 133, 33, 21, 253, 148, 133, 33, 21, 253, 164, 133, 33, 21, 253, - 149, 133, 33, 21, 253, 156, 133, 33, 21, 253, 151, 133, 21, 238, 72, 133, - 1, 243, 207, 133, 1, 243, 183, 133, 1, 253, 163, 133, 1, 248, 96, 133, 1, - 253, 179, 133, 26, 242, 217, 133, 26, 127, 133, 26, 111, 133, 26, 166, - 133, 26, 177, 133, 26, 176, 133, 26, 187, 133, 26, 203, 133, 26, 195, - 133, 26, 202, 133, 242, 154, 133, 241, 5, 133, 251, 107, 133, 253, 2, - 133, 255, 73, 242, 41, 112, 21, 232, 77, 112, 21, 235, 61, 112, 21, 236, - 173, 112, 1, 67, 112, 1, 253, 140, 112, 1, 71, 112, 1, 253, 142, 112, 1, - 79, 112, 1, 253, 148, 112, 1, 165, 144, 112, 1, 165, 162, 112, 33, 240, - 61, 72, 112, 1, 72, 112, 1, 253, 149, 112, 33, 240, 61, 73, 112, 1, 73, - 112, 1, 253, 151, 112, 1, 201, 112, 1, 248, 61, 112, 1, 253, 139, 112, 1, - 248, 77, 112, 1, 248, 50, 112, 1, 253, 152, 112, 1, 248, 57, 112, 1, 253, - 146, 112, 1, 248, 89, 112, 1, 248, 78, 112, 1, 248, 71, 112, 1, 242, 247, - 112, 1, 248, 75, 112, 1, 242, 249, 112, 1, 248, 82, 112, 1, 253, 126, - 112, 1, 248, 55, 112, 1, 253, 133, 112, 1, 248, 76, 112, 1, 253, 131, - 112, 1, 253, 129, 112, 1, 248, 65, 112, 1, 253, 141, 112, 1, 248, 81, - 112, 1, 222, 112, 1, 216, 112, 1, 253, 130, 112, 1, 253, 134, 112, 1, - 248, 94, 112, 1, 253, 171, 112, 1, 248, 46, 112, 1, 248, 66, 112, 1, 253, - 132, 112, 1, 219, 112, 21, 240, 81, 112, 21, 235, 80, 112, 33, 21, 253, - 140, 112, 33, 21, 71, 112, 33, 21, 253, 142, 112, 33, 21, 79, 112, 33, - 21, 253, 148, 112, 33, 21, 165, 144, 112, 33, 21, 165, 253, 182, 112, 33, - 21, 240, 61, 72, 112, 33, 21, 72, 112, 33, 21, 253, 149, 112, 33, 21, - 240, 61, 73, 112, 33, 21, 73, 112, 33, 21, 253, 151, 112, 21, 238, 72, - 112, 254, 43, 112, 1, 165, 253, 182, 112, 1, 165, 253, 191, 112, 33, 21, - 165, 162, 112, 33, 21, 165, 253, 191, 112, 26, 242, 217, 112, 26, 127, - 112, 26, 111, 112, 26, 166, 112, 26, 177, 112, 26, 176, 112, 26, 187, - 112, 26, 203, 112, 26, 195, 112, 26, 202, 112, 243, 44, 52, 118, 21, 232, - 77, 118, 21, 235, 61, 118, 21, 236, 173, 118, 1, 67, 118, 1, 253, 140, - 118, 1, 71, 118, 1, 253, 142, 118, 1, 79, 118, 1, 253, 148, 118, 1, 165, - 144, 118, 1, 165, 162, 118, 1, 72, 118, 1, 253, 149, 118, 1, 73, 118, 1, - 253, 151, 118, 1, 201, 118, 1, 248, 61, 118, 1, 253, 139, 118, 1, 248, - 77, 118, 1, 248, 50, 118, 1, 253, 152, 118, 1, 248, 57, 118, 1, 253, 146, - 118, 1, 248, 89, 118, 1, 248, 78, 118, 1, 248, 71, 118, 1, 242, 247, 118, - 1, 248, 75, 118, 1, 242, 249, 118, 1, 248, 82, 118, 1, 253, 126, 118, 1, - 248, 55, 118, 1, 253, 133, 118, 1, 248, 76, 118, 1, 253, 131, 118, 1, - 253, 129, 118, 1, 248, 65, 118, 1, 253, 141, 118, 1, 248, 81, 118, 1, - 222, 118, 1, 216, 118, 1, 253, 130, 118, 1, 253, 134, 118, 1, 248, 94, - 118, 1, 253, 171, 118, 1, 248, 46, 118, 1, 248, 66, 118, 1, 253, 132, - 118, 1, 219, 118, 21, 240, 81, 118, 21, 235, 80, 118, 33, 21, 253, 140, - 118, 33, 21, 71, 118, 33, 21, 253, 142, 118, 33, 21, 79, 118, 33, 21, - 253, 148, 118, 33, 21, 165, 144, 118, 33, 21, 72, 118, 33, 21, 253, 149, - 118, 33, 21, 73, 118, 33, 21, 253, 151, 118, 21, 238, 72, 118, 255, 37, - 240, 51, 69, 118, 255, 39, 240, 51, 69, 118, 1, 248, 96, 118, 1, 248, - 246, 118, 1, 249, 24, 118, 1, 165, 253, 182, 118, 1, 165, 253, 191, 118, - 26, 242, 217, 118, 26, 127, 118, 26, 111, 118, 26, 166, 118, 26, 177, - 118, 26, 176, 118, 26, 187, 118, 26, 203, 118, 26, 195, 118, 26, 202, - 118, 238, 191, 118, 1, 253, 138, 140, 21, 235, 61, 140, 21, 236, 173, - 140, 1, 67, 140, 1, 253, 140, 140, 1, 71, 140, 1, 253, 142, 140, 1, 79, - 140, 1, 253, 148, 140, 1, 72, 140, 1, 253, 164, 140, 1, 253, 149, 140, 1, - 73, 140, 1, 253, 156, 140, 1, 253, 151, 140, 1, 201, 140, 1, 248, 50, - 140, 1, 253, 152, 140, 1, 253, 146, 140, 1, 248, 78, 140, 1, 248, 71, - 140, 1, 248, 82, 140, 1, 253, 126, 140, 1, 253, 131, 140, 1, 243, 234, - 140, 1, 253, 129, 140, 1, 222, 140, 1, 216, 140, 1, 253, 130, 140, 1, - 248, 96, 140, 1, 253, 134, 140, 1, 248, 94, 140, 1, 243, 104, 140, 1, - 253, 171, 140, 1, 248, 46, 140, 1, 248, 66, 140, 1, 253, 132, 140, 1, - 219, 140, 33, 21, 253, 140, 140, 33, 21, 71, 140, 33, 21, 253, 142, 140, - 33, 21, 79, 140, 33, 21, 253, 148, 140, 33, 21, 72, 140, 33, 21, 253, - 164, 140, 33, 21, 253, 149, 140, 33, 21, 73, 140, 33, 21, 253, 156, 140, - 33, 21, 253, 151, 140, 21, 238, 72, 140, 255, 39, 240, 51, 69, 140, 26, - 242, 217, 140, 26, 127, 140, 26, 111, 140, 26, 166, 140, 26, 177, 140, - 26, 176, 140, 26, 187, 140, 26, 203, 140, 26, 195, 140, 26, 202, 140, 61, - 248, 53, 140, 61, 253, 125, 236, 149, 140, 61, 253, 125, 235, 49, 140, - 253, 137, 52, 140, 246, 90, 52, 140, 249, 206, 52, 140, 245, 59, 52, 140, - 241, 68, 52, 140, 255, 24, 60, 52, 140, 243, 44, 52, 140, 61, 52, 124, - 21, 232, 77, 124, 21, 235, 61, 124, 21, 236, 173, 124, 1, 67, 124, 1, - 253, 140, 124, 1, 71, 124, 1, 253, 142, 124, 1, 79, 124, 1, 253, 148, - 124, 1, 165, 144, 124, 1, 165, 162, 124, 1, 72, 124, 1, 253, 164, 124, 1, - 253, 149, 124, 1, 73, 124, 1, 253, 156, 124, 1, 253, 151, 124, 1, 201, - 124, 1, 248, 61, 124, 1, 253, 139, 124, 1, 248, 77, 124, 1, 248, 50, 124, - 1, 253, 152, 124, 1, 248, 57, 124, 1, 253, 146, 124, 1, 248, 89, 124, 1, - 248, 78, 124, 1, 248, 71, 124, 1, 242, 247, 124, 1, 248, 75, 124, 1, 242, - 249, 124, 1, 248, 82, 124, 1, 253, 126, 124, 1, 248, 55, 124, 1, 253, - 133, 124, 1, 248, 76, 124, 1, 253, 131, 124, 1, 253, 129, 124, 1, 248, - 65, 124, 1, 253, 141, 124, 1, 248, 81, 124, 1, 222, 124, 1, 216, 124, 1, - 253, 130, 124, 1, 248, 96, 124, 1, 253, 134, 124, 1, 248, 94, 124, 1, - 253, 171, 124, 1, 248, 46, 124, 1, 248, 66, 124, 1, 253, 132, 124, 1, - 219, 124, 33, 21, 253, 140, 124, 33, 21, 71, 124, 33, 21, 253, 142, 124, - 33, 21, 79, 124, 33, 21, 253, 148, 124, 33, 21, 165, 144, 124, 33, 21, - 165, 253, 182, 124, 33, 21, 72, 124, 33, 21, 253, 164, 124, 33, 21, 253, - 149, 124, 33, 21, 73, 124, 33, 21, 253, 156, 124, 33, 21, 253, 151, 124, - 21, 238, 72, 124, 240, 51, 69, 124, 255, 37, 240, 51, 69, 124, 1, 165, - 253, 182, 124, 1, 165, 253, 191, 124, 26, 242, 217, 124, 26, 127, 124, - 26, 111, 124, 26, 166, 124, 26, 177, 124, 26, 176, 124, 26, 187, 124, 26, - 203, 124, 26, 195, 124, 26, 202, 115, 21, 235, 61, 115, 21, 236, 173, - 115, 1, 67, 115, 1, 253, 140, 115, 1, 71, 115, 1, 253, 142, 115, 1, 79, - 115, 1, 253, 148, 115, 1, 165, 144, 115, 1, 165, 162, 115, 1, 72, 115, 1, - 253, 164, 115, 1, 253, 149, 115, 1, 73, 115, 1, 253, 156, 115, 1, 253, - 151, 115, 1, 201, 115, 1, 248, 61, 115, 1, 253, 139, 115, 1, 248, 77, - 115, 1, 248, 50, 115, 1, 253, 152, 115, 1, 248, 57, 115, 1, 253, 146, - 115, 1, 248, 89, 115, 1, 248, 78, 115, 1, 248, 71, 115, 1, 242, 247, 115, - 1, 248, 75, 115, 1, 242, 249, 115, 1, 248, 82, 115, 1, 253, 126, 115, 1, - 248, 55, 115, 1, 253, 133, 115, 1, 248, 76, 115, 1, 253, 131, 115, 1, - 253, 129, 115, 1, 248, 65, 115, 1, 253, 141, 115, 1, 248, 81, 115, 1, - 222, 115, 1, 216, 115, 1, 253, 130, 115, 1, 248, 96, 115, 1, 253, 134, - 115, 1, 248, 94, 115, 1, 253, 171, 115, 1, 248, 46, 115, 1, 248, 66, 115, - 1, 253, 132, 115, 1, 219, 115, 21, 240, 81, 115, 21, 235, 80, 115, 33, - 21, 253, 140, 115, 33, 21, 71, 115, 33, 21, 253, 142, 115, 33, 21, 79, - 115, 33, 21, 253, 148, 115, 33, 21, 165, 144, 115, 33, 21, 165, 253, 182, - 115, 33, 21, 72, 115, 33, 21, 253, 164, 115, 33, 21, 253, 149, 115, 33, - 21, 73, 115, 33, 21, 253, 156, 115, 33, 21, 253, 151, 115, 21, 238, 72, - 115, 240, 51, 69, 115, 255, 37, 240, 51, 69, 115, 1, 253, 179, 115, 1, - 165, 253, 182, 115, 1, 165, 253, 191, 115, 26, 242, 217, 115, 26, 127, - 115, 26, 111, 115, 26, 166, 115, 26, 177, 115, 26, 176, 115, 26, 187, - 115, 26, 203, 115, 26, 195, 115, 26, 202, 130, 21, 235, 61, 130, 21, 236, - 173, 130, 1, 67, 130, 1, 253, 140, 130, 1, 71, 130, 1, 253, 142, 130, 1, - 79, 130, 1, 253, 148, 130, 1, 165, 144, 130, 1, 165, 162, 130, 1, 72, - 130, 1, 253, 164, 130, 1, 253, 149, 130, 1, 73, 130, 1, 253, 156, 130, 1, - 253, 151, 130, 1, 201, 130, 1, 248, 61, 130, 1, 253, 139, 130, 1, 248, - 77, 130, 1, 248, 50, 130, 1, 253, 152, 130, 1, 248, 57, 130, 1, 253, 146, - 130, 1, 248, 89, 130, 1, 248, 78, 130, 1, 248, 71, 130, 1, 242, 247, 130, - 1, 248, 75, 130, 1, 242, 249, 130, 1, 248, 82, 130, 1, 253, 126, 130, 1, - 248, 55, 130, 1, 253, 133, 130, 1, 248, 76, 130, 1, 253, 131, 130, 1, - 253, 129, 130, 1, 248, 65, 130, 1, 253, 141, 130, 1, 248, 81, 130, 1, - 222, 130, 1, 216, 130, 1, 253, 130, 130, 1, 248, 96, 130, 1, 253, 134, - 130, 1, 248, 94, 130, 1, 243, 104, 130, 1, 253, 171, 130, 1, 248, 46, - 130, 1, 248, 66, 130, 1, 253, 132, 130, 1, 219, 130, 33, 21, 253, 140, - 130, 33, 21, 71, 130, 33, 21, 253, 142, 130, 33, 21, 79, 130, 33, 21, - 253, 148, 130, 33, 21, 165, 144, 130, 33, 21, 72, 130, 33, 21, 253, 164, - 130, 33, 21, 253, 149, 130, 33, 21, 73, 130, 33, 21, 253, 156, 130, 33, - 21, 253, 151, 130, 21, 238, 72, 130, 255, 39, 240, 51, 69, 130, 1, 165, - 253, 182, 130, 1, 165, 253, 191, 130, 26, 242, 217, 130, 26, 127, 130, - 26, 111, 130, 26, 166, 130, 26, 177, 130, 26, 176, 130, 26, 187, 130, 26, - 203, 130, 26, 195, 130, 26, 202, 123, 21, 233, 115, 123, 21, 235, 39, - 123, 1, 239, 0, 123, 1, 237, 53, 123, 1, 237, 56, 123, 1, 235, 161, 123, - 1, 239, 102, 123, 1, 237, 178, 123, 1, 239, 237, 123, 1, 238, 39, 123, 1, - 236, 41, 123, 1, 234, 209, 123, 1, 236, 37, 123, 1, 234, 202, 123, 1, - 239, 59, 123, 1, 237, 146, 123, 1, 237, 57, 123, 1, 239, 156, 123, 1, - 237, 227, 123, 1, 237, 68, 123, 1, 234, 8, 237, 16, 123, 1, 233, 58, 237, - 16, 123, 1, 234, 8, 236, 226, 123, 1, 233, 58, 236, 226, 123, 1, 239, - 105, 233, 89, 123, 1, 238, 122, 236, 226, 123, 1, 234, 8, 236, 250, 123, - 1, 233, 58, 236, 250, 123, 1, 234, 8, 236, 228, 123, 1, 233, 58, 236, - 228, 123, 1, 238, 154, 233, 89, 123, 1, 238, 154, 238, 1, 232, 185, 123, - 1, 238, 122, 236, 228, 123, 1, 234, 8, 235, 155, 123, 1, 233, 58, 235, - 155, 123, 1, 234, 8, 235, 97, 123, 1, 233, 58, 235, 97, 123, 1, 235, 104, - 237, 25, 123, 1, 238, 122, 235, 97, 123, 1, 234, 8, 237, 46, 123, 1, 233, - 58, 237, 46, 123, 1, 234, 8, 236, 222, 123, 1, 233, 58, 236, 222, 123, 1, - 238, 134, 237, 25, 123, 1, 238, 122, 236, 222, 123, 1, 234, 8, 237, 27, - 123, 1, 233, 58, 237, 27, 123, 1, 234, 8, 236, 220, 123, 1, 233, 58, 236, - 220, 123, 1, 237, 205, 123, 1, 249, 237, 236, 220, 123, 1, 238, 47, 123, - 1, 237, 247, 123, 1, 238, 134, 237, 20, 123, 1, 238, 41, 123, 1, 238, - 154, 236, 238, 123, 1, 235, 104, 236, 238, 123, 1, 238, 134, 236, 238, - 123, 1, 237, 171, 123, 1, 235, 104, 237, 20, 123, 1, 237, 155, 123, 21, - 234, 90, 123, 33, 21, 233, 67, 123, 33, 21, 243, 102, 233, 81, 123, 33, - 21, 248, 107, 233, 81, 123, 33, 21, 243, 102, 235, 130, 123, 33, 21, 248, - 107, 235, 130, 123, 33, 21, 243, 102, 234, 60, 123, 33, 21, 248, 107, - 234, 60, 123, 33, 21, 231, 104, 123, 33, 21, 237, 17, 123, 33, 21, 248, - 107, 237, 17, 123, 33, 21, 246, 18, 245, 62, 123, 33, 21, 238, 141, 254, - 64, 233, 67, 123, 33, 21, 238, 141, 254, 64, 248, 107, 233, 67, 123, 33, - 21, 238, 141, 254, 64, 232, 90, 123, 33, 21, 232, 90, 123, 33, 21, 248, - 107, 231, 104, 123, 33, 21, 248, 107, 232, 90, 123, 233, 51, 233, 214, - 107, 99, 255, 59, 249, 91, 107, 99, 253, 249, 246, 9, 107, 99, 253, 249, - 241, 202, 107, 99, 253, 249, 241, 203, 107, 99, 253, 249, 246, 12, 107, - 99, 253, 249, 237, 245, 107, 99, 254, 213, 252, 19, 107, 99, 254, 35, - 244, 253, 107, 99, 254, 35, 241, 53, 107, 99, 254, 35, 241, 51, 107, 99, - 255, 35, 253, 186, 107, 99, 254, 35, 245, 5, 107, 99, 255, 66, 247, 230, - 107, 99, 255, 48, 241, 49, 107, 99, 153, 242, 49, 107, 99, 253, 240, 243, - 127, 107, 99, 253, 240, 233, 218, 107, 99, 253, 240, 237, 237, 107, 99, - 255, 51, 252, 12, 107, 99, 255, 48, 250, 188, 107, 99, 153, 252, 208, - 107, 99, 253, 240, 242, 152, 107, 99, 253, 240, 239, 218, 107, 99, 253, - 240, 242, 151, 107, 99, 255, 51, 253, 150, 107, 99, 255, 69, 239, 2, 107, - 99, 255, 88, 252, 70, 107, 99, 254, 27, 242, 60, 107, 99, 255, 41, 253, - 179, 107, 99, 254, 27, 246, 244, 107, 99, 255, 41, 250, 233, 107, 99, - 254, 27, 238, 0, 107, 99, 255, 83, 222, 107, 99, 255, 66, 249, 20, 107, - 99, 255, 90, 252, 150, 107, 99, 253, 185, 107, 99, 255, 43, 243, 215, - 107, 99, 254, 8, 107, 99, 255, 96, 247, 191, 107, 99, 255, 35, 247, 63, - 107, 99, 255, 35, 247, 57, 107, 99, 255, 35, 252, 191, 107, 99, 255, 32, - 251, 62, 107, 99, 255, 43, 241, 55, 107, 99, 117, 248, 124, 107, 99, 255, - 32, 239, 145, 107, 99, 234, 231, 107, 99, 248, 83, 67, 107, 99, 253, 205, - 236, 32, 107, 99, 248, 83, 253, 140, 107, 99, 248, 83, 254, 32, 107, 99, - 248, 83, 71, 107, 99, 248, 83, 253, 142, 107, 99, 248, 83, 253, 252, 107, - 99, 248, 83, 252, 249, 107, 99, 248, 83, 79, 107, 99, 248, 83, 253, 148, - 107, 99, 237, 236, 107, 236, 181, 12, 244, 190, 107, 99, 248, 83, 72, - 107, 99, 248, 83, 253, 178, 107, 99, 248, 83, 73, 107, 99, 248, 83, 255, - 37, 237, 198, 107, 99, 248, 83, 255, 37, 236, 55, 107, 99, 232, 181, 107, - 99, 236, 56, 107, 99, 234, 220, 107, 99, 253, 205, 254, 90, 107, 99, 253, - 205, 248, 97, 107, 99, 253, 205, 252, 229, 107, 99, 253, 205, 235, 188, - 107, 99, 233, 41, 107, 99, 236, 63, 107, 99, 236, 141, 107, 99, 237, 158, - 107, 26, 242, 217, 107, 26, 127, 107, 26, 111, 107, 26, 166, 107, 26, - 177, 107, 26, 176, 107, 26, 187, 107, 26, 203, 107, 26, 195, 107, 26, - 202, 107, 99, 233, 113, 107, 99, 239, 108, 152, 1, 253, 190, 152, 1, 253, - 249, 243, 35, 152, 1, 253, 249, 248, 120, 152, 1, 248, 172, 152, 1, 253, - 224, 152, 1, 255, 35, 248, 120, 152, 1, 248, 133, 152, 1, 253, 225, 152, - 1, 87, 152, 1, 253, 240, 243, 35, 152, 1, 253, 240, 248, 120, 152, 1, - 253, 173, 152, 1, 254, 1, 152, 1, 253, 208, 152, 1, 254, 27, 243, 35, - 152, 1, 255, 41, 248, 120, 152, 1, 254, 27, 248, 120, 152, 1, 255, 41, - 243, 35, 152, 1, 253, 181, 152, 1, 253, 162, 152, 1, 255, 43, 243, 215, - 152, 1, 255, 43, 246, 54, 152, 1, 253, 177, 152, 1, 255, 35, 243, 35, - 152, 1, 255, 32, 243, 35, 152, 1, 73, 152, 1, 255, 32, 248, 120, 152, - 235, 69, 152, 33, 21, 67, 152, 33, 21, 253, 205, 248, 162, 152, 33, 21, - 253, 140, 152, 33, 21, 254, 32, 152, 33, 21, 71, 152, 33, 21, 253, 142, - 152, 33, 21, 255, 14, 152, 33, 21, 254, 77, 152, 33, 21, 79, 152, 33, 21, - 253, 148, 152, 33, 21, 253, 205, 251, 159, 152, 235, 143, 21, 253, 216, - 152, 235, 143, 21, 248, 133, 152, 33, 21, 72, 152, 33, 21, 254, 89, 152, - 33, 21, 73, 152, 33, 21, 254, 33, 152, 33, 21, 253, 149, 152, 255, 59, - 253, 134, 152, 188, 253, 205, 254, 90, 152, 188, 253, 205, 248, 97, 152, - 188, 253, 205, 253, 212, 152, 188, 253, 205, 239, 18, 152, 232, 118, 69, - 152, 234, 227, 152, 26, 242, 217, 152, 26, 127, 152, 26, 111, 152, 26, - 166, 152, 26, 177, 152, 26, 176, 152, 26, 187, 152, 26, 203, 152, 26, - 195, 152, 26, 202, 152, 255, 32, 253, 173, 152, 255, 32, 253, 181, 47, 4, - 254, 43, 47, 158, 248, 129, 253, 221, 253, 226, 236, 133, 67, 47, 158, - 248, 129, 253, 221, 253, 226, 254, 79, 249, 155, 250, 112, 222, 47, 158, - 248, 129, 253, 221, 253, 226, 254, 79, 248, 129, 243, 49, 222, 47, 158, - 54, 253, 221, 253, 226, 251, 224, 222, 47, 158, 238, 171, 253, 221, 253, - 226, 252, 173, 222, 47, 158, 243, 25, 253, 221, 253, 226, 249, 137, 249, - 161, 222, 47, 158, 253, 221, 253, 226, 243, 49, 249, 161, 222, 47, 158, - 247, 65, 243, 23, 47, 158, 244, 230, 253, 221, 248, 167, 47, 158, 250, - 127, 249, 162, 253, 221, 248, 167, 47, 158, 231, 143, 240, 249, 47, 158, - 235, 202, 243, 49, 241, 40, 47, 158, 243, 23, 47, 158, 248, 234, 243, 23, - 47, 158, 243, 49, 243, 23, 47, 158, 248, 234, 243, 49, 243, 23, 47, 158, - 254, 235, 250, 159, 242, 126, 243, 23, 47, 158, 249, 154, 251, 29, 243, - 23, 47, 158, 243, 25, 243, 140, 243, 72, 255, 81, 183, 248, 100, 47, 158, - 248, 129, 240, 249, 47, 237, 22, 21, 250, 158, 240, 70, 47, 237, 22, 21, - 251, 192, 240, 70, 47, 232, 89, 21, 252, 175, 251, 12, 244, 67, 240, 70, - 47, 232, 89, 21, 241, 3, 253, 129, 47, 232, 89, 21, 247, 67, 239, 230, - 47, 21, 248, 101, 248, 151, 243, 179, 47, 21, 248, 101, 248, 151, 240, - 183, 47, 21, 248, 101, 248, 151, 243, 187, 47, 21, 248, 101, 254, 66, - 243, 179, 47, 21, 248, 101, 254, 66, 240, 183, 47, 21, 248, 101, 248, - 151, 248, 101, 251, 252, 47, 26, 242, 217, 47, 26, 127, 47, 26, 111, 47, - 26, 166, 47, 26, 177, 47, 26, 176, 47, 26, 187, 47, 26, 203, 47, 26, 195, - 47, 26, 202, 47, 26, 137, 127, 47, 26, 137, 111, 47, 26, 137, 166, 47, - 26, 137, 177, 47, 26, 137, 176, 47, 26, 137, 187, 47, 26, 137, 203, 47, - 26, 137, 195, 47, 26, 137, 202, 47, 26, 137, 242, 217, 47, 158, 244, 228, - 240, 70, 47, 158, 249, 119, 243, 153, 254, 116, 253, 108, 47, 158, 243, - 25, 243, 140, 243, 72, 248, 199, 254, 112, 248, 100, 47, 158, 249, 119, - 243, 153, 252, 174, 240, 70, 47, 158, 253, 223, 248, 167, 47, 158, 254, - 129, 241, 4, 47, 158, 254, 95, 243, 72, 243, 189, 47, 158, 254, 95, 243, - 72, 243, 188, 47, 158, 254, 80, 243, 206, 243, 189, 47, 158, 254, 80, - 243, 206, 243, 188, 47, 21, 255, 8, 240, 250, 47, 21, 254, 198, 240, 250, - 47, 1, 201, 47, 1, 248, 61, 47, 1, 253, 139, 47, 1, 248, 77, 47, 1, 248, - 50, 47, 1, 253, 152, 47, 1, 248, 57, 47, 1, 253, 146, 47, 1, 248, 78, 47, - 1, 248, 71, 47, 1, 242, 247, 47, 1, 248, 75, 47, 1, 242, 249, 47, 1, 248, - 82, 47, 1, 253, 126, 47, 1, 248, 55, 47, 1, 253, 133, 47, 1, 248, 76, 47, - 1, 253, 131, 47, 1, 253, 129, 47, 1, 248, 65, 47, 1, 253, 141, 47, 1, - 248, 81, 47, 1, 222, 47, 1, 248, 90, 47, 1, 243, 130, 47, 1, 248, 153, - 47, 1, 243, 165, 47, 1, 253, 138, 47, 1, 248, 99, 47, 1, 253, 163, 47, 1, - 254, 78, 47, 1, 216, 47, 1, 253, 130, 47, 1, 253, 134, 47, 1, 248, 46, - 47, 1, 248, 66, 47, 1, 253, 132, 47, 1, 219, 47, 1, 67, 47, 1, 243, 210, - 47, 1, 234, 28, 253, 130, 47, 33, 21, 253, 140, 47, 33, 21, 71, 47, 33, - 21, 253, 142, 47, 33, 21, 79, 47, 33, 21, 253, 148, 47, 33, 21, 165, 144, - 47, 33, 21, 165, 253, 182, 47, 33, 21, 165, 162, 47, 33, 21, 165, 253, - 191, 47, 33, 21, 72, 47, 33, 21, 253, 164, 47, 33, 21, 73, 47, 33, 21, - 253, 156, 47, 21, 252, 140, 255, 91, 254, 212, 253, 160, 47, 21, 249, - 155, 244, 212, 47, 33, 21, 224, 71, 47, 33, 21, 224, 253, 142, 47, 21, - 254, 116, 255, 12, 254, 210, 253, 133, 47, 21, 254, 239, 246, 39, 47, - 158, 237, 168, 47, 158, 239, 157, 47, 21, 254, 192, 240, 70, 47, 21, 248, - 122, 240, 70, 47, 21, 254, 191, 254, 129, 248, 100, 47, 21, 251, 223, - 248, 100, 47, 21, 254, 94, 254, 148, 237, 34, 47, 21, 254, 94, 254, 200, - 237, 34, 47, 213, 1, 201, 47, 213, 1, 248, 61, 47, 213, 1, 253, 139, 47, - 213, 1, 248, 77, 47, 213, 1, 248, 50, 47, 213, 1, 253, 152, 47, 213, 1, - 248, 57, 47, 213, 1, 253, 146, 47, 213, 1, 248, 78, 47, 213, 1, 248, 71, - 47, 213, 1, 242, 247, 47, 213, 1, 248, 75, 47, 213, 1, 242, 249, 47, 213, - 1, 248, 82, 47, 213, 1, 253, 126, 47, 213, 1, 248, 55, 47, 213, 1, 253, - 133, 47, 213, 1, 248, 76, 47, 213, 1, 253, 131, 47, 213, 1, 253, 129, 47, - 213, 1, 248, 65, 47, 213, 1, 253, 141, 47, 213, 1, 248, 81, 47, 213, 1, - 222, 47, 213, 1, 248, 90, 47, 213, 1, 243, 130, 47, 213, 1, 248, 153, 47, - 213, 1, 243, 165, 47, 213, 1, 253, 138, 47, 213, 1, 248, 99, 47, 213, 1, - 253, 163, 47, 213, 1, 254, 78, 47, 213, 1, 216, 47, 213, 1, 253, 130, 47, - 213, 1, 253, 134, 47, 213, 1, 248, 46, 47, 213, 1, 248, 66, 47, 213, 1, - 253, 132, 47, 213, 1, 219, 47, 213, 1, 67, 47, 213, 1, 243, 210, 47, 213, - 1, 234, 28, 253, 138, 47, 213, 1, 234, 28, 216, 47, 213, 1, 234, 28, 253, - 130, 47, 255, 60, 255, 64, 248, 61, 47, 255, 60, 255, 64, 254, 183, 248, - 199, 254, 112, 248, 100, 47, 232, 82, 21, 96, 243, 147, 47, 232, 82, 21, - 136, 243, 147, 47, 232, 82, 21, 250, 144, 247, 138, 47, 232, 82, 21, 252, - 170, 241, 2, 47, 12, 250, 206, 253, 243, 47, 12, 254, 124, 252, 139, 47, - 12, 246, 237, 245, 97, 47, 12, 254, 124, 254, 236, 249, 154, 245, 127, - 47, 12, 249, 137, 253, 129, 47, 12, 253, 192, 253, 243, 47, 12, 253, 192, - 255, 47, 248, 234, 238, 127, 47, 12, 253, 192, 255, 47, 251, 30, 238, - 127, 47, 12, 253, 192, 255, 47, 248, 199, 238, 127, 47, 21, 248, 101, - 254, 66, 243, 187, 47, 158, 244, 229, 249, 162, 255, 57, 253, 226, 240, - 216, 47, 158, 246, 89, 253, 221, 255, 57, 253, 226, 240, 216, 131, 1, - 201, 131, 1, 248, 61, 131, 1, 253, 139, 131, 1, 248, 77, 131, 1, 248, 50, - 131, 1, 253, 152, 131, 1, 248, 57, 131, 1, 253, 146, 131, 1, 248, 89, - 131, 1, 248, 78, 131, 1, 246, 175, 131, 1, 248, 71, 131, 1, 242, 247, - 131, 1, 248, 75, 131, 1, 242, 249, 131, 1, 248, 82, 131, 1, 253, 126, - 131, 1, 248, 55, 131, 1, 253, 133, 131, 1, 248, 76, 131, 1, 253, 131, - 131, 1, 253, 129, 131, 1, 248, 65, 131, 1, 253, 141, 131, 1, 248, 81, - 131, 1, 222, 131, 1, 216, 131, 1, 253, 130, 131, 1, 253, 134, 131, 1, - 253, 138, 131, 1, 253, 132, 131, 1, 219, 131, 1, 248, 94, 131, 1, 67, - 131, 1, 71, 131, 1, 253, 142, 131, 1, 79, 131, 1, 253, 148, 131, 1, 72, - 131, 1, 73, 131, 1, 253, 151, 131, 33, 21, 253, 140, 131, 33, 21, 71, - 131, 33, 21, 253, 142, 131, 33, 21, 79, 131, 33, 21, 253, 148, 131, 33, - 21, 72, 131, 33, 21, 253, 149, 131, 21, 235, 61, 131, 21, 53, 46, 131, - 21, 236, 173, 131, 21, 238, 72, 131, 26, 242, 217, 131, 26, 127, 131, 26, - 111, 131, 26, 166, 131, 26, 177, 131, 26, 176, 131, 26, 187, 131, 26, - 203, 131, 26, 195, 131, 26, 202, 131, 21, 240, 101, 236, 210, 131, 21, - 236, 210, 131, 12, 236, 52, 131, 12, 234, 102, 131, 12, 229, 63, 131, 12, - 236, 30, 131, 1, 248, 46, 131, 1, 248, 66, 131, 1, 165, 144, 131, 1, 165, - 253, 182, 131, 1, 165, 162, 131, 1, 165, 253, 191, 131, 33, 21, 165, 144, - 131, 33, 21, 165, 253, 182, 131, 33, 21, 165, 162, 131, 33, 21, 165, 253, - 191, 75, 5, 1, 254, 19, 75, 5, 1, 248, 195, 75, 5, 1, 248, 158, 75, 5, 1, - 248, 205, 75, 5, 1, 253, 202, 75, 5, 1, 249, 11, 75, 5, 1, 249, 25, 75, - 5, 1, 248, 253, 75, 5, 1, 253, 247, 75, 5, 1, 248, 162, 75, 5, 1, 248, - 224, 75, 5, 1, 248, 131, 75, 5, 1, 248, 171, 75, 5, 1, 254, 9, 75, 5, 1, - 248, 236, 75, 5, 1, 243, 138, 75, 5, 1, 248, 243, 75, 5, 1, 248, 134, 75, - 5, 1, 248, 254, 75, 5, 1, 254, 75, 75, 5, 1, 243, 115, 75, 5, 1, 243, - 103, 75, 5, 1, 243, 95, 75, 5, 1, 248, 242, 75, 5, 1, 243, 33, 75, 5, 1, - 243, 88, 75, 5, 1, 248, 100, 75, 5, 1, 248, 217, 75, 5, 1, 248, 201, 75, - 5, 1, 243, 87, 75, 5, 1, 249, 16, 75, 5, 1, 243, 101, 75, 5, 1, 248, 212, - 75, 5, 1, 253, 168, 75, 5, 1, 248, 160, 75, 5, 1, 253, 170, 75, 5, 1, - 248, 213, 75, 5, 1, 248, 215, 75, 1, 254, 19, 75, 1, 248, 195, 75, 1, - 248, 158, 75, 1, 248, 205, 75, 1, 253, 202, 75, 1, 249, 11, 75, 1, 249, - 25, 75, 1, 248, 253, 75, 1, 253, 247, 75, 1, 248, 162, 75, 1, 248, 224, - 75, 1, 248, 131, 75, 1, 248, 171, 75, 1, 254, 9, 75, 1, 248, 236, 75, 1, - 243, 138, 75, 1, 248, 243, 75, 1, 248, 134, 75, 1, 248, 254, 75, 1, 254, - 75, 75, 1, 243, 115, 75, 1, 243, 103, 75, 1, 243, 95, 75, 1, 248, 242, - 75, 1, 243, 33, 75, 1, 243, 88, 75, 1, 248, 100, 75, 1, 248, 217, 75, 1, - 248, 201, 75, 1, 243, 87, 75, 1, 249, 16, 75, 1, 243, 101, 75, 1, 248, - 212, 75, 1, 253, 168, 75, 1, 248, 160, 75, 1, 253, 170, 75, 1, 248, 213, - 75, 1, 248, 215, 75, 1, 253, 245, 75, 1, 255, 9, 75, 1, 241, 94, 75, 1, - 205, 248, 158, 75, 1, 248, 105, 75, 235, 91, 234, 6, 49, 1, 75, 248, 171, - 23, 102, 238, 99, 23, 102, 232, 87, 23, 102, 240, 80, 23, 102, 238, 102, - 23, 102, 232, 101, 23, 102, 240, 85, 23, 102, 240, 78, 23, 102, 240, 83, - 23, 102, 233, 79, 23, 102, 243, 34, 23, 102, 234, 32, 23, 102, 240, 75, - 23, 102, 240, 71, 23, 102, 233, 77, 23, 102, 236, 195, 23, 102, 236, 198, - 23, 102, 236, 205, 23, 102, 236, 201, 23, 102, 240, 74, 23, 102, 231, - 108, 23, 102, 233, 105, 23, 102, 231, 97, 23, 102, 232, 187, 23, 102, - 231, 56, 23, 102, 232, 108, 23, 102, 233, 106, 23, 102, 232, 85, 23, 102, - 231, 71, 23, 102, 232, 92, 23, 102, 231, 40, 23, 102, 231, 109, 23, 102, - 232, 195, 23, 102, 231, 110, 23, 102, 233, 66, 23, 102, 226, 243, 23, - 102, 226, 244, 23, 102, 227, 4, 23, 102, 229, 52, 23, 102, 227, 3, 23, - 102, 232, 106, 23, 102, 231, 75, 23, 102, 231, 52, 23, 102, 231, 51, 23, - 102, 231, 41, 23, 102, 226, 235, 23, 102, 232, 99, 23, 102, 233, 102, 23, - 102, 232, 100, 23, 102, 233, 103, 23, 102, 233, 245, 23, 102, 233, 76, - 23, 102, 226, 253, 23, 102, 231, 30, 23, 102, 233, 244, 23, 102, 233, - 101, 23, 102, 232, 55, 23, 102, 232, 56, 23, 102, 232, 58, 23, 102, 232, - 57, 23, 102, 233, 243, 23, 102, 231, 120, 23, 102, 226, 247, 23, 102, - 227, 13, 23, 102, 226, 232, 23, 102, 236, 234, 23, 102, 231, 106, 23, - 102, 231, 142, 23, 102, 232, 175, 23, 102, 232, 176, 23, 102, 233, 208, - 23, 102, 231, 68, 23, 102, 233, 78, 23, 102, 232, 174, 23, 102, 231, 66, - 23, 102, 231, 70, 23, 102, 231, 69, 23, 102, 235, 115, 23, 102, 232, 119, - 23, 102, 231, 62, 23, 102, 226, 238, 23, 102, 227, 1, 23, 102, 226, 229, - 23, 102, 227, 14, 23, 102, 231, 61, 23, 102, 227, 15, 23, 102, 226, 237, - 23, 102, 231, 50, 23, 102, 227, 9, 23, 102, 233, 104, 23, 102, 232, 102, - 23, 102, 238, 114, 23, 146, 238, 114, 23, 146, 67, 23, 146, 253, 178, 23, - 146, 216, 23, 146, 249, 18, 23, 146, 254, 59, 23, 146, 72, 23, 146, 249, - 22, 23, 146, 253, 254, 23, 146, 73, 23, 146, 253, 138, 23, 146, 249, 12, - 23, 146, 253, 193, 23, 146, 253, 162, 23, 146, 79, 23, 146, 249, 14, 23, - 146, 253, 170, 23, 146, 253, 187, 23, 146, 253, 161, 23, 146, 254, 61, - 23, 146, 253, 189, 23, 146, 71, 23, 146, 249, 229, 23, 146, 249, 230, 23, - 146, 247, 211, 23, 146, 242, 189, 23, 146, 245, 83, 23, 146, 245, 84, 23, - 146, 241, 96, 23, 146, 242, 195, 23, 146, 242, 196, 23, 146, 246, 230, - 23, 146, 252, 52, 23, 146, 246, 231, 23, 146, 252, 53, 23, 146, 252, 54, - 23, 146, 240, 255, 23, 146, 238, 233, 23, 146, 239, 251, 23, 146, 247, - 231, 23, 146, 244, 58, 23, 146, 252, 247, 23, 146, 247, 180, 23, 146, - 238, 36, 23, 146, 247, 181, 23, 146, 252, 248, 23, 146, 247, 234, 23, - 146, 242, 199, 23, 146, 247, 235, 23, 146, 238, 234, 23, 146, 241, 0, 23, - 146, 247, 236, 23, 146, 244, 60, 23, 146, 245, 86, 23, 146, 241, 99, 23, - 146, 247, 226, 23, 146, 251, 97, 23, 146, 245, 223, 23, 146, 251, 98, 23, - 146, 251, 99, 23, 146, 245, 222, 23, 146, 237, 175, 23, 146, 240, 156, - 23, 146, 235, 169, 23, 146, 237, 65, 23, 146, 237, 64, 23, 146, 233, 246, - 23, 114, 238, 99, 23, 114, 232, 87, 23, 114, 232, 91, 23, 114, 240, 80, - 23, 114, 232, 93, 23, 114, 232, 94, 23, 114, 238, 102, 23, 114, 240, 85, - 23, 114, 231, 98, 23, 114, 232, 96, 23, 114, 232, 97, 23, 114, 233, 74, - 23, 114, 231, 43, 23, 114, 231, 42, 23, 114, 232, 85, 23, 114, 240, 78, - 23, 114, 240, 83, 23, 114, 233, 66, 23, 114, 243, 34, 23, 114, 234, 32, - 23, 114, 240, 75, 23, 114, 240, 71, 23, 114, 236, 195, 23, 114, 236, 198, - 23, 114, 236, 205, 23, 114, 236, 201, 23, 114, 240, 74, 23, 114, 231, - 145, 23, 114, 226, 239, 23, 114, 231, 108, 23, 114, 231, 97, 23, 114, - 233, 90, 23, 114, 231, 47, 23, 114, 231, 74, 23, 114, 231, 56, 23, 114, - 232, 61, 23, 114, 226, 245, 23, 114, 232, 108, 23, 114, 231, 111, 23, - 114, 226, 241, 23, 114, 233, 106, 23, 114, 226, 240, 23, 114, 227, 5, 23, - 114, 226, 255, 23, 114, 226, 251, 23, 114, 226, 234, 23, 114, 229, 55, - 23, 114, 231, 54, 23, 114, 231, 76, 23, 114, 226, 246, 23, 114, 231, 147, - 23, 114, 232, 183, 23, 114, 232, 92, 23, 114, 233, 86, 23, 114, 229, 50, - 23, 114, 231, 46, 23, 114, 231, 73, 23, 114, 232, 182, 23, 114, 231, 40, - 23, 114, 232, 196, 23, 114, 231, 51, 23, 114, 232, 194, 23, 114, 231, 41, - 23, 114, 232, 99, 23, 114, 232, 100, 23, 114, 233, 103, 23, 114, 233, 76, - 23, 114, 236, 234, 23, 114, 231, 106, 23, 114, 226, 248, 23, 114, 233, - 78, 23, 114, 231, 67, 23, 114, 235, 115, 23, 114, 231, 58, 23, 114, 227, - 0, 23, 114, 231, 50, 23, 114, 227, 9, 23, 114, 232, 170, 23, 114, 232, - 172, 23, 114, 232, 169, 23, 114, 232, 171, 23, 114, 232, 102, 22, 4, 219, - 22, 4, 253, 236, 22, 4, 253, 214, 22, 4, 248, 114, 22, 4, 249, 80, 22, 4, - 253, 168, 22, 4, 253, 184, 22, 4, 251, 76, 22, 4, 253, 134, 22, 4, 254, - 8, 22, 4, 253, 251, 22, 4, 249, 101, 22, 4, 249, 102, 22, 4, 253, 250, - 22, 4, 253, 216, 22, 4, 248, 227, 22, 4, 251, 56, 22, 4, 251, 60, 22, 4, - 251, 58, 22, 4, 243, 194, 22, 4, 245, 143, 22, 4, 251, 57, 22, 4, 251, - 59, 22, 4, 245, 144, 22, 4, 222, 22, 4, 253, 154, 22, 4, 253, 180, 22, 4, - 249, 110, 22, 4, 249, 111, 22, 4, 253, 206, 22, 4, 253, 181, 22, 4, 248, - 169, 22, 4, 252, 202, 22, 4, 252, 206, 22, 4, 252, 204, 22, 4, 247, 131, - 22, 4, 247, 132, 22, 4, 252, 203, 22, 4, 252, 205, 22, 4, 247, 133, 22, - 4, 253, 130, 22, 4, 253, 185, 22, 4, 253, 209, 22, 4, 248, 182, 22, 4, - 249, 153, 22, 4, 253, 194, 22, 4, 253, 160, 22, 4, 252, 157, 22, 4, 253, - 132, 22, 4, 253, 211, 22, 4, 253, 198, 22, 4, 249, 158, 22, 4, 248, 184, - 22, 4, 253, 210, 22, 4, 253, 186, 22, 4, 248, 252, 22, 4, 248, 46, 22, 4, - 248, 248, 22, 4, 248, 185, 22, 4, 244, 7, 22, 4, 244, 9, 22, 4, 248, 118, - 22, 4, 248, 110, 22, 4, 243, 121, 22, 4, 253, 217, 22, 4, 254, 29, 22, 4, - 254, 28, 22, 4, 248, 241, 22, 4, 252, 88, 22, 4, 254, 70, 22, 4, 254, 45, - 22, 4, 252, 98, 22, 4, 252, 112, 22, 4, 252, 114, 22, 4, 247, 21, 22, 4, - 247, 22, 22, 4, 252, 113, 22, 4, 252, 89, 22, 4, 252, 93, 22, 4, 252, 91, - 22, 4, 247, 7, 22, 4, 247, 8, 22, 4, 252, 90, 22, 4, 252, 92, 22, 4, 247, - 9, 22, 4, 247, 11, 22, 4, 242, 72, 22, 4, 242, 73, 22, 4, 247, 10, 22, 4, - 253, 141, 22, 4, 253, 243, 22, 4, 254, 34, 22, 4, 249, 30, 22, 4, 248, - 197, 22, 4, 253, 242, 22, 4, 254, 1, 22, 4, 249, 36, 22, 4, 253, 171, 22, - 4, 254, 49, 22, 4, 254, 48, 22, 4, 253, 6, 22, 4, 249, 10, 22, 4, 254, - 12, 22, 4, 254, 13, 22, 4, 253, 24, 22, 4, 253, 126, 22, 4, 253, 196, 22, - 4, 253, 212, 22, 4, 249, 172, 22, 4, 248, 255, 22, 4, 253, 195, 22, 4, - 87, 22, 4, 249, 7, 22, 4, 253, 152, 22, 4, 254, 84, 22, 4, 254, 55, 22, - 4, 249, 37, 22, 4, 250, 154, 22, 4, 254, 54, 22, 4, 253, 224, 22, 4, 248, - 203, 22, 4, 253, 253, 22, 4, 255, 6, 22, 4, 253, 188, 22, 4, 253, 41, 22, - 4, 253, 42, 22, 4, 254, 132, 22, 4, 254, 133, 22, 4, 253, 47, 22, 4, 253, - 53, 22, 4, 253, 55, 22, 4, 247, 206, 22, 4, 247, 207, 22, 4, 253, 54, 22, - 4, 253, 131, 22, 4, 253, 150, 22, 4, 253, 166, 22, 4, 248, 231, 22, 4, - 249, 118, 22, 4, 253, 197, 22, 4, 253, 173, 22, 4, 248, 176, 22, 4, 248, - 78, 22, 4, 249, 125, 22, 4, 248, 178, 22, 4, 246, 198, 22, 4, 246, 200, - 22, 4, 252, 46, 22, 4, 248, 133, 22, 4, 246, 212, 22, 4, 238, 62, 67, 22, - 4, 238, 62, 79, 22, 4, 238, 62, 71, 22, 4, 238, 62, 253, 140, 22, 4, 238, - 62, 253, 164, 22, 4, 238, 62, 72, 22, 4, 238, 62, 73, 22, 4, 238, 62, - 253, 138, 22, 4, 201, 22, 4, 253, 203, 22, 4, 253, 215, 22, 4, 249, 90, - 22, 4, 251, 141, 22, 4, 253, 172, 22, 4, 253, 190, 22, 4, 251, 157, 22, - 4, 248, 221, 22, 4, 248, 223, 22, 4, 243, 65, 22, 4, 246, 25, 22, 4, 248, - 222, 22, 4, 251, 170, 22, 4, 251, 174, 22, 4, 251, 172, 22, 4, 246, 26, - 22, 4, 246, 27, 22, 4, 251, 171, 22, 4, 251, 173, 22, 4, 246, 28, 22, 4, - 246, 30, 22, 4, 241, 207, 22, 4, 241, 208, 22, 4, 246, 29, 22, 4, 253, - 138, 22, 4, 254, 14, 22, 4, 253, 187, 22, 4, 248, 190, 22, 4, 249, 199, - 22, 4, 253, 170, 22, 4, 253, 177, 22, 4, 253, 34, 22, 4, 234, 12, 67, 22, - 4, 234, 12, 79, 22, 4, 234, 12, 71, 22, 4, 234, 12, 253, 140, 22, 4, 234, - 12, 253, 164, 22, 4, 234, 12, 72, 22, 4, 234, 12, 73, 22, 4, 253, 163, - 22, 4, 254, 18, 22, 4, 254, 17, 22, 4, 249, 216, 22, 4, 248, 194, 22, 4, - 253, 228, 22, 4, 253, 222, 22, 4, 253, 117, 22, 4, 248, 99, 22, 4, 249, - 219, 22, 4, 249, 217, 22, 4, 247, 245, 22, 4, 243, 139, 22, 4, 248, 123, - 22, 4, 249, 218, 22, 4, 248, 4, 22, 4, 216, 22, 4, 253, 161, 22, 4, 253, - 189, 22, 4, 248, 191, 22, 4, 248, 192, 22, 4, 253, 254, 22, 4, 253, 162, - 22, 4, 253, 84, 22, 4, 253, 133, 22, 4, 253, 232, 22, 4, 253, 201, 22, 4, - 250, 177, 22, 4, 248, 149, 22, 4, 253, 200, 22, 4, 253, 225, 22, 4, 250, - 214, 22, 4, 248, 75, 22, 4, 249, 52, 22, 4, 249, 51, 22, 4, 245, 36, 22, - 4, 245, 41, 22, 4, 249, 50, 22, 4, 248, 204, 22, 4, 245, 57, 22, 4, 253, - 146, 22, 4, 254, 25, 22, 4, 254, 7, 22, 4, 251, 110, 22, 4, 248, 161, 22, - 4, 254, 24, 22, 4, 253, 248, 22, 4, 251, 131, 22, 4, 253, 139, 22, 4, - 253, 235, 22, 4, 254, 6, 22, 4, 248, 211, 22, 4, 249, 68, 22, 4, 254, 5, - 22, 4, 253, 234, 22, 4, 251, 25, 22, 4, 251, 36, 22, 4, 251, 38, 22, 4, - 245, 134, 22, 4, 245, 135, 22, 4, 251, 37, 22, 4, 249, 70, 22, 4, 249, - 74, 22, 4, 249, 72, 22, 4, 245, 99, 22, 4, 245, 103, 22, 4, 249, 71, 22, - 4, 249, 73, 22, 4, 241, 134, 22, 4, 248, 55, 22, 4, 249, 177, 22, 4, 248, - 121, 22, 4, 243, 76, 22, 4, 243, 77, 22, 4, 248, 111, 22, 4, 248, 97, 22, - 4, 247, 147, 22, 4, 248, 57, 22, 4, 248, 200, 22, 4, 248, 67, 22, 4, 244, - 252, 22, 4, 243, 54, 22, 4, 248, 88, 22, 4, 248, 125, 22, 4, 245, 13, 22, - 4, 248, 65, 22, 4, 252, 64, 22, 4, 248, 68, 22, 4, 246, 243, 22, 4, 246, - 245, 22, 4, 249, 136, 22, 4, 248, 238, 22, 4, 246, 247, 22, 4, 248, 90, - 22, 4, 249, 5, 22, 4, 248, 140, 22, 4, 247, 160, 22, 4, 244, 39, 22, 4, - 248, 112, 22, 4, 249, 4, 22, 4, 247, 162, 22, 4, 252, 242, 22, 4, 252, - 246, 22, 4, 252, 244, 22, 4, 247, 177, 22, 4, 247, 178, 22, 4, 252, 243, - 22, 4, 252, 245, 22, 4, 247, 179, 22, 4, 253, 179, 22, 4, 254, 93, 22, 4, - 253, 245, 22, 4, 249, 60, 22, 4, 249, 61, 22, 4, 254, 62, 22, 4, 254, 63, - 22, 4, 249, 66, 22, 4, 253, 129, 22, 4, 253, 239, 22, 4, 253, 147, 22, 4, - 249, 133, 22, 4, 248, 180, 22, 4, 253, 175, 22, 4, 253, 208, 22, 4, 248, - 181, 22, 4, 252, 158, 22, 4, 251, 248, 22, 4, 251, 1, 22, 50, 234, 194, - 69, 22, 238, 213, 69, 22, 235, 42, 22, 248, 37, 208, 22, 240, 27, 22, - 234, 14, 22, 240, 24, 22, 239, 166, 240, 24, 22, 236, 156, 69, 22, 235, - 91, 234, 6, 22, 26, 127, 22, 26, 111, 22, 26, 166, 22, 26, 177, 22, 26, - 176, 22, 26, 187, 22, 26, 203, 22, 26, 195, 22, 26, 202, 22, 61, 248, 53, - 22, 61, 238, 77, 22, 61, 238, 101, 22, 61, 240, 136, 22, 61, 240, 50, 22, - 61, 240, 234, 22, 61, 237, 38, 22, 61, 238, 182, 22, 61, 238, 147, 22, - 61, 236, 149, 22, 61, 253, 219, 235, 49, 22, 4, 235, 94, 248, 169, 22, 4, - 248, 230, 22, 4, 246, 101, 22, 4, 248, 229, 22, 4, 235, 94, 249, 36, 22, - 4, 250, 136, 22, 4, 244, 237, 22, 4, 250, 135, 22, 4, 235, 94, 249, 66, - 22, 4, 251, 0, 22, 4, 245, 95, 22, 4, 250, 255, 22, 4, 235, 94, 248, 181, - 22, 4, 248, 240, 22, 4, 247, 2, 22, 4, 248, 239, 22, 243, 10, 158, 242, - 198, 22, 243, 10, 158, 241, 83, 22, 243, 10, 158, 238, 212, 22, 243, 10, - 158, 242, 215, 238, 212, 22, 243, 10, 158, 241, 84, 22, 243, 10, 158, - 241, 199, 22, 243, 10, 158, 239, 24, 22, 243, 10, 158, 241, 149, 22, 243, - 10, 158, 232, 130, 22, 243, 10, 158, 246, 22, 109, 1, 67, 109, 1, 72, - 109, 1, 71, 109, 1, 73, 109, 1, 79, 109, 1, 179, 109, 1, 253, 139, 109, - 1, 201, 109, 1, 254, 5, 109, 1, 254, 6, 109, 1, 253, 234, 109, 1, 253, - 235, 109, 1, 254, 169, 109, 1, 219, 109, 1, 253, 168, 109, 1, 253, 214, - 109, 1, 253, 184, 109, 1, 253, 236, 109, 1, 254, 98, 109, 1, 253, 134, - 109, 1, 253, 250, 109, 1, 253, 251, 109, 1, 253, 216, 109, 1, 254, 8, - 109, 1, 254, 196, 109, 1, 222, 109, 1, 253, 206, 109, 1, 253, 180, 109, - 1, 253, 181, 109, 1, 253, 154, 109, 1, 253, 131, 109, 1, 249, 83, 109, 1, - 251, 253, 109, 1, 253, 197, 109, 1, 253, 166, 109, 1, 253, 173, 109, 1, - 253, 150, 109, 1, 254, 115, 109, 1, 252, 103, 109, 1, 252, 104, 109, 1, - 252, 105, 109, 1, 249, 149, 109, 1, 249, 150, 109, 1, 252, 110, 109, 1, - 253, 132, 109, 1, 193, 109, 1, 253, 210, 109, 1, 253, 198, 109, 1, 253, - 186, 109, 1, 253, 211, 109, 1, 254, 127, 109, 1, 253, 133, 109, 1, 253, - 126, 109, 1, 253, 200, 109, 1, 253, 195, 109, 1, 253, 201, 109, 1, 253, - 212, 109, 1, 253, 225, 109, 1, 253, 232, 109, 1, 254, 158, 109, 1, 249, - 55, 109, 1, 249, 179, 109, 1, 249, 180, 109, 1, 249, 181, 109, 1, 249, - 182, 109, 1, 249, 183, 109, 1, 252, 225, 109, 1, 248, 90, 109, 1, 248, - 112, 109, 1, 248, 140, 109, 1, 249, 4, 109, 1, 249, 5, 109, 1, 252, 230, - 109, 1, 253, 138, 109, 1, 253, 170, 109, 1, 253, 187, 109, 1, 253, 177, - 109, 1, 254, 14, 109, 1, 255, 4, 109, 1, 216, 109, 1, 253, 254, 109, 1, - 253, 189, 109, 1, 253, 162, 109, 1, 253, 161, 109, 1, 255, 10, 14, 15, - 72, 14, 15, 249, 231, 14, 15, 71, 14, 15, 253, 142, 14, 15, 73, 14, 15, - 253, 156, 14, 15, 240, 44, 253, 156, 14, 15, 55, 253, 164, 14, 15, 55, - 71, 14, 15, 67, 14, 15, 253, 140, 14, 15, 253, 170, 14, 15, 106, 253, - 170, 14, 15, 253, 187, 14, 15, 106, 253, 187, 14, 15, 249, 200, 14, 15, - 106, 249, 200, 14, 15, 253, 177, 14, 15, 106, 253, 177, 14, 15, 249, 15, - 14, 15, 106, 249, 15, 14, 15, 238, 66, 249, 15, 14, 15, 253, 138, 14, 15, - 106, 253, 138, 14, 15, 248, 190, 14, 15, 106, 248, 190, 14, 15, 238, 66, - 248, 190, 14, 15, 253, 149, 14, 15, 240, 44, 255, 16, 14, 15, 238, 62, - 208, 14, 15, 30, 135, 14, 15, 30, 191, 14, 15, 30, 240, 17, 137, 242, - 233, 14, 15, 30, 253, 159, 137, 242, 233, 14, 15, 30, 38, 137, 242, 233, - 14, 15, 30, 242, 233, 14, 15, 30, 45, 135, 14, 15, 30, 45, 242, 215, 59, - 237, 45, 14, 15, 30, 240, 1, 248, 40, 14, 15, 30, 242, 215, 163, 108, 14, - 15, 30, 243, 12, 14, 15, 30, 92, 242, 234, 14, 15, 253, 202, 14, 15, 253, - 247, 14, 15, 254, 9, 14, 15, 254, 19, 14, 15, 253, 175, 14, 15, 246, 236, - 14, 15, 253, 147, 14, 15, 249, 138, 14, 15, 253, 208, 14, 15, 249, 140, - 14, 15, 240, 44, 249, 140, 14, 15, 55, 249, 80, 14, 15, 55, 253, 214, 14, - 15, 253, 129, 14, 15, 249, 133, 14, 15, 248, 239, 14, 15, 106, 248, 239, - 14, 15, 248, 240, 14, 15, 106, 248, 240, 14, 15, 243, 247, 14, 15, 106, - 243, 247, 14, 15, 249, 143, 14, 15, 106, 249, 143, 14, 15, 243, 248, 14, - 15, 106, 243, 248, 14, 15, 248, 181, 14, 15, 106, 248, 181, 14, 15, 243, - 118, 14, 15, 106, 243, 118, 14, 15, 240, 44, 243, 118, 14, 15, 223, 14, - 15, 106, 223, 14, 15, 55, 192, 14, 15, 253, 195, 14, 15, 247, 135, 14, - 15, 253, 212, 14, 15, 252, 221, 14, 15, 87, 14, 15, 249, 2, 14, 15, 240, - 44, 249, 2, 14, 15, 55, 248, 149, 14, 15, 55, 253, 201, 14, 15, 253, 126, - 14, 15, 249, 172, 14, 15, 249, 8, 14, 15, 106, 249, 8, 14, 15, 249, 189, - 14, 15, 106, 249, 189, 14, 15, 244, 42, 14, 15, 106, 244, 42, 14, 15, - 111, 14, 15, 106, 111, 14, 15, 244, 43, 14, 15, 106, 244, 43, 14, 15, - 249, 7, 14, 15, 106, 249, 7, 14, 15, 243, 132, 14, 15, 106, 243, 132, 14, - 15, 238, 66, 243, 132, 14, 15, 214, 14, 15, 249, 186, 14, 15, 249, 187, - 14, 15, 249, 6, 14, 15, 248, 71, 14, 15, 253, 172, 14, 15, 246, 4, 14, - 15, 253, 215, 14, 15, 251, 150, 14, 15, 253, 190, 14, 15, 249, 98, 14, - 15, 240, 44, 249, 98, 14, 15, 201, 14, 15, 249, 90, 14, 15, 248, 222, 14, - 15, 106, 248, 222, 14, 15, 248, 223, 14, 15, 106, 248, 223, 14, 15, 243, - 211, 14, 15, 106, 243, 211, 14, 15, 249, 100, 14, 15, 106, 249, 100, 14, - 15, 243, 212, 14, 15, 106, 243, 212, 14, 15, 248, 221, 14, 15, 106, 248, - 221, 14, 15, 243, 65, 14, 15, 106, 243, 65, 14, 15, 238, 66, 243, 65, 14, - 15, 255, 15, 14, 15, 254, 108, 14, 15, 232, 86, 248, 218, 14, 15, 232, - 86, 251, 149, 14, 15, 232, 86, 251, 158, 14, 15, 232, 86, 251, 136, 14, - 15, 254, 54, 14, 15, 244, 239, 14, 15, 254, 55, 14, 15, 250, 162, 14, 15, - 253, 224, 14, 15, 249, 42, 14, 15, 240, 44, 249, 42, 14, 15, 253, 152, - 14, 15, 249, 37, 14, 15, 249, 44, 14, 15, 106, 249, 44, 14, 15, 249, 45, - 14, 15, 106, 249, 45, 14, 15, 243, 159, 14, 15, 106, 243, 159, 14, 15, - 249, 46, 14, 15, 106, 249, 46, 14, 15, 243, 160, 14, 15, 106, 243, 160, - 14, 15, 248, 203, 14, 15, 106, 248, 203, 14, 15, 243, 91, 14, 15, 106, - 243, 91, 14, 15, 238, 66, 243, 91, 14, 15, 255, 18, 14, 15, 240, 36, 254, - 46, 14, 15, 253, 206, 14, 15, 246, 61, 14, 15, 253, 180, 14, 15, 251, - 232, 14, 15, 253, 181, 14, 15, 249, 112, 14, 15, 240, 44, 249, 112, 14, - 15, 222, 14, 15, 249, 110, 14, 15, 248, 229, 14, 15, 106, 248, 229, 14, - 15, 248, 230, 14, 15, 106, 248, 230, 14, 15, 243, 228, 14, 15, 106, 243, - 228, 14, 15, 249, 117, 14, 15, 106, 249, 117, 14, 15, 243, 229, 14, 15, - 106, 243, 229, 14, 15, 248, 169, 14, 15, 106, 248, 169, 14, 15, 243, 109, - 14, 15, 106, 243, 109, 14, 15, 238, 66, 243, 109, 14, 15, 173, 14, 15, - 106, 173, 14, 15, 254, 203, 14, 15, 234, 47, 173, 14, 15, 240, 36, 173, - 14, 15, 253, 197, 14, 15, 246, 102, 14, 15, 253, 166, 14, 15, 252, 22, - 14, 15, 253, 173, 14, 15, 249, 121, 14, 15, 240, 44, 249, 121, 14, 15, - 253, 131, 14, 15, 248, 231, 14, 15, 249, 124, 14, 15, 106, 249, 124, 14, - 15, 248, 176, 14, 15, 106, 248, 176, 14, 15, 243, 110, 14, 15, 106, 243, - 110, 14, 15, 238, 66, 243, 110, 14, 15, 197, 14, 15, 55, 254, 26, 14, 15, - 254, 214, 14, 15, 253, 250, 14, 15, 246, 33, 14, 15, 253, 251, 14, 15, - 251, 196, 14, 15, 253, 216, 14, 15, 248, 226, 14, 15, 240, 44, 248, 226, - 14, 15, 253, 134, 14, 15, 249, 101, 14, 15, 249, 106, 14, 15, 106, 249, - 106, 14, 15, 249, 107, 14, 15, 106, 249, 107, 14, 15, 243, 220, 14, 15, - 106, 243, 220, 14, 15, 249, 108, 14, 15, 106, 249, 108, 14, 15, 243, 221, - 14, 15, 106, 243, 221, 14, 15, 248, 227, 14, 15, 106, 248, 227, 14, 15, - 243, 219, 14, 15, 106, 243, 219, 14, 15, 162, 14, 15, 106, 162, 14, 15, - 113, 162, 14, 15, 253, 210, 14, 15, 247, 60, 14, 15, 253, 198, 14, 15, - 252, 177, 14, 15, 253, 186, 14, 15, 249, 166, 14, 15, 240, 44, 249, 166, - 14, 15, 253, 132, 14, 15, 249, 158, 14, 15, 249, 169, 14, 15, 106, 249, - 169, 14, 15, 249, 170, 14, 15, 106, 249, 170, 14, 15, 244, 26, 14, 15, - 106, 244, 26, 14, 15, 249, 171, 14, 15, 106, 249, 171, 14, 15, 244, 27, - 14, 15, 106, 244, 27, 14, 15, 248, 252, 14, 15, 106, 248, 252, 14, 15, - 243, 125, 14, 15, 106, 243, 125, 14, 15, 238, 66, 243, 125, 14, 15, 193, - 14, 15, 234, 47, 193, 14, 15, 254, 128, 14, 15, 235, 57, 193, 14, 15, - 234, 225, 254, 238, 14, 15, 238, 66, 252, 181, 14, 15, 238, 66, 252, 164, - 14, 15, 238, 66, 247, 98, 14, 15, 238, 66, 247, 124, 14, 15, 238, 66, - 247, 93, 14, 15, 238, 66, 247, 66, 14, 15, 248, 118, 14, 15, 248, 185, - 14, 15, 247, 73, 14, 15, 248, 110, 14, 15, 247, 76, 14, 15, 248, 46, 14, - 15, 244, 7, 14, 15, 244, 16, 14, 15, 106, 244, 16, 14, 15, 244, 17, 14, - 15, 106, 244, 17, 14, 15, 240, 230, 14, 15, 106, 240, 230, 14, 15, 244, - 18, 14, 15, 106, 244, 18, 14, 15, 240, 231, 14, 15, 106, 240, 231, 14, - 15, 243, 121, 14, 15, 106, 243, 121, 14, 15, 240, 229, 14, 15, 106, 240, - 229, 14, 15, 254, 72, 14, 15, 253, 254, 14, 15, 247, 212, 14, 15, 253, - 189, 14, 15, 253, 81, 14, 15, 253, 162, 14, 15, 249, 210, 14, 15, 240, - 44, 249, 210, 14, 15, 216, 14, 15, 248, 191, 14, 15, 249, 213, 14, 15, - 106, 249, 213, 14, 15, 249, 214, 14, 15, 106, 249, 214, 14, 15, 244, 61, - 14, 15, 106, 244, 61, 14, 15, 249, 215, 14, 15, 106, 249, 215, 14, 15, - 244, 62, 14, 15, 106, 244, 62, 14, 15, 249, 212, 14, 15, 106, 249, 212, - 14, 15, 243, 137, 14, 15, 106, 243, 137, 14, 15, 238, 66, 243, 137, 14, - 15, 255, 14, 14, 15, 234, 98, 255, 14, 14, 15, 106, 255, 14, 14, 15, 240, - 36, 253, 189, 14, 15, 253, 194, 14, 15, 242, 74, 253, 194, 14, 15, 106, - 253, 250, 14, 15, 247, 26, 14, 15, 253, 209, 14, 15, 252, 137, 14, 15, - 253, 160, 14, 15, 252, 143, 14, 15, 106, 253, 216, 14, 15, 253, 130, 14, - 15, 248, 182, 14, 15, 106, 253, 134, 14, 15, 244, 2, 14, 15, 106, 244, 2, - 14, 15, 144, 14, 15, 106, 144, 14, 15, 113, 144, 14, 15, 254, 62, 14, 15, - 245, 88, 14, 15, 253, 245, 14, 15, 250, 243, 14, 15, 254, 63, 14, 15, - 250, 249, 14, 15, 253, 179, 14, 15, 249, 60, 14, 15, 243, 177, 14, 15, - 106, 243, 177, 14, 15, 255, 19, 14, 15, 248, 111, 14, 15, 240, 141, 248, - 111, 14, 15, 248, 121, 14, 15, 240, 141, 248, 121, 14, 15, 243, 128, 14, - 15, 240, 141, 243, 128, 14, 15, 248, 97, 14, 15, 244, 30, 14, 15, 248, - 55, 14, 15, 243, 76, 14, 15, 240, 244, 14, 15, 106, 240, 244, 14, 15, - 254, 46, 14, 15, 247, 166, 14, 15, 247, 167, 14, 15, 243, 131, 14, 15, - 242, 247, 14, 15, 252, 231, 14, 15, 252, 239, 14, 15, 252, 240, 14, 15, - 252, 241, 14, 15, 252, 238, 14, 15, 238, 86, 253, 168, 14, 15, 238, 86, - 253, 214, 14, 15, 238, 86, 251, 61, 14, 15, 238, 86, 253, 184, 14, 15, - 238, 86, 251, 78, 14, 15, 238, 86, 219, 14, 15, 238, 86, 248, 114, 14, - 15, 238, 86, 192, 14, 15, 239, 148, 192, 14, 15, 254, 172, 14, 15, 247, - 5, 14, 15, 254, 28, 14, 15, 249, 147, 14, 15, 254, 45, 14, 15, 252, 100, - 14, 15, 253, 217, 14, 15, 248, 241, 14, 15, 255, 20, 14, 15, 244, 34, 14, - 15, 244, 35, 14, 15, 244, 36, 14, 15, 244, 33, 14, 15, 106, 253, 194, 14, - 15, 106, 253, 209, 14, 15, 106, 253, 160, 14, 15, 106, 253, 130, 14, 15, - 242, 5, 14, 15, 248, 232, 14, 15, 246, 147, 14, 15, 248, 172, 14, 15, - 246, 149, 14, 15, 248, 50, 14, 15, 246, 139, 14, 15, 254, 26, 14, 15, - 252, 30, 14, 15, 240, 36, 248, 118, 14, 15, 240, 36, 248, 185, 14, 15, - 240, 36, 248, 110, 14, 15, 240, 36, 248, 46, 14, 15, 234, 24, 248, 111, - 14, 15, 234, 24, 248, 121, 14, 15, 234, 24, 248, 97, 14, 15, 234, 24, - 248, 55, 14, 15, 234, 24, 254, 46, 14, 15, 249, 103, 14, 15, 246, 46, 14, - 15, 249, 104, 14, 15, 246, 47, 14, 15, 248, 225, 14, 15, 246, 44, 14, 15, - 254, 193, 14, 15, 238, 88, 248, 111, 14, 15, 238, 88, 248, 121, 14, 15, - 238, 88, 243, 128, 14, 15, 238, 88, 248, 97, 14, 15, 238, 88, 244, 30, - 14, 15, 238, 88, 248, 55, 14, 15, 238, 88, 243, 76, 14, 15, 238, 88, 254, - 46, 14, 15, 238, 241, 217, 14, 15, 235, 57, 72, 14, 15, 235, 57, 71, 14, - 15, 235, 57, 73, 14, 15, 235, 57, 67, 14, 15, 235, 57, 253, 170, 14, 15, - 235, 57, 253, 187, 14, 15, 235, 57, 253, 177, 14, 15, 235, 57, 253, 138, - 14, 15, 235, 57, 253, 197, 14, 15, 235, 57, 253, 166, 14, 15, 235, 57, - 253, 173, 14, 15, 235, 57, 253, 131, 14, 15, 235, 57, 253, 172, 14, 15, - 235, 57, 253, 215, 14, 15, 235, 57, 253, 190, 14, 15, 235, 57, 201, 14, - 15, 240, 36, 253, 168, 14, 15, 240, 36, 253, 214, 14, 15, 240, 36, 253, - 184, 14, 15, 240, 36, 219, 14, 15, 55, 251, 19, 14, 15, 55, 249, 75, 14, - 15, 55, 248, 127, 14, 15, 55, 245, 119, 14, 15, 55, 251, 18, 14, 15, 55, - 248, 77, 14, 15, 55, 253, 185, 14, 15, 55, 253, 160, 14, 15, 55, 253, - 194, 14, 15, 55, 249, 153, 14, 15, 55, 253, 209, 14, 15, 55, 253, 130, - 14, 15, 55, 254, 14, 14, 15, 55, 253, 177, 14, 15, 55, 253, 170, 14, 15, - 55, 249, 199, 14, 15, 55, 253, 187, 14, 15, 55, 253, 138, 14, 15, 55, - 251, 88, 14, 15, 55, 251, 87, 14, 15, 55, 251, 85, 14, 15, 55, 245, 208, - 14, 15, 55, 251, 86, 14, 15, 55, 251, 84, 14, 15, 55, 249, 177, 14, 15, - 55, 248, 97, 14, 15, 55, 248, 111, 14, 15, 55, 243, 77, 14, 15, 55, 248, - 121, 14, 15, 55, 248, 55, 14, 15, 55, 252, 232, 14, 15, 55, 249, 6, 14, - 15, 55, 249, 186, 14, 15, 55, 247, 164, 14, 15, 55, 249, 187, 14, 15, 55, - 248, 71, 14, 15, 55, 253, 239, 14, 15, 55, 253, 208, 14, 15, 55, 253, - 175, 14, 15, 55, 248, 180, 14, 15, 55, 253, 147, 14, 15, 55, 253, 129, - 14, 15, 55, 223, 14, 15, 55, 253, 235, 14, 15, 55, 253, 234, 14, 15, 55, - 254, 5, 14, 15, 55, 249, 68, 14, 15, 55, 254, 6, 14, 15, 55, 253, 139, - 14, 15, 55, 251, 146, 14, 15, 55, 248, 220, 14, 15, 55, 249, 94, 14, 15, - 55, 246, 11, 14, 15, 55, 248, 219, 14, 15, 55, 248, 61, 14, 15, 55, 251, - 156, 14, 15, 55, 251, 155, 14, 15, 55, 251, 153, 14, 15, 55, 246, 17, 14, - 15, 55, 251, 154, 14, 15, 55, 249, 97, 14, 15, 55, 254, 107, 14, 15, 55, - 253, 150, 14, 15, 55, 253, 173, 14, 15, 55, 253, 197, 14, 15, 55, 249, - 118, 14, 15, 55, 253, 166, 14, 15, 55, 253, 131, 14, 15, 55, 253, 154, - 14, 15, 55, 253, 181, 14, 15, 55, 253, 206, 14, 15, 55, 249, 111, 14, 15, - 55, 253, 180, 14, 15, 55, 222, 14, 15, 55, 253, 161, 14, 15, 55, 253, - 162, 14, 15, 55, 253, 254, 14, 15, 55, 248, 192, 14, 15, 55, 253, 189, - 14, 15, 55, 216, 14, 15, 55, 254, 25, 14, 15, 240, 36, 254, 25, 14, 15, - 55, 253, 248, 14, 15, 55, 254, 24, 14, 15, 55, 248, 161, 14, 15, 55, 254, - 7, 14, 15, 240, 36, 254, 7, 14, 15, 55, 253, 146, 14, 15, 55, 249, 88, - 14, 15, 55, 249, 87, 14, 15, 55, 251, 121, 14, 15, 55, 245, 238, 14, 15, - 55, 249, 86, 14, 15, 55, 251, 120, 14, 15, 55, 254, 8, 14, 15, 55, 253, - 216, 14, 15, 55, 253, 250, 14, 15, 55, 249, 102, 14, 15, 55, 253, 251, - 14, 15, 55, 253, 134, 14, 15, 55, 250, 201, 14, 15, 55, 250, 200, 14, 15, - 55, 250, 198, 14, 15, 55, 245, 70, 14, 15, 55, 250, 199, 14, 15, 55, 249, - 55, 14, 15, 55, 251, 194, 14, 15, 55, 249, 104, 14, 15, 55, 251, 193, 14, - 15, 55, 246, 45, 14, 15, 55, 249, 103, 14, 15, 55, 248, 225, 14, 15, 55, - 247, 155, 14, 15, 55, 244, 36, 14, 15, 55, 244, 34, 14, 15, 55, 242, 155, - 14, 15, 55, 244, 35, 14, 15, 55, 244, 33, 14, 15, 55, 249, 183, 14, 15, - 55, 249, 182, 14, 15, 55, 249, 180, 14, 15, 55, 247, 154, 14, 15, 55, - 249, 181, 14, 15, 55, 249, 179, 14, 15, 55, 254, 18, 14, 15, 55, 253, - 222, 14, 15, 55, 253, 228, 14, 15, 55, 248, 194, 14, 15, 55, 254, 17, 14, - 15, 55, 253, 163, 14, 15, 55, 255, 17, 14, 15, 55, 54, 255, 17, 14, 15, - 55, 250, 220, 14, 15, 55, 250, 219, 14, 15, 55, 248, 126, 14, 15, 55, - 245, 78, 14, 15, 55, 250, 218, 14, 15, 55, 248, 153, 14, 15, 55, 253, - 211, 14, 15, 55, 253, 186, 14, 15, 55, 253, 210, 14, 15, 55, 248, 184, - 14, 15, 55, 253, 198, 14, 15, 55, 253, 132, 14, 15, 55, 248, 248, 14, 15, - 55, 248, 110, 14, 15, 55, 248, 118, 14, 15, 55, 244, 9, 14, 15, 55, 248, - 185, 14, 15, 55, 248, 46, 14, 15, 55, 254, 72, 14, 15, 55, 249, 5, 14, - 15, 55, 249, 4, 14, 15, 55, 248, 112, 14, 15, 55, 244, 39, 14, 15, 55, - 248, 140, 14, 15, 55, 248, 90, 14, 15, 55, 248, 200, 14, 15, 55, 248, - 125, 14, 15, 55, 248, 88, 14, 15, 55, 243, 54, 14, 15, 55, 248, 67, 14, - 15, 55, 248, 57, 14, 15, 55, 247, 172, 14, 15, 55, 247, 171, 14, 15, 55, - 247, 169, 14, 15, 55, 242, 160, 14, 15, 55, 247, 170, 14, 15, 55, 247, - 168, 14, 15, 254, 83, 52, 14, 15, 248, 37, 208, 14, 15, 249, 146, 14, 15, - 246, 140, 14, 15, 246, 173, 14, 15, 242, 20, 14, 15, 246, 174, 14, 15, - 242, 21, 14, 15, 246, 172, 14, 15, 242, 19, 242, 221, 247, 96, 69, 242, - 221, 1, 241, 29, 242, 221, 1, 246, 55, 242, 221, 1, 241, 104, 242, 221, - 1, 247, 62, 242, 221, 1, 246, 156, 242, 221, 1, 247, 182, 242, 221, 1, - 245, 33, 242, 221, 1, 242, 153, 242, 221, 1, 245, 26, 242, 221, 1, 241, - 48, 242, 221, 1, 246, 94, 242, 221, 1, 245, 126, 242, 221, 1, 237, 220, - 242, 221, 1, 239, 205, 242, 221, 1, 247, 52, 242, 221, 1, 244, 72, 242, - 221, 1, 249, 130, 242, 221, 1, 254, 253, 242, 221, 1, 237, 144, 242, 221, - 1, 237, 182, 242, 221, 1, 237, 143, 242, 221, 1, 253, 227, 242, 221, 1, - 236, 134, 242, 221, 1, 245, 225, 242, 221, 1, 232, 163, 242, 221, 1, 242, - 54, 242, 221, 238, 184, 69, 242, 221, 224, 238, 184, 69, 119, 1, 250, - 238, 250, 240, 255, 74, 255, 19, 119, 1, 179, 119, 1, 253, 4, 255, 95, - 79, 119, 1, 254, 135, 119, 1, 255, 14, 119, 1, 255, 16, 119, 1, 238, 28, - 247, 146, 240, 149, 119, 1, 248, 109, 119, 1, 244, 82, 67, 119, 1, 255, - 86, 73, 119, 1, 255, 67, 67, 119, 1, 244, 69, 119, 1, 231, 23, 73, 119, - 1, 231, 77, 73, 119, 1, 73, 119, 1, 253, 193, 119, 1, 254, 9, 119, 1, - 247, 27, 254, 71, 252, 132, 144, 119, 1, 241, 195, 119, 1, 250, 155, 119, - 1, 251, 139, 255, 15, 119, 1, 210, 119, 1, 248, 108, 119, 1, 251, 13, - 251, 41, 210, 119, 1, 251, 9, 119, 1, 247, 198, 253, 40, 255, 16, 119, 1, - 241, 145, 192, 119, 1, 245, 138, 192, 119, 1, 226, 249, 192, 119, 1, 227, - 6, 192, 119, 1, 241, 253, 254, 218, 252, 0, 197, 119, 1, 231, 29, 197, - 119, 1, 236, 7, 119, 1, 251, 108, 255, 77, 254, 178, 71, 119, 1, 72, 119, - 1, 245, 234, 221, 119, 1, 251, 14, 119, 1, 231, 72, 253, 178, 119, 1, - 232, 54, 67, 119, 1, 251, 109, 250, 226, 119, 1, 242, 57, 242, 56, 223, - 119, 1, 244, 76, 241, 97, 119, 1, 242, 122, 193, 119, 1, 247, 89, 231, - 24, 193, 119, 1, 231, 78, 193, 119, 1, 255, 18, 119, 1, 255, 17, 119, 1, - 247, 153, 254, 249, 254, 251, 214, 119, 1, 231, 79, 214, 119, 1, 209, - 119, 1, 237, 76, 244, 218, 239, 10, 217, 119, 1, 226, 252, 217, 119, 1, - 236, 8, 119, 1, 239, 152, 119, 1, 245, 80, 255, 72, 72, 119, 1, 241, 227, - 254, 111, 173, 119, 1, 229, 49, 173, 119, 1, 231, 28, 173, 119, 1, 241, - 213, 251, 181, 251, 204, 162, 119, 1, 236, 6, 119, 1, 239, 98, 119, 1, - 251, 104, 119, 1, 245, 31, 250, 179, 209, 119, 1, 239, 155, 245, 85, 73, - 119, 1, 248, 206, 119, 1, 251, 106, 119, 1, 237, 98, 119, 1, 244, 240, - 119, 1, 241, 47, 119, 1, 247, 120, 119, 1, 231, 25, 119, 1, 231, 80, 119, - 1, 231, 141, 119, 1, 255, 20, 119, 1, 206, 119, 240, 12, 232, 75, 119, - 237, 215, 232, 75, 119, 243, 38, 232, 75, 119, 241, 16, 91, 119, 238, 34, - 91, 119, 237, 75, 91, 238, 63, 1, 67, 238, 63, 1, 71, 238, 63, 1, 79, - 238, 63, 1, 201, 238, 63, 1, 253, 139, 238, 63, 1, 248, 50, 238, 63, 1, - 253, 126, 238, 63, 1, 253, 133, 238, 63, 1, 253, 131, 238, 63, 1, 253, - 129, 238, 63, 1, 253, 141, 238, 63, 1, 222, 238, 63, 1, 216, 238, 63, 1, - 253, 134, 238, 63, 1, 253, 138, 238, 63, 1, 253, 132, 238, 63, 1, 219, - 238, 63, 33, 21, 71, 238, 63, 33, 21, 79, 238, 63, 21, 238, 72, 238, 60, - 1, 67, 238, 60, 1, 71, 238, 60, 1, 79, 238, 60, 1, 201, 238, 60, 1, 253, - 139, 238, 60, 1, 248, 50, 238, 60, 1, 253, 126, 238, 60, 1, 253, 133, - 238, 60, 1, 253, 131, 238, 60, 1, 253, 129, 238, 60, 1, 253, 141, 238, - 60, 1, 222, 238, 60, 1, 216, 238, 60, 1, 253, 130, 238, 60, 1, 253, 134, - 238, 60, 1, 253, 138, 238, 60, 1, 253, 132, 238, 60, 1, 219, 238, 60, 33, - 21, 71, 238, 60, 33, 21, 79, 238, 60, 21, 236, 70, 234, 63, 240, 12, 232, - 75, 234, 63, 45, 232, 75, 242, 231, 1, 67, 242, 231, 1, 71, 242, 231, 1, - 79, 242, 231, 1, 201, 242, 231, 1, 253, 139, 242, 231, 1, 248, 50, 242, - 231, 1, 253, 126, 242, 231, 1, 253, 133, 242, 231, 1, 253, 131, 242, 231, - 1, 253, 129, 242, 231, 1, 253, 141, 242, 231, 1, 222, 242, 231, 1, 216, - 242, 231, 1, 253, 130, 242, 231, 1, 253, 134, 242, 231, 1, 253, 138, 242, - 231, 1, 253, 132, 242, 231, 1, 219, 242, 231, 33, 21, 71, 242, 231, 33, - 21, 79, 236, 157, 1, 67, 236, 157, 1, 71, 236, 157, 1, 79, 236, 157, 1, - 201, 236, 157, 1, 253, 139, 236, 157, 1, 248, 50, 236, 157, 1, 253, 126, - 236, 157, 1, 253, 133, 236, 157, 1, 253, 131, 236, 157, 1, 253, 129, 236, - 157, 1, 253, 141, 236, 157, 1, 222, 236, 157, 1, 216, 236, 157, 1, 253, - 134, 236, 157, 1, 253, 138, 236, 157, 1, 253, 132, 236, 157, 33, 21, 71, - 236, 157, 33, 21, 79, 63, 1, 201, 63, 1, 248, 61, 63, 1, 253, 190, 63, 1, - 248, 220, 63, 1, 248, 172, 63, 1, 253, 152, 63, 1, 248, 57, 63, 1, 253, - 224, 63, 1, 248, 125, 63, 1, 248, 133, 63, 1, 253, 133, 63, 1, 242, 247, - 63, 1, 253, 225, 63, 1, 243, 131, 63, 1, 252, 31, 63, 1, 253, 126, 63, 1, - 248, 55, 63, 1, 87, 63, 1, 248, 97, 63, 1, 253, 173, 63, 1, 253, 141, 63, - 1, 248, 65, 63, 1, 253, 208, 63, 1, 248, 238, 63, 1, 253, 181, 63, 1, - 253, 162, 63, 1, 253, 160, 63, 1, 253, 216, 63, 1, 254, 13, 63, 1, 248, - 46, 63, 1, 248, 250, 63, 1, 253, 132, 63, 1, 219, 63, 1, 253, 134, 63, 1, - 253, 217, 63, 233, 52, 33, 252, 86, 63, 233, 52, 33, 248, 241, 63, 233, - 52, 33, 254, 28, 63, 233, 52, 33, 249, 147, 63, 233, 52, 33, 254, 29, 63, - 233, 52, 33, 252, 106, 63, 233, 52, 33, 249, 150, 63, 233, 52, 33, 247, - 20, 63, 233, 52, 33, 254, 125, 63, 233, 52, 33, 252, 163, 63, 233, 52, - 33, 254, 110, 63, 233, 52, 33, 251, 217, 63, 233, 52, 33, 254, 70, 63, - 233, 52, 33, 249, 146, 63, 233, 52, 33, 254, 123, 249, 9, 127, 63, 233, - 52, 33, 254, 123, 249, 9, 111, 63, 233, 52, 33, 252, 87, 63, 33, 237, 13, - 254, 142, 63, 33, 237, 13, 253, 140, 63, 33, 21, 253, 140, 63, 33, 21, - 71, 63, 33, 21, 253, 142, 63, 33, 21, 255, 14, 63, 33, 21, 254, 77, 63, - 33, 21, 79, 63, 33, 21, 253, 148, 63, 33, 21, 254, 74, 63, 33, 21, 253, - 193, 63, 33, 21, 216, 63, 33, 21, 253, 237, 63, 33, 21, 72, 63, 33, 21, - 253, 178, 63, 33, 21, 253, 149, 63, 33, 21, 253, 156, 63, 33, 21, 253, - 151, 63, 21, 237, 221, 63, 21, 237, 248, 63, 21, 231, 84, 63, 21, 232, - 184, 63, 21, 238, 32, 63, 21, 239, 3, 63, 21, 242, 86, 63, 21, 233, 43, - 63, 21, 237, 186, 63, 21, 241, 7, 63, 21, 242, 96, 239, 179, 63, 21, 239, - 243, 63, 21, 241, 62, 63, 21, 233, 121, 63, 21, 246, 10, 63, 21, 233, - 120, 63, 21, 241, 42, 254, 69, 246, 24, 63, 21, 253, 204, 249, 2, 63, 21, - 239, 8, 63, 21, 242, 59, 246, 93, 63, 21, 237, 191, 63, 236, 181, 12, - 247, 31, 63, 21, 231, 59, 63, 21, 235, 176, 63, 26, 242, 217, 63, 26, - 127, 63, 26, 111, 63, 26, 166, 63, 26, 177, 63, 26, 176, 63, 26, 187, 63, - 26, 203, 63, 26, 195, 63, 26, 202, 63, 12, 253, 204, 243, 4, 252, 184, - 63, 12, 253, 204, 243, 4, 246, 99, 63, 12, 253, 204, 243, 4, 249, 138, - 63, 12, 253, 204, 243, 4, 250, 113, 63, 12, 253, 204, 243, 4, 244, 233, - 63, 12, 253, 204, 243, 4, 246, 253, 63, 12, 253, 204, 243, 4, 234, 239, - 63, 12, 253, 204, 243, 4, 236, 79, 63, 12, 253, 204, 243, 4, 236, 78, 63, - 12, 253, 204, 243, 4, 234, 238, 58, 241, 31, 58, 235, 69, 58, 240, 27, - 58, 248, 37, 208, 58, 240, 24, 58, 248, 58, 243, 5, 58, 248, 47, 248, - 186, 238, 93, 58, 248, 54, 4, 237, 78, 238, 95, 58, 240, 14, 240, 27, 58, - 240, 14, 248, 37, 208, 58, 239, 144, 58, 248, 210, 34, 236, 239, 127, 58, - 248, 210, 34, 236, 239, 111, 58, 248, 210, 34, 236, 239, 166, 58, 33, - 234, 6, 58, 26, 242, 217, 58, 26, 127, 58, 26, 111, 58, 26, 166, 58, 26, - 177, 58, 26, 176, 58, 26, 187, 58, 26, 203, 58, 26, 195, 58, 26, 202, 58, - 1, 67, 58, 1, 72, 58, 1, 71, 58, 1, 73, 58, 1, 79, 58, 1, 253, 193, 58, - 1, 253, 252, 58, 1, 253, 164, 58, 1, 253, 131, 58, 1, 248, 124, 58, 1, - 253, 141, 58, 1, 253, 129, 58, 1, 253, 217, 58, 1, 253, 139, 58, 1, 222, - 58, 1, 253, 134, 58, 1, 253, 132, 58, 1, 248, 46, 58, 1, 253, 126, 58, 1, - 253, 133, 58, 1, 248, 57, 58, 1, 253, 146, 58, 1, 216, 58, 1, 253, 130, - 58, 1, 253, 138, 58, 1, 253, 179, 58, 1, 201, 58, 1, 248, 61, 58, 1, 248, - 90, 58, 1, 253, 163, 58, 1, 248, 114, 58, 1, 253, 113, 58, 1, 248, 225, - 58, 1, 249, 217, 58, 1, 248, 67, 58, 1, 248, 47, 183, 33, 52, 58, 1, 248, - 47, 72, 58, 1, 248, 47, 71, 58, 1, 248, 47, 73, 58, 1, 248, 47, 79, 58, - 1, 248, 47, 253, 193, 58, 1, 248, 47, 253, 252, 58, 1, 248, 47, 248, 124, - 58, 1, 248, 47, 253, 141, 58, 1, 248, 47, 253, 129, 58, 1, 248, 47, 253, - 217, 58, 1, 248, 47, 253, 139, 58, 1, 248, 47, 222, 58, 1, 248, 47, 253, - 126, 58, 1, 248, 47, 253, 133, 58, 1, 248, 47, 248, 57, 58, 1, 248, 47, - 253, 146, 58, 1, 248, 47, 248, 90, 58, 1, 248, 47, 216, 58, 1, 248, 47, - 253, 138, 58, 1, 248, 47, 201, 58, 1, 248, 47, 248, 211, 58, 1, 248, 47, - 248, 114, 58, 1, 248, 47, 251, 115, 58, 1, 248, 47, 252, 20, 58, 1, 248, - 47, 248, 153, 58, 1, 248, 54, 72, 58, 1, 248, 54, 71, 58, 1, 248, 54, - 254, 102, 58, 1, 248, 54, 253, 252, 58, 1, 248, 54, 79, 58, 1, 248, 54, - 248, 124, 58, 1, 248, 54, 201, 58, 1, 248, 54, 253, 139, 58, 1, 248, 54, - 219, 58, 1, 248, 54, 253, 129, 58, 1, 248, 54, 248, 46, 58, 1, 248, 54, - 253, 126, 58, 1, 248, 54, 253, 133, 58, 1, 248, 54, 253, 146, 58, 1, 248, - 54, 253, 179, 58, 1, 248, 54, 248, 211, 58, 1, 248, 54, 248, 114, 58, 1, - 248, 54, 248, 90, 58, 1, 248, 54, 253, 163, 58, 1, 248, 54, 248, 182, 58, - 1, 248, 54, 248, 57, 58, 1, 248, 54, 248, 99, 58, 1, 240, 14, 71, 58, 1, - 240, 14, 201, 58, 1, 240, 14, 253, 130, 58, 1, 240, 14, 253, 179, 58, 1, - 240, 14, 248, 99, 58, 1, 253, 128, 248, 36, 237, 62, 127, 58, 1, 253, - 128, 248, 36, 239, 244, 127, 58, 1, 253, 128, 248, 36, 239, 36, 58, 1, - 253, 128, 248, 36, 237, 50, 58, 1, 253, 128, 248, 36, 236, 145, 237, 50, - 58, 1, 253, 128, 248, 36, 238, 163, 58, 1, 253, 128, 248, 36, 204, 238, - 163, 58, 1, 253, 128, 248, 36, 67, 58, 1, 253, 128, 248, 36, 71, 58, 1, - 253, 128, 248, 36, 201, 58, 1, 253, 128, 248, 36, 248, 50, 58, 1, 253, - 128, 248, 36, 253, 152, 58, 1, 253, 128, 248, 36, 248, 71, 58, 1, 253, - 128, 248, 36, 242, 247, 58, 1, 253, 128, 248, 36, 248, 75, 58, 1, 253, - 128, 248, 36, 248, 82, 58, 1, 253, 128, 248, 36, 253, 126, 58, 1, 253, - 128, 248, 36, 253, 133, 58, 1, 253, 128, 248, 36, 253, 129, 58, 1, 253, - 128, 248, 36, 248, 65, 58, 1, 253, 128, 248, 36, 248, 66, 58, 1, 253, - 128, 248, 36, 248, 99, 58, 1, 253, 128, 248, 36, 253, 163, 58, 1, 253, - 128, 248, 36, 254, 0, 58, 1, 248, 47, 253, 128, 248, 36, 253, 126, 58, 1, - 248, 47, 253, 128, 248, 36, 248, 99, 58, 1, 240, 14, 253, 128, 248, 36, - 248, 77, 58, 1, 240, 14, 253, 128, 248, 36, 248, 50, 58, 1, 240, 14, 253, - 128, 248, 36, 253, 152, 58, 1, 240, 14, 253, 128, 248, 36, 248, 89, 58, - 1, 240, 14, 253, 128, 248, 36, 248, 71, 58, 1, 240, 14, 253, 128, 248, - 36, 242, 249, 58, 1, 240, 14, 253, 128, 248, 36, 253, 126, 58, 1, 240, - 14, 253, 128, 248, 36, 248, 76, 58, 1, 240, 14, 253, 128, 248, 36, 248, - 66, 58, 1, 240, 14, 253, 128, 248, 36, 250, 174, 58, 1, 240, 14, 253, - 128, 248, 36, 248, 99, 58, 1, 240, 14, 253, 128, 248, 36, 253, 163, 58, - 1, 253, 128, 248, 36, 137, 79, 58, 1, 253, 128, 248, 36, 137, 216, 58, 1, - 240, 14, 253, 128, 248, 36, 248, 81, 58, 1, 253, 128, 248, 36, 237, 101, - 149, 232, 65, 239, 117, 149, 1, 201, 149, 1, 248, 61, 149, 1, 253, 139, - 149, 1, 248, 77, 149, 1, 248, 50, 149, 1, 253, 152, 149, 1, 248, 57, 149, - 1, 253, 146, 149, 1, 248, 89, 149, 1, 249, 203, 149, 1, 253, 126, 149, 1, - 248, 55, 149, 1, 253, 133, 149, 1, 248, 76, 149, 1, 253, 131, 149, 1, - 253, 129, 149, 1, 248, 65, 149, 1, 253, 141, 149, 1, 248, 81, 149, 1, - 222, 149, 1, 216, 149, 1, 253, 130, 149, 1, 253, 134, 149, 1, 253, 138, - 149, 1, 248, 46, 149, 1, 248, 66, 149, 1, 253, 132, 149, 1, 219, 149, 33, - 21, 67, 149, 33, 21, 71, 149, 33, 21, 79, 149, 33, 21, 253, 164, 149, 33, - 21, 253, 149, 149, 33, 21, 253, 156, 149, 33, 21, 253, 151, 149, 33, 21, - 72, 149, 33, 21, 73, 149, 213, 1, 216, 149, 213, 1, 253, 130, 149, 213, - 1, 253, 138, 149, 3, 1, 201, 149, 3, 1, 248, 50, 149, 3, 1, 235, 61, 149, - 3, 1, 253, 126, 149, 3, 1, 253, 131, 149, 3, 1, 253, 129, 149, 3, 1, 222, - 149, 3, 1, 253, 130, 149, 3, 1, 253, 134, 149, 21, 234, 226, 149, 21, - 234, 212, 149, 21, 247, 59, 149, 21, 248, 226, 149, 233, 54, 69, 149, - 236, 156, 69, 149, 26, 242, 217, 149, 26, 127, 149, 26, 111, 149, 26, - 166, 149, 26, 177, 149, 26, 176, 149, 26, 187, 149, 26, 203, 149, 26, - 195, 149, 26, 202, 81, 255, 21, 1, 201, 81, 255, 21, 1, 253, 253, 81, - 255, 21, 1, 248, 50, 81, 255, 21, 1, 248, 90, 81, 255, 21, 1, 253, 132, - 81, 255, 21, 1, 216, 81, 255, 21, 1, 253, 126, 81, 255, 21, 1, 248, 55, - 81, 255, 21, 1, 253, 134, 81, 255, 21, 1, 253, 129, 81, 255, 21, 1, 248, - 65, 81, 255, 21, 1, 222, 81, 255, 21, 1, 253, 179, 81, 255, 21, 1, 253, - 171, 81, 255, 21, 1, 219, 81, 255, 21, 1, 253, 217, 81, 255, 21, 1, 248, - 61, 81, 255, 21, 1, 243, 130, 81, 255, 21, 1, 253, 131, 81, 255, 21, 1, - 67, 81, 255, 21, 1, 71, 81, 255, 21, 1, 253, 164, 81, 255, 21, 1, 254, - 36, 81, 255, 21, 1, 79, 81, 255, 21, 1, 253, 156, 81, 255, 21, 1, 73, 81, - 255, 21, 1, 253, 252, 81, 255, 21, 1, 72, 81, 255, 21, 1, 249, 243, 81, - 255, 21, 1, 253, 149, 81, 255, 21, 1, 239, 223, 81, 255, 21, 1, 239, 224, - 81, 255, 21, 1, 239, 225, 81, 255, 21, 1, 239, 226, 81, 255, 21, 1, 239, - 227, 116, 81, 122, 1, 200, 253, 217, 116, 81, 122, 1, 170, 253, 217, 116, - 81, 122, 1, 200, 201, 116, 81, 122, 1, 200, 253, 253, 116, 81, 122, 1, - 200, 248, 50, 116, 81, 122, 1, 170, 201, 116, 81, 122, 1, 170, 253, 253, - 116, 81, 122, 1, 170, 248, 50, 116, 81, 122, 1, 200, 248, 90, 116, 81, - 122, 1, 200, 253, 132, 116, 81, 122, 1, 200, 216, 116, 81, 122, 1, 170, - 248, 90, 116, 81, 122, 1, 170, 253, 132, 116, 81, 122, 1, 170, 216, 116, - 81, 122, 1, 200, 253, 126, 116, 81, 122, 1, 200, 248, 55, 116, 81, 122, - 1, 200, 253, 131, 116, 81, 122, 1, 170, 253, 126, 116, 81, 122, 1, 170, - 248, 55, 116, 81, 122, 1, 170, 253, 131, 116, 81, 122, 1, 200, 253, 129, - 116, 81, 122, 1, 200, 248, 65, 116, 81, 122, 1, 200, 222, 116, 81, 122, - 1, 170, 253, 129, 116, 81, 122, 1, 170, 248, 65, 116, 81, 122, 1, 170, - 222, 116, 81, 122, 1, 200, 253, 179, 116, 81, 122, 1, 200, 253, 171, 116, - 81, 122, 1, 200, 253, 134, 116, 81, 122, 1, 170, 253, 179, 116, 81, 122, - 1, 170, 253, 171, 116, 81, 122, 1, 170, 253, 134, 116, 81, 122, 1, 200, - 219, 116, 81, 122, 1, 200, 253, 133, 116, 81, 122, 1, 200, 253, 141, 116, - 81, 122, 1, 170, 219, 116, 81, 122, 1, 170, 253, 133, 116, 81, 122, 1, - 170, 253, 141, 116, 81, 122, 1, 200, 249, 99, 116, 81, 122, 1, 200, 249, - 201, 116, 81, 122, 1, 170, 249, 99, 116, 81, 122, 1, 170, 249, 201, 116, - 81, 122, 33, 21, 33, 234, 255, 116, 81, 122, 33, 21, 253, 140, 116, 81, - 122, 33, 21, 253, 142, 116, 81, 122, 33, 21, 79, 116, 81, 122, 33, 21, - 253, 148, 116, 81, 122, 33, 21, 72, 116, 81, 122, 33, 21, 253, 178, 116, - 81, 122, 33, 21, 73, 116, 81, 122, 33, 21, 254, 117, 116, 81, 122, 33, - 21, 253, 252, 116, 81, 122, 33, 21, 254, 33, 116, 81, 122, 33, 21, 249, - 232, 116, 81, 122, 33, 21, 254, 254, 116, 81, 122, 33, 21, 254, 221, 116, - 81, 122, 33, 21, 252, 56, 116, 81, 122, 33, 21, 252, 250, 116, 81, 122, - 33, 21, 254, 102, 116, 81, 122, 1, 30, 179, 116, 81, 122, 1, 30, 254, 26, - 116, 81, 122, 1, 30, 197, 116, 81, 122, 1, 30, 173, 116, 81, 122, 1, 30, - 255, 15, 116, 81, 122, 1, 30, 209, 116, 81, 122, 1, 30, 217, 116, 81, - 122, 188, 238, 200, 116, 81, 122, 188, 238, 201, 116, 81, 122, 26, 242, - 217, 116, 81, 122, 26, 127, 116, 81, 122, 26, 111, 116, 81, 122, 26, 166, - 116, 81, 122, 26, 177, 116, 81, 122, 26, 176, 116, 81, 122, 26, 187, 116, - 81, 122, 26, 203, 116, 81, 122, 26, 195, 116, 81, 122, 26, 202, 116, 81, - 122, 21, 251, 180, 116, 81, 122, 21, 246, 36, 63, 12, 233, 223, 63, 12, - 249, 116, 242, 246, 63, 12, 254, 69, 242, 246, 63, 12, 254, 81, 242, 246, - 63, 12, 249, 34, 242, 246, 63, 12, 249, 141, 242, 246, 63, 12, 235, 137, - 242, 246, 63, 12, 237, 32, 242, 246, 63, 12, 237, 31, 242, 246, 63, 12, - 235, 136, 242, 246, 63, 12, 254, 86, 242, 246, 63, 12, 237, 3, 242, 246, - 63, 12, 238, 175, 242, 246, 63, 12, 238, 174, 242, 246, 63, 12, 237, 2, - 242, 246, 63, 12, 237, 4, 242, 246, 63, 12, 235, 38, 63, 12, 249, 116, - 248, 80, 63, 12, 254, 69, 248, 80, 63, 12, 254, 81, 248, 80, 63, 12, 249, - 34, 248, 80, 63, 12, 249, 141, 248, 80, 63, 12, 235, 137, 248, 80, 63, - 12, 237, 32, 248, 80, 63, 12, 237, 31, 248, 80, 63, 12, 235, 136, 248, - 80, 63, 12, 254, 86, 248, 80, 63, 12, 237, 3, 248, 80, 63, 12, 238, 175, - 248, 80, 63, 12, 238, 174, 248, 80, 63, 12, 237, 2, 248, 80, 63, 12, 237, - 4, 248, 80, 236, 148, 1, 201, 236, 148, 1, 253, 139, 236, 148, 1, 248, - 50, 236, 148, 1, 246, 148, 236, 148, 1, 253, 129, 236, 148, 1, 253, 141, - 236, 148, 1, 222, 236, 148, 1, 249, 115, 236, 148, 1, 253, 126, 236, 148, - 1, 253, 133, 236, 148, 1, 253, 131, 236, 148, 1, 249, 123, 236, 148, 1, - 253, 152, 236, 148, 1, 253, 146, 236, 148, 1, 248, 78, 236, 148, 1, 246, - 199, 236, 148, 1, 216, 236, 148, 1, 253, 130, 236, 148, 1, 253, 134, 236, - 148, 1, 253, 171, 236, 148, 1, 253, 132, 236, 148, 1, 67, 236, 148, 1, - 219, 236, 148, 33, 21, 71, 236, 148, 33, 21, 79, 236, 148, 33, 21, 72, - 236, 148, 33, 21, 73, 236, 148, 33, 21, 253, 178, 236, 148, 237, 231, - 236, 148, 253, 165, 147, 236, 210, 8, 1, 3, 5, 67, 8, 1, 3, 5, 253, 178, - 8, 3, 1, 205, 253, 178, 8, 1, 3, 5, 240, 60, 217, 8, 1, 3, 5, 255, 18, 8, - 1, 3, 5, 209, 8, 1, 3, 5, 248, 109, 8, 1, 3, 5, 72, 8, 3, 1, 205, 248, - 35, 72, 8, 3, 1, 205, 71, 8, 1, 3, 5, 221, 8, 1, 3, 5, 255, 15, 8, 1, 3, - 5, 255, 100, 2, 108, 8, 1, 3, 5, 173, 8, 1, 3, 5, 224, 197, 8, 1, 3, 5, - 73, 8, 1, 3, 5, 248, 35, 73, 8, 3, 1, 236, 190, 73, 8, 3, 1, 236, 190, - 248, 35, 73, 8, 3, 1, 236, 190, 117, 2, 108, 8, 3, 1, 205, 253, 193, 8, - 1, 3, 5, 254, 10, 8, 3, 1, 253, 159, 137, 73, 8, 3, 1, 240, 17, 137, 73, - 8, 1, 3, 5, 223, 8, 1, 3, 5, 224, 144, 8, 1, 3, 5, 205, 144, 8, 1, 3, 5, - 214, 8, 1, 3, 5, 79, 8, 3, 1, 236, 190, 79, 8, 3, 1, 236, 190, 233, 132, - 79, 8, 3, 1, 236, 190, 205, 173, 8, 1, 3, 5, 179, 8, 1, 3, 5, 255, 16, 8, - 1, 3, 5, 255, 17, 8, 1, 3, 5, 248, 155, 8, 1, 240, 59, 236, 49, 238, 10, - 8, 1, 248, 105, 17, 1, 3, 5, 240, 10, 17, 1, 3, 5, 240, 33, 17, 1, 3, 5, - 253, 147, 17, 1, 3, 5, 248, 73, 17, 1, 3, 5, 248, 69, 32, 1, 3, 5, 254, - 3, 49, 1, 5, 67, 49, 1, 5, 253, 178, 49, 1, 5, 217, 49, 1, 5, 240, 60, - 217, 49, 1, 5, 209, 49, 1, 5, 72, 49, 1, 5, 224, 72, 49, 1, 5, 210, 49, - 1, 5, 192, 49, 1, 5, 71, 49, 1, 5, 221, 49, 1, 5, 255, 15, 49, 1, 5, 162, - 49, 1, 5, 173, 49, 1, 5, 197, 49, 1, 5, 224, 197, 49, 1, 5, 73, 49, 1, 5, - 254, 10, 49, 1, 5, 223, 49, 1, 5, 144, 49, 1, 5, 214, 49, 1, 5, 79, 49, - 1, 5, 255, 16, 49, 1, 3, 67, 49, 1, 3, 205, 67, 49, 1, 3, 240, 22, 49, 1, - 3, 205, 253, 178, 49, 1, 3, 217, 49, 1, 3, 209, 49, 1, 3, 72, 49, 1, 3, - 240, 86, 49, 1, 3, 248, 35, 72, 49, 1, 3, 205, 248, 35, 72, 49, 1, 3, - 210, 49, 1, 3, 205, 71, 49, 1, 3, 255, 15, 49, 1, 3, 173, 49, 1, 3, 248, - 108, 49, 1, 3, 73, 49, 1, 3, 248, 35, 73, 49, 1, 3, 253, 159, 137, 73, - 49, 1, 3, 240, 17, 137, 73, 49, 1, 3, 223, 49, 1, 3, 214, 49, 1, 3, 79, - 49, 1, 3, 236, 190, 79, 49, 1, 3, 205, 173, 49, 1, 3, 179, 49, 1, 3, 248, - 105, 49, 1, 3, 242, 242, 49, 1, 3, 17, 240, 10, 49, 1, 3, 240, 28, 49, 1, - 3, 17, 248, 68, 49, 1, 3, 248, 67, 8, 235, 48, 3, 1, 71, 8, 235, 48, 3, - 1, 144, 8, 235, 48, 3, 1, 79, 8, 235, 48, 3, 1, 179, 17, 235, 48, 3, 1, - 242, 242, 17, 235, 48, 3, 1, 240, 10, 17, 235, 48, 3, 1, 248, 73, 17, - 235, 48, 3, 1, 248, 68, 17, 235, 48, 3, 1, 248, 67, 8, 3, 1, 253, 252, 8, - 3, 1, 41, 2, 240, 1, 169, 8, 3, 1, 255, 103, 2, 240, 1, 169, 8, 3, 1, - 255, 112, 2, 240, 1, 169, 8, 3, 1, 255, 108, 2, 240, 1, 169, 8, 3, 1, - 255, 98, 2, 240, 1, 169, 8, 3, 1, 255, 114, 2, 240, 1, 169, 8, 3, 1, 255, - 101, 2, 240, 1, 169, 8, 3, 1, 255, 101, 2, 237, 11, 19, 240, 1, 169, 8, - 3, 1, 255, 99, 2, 240, 1, 169, 8, 3, 1, 255, 102, 2, 240, 1, 169, 8, 3, - 1, 255, 97, 2, 240, 1, 169, 8, 3, 1, 205, 210, 49, 1, 32, 253, 202, 8, 3, - 1, 239, 101, 210, 8, 3, 1, 255, 93, 2, 231, 82, 8, 3, 5, 1, 220, 2, 108, - 8, 3, 1, 248, 42, 2, 108, 8, 3, 1, 255, 114, 2, 108, 8, 3, 5, 1, 132, 2, - 108, 8, 3, 1, 238, 53, 2, 108, 8, 3, 1, 41, 2, 238, 65, 90, 8, 3, 1, 255, - 103, 2, 238, 65, 90, 8, 3, 1, 255, 112, 2, 238, 65, 90, 8, 3, 1, 255, - 104, 2, 238, 65, 90, 8, 3, 1, 255, 109, 2, 238, 65, 90, 8, 3, 1, 255, - 100, 2, 238, 65, 90, 8, 3, 1, 255, 108, 2, 238, 65, 90, 8, 3, 1, 255, 98, - 2, 238, 65, 90, 8, 3, 1, 255, 114, 2, 238, 65, 90, 8, 3, 1, 255, 101, 2, - 238, 65, 90, 8, 3, 1, 255, 99, 2, 238, 65, 90, 8, 3, 1, 254, 38, 2, 238, - 65, 90, 8, 3, 1, 255, 110, 2, 238, 65, 90, 8, 3, 1, 255, 113, 2, 238, 65, - 90, 8, 3, 1, 255, 97, 2, 238, 65, 90, 8, 3, 1, 134, 2, 235, 54, 90, 8, 3, - 1, 194, 2, 235, 54, 90, 8, 3, 1, 255, 103, 2, 248, 45, 19, 242, 226, 8, - 3, 1, 157, 2, 235, 54, 90, 8, 3, 1, 248, 35, 157, 2, 235, 54, 90, 8, 3, - 1, 224, 248, 35, 157, 2, 235, 54, 90, 8, 3, 1, 243, 73, 2, 235, 54, 90, - 8, 3, 1, 220, 2, 235, 54, 90, 8, 3, 1, 248, 35, 117, 2, 235, 54, 90, 8, - 3, 1, 254, 38, 2, 235, 54, 90, 8, 3, 1, 132, 2, 235, 54, 90, 8, 3, 1, - 253, 244, 2, 235, 54, 90, 49, 1, 3, 205, 240, 22, 49, 1, 3, 255, 18, 49, - 1, 3, 255, 105, 2, 242, 253, 49, 1, 3, 248, 109, 49, 1, 3, 224, 248, 35, - 72, 49, 1, 3, 255, 19, 49, 1, 3, 238, 70, 255, 115, 2, 108, 49, 1, 3, 84, - 210, 49, 1, 3, 205, 192, 49, 1, 3, 220, 2, 108, 49, 1, 3, 242, 237, 49, - 1, 3, 5, 71, 49, 1, 3, 5, 220, 2, 108, 49, 1, 3, 255, 115, 2, 231, 101, - 49, 1, 3, 255, 100, 2, 235, 54, 90, 49, 1, 3, 255, 100, 2, 238, 65, 90, - 49, 1, 3, 5, 162, 49, 1, 3, 255, 108, 2, 90, 49, 1, 3, 205, 255, 108, 2, - 183, 248, 117, 49, 1, 3, 255, 98, 2, 40, 90, 49, 1, 3, 255, 98, 2, 235, - 54, 90, 49, 1, 3, 5, 197, 49, 1, 3, 240, 60, 73, 49, 1, 3, 248, 68, 49, - 1, 3, 255, 99, 2, 90, 49, 1, 3, 248, 93, 49, 1, 3, 255, 102, 2, 238, 65, - 90, 49, 1, 3, 132, 125, 49, 1, 3, 236, 160, 49, 1, 3, 5, 79, 49, 1, 3, - 255, 110, 2, 90, 49, 1, 3, 205, 179, 49, 1, 3, 255, 17, 49, 1, 3, 255, - 97, 2, 235, 54, 90, 49, 1, 3, 255, 97, 2, 242, 253, 49, 1, 3, 248, 155, - 49, 1, 3, 240, 38, 50, 240, 4, 242, 245, 238, 54, 50, 240, 4, 242, 241, - 238, 54, 50, 247, 95, 46, 50, 235, 6, 69, 8, 5, 1, 134, 2, 248, 51, 46, - 8, 3, 1, 134, 2, 248, 51, 46, 8, 5, 1, 41, 2, 53, 48, 8, 3, 1, 41, 2, 53, - 48, 8, 5, 1, 41, 2, 53, 46, 8, 3, 1, 41, 2, 53, 46, 8, 5, 1, 41, 2, 248, - 41, 46, 8, 3, 1, 41, 2, 248, 41, 46, 8, 5, 1, 255, 105, 2, 238, 109, 19, - 135, 8, 3, 1, 255, 105, 2, 238, 109, 19, 135, 8, 5, 1, 255, 103, 2, 53, - 48, 8, 3, 1, 255, 103, 2, 53, 48, 8, 5, 1, 255, 103, 2, 53, 46, 8, 3, 1, - 255, 103, 2, 53, 46, 8, 5, 1, 255, 103, 2, 248, 41, 46, 8, 3, 1, 255, - 103, 2, 248, 41, 46, 8, 5, 1, 255, 103, 2, 236, 151, 8, 3, 1, 255, 103, - 2, 236, 151, 8, 5, 1, 255, 103, 2, 190, 46, 8, 3, 1, 255, 103, 2, 190, - 46, 8, 5, 1, 157, 2, 240, 42, 19, 191, 8, 3, 1, 157, 2, 240, 42, 19, 191, - 8, 5, 1, 157, 2, 240, 42, 19, 135, 8, 3, 1, 157, 2, 240, 42, 19, 135, 8, - 5, 1, 157, 2, 190, 46, 8, 3, 1, 157, 2, 190, 46, 8, 5, 1, 157, 2, 242, - 219, 46, 8, 3, 1, 157, 2, 242, 219, 46, 8, 5, 1, 157, 2, 238, 109, 19, - 239, 255, 8, 3, 1, 157, 2, 238, 109, 19, 239, 255, 8, 5, 1, 255, 112, 2, - 53, 48, 8, 3, 1, 255, 112, 2, 53, 48, 8, 5, 1, 255, 104, 2, 196, 8, 3, 1, - 255, 104, 2, 196, 8, 5, 1, 255, 106, 2, 53, 48, 8, 3, 1, 255, 106, 2, 53, - 48, 8, 5, 1, 255, 106, 2, 53, 46, 8, 3, 1, 255, 106, 2, 53, 46, 8, 5, 1, - 255, 106, 2, 175, 8, 3, 1, 255, 106, 2, 175, 8, 5, 1, 255, 106, 2, 236, - 151, 8, 3, 1, 255, 106, 2, 236, 151, 8, 5, 1, 255, 106, 2, 242, 243, 46, - 8, 3, 1, 255, 106, 2, 242, 243, 46, 8, 5, 1, 220, 2, 242, 219, 46, 8, 3, - 1, 220, 2, 242, 219, 46, 8, 5, 1, 220, 2, 235, 56, 19, 135, 8, 3, 1, 220, - 2, 235, 56, 19, 135, 8, 5, 1, 255, 109, 2, 135, 8, 3, 1, 255, 109, 2, - 135, 8, 5, 1, 255, 109, 2, 53, 46, 8, 3, 1, 255, 109, 2, 53, 46, 8, 5, 1, - 255, 109, 2, 248, 41, 46, 8, 3, 1, 255, 109, 2, 248, 41, 46, 8, 5, 1, - 255, 100, 2, 53, 46, 8, 3, 1, 255, 100, 2, 53, 46, 8, 5, 1, 255, 100, 2, - 53, 242, 230, 19, 196, 8, 3, 1, 255, 100, 2, 53, 242, 230, 19, 196, 8, 5, - 1, 255, 100, 2, 248, 41, 46, 8, 3, 1, 255, 100, 2, 248, 41, 46, 8, 5, 1, - 255, 100, 2, 190, 46, 8, 3, 1, 255, 100, 2, 190, 46, 8, 5, 1, 255, 108, - 2, 135, 8, 3, 1, 255, 108, 2, 135, 8, 5, 1, 255, 108, 2, 53, 48, 8, 3, 1, - 255, 108, 2, 53, 48, 8, 5, 1, 255, 108, 2, 53, 46, 8, 3, 1, 255, 108, 2, - 53, 46, 8, 5, 1, 255, 98, 2, 53, 48, 8, 3, 1, 255, 98, 2, 53, 48, 8, 5, - 1, 255, 98, 2, 53, 46, 8, 3, 1, 255, 98, 2, 53, 46, 8, 5, 1, 255, 98, 2, - 248, 41, 46, 8, 3, 1, 255, 98, 2, 248, 41, 46, 8, 5, 1, 255, 98, 2, 190, - 46, 8, 3, 1, 255, 98, 2, 190, 46, 8, 5, 1, 117, 2, 242, 219, 19, 135, 8, - 3, 1, 117, 2, 242, 219, 19, 135, 8, 5, 1, 117, 2, 242, 219, 19, 175, 8, - 3, 1, 117, 2, 242, 219, 19, 175, 8, 5, 1, 117, 2, 240, 42, 19, 191, 8, 3, - 1, 117, 2, 240, 42, 19, 191, 8, 5, 1, 117, 2, 240, 42, 19, 135, 8, 3, 1, - 117, 2, 240, 42, 19, 135, 8, 5, 1, 255, 114, 2, 135, 8, 3, 1, 255, 114, - 2, 135, 8, 5, 1, 255, 114, 2, 53, 48, 8, 3, 1, 255, 114, 2, 53, 48, 8, 5, - 1, 255, 101, 2, 53, 48, 8, 3, 1, 255, 101, 2, 53, 48, 8, 5, 1, 255, 101, - 2, 53, 46, 8, 3, 1, 255, 101, 2, 53, 46, 8, 5, 1, 255, 101, 2, 53, 242, - 230, 19, 196, 8, 3, 1, 255, 101, 2, 53, 242, 230, 19, 196, 8, 5, 1, 255, - 101, 2, 248, 41, 46, 8, 3, 1, 255, 101, 2, 248, 41, 46, 8, 5, 1, 255, 99, - 2, 53, 48, 8, 3, 1, 255, 99, 2, 53, 48, 8, 5, 1, 255, 99, 2, 53, 46, 8, - 3, 1, 255, 99, 2, 53, 46, 8, 5, 1, 255, 99, 2, 242, 241, 19, 53, 48, 8, - 3, 1, 255, 99, 2, 242, 241, 19, 53, 48, 8, 5, 1, 255, 99, 2, 243, 86, 19, - 53, 48, 8, 3, 1, 255, 99, 2, 243, 86, 19, 53, 48, 8, 5, 1, 255, 99, 2, - 53, 242, 230, 19, 53, 48, 8, 3, 1, 255, 99, 2, 53, 242, 230, 19, 53, 48, - 8, 5, 1, 255, 102, 2, 53, 48, 8, 3, 1, 255, 102, 2, 53, 48, 8, 5, 1, 255, - 102, 2, 53, 46, 8, 3, 1, 255, 102, 2, 53, 46, 8, 5, 1, 255, 102, 2, 248, - 41, 46, 8, 3, 1, 255, 102, 2, 248, 41, 46, 8, 5, 1, 255, 102, 2, 190, 46, - 8, 3, 1, 255, 102, 2, 190, 46, 8, 5, 1, 132, 2, 235, 56, 46, 8, 3, 1, - 132, 2, 235, 56, 46, 8, 5, 1, 132, 2, 242, 219, 46, 8, 3, 1, 132, 2, 242, - 219, 46, 8, 5, 1, 132, 2, 190, 46, 8, 3, 1, 132, 2, 190, 46, 8, 5, 1, - 132, 2, 242, 219, 19, 135, 8, 3, 1, 132, 2, 242, 219, 19, 135, 8, 5, 1, - 132, 2, 240, 42, 19, 175, 8, 3, 1, 132, 2, 240, 42, 19, 175, 8, 5, 1, - 255, 110, 2, 169, 8, 3, 1, 255, 110, 2, 169, 8, 5, 1, 255, 110, 2, 53, - 46, 8, 3, 1, 255, 110, 2, 53, 46, 8, 5, 1, 255, 111, 2, 191, 8, 3, 1, - 255, 111, 2, 191, 8, 5, 1, 255, 111, 2, 135, 8, 3, 1, 255, 111, 2, 135, - 8, 5, 1, 255, 111, 2, 175, 8, 3, 1, 255, 111, 2, 175, 8, 5, 1, 255, 111, - 2, 53, 48, 8, 3, 1, 255, 111, 2, 53, 48, 8, 5, 1, 255, 111, 2, 53, 46, 8, - 3, 1, 255, 111, 2, 53, 46, 8, 5, 1, 255, 113, 2, 53, 48, 8, 3, 1, 255, - 113, 2, 53, 48, 8, 5, 1, 255, 113, 2, 175, 8, 3, 1, 255, 113, 2, 175, 8, - 5, 1, 255, 107, 2, 53, 48, 8, 3, 1, 255, 107, 2, 53, 48, 8, 5, 1, 255, - 97, 2, 233, 48, 8, 3, 1, 255, 97, 2, 233, 48, 8, 5, 1, 255, 97, 2, 53, - 46, 8, 3, 1, 255, 97, 2, 53, 46, 8, 5, 1, 255, 97, 2, 248, 41, 46, 8, 3, - 1, 255, 97, 2, 248, 41, 46, 8, 3, 1, 255, 106, 2, 248, 41, 46, 8, 3, 1, - 255, 102, 2, 175, 8, 3, 1, 255, 111, 2, 248, 51, 48, 8, 3, 1, 255, 107, - 2, 248, 51, 48, 8, 3, 1, 134, 2, 38, 137, 242, 233, 8, 3, 1, 183, 255, - 99, 2, 53, 48, 8, 5, 1, 134, 2, 53, 46, 8, 3, 1, 134, 2, 53, 46, 8, 5, 1, - 134, 2, 248, 45, 48, 8, 3, 1, 134, 2, 248, 45, 48, 8, 5, 1, 134, 2, 190, - 19, 135, 8, 3, 1, 134, 2, 190, 19, 135, 8, 5, 1, 134, 2, 190, 19, 191, 8, - 3, 1, 134, 2, 190, 19, 191, 8, 5, 1, 134, 2, 190, 19, 248, 45, 48, 8, 3, - 1, 134, 2, 190, 19, 248, 45, 48, 8, 5, 1, 134, 2, 190, 19, 169, 8, 3, 1, - 134, 2, 190, 19, 169, 8, 5, 1, 134, 2, 190, 19, 53, 46, 8, 3, 1, 134, 2, - 190, 19, 53, 46, 8, 5, 1, 134, 2, 242, 243, 19, 135, 8, 3, 1, 134, 2, - 242, 243, 19, 135, 8, 5, 1, 134, 2, 242, 243, 19, 191, 8, 3, 1, 134, 2, - 242, 243, 19, 191, 8, 5, 1, 134, 2, 242, 243, 19, 248, 45, 48, 8, 3, 1, - 134, 2, 242, 243, 19, 248, 45, 48, 8, 5, 1, 134, 2, 242, 243, 19, 169, 8, - 3, 1, 134, 2, 242, 243, 19, 169, 8, 5, 1, 134, 2, 242, 243, 19, 53, 46, - 8, 3, 1, 134, 2, 242, 243, 19, 53, 46, 8, 5, 1, 157, 2, 53, 46, 8, 3, 1, - 157, 2, 53, 46, 8, 5, 1, 157, 2, 248, 45, 48, 8, 3, 1, 157, 2, 248, 45, - 48, 8, 5, 1, 157, 2, 169, 8, 3, 1, 157, 2, 169, 8, 5, 1, 157, 2, 190, 19, - 135, 8, 3, 1, 157, 2, 190, 19, 135, 8, 5, 1, 157, 2, 190, 19, 191, 8, 3, - 1, 157, 2, 190, 19, 191, 8, 5, 1, 157, 2, 190, 19, 248, 45, 48, 8, 3, 1, - 157, 2, 190, 19, 248, 45, 48, 8, 5, 1, 157, 2, 190, 19, 169, 8, 3, 1, - 157, 2, 190, 19, 169, 8, 5, 1, 157, 2, 190, 19, 53, 46, 8, 3, 1, 157, 2, - 190, 19, 53, 46, 8, 5, 1, 220, 2, 248, 45, 48, 8, 3, 1, 220, 2, 248, 45, - 48, 8, 5, 1, 220, 2, 53, 46, 8, 3, 1, 220, 2, 53, 46, 8, 5, 1, 117, 2, - 53, 46, 8, 3, 1, 117, 2, 53, 46, 8, 5, 1, 117, 2, 248, 45, 48, 8, 3, 1, - 117, 2, 248, 45, 48, 8, 5, 1, 117, 2, 190, 19, 135, 8, 3, 1, 117, 2, 190, - 19, 135, 8, 5, 1, 117, 2, 190, 19, 191, 8, 3, 1, 117, 2, 190, 19, 191, 8, - 5, 1, 117, 2, 190, 19, 248, 45, 48, 8, 3, 1, 117, 2, 190, 19, 248, 45, - 48, 8, 5, 1, 117, 2, 190, 19, 169, 8, 3, 1, 117, 2, 190, 19, 169, 8, 5, - 1, 117, 2, 190, 19, 53, 46, 8, 3, 1, 117, 2, 190, 19, 53, 46, 8, 5, 1, - 117, 2, 248, 60, 19, 135, 8, 3, 1, 117, 2, 248, 60, 19, 135, 8, 5, 1, - 117, 2, 248, 60, 19, 191, 8, 3, 1, 117, 2, 248, 60, 19, 191, 8, 5, 1, - 117, 2, 248, 60, 19, 248, 45, 48, 8, 3, 1, 117, 2, 248, 60, 19, 248, 45, - 48, 8, 5, 1, 117, 2, 248, 60, 19, 169, 8, 3, 1, 117, 2, 248, 60, 19, 169, - 8, 5, 1, 117, 2, 248, 60, 19, 53, 46, 8, 3, 1, 117, 2, 248, 60, 19, 53, - 46, 8, 5, 1, 132, 2, 53, 46, 8, 3, 1, 132, 2, 53, 46, 8, 5, 1, 132, 2, - 248, 45, 48, 8, 3, 1, 132, 2, 248, 45, 48, 8, 5, 1, 132, 2, 248, 60, 19, - 135, 8, 3, 1, 132, 2, 248, 60, 19, 135, 8, 5, 1, 132, 2, 248, 60, 19, - 191, 8, 3, 1, 132, 2, 248, 60, 19, 191, 8, 5, 1, 132, 2, 248, 60, 19, - 248, 45, 48, 8, 3, 1, 132, 2, 248, 60, 19, 248, 45, 48, 8, 5, 1, 132, 2, - 248, 60, 19, 169, 8, 3, 1, 132, 2, 248, 60, 19, 169, 8, 5, 1, 132, 2, - 248, 60, 19, 53, 46, 8, 3, 1, 132, 2, 248, 60, 19, 53, 46, 8, 5, 1, 255, - 107, 2, 191, 8, 3, 1, 255, 107, 2, 191, 8, 5, 1, 255, 107, 2, 53, 46, 8, - 3, 1, 255, 107, 2, 53, 46, 8, 5, 1, 255, 107, 2, 248, 45, 48, 8, 3, 1, - 255, 107, 2, 248, 45, 48, 8, 5, 1, 255, 107, 2, 169, 8, 3, 1, 255, 107, - 2, 169, 17, 3, 1, 194, 2, 240, 29, 17, 3, 1, 194, 2, 240, 25, 17, 3, 1, - 194, 2, 159, 19, 215, 17, 3, 1, 194, 2, 148, 19, 215, 17, 3, 1, 194, 2, - 159, 19, 212, 17, 3, 1, 194, 2, 148, 19, 212, 17, 3, 1, 194, 2, 159, 19, - 232, 71, 17, 3, 1, 194, 2, 148, 19, 232, 71, 17, 5, 1, 194, 2, 240, 29, - 17, 5, 1, 194, 2, 240, 25, 17, 5, 1, 194, 2, 159, 19, 215, 17, 5, 1, 194, - 2, 148, 19, 215, 17, 5, 1, 194, 2, 159, 19, 212, 17, 5, 1, 194, 2, 148, - 19, 212, 17, 5, 1, 194, 2, 159, 19, 232, 71, 17, 5, 1, 194, 2, 148, 19, - 232, 71, 17, 3, 1, 238, 57, 2, 240, 29, 17, 3, 1, 238, 57, 2, 240, 25, - 17, 3, 1, 238, 57, 2, 159, 19, 215, 17, 3, 1, 238, 57, 2, 148, 19, 215, - 17, 3, 1, 238, 57, 2, 159, 19, 212, 17, 3, 1, 238, 57, 2, 148, 19, 212, - 17, 5, 1, 238, 57, 2, 240, 29, 17, 5, 1, 238, 57, 2, 240, 25, 17, 5, 1, - 238, 57, 2, 159, 19, 215, 17, 5, 1, 238, 57, 2, 148, 19, 215, 17, 5, 1, - 238, 57, 2, 159, 19, 212, 17, 5, 1, 238, 57, 2, 148, 19, 212, 17, 3, 1, - 253, 123, 2, 240, 29, 17, 3, 1, 253, 123, 2, 240, 25, 17, 3, 1, 253, 123, - 2, 159, 19, 215, 17, 3, 1, 253, 123, 2, 148, 19, 215, 17, 3, 1, 253, 123, - 2, 159, 19, 212, 17, 3, 1, 253, 123, 2, 148, 19, 212, 17, 3, 1, 253, 123, - 2, 159, 19, 232, 71, 17, 3, 1, 253, 123, 2, 148, 19, 232, 71, 17, 5, 1, - 253, 123, 2, 240, 29, 17, 5, 1, 253, 123, 2, 240, 25, 17, 5, 1, 253, 123, - 2, 159, 19, 215, 17, 5, 1, 253, 123, 2, 148, 19, 215, 17, 5, 1, 253, 123, - 2, 159, 19, 212, 17, 5, 1, 253, 123, 2, 148, 19, 212, 17, 5, 1, 253, 123, - 2, 159, 19, 232, 71, 17, 5, 1, 253, 123, 2, 148, 19, 232, 71, 17, 3, 1, - 248, 42, 2, 240, 29, 17, 3, 1, 248, 42, 2, 240, 25, 17, 3, 1, 248, 42, 2, - 159, 19, 215, 17, 3, 1, 248, 42, 2, 148, 19, 215, 17, 3, 1, 248, 42, 2, - 159, 19, 212, 17, 3, 1, 248, 42, 2, 148, 19, 212, 17, 3, 1, 248, 42, 2, - 159, 19, 232, 71, 17, 3, 1, 248, 42, 2, 148, 19, 232, 71, 17, 5, 1, 248, - 42, 2, 240, 29, 17, 5, 1, 248, 42, 2, 240, 25, 17, 5, 1, 248, 42, 2, 159, - 19, 215, 17, 5, 1, 248, 42, 2, 148, 19, 215, 17, 5, 1, 248, 42, 2, 159, - 19, 212, 17, 5, 1, 248, 42, 2, 148, 19, 212, 17, 5, 1, 248, 42, 2, 159, - 19, 232, 71, 17, 5, 1, 248, 42, 2, 148, 19, 232, 71, 17, 3, 1, 238, 64, - 2, 240, 29, 17, 3, 1, 238, 64, 2, 240, 25, 17, 3, 1, 238, 64, 2, 159, 19, - 215, 17, 3, 1, 238, 64, 2, 148, 19, 215, 17, 3, 1, 238, 64, 2, 159, 19, - 212, 17, 3, 1, 238, 64, 2, 148, 19, 212, 17, 5, 1, 238, 64, 2, 240, 29, - 17, 5, 1, 238, 64, 2, 240, 25, 17, 5, 1, 238, 64, 2, 159, 19, 215, 17, 5, - 1, 238, 64, 2, 148, 19, 215, 17, 5, 1, 238, 64, 2, 159, 19, 212, 17, 5, - 1, 238, 64, 2, 148, 19, 212, 17, 3, 1, 238, 53, 2, 240, 29, 17, 3, 1, - 238, 53, 2, 240, 25, 17, 3, 1, 238, 53, 2, 159, 19, 215, 17, 3, 1, 238, - 53, 2, 148, 19, 215, 17, 3, 1, 238, 53, 2, 159, 19, 212, 17, 3, 1, 238, - 53, 2, 148, 19, 212, 17, 3, 1, 238, 53, 2, 159, 19, 232, 71, 17, 3, 1, - 238, 53, 2, 148, 19, 232, 71, 17, 5, 1, 238, 53, 2, 240, 25, 17, 5, 1, - 238, 53, 2, 148, 19, 215, 17, 5, 1, 238, 53, 2, 148, 19, 212, 17, 5, 1, - 238, 53, 2, 148, 19, 232, 71, 17, 3, 1, 211, 2, 240, 29, 17, 3, 1, 211, - 2, 240, 25, 17, 3, 1, 211, 2, 159, 19, 215, 17, 3, 1, 211, 2, 148, 19, - 215, 17, 3, 1, 211, 2, 159, 19, 212, 17, 3, 1, 211, 2, 148, 19, 212, 17, - 3, 1, 211, 2, 159, 19, 232, 71, 17, 3, 1, 211, 2, 148, 19, 232, 71, 17, - 5, 1, 211, 2, 240, 29, 17, 5, 1, 211, 2, 240, 25, 17, 5, 1, 211, 2, 159, - 19, 215, 17, 5, 1, 211, 2, 148, 19, 215, 17, 5, 1, 211, 2, 159, 19, 212, - 17, 5, 1, 211, 2, 148, 19, 212, 17, 5, 1, 211, 2, 159, 19, 232, 71, 17, - 5, 1, 211, 2, 148, 19, 232, 71, 17, 3, 1, 194, 2, 215, 17, 3, 1, 194, 2, - 212, 17, 3, 1, 238, 57, 2, 215, 17, 3, 1, 238, 57, 2, 212, 17, 3, 1, 253, - 123, 2, 215, 17, 3, 1, 253, 123, 2, 212, 17, 3, 1, 248, 42, 2, 215, 17, - 3, 1, 248, 42, 2, 212, 17, 3, 1, 238, 64, 2, 215, 17, 3, 1, 238, 64, 2, - 212, 17, 3, 1, 238, 53, 2, 215, 17, 3, 1, 238, 53, 2, 212, 17, 3, 1, 211, - 2, 215, 17, 3, 1, 211, 2, 212, 17, 3, 1, 194, 2, 159, 19, 231, 35, 17, 3, - 1, 194, 2, 148, 19, 231, 35, 17, 3, 1, 194, 2, 159, 19, 242, 248, 19, - 231, 35, 17, 3, 1, 194, 2, 148, 19, 242, 248, 19, 231, 35, 17, 3, 1, 194, - 2, 159, 19, 248, 79, 19, 231, 35, 17, 3, 1, 194, 2, 148, 19, 248, 79, 19, - 231, 35, 17, 3, 1, 194, 2, 159, 19, 233, 53, 19, 231, 35, 17, 3, 1, 194, - 2, 148, 19, 233, 53, 19, 231, 35, 17, 5, 1, 194, 2, 159, 19, 229, 57, 17, - 5, 1, 194, 2, 148, 19, 229, 57, 17, 5, 1, 194, 2, 159, 19, 242, 248, 19, - 229, 57, 17, 5, 1, 194, 2, 148, 19, 242, 248, 19, 229, 57, 17, 5, 1, 194, - 2, 159, 19, 248, 79, 19, 229, 57, 17, 5, 1, 194, 2, 148, 19, 248, 79, 19, - 229, 57, 17, 5, 1, 194, 2, 159, 19, 233, 53, 19, 229, 57, 17, 5, 1, 194, - 2, 148, 19, 233, 53, 19, 229, 57, 17, 3, 1, 253, 123, 2, 159, 19, 231, - 35, 17, 3, 1, 253, 123, 2, 148, 19, 231, 35, 17, 3, 1, 253, 123, 2, 159, - 19, 242, 248, 19, 231, 35, 17, 3, 1, 253, 123, 2, 148, 19, 242, 248, 19, - 231, 35, 17, 3, 1, 253, 123, 2, 159, 19, 248, 79, 19, 231, 35, 17, 3, 1, - 253, 123, 2, 148, 19, 248, 79, 19, 231, 35, 17, 3, 1, 253, 123, 2, 159, - 19, 233, 53, 19, 231, 35, 17, 3, 1, 253, 123, 2, 148, 19, 233, 53, 19, - 231, 35, 17, 5, 1, 253, 123, 2, 159, 19, 229, 57, 17, 5, 1, 253, 123, 2, - 148, 19, 229, 57, 17, 5, 1, 253, 123, 2, 159, 19, 242, 248, 19, 229, 57, - 17, 5, 1, 253, 123, 2, 148, 19, 242, 248, 19, 229, 57, 17, 5, 1, 253, - 123, 2, 159, 19, 248, 79, 19, 229, 57, 17, 5, 1, 253, 123, 2, 148, 19, - 248, 79, 19, 229, 57, 17, 5, 1, 253, 123, 2, 159, 19, 233, 53, 19, 229, - 57, 17, 5, 1, 253, 123, 2, 148, 19, 233, 53, 19, 229, 57, 17, 3, 1, 211, - 2, 159, 19, 231, 35, 17, 3, 1, 211, 2, 148, 19, 231, 35, 17, 3, 1, 211, - 2, 159, 19, 242, 248, 19, 231, 35, 17, 3, 1, 211, 2, 148, 19, 242, 248, - 19, 231, 35, 17, 3, 1, 211, 2, 159, 19, 248, 79, 19, 231, 35, 17, 3, 1, - 211, 2, 148, 19, 248, 79, 19, 231, 35, 17, 3, 1, 211, 2, 159, 19, 233, - 53, 19, 231, 35, 17, 3, 1, 211, 2, 148, 19, 233, 53, 19, 231, 35, 17, 5, - 1, 211, 2, 159, 19, 229, 57, 17, 5, 1, 211, 2, 148, 19, 229, 57, 17, 5, - 1, 211, 2, 159, 19, 242, 248, 19, 229, 57, 17, 5, 1, 211, 2, 148, 19, - 242, 248, 19, 229, 57, 17, 5, 1, 211, 2, 159, 19, 248, 79, 19, 229, 57, - 17, 5, 1, 211, 2, 148, 19, 248, 79, 19, 229, 57, 17, 5, 1, 211, 2, 159, - 19, 233, 53, 19, 229, 57, 17, 5, 1, 211, 2, 148, 19, 233, 53, 19, 229, - 57, 17, 3, 1, 194, 2, 238, 103, 17, 3, 1, 194, 2, 196, 17, 3, 1, 194, 2, - 242, 248, 19, 231, 35, 17, 3, 1, 194, 2, 231, 35, 17, 3, 1, 194, 2, 248, - 79, 19, 231, 35, 17, 3, 1, 194, 2, 232, 71, 17, 3, 1, 194, 2, 233, 53, - 19, 231, 35, 17, 5, 1, 194, 2, 238, 103, 17, 5, 1, 194, 2, 196, 17, 5, 1, - 194, 2, 215, 17, 5, 1, 194, 2, 212, 17, 5, 1, 194, 2, 229, 57, 17, 236, - 229, 17, 229, 57, 17, 240, 29, 17, 232, 71, 17, 235, 59, 19, 232, 71, 17, - 3, 1, 253, 123, 2, 242, 248, 19, 231, 35, 17, 3, 1, 253, 123, 2, 231, 35, - 17, 3, 1, 253, 123, 2, 248, 79, 19, 231, 35, 17, 3, 1, 253, 123, 2, 232, - 71, 17, 3, 1, 253, 123, 2, 233, 53, 19, 231, 35, 17, 5, 1, 238, 57, 2, - 215, 17, 5, 1, 238, 57, 2, 212, 17, 5, 1, 253, 123, 2, 215, 17, 5, 1, - 253, 123, 2, 212, 17, 5, 1, 253, 123, 2, 229, 57, 17, 159, 19, 215, 17, - 159, 19, 212, 17, 159, 19, 232, 71, 17, 3, 1, 248, 42, 2, 238, 103, 17, - 3, 1, 248, 42, 2, 196, 17, 3, 1, 248, 42, 2, 235, 59, 19, 215, 17, 3, 1, - 248, 42, 2, 235, 59, 19, 212, 17, 3, 1, 248, 42, 2, 232, 71, 17, 3, 1, - 248, 42, 2, 235, 59, 19, 232, 71, 17, 5, 1, 248, 42, 2, 238, 103, 17, 5, - 1, 248, 42, 2, 196, 17, 5, 1, 248, 42, 2, 215, 17, 5, 1, 248, 42, 2, 212, - 17, 148, 19, 215, 17, 148, 19, 212, 17, 148, 19, 232, 71, 17, 3, 1, 238, - 53, 2, 238, 103, 17, 3, 1, 238, 53, 2, 196, 17, 3, 1, 238, 53, 2, 235, - 59, 19, 215, 17, 3, 1, 238, 53, 2, 235, 59, 19, 212, 17, 3, 1, 253, 218, - 2, 240, 29, 17, 3, 1, 253, 218, 2, 240, 25, 17, 3, 1, 238, 53, 2, 232, - 71, 17, 3, 1, 238, 53, 2, 235, 59, 19, 232, 71, 17, 5, 1, 238, 53, 2, - 238, 103, 17, 5, 1, 238, 53, 2, 196, 17, 5, 1, 238, 53, 2, 215, 17, 5, 1, - 238, 53, 2, 212, 17, 5, 1, 253, 218, 2, 240, 25, 17, 235, 59, 19, 215, - 17, 235, 59, 19, 212, 17, 215, 17, 3, 1, 211, 2, 242, 248, 19, 231, 35, - 17, 3, 1, 211, 2, 231, 35, 17, 3, 1, 211, 2, 248, 79, 19, 231, 35, 17, 3, - 1, 211, 2, 232, 71, 17, 3, 1, 211, 2, 233, 53, 19, 231, 35, 17, 5, 1, - 238, 64, 2, 215, 17, 5, 1, 238, 64, 2, 212, 17, 5, 1, 211, 2, 215, 17, 5, - 1, 211, 2, 212, 17, 5, 1, 211, 2, 229, 57, 17, 212, 17, 240, 25, 255, 23, - 243, 43, 255, 28, 243, 43, 255, 23, 240, 15, 255, 28, 240, 15, 233, 42, - 240, 15, 233, 203, 240, 15, 235, 1, 240, 15, 240, 174, 240, 15, 233, 51, - 240, 15, 252, 219, 240, 15, 251, 46, 240, 15, 248, 145, 243, 81, 240, 15, - 248, 145, 243, 81, 233, 219, 248, 145, 243, 81, 238, 140, 231, 96, 69, - 231, 99, 69, 238, 93, 232, 188, 238, 93, 240, 174, 242, 235, 255, 23, - 242, 235, 255, 28, 242, 235, 163, 125, 45, 59, 242, 224, 45, 170, 242, - 224, 40, 240, 12, 235, 51, 69, 38, 240, 12, 235, 51, 69, 240, 12, 243, - 218, 235, 51, 69, 240, 12, 229, 62, 235, 51, 69, 40, 45, 235, 51, 69, 38, - 45, 235, 51, 69, 45, 243, 218, 235, 51, 69, 45, 229, 62, 235, 51, 69, - 238, 173, 45, 238, 173, 238, 69, 234, 43, 238, 69, 253, 125, 53, 238, - 143, 171, 53, 238, 143, 163, 235, 69, 233, 207, 240, 209, 248, 41, 234, - 6, 235, 91, 234, 6, 231, 96, 234, 52, 231, 99, 234, 52, 254, 227, 233, - 134, 233, 202, 231, 96, 235, 131, 231, 99, 235, 131, 241, 252, 236, 233, - 240, 15, 254, 68, 246, 85, 52, 254, 68, 253, 219, 236, 193, 52, 240, 57, - 45, 240, 57, 240, 3, 240, 57, 224, 240, 57, 224, 45, 240, 57, 224, 240, - 3, 240, 57, 240, 130, 240, 12, 231, 87, 185, 235, 51, 69, 240, 12, 231, - 36, 185, 235, 51, 69, 236, 90, 69, 45, 233, 54, 69, 232, 179, 235, 74, - 235, 158, 99, 248, 139, 243, 25, 235, 128, 240, 209, 235, 175, 241, 177, - 238, 69, 236, 155, 240, 37, 40, 31, 238, 52, 2, 240, 214, 38, 31, 238, - 52, 2, 240, 214, 45, 236, 156, 69, 236, 156, 233, 54, 69, 233, 54, 236, - 156, 69, 238, 30, 21, 254, 60, 224, 238, 208, 52, 86, 139, 238, 69, 86, - 77, 238, 69, 170, 235, 52, 224, 234, 14, 245, 24, 253, 176, 171, 235, - 174, 238, 243, 234, 0, 234, 20, 242, 250, 52, 247, 129, 242, 235, 236, - 145, 235, 158, 241, 111, 233, 51, 69, 204, 53, 232, 75, 235, 71, 240, 57, - 248, 58, 53, 232, 75, 248, 48, 53, 232, 75, 171, 53, 232, 75, 248, 58, - 53, 69, 240, 4, 240, 34, 236, 131, 59, 248, 58, 243, 5, 240, 19, 10, 240, - 15, 248, 143, 238, 140, 237, 163, 232, 116, 235, 129, 240, 123, 235, 129, - 234, 6, 238, 190, 235, 152, 235, 145, 236, 243, 235, 152, 235, 145, 238, - 190, 11, 248, 38, 237, 39, 236, 243, 11, 248, 38, 237, 39, 237, 216, 26, - 238, 215, 239, 146, 26, 238, 215, 233, 49, 242, 217, 233, 49, 8, 3, 1, - 71, 233, 49, 177, 233, 49, 176, 233, 49, 187, 233, 49, 203, 233, 49, 195, - 233, 49, 202, 233, 49, 248, 49, 52, 233, 49, 240, 68, 233, 49, 240, 7, - 52, 233, 49, 40, 232, 74, 233, 49, 38, 232, 74, 233, 49, 8, 3, 1, 197, - 235, 48, 242, 217, 235, 48, 127, 235, 48, 111, 235, 48, 166, 235, 48, - 177, 235, 48, 176, 235, 48, 187, 235, 48, 203, 235, 48, 195, 235, 48, - 202, 235, 48, 248, 49, 52, 235, 48, 240, 68, 235, 48, 240, 7, 52, 235, - 48, 40, 232, 74, 235, 48, 38, 232, 74, 8, 235, 48, 3, 1, 67, 8, 235, 48, - 3, 1, 72, 8, 235, 48, 3, 1, 73, 8, 235, 48, 3, 1, 206, 8, 235, 48, 3, 1, - 240, 86, 231, 137, 52, 243, 14, 52, 237, 96, 52, 241, 117, 245, 92, 52, - 251, 199, 52, 251, 234, 52, 246, 103, 52, 242, 58, 52, 243, 44, 52, 254, - 131, 52, 116, 242, 104, 52, 250, 203, 52, 250, 231, 52, 254, 185, 52, - 242, 162, 52, 238, 180, 52, 241, 127, 246, 241, 52, 252, 63, 52, 239, 86, - 52, 238, 254, 52, 239, 94, 52, 250, 153, 52, 50, 40, 186, 48, 50, 38, - 186, 48, 50, 183, 59, 248, 41, 236, 161, 50, 242, 215, 59, 248, 41, 236, - 161, 50, 231, 86, 65, 48, 50, 235, 62, 65, 48, 50, 40, 65, 48, 50, 38, - 65, 48, 50, 248, 51, 236, 161, 50, 235, 62, 248, 51, 236, 161, 50, 231, - 86, 248, 51, 236, 161, 50, 204, 181, 48, 50, 248, 58, 181, 48, 50, 235, - 73, 238, 51, 50, 235, 73, 238, 59, 50, 235, 73, 236, 164, 50, 235, 73, - 218, 234, 25, 50, 40, 38, 65, 48, 50, 235, 73, 239, 182, 50, 235, 73, - 239, 107, 50, 235, 73, 242, 172, 236, 150, 235, 46, 50, 238, 75, 238, 83, - 236, 161, 50, 45, 59, 240, 5, 236, 161, 50, 238, 245, 91, 50, 240, 3, - 236, 136, 50, 248, 98, 240, 109, 48, 50, 139, 65, 236, 161, 50, 183, 45, - 238, 83, 236, 161, 238, 158, 253, 174, 235, 160, 153, 253, 145, 238, 18, - 138, 5, 255, 18, 240, 112, 237, 85, 240, 46, 248, 41, 91, 250, 145, 253, - 174, 250, 142, 252, 251, 245, 87, 235, 118, 238, 3, 240, 112, 233, 200, - 84, 3, 210, 84, 5, 192, 232, 80, 5, 192, 138, 5, 192, 240, 208, 235, 118, - 240, 208, 237, 90, 248, 59, 171, 253, 147, 84, 5, 71, 232, 80, 5, 71, 84, - 5, 162, 84, 3, 162, 255, 100, 41, 253, 144, 91, 138, 5, 197, 242, 27, 52, - 243, 1, 236, 88, 234, 105, 84, 5, 223, 138, 5, 223, 138, 5, 255, 20, 84, - 5, 144, 232, 80, 5, 144, 138, 5, 144, 232, 198, 247, 136, 235, 141, 239, - 189, 69, 235, 113, 52, 247, 157, 158, 52, 236, 138, 138, 5, 255, 17, 246, - 235, 52, 254, 119, 52, 236, 145, 254, 119, 52, 232, 80, 5, 255, 17, 205, - 17, 3, 1, 242, 237, 241, 198, 52, 237, 60, 52, 84, 5, 217, 232, 80, 5, - 255, 18, 236, 14, 91, 84, 3, 72, 84, 5, 72, 84, 5, 255, 19, 205, 5, 255, - 19, 84, 5, 173, 84, 3, 73, 83, 91, 254, 53, 91, 243, 184, 91, 243, 162, - 91, 233, 211, 239, 199, 238, 120, 5, 255, 20, 236, 17, 52, 138, 3, 253, - 147, 138, 3, 240, 10, 138, 5, 240, 10, 138, 5, 253, 147, 138, 242, 238, - 234, 65, 205, 27, 5, 210, 205, 27, 5, 162, 224, 27, 5, 162, 205, 27, 5, - 255, 14, 138, 24, 5, 209, 138, 24, 3, 209, 138, 24, 3, 72, 138, 24, 3, - 71, 138, 24, 3, 221, 237, 244, 242, 224, 205, 234, 17, 254, 68, 52, 240, - 30, 236, 155, 253, 125, 242, 148, 240, 30, 236, 155, 171, 239, 220, 240, - 30, 236, 155, 253, 125, 241, 107, 240, 30, 236, 155, 171, 238, 138, 240, - 30, 236, 155, 204, 238, 138, 240, 30, 236, 155, 248, 58, 238, 138, 240, - 30, 236, 155, 253, 125, 242, 113, 240, 30, 236, 155, 248, 48, 239, 197, - 240, 30, 236, 155, 253, 125, 239, 55, 240, 30, 236, 155, 204, 236, 224, - 240, 30, 236, 155, 248, 48, 236, 224, 240, 30, 236, 155, 243, 31, 236, - 224, 236, 155, 235, 79, 127, 242, 218, 178, 127, 242, 218, 178, 111, 242, - 218, 178, 166, 242, 218, 178, 177, 242, 218, 178, 176, 242, 218, 178, - 187, 242, 218, 178, 203, 242, 218, 178, 195, 242, 218, 178, 202, 242, - 218, 178, 248, 53, 242, 218, 178, 238, 91, 242, 218, 178, 238, 97, 242, - 218, 178, 240, 50, 242, 218, 178, 253, 125, 236, 149, 242, 218, 178, 248, - 48, 236, 149, 242, 218, 178, 253, 125, 235, 49, 3, 242, 218, 178, 127, 3, - 242, 218, 178, 111, 3, 242, 218, 178, 166, 3, 242, 218, 178, 177, 3, 242, - 218, 178, 176, 3, 242, 218, 178, 187, 3, 242, 218, 178, 203, 3, 242, 218, - 178, 195, 3, 242, 218, 178, 202, 3, 242, 218, 178, 248, 53, 3, 242, 218, - 178, 238, 91, 3, 242, 218, 178, 238, 97, 3, 242, 218, 178, 240, 50, 3, - 242, 218, 178, 253, 125, 236, 149, 3, 242, 218, 178, 248, 48, 236, 149, - 3, 242, 218, 178, 253, 125, 235, 49, 242, 218, 178, 253, 125, 236, 193, - 255, 105, 209, 242, 218, 178, 248, 48, 235, 49, 242, 218, 178, 253, 219, - 235, 49, 242, 218, 178, 224, 253, 125, 236, 149, 139, 56, 226, 226, 56, - 77, 56, 235, 45, 56, 40, 38, 56, 88, 92, 56, 242, 223, 248, 56, 56, 242, - 223, 248, 43, 56, 242, 228, 248, 43, 56, 242, 228, 248, 56, 56, 139, 65, - 2, 108, 77, 65, 2, 108, 139, 248, 141, 56, 77, 248, 141, 56, 139, 171, - 240, 115, 56, 226, 226, 171, 240, 115, 56, 77, 171, 240, 115, 56, 235, - 45, 171, 240, 115, 56, 139, 65, 2, 242, 226, 77, 65, 2, 242, 226, 139, - 65, 248, 44, 125, 226, 226, 65, 248, 44, 125, 77, 65, 248, 44, 125, 235, - 45, 65, 248, 44, 125, 88, 92, 65, 2, 244, 192, 139, 65, 2, 90, 77, 65, 2, - 90, 139, 65, 2, 243, 105, 77, 65, 2, 243, 105, 40, 38, 248, 141, 56, 40, - 38, 65, 2, 108, 235, 45, 240, 126, 56, 226, 226, 65, 2, 253, 241, 234, - 18, 226, 226, 65, 2, 253, 241, 233, 63, 235, 45, 65, 2, 253, 241, 234, - 18, 235, 45, 65, 2, 253, 241, 233, 63, 77, 65, 2, 240, 31, 234, 9, 235, - 45, 65, 2, 240, 31, 234, 18, 231, 86, 253, 159, 234, 64, 56, 235, 62, - 253, 159, 234, 64, 56, 242, 223, 248, 56, 65, 153, 183, 125, 139, 65, - 153, 253, 144, 248, 59, 77, 65, 153, 125, 231, 86, 248, 35, 218, 56, 235, - 62, 248, 35, 218, 56, 139, 186, 2, 154, 236, 206, 139, 186, 2, 154, 234, - 9, 226, 226, 186, 2, 154, 233, 63, 226, 226, 186, 2, 154, 234, 18, 77, - 186, 2, 154, 236, 206, 77, 186, 2, 154, 234, 9, 235, 45, 186, 2, 154, - 233, 63, 235, 45, 186, 2, 154, 234, 18, 77, 65, 248, 59, 139, 56, 226, - 226, 65, 139, 147, 235, 45, 56, 139, 65, 248, 59, 77, 56, 139, 240, 117, - 238, 104, 226, 226, 240, 117, 238, 104, 77, 240, 117, 238, 104, 235, 45, - 240, 117, 238, 104, 139, 186, 248, 59, 77, 236, 175, 77, 186, 248, 59, - 139, 236, 175, 139, 45, 65, 2, 108, 40, 38, 45, 65, 2, 108, 77, 45, 65, - 2, 108, 139, 45, 56, 226, 226, 45, 56, 77, 45, 56, 235, 45, 45, 56, 40, - 38, 45, 56, 88, 92, 45, 56, 242, 223, 248, 56, 45, 56, 242, 223, 248, 43, - 45, 56, 242, 228, 248, 43, 45, 56, 242, 228, 248, 56, 45, 56, 139, 240, - 3, 56, 77, 240, 3, 56, 139, 236, 240, 56, 77, 236, 240, 56, 226, 226, 65, - 2, 45, 108, 235, 45, 65, 2, 45, 108, 139, 240, 55, 56, 226, 226, 240, 55, - 56, 77, 240, 55, 56, 235, 45, 240, 55, 56, 139, 65, 153, 125, 77, 65, - 153, 125, 139, 64, 56, 226, 226, 64, 56, 77, 64, 56, 235, 45, 64, 56, - 226, 226, 64, 65, 248, 44, 125, 226, 226, 64, 65, 255, 34, 235, 133, 226, - 226, 64, 65, 255, 34, 237, 28, 2, 163, 125, 226, 226, 64, 65, 255, 34, - 237, 28, 2, 59, 125, 226, 226, 64, 45, 56, 226, 226, 64, 45, 65, 255, 34, - 235, 133, 77, 64, 65, 248, 44, 247, 192, 242, 223, 248, 56, 65, 153, 238, - 67, 242, 228, 248, 43, 65, 153, 238, 67, 88, 92, 64, 56, 38, 65, 2, 3, - 238, 51, 235, 45, 65, 139, 147, 226, 226, 56, 204, 77, 238, 104, 139, 65, - 2, 59, 108, 77, 65, 2, 59, 108, 40, 38, 65, 2, 59, 108, 139, 65, 2, 45, - 59, 108, 77, 65, 2, 45, 59, 108, 40, 38, 65, 2, 45, 59, 108, 139, 233, - 72, 56, 77, 233, 72, 56, 40, 38, 233, 72, 56, 28, 249, 26, 233, 124, 238, - 100, 231, 90, 244, 29, 239, 58, 244, 29, 248, 86, 161, 241, 100, 243, 15, - 249, 160, 234, 205, 240, 79, 238, 68, 253, 174, 161, 255, 68, 238, 68, - 253, 174, 3, 238, 68, 253, 174, 236, 180, 255, 24, 238, 145, 248, 86, - 161, 238, 131, 255, 24, 238, 145, 3, 236, 180, 255, 24, 238, 145, 253, - 165, 147, 242, 66, 242, 238, 236, 170, 242, 238, 234, 50, 242, 238, 234, - 65, 242, 250, 52, 231, 148, 52, 53, 243, 12, 236, 196, 240, 37, 254, 30, - 240, 68, 236, 219, 235, 47, 248, 51, 235, 47, 241, 41, 235, 47, 31, 243, - 119, 250, 169, 243, 119, 240, 137, 243, 119, 232, 199, 87, 235, 101, 38, - 240, 54, 240, 54, 236, 168, 240, 54, 235, 109, 240, 54, 237, 112, 248, - 86, 161, 238, 177, 236, 200, 87, 161, 236, 200, 87, 238, 56, 248, 91, - 238, 56, 253, 227, 231, 88, 240, 58, 235, 60, 45, 235, 60, 240, 3, 235, - 60, 238, 132, 235, 60, 239, 210, 235, 60, 242, 180, 235, 60, 235, 62, - 235, 60, 235, 62, 238, 132, 235, 60, 231, 86, 238, 132, 235, 60, 235, 33, - 237, 74, 242, 78, 233, 96, 53, 240, 68, 239, 57, 236, 31, 233, 96, 233, - 206, 242, 219, 235, 47, 224, 169, 236, 145, 251, 187, 193, 252, 178, 243, - 80, 242, 186, 236, 170, 161, 169, 242, 250, 169, 231, 45, 95, 87, 161, - 231, 45, 95, 87, 231, 89, 95, 87, 231, 89, 253, 230, 161, 236, 244, 95, - 87, 238, 79, 231, 89, 253, 192, 236, 244, 95, 87, 240, 40, 95, 87, 161, - 240, 40, 95, 87, 240, 40, 95, 128, 95, 87, 240, 3, 169, 254, 51, 95, 87, - 234, 5, 87, 231, 105, 234, 5, 87, 234, 111, 236, 248, 234, 92, 253, 145, - 241, 216, 231, 105, 95, 87, 231, 89, 95, 153, 128, 253, 145, 243, 11, - 253, 174, 243, 11, 147, 128, 231, 89, 95, 87, 243, 14, 238, 113, 240, 7, - 240, 24, 248, 51, 255, 22, 95, 87, 248, 51, 95, 87, 233, 128, 87, 234, - 187, 233, 198, 87, 248, 135, 238, 113, 243, 92, 95, 87, 95, 153, 255, 25, - 233, 130, 236, 168, 254, 82, 234, 243, 95, 87, 161, 95, 87, 235, 89, 87, - 161, 235, 89, 87, 238, 17, 234, 5, 87, 235, 44, 128, 95, 87, 232, 68, - 128, 95, 87, 235, 44, 248, 59, 95, 87, 232, 68, 248, 59, 95, 87, 235, 44, - 253, 230, 161, 95, 87, 232, 68, 253, 230, 161, 95, 87, 248, 168, 234, 3, - 248, 168, 231, 85, 236, 248, 161, 234, 5, 87, 161, 234, 3, 161, 231, 85, - 238, 79, 235, 44, 253, 192, 95, 87, 238, 79, 232, 68, 253, 192, 95, 87, - 235, 44, 128, 234, 5, 87, 232, 68, 128, 234, 5, 87, 238, 79, 235, 44, - 253, 192, 234, 5, 87, 238, 79, 232, 68, 253, 192, 234, 5, 87, 235, 44, - 128, 231, 85, 232, 68, 128, 234, 3, 238, 79, 235, 44, 253, 192, 231, 85, - 238, 79, 232, 68, 253, 192, 234, 3, 235, 107, 235, 111, 236, 176, 128, - 95, 87, 236, 178, 128, 95, 87, 236, 176, 128, 234, 5, 87, 236, 178, 128, - 234, 5, 87, 248, 86, 161, 237, 240, 248, 86, 161, 238, 19, 240, 26, 253, - 174, 236, 154, 253, 174, 161, 134, 240, 26, 253, 174, 161, 134, 236, 154, - 253, 174, 240, 26, 147, 128, 95, 87, 236, 154, 147, 128, 95, 87, 238, 79, - 134, 240, 26, 147, 253, 192, 95, 87, 238, 79, 134, 236, 154, 147, 253, - 192, 95, 87, 240, 26, 147, 2, 161, 95, 87, 236, 154, 147, 2, 161, 95, 87, - 236, 62, 237, 24, 231, 26, 237, 24, 240, 58, 31, 243, 11, 253, 174, 31, - 236, 209, 253, 174, 31, 243, 11, 147, 128, 95, 87, 31, 236, 209, 147, - 128, 95, 87, 31, 249, 38, 31, 249, 43, 29, 243, 12, 29, 240, 68, 29, 240, - 123, 29, 236, 196, 240, 37, 29, 53, 235, 47, 29, 248, 51, 235, 47, 29, - 236, 219, 235, 47, 29, 238, 113, 29, 242, 235, 238, 84, 243, 12, 238, 84, - 240, 68, 238, 84, 240, 123, 238, 84, 53, 235, 47, 38, 242, 234, 40, 242, - 234, 92, 242, 234, 88, 242, 234, 234, 94, 239, 139, 244, 38, 239, 78, - 240, 3, 59, 253, 144, 38, 234, 15, 45, 59, 253, 144, 45, 38, 234, 15, - 248, 86, 161, 242, 67, 161, 244, 38, 248, 86, 161, 241, 114, 238, 203, - 45, 59, 253, 144, 45, 38, 234, 15, 236, 176, 244, 44, 235, 92, 236, 178, - 244, 44, 235, 92, 240, 52, 236, 203, 253, 174, 236, 180, 255, 24, 240, - 52, 235, 144, 240, 52, 236, 203, 147, 128, 95, 87, 236, 180, 255, 24, - 240, 52, 236, 203, 128, 95, 87, 236, 209, 253, 174, 243, 11, 253, 174, - 235, 103, 236, 35, 235, 193, 239, 130, 232, 178, 253, 49, 246, 104, 252, - 34, 38, 185, 2, 248, 113, 38, 235, 46, 242, 238, 238, 56, 248, 91, 242, - 238, 238, 56, 253, 227, 242, 238, 231, 88, 242, 238, 240, 58, 238, 76, - 235, 47, 53, 235, 47, 248, 135, 235, 47, 236, 196, 240, 123, 238, 168, - 40, 240, 52, 240, 173, 234, 21, 236, 170, 38, 240, 52, 240, 173, 234, 21, - 236, 170, 40, 234, 21, 236, 170, 38, 234, 21, 236, 170, 224, 242, 219, - 238, 113, 242, 225, 238, 56, 253, 227, 242, 225, 238, 56, 248, 91, 45, - 238, 87, 45, 235, 84, 45, 231, 88, 45, 240, 58, 234, 234, 95, 19, 236, - 200, 87, 235, 44, 2, 248, 40, 232, 68, 2, 248, 40, 249, 194, 248, 168, - 234, 3, 249, 194, 248, 168, 231, 85, 235, 44, 95, 153, 128, 231, 85, 232, - 68, 95, 153, 128, 234, 3, 95, 153, 128, 234, 3, 95, 153, 128, 231, 85, - 95, 153, 128, 235, 107, 95, 153, 128, 235, 111, 248, 86, 161, 239, 165, - 128, 240, 32, 248, 86, 161, 239, 209, 128, 240, 32, 161, 31, 243, 11, - 147, 128, 95, 87, 161, 31, 236, 209, 147, 128, 95, 87, 31, 243, 11, 147, - 128, 161, 95, 87, 31, 236, 209, 147, 128, 161, 95, 87, 235, 44, 253, 230, - 161, 234, 5, 87, 232, 68, 253, 230, 161, 234, 5, 87, 236, 176, 253, 230, - 161, 234, 5, 87, 236, 178, 253, 230, 161, 234, 5, 87, 161, 240, 52, 236, - 203, 253, 174, 248, 86, 161, 238, 131, 255, 24, 240, 52, 235, 144, 161, - 240, 52, 236, 203, 147, 128, 95, 87, 248, 86, 161, 238, 131, 255, 24, - 240, 52, 236, 203, 128, 240, 32, 59, 235, 69, 239, 136, 163, 235, 69, 88, - 38, 236, 159, 235, 69, 92, 38, 236, 159, 235, 69, 238, 68, 147, 2, 183, - 163, 108, 238, 68, 147, 2, 59, 253, 144, 255, 31, 253, 165, 147, 163, - 108, 3, 238, 68, 147, 2, 59, 253, 144, 255, 31, 253, 165, 147, 163, 108, - 238, 68, 147, 2, 53, 48, 238, 68, 147, 2, 236, 163, 3, 238, 68, 147, 2, - 236, 163, 238, 68, 147, 2, 235, 50, 238, 68, 147, 2, 171, 163, 237, 45, - 236, 180, 2, 183, 163, 108, 236, 180, 2, 59, 253, 144, 255, 31, 253, 165, - 147, 163, 108, 3, 236, 180, 2, 59, 253, 144, 255, 31, 253, 165, 147, 163, - 108, 236, 180, 2, 236, 163, 3, 236, 180, 2, 236, 163, 255, 97, 126, 254, - 52, 233, 217, 237, 105, 52, 237, 149, 56, 241, 168, 88, 234, 7, 92, 234, - 7, 233, 226, 232, 193, 248, 103, 242, 224, 40, 236, 251, 38, 236, 251, - 40, 240, 175, 38, 240, 175, 240, 17, 38, 243, 55, 240, 17, 40, 243, 55, - 253, 159, 38, 243, 55, 253, 159, 40, 243, 55, 224, 161, 52, 31, 236, 231, - 248, 113, 238, 4, 239, 187, 235, 113, 236, 87, 237, 239, 234, 30, 238, - 42, 238, 59, 243, 245, 147, 237, 181, 52, 205, 161, 52, 240, 252, 234, - 39, 253, 159, 40, 238, 67, 253, 159, 38, 238, 67, 240, 17, 40, 238, 67, - 240, 17, 38, 238, 67, 253, 159, 137, 235, 60, 240, 17, 137, 235, 60, 241, - 118, 242, 118, 88, 235, 76, 239, 7, 171, 163, 244, 191, 242, 42, 251, - 145, 243, 169, 153, 253, 145, 225, 255, 113, 255, 22, 134, 236, 89, 248, - 92, 236, 45, 231, 87, 185, 104, 231, 36, 185, 104, 243, 169, 153, 253, - 145, 242, 220, 239, 6, 242, 233, 231, 121, 254, 51, 229, 64, 236, 125, - 247, 156, 239, 175, 235, 205, 239, 154, 239, 31, 242, 141, 242, 116, 232, - 124, 232, 125, 141, 142, 12, 239, 96, 141, 142, 12, 242, 127, 243, 43, - 141, 142, 12, 248, 62, 240, 32, 141, 142, 12, 248, 62, 238, 177, 141, - 142, 12, 248, 62, 236, 164, 141, 142, 12, 248, 62, 248, 115, 141, 142, - 12, 248, 62, 238, 51, 141, 142, 12, 218, 240, 103, 141, 142, 12, 218, - 248, 115, 141, 142, 12, 247, 94, 125, 141, 142, 12, 235, 177, 125, 141, - 142, 12, 248, 62, 240, 37, 141, 142, 12, 248, 62, 234, 25, 141, 142, 12, - 248, 62, 234, 3, 141, 142, 12, 248, 62, 231, 85, 141, 142, 12, 139, 243, - 79, 141, 142, 12, 77, 243, 79, 141, 142, 12, 248, 62, 139, 56, 141, 142, - 12, 248, 62, 77, 56, 141, 142, 12, 218, 234, 25, 141, 142, 12, 92, 248, - 84, 235, 50, 141, 142, 12, 243, 92, 240, 103, 141, 142, 12, 248, 62, 92, - 240, 130, 141, 142, 12, 248, 62, 240, 28, 141, 142, 12, 92, 248, 84, 248, - 115, 141, 142, 12, 226, 226, 243, 79, 141, 142, 12, 248, 62, 226, 226, - 56, 141, 142, 12, 88, 248, 84, 236, 163, 141, 142, 12, 254, 56, 240, 103, - 141, 142, 12, 248, 62, 88, 240, 130, 141, 142, 12, 248, 62, 250, 189, - 141, 142, 12, 88, 248, 84, 248, 115, 141, 142, 12, 235, 45, 243, 79, 141, - 142, 12, 248, 62, 235, 45, 56, 141, 142, 12, 243, 249, 235, 50, 141, 142, - 12, 243, 92, 235, 50, 141, 142, 12, 238, 76, 235, 50, 141, 142, 12, 254, - 104, 235, 50, 141, 142, 12, 218, 235, 50, 141, 142, 12, 88, 248, 247, - 248, 115, 141, 142, 12, 243, 249, 243, 43, 141, 142, 12, 218, 242, 229, - 141, 142, 12, 248, 62, 240, 24, 141, 142, 12, 88, 248, 84, 175, 141, 142, - 12, 254, 56, 175, 141, 142, 12, 248, 135, 175, 141, 142, 12, 254, 104, - 175, 141, 142, 12, 218, 175, 141, 142, 12, 92, 248, 247, 240, 103, 141, - 142, 12, 40, 248, 247, 240, 103, 141, 142, 12, 242, 219, 175, 141, 142, - 12, 232, 68, 175, 141, 142, 12, 242, 244, 125, 141, 142, 12, 254, 56, - 169, 141, 142, 12, 242, 207, 141, 142, 12, 247, 122, 169, 141, 142, 12, - 236, 99, 235, 50, 141, 142, 12, 248, 62, 161, 240, 32, 141, 142, 12, 248, - 62, 236, 85, 141, 142, 12, 92, 243, 25, 169, 141, 142, 12, 88, 243, 25, - 169, 141, 142, 12, 242, 237, 141, 142, 12, 248, 73, 141, 142, 12, 240, - 20, 141, 142, 12, 194, 235, 50, 141, 142, 12, 238, 57, 235, 50, 141, 142, - 12, 248, 42, 235, 50, 141, 142, 12, 211, 235, 50, 141, 142, 12, 240, 22, - 161, 243, 53, 69, 38, 185, 2, 235, 45, 240, 126, 56, 235, 0, 248, 35, - 248, 92, 250, 114, 91, 59, 248, 41, 2, 240, 1, 248, 40, 235, 128, 91, - 234, 104, 235, 157, 91, 231, 128, 235, 157, 91, 237, 8, 91, 233, 126, 91, - 64, 31, 2, 240, 46, 59, 242, 224, 245, 82, 91, 233, 68, 254, 105, 91, - 251, 51, 91, 29, 163, 253, 144, 2, 242, 23, 29, 236, 152, 242, 236, 240, - 129, 218, 2, 236, 64, 56, 252, 252, 91, 234, 224, 91, 234, 201, 91, 226, - 236, 241, 143, 91, 226, 236, 241, 209, 91, 226, 227, 91, 226, 230, 91, - 240, 169, 239, 33, 12, 248, 38, 111, 227, 7, 91, 141, 142, 12, 243, 43, - 238, 176, 235, 95, 254, 105, 91, 237, 242, 243, 240, 252, 16, 243, 240, - 246, 254, 240, 218, 91, 245, 23, 240, 218, 91, 40, 233, 56, 189, 90, 40, - 233, 56, 234, 10, 40, 233, 56, 168, 90, 38, 233, 56, 189, 90, 38, 233, - 56, 234, 10, 38, 233, 56, 168, 90, 40, 31, 238, 52, 189, 238, 67, 40, 31, - 238, 52, 234, 10, 40, 31, 238, 52, 168, 238, 67, 38, 31, 238, 52, 189, - 238, 67, 38, 31, 238, 52, 234, 10, 38, 31, 238, 52, 168, 238, 67, 40, - 242, 225, 238, 52, 189, 90, 40, 242, 225, 238, 52, 240, 1, 240, 119, 40, - 242, 225, 238, 52, 168, 90, 242, 225, 238, 52, 234, 10, 38, 242, 225, - 238, 52, 189, 90, 38, 242, 225, 238, 52, 240, 1, 240, 119, 38, 242, 225, - 238, 52, 168, 90, 236, 167, 234, 10, 163, 248, 41, 234, 10, 189, 40, 128, - 168, 38, 242, 225, 238, 52, 236, 210, 189, 38, 128, 168, 40, 242, 225, - 238, 52, 236, 210, 235, 112, 249, 3, 235, 112, 238, 128, 253, 159, 31, - 104, 240, 17, 31, 104, 240, 17, 31, 238, 52, 248, 59, 253, 159, 31, 104, - 25, 12, 238, 128, 40, 59, 66, 242, 224, 38, 59, 66, 242, 224, 163, 248, - 183, 239, 119, 163, 248, 183, 239, 120, 163, 248, 183, 239, 121, 163, - 248, 183, 239, 122, 235, 58, 12, 136, 59, 19, 253, 159, 225, 235, 58, 12, - 136, 59, 19, 240, 17, 225, 235, 58, 12, 136, 59, 2, 238, 51, 235, 58, 12, - 136, 92, 19, 163, 2, 238, 51, 235, 58, 12, 136, 88, 19, 163, 2, 238, 51, - 235, 58, 12, 136, 59, 2, 235, 46, 235, 58, 12, 136, 92, 19, 163, 2, 235, - 46, 235, 58, 12, 136, 88, 19, 163, 2, 235, 46, 235, 58, 12, 136, 59, 19, - 243, 80, 235, 58, 12, 136, 92, 19, 163, 2, 243, 80, 235, 58, 12, 136, 88, - 19, 163, 2, 243, 80, 235, 58, 12, 136, 92, 19, 233, 50, 235, 58, 12, 136, - 88, 19, 233, 50, 235, 58, 12, 136, 59, 19, 253, 159, 242, 220, 235, 58, - 12, 136, 59, 19, 240, 17, 242, 220, 31, 243, 94, 242, 80, 91, 245, 81, - 91, 59, 248, 41, 234, 10, 236, 183, 239, 255, 236, 183, 183, 248, 59, - 242, 108, 236, 183, 242, 215, 248, 59, 243, 66, 236, 183, 183, 248, 59, - 171, 239, 194, 236, 183, 171, 240, 228, 248, 59, 243, 66, 236, 183, 171, - 240, 228, 239, 103, 236, 183, 237, 49, 236, 183, 234, 82, 236, 183, 234, - 62, 243, 168, 239, 85, 245, 94, 12, 28, 246, 193, 12, 28, 243, 124, 147, - 237, 173, 12, 28, 243, 124, 147, 244, 28, 12, 28, 253, 165, 147, 244, 28, - 12, 28, 253, 165, 147, 232, 62, 12, 28, 237, 150, 12, 28, 232, 103, 12, - 28, 244, 215, 12, 28, 234, 96, 12, 28, 163, 233, 107, 12, 28, 248, 41, - 243, 171, 12, 28, 59, 233, 107, 12, 28, 248, 38, 243, 171, 12, 28, 237, - 84, 238, 211, 12, 28, 244, 11, 248, 235, 12, 28, 244, 11, 253, 247, 12, - 28, 250, 185, 251, 197, 238, 183, 12, 28, 240, 113, 238, 110, 127, 12, - 28, 240, 113, 238, 110, 111, 12, 28, 240, 113, 238, 110, 166, 12, 28, - 240, 113, 238, 110, 177, 12, 28, 236, 146, 232, 103, 12, 28, 233, 250, - 245, 224, 12, 28, 253, 165, 147, 233, 44, 240, 13, 12, 28, 239, 16, 12, - 28, 253, 165, 147, 239, 132, 12, 28, 233, 249, 12, 28, 238, 183, 12, 28, - 250, 244, 234, 6, 12, 28, 245, 128, 234, 6, 12, 28, 242, 79, 234, 6, 12, - 28, 252, 253, 234, 6, 12, 28, 240, 15, 12, 28, 239, 39, 244, 224, 91, - 248, 35, 248, 92, 12, 28, 237, 219, 12, 28, 241, 81, 248, 38, 111, 12, - 28, 235, 5, 248, 38, 111, 253, 207, 90, 253, 207, 241, 50, 253, 207, 243, - 175, 253, 207, 236, 145, 243, 175, 253, 207, 250, 115, 239, 15, 253, 207, - 254, 146, 248, 139, 253, 207, 241, 36, 250, 102, 229, 67, 253, 207, 241, - 9, 147, 240, 162, 253, 207, 242, 235, 253, 207, 237, 97, 238, 158, 239, - 147, 253, 207, 45, 234, 25, 29, 26, 127, 29, 26, 111, 29, 26, 166, 29, - 26, 177, 29, 26, 176, 29, 26, 187, 29, 26, 203, 29, 26, 195, 29, 26, 202, - 29, 61, 248, 53, 29, 61, 238, 91, 29, 61, 238, 97, 29, 61, 235, 85, 29, - 61, 235, 82, 29, 61, 236, 207, 29, 61, 236, 202, 29, 61, 234, 22, 29, 61, - 235, 81, 29, 61, 235, 83, 29, 61, 238, 77, 82, 26, 127, 82, 26, 111, 82, - 26, 166, 82, 26, 177, 82, 26, 176, 82, 26, 187, 82, 26, 203, 82, 26, 195, - 82, 26, 202, 82, 61, 248, 53, 82, 61, 238, 91, 82, 61, 238, 97, 82, 61, - 235, 85, 82, 61, 235, 82, 82, 61, 236, 207, 82, 61, 236, 202, 82, 61, - 234, 22, 82, 61, 235, 81, 82, 61, 235, 83, 82, 61, 238, 77, 26, 253, 125, - 248, 37, 208, 26, 171, 248, 37, 208, 26, 204, 248, 37, 208, 26, 248, 58, - 248, 37, 208, 26, 248, 48, 248, 37, 208, 26, 254, 31, 248, 37, 208, 26, - 243, 31, 248, 37, 208, 26, 242, 254, 248, 37, 208, 26, 248, 173, 248, 37, - 208, 61, 253, 219, 248, 37, 208, 61, 241, 93, 248, 37, 208, 61, 240, 251, - 248, 37, 208, 61, 238, 26, 248, 37, 208, 61, 237, 161, 248, 37, 208, 61, - 239, 70, 248, 37, 208, 61, 238, 216, 248, 37, 208, 61, 236, 100, 248, 37, - 208, 61, 237, 147, 248, 37, 208, 61, 237, 222, 248, 37, 208, 61, 240, 48, - 248, 37, 208, 82, 8, 3, 1, 67, 82, 8, 3, 1, 217, 82, 8, 3, 1, 255, 18, - 82, 8, 3, 1, 209, 82, 8, 3, 1, 72, 82, 8, 3, 1, 255, 19, 82, 8, 3, 1, - 210, 82, 8, 3, 1, 192, 82, 8, 3, 1, 71, 82, 8, 3, 1, 221, 82, 8, 3, 1, - 255, 15, 82, 8, 3, 1, 162, 82, 8, 3, 1, 173, 82, 8, 3, 1, 197, 82, 8, 3, - 1, 73, 82, 8, 3, 1, 223, 82, 8, 3, 1, 255, 20, 82, 8, 3, 1, 144, 82, 8, - 3, 1, 193, 82, 8, 3, 1, 214, 82, 8, 3, 1, 79, 82, 8, 3, 1, 179, 82, 8, 3, - 1, 255, 16, 82, 8, 3, 1, 206, 82, 8, 3, 1, 255, 14, 82, 8, 3, 1, 255, 17, - 29, 8, 5, 1, 67, 29, 8, 5, 1, 217, 29, 8, 5, 1, 255, 18, 29, 8, 5, 1, - 209, 29, 8, 5, 1, 72, 29, 8, 5, 1, 255, 19, 29, 8, 5, 1, 210, 29, 8, 5, - 1, 192, 29, 8, 5, 1, 71, 29, 8, 5, 1, 221, 29, 8, 5, 1, 255, 15, 29, 8, - 5, 1, 162, 29, 8, 5, 1, 173, 29, 8, 5, 1, 197, 29, 8, 5, 1, 73, 29, 8, 5, - 1, 223, 29, 8, 5, 1, 255, 20, 29, 8, 5, 1, 144, 29, 8, 5, 1, 193, 29, 8, - 5, 1, 214, 29, 8, 5, 1, 79, 29, 8, 5, 1, 179, 29, 8, 5, 1, 255, 16, 29, - 8, 5, 1, 206, 29, 8, 5, 1, 255, 14, 29, 8, 5, 1, 255, 17, 29, 8, 3, 1, - 67, 29, 8, 3, 1, 217, 29, 8, 3, 1, 255, 18, 29, 8, 3, 1, 209, 29, 8, 3, - 1, 72, 29, 8, 3, 1, 255, 19, 29, 8, 3, 1, 210, 29, 8, 3, 1, 192, 29, 8, - 3, 1, 71, 29, 8, 3, 1, 221, 29, 8, 3, 1, 255, 15, 29, 8, 3, 1, 162, 29, - 8, 3, 1, 173, 29, 8, 3, 1, 197, 29, 8, 3, 1, 73, 29, 8, 3, 1, 223, 29, 8, - 3, 1, 255, 20, 29, 8, 3, 1, 144, 29, 8, 3, 1, 193, 29, 8, 3, 1, 214, 29, - 8, 3, 1, 79, 29, 8, 3, 1, 179, 29, 8, 3, 1, 255, 16, 29, 8, 3, 1, 206, - 29, 8, 3, 1, 255, 14, 29, 8, 3, 1, 255, 17, 29, 26, 242, 217, 236, 146, - 29, 61, 238, 91, 236, 146, 29, 61, 238, 97, 236, 146, 29, 61, 235, 85, - 236, 146, 29, 61, 235, 82, 236, 146, 29, 61, 236, 207, 236, 146, 29, 61, - 236, 202, 236, 146, 29, 61, 234, 22, 236, 146, 29, 61, 235, 81, 236, 146, - 29, 61, 235, 83, 236, 146, 29, 61, 238, 77, 45, 29, 26, 127, 45, 29, 26, - 111, 45, 29, 26, 166, 45, 29, 26, 177, 45, 29, 26, 176, 45, 29, 26, 187, - 45, 29, 26, 203, 45, 29, 26, 195, 45, 29, 26, 202, 45, 29, 61, 248, 53, - 236, 146, 29, 26, 242, 217, 66, 70, 136, 233, 50, 66, 70, 96, 233, 50, - 66, 70, 136, 235, 63, 66, 70, 96, 235, 63, 66, 70, 136, 240, 3, 248, 63, - 233, 50, 66, 70, 96, 240, 3, 248, 63, 233, 50, 66, 70, 136, 240, 3, 248, - 63, 235, 63, 66, 70, 96, 240, 3, 248, 63, 235, 63, 66, 70, 136, 235, 71, - 248, 63, 233, 50, 66, 70, 96, 235, 71, 248, 63, 233, 50, 66, 70, 136, - 235, 71, 248, 63, 235, 63, 66, 70, 96, 235, 71, 248, 63, 235, 63, 66, 70, - 136, 92, 19, 225, 66, 70, 92, 136, 19, 38, 240, 11, 66, 70, 92, 96, 19, - 38, 240, 9, 66, 70, 96, 92, 19, 225, 66, 70, 136, 92, 19, 242, 220, 66, - 70, 92, 136, 19, 40, 240, 11, 66, 70, 92, 96, 19, 40, 240, 9, 66, 70, 96, - 92, 19, 242, 220, 66, 70, 136, 88, 19, 225, 66, 70, 88, 136, 19, 38, 240, - 11, 66, 70, 88, 96, 19, 38, 240, 9, 66, 70, 96, 88, 19, 225, 66, 70, 136, - 88, 19, 242, 220, 66, 70, 88, 136, 19, 40, 240, 11, 66, 70, 88, 96, 19, - 40, 240, 9, 66, 70, 96, 88, 19, 242, 220, 66, 70, 136, 59, 19, 225, 66, - 70, 59, 136, 19, 38, 240, 11, 66, 70, 88, 96, 19, 38, 92, 240, 9, 66, 70, - 92, 96, 19, 38, 88, 240, 9, 66, 70, 59, 96, 19, 38, 240, 9, 66, 70, 92, - 136, 19, 38, 88, 240, 11, 66, 70, 88, 136, 19, 38, 92, 240, 11, 66, 70, - 96, 59, 19, 225, 66, 70, 136, 59, 19, 242, 220, 66, 70, 59, 136, 19, 40, - 240, 11, 66, 70, 88, 96, 19, 40, 92, 240, 9, 66, 70, 92, 96, 19, 40, 88, - 240, 9, 66, 70, 59, 96, 19, 40, 240, 9, 66, 70, 92, 136, 19, 40, 88, 240, - 11, 66, 70, 88, 136, 19, 40, 92, 240, 11, 66, 70, 96, 59, 19, 242, 220, - 66, 70, 136, 92, 19, 233, 50, 66, 70, 40, 96, 19, 38, 92, 240, 9, 66, 70, - 38, 96, 19, 40, 92, 240, 9, 66, 70, 92, 136, 19, 163, 240, 11, 66, 70, - 92, 96, 19, 163, 240, 9, 66, 70, 38, 136, 19, 40, 92, 240, 11, 66, 70, - 40, 136, 19, 38, 92, 240, 11, 66, 70, 96, 92, 19, 233, 50, 66, 70, 136, - 88, 19, 233, 50, 66, 70, 40, 96, 19, 38, 88, 240, 9, 66, 70, 38, 96, 19, - 40, 88, 240, 9, 66, 70, 88, 136, 19, 163, 240, 11, 66, 70, 88, 96, 19, - 163, 240, 9, 66, 70, 38, 136, 19, 40, 88, 240, 11, 66, 70, 40, 136, 19, - 38, 88, 240, 11, 66, 70, 96, 88, 19, 233, 50, 66, 70, 136, 59, 19, 233, - 50, 66, 70, 40, 96, 19, 38, 59, 240, 9, 66, 70, 38, 96, 19, 40, 59, 240, - 9, 66, 70, 59, 136, 19, 163, 240, 11, 66, 70, 88, 96, 19, 92, 163, 240, - 9, 66, 70, 92, 96, 19, 88, 163, 240, 9, 66, 70, 59, 96, 19, 163, 240, 9, - 66, 70, 40, 88, 96, 19, 38, 92, 240, 9, 66, 70, 38, 88, 96, 19, 40, 92, - 240, 9, 66, 70, 40, 92, 96, 19, 38, 88, 240, 9, 66, 70, 38, 92, 96, 19, - 40, 88, 240, 9, 66, 70, 92, 136, 19, 88, 163, 240, 11, 66, 70, 88, 136, - 19, 92, 163, 240, 11, 66, 70, 38, 136, 19, 40, 59, 240, 11, 66, 70, 40, - 136, 19, 38, 59, 240, 11, 66, 70, 96, 59, 19, 233, 50, 66, 70, 136, 45, - 248, 63, 233, 50, 66, 70, 96, 45, 248, 63, 233, 50, 66, 70, 136, 45, 248, - 63, 235, 63, 66, 70, 96, 45, 248, 63, 235, 63, 66, 70, 45, 233, 50, 66, - 70, 45, 235, 63, 66, 70, 92, 240, 12, 19, 38, 238, 78, 66, 70, 92, 45, - 19, 38, 238, 82, 66, 70, 45, 92, 19, 225, 66, 70, 92, 240, 12, 19, 40, - 238, 78, 66, 70, 92, 45, 19, 40, 238, 82, 66, 70, 45, 92, 19, 242, 220, - 66, 70, 88, 240, 12, 19, 38, 238, 78, 66, 70, 88, 45, 19, 38, 238, 82, - 66, 70, 45, 88, 19, 225, 66, 70, 88, 240, 12, 19, 40, 238, 78, 66, 70, - 88, 45, 19, 40, 238, 82, 66, 70, 45, 88, 19, 242, 220, 66, 70, 59, 240, - 12, 19, 38, 238, 78, 66, 70, 59, 45, 19, 38, 238, 82, 66, 70, 45, 59, 19, - 225, 66, 70, 59, 240, 12, 19, 40, 238, 78, 66, 70, 59, 45, 19, 40, 238, - 82, 66, 70, 45, 59, 19, 242, 220, 66, 70, 92, 240, 12, 19, 163, 238, 78, - 66, 70, 92, 45, 19, 163, 238, 82, 66, 70, 45, 92, 19, 233, 50, 66, 70, - 88, 240, 12, 19, 163, 238, 78, 66, 70, 88, 45, 19, 163, 238, 82, 66, 70, - 45, 88, 19, 233, 50, 66, 70, 59, 240, 12, 19, 163, 238, 78, 66, 70, 59, - 45, 19, 163, 238, 82, 66, 70, 45, 59, 19, 233, 50, 66, 70, 136, 253, 183, - 92, 19, 225, 66, 70, 136, 253, 183, 92, 19, 242, 220, 66, 70, 136, 253, - 183, 88, 19, 242, 220, 66, 70, 136, 253, 183, 88, 19, 225, 66, 70, 136, - 236, 159, 189, 38, 153, 168, 242, 220, 66, 70, 136, 236, 159, 189, 40, - 153, 168, 225, 66, 70, 136, 236, 159, 240, 34, 66, 70, 136, 242, 220, 66, - 70, 136, 253, 176, 66, 70, 136, 225, 66, 70, 136, 242, 236, 66, 70, 96, - 242, 220, 66, 70, 96, 253, 176, 66, 70, 96, 225, 66, 70, 96, 242, 236, - 66, 70, 136, 40, 19, 96, 225, 66, 70, 136, 88, 19, 96, 242, 236, 66, 70, - 96, 40, 19, 136, 225, 66, 70, 96, 88, 19, 136, 242, 236, 189, 137, 240, - 13, 168, 253, 125, 240, 62, 240, 13, 168, 253, 125, 238, 80, 240, 13, - 168, 204, 238, 98, 240, 13, 168, 137, 240, 13, 168, 248, 48, 238, 98, - 240, 13, 168, 204, 236, 236, 240, 13, 168, 243, 31, 238, 98, 240, 13, - 248, 37, 240, 13, 40, 243, 31, 238, 98, 240, 13, 40, 204, 236, 236, 240, - 13, 40, 248, 48, 238, 98, 240, 13, 40, 137, 240, 13, 40, 204, 238, 98, - 240, 13, 40, 253, 125, 238, 80, 240, 13, 40, 253, 125, 240, 62, 240, 13, - 38, 137, 240, 13, 136, 240, 146, 240, 19, 240, 146, 250, 183, 240, 146, - 189, 253, 125, 240, 62, 240, 13, 38, 253, 125, 240, 62, 240, 13, 236, - 158, 168, 242, 220, 236, 158, 168, 225, 236, 158, 189, 242, 220, 236, - 158, 189, 40, 19, 168, 40, 19, 168, 225, 236, 158, 189, 40, 19, 168, 225, - 236, 158, 189, 40, 19, 189, 38, 19, 168, 242, 220, 236, 158, 189, 40, 19, - 189, 38, 19, 168, 225, 236, 158, 189, 225, 236, 158, 189, 38, 19, 168, - 242, 220, 236, 158, 189, 38, 19, 168, 40, 19, 168, 225, 86, 238, 59, 64, - 238, 59, 64, 31, 2, 238, 121, 237, 0, 64, 31, 234, 34, 86, 3, 238, 59, - 31, 2, 163, 243, 19, 31, 2, 59, 243, 19, 31, 2, 234, 230, 234, 51, 243, - 19, 31, 2, 189, 40, 153, 168, 38, 243, 19, 31, 2, 189, 38, 153, 168, 40, - 243, 19, 31, 2, 236, 159, 234, 51, 243, 19, 86, 3, 238, 59, 64, 3, 238, - 59, 86, 234, 31, 64, 234, 31, 86, 59, 234, 31, 64, 59, 234, 31, 86, 231, - 48, 64, 231, 48, 86, 233, 60, 235, 46, 64, 233, 60, 235, 46, 86, 233, 60, - 3, 235, 46, 64, 233, 60, 3, 235, 46, 86, 231, 36, 235, 46, 64, 231, 36, - 235, 46, 86, 231, 36, 3, 235, 46, 64, 231, 36, 3, 235, 46, 86, 231, 36, - 236, 217, 64, 231, 36, 236, 217, 86, 231, 91, 235, 46, 64, 231, 91, 235, - 46, 86, 231, 91, 3, 235, 46, 64, 231, 91, 3, 235, 46, 86, 231, 87, 235, - 46, 64, 231, 87, 235, 46, 86, 231, 87, 3, 235, 46, 64, 231, 87, 3, 235, - 46, 86, 231, 87, 236, 217, 64, 231, 87, 236, 217, 86, 236, 164, 64, 236, - 164, 64, 238, 76, 234, 34, 86, 3, 236, 164, 237, 157, 236, 231, 64, 238, - 51, 240, 4, 238, 51, 218, 2, 59, 243, 19, 235, 183, 86, 238, 51, 218, 2, - 40, 137, 240, 0, 218, 2, 38, 137, 240, 0, 218, 2, 168, 137, 240, 0, 218, - 2, 189, 137, 240, 0, 218, 2, 189, 38, 236, 158, 240, 0, 218, 2, 254, 51, - 253, 230, 189, 40, 236, 158, 240, 0, 40, 137, 86, 238, 51, 38, 137, 86, - 238, 51, 238, 116, 238, 69, 238, 116, 64, 238, 51, 189, 137, 238, 116, - 64, 238, 51, 168, 137, 238, 116, 64, 238, 51, 189, 40, 236, 158, 236, - 211, 248, 113, 189, 38, 236, 158, 236, 211, 248, 113, 168, 38, 236, 158, - 236, 211, 248, 113, 168, 40, 236, 158, 236, 211, 248, 113, 189, 137, 238, - 51, 168, 137, 238, 51, 86, 168, 38, 235, 46, 86, 168, 40, 235, 46, 86, - 189, 40, 235, 46, 86, 189, 38, 235, 46, 64, 238, 69, 31, 2, 40, 137, 240, - 0, 31, 2, 38, 137, 240, 0, 31, 2, 189, 40, 236, 159, 137, 240, 0, 31, 2, - 168, 38, 236, 159, 137, 240, 0, 64, 31, 2, 59, 235, 180, 242, 224, 64, - 233, 60, 236, 152, 2, 248, 40, 233, 60, 236, 152, 2, 40, 137, 240, 0, - 233, 60, 236, 152, 2, 38, 137, 240, 0, 243, 22, 238, 51, 64, 31, 2, 189, - 40, 235, 70, 64, 31, 2, 168, 40, 235, 70, 64, 31, 2, 168, 38, 235, 70, - 64, 31, 2, 189, 38, 235, 70, 64, 218, 2, 189, 40, 235, 70, 64, 218, 2, - 168, 40, 235, 70, 64, 218, 2, 168, 38, 235, 70, 64, 218, 2, 189, 38, 235, - 70, 189, 40, 235, 46, 189, 38, 235, 46, 168, 40, 235, 46, 64, 240, 19, - 238, 59, 86, 240, 19, 238, 59, 64, 240, 19, 3, 238, 59, 86, 240, 19, 3, - 238, 59, 168, 38, 235, 46, 86, 254, 126, 2, 243, 251, 241, 61, 236, 135, - 238, 9, 241, 64, 86, 242, 229, 64, 242, 229, 234, 219, 232, 60, 248, 136, - 235, 172, 243, 235, 234, 110, 243, 235, 232, 120, 233, 73, 86, 234, 81, - 64, 234, 81, 240, 91, 248, 92, 240, 91, 66, 2, 240, 162, 240, 91, 66, 2, - 206, 237, 255, 238, 38, 2, 252, 128, 241, 90, 254, 96, 235, 178, 64, 244, - 12, 240, 119, 86, 244, 12, 240, 119, 236, 101, 224, 238, 120, 240, 135, - 243, 16, 238, 69, 86, 40, 236, 150, 240, 76, 86, 38, 236, 150, 240, 76, - 64, 40, 236, 150, 240, 76, 64, 88, 236, 150, 240, 76, 64, 38, 236, 150, - 240, 76, 64, 92, 236, 150, 240, 76, 247, 92, 19, 233, 129, 239, 19, 52, - 233, 227, 52, 235, 179, 52, 235, 185, 244, 81, 237, 228, 240, 34, 254, - 83, 248, 73, 243, 38, 147, 236, 53, 243, 38, 147, 234, 210, 248, 135, 19, - 235, 196, 243, 26, 91, 254, 139, 239, 192, 240, 185, 19, 239, 196, 246, - 239, 91, 254, 15, 243, 50, 238, 89, 28, 238, 139, 238, 89, 28, 243, 213, - 238, 89, 28, 243, 27, 238, 89, 28, 237, 48, 238, 89, 28, 243, 82, 238, - 89, 28, 240, 105, 238, 89, 28, 235, 102, 238, 89, 28, 240, 49, 247, 195, - 147, 239, 42, 64, 237, 162, 243, 39, 64, 238, 219, 243, 39, 86, 238, 219, - 243, 39, 64, 254, 126, 2, 243, 251, 243, 41, 238, 80, 243, 30, 251, 184, - 238, 80, 243, 30, 237, 208, 240, 96, 52, 240, 49, 248, 95, 52, 237, 185, - 239, 180, 239, 236, 237, 218, 242, 62, 241, 15, 239, 215, 239, 81, 239, - 17, 251, 188, 242, 179, 241, 215, 236, 98, 232, 203, 234, 99, 235, 167, - 239, 163, 64, 242, 252, 243, 208, 64, 242, 252, 240, 213, 64, 242, 252, - 244, 0, 64, 242, 252, 238, 167, 64, 242, 252, 238, 196, 64, 242, 252, - 243, 241, 86, 242, 252, 243, 208, 86, 242, 252, 240, 213, 86, 242, 252, - 244, 0, 86, 242, 252, 238, 167, 86, 242, 252, 238, 196, 86, 242, 252, - 243, 241, 86, 244, 22, 243, 17, 64, 243, 16, 243, 17, 64, 238, 76, 243, - 17, 86, 249, 41, 243, 17, 64, 244, 22, 243, 17, 86, 243, 16, 243, 17, 86, - 238, 76, 243, 17, 64, 249, 41, 243, 17, 254, 96, 238, 11, 238, 80, 243, - 9, 240, 62, 243, 9, 240, 157, 240, 62, 240, 203, 240, 157, 235, 108, 240, - 203, 243, 108, 248, 209, 52, 243, 108, 238, 146, 52, 243, 108, 243, 74, - 52, 248, 56, 129, 240, 34, 248, 43, 129, 240, 34, 235, 159, 235, 65, 91, - 235, 65, 12, 28, 242, 164, 235, 75, 235, 65, 12, 28, 242, 165, 235, 75, - 235, 65, 12, 28, 242, 166, 235, 75, 235, 65, 12, 28, 242, 167, 235, 75, - 235, 65, 12, 28, 242, 168, 235, 75, 235, 65, 12, 28, 242, 169, 235, 75, - 235, 65, 12, 28, 242, 170, 235, 75, 235, 65, 12, 28, 239, 82, 234, 221, - 86, 235, 159, 235, 65, 91, 237, 249, 243, 113, 91, 226, 250, 243, 113, - 91, 236, 74, 243, 113, 52, 235, 41, 91, 254, 2, 239, 60, 254, 2, 239, 61, - 254, 2, 239, 62, 254, 2, 239, 63, 254, 2, 239, 64, 254, 2, 239, 65, 64, - 218, 2, 53, 225, 64, 218, 2, 171, 243, 5, 86, 218, 2, 64, 53, 225, 86, - 218, 2, 171, 64, 243, 5, 236, 184, 28, 243, 50, 236, 184, 28, 249, 23, - 240, 56, 28, 238, 188, 243, 50, 240, 56, 28, 240, 198, 249, 23, 240, 56, - 28, 240, 198, 243, 50, 240, 56, 28, 238, 188, 249, 23, 64, 243, 173, 86, - 243, 173, 240, 185, 19, 246, 248, 238, 159, 238, 133, 239, 211, 244, 24, - 147, 232, 113, 239, 181, 237, 58, 239, 77, 245, 98, 244, 24, 147, 239, - 92, 249, 242, 91, 231, 138, 239, 246, 52, 200, 239, 245, 52, 238, 179, - 240, 96, 52, 238, 179, 248, 95, 52, 233, 212, 240, 96, 19, 248, 95, 52, - 248, 95, 19, 240, 96, 52, 248, 95, 2, 240, 5, 52, 248, 95, 2, 240, 5, 19, - 248, 95, 19, 240, 96, 52, 59, 248, 95, 2, 240, 5, 52, 163, 248, 95, 2, - 240, 5, 52, 240, 19, 64, 238, 51, 240, 19, 86, 238, 51, 240, 19, 3, 64, - 238, 51, 237, 202, 91, 239, 45, 91, 236, 137, 233, 94, 91, 239, 30, 239, - 79, 253, 3, 189, 243, 148, 235, 93, 86, 235, 93, 168, 243, 148, 235, 93, - 64, 235, 93, 235, 113, 237, 195, 52, 252, 210, 241, 89, 235, 162, 236, - 12, 239, 242, 243, 59, 239, 249, 243, 59, 168, 38, 238, 148, 238, 148, - 189, 38, 238, 148, 64, 249, 120, 86, 249, 120, 243, 53, 69, 96, 243, 53, - 69, 231, 37, 206, 96, 231, 37, 206, 240, 91, 206, 96, 240, 91, 206, 236, - 199, 17, 240, 34, 96, 17, 240, 34, 248, 35, 240, 46, 240, 34, 96, 248, - 35, 240, 46, 240, 34, 8, 240, 34, 236, 189, 64, 8, 240, 34, 236, 199, 8, - 240, 34, 239, 126, 240, 34, 248, 135, 147, 241, 74, 248, 58, 229, 58, - 235, 52, 248, 58, 231, 39, 235, 52, 96, 248, 58, 231, 39, 235, 52, 248, - 58, 233, 123, 235, 52, 86, 248, 58, 238, 74, 242, 229, 64, 248, 58, 238, - 74, 242, 229, 240, 148, 236, 199, 64, 242, 229, 29, 64, 242, 229, 248, - 35, 240, 46, 86, 242, 229, 86, 240, 46, 64, 242, 229, 236, 199, 86, 242, - 229, 96, 236, 199, 86, 242, 229, 236, 235, 242, 229, 236, 189, 64, 242, - 229, 96, 235, 52, 248, 35, 240, 46, 235, 52, 242, 254, 242, 124, 235, 52, - 242, 254, 238, 74, 86, 242, 229, 242, 254, 238, 74, 236, 235, 242, 229, - 254, 31, 238, 74, 86, 242, 229, 242, 254, 238, 74, 233, 98, 86, 242, 229, - 96, 242, 254, 238, 74, 233, 98, 86, 242, 229, 240, 251, 238, 74, 86, 242, - 229, 238, 216, 238, 74, 235, 52, 229, 58, 235, 52, 248, 35, 240, 46, 229, - 58, 235, 52, 96, 229, 58, 235, 52, 254, 31, 237, 30, 86, 19, 64, 235, 88, - 86, 235, 88, 64, 235, 88, 242, 254, 237, 30, 236, 199, 86, 235, 88, 29, - 248, 35, 240, 46, 242, 254, 238, 74, 242, 229, 96, 229, 58, 236, 235, - 235, 52, 234, 42, 247, 150, 235, 35, 234, 42, 96, 239, 23, 234, 42, 237, - 42, 96, 237, 42, 231, 39, 235, 52, 242, 254, 229, 58, 235, 139, 235, 52, - 96, 242, 254, 229, 58, 235, 139, 235, 52, 236, 189, 64, 238, 51, 168, 38, - 231, 103, 64, 238, 59, 189, 38, 231, 103, 64, 238, 59, 168, 38, 236, 189, - 64, 238, 59, 189, 38, 236, 189, 64, 238, 59, 86, 238, 76, 242, 250, 64, - 206, 136, 59, 125, 240, 19, 59, 125, 96, 59, 125, 96, 240, 12, 205, 242, - 244, 235, 51, 158, 235, 53, 96, 240, 12, 242, 244, 235, 51, 158, 235, 53, - 96, 45, 205, 242, 244, 235, 51, 158, 235, 53, 96, 45, 242, 244, 235, 51, - 158, 235, 53, 240, 95, 252, 190, 235, 91, 21, 235, 53, 96, 233, 54, 158, - 235, 53, 96, 243, 16, 233, 54, 158, 235, 53, 96, 86, 240, 138, 238, 120, - 96, 86, 243, 16, 238, 69, 240, 135, 240, 138, 238, 120, 240, 135, 243, - 16, 238, 69, 240, 19, 40, 233, 56, 235, 53, 240, 19, 38, 233, 56, 235, - 53, 240, 19, 235, 122, 40, 233, 56, 235, 53, 240, 19, 235, 122, 38, 233, - 56, 235, 53, 240, 19, 231, 87, 185, 238, 52, 235, 53, 240, 19, 231, 36, - 185, 238, 52, 235, 53, 96, 231, 87, 185, 235, 51, 158, 235, 53, 96, 231, - 36, 185, 235, 51, 158, 235, 53, 96, 231, 87, 185, 238, 52, 235, 53, 96, - 231, 36, 185, 238, 52, 235, 53, 136, 40, 236, 171, 242, 255, 238, 52, - 235, 53, 136, 38, 236, 171, 242, 255, 238, 52, 235, 53, 240, 19, 40, 242, - 225, 238, 52, 235, 53, 240, 19, 38, 242, 225, 238, 52, 235, 53, 238, 55, - 236, 146, 29, 26, 127, 238, 55, 236, 146, 29, 26, 111, 238, 55, 236, 146, - 29, 26, 166, 238, 55, 236, 146, 29, 26, 177, 238, 55, 236, 146, 29, 26, - 176, 238, 55, 236, 146, 29, 26, 187, 238, 55, 236, 146, 29, 26, 203, 238, - 55, 236, 146, 29, 26, 195, 238, 55, 236, 146, 29, 26, 202, 238, 55, 236, - 146, 29, 61, 248, 53, 238, 55, 29, 27, 26, 127, 238, 55, 29, 27, 26, 111, - 238, 55, 29, 27, 26, 166, 238, 55, 29, 27, 26, 177, 238, 55, 29, 27, 26, - 176, 238, 55, 29, 27, 26, 187, 238, 55, 29, 27, 26, 203, 238, 55, 29, 27, - 26, 195, 238, 55, 29, 27, 26, 202, 238, 55, 29, 27, 61, 248, 53, 238, 55, - 236, 146, 29, 27, 26, 127, 238, 55, 236, 146, 29, 27, 26, 111, 238, 55, - 236, 146, 29, 27, 26, 166, 238, 55, 236, 146, 29, 27, 26, 177, 238, 55, - 236, 146, 29, 27, 26, 176, 238, 55, 236, 146, 29, 27, 26, 187, 238, 55, - 236, 146, 29, 27, 26, 203, 238, 55, 236, 146, 29, 27, 26, 195, 238, 55, - 236, 146, 29, 27, 26, 202, 238, 55, 236, 146, 29, 27, 61, 248, 53, 96, - 234, 1, 77, 56, 96, 242, 228, 248, 43, 56, 96, 77, 56, 96, 242, 223, 248, - 43, 56, 237, 142, 242, 232, 77, 56, 96, 232, 202, 77, 56, 229, 60, 77, - 56, 96, 229, 60, 77, 56, 240, 55, 229, 60, 77, 56, 96, 240, 55, 229, 60, - 77, 56, 86, 77, 56, 238, 229, 233, 253, 77, 234, 7, 238, 229, 231, 60, - 77, 234, 7, 86, 77, 234, 7, 96, 86, 240, 95, 235, 45, 19, 77, 56, 96, 86, - 240, 95, 226, 226, 19, 77, 56, 244, 23, 86, 77, 56, 96, 229, 65, 86, 77, - 56, 232, 200, 64, 77, 56, 233, 215, 64, 77, 56, 233, 119, 236, 189, 64, - 77, 56, 232, 166, 236, 189, 64, 77, 56, 96, 168, 231, 38, 64, 77, 56, 96, - 189, 231, 38, 64, 77, 56, 238, 204, 168, 231, 38, 64, 77, 56, 238, 204, - 189, 231, 38, 64, 77, 56, 29, 96, 64, 77, 56, 231, 34, 77, 56, 229, 59, - 242, 228, 248, 43, 56, 229, 59, 77, 56, 229, 59, 242, 223, 248, 43, 56, - 96, 229, 59, 242, 228, 248, 43, 56, 96, 229, 59, 77, 56, 96, 229, 59, - 242, 223, 248, 43, 56, 231, 31, 77, 56, 96, 229, 56, 77, 56, 232, 112, - 77, 56, 96, 232, 112, 77, 56, 231, 150, 77, 56, 204, 233, 133, 240, 54, - 64, 236, 152, 234, 34, 3, 64, 235, 46, 231, 49, 248, 35, 238, 87, 248, - 35, 235, 84, 40, 237, 35, 254, 52, 234, 35, 38, 237, 35, 254, 52, 234, - 35, 64, 238, 76, 2, 238, 130, 248, 40, 19, 2, 248, 40, 238, 68, 147, 238, - 96, 236, 206, 168, 38, 240, 31, 2, 248, 40, 189, 40, 240, 31, 2, 248, 40, - 40, 243, 111, 243, 61, 38, 243, 111, 243, 61, 248, 37, 243, 111, 243, 61, - 243, 22, 88, 242, 234, 243, 22, 92, 242, 234, 40, 19, 38, 45, 234, 15, - 40, 19, 38, 242, 234, 40, 235, 103, 183, 38, 242, 234, 183, 40, 242, 234, - 88, 248, 84, 2, 218, 48, 239, 124, 238, 135, 255, 25, 163, 247, 53, 64, - 231, 95, 236, 164, 64, 231, 95, 238, 76, 2, 139, 243, 36, 64, 231, 95, - 238, 76, 2, 77, 243, 36, 64, 31, 2, 139, 243, 36, 64, 31, 2, 77, 243, 36, - 10, 40, 64, 31, 104, 10, 38, 64, 31, 104, 10, 40, 185, 104, 10, 38, 185, - 104, 10, 40, 45, 185, 104, 10, 38, 45, 185, 104, 226, 226, 235, 71, 56, - 235, 45, 235, 71, 56, 231, 86, 240, 178, 218, 56, 235, 62, 240, 178, 218, - 56, 38, 65, 2, 29, 243, 12, 183, 139, 56, 183, 77, 56, 183, 40, 38, 56, - 183, 139, 45, 56, 183, 77, 45, 56, 183, 40, 38, 45, 56, 183, 139, 65, - 248, 44, 125, 183, 77, 65, 248, 44, 125, 183, 139, 45, 65, 248, 44, 125, - 183, 77, 45, 65, 248, 44, 125, 183, 77, 236, 240, 56, 35, 36, 241, 33, - 35, 36, 239, 46, 35, 36, 239, 47, 35, 36, 237, 113, 35, 36, 239, 48, 35, - 36, 237, 114, 35, 36, 237, 120, 35, 36, 235, 206, 35, 36, 239, 49, 35, - 36, 237, 115, 35, 36, 237, 121, 35, 36, 235, 207, 35, 36, 237, 126, 35, - 36, 235, 212, 35, 36, 235, 227, 35, 36, 234, 113, 35, 36, 239, 50, 35, - 36, 237, 116, 35, 36, 237, 122, 35, 36, 235, 208, 35, 36, 237, 127, 35, - 36, 235, 213, 35, 36, 235, 228, 35, 36, 234, 114, 35, 36, 237, 131, 35, - 36, 235, 217, 35, 36, 235, 232, 35, 36, 234, 118, 35, 36, 235, 242, 35, - 36, 234, 128, 35, 36, 234, 148, 35, 36, 233, 138, 35, 36, 239, 51, 35, - 36, 237, 117, 35, 36, 237, 123, 35, 36, 235, 209, 35, 36, 237, 128, 35, - 36, 235, 214, 35, 36, 235, 229, 35, 36, 234, 115, 35, 36, 237, 132, 35, - 36, 235, 218, 35, 36, 235, 233, 35, 36, 234, 119, 35, 36, 235, 243, 35, - 36, 234, 129, 35, 36, 234, 149, 35, 36, 233, 139, 35, 36, 237, 135, 35, - 36, 235, 221, 35, 36, 235, 236, 35, 36, 234, 122, 35, 36, 235, 246, 35, - 36, 234, 132, 35, 36, 234, 152, 35, 36, 233, 142, 35, 36, 235, 252, 35, - 36, 234, 138, 35, 36, 234, 158, 35, 36, 233, 148, 35, 36, 234, 168, 35, - 36, 233, 158, 35, 36, 233, 173, 35, 36, 232, 134, 35, 36, 239, 52, 35, - 36, 237, 118, 35, 36, 237, 124, 35, 36, 235, 210, 35, 36, 237, 129, 35, - 36, 235, 215, 35, 36, 235, 230, 35, 36, 234, 116, 35, 36, 237, 133, 35, - 36, 235, 219, 35, 36, 235, 234, 35, 36, 234, 120, 35, 36, 235, 244, 35, - 36, 234, 130, 35, 36, 234, 150, 35, 36, 233, 140, 35, 36, 237, 136, 35, - 36, 235, 222, 35, 36, 235, 237, 35, 36, 234, 123, 35, 36, 235, 247, 35, - 36, 234, 133, 35, 36, 234, 153, 35, 36, 233, 143, 35, 36, 235, 253, 35, - 36, 234, 139, 35, 36, 234, 159, 35, 36, 233, 149, 35, 36, 234, 169, 35, - 36, 233, 159, 35, 36, 233, 174, 35, 36, 232, 135, 35, 36, 237, 138, 35, - 36, 235, 224, 35, 36, 235, 239, 35, 36, 234, 125, 35, 36, 235, 249, 35, - 36, 234, 135, 35, 36, 234, 155, 35, 36, 233, 145, 35, 36, 235, 255, 35, - 36, 234, 141, 35, 36, 234, 161, 35, 36, 233, 151, 35, 36, 234, 171, 35, - 36, 233, 161, 35, 36, 233, 176, 35, 36, 232, 137, 35, 36, 236, 2, 35, 36, - 234, 144, 35, 36, 234, 164, 35, 36, 233, 154, 35, 36, 234, 174, 35, 36, - 233, 164, 35, 36, 233, 179, 35, 36, 232, 140, 35, 36, 234, 178, 35, 36, - 233, 168, 35, 36, 233, 183, 35, 36, 232, 144, 35, 36, 233, 188, 35, 36, - 232, 149, 35, 36, 232, 155, 35, 36, 231, 129, 35, 36, 239, 53, 35, 36, - 237, 119, 35, 36, 237, 125, 35, 36, 235, 211, 35, 36, 237, 130, 35, 36, - 235, 216, 35, 36, 235, 231, 35, 36, 234, 117, 35, 36, 237, 134, 35, 36, - 235, 220, 35, 36, 235, 235, 35, 36, 234, 121, 35, 36, 235, 245, 35, 36, - 234, 131, 35, 36, 234, 151, 35, 36, 233, 141, 35, 36, 237, 137, 35, 36, - 235, 223, 35, 36, 235, 238, 35, 36, 234, 124, 35, 36, 235, 248, 35, 36, - 234, 134, 35, 36, 234, 154, 35, 36, 233, 144, 35, 36, 235, 254, 35, 36, - 234, 140, 35, 36, 234, 160, 35, 36, 233, 150, 35, 36, 234, 170, 35, 36, - 233, 160, 35, 36, 233, 175, 35, 36, 232, 136, 35, 36, 237, 139, 35, 36, - 235, 225, 35, 36, 235, 240, 35, 36, 234, 126, 35, 36, 235, 250, 35, 36, - 234, 136, 35, 36, 234, 156, 35, 36, 233, 146, 35, 36, 236, 0, 35, 36, - 234, 142, 35, 36, 234, 162, 35, 36, 233, 152, 35, 36, 234, 172, 35, 36, - 233, 162, 35, 36, 233, 177, 35, 36, 232, 138, 35, 36, 236, 3, 35, 36, - 234, 145, 35, 36, 234, 165, 35, 36, 233, 155, 35, 36, 234, 175, 35, 36, - 233, 165, 35, 36, 233, 180, 35, 36, 232, 141, 35, 36, 234, 179, 35, 36, - 233, 169, 35, 36, 233, 184, 35, 36, 232, 145, 35, 36, 233, 189, 35, 36, - 232, 150, 35, 36, 232, 156, 35, 36, 231, 130, 35, 36, 237, 140, 35, 36, - 235, 226, 35, 36, 235, 241, 35, 36, 234, 127, 35, 36, 235, 251, 35, 36, - 234, 137, 35, 36, 234, 157, 35, 36, 233, 147, 35, 36, 236, 1, 35, 36, - 234, 143, 35, 36, 234, 163, 35, 36, 233, 153, 35, 36, 234, 173, 35, 36, - 233, 163, 35, 36, 233, 178, 35, 36, 232, 139, 35, 36, 236, 4, 35, 36, - 234, 146, 35, 36, 234, 166, 35, 36, 233, 156, 35, 36, 234, 176, 35, 36, - 233, 166, 35, 36, 233, 181, 35, 36, 232, 142, 35, 36, 234, 180, 35, 36, - 233, 170, 35, 36, 233, 185, 35, 36, 232, 146, 35, 36, 233, 190, 35, 36, - 232, 151, 35, 36, 232, 157, 35, 36, 231, 131, 35, 36, 236, 5, 35, 36, - 234, 147, 35, 36, 234, 167, 35, 36, 233, 157, 35, 36, 234, 177, 35, 36, - 233, 167, 35, 36, 233, 182, 35, 36, 232, 143, 35, 36, 234, 181, 35, 36, - 233, 171, 35, 36, 233, 186, 35, 36, 232, 147, 35, 36, 233, 191, 35, 36, - 232, 152, 35, 36, 232, 158, 35, 36, 231, 132, 35, 36, 234, 182, 35, 36, - 233, 172, 35, 36, 233, 187, 35, 36, 232, 148, 35, 36, 233, 192, 35, 36, - 232, 153, 35, 36, 232, 159, 35, 36, 231, 133, 35, 36, 233, 193, 35, 36, - 232, 154, 35, 36, 232, 160, 35, 36, 231, 134, 35, 36, 232, 161, 35, 36, - 231, 135, 35, 36, 231, 136, 35, 36, 231, 64, 77, 234, 16, 65, 2, 59, 108, - 77, 234, 16, 65, 2, 45, 59, 108, 139, 45, 65, 2, 59, 108, 77, 45, 65, 2, - 59, 108, 40, 38, 45, 65, 2, 59, 108, 77, 234, 16, 65, 248, 44, 125, 139, - 45, 65, 248, 44, 125, 77, 45, 65, 248, 44, 125, 235, 45, 65, 2, 163, 108, - 226, 226, 65, 2, 163, 108, 226, 226, 240, 3, 56, 235, 45, 240, 3, 56, - 139, 45, 248, 63, 56, 77, 45, 248, 63, 56, 139, 240, 3, 248, 63, 56, 77, - 240, 3, 248, 63, 56, 77, 234, 16, 240, 3, 248, 63, 56, 77, 65, 2, 240, 4, - 243, 46, 226, 226, 65, 153, 125, 235, 45, 65, 153, 125, 77, 65, 2, 248, - 138, 2, 59, 108, 77, 65, 2, 248, 138, 2, 45, 59, 108, 77, 234, 16, 65, 2, - 242, 226, 77, 234, 16, 65, 2, 248, 138, 2, 59, 108, 77, 234, 16, 65, 2, - 248, 138, 2, 45, 59, 108, 139, 233, 64, 77, 233, 64, 139, 45, 233, 64, - 77, 45, 233, 64, 139, 65, 153, 86, 236, 164, 77, 65, 153, 86, 236, 164, - 139, 65, 248, 44, 253, 144, 153, 86, 236, 164, 77, 65, 248, 44, 253, 144, - 153, 86, 236, 164, 242, 223, 248, 56, 19, 242, 228, 248, 43, 56, 242, - 223, 248, 43, 19, 242, 228, 248, 56, 56, 242, 223, 248, 56, 65, 2, 90, - 242, 223, 248, 43, 65, 2, 90, 242, 228, 248, 43, 65, 2, 90, 242, 228, - 248, 56, 65, 2, 90, 242, 223, 248, 56, 65, 19, 242, 223, 248, 43, 56, - 242, 223, 248, 43, 65, 19, 242, 228, 248, 43, 56, 242, 228, 248, 43, 65, - 19, 242, 228, 248, 56, 56, 242, 228, 248, 56, 65, 19, 242, 223, 248, 56, - 56, 240, 69, 236, 159, 236, 185, 238, 105, 235, 86, 238, 105, 236, 159, - 236, 185, 240, 69, 235, 86, 242, 228, 248, 43, 65, 236, 185, 242, 223, - 248, 43, 56, 242, 223, 248, 43, 65, 236, 185, 242, 228, 248, 43, 56, 238, - 105, 236, 159, 236, 185, 242, 223, 248, 43, 56, 240, 69, 236, 159, 236, - 185, 242, 228, 248, 43, 56, 242, 223, 248, 43, 65, 236, 185, 242, 223, - 248, 56, 56, 242, 223, 248, 56, 65, 236, 185, 242, 223, 248, 43, 56, 248, - 141, 65, 236, 150, 237, 111, 225, 65, 236, 150, 77, 248, 187, 238, 111, - 236, 206, 65, 236, 150, 77, 248, 187, 238, 111, 234, 9, 65, 236, 150, - 235, 45, 248, 187, 238, 111, 234, 18, 65, 236, 150, 235, 45, 248, 187, - 238, 111, 233, 63, 234, 250, 253, 183, 235, 62, 56, 236, 50, 253, 183, - 231, 86, 56, 253, 159, 253, 183, 231, 86, 56, 240, 17, 253, 183, 231, 86, - 56, 253, 159, 253, 183, 235, 62, 65, 2, 240, 68, 253, 159, 253, 183, 231, - 86, 65, 2, 243, 12, 168, 38, 232, 98, 235, 62, 56, 168, 40, 232, 98, 231, - 86, 56, 231, 86, 240, 23, 218, 56, 235, 62, 240, 23, 218, 56, 77, 65, 60, - 242, 215, 139, 56, 139, 65, 60, 242, 215, 77, 56, 242, 215, 77, 65, 60, - 139, 56, 77, 65, 2, 248, 49, 46, 139, 65, 2, 248, 49, 46, 77, 65, 238, - 108, 206, 40, 38, 65, 238, 108, 3, 238, 51, 226, 226, 234, 16, 65, 248, - 44, 3, 238, 51, 40, 154, 88, 38, 154, 92, 236, 175, 40, 154, 92, 38, 154, - 88, 236, 175, 88, 154, 38, 92, 154, 40, 236, 175, 88, 154, 40, 92, 154, - 38, 236, 175, 40, 154, 88, 38, 154, 88, 236, 175, 88, 154, 38, 92, 154, - 38, 236, 175, 40, 154, 92, 38, 154, 92, 236, 175, 88, 154, 40, 92, 154, - 40, 236, 175, 139, 186, 2, 154, 88, 153, 125, 77, 186, 2, 154, 88, 153, - 125, 226, 226, 186, 2, 154, 38, 153, 125, 235, 45, 186, 2, 154, 38, 153, - 125, 139, 186, 2, 154, 92, 153, 125, 77, 186, 2, 154, 92, 153, 125, 226, - 226, 186, 2, 154, 40, 153, 125, 235, 45, 186, 2, 154, 40, 153, 125, 139, - 186, 2, 154, 88, 248, 44, 125, 77, 186, 2, 154, 88, 248, 44, 125, 226, - 226, 186, 2, 154, 38, 248, 44, 125, 235, 45, 186, 2, 154, 38, 248, 44, - 125, 139, 186, 2, 154, 92, 248, 44, 125, 77, 186, 2, 154, 92, 248, 44, - 125, 226, 226, 186, 2, 154, 40, 248, 44, 125, 235, 45, 186, 2, 154, 40, - 248, 44, 125, 139, 186, 2, 154, 88, 60, 139, 186, 2, 154, 242, 236, 226, - 226, 186, 2, 154, 40, 240, 45, 226, 226, 186, 2, 154, 225, 77, 186, 2, - 154, 88, 60, 77, 186, 2, 154, 242, 236, 235, 45, 186, 2, 154, 40, 240, - 45, 235, 45, 186, 2, 154, 225, 139, 186, 2, 154, 88, 60, 77, 186, 2, 154, - 253, 176, 139, 186, 2, 154, 92, 60, 77, 186, 2, 154, 242, 236, 77, 186, - 2, 154, 88, 60, 139, 186, 2, 154, 253, 176, 77, 186, 2, 154, 92, 60, 139, - 186, 2, 154, 242, 236, 139, 186, 2, 154, 88, 60, 183, 242, 235, 139, 186, - 2, 154, 92, 242, 230, 183, 242, 235, 77, 186, 2, 154, 88, 60, 183, 242, - 235, 77, 186, 2, 154, 92, 242, 230, 183, 242, 235, 226, 226, 186, 2, 154, - 40, 240, 45, 235, 45, 186, 2, 154, 225, 235, 45, 186, 2, 154, 40, 240, - 45, 226, 226, 186, 2, 154, 225, 38, 45, 65, 2, 238, 121, 243, 99, 240, 7, - 21, 60, 77, 56, 242, 219, 236, 208, 60, 77, 56, 139, 65, 60, 242, 219, - 235, 47, 77, 65, 60, 242, 219, 235, 47, 77, 65, 60, 240, 40, 95, 87, 235, - 44, 60, 139, 56, 139, 65, 238, 108, 234, 3, 232, 68, 60, 77, 56, 240, 26, - 60, 77, 56, 139, 65, 238, 108, 238, 87, 236, 154, 60, 139, 56, 40, 248, - 157, 242, 226, 38, 248, 157, 242, 226, 88, 248, 157, 242, 226, 92, 248, - 157, 242, 226, 240, 3, 59, 253, 144, 234, 35, 255, 97, 126, 247, 97, 255, - 97, 126, 249, 9, 240, 24, 40, 64, 242, 225, 104, 38, 64, 242, 225, 104, - 40, 64, 232, 74, 38, 64, 232, 74, 255, 97, 126, 40, 243, 11, 104, 255, - 97, 126, 38, 243, 11, 104, 255, 97, 126, 40, 238, 166, 104, 255, 97, 126, - 38, 238, 166, 104, 40, 31, 238, 52, 2, 235, 50, 38, 31, 238, 52, 2, 235, - 50, 40, 31, 238, 52, 2, 248, 188, 255, 22, 253, 159, 238, 67, 38, 31, - 238, 52, 2, 248, 188, 255, 22, 240, 17, 238, 67, 40, 31, 238, 52, 2, 248, - 188, 255, 22, 240, 17, 238, 67, 38, 31, 238, 52, 2, 248, 188, 255, 22, - 253, 159, 238, 67, 40, 185, 238, 52, 2, 248, 40, 38, 185, 238, 52, 2, - 248, 40, 40, 253, 183, 235, 44, 104, 38, 253, 183, 232, 68, 104, 45, 40, - 253, 183, 232, 68, 104, 45, 38, 253, 183, 235, 44, 104, 40, 86, 236, 171, - 242, 255, 104, 38, 86, 236, 171, 242, 255, 104, 240, 4, 240, 97, 59, 240, - 126, 242, 224, 236, 168, 185, 238, 96, 242, 220, 38, 185, 239, 240, 2, - 238, 59, 236, 168, 38, 185, 2, 248, 40, 185, 2, 255, 99, 238, 94, 242, - 241, 240, 54, 235, 109, 185, 238, 96, 242, 220, 235, 109, 185, 238, 96, - 253, 176, 205, 240, 54, 224, 240, 54, 185, 2, 235, 50, 224, 185, 2, 235, - 50, 238, 106, 185, 238, 96, 253, 176, 238, 106, 185, 238, 96, 242, 236, - 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, 150, 88, - 19, 225, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, - 150, 88, 19, 242, 220, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, - 22, 65, 236, 150, 92, 19, 225, 236, 168, 185, 2, 248, 35, 253, 229, 240, - 63, 255, 22, 65, 236, 150, 92, 19, 242, 220, 236, 168, 185, 2, 248, 35, - 253, 229, 240, 63, 255, 22, 65, 236, 150, 38, 19, 253, 176, 236, 168, - 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, 150, 40, 19, 253, - 176, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, 150, - 38, 19, 242, 236, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, - 65, 236, 150, 40, 19, 242, 236, 224, 243, 15, 249, 160, 243, 15, 254, 30, - 2, 236, 163, 243, 15, 254, 30, 2, 3, 218, 48, 243, 15, 254, 30, 2, 38, - 65, 48, 243, 15, 254, 30, 2, 40, 65, 48, 218, 2, 163, 125, 29, 59, 125, - 29, 235, 105, 29, 238, 75, 236, 177, 29, 231, 49, 218, 238, 135, 255, 25, - 163, 253, 144, 19, 253, 159, 137, 238, 135, 255, 25, 59, 125, 218, 2, - 233, 39, 206, 29, 226, 231, 236, 196, 52, 88, 65, 238, 108, 238, 51, 29, - 64, 238, 69, 29, 238, 69, 29, 234, 3, 29, 231, 85, 218, 2, 3, 218, 153, - 253, 145, 225, 218, 2, 171, 163, 239, 207, 153, 253, 145, 225, 238, 84, - 240, 69, 236, 159, 240, 37, 238, 84, 238, 105, 236, 159, 240, 37, 238, - 84, 235, 52, 238, 84, 3, 238, 51, 238, 84, 238, 59, 171, 240, 116, 238, - 12, 236, 152, 2, 53, 48, 236, 152, 2, 235, 50, 255, 99, 255, 22, 235, 46, - 236, 152, 2, 240, 220, 255, 31, 238, 128, 38, 236, 152, 60, 40, 235, 46, - 40, 236, 152, 240, 45, 59, 125, 59, 253, 144, 240, 45, 38, 235, 46, 240, - 161, 2, 40, 137, 240, 0, 240, 161, 2, 38, 137, 240, 0, 86, 238, 168, 243, - 48, 2, 40, 137, 240, 0, 243, 48, 2, 38, 137, 240, 0, 64, 234, 39, 86, - 234, 39, 40, 240, 125, 240, 97, 38, 240, 125, 240, 97, 40, 45, 240, 125, - 240, 97, 38, 45, 240, 125, 240, 97, 234, 204, 235, 101, 254, 248, 248, - 59, 235, 101, 237, 180, 238, 203, 2, 59, 125, 232, 162, 235, 103, 31, 2, - 235, 194, 237, 229, 236, 40, 254, 143, 239, 195, 236, 170, 240, 7, 21, - 19, 238, 58, 235, 105, 240, 7, 21, 19, 238, 58, 236, 200, 2, 242, 219, - 48, 235, 89, 153, 19, 238, 58, 235, 105, 241, 138, 242, 132, 231, 83, - 231, 91, 236, 152, 2, 40, 137, 240, 0, 231, 91, 236, 152, 2, 38, 137, - 240, 0, 86, 238, 76, 2, 92, 56, 86, 236, 231, 64, 218, 2, 92, 56, 86, - 218, 2, 92, 56, 232, 78, 64, 238, 59, 232, 78, 86, 238, 59, 232, 78, 64, - 236, 164, 232, 78, 86, 236, 164, 232, 78, 64, 238, 51, 232, 78, 86, 238, - 51, 231, 152, 238, 75, 238, 83, 235, 47, 238, 83, 2, 236, 163, 238, 75, - 238, 83, 2, 163, 108, 253, 213, 236, 177, 253, 213, 238, 75, 236, 177, - 45, 243, 12, 240, 3, 243, 12, 231, 87, 240, 95, 185, 104, 231, 36, 240, - 95, 185, 104, 247, 152, 246, 87, 242, 238, 29, 53, 235, 47, 242, 238, 29, - 248, 49, 235, 47, 242, 238, 29, 243, 48, 235, 47, 242, 238, 243, 2, 236, - 208, 2, 248, 40, 242, 238, 243, 2, 236, 208, 2, 243, 12, 242, 238, 31, - 232, 76, 235, 47, 242, 238, 31, 243, 2, 235, 47, 171, 238, 56, 19, 235, - 47, 171, 238, 56, 128, 235, 47, 242, 238, 243, 48, 235, 47, 241, 247, - 171, 252, 192, 235, 112, 2, 235, 60, 235, 71, 236, 167, 235, 47, 241, - 110, 249, 134, 235, 60, 236, 167, 2, 45, 108, 236, 167, 238, 255, 2, 240, - 37, 233, 122, 236, 29, 231, 86, 232, 177, 248, 41, 233, 70, 2, 233, 97, - 249, 135, 240, 127, 243, 116, 248, 41, 233, 70, 2, 232, 98, 249, 135, - 240, 127, 243, 116, 248, 41, 233, 70, 161, 236, 39, 253, 145, 243, 116, - 236, 167, 240, 127, 134, 242, 232, 235, 47, 234, 242, 236, 167, 235, 47, - 236, 167, 2, 139, 65, 2, 90, 236, 167, 2, 243, 48, 52, 236, 167, 2, 231, - 88, 236, 167, 2, 240, 58, 236, 167, 2, 236, 163, 236, 167, 2, 235, 50, - 243, 61, 243, 22, 40, 236, 152, 235, 47, 255, 97, 126, 240, 144, 232, - 104, 255, 97, 126, 240, 144, 239, 162, 255, 97, 126, 240, 144, 233, 225, - 248, 49, 21, 2, 3, 218, 48, 248, 49, 21, 2, 190, 240, 2, 48, 248, 49, 21, - 2, 242, 219, 48, 248, 49, 21, 2, 53, 46, 248, 49, 21, 2, 242, 219, 46, - 248, 49, 21, 2, 235, 48, 111, 248, 49, 21, 2, 86, 235, 46, 242, 250, 21, - 2, 242, 244, 48, 242, 250, 21, 2, 53, 46, 242, 250, 21, 2, 238, 105, 243, - 5, 242, 250, 21, 2, 240, 69, 243, 5, 248, 49, 21, 255, 22, 40, 137, 238, - 51, 248, 49, 21, 255, 22, 38, 137, 238, 51, 242, 176, 128, 243, 38, 236, - 170, 231, 37, 21, 2, 53, 48, 231, 37, 21, 2, 235, 50, 234, 21, 239, 167, - 2, 240, 17, 239, 29, 244, 20, 236, 170, 231, 37, 21, 255, 22, 40, 137, - 238, 51, 231, 37, 21, 255, 22, 38, 137, 238, 51, 29, 231, 37, 21, 2, 190, - 238, 54, 231, 37, 21, 255, 22, 45, 238, 51, 29, 236, 196, 52, 248, 49, - 21, 255, 22, 235, 46, 242, 250, 21, 255, 22, 235, 46, 231, 37, 21, 255, - 22, 235, 46, 237, 14, 236, 170, 236, 93, 237, 14, 236, 170, 255, 97, 126, - 234, 246, 232, 104, 232, 115, 128, 234, 50, 232, 76, 2, 248, 40, 243, 2, - 2, 242, 250, 52, 243, 2, 2, 236, 163, 232, 76, 2, 236, 163, 232, 76, 2, - 238, 56, 248, 91, 243, 2, 2, 238, 56, 253, 227, 243, 2, 60, 231, 88, 232, - 76, 60, 240, 58, 243, 2, 60, 253, 144, 60, 231, 88, 232, 76, 60, 253, - 144, 60, 240, 58, 243, 2, 240, 45, 19, 240, 116, 2, 240, 58, 232, 76, - 240, 45, 19, 240, 116, 2, 231, 88, 240, 23, 243, 2, 2, 238, 214, 240, 23, - 232, 76, 2, 238, 214, 45, 31, 231, 88, 45, 31, 240, 58, 240, 23, 243, 2, - 2, 240, 220, 19, 244, 20, 236, 170, 238, 56, 19, 2, 53, 48, 238, 56, 128, - 2, 53, 48, 45, 238, 56, 248, 91, 45, 238, 56, 253, 227, 171, 232, 105, - 238, 56, 248, 91, 171, 232, 105, 238, 56, 253, 227, 238, 217, 243, 22, - 253, 227, 238, 217, 243, 22, 248, 91, 238, 56, 128, 233, 91, 238, 56, - 248, 91, 238, 56, 19, 2, 240, 1, 243, 46, 238, 56, 128, 2, 240, 1, 243, - 46, 238, 56, 19, 2, 163, 242, 235, 238, 56, 128, 2, 163, 242, 235, 238, - 56, 19, 2, 45, 236, 163, 238, 56, 19, 2, 235, 50, 238, 56, 19, 2, 45, - 235, 50, 3, 254, 255, 2, 235, 50, 238, 56, 128, 2, 45, 236, 163, 238, 56, - 128, 2, 45, 235, 50, 255, 97, 126, 241, 87, 227, 10, 255, 97, 126, 247, - 28, 227, 10, 240, 7, 21, 2, 53, 46, 235, 89, 2, 53, 48, 240, 3, 163, 253, - 144, 2, 45, 59, 108, 240, 3, 163, 253, 144, 2, 240, 3, 59, 108, 242, 219, - 236, 208, 2, 53, 48, 242, 219, 236, 208, 2, 240, 69, 243, 5, 238, 81, - 242, 250, 238, 5, 235, 192, 2, 53, 48, 240, 7, 2, 235, 52, 240, 40, 95, - 153, 2, 190, 238, 54, 231, 89, 95, 128, 95, 87, 240, 7, 21, 60, 248, 49, - 52, 248, 49, 21, 60, 240, 7, 52, 240, 7, 21, 60, 242, 219, 235, 47, 45, - 243, 14, 240, 32, 171, 233, 82, 240, 7, 240, 232, 204, 233, 82, 240, 7, - 240, 232, 240, 7, 21, 2, 171, 181, 60, 19, 171, 181, 46, 234, 5, 2, 248, - 58, 181, 48, 235, 44, 2, 218, 238, 94, 232, 68, 2, 218, 238, 94, 235, 44, - 2, 236, 156, 158, 48, 232, 68, 2, 236, 156, 158, 48, 235, 44, 128, 238, - 58, 95, 87, 232, 68, 128, 238, 58, 95, 87, 235, 44, 128, 238, 58, 95, - 153, 2, 53, 238, 94, 232, 68, 128, 238, 58, 95, 153, 2, 53, 238, 94, 235, - 44, 128, 238, 58, 95, 153, 2, 53, 48, 232, 68, 128, 238, 58, 95, 153, 2, - 53, 48, 235, 44, 128, 238, 58, 95, 153, 2, 53, 60, 225, 232, 68, 128, - 238, 58, 95, 153, 2, 53, 60, 242, 220, 235, 44, 128, 232, 81, 232, 68, - 128, 232, 81, 235, 44, 19, 233, 61, 161, 95, 87, 232, 68, 19, 233, 61, - 161, 95, 87, 235, 44, 19, 161, 232, 81, 232, 68, 19, 161, 232, 81, 235, - 44, 60, 233, 57, 95, 60, 231, 85, 232, 68, 60, 233, 57, 95, 60, 234, 3, - 235, 44, 60, 238, 81, 128, 240, 32, 232, 68, 60, 238, 81, 128, 240, 32, - 235, 44, 60, 238, 81, 60, 231, 85, 232, 68, 60, 238, 81, 60, 234, 3, 235, - 44, 60, 232, 68, 60, 233, 57, 240, 32, 232, 68, 60, 235, 44, 60, 233, 57, - 240, 32, 235, 44, 60, 238, 58, 95, 60, 232, 68, 60, 238, 58, 240, 32, - 232, 68, 60, 238, 58, 95, 60, 235, 44, 60, 238, 58, 240, 32, 238, 58, 95, - 153, 128, 234, 3, 238, 58, 95, 153, 128, 231, 85, 238, 58, 95, 153, 128, - 235, 44, 2, 53, 238, 94, 238, 58, 95, 153, 128, 232, 68, 2, 53, 238, 94, - 233, 57, 95, 153, 128, 234, 3, 233, 57, 95, 153, 128, 231, 85, 233, 57, - 238, 58, 95, 153, 128, 234, 3, 233, 57, 238, 58, 95, 153, 128, 231, 85, - 238, 81, 128, 234, 3, 238, 81, 128, 231, 85, 238, 81, 60, 235, 44, 60, - 240, 7, 52, 238, 81, 60, 232, 68, 60, 240, 7, 52, 45, 240, 102, 234, 3, - 45, 240, 102, 231, 85, 45, 240, 102, 235, 44, 2, 235, 50, 232, 68, 233, - 91, 234, 3, 232, 68, 240, 45, 234, 3, 235, 44, 240, 23, 255, 25, 240, - 163, 232, 68, 240, 23, 255, 25, 240, 163, 235, 44, 240, 23, 255, 25, 243, - 158, 60, 238, 58, 240, 32, 232, 68, 240, 23, 255, 25, 243, 158, 60, 238, - 58, 240, 32, 238, 218, 243, 127, 240, 196, 243, 127, 238, 218, 249, 1, - 128, 95, 87, 240, 196, 249, 1, 128, 95, 87, 240, 7, 21, 2, 244, 232, 48, - 236, 176, 60, 233, 61, 240, 7, 52, 236, 178, 60, 233, 61, 240, 7, 52, - 236, 176, 60, 233, 61, 161, 95, 87, 236, 178, 60, 233, 61, 161, 95, 87, - 236, 176, 60, 240, 7, 52, 236, 178, 60, 240, 7, 52, 236, 176, 60, 161, - 95, 87, 236, 178, 60, 161, 95, 87, 236, 176, 60, 240, 40, 95, 87, 236, - 178, 60, 240, 40, 95, 87, 236, 176, 60, 161, 240, 40, 95, 87, 236, 178, - 60, 161, 240, 40, 95, 87, 45, 235, 107, 45, 235, 111, 240, 26, 2, 248, - 40, 236, 154, 2, 248, 40, 240, 26, 2, 248, 49, 21, 46, 236, 154, 2, 248, - 49, 21, 46, 240, 26, 2, 231, 37, 21, 46, 236, 154, 2, 231, 37, 21, 46, - 240, 26, 147, 128, 95, 153, 2, 53, 48, 236, 154, 147, 128, 95, 153, 2, - 53, 48, 240, 26, 147, 60, 240, 7, 52, 236, 154, 147, 60, 240, 7, 52, 240, - 26, 147, 60, 242, 219, 235, 47, 236, 154, 147, 60, 242, 219, 235, 47, - 240, 26, 147, 60, 240, 40, 95, 87, 236, 154, 147, 60, 240, 40, 95, 87, - 240, 26, 147, 60, 161, 95, 87, 236, 154, 147, 60, 161, 95, 87, 31, 40, - 248, 35, 66, 235, 47, 31, 38, 248, 35, 66, 235, 47, 240, 23, 238, 87, - 240, 23, 235, 84, 240, 23, 240, 26, 128, 95, 87, 240, 23, 236, 154, 128, - 95, 87, 240, 26, 60, 235, 84, 236, 154, 60, 238, 87, 240, 26, 60, 238, - 87, 236, 154, 60, 235, 84, 236, 154, 240, 45, 238, 87, 236, 154, 240, 45, - 19, 240, 116, 255, 25, 248, 63, 2, 238, 87, 238, 68, 147, 238, 96, 234, - 9, 236, 75, 2, 254, 246, 249, 3, 233, 254, 231, 88, 237, 160, 233, 220, - 242, 215, 40, 242, 234, 242, 215, 92, 242, 234, 242, 215, 88, 242, 234, - 231, 151, 2, 193, 59, 253, 144, 240, 3, 38, 234, 15, 45, 59, 253, 144, - 40, 234, 15, 59, 253, 144, 45, 40, 234, 15, 45, 59, 253, 144, 45, 40, - 234, 15, 183, 248, 63, 248, 44, 40, 241, 234, 147, 45, 235, 63, 242, 215, - 92, 248, 84, 2, 236, 163, 242, 215, 88, 248, 84, 2, 235, 50, 242, 215, - 88, 248, 84, 60, 242, 215, 92, 242, 234, 45, 92, 242, 234, 45, 88, 242, - 234, 45, 240, 5, 161, 52, 224, 45, 240, 5, 161, 52, 248, 86, 161, 241, - 86, 2, 224, 237, 217, 240, 37, 59, 248, 41, 2, 218, 48, 59, 248, 41, 2, - 218, 46, 92, 248, 84, 2, 218, 46, 236, 200, 2, 163, 108, 236, 200, 2, - 242, 219, 235, 47, 240, 3, 59, 253, 144, 240, 159, 235, 92, 240, 3, 59, - 253, 144, 2, 163, 108, 240, 3, 243, 14, 235, 47, 240, 3, 240, 102, 234, - 3, 240, 3, 240, 102, 231, 85, 233, 57, 238, 58, 235, 44, 128, 95, 87, - 233, 57, 238, 58, 232, 68, 128, 95, 87, 240, 3, 238, 83, 240, 159, 235, - 92, 243, 22, 240, 3, 59, 253, 144, 235, 47, 45, 238, 83, 235, 47, 64, 59, - 125, 242, 238, 64, 59, 125, 242, 223, 248, 43, 64, 56, 242, 223, 248, 56, - 64, 56, 242, 228, 248, 43, 64, 56, 242, 228, 248, 56, 64, 56, 40, 38, 64, - 56, 139, 86, 56, 226, 226, 86, 56, 235, 45, 86, 56, 242, 223, 248, 43, - 86, 56, 242, 223, 248, 56, 86, 56, 242, 228, 248, 43, 86, 56, 242, 228, - 248, 56, 86, 56, 40, 38, 86, 56, 88, 92, 86, 56, 77, 65, 2, 253, 241, - 234, 9, 77, 65, 2, 253, 241, 236, 206, 139, 65, 2, 253, 241, 234, 9, 139, - 65, 2, 253, 241, 236, 206, 31, 2, 253, 159, 137, 240, 0, 31, 2, 240, 17, - 137, 240, 0, 98, 5, 1, 249, 29, 98, 5, 1, 243, 152, 98, 5, 1, 244, 45, - 98, 5, 1, 237, 12, 98, 5, 1, 240, 170, 98, 5, 1, 240, 254, 98, 5, 1, 237, - 52, 98, 5, 1, 240, 171, 98, 5, 1, 238, 235, 98, 5, 1, 243, 60, 98, 5, 1, - 54, 243, 60, 98, 5, 1, 71, 98, 5, 1, 238, 178, 98, 5, 1, 243, 204, 98, 5, - 1, 237, 21, 98, 5, 1, 236, 216, 98, 5, 1, 240, 202, 98, 5, 1, 249, 131, - 98, 5, 1, 238, 210, 98, 5, 1, 240, 217, 98, 5, 1, 240, 235, 98, 5, 1, - 238, 230, 98, 5, 1, 249, 190, 98, 5, 1, 240, 177, 98, 5, 1, 243, 193, 98, - 5, 1, 249, 132, 98, 5, 1, 253, 175, 98, 5, 1, 244, 14, 98, 5, 1, 248, - 140, 98, 5, 1, 238, 170, 98, 5, 1, 248, 46, 98, 5, 1, 243, 83, 98, 5, 1, - 244, 57, 98, 5, 1, 244, 56, 98, 5, 1, 238, 221, 219, 98, 5, 1, 253, 161, - 98, 5, 1, 3, 248, 74, 98, 5, 1, 3, 254, 136, 2, 242, 226, 98, 5, 1, 253, - 162, 98, 5, 1, 238, 117, 3, 248, 74, 98, 5, 1, 253, 213, 248, 74, 98, 5, - 1, 238, 117, 253, 213, 248, 74, 98, 5, 1, 243, 57, 98, 5, 1, 236, 215, - 98, 5, 1, 237, 40, 98, 5, 1, 234, 87, 67, 98, 5, 1, 237, 19, 236, 216, - 98, 3, 1, 249, 29, 98, 3, 1, 243, 152, 98, 3, 1, 244, 45, 98, 3, 1, 237, - 12, 98, 3, 1, 240, 170, 98, 3, 1, 240, 254, 98, 3, 1, 237, 52, 98, 3, 1, - 240, 171, 98, 3, 1, 238, 235, 98, 3, 1, 243, 60, 98, 3, 1, 54, 243, 60, - 98, 3, 1, 71, 98, 3, 1, 238, 178, 98, 3, 1, 243, 204, 98, 3, 1, 237, 21, - 98, 3, 1, 236, 216, 98, 3, 1, 240, 202, 98, 3, 1, 249, 131, 98, 3, 1, - 238, 210, 98, 3, 1, 240, 217, 98, 3, 1, 240, 235, 98, 3, 1, 238, 230, 98, - 3, 1, 249, 190, 98, 3, 1, 240, 177, 98, 3, 1, 243, 193, 98, 3, 1, 249, - 132, 98, 3, 1, 253, 175, 98, 3, 1, 244, 14, 98, 3, 1, 248, 140, 98, 3, 1, - 238, 170, 98, 3, 1, 248, 46, 98, 3, 1, 243, 83, 98, 3, 1, 244, 57, 98, 3, - 1, 244, 56, 98, 3, 1, 238, 221, 219, 98, 3, 1, 253, 161, 98, 3, 1, 3, - 248, 74, 98, 3, 1, 3, 254, 136, 2, 242, 226, 98, 3, 1, 253, 162, 98, 3, - 1, 238, 117, 3, 248, 74, 98, 3, 1, 253, 213, 248, 74, 98, 3, 1, 238, 117, - 253, 213, 248, 74, 98, 3, 1, 243, 57, 98, 3, 1, 236, 215, 98, 3, 1, 237, - 40, 98, 3, 1, 234, 87, 67, 98, 3, 1, 237, 19, 236, 216, 62, 5, 1, 243, - 141, 62, 3, 1, 243, 141, 62, 5, 1, 244, 47, 62, 3, 1, 244, 47, 62, 5, 1, - 240, 10, 62, 3, 1, 240, 10, 62, 5, 1, 240, 164, 62, 3, 1, 240, 164, 62, - 5, 1, 248, 154, 62, 3, 1, 248, 154, 62, 5, 1, 249, 167, 62, 3, 1, 249, - 167, 62, 5, 1, 244, 65, 62, 3, 1, 244, 65, 62, 5, 1, 243, 190, 62, 3, 1, - 243, 190, 62, 5, 1, 238, 226, 62, 3, 1, 238, 226, 62, 5, 1, 240, 191, 62, - 3, 1, 240, 191, 62, 5, 1, 243, 62, 62, 3, 1, 243, 62, 62, 5, 1, 240, 197, - 62, 3, 1, 240, 197, 62, 5, 1, 253, 180, 62, 3, 1, 253, 180, 62, 5, 1, - 253, 166, 62, 3, 1, 253, 166, 62, 5, 1, 248, 163, 62, 3, 1, 248, 163, 62, - 5, 1, 73, 62, 3, 1, 73, 62, 5, 1, 253, 147, 62, 3, 1, 253, 147, 62, 5, 1, - 253, 160, 62, 3, 1, 253, 160, 62, 5, 1, 243, 123, 62, 3, 1, 243, 123, 62, - 5, 1, 248, 85, 62, 3, 1, 248, 85, 62, 5, 1, 254, 74, 62, 3, 1, 254, 74, - 62, 5, 1, 253, 245, 62, 3, 1, 253, 245, 62, 5, 1, 248, 219, 62, 3, 1, - 248, 219, 62, 5, 1, 248, 69, 62, 3, 1, 248, 69, 62, 5, 1, 248, 179, 62, - 3, 1, 248, 179, 62, 5, 1, 235, 67, 243, 3, 62, 3, 1, 235, 67, 243, 3, 62, - 5, 1, 76, 62, 248, 105, 62, 3, 1, 76, 62, 248, 105, 62, 5, 1, 231, 93, - 248, 154, 62, 3, 1, 231, 93, 248, 154, 62, 5, 1, 235, 67, 243, 62, 62, 3, - 1, 235, 67, 243, 62, 62, 5, 1, 235, 67, 253, 166, 62, 3, 1, 235, 67, 253, - 166, 62, 5, 1, 231, 93, 253, 166, 62, 3, 1, 231, 93, 253, 166, 62, 5, 1, - 76, 62, 248, 179, 62, 3, 1, 76, 62, 248, 179, 62, 5, 1, 240, 121, 62, 3, - 1, 240, 121, 62, 5, 1, 238, 133, 243, 32, 62, 3, 1, 238, 133, 243, 32, - 62, 5, 1, 76, 62, 243, 32, 62, 3, 1, 76, 62, 243, 32, 62, 5, 1, 76, 62, - 248, 93, 62, 3, 1, 76, 62, 248, 93, 62, 5, 1, 236, 245, 243, 64, 62, 3, - 1, 236, 245, 243, 64, 62, 5, 1, 235, 67, 243, 28, 62, 3, 1, 235, 67, 243, - 28, 62, 5, 1, 76, 62, 243, 28, 62, 3, 1, 76, 62, 243, 28, 62, 5, 1, 76, - 62, 219, 62, 3, 1, 76, 62, 219, 62, 5, 1, 237, 18, 219, 62, 3, 1, 237, - 18, 219, 62, 5, 1, 76, 62, 249, 81, 62, 3, 1, 76, 62, 249, 81, 62, 5, 1, - 76, 62, 248, 214, 62, 3, 1, 76, 62, 248, 214, 62, 5, 1, 76, 62, 238, 115, - 62, 3, 1, 76, 62, 238, 115, 62, 5, 1, 76, 62, 249, 54, 62, 3, 1, 76, 62, - 249, 54, 62, 5, 1, 76, 62, 240, 88, 62, 3, 1, 76, 62, 240, 88, 62, 5, 1, - 76, 240, 43, 240, 88, 62, 3, 1, 76, 240, 43, 240, 88, 62, 5, 1, 76, 240, - 43, 248, 232, 62, 3, 1, 76, 240, 43, 248, 232, 62, 5, 1, 76, 240, 43, - 248, 178, 62, 3, 1, 76, 240, 43, 248, 178, 62, 5, 1, 76, 240, 43, 249, - 198, 62, 3, 1, 76, 240, 43, 249, 198, 62, 12, 249, 91, 62, 12, 255, 82, - 253, 160, 62, 12, 255, 29, 253, 160, 62, 12, 238, 13, 62, 12, 254, 244, - 253, 160, 62, 12, 254, 184, 253, 160, 62, 12, 247, 74, 243, 123, 62, 76, - 240, 43, 248, 37, 208, 62, 76, 240, 43, 240, 169, 236, 156, 69, 62, 76, - 240, 43, 237, 179, 236, 156, 69, 62, 76, 240, 43, 244, 46, 236, 213, 62, - 236, 155, 253, 125, 243, 7, 62, 248, 37, 208, 62, 231, 149, 236, 213, 75, - 3, 1, 254, 19, 75, 3, 1, 248, 195, 75, 3, 1, 248, 158, 75, 3, 1, 248, - 205, 75, 3, 1, 253, 202, 75, 3, 1, 249, 11, 75, 3, 1, 249, 25, 75, 3, 1, - 248, 253, 75, 3, 1, 253, 247, 75, 3, 1, 248, 162, 75, 3, 1, 248, 224, 75, - 3, 1, 248, 131, 75, 3, 1, 248, 171, 75, 3, 1, 254, 9, 75, 3, 1, 248, 236, - 75, 3, 1, 243, 138, 75, 3, 1, 248, 243, 75, 3, 1, 248, 134, 75, 3, 1, - 248, 254, 75, 3, 1, 254, 75, 75, 3, 1, 243, 115, 75, 3, 1, 243, 103, 75, - 3, 1, 243, 95, 75, 3, 1, 248, 242, 75, 3, 1, 243, 33, 75, 3, 1, 243, 88, - 75, 3, 1, 248, 100, 75, 3, 1, 248, 217, 75, 3, 1, 248, 201, 75, 3, 1, - 243, 87, 75, 3, 1, 249, 16, 75, 3, 1, 243, 101, 75, 3, 1, 248, 212, 75, - 3, 1, 253, 168, 75, 3, 1, 248, 160, 75, 3, 1, 253, 170, 75, 3, 1, 248, - 213, 75, 3, 1, 248, 215, 174, 1, 216, 174, 1, 253, 65, 174, 1, 247, 213, - 174, 1, 253, 68, 174, 1, 242, 193, 174, 1, 240, 158, 238, 157, 249, 202, - 174, 1, 249, 202, 174, 1, 253, 66, 174, 1, 247, 216, 174, 1, 247, 215, - 174, 1, 242, 192, 174, 1, 253, 79, 174, 1, 253, 67, 174, 1, 249, 20, 174, - 1, 240, 66, 249, 20, 174, 1, 242, 194, 174, 1, 249, 19, 174, 1, 240, 158, - 238, 157, 249, 19, 174, 1, 240, 66, 249, 19, 174, 1, 247, 218, 174, 1, - 248, 191, 174, 1, 244, 55, 174, 1, 240, 66, 244, 55, 174, 1, 249, 204, - 174, 1, 240, 66, 249, 204, 174, 1, 253, 189, 174, 1, 243, 135, 174, 1, - 238, 239, 243, 135, 174, 1, 240, 66, 243, 135, 174, 1, 253, 69, 174, 1, - 253, 70, 174, 1, 249, 203, 174, 1, 240, 66, 247, 217, 174, 1, 240, 66, - 243, 50, 174, 1, 253, 71, 174, 1, 253, 161, 174, 1, 253, 72, 174, 1, 247, - 219, 174, 1, 243, 134, 174, 1, 240, 66, 243, 134, 174, 1, 249, 246, 243, - 134, 174, 1, 253, 73, 174, 1, 247, 221, 174, 1, 247, 220, 174, 1, 249, - 21, 174, 1, 247, 222, 174, 1, 247, 214, 174, 1, 247, 223, 174, 1, 253, - 74, 174, 1, 253, 75, 174, 1, 253, 76, 174, 1, 249, 205, 174, 1, 235, 32, - 249, 205, 174, 1, 247, 224, 174, 49, 1, 231, 146, 69, 22, 4, 251, 202, - 22, 4, 251, 239, 22, 4, 252, 142, 22, 4, 252, 183, 22, 4, 247, 75, 22, 4, - 250, 128, 22, 4, 252, 226, 22, 4, 250, 165, 22, 4, 252, 32, 22, 4, 246, - 205, 22, 4, 238, 62, 254, 117, 22, 4, 253, 109, 22, 4, 250, 202, 22, 4, - 245, 49, 22, 4, 251, 122, 22, 4, 247, 145, 22, 4, 245, 4, 22, 4, 246, - 246, 22, 4, 252, 71, 22, 4, 245, 116, 22, 4, 245, 118, 22, 4, 241, 135, - 22, 4, 245, 117, 22, 4, 248, 66, 22, 4, 248, 251, 22, 4, 248, 249, 22, 4, - 247, 99, 22, 4, 247, 103, 22, 4, 249, 168, 22, 4, 248, 250, 22, 4, 250, - 148, 22, 4, 250, 152, 22, 4, 250, 150, 22, 4, 244, 245, 22, 4, 244, 246, - 22, 4, 250, 149, 22, 4, 250, 151, 22, 4, 249, 224, 22, 4, 249, 228, 22, - 4, 249, 226, 22, 4, 248, 15, 22, 4, 248, 19, 22, 4, 249, 225, 22, 4, 249, - 227, 22, 4, 244, 247, 22, 4, 244, 251, 22, 4, 244, 249, 22, 4, 241, 45, - 22, 4, 241, 46, 22, 4, 244, 248, 22, 4, 244, 250, 22, 4, 252, 115, 22, 4, - 252, 122, 22, 4, 252, 117, 22, 4, 247, 23, 22, 4, 247, 24, 22, 4, 252, - 116, 22, 4, 252, 118, 22, 4, 251, 175, 22, 4, 251, 179, 22, 4, 251, 177, - 22, 4, 246, 31, 22, 4, 246, 32, 22, 4, 251, 176, 22, 4, 251, 178, 22, 4, - 253, 56, 22, 4, 253, 63, 22, 4, 253, 58, 22, 4, 247, 208, 22, 4, 247, - 209, 22, 4, 253, 57, 22, 4, 253, 59, 22, 4, 251, 39, 22, 4, 251, 44, 22, - 4, 251, 42, 22, 4, 245, 136, 22, 4, 245, 137, 22, 4, 251, 40, 22, 4, 251, - 43, 38, 185, 232, 79, 238, 95, 38, 185, 240, 4, 232, 79, 238, 95, 40, - 232, 79, 104, 38, 232, 79, 104, 40, 240, 4, 232, 79, 104, 38, 240, 4, - 232, 79, 104, 240, 84, 231, 107, 238, 95, 240, 84, 240, 4, 231, 107, 238, - 95, 240, 4, 231, 100, 238, 95, 40, 231, 100, 104, 38, 231, 100, 104, 240, - 84, 238, 59, 40, 240, 84, 237, 26, 104, 38, 240, 84, 237, 26, 104, 236, - 11, 237, 92, 232, 95, 240, 176, 232, 95, 224, 240, 176, 232, 95, 231, - 140, 240, 4, 239, 149, 235, 45, 238, 160, 226, 226, 238, 160, 240, 4, - 231, 36, 240, 54, 45, 238, 106, 238, 93, 40, 170, 234, 61, 104, 38, 170, - 234, 61, 104, 7, 25, 239, 173, 7, 25, 240, 131, 7, 25, 240, 87, 127, 7, - 25, 240, 87, 111, 7, 25, 240, 87, 166, 7, 25, 239, 160, 7, 25, 248, 92, - 7, 25, 240, 241, 7, 25, 243, 209, 127, 7, 25, 243, 209, 111, 7, 25, 233, - 83, 7, 25, 244, 5, 7, 25, 3, 127, 7, 25, 3, 111, 7, 25, 248, 164, 127, 7, - 25, 248, 164, 111, 7, 25, 248, 164, 166, 7, 25, 248, 164, 177, 7, 25, - 242, 119, 7, 25, 238, 228, 7, 25, 244, 21, 127, 7, 25, 244, 21, 111, 7, - 25, 243, 16, 127, 7, 25, 243, 16, 111, 7, 25, 243, 59, 7, 25, 248, 244, - 7, 25, 241, 54, 7, 25, 248, 136, 7, 25, 243, 30, 7, 25, 240, 167, 7, 25, - 239, 140, 7, 25, 235, 189, 7, 25, 244, 50, 127, 7, 25, 244, 50, 111, 7, - 25, 243, 27, 7, 25, 254, 122, 127, 7, 25, 254, 122, 111, 7, 25, 234, 23, - 137, 249, 185, 240, 247, 7, 25, 248, 202, 7, 25, 249, 56, 7, 25, 243, - 199, 7, 25, 249, 33, 147, 240, 132, 7, 25, 249, 59, 7, 25, 240, 237, 127, - 7, 25, 240, 237, 111, 7, 25, 238, 164, 7, 25, 243, 122, 7, 25, 232, 72, - 243, 122, 7, 25, 254, 41, 127, 7, 25, 254, 41, 111, 7, 25, 254, 41, 166, - 7, 25, 254, 41, 177, 7, 25, 246, 65, 7, 25, 240, 225, 7, 25, 249, 151, 7, - 25, 249, 58, 7, 25, 249, 129, 7, 25, 243, 151, 127, 7, 25, 243, 151, 111, - 7, 25, 243, 222, 7, 25, 238, 202, 7, 25, 243, 97, 127, 7, 25, 243, 97, - 111, 7, 25, 243, 97, 166, 7, 25, 240, 245, 7, 25, 236, 255, 7, 25, 248, - 56, 127, 7, 25, 248, 56, 111, 7, 25, 232, 72, 248, 184, 7, 25, 234, 23, - 243, 8, 7, 25, 243, 8, 7, 25, 232, 72, 238, 220, 7, 25, 232, 72, 240, - 227, 7, 25, 243, 94, 7, 25, 232, 72, 243, 154, 7, 25, 234, 23, 244, 48, - 7, 25, 249, 13, 127, 7, 25, 249, 13, 111, 7, 25, 243, 156, 7, 25, 232, - 72, 243, 96, 7, 25, 183, 127, 7, 25, 183, 111, 7, 25, 232, 72, 243, 66, - 7, 25, 232, 72, 243, 178, 7, 25, 243, 227, 127, 7, 25, 243, 227, 111, 7, - 25, 243, 250, 7, 25, 243, 149, 7, 25, 232, 72, 240, 242, 236, 230, 7, 25, - 232, 72, 243, 214, 7, 25, 232, 72, 243, 82, 7, 25, 232, 72, 249, 63, 7, - 25, 254, 58, 127, 7, 25, 254, 58, 111, 7, 25, 254, 58, 166, 7, 25, 232, - 72, 248, 207, 7, 25, 243, 99, 7, 25, 232, 72, 240, 189, 7, 25, 243, 150, - 7, 25, 240, 181, 7, 25, 232, 72, 243, 172, 7, 25, 232, 72, 243, 85, 7, - 25, 232, 72, 244, 4, 7, 25, 234, 23, 240, 153, 7, 25, 234, 23, 238, 232, - 7, 25, 232, 72, 243, 176, 7, 25, 232, 84, 243, 93, 7, 25, 232, 72, 243, - 93, 7, 25, 232, 84, 240, 151, 7, 25, 232, 72, 240, 151, 7, 25, 232, 84, - 238, 137, 7, 25, 232, 72, 238, 137, 7, 25, 238, 125, 7, 25, 232, 84, 238, - 125, 7, 25, 232, 72, 238, 125, 43, 25, 127, 43, 25, 242, 224, 43, 25, - 248, 40, 43, 25, 240, 37, 43, 25, 239, 185, 43, 25, 90, 43, 25, 111, 43, - 25, 251, 195, 43, 25, 248, 131, 43, 25, 246, 41, 43, 25, 241, 95, 43, 25, - 195, 43, 25, 92, 248, 92, 43, 25, 241, 67, 43, 25, 249, 84, 43, 25, 240, - 241, 43, 25, 248, 35, 248, 92, 43, 25, 241, 204, 43, 25, 240, 210, 43, - 25, 247, 197, 43, 25, 242, 125, 43, 25, 38, 248, 35, 248, 92, 43, 25, - 241, 150, 234, 36, 43, 25, 248, 53, 43, 25, 233, 83, 43, 25, 244, 5, 43, - 25, 240, 131, 43, 25, 237, 243, 43, 25, 241, 6, 43, 25, 240, 201, 43, 25, - 234, 36, 43, 25, 240, 49, 43, 25, 238, 2, 43, 25, 253, 234, 43, 25, 255, - 75, 239, 198, 43, 25, 237, 153, 43, 25, 250, 123, 43, 25, 240, 253, 43, - 25, 241, 52, 43, 25, 247, 34, 43, 25, 245, 227, 43, 25, 240, 147, 43, 25, - 246, 37, 43, 25, 239, 32, 43, 25, 239, 202, 43, 25, 235, 102, 43, 25, - 242, 84, 43, 25, 247, 196, 43, 25, 237, 226, 43, 25, 239, 232, 43, 25, - 250, 207, 43, 25, 242, 215, 238, 228, 43, 25, 240, 4, 240, 131, 43, 25, - 183, 239, 206, 43, 25, 171, 241, 147, 43, 25, 242, 107, 43, 25, 248, 198, - 43, 25, 242, 120, 43, 25, 237, 80, 43, 25, 247, 121, 43, 25, 240, 138, - 43, 25, 237, 169, 43, 25, 245, 72, 43, 25, 243, 59, 43, 25, 239, 12, 43, - 25, 248, 244, 43, 25, 239, 183, 43, 25, 239, 44, 43, 25, 249, 245, 43, - 25, 238, 59, 43, 25, 248, 233, 43, 25, 248, 136, 43, 25, 252, 169, 43, - 25, 243, 30, 43, 25, 244, 37, 43, 25, 246, 35, 43, 25, 208, 43, 25, 240, - 167, 43, 25, 239, 247, 43, 25, 255, 48, 248, 233, 43, 25, 237, 89, 43, - 25, 249, 64, 43, 25, 245, 21, 43, 25, 242, 133, 43, 25, 240, 105, 43, 25, - 243, 27, 43, 25, 245, 22, 43, 25, 239, 67, 43, 25, 45, 206, 43, 25, 137, - 249, 185, 240, 247, 43, 25, 242, 115, 43, 25, 245, 89, 43, 25, 248, 202, - 43, 25, 249, 56, 43, 25, 236, 80, 43, 25, 243, 199, 43, 25, 241, 233, 43, - 25, 247, 151, 43, 25, 242, 136, 43, 25, 246, 51, 43, 25, 253, 5, 43, 25, - 241, 106, 43, 25, 249, 33, 147, 240, 132, 43, 25, 236, 103, 43, 25, 240, - 4, 247, 139, 43, 25, 240, 39, 43, 25, 247, 91, 43, 25, 245, 68, 43, 25, - 249, 59, 43, 25, 240, 236, 43, 25, 56, 43, 25, 242, 134, 43, 25, 239, - 201, 43, 25, 242, 156, 43, 25, 241, 140, 43, 25, 244, 243, 43, 25, 242, - 131, 43, 25, 238, 164, 43, 25, 247, 30, 43, 25, 243, 122, 43, 25, 251, - 111, 43, 25, 252, 14, 43, 25, 240, 225, 43, 25, 237, 156, 43, 25, 249, - 129, 43, 25, 248, 91, 43, 25, 246, 252, 43, 25, 248, 206, 43, 25, 241, - 39, 43, 25, 243, 222, 43, 25, 236, 61, 43, 25, 244, 6, 43, 25, 238, 249, - 43, 25, 238, 202, 43, 25, 238, 156, 43, 25, 239, 153, 43, 25, 244, 226, - 43, 25, 236, 108, 43, 25, 241, 63, 43, 25, 241, 142, 43, 25, 240, 245, - 43, 25, 239, 100, 43, 25, 241, 34, 43, 25, 249, 13, 234, 36, 43, 25, 236, - 255, 43, 25, 247, 194, 43, 25, 248, 184, 43, 25, 243, 8, 43, 25, 238, - 220, 43, 25, 239, 238, 43, 25, 244, 213, 43, 25, 252, 66, 43, 25, 239, 1, - 43, 25, 240, 227, 43, 25, 252, 131, 43, 25, 252, 151, 43, 25, 243, 94, - 43, 25, 244, 227, 43, 25, 243, 154, 43, 25, 239, 9, 43, 25, 237, 214, 43, - 25, 244, 48, 43, 25, 243, 156, 43, 25, 243, 133, 43, 25, 232, 132, 43, - 25, 238, 43, 43, 25, 243, 96, 43, 25, 243, 66, 43, 25, 243, 178, 43, 25, - 241, 249, 43, 25, 242, 114, 43, 25, 242, 215, 242, 139, 243, 85, 43, 25, - 243, 250, 43, 25, 243, 149, 43, 25, 242, 187, 43, 25, 243, 39, 43, 25, - 236, 230, 43, 25, 240, 242, 236, 230, 43, 25, 246, 40, 43, 25, 242, 121, - 43, 25, 243, 214, 43, 25, 243, 82, 43, 25, 249, 63, 43, 25, 248, 207, 43, - 25, 243, 99, 43, 25, 236, 27, 43, 25, 240, 189, 43, 25, 243, 150, 43, 25, - 247, 137, 43, 25, 245, 140, 43, 25, 241, 108, 43, 25, 233, 232, 243, 133, - 43, 25, 235, 117, 43, 25, 240, 181, 43, 25, 243, 172, 43, 25, 243, 85, - 43, 25, 244, 4, 43, 25, 243, 164, 43, 25, 240, 153, 43, 25, 245, 141, 43, - 25, 238, 232, 43, 25, 239, 137, 43, 25, 240, 0, 43, 25, 233, 195, 43, 25, - 243, 176, 43, 25, 239, 229, 43, 25, 245, 74, 43, 25, 249, 152, 43, 25, - 246, 176, 43, 25, 243, 93, 43, 25, 240, 151, 43, 25, 238, 137, 43, 25, - 238, 125, 43, 25, 241, 112, 80, 233, 55, 99, 40, 153, 225, 80, 233, 55, - 99, 60, 153, 46, 80, 233, 55, 99, 40, 153, 240, 1, 19, 225, 80, 233, 55, - 99, 60, 153, 240, 1, 19, 46, 80, 233, 55, 99, 248, 37, 236, 121, 80, 233, - 55, 99, 236, 204, 248, 44, 48, 80, 233, 55, 99, 236, 204, 248, 44, 46, - 80, 233, 55, 99, 236, 204, 248, 44, 242, 220, 80, 233, 55, 99, 236, 204, - 248, 44, 189, 242, 220, 80, 233, 55, 99, 236, 204, 248, 44, 189, 225, 80, - 233, 55, 99, 236, 204, 248, 44, 168, 242, 220, 80, 233, 55, 99, 236, 66, - 80, 240, 15, 80, 240, 27, 80, 248, 37, 208, 245, 69, 69, 237, 184, 234, - 206, 237, 44, 91, 80, 235, 77, 69, 80, 238, 171, 69, 80, 61, 242, 217, - 40, 185, 104, 38, 185, 104, 40, 45, 185, 104, 38, 45, 185, 104, 40, 240, - 31, 104, 38, 240, 31, 104, 40, 64, 240, 31, 104, 38, 64, 240, 31, 104, - 40, 86, 234, 11, 104, 38, 86, 234, 11, 104, 240, 142, 69, 251, 16, 69, - 40, 236, 171, 242, 255, 104, 38, 236, 171, 242, 255, 104, 40, 64, 234, - 11, 104, 38, 64, 234, 11, 104, 40, 64, 236, 171, 242, 255, 104, 38, 64, - 236, 171, 242, 255, 104, 40, 64, 31, 104, 38, 64, 31, 104, 248, 141, 242, - 235, 224, 45, 243, 117, 235, 51, 69, 45, 243, 117, 235, 51, 69, 170, 45, - 243, 117, 235, 51, 69, 240, 142, 158, 243, 39, 236, 166, 178, 127, 236, - 166, 178, 111, 236, 166, 178, 166, 236, 166, 178, 177, 236, 166, 178, - 176, 236, 166, 178, 187, 236, 166, 178, 203, 236, 166, 178, 195, 236, - 166, 178, 202, 80, 246, 42, 188, 69, 80, 240, 69, 188, 69, 80, 235, 98, - 188, 69, 80, 237, 151, 188, 69, 23, 240, 12, 53, 188, 69, 23, 45, 53, - 188, 69, 248, 103, 242, 235, 59, 248, 130, 240, 64, 69, 59, 248, 130, - 240, 64, 2, 240, 59, 243, 1, 69, 59, 248, 130, 240, 64, 158, 189, 243, 7, - 59, 248, 130, 240, 64, 2, 240, 59, 243, 1, 158, 189, 243, 7, 59, 248, - 130, 240, 64, 158, 168, 243, 7, 29, 240, 142, 69, 80, 145, 248, 41, 250, - 237, 235, 95, 91, 236, 166, 178, 248, 53, 236, 166, 178, 238, 77, 236, - 166, 178, 238, 101, 59, 80, 235, 77, 69, 251, 219, 69, 249, 134, 233, - 112, 69, 80, 34, 234, 30, 80, 137, 250, 245, 240, 15, 105, 1, 3, 67, 105, - 1, 67, 105, 1, 3, 71, 105, 1, 71, 105, 1, 3, 79, 105, 1, 79, 105, 1, 3, - 72, 105, 1, 72, 105, 1, 3, 73, 105, 1, 73, 105, 1, 201, 105, 1, 253, 139, - 105, 1, 253, 215, 105, 1, 254, 6, 105, 1, 253, 203, 105, 1, 253, 235, - 105, 1, 253, 172, 105, 1, 254, 5, 105, 1, 253, 190, 105, 1, 253, 234, - 105, 1, 253, 132, 105, 1, 253, 163, 105, 1, 253, 198, 105, 1, 254, 17, - 105, 1, 253, 211, 105, 1, 254, 18, 105, 1, 253, 210, 105, 1, 253, 228, - 105, 1, 253, 186, 105, 1, 253, 222, 105, 1, 253, 126, 105, 1, 253, 133, - 105, 1, 253, 212, 105, 1, 253, 201, 105, 1, 3, 253, 196, 105, 1, 253, - 196, 105, 1, 253, 232, 105, 1, 253, 195, 105, 1, 253, 200, 105, 1, 87, - 105, 1, 253, 225, 105, 1, 253, 131, 105, 1, 253, 166, 105, 1, 253, 150, - 105, 1, 253, 197, 105, 1, 253, 173, 105, 1, 219, 105, 1, 253, 141, 105, - 1, 253, 129, 105, 1, 253, 214, 105, 1, 254, 34, 105, 1, 253, 147, 105, 1, - 253, 236, 105, 1, 253, 243, 105, 1, 253, 239, 105, 1, 253, 168, 105, 1, - 253, 242, 105, 1, 253, 175, 105, 1, 253, 184, 105, 1, 254, 1, 105, 1, - 253, 208, 105, 1, 222, 105, 1, 253, 180, 105, 1, 253, 154, 105, 1, 253, - 206, 105, 1, 253, 181, 105, 1, 3, 216, 105, 1, 216, 105, 1, 3, 253, 161, - 105, 1, 253, 161, 105, 1, 3, 253, 162, 105, 1, 253, 162, 105, 1, 253, - 130, 105, 1, 253, 209, 105, 1, 253, 185, 105, 1, 253, 194, 105, 1, 253, - 160, 105, 1, 3, 253, 138, 105, 1, 253, 138, 105, 1, 253, 187, 105, 1, - 253, 170, 105, 1, 253, 177, 105, 1, 197, 105, 1, 254, 49, 105, 1, 3, 201, - 105, 1, 3, 253, 172, 50, 226, 254, 240, 59, 243, 1, 69, 50, 226, 254, - 233, 75, 243, 1, 69, 226, 254, 240, 59, 243, 1, 69, 226, 254, 233, 75, - 243, 1, 69, 105, 235, 77, 69, 105, 240, 59, 235, 77, 69, 105, 238, 112, - 247, 233, 226, 254, 45, 238, 93, 42, 1, 3, 67, 42, 1, 67, 42, 1, 3, 71, - 42, 1, 71, 42, 1, 3, 79, 42, 1, 79, 42, 1, 3, 72, 42, 1, 72, 42, 1, 3, - 73, 42, 1, 73, 42, 1, 201, 42, 1, 253, 139, 42, 1, 253, 215, 42, 1, 254, - 6, 42, 1, 253, 203, 42, 1, 253, 235, 42, 1, 253, 172, 42, 1, 254, 5, 42, - 1, 253, 190, 42, 1, 253, 234, 42, 1, 253, 132, 42, 1, 253, 163, 42, 1, - 253, 198, 42, 1, 254, 17, 42, 1, 253, 211, 42, 1, 254, 18, 42, 1, 253, - 210, 42, 1, 253, 228, 42, 1, 253, 186, 42, 1, 253, 222, 42, 1, 253, 126, - 42, 1, 253, 133, 42, 1, 253, 212, 42, 1, 253, 201, 42, 1, 3, 253, 196, - 42, 1, 253, 196, 42, 1, 253, 232, 42, 1, 253, 195, 42, 1, 253, 200, 42, - 1, 87, 42, 1, 253, 225, 42, 1, 253, 131, 42, 1, 253, 166, 42, 1, 253, - 150, 42, 1, 253, 197, 42, 1, 253, 173, 42, 1, 219, 42, 1, 253, 141, 42, - 1, 253, 129, 42, 1, 253, 214, 42, 1, 254, 34, 42, 1, 253, 147, 42, 1, - 253, 236, 42, 1, 253, 243, 42, 1, 253, 239, 42, 1, 253, 168, 42, 1, 253, - 242, 42, 1, 253, 175, 42, 1, 253, 184, 42, 1, 254, 1, 42, 1, 253, 208, - 42, 1, 222, 42, 1, 253, 180, 42, 1, 253, 154, 42, 1, 253, 206, 42, 1, - 253, 181, 42, 1, 3, 216, 42, 1, 216, 42, 1, 3, 253, 161, 42, 1, 253, 161, - 42, 1, 3, 253, 162, 42, 1, 253, 162, 42, 1, 253, 130, 42, 1, 253, 209, - 42, 1, 253, 185, 42, 1, 253, 194, 42, 1, 253, 160, 42, 1, 3, 253, 138, - 42, 1, 253, 138, 42, 1, 253, 187, 42, 1, 253, 170, 42, 1, 253, 177, 42, - 1, 197, 42, 1, 254, 49, 42, 1, 3, 201, 42, 1, 3, 253, 172, 42, 1, 253, - 171, 42, 1, 254, 48, 42, 1, 254, 12, 42, 1, 254, 13, 42, 240, 1, 248, 40, - 226, 254, 235, 138, 243, 1, 69, 42, 235, 77, 69, 42, 240, 59, 235, 77, - 69, 42, 238, 112, 246, 19, 155, 1, 217, 155, 1, 223, 155, 1, 173, 155, 1, - 255, 19, 155, 1, 209, 155, 1, 214, 155, 1, 197, 155, 1, 162, 155, 1, 210, - 155, 1, 255, 15, 155, 1, 192, 155, 1, 221, 155, 1, 255, 20, 155, 1, 206, - 155, 1, 255, 11, 155, 1, 254, 151, 155, 1, 254, 72, 155, 1, 144, 155, 1, - 255, 17, 155, 1, 255, 18, 155, 1, 193, 155, 1, 67, 155, 1, 73, 155, 1, - 72, 155, 1, 254, 36, 155, 1, 253, 149, 155, 1, 254, 89, 155, 1, 253, 151, - 155, 1, 254, 10, 155, 1, 254, 19, 155, 1, 253, 202, 155, 1, 248, 124, - 155, 1, 248, 108, 155, 1, 254, 4, 155, 1, 71, 155, 1, 79, 155, 1, 254, - 101, 155, 1, 179, 155, 1, 254, 26, 155, 1, 254, 168, 23, 1, 238, 99, 23, - 1, 232, 87, 23, 1, 232, 91, 23, 1, 240, 80, 23, 1, 232, 93, 23, 1, 232, - 94, 23, 1, 238, 102, 23, 1, 232, 101, 23, 1, 240, 85, 23, 1, 231, 98, 23, - 1, 232, 96, 23, 1, 232, 97, 23, 1, 233, 74, 23, 1, 231, 43, 23, 1, 231, - 42, 23, 1, 232, 85, 23, 1, 240, 78, 23, 1, 240, 83, 23, 1, 233, 79, 23, - 1, 233, 66, 23, 1, 243, 34, 23, 1, 234, 32, 23, 1, 240, 75, 23, 1, 240, - 71, 23, 1, 233, 77, 23, 1, 236, 195, 23, 1, 236, 198, 23, 1, 236, 205, - 23, 1, 236, 201, 23, 1, 240, 74, 23, 1, 67, 23, 1, 253, 178, 23, 1, 216, - 23, 1, 249, 18, 23, 1, 254, 59, 23, 1, 72, 23, 1, 249, 22, 23, 1, 253, - 254, 23, 1, 73, 23, 1, 253, 138, 23, 1, 249, 12, 23, 1, 253, 193, 23, 1, - 253, 162, 23, 1, 79, 23, 1, 249, 14, 23, 1, 253, 170, 23, 1, 253, 187, - 23, 1, 253, 161, 23, 1, 254, 61, 23, 1, 253, 189, 23, 1, 71, 23, 238, - 114, 23, 1, 233, 105, 23, 1, 231, 97, 23, 1, 233, 90, 23, 1, 231, 47, 23, - 1, 226, 245, 23, 1, 231, 111, 23, 1, 226, 255, 23, 1, 231, 54, 23, 1, - 226, 246, 23, 1, 232, 92, 23, 1, 233, 86, 23, 1, 231, 46, 23, 1, 231, 40, - 23, 1, 231, 109, 23, 1, 231, 110, 23, 1, 226, 243, 23, 1, 226, 244, 23, - 1, 232, 106, 23, 1, 231, 52, 23, 1, 231, 41, 23, 1, 226, 235, 23, 1, 232, - 99, 23, 1, 233, 102, 23, 1, 232, 100, 23, 1, 233, 76, 23, 1, 233, 101, - 23, 1, 236, 234, 23, 1, 233, 78, 23, 1, 235, 115, 23, 1, 231, 58, 23, 1, - 227, 0, 23, 1, 227, 9, 23, 1, 233, 104, 23, 1, 232, 102, 23, 1, 240, 255, - 23, 1, 238, 233, 23, 1, 244, 58, 23, 1, 238, 234, 23, 1, 241, 0, 23, 1, - 244, 60, 23, 1, 240, 156, 23, 1, 238, 247, 80, 234, 4, 239, 123, 69, 80, - 234, 4, 238, 75, 69, 80, 234, 4, 253, 125, 69, 80, 234, 4, 171, 69, 80, - 234, 4, 204, 69, 80, 234, 4, 248, 58, 69, 80, 234, 4, 253, 159, 69, 80, - 234, 4, 240, 1, 69, 80, 234, 4, 240, 17, 69, 80, 234, 4, 243, 41, 69, 80, - 234, 4, 240, 87, 69, 80, 234, 4, 243, 129, 69, 80, 234, 4, 240, 137, 69, - 80, 234, 4, 241, 148, 69, 80, 234, 4, 243, 168, 69, 80, 234, 4, 254, 111, - 69, 155, 1, 253, 243, 155, 1, 254, 17, 155, 1, 254, 7, 155, 1, 253, 235, - 155, 1, 253, 164, 155, 1, 250, 224, 155, 1, 253, 156, 155, 1, 249, 130, - 155, 1, 254, 177, 155, 1, 249, 238, 155, 1, 251, 105, 155, 1, 252, 254, - 155, 1, 254, 175, 155, 1, 252, 18, 155, 1, 244, 73, 155, 1, 244, 86, 155, - 1, 254, 32, 155, 1, 254, 43, 155, 1, 252, 59, 155, 1, 245, 229, 155, 30, - 1, 223, 155, 30, 1, 214, 155, 30, 1, 255, 15, 155, 30, 1, 192, 7, 240, 5, - 214, 7, 240, 5, 255, 3, 7, 240, 5, 255, 5, 7, 240, 5, 250, 137, 7, 240, - 5, 254, 128, 7, 240, 5, 251, 96, 7, 240, 5, 251, 93, 7, 240, 5, 254, 97, - 7, 240, 5, 245, 219, 7, 240, 5, 247, 134, 7, 240, 5, 251, 94, 7, 240, 5, - 245, 220, 7, 240, 5, 245, 202, 7, 240, 5, 251, 95, 7, 240, 5, 245, 221, - 7, 240, 5, 197, 42, 1, 3, 253, 203, 42, 1, 3, 253, 198, 42, 1, 3, 253, - 211, 42, 1, 3, 87, 42, 1, 3, 253, 150, 42, 1, 3, 219, 42, 1, 3, 253, 214, - 42, 1, 3, 253, 236, 42, 1, 3, 253, 168, 42, 1, 3, 253, 184, 42, 1, 3, - 253, 154, 42, 1, 3, 253, 130, 42, 1, 3, 253, 209, 42, 1, 3, 253, 185, 42, - 1, 3, 253, 194, 42, 1, 3, 253, 160, 82, 23, 238, 99, 82, 23, 240, 80, 82, - 23, 238, 102, 82, 23, 240, 85, 82, 23, 240, 78, 82, 23, 240, 83, 82, 23, - 243, 34, 82, 23, 240, 75, 82, 23, 240, 71, 82, 23, 236, 195, 82, 23, 236, - 198, 82, 23, 236, 205, 82, 23, 236, 201, 82, 23, 240, 74, 82, 23, 240, - 193, 67, 82, 23, 243, 233, 67, 82, 23, 240, 246, 67, 82, 23, 243, 254, - 67, 82, 23, 243, 226, 67, 82, 23, 243, 242, 67, 82, 23, 249, 164, 67, 82, - 23, 243, 100, 67, 82, 23, 243, 90, 67, 82, 23, 238, 169, 67, 82, 23, 238, - 194, 67, 82, 23, 238, 227, 67, 82, 23, 238, 206, 67, 82, 23, 243, 195, - 67, 82, 23, 243, 90, 79, 82, 240, 99, 99, 242, 39, 82, 240, 99, 99, 117, - 253, 236, 82, 110, 127, 82, 110, 111, 82, 110, 166, 82, 110, 177, 82, - 110, 176, 82, 110, 187, 82, 110, 203, 82, 110, 195, 82, 110, 202, 82, - 110, 248, 53, 82, 110, 243, 30, 82, 110, 243, 27, 82, 110, 240, 105, 82, - 110, 244, 52, 82, 110, 240, 199, 82, 110, 240, 49, 82, 110, 248, 136, 82, - 110, 240, 238, 82, 110, 243, 191, 82, 110, 237, 41, 82, 110, 243, 230, - 82, 110, 237, 43, 82, 110, 234, 53, 82, 110, 229, 61, 82, 110, 240, 195, - 82, 110, 234, 247, 82, 110, 244, 241, 82, 110, 240, 239, 82, 110, 234, - 66, 82, 110, 233, 84, 82, 110, 235, 140, 82, 110, 235, 116, 82, 110, 236, - 20, 82, 110, 242, 239, 82, 110, 244, 6, 82, 110, 240, 215, 233, 94, 52, - 29, 61, 240, 48, 127, 29, 61, 240, 48, 111, 29, 61, 240, 48, 166, 29, 61, - 240, 48, 177, 29, 61, 240, 48, 176, 29, 61, 240, 48, 187, 29, 61, 240, - 48, 203, 29, 61, 240, 48, 195, 29, 61, 240, 48, 202, 29, 61, 238, 101, - 29, 61, 240, 53, 127, 29, 61, 240, 53, 111, 29, 61, 240, 53, 166, 29, 61, - 240, 53, 177, 29, 61, 240, 53, 176, 29, 23, 238, 99, 29, 23, 240, 80, 29, - 23, 238, 102, 29, 23, 240, 85, 29, 23, 240, 78, 29, 23, 240, 83, 29, 23, - 243, 34, 29, 23, 240, 75, 29, 23, 240, 71, 29, 23, 236, 195, 29, 23, 236, - 198, 29, 23, 236, 205, 29, 23, 236, 201, 29, 23, 240, 74, 29, 23, 240, - 193, 67, 29, 23, 243, 233, 67, 29, 23, 240, 246, 67, 29, 23, 243, 254, - 67, 29, 23, 243, 226, 67, 29, 23, 243, 242, 67, 29, 23, 249, 164, 67, 29, - 23, 243, 100, 67, 29, 23, 243, 90, 67, 29, 23, 238, 169, 67, 29, 23, 238, - 194, 67, 29, 23, 238, 227, 67, 29, 23, 238, 206, 67, 29, 23, 243, 195, - 67, 29, 240, 99, 99, 239, 20, 29, 240, 99, 99, 241, 190, 29, 23, 243, - 100, 79, 240, 99, 237, 44, 91, 29, 110, 127, 29, 110, 111, 29, 110, 166, - 29, 110, 177, 29, 110, 176, 29, 110, 187, 29, 110, 203, 29, 110, 195, 29, - 110, 202, 29, 110, 248, 53, 29, 110, 243, 30, 29, 110, 243, 27, 29, 110, - 240, 105, 29, 110, 244, 52, 29, 110, 240, 199, 29, 110, 240, 49, 29, 110, - 248, 136, 29, 110, 240, 238, 29, 110, 243, 191, 29, 110, 237, 41, 29, - 110, 243, 230, 29, 110, 237, 43, 29, 110, 234, 53, 29, 110, 229, 61, 29, - 110, 240, 195, 29, 110, 239, 186, 29, 110, 246, 62, 29, 110, 239, 68, 29, - 110, 236, 120, 29, 110, 234, 188, 29, 110, 242, 65, 29, 110, 234, 95, 29, - 110, 245, 232, 29, 110, 242, 239, 29, 110, 245, 27, 29, 110, 237, 93, 29, - 110, 245, 146, 29, 110, 238, 129, 29, 110, 251, 207, 29, 110, 242, 220, - 29, 110, 225, 29, 110, 236, 59, 29, 110, 236, 91, 29, 110, 240, 239, 29, - 110, 234, 66, 29, 110, 233, 84, 29, 110, 235, 140, 29, 110, 235, 116, 29, - 110, 242, 11, 29, 61, 240, 53, 187, 29, 61, 240, 53, 203, 29, 61, 240, - 53, 195, 29, 61, 240, 53, 202, 29, 61, 240, 136, 29, 61, 243, 6, 127, 29, - 61, 243, 6, 111, 29, 61, 243, 6, 166, 29, 61, 243, 6, 177, 29, 61, 243, - 6, 176, 29, 61, 243, 6, 187, 29, 61, 243, 6, 203, 29, 61, 243, 6, 195, - 29, 61, 243, 6, 202, 29, 61, 240, 50, 80, 145, 12, 28, 237, 183, 80, 145, - 12, 28, 236, 19, 80, 145, 12, 28, 241, 229, 80, 145, 12, 28, 241, 12, 80, - 145, 12, 28, 251, 222, 80, 145, 12, 28, 245, 253, 80, 145, 12, 28, 245, - 252, 80, 145, 12, 28, 238, 253, 80, 145, 12, 28, 234, 252, 80, 145, 12, - 28, 237, 224, 80, 145, 12, 28, 236, 65, 80, 145, 12, 28, 235, 200, 31, - 254, 171, 31, 250, 227, 31, 254, 160, 239, 118, 236, 51, 52, 29, 42, 67, - 29, 42, 71, 29, 42, 79, 29, 42, 72, 29, 42, 73, 29, 42, 201, 29, 42, 253, - 215, 29, 42, 253, 203, 29, 42, 253, 172, 29, 42, 253, 190, 29, 42, 253, - 132, 29, 42, 253, 198, 29, 42, 253, 211, 29, 42, 253, 210, 29, 42, 253, - 186, 29, 42, 253, 126, 29, 42, 253, 212, 29, 42, 253, 196, 29, 42, 253, - 195, 29, 42, 87, 29, 42, 253, 131, 29, 42, 253, 166, 29, 42, 253, 150, - 29, 42, 253, 197, 29, 42, 253, 173, 29, 42, 219, 29, 42, 253, 214, 29, - 42, 253, 236, 29, 42, 253, 168, 29, 42, 253, 184, 29, 42, 222, 29, 42, - 253, 180, 29, 42, 253, 154, 29, 42, 253, 206, 29, 42, 253, 181, 29, 42, - 216, 29, 42, 253, 161, 29, 42, 253, 162, 29, 42, 253, 130, 29, 42, 253, - 209, 29, 42, 253, 185, 29, 42, 253, 194, 29, 42, 253, 160, 29, 42, 253, - 138, 29, 42, 253, 187, 29, 42, 253, 170, 29, 42, 253, 177, 31, 238, 246, - 31, 238, 251, 31, 241, 10, 31, 244, 68, 31, 239, 99, 31, 245, 230, 31, - 252, 255, 31, 236, 15, 31, 241, 91, 31, 246, 232, 31, 246, 233, 31, 241, - 192, 31, 237, 187, 31, 237, 188, 31, 241, 124, 31, 241, 123, 31, 245, - 124, 31, 241, 137, 31, 239, 112, 31, 237, 165, 31, 246, 16, 31, 233, 213, - 31, 232, 180, 31, 234, 214, 31, 239, 87, 31, 234, 198, 31, 234, 216, 31, - 237, 192, 31, 241, 196, 31, 239, 110, 31, 241, 205, 31, 237, 254, 31, - 236, 95, 31, 238, 7, 31, 242, 101, 31, 242, 102, 31, 241, 70, 31, 245, - 63, 31, 245, 73, 31, 252, 227, 31, 246, 105, 31, 242, 24, 31, 241, 146, - 31, 236, 67, 31, 242, 46, 31, 237, 69, 31, 234, 233, 31, 239, 161, 31, - 246, 251, 31, 244, 223, 31, 236, 36, 31, 239, 95, 31, 235, 184, 31, 241, - 170, 31, 234, 199, 31, 246, 242, 31, 239, 159, 31, 239, 93, 31, 242, 55, - 31, 242, 52, 31, 241, 26, 31, 239, 164, 31, 239, 11, 31, 251, 77, 31, - 242, 64, 31, 241, 167, 31, 245, 200, 31, 237, 197, 31, 241, 225, 31, 241, - 224, 31, 239, 129, 31, 237, 199, 31, 237, 210, 31, 246, 88, 31, 234, 223, - 31, 243, 106, 31, 237, 207, 31, 237, 206, 31, 242, 190, 31, 242, 191, 31, - 247, 237, 31, 237, 252, 31, 247, 32, 31, 242, 90, 31, 237, 253, 31, 247, - 29, 31, 236, 92, 31, 242, 183, 80, 145, 12, 28, 248, 52, 242, 217, 80, - 145, 12, 28, 248, 52, 127, 80, 145, 12, 28, 248, 52, 111, 80, 145, 12, - 28, 248, 52, 166, 80, 145, 12, 28, 248, 52, 177, 80, 145, 12, 28, 248, - 52, 176, 80, 145, 12, 28, 248, 52, 187, 80, 145, 12, 28, 248, 52, 203, - 80, 145, 12, 28, 248, 52, 195, 80, 145, 12, 28, 248, 52, 202, 80, 145, - 12, 28, 248, 52, 248, 53, 80, 145, 12, 28, 248, 52, 238, 91, 80, 145, 12, - 28, 248, 52, 238, 97, 80, 145, 12, 28, 248, 52, 235, 85, 80, 145, 12, 28, - 248, 52, 235, 82, 80, 145, 12, 28, 248, 52, 236, 207, 80, 145, 12, 28, - 248, 52, 236, 202, 80, 145, 12, 28, 248, 52, 234, 22, 80, 145, 12, 28, - 248, 52, 235, 81, 80, 145, 12, 28, 248, 52, 235, 83, 80, 145, 12, 28, - 248, 52, 238, 77, 80, 145, 12, 28, 248, 52, 233, 110, 80, 145, 12, 28, - 248, 52, 233, 111, 80, 145, 12, 28, 248, 52, 231, 114, 80, 145, 12, 28, - 248, 52, 232, 111, 31, 251, 82, 31, 253, 133, 31, 253, 151, 31, 125, 31, - 254, 219, 31, 254, 222, 31, 254, 156, 31, 255, 53, 236, 191, 31, 255, 53, - 240, 94, 31, 254, 101, 31, 254, 37, 248, 170, 239, 89, 31, 254, 37, 248, - 170, 239, 213, 31, 254, 37, 248, 170, 238, 21, 31, 254, 37, 248, 170, - 241, 232, 31, 232, 123, 31, 255, 87, 244, 79, 31, 253, 131, 31, 255, 27, - 67, 31, 222, 31, 201, 31, 254, 182, 31, 254, 199, 31, 254, 166, 31, 250, - 143, 31, 246, 7, 31, 254, 224, 31, 254, 211, 31, 255, 27, 255, 19, 31, - 255, 27, 210, 31, 254, 202, 31, 254, 106, 31, 254, 173, 31, 251, 147, 31, - 251, 230, 31, 251, 20, 31, 252, 220, 31, 255, 27, 162, 31, 254, 204, 31, - 254, 155, 31, 254, 186, 31, 254, 164, 31, 254, 215, 31, 255, 27, 173, 31, - 254, 205, 31, 254, 152, 31, 254, 187, 31, 255, 61, 236, 191, 31, 255, 52, - 236, 191, 31, 255, 108, 236, 191, 31, 255, 50, 236, 191, 31, 255, 61, - 240, 94, 31, 255, 52, 240, 94, 31, 255, 108, 240, 94, 31, 255, 50, 240, - 94, 31, 255, 108, 248, 59, 193, 31, 255, 108, 248, 59, 255, 99, 236, 191, - 31, 253, 129, 31, 251, 163, 31, 249, 115, 31, 251, 28, 31, 252, 126, 31, - 254, 71, 248, 59, 193, 31, 254, 71, 248, 59, 255, 99, 236, 191, 31, 254, - 229, 31, 254, 216, 31, 255, 27, 193, 31, 254, 206, 31, 254, 230, 31, 254, - 115, 31, 255, 27, 179, 31, 254, 207, 31, 254, 189, 31, 255, 84, 243, 106, - 31, 254, 231, 31, 254, 217, 31, 255, 27, 255, 16, 31, 254, 208, 31, 254, - 108, 31, 255, 85, 243, 106, 31, 255, 109, 249, 126, 31, 255, 108, 249, - 126, 31, 254, 32, 31, 254, 147, 31, 254, 149, 31, 254, 150, 31, 255, 105, - 248, 59, 254, 106, 31, 253, 224, 31, 254, 154, 31, 254, 170, 31, 219, 31, - 254, 97, 31, 253, 247, 31, 254, 107, 31, 255, 50, 237, 83, 31, 254, 188, - 31, 254, 194, 31, 254, 195, 31, 251, 203, 31, 254, 197, 31, 255, 80, 240, - 147, 31, 251, 233, 31, 251, 240, 31, 254, 225, 31, 254, 226, 31, 252, 75, - 31, 254, 228, 31, 254, 241, 31, 254, 127, 31, 255, 2, 31, 255, 110, 248, - 59, 173, 31, 134, 248, 59, 173, 80, 145, 12, 28, 253, 137, 127, 80, 145, - 12, 28, 253, 137, 111, 80, 145, 12, 28, 253, 137, 166, 80, 145, 12, 28, - 253, 137, 177, 80, 145, 12, 28, 253, 137, 176, 80, 145, 12, 28, 253, 137, - 187, 80, 145, 12, 28, 253, 137, 203, 80, 145, 12, 28, 253, 137, 195, 80, - 145, 12, 28, 253, 137, 202, 80, 145, 12, 28, 253, 137, 248, 53, 80, 145, - 12, 28, 253, 137, 238, 91, 80, 145, 12, 28, 253, 137, 238, 97, 80, 145, - 12, 28, 253, 137, 235, 85, 80, 145, 12, 28, 253, 137, 235, 82, 80, 145, - 12, 28, 253, 137, 236, 207, 80, 145, 12, 28, 253, 137, 236, 202, 80, 145, - 12, 28, 253, 137, 234, 22, 80, 145, 12, 28, 253, 137, 235, 81, 80, 145, - 12, 28, 253, 137, 235, 83, 80, 145, 12, 28, 253, 137, 238, 77, 80, 145, - 12, 28, 253, 137, 233, 110, 80, 145, 12, 28, 253, 137, 233, 111, 80, 145, - 12, 28, 253, 137, 231, 114, 80, 145, 12, 28, 253, 137, 232, 111, 80, 145, - 12, 28, 253, 137, 233, 45, 80, 145, 12, 28, 253, 137, 233, 255, 80, 145, - 12, 28, 253, 137, 232, 64, 80, 145, 12, 28, 253, 137, 232, 63, 80, 145, - 12, 28, 253, 137, 233, 46, 80, 145, 12, 28, 253, 137, 238, 101, 80, 145, - 12, 28, 253, 137, 233, 252, 31, 251, 7, 156, 28, 253, 145, 237, 94, 238, - 139, 156, 28, 253, 145, 236, 86, 240, 49, 156, 28, 234, 112, 255, 31, - 253, 145, 234, 97, 156, 28, 238, 48, 241, 113, 156, 28, 237, 51, 156, 28, - 235, 191, 156, 28, 253, 145, 244, 84, 156, 28, 238, 189, 235, 153, 156, - 28, 3, 238, 222, 156, 28, 236, 130, 156, 28, 242, 51, 156, 28, 233, 247, - 156, 28, 233, 201, 156, 28, 243, 58, 233, 224, 156, 28, 237, 212, 156, - 28, 233, 197, 156, 28, 234, 54, 156, 28, 253, 37, 255, 34, 253, 145, 237, - 102, 156, 28, 235, 166, 156, 28, 231, 63, 156, 28, 241, 32, 238, 27, 156, - 28, 241, 139, 156, 28, 236, 104, 241, 11, 156, 28, 238, 211, 156, 28, - 234, 208, 156, 28, 243, 58, 238, 222, 156, 28, 246, 91, 237, 0, 156, 28, - 243, 58, 231, 53, 156, 28, 253, 145, 238, 236, 240, 105, 156, 28, 253, - 145, 237, 87, 243, 27, 156, 28, 234, 207, 156, 28, 236, 9, 156, 28, 237, - 251, 156, 28, 243, 58, 240, 210, 156, 28, 236, 81, 156, 28, 235, 198, - 147, 253, 145, 240, 9, 156, 28, 253, 145, 239, 66, 156, 28, 233, 73, 156, - 28, 232, 189, 156, 28, 232, 128, 156, 28, 235, 201, 156, 28, 235, 127, - 156, 28, 231, 119, 156, 28, 241, 65, 153, 243, 224, 156, 28, 235, 124, - 235, 153, 156, 28, 239, 170, 239, 235, 156, 28, 233, 221, 156, 28, 253, - 145, 247, 193, 156, 28, 233, 231, 156, 28, 253, 145, 235, 117, 156, 28, - 253, 145, 237, 67, 237, 48, 156, 28, 253, 145, 238, 193, 247, 123, 235, - 102, 156, 28, 232, 131, 156, 28, 253, 145, 237, 203, 239, 125, 156, 28, - 234, 89, 156, 28, 253, 145, 236, 139, 156, 28, 253, 145, 241, 125, 243, - 82, 156, 28, 253, 145, 241, 188, 243, 213, 156, 28, 233, 135, 156, 28, - 233, 216, 156, 28, 245, 228, 242, 158, 156, 28, 3, 231, 53, 156, 28, 244, - 70, 233, 69, 156, 28, 241, 27, 233, 69, 6, 4, 254, 179, 6, 4, 254, 180, - 6, 4, 71, 6, 4, 254, 176, 6, 4, 251, 102, 6, 4, 251, 103, 6, 4, 253, 237, - 6, 4, 251, 101, 6, 4, 254, 20, 6, 4, 254, 144, 6, 4, 67, 6, 4, 254, 141, - 6, 4, 253, 1, 6, 4, 254, 252, 6, 4, 253, 0, 6, 4, 254, 67, 6, 4, 254, - 220, 6, 4, 73, 6, 4, 254, 120, 6, 4, 254, 161, 6, 4, 72, 6, 4, 254, 14, - 6, 4, 250, 125, 6, 4, 250, 126, 6, 4, 254, 34, 6, 4, 250, 124, 6, 4, 244, - 221, 6, 4, 244, 222, 6, 4, 250, 122, 6, 4, 244, 220, 6, 4, 250, 104, 6, - 4, 250, 105, 6, 4, 253, 141, 6, 4, 250, 103, 6, 4, 244, 235, 6, 4, 250, - 131, 6, 4, 244, 234, 6, 4, 250, 130, 6, 4, 248, 92, 6, 4, 254, 1, 6, 4, - 250, 129, 6, 4, 250, 119, 6, 4, 253, 242, 6, 4, 250, 116, 6, 4, 250, 133, - 6, 4, 250, 134, 6, 4, 253, 243, 6, 4, 250, 132, 6, 4, 244, 236, 6, 4, - 249, 35, 6, 4, 250, 140, 6, 4, 250, 141, 6, 4, 254, 82, 6, 4, 250, 138, - 6, 4, 244, 238, 6, 4, 250, 139, 6, 4, 252, 68, 6, 4, 252, 69, 6, 4, 253, - 147, 6, 4, 252, 67, 6, 4, 246, 250, 6, 4, 252, 65, 6, 4, 246, 249, 6, 4, - 252, 61, 6, 4, 252, 62, 6, 4, 253, 129, 6, 4, 252, 60, 6, 4, 247, 0, 6, - 4, 252, 78, 6, 4, 246, 255, 6, 4, 252, 73, 6, 4, 252, 74, 6, 4, 253, 208, - 6, 4, 252, 72, 6, 4, 249, 142, 6, 4, 252, 81, 6, 4, 253, 239, 6, 4, 252, - 79, 6, 4, 247, 1, 6, 4, 252, 80, 6, 4, 249, 144, 6, 4, 252, 84, 6, 4, - 254, 232, 6, 4, 252, 82, 6, 4, 247, 3, 6, 4, 252, 83, 6, 4, 244, 200, 6, - 4, 244, 201, 6, 4, 250, 108, 6, 4, 244, 199, 6, 4, 241, 21, 6, 4, 241, - 22, 6, 4, 244, 198, 6, 4, 241, 20, 6, 4, 244, 194, 6, 4, 244, 195, 6, 4, - 250, 106, 6, 4, 244, 193, 6, 4, 241, 24, 6, 4, 244, 205, 6, 4, 241, 23, - 6, 4, 244, 203, 6, 4, 244, 204, 6, 4, 250, 109, 6, 4, 244, 202, 6, 4, - 244, 197, 6, 4, 250, 107, 6, 4, 244, 196, 6, 4, 243, 145, 6, 4, 244, 208, - 6, 4, 250, 110, 6, 4, 244, 206, 6, 4, 241, 25, 6, 4, 244, 207, 6, 4, 244, - 210, 6, 4, 244, 211, 6, 4, 250, 111, 6, 4, 244, 209, 6, 4, 246, 110, 6, - 4, 246, 111, 6, 4, 252, 3, 6, 4, 246, 109, 6, 4, 242, 0, 6, 4, 243, 232, - 6, 4, 241, 255, 6, 4, 246, 107, 6, 4, 246, 108, 6, 4, 252, 2, 6, 4, 246, - 106, 6, 4, 246, 113, 6, 4, 246, 114, 6, 4, 252, 4, 6, 4, 246, 112, 6, 4, - 246, 117, 6, 4, 246, 118, 6, 4, 252, 5, 6, 4, 246, 115, 6, 4, 242, 1, 6, - 4, 246, 116, 6, 4, 246, 121, 6, 4, 246, 122, 6, 4, 252, 6, 6, 4, 246, - 119, 6, 4, 242, 2, 6, 4, 246, 120, 6, 4, 245, 173, 6, 4, 245, 174, 6, 4, - 251, 71, 6, 4, 245, 172, 6, 4, 241, 158, 6, 4, 245, 171, 6, 4, 241, 157, - 6, 4, 245, 169, 6, 4, 245, 170, 6, 4, 251, 70, 6, 4, 245, 168, 6, 4, 241, - 160, 6, 4, 245, 178, 6, 4, 241, 159, 6, 4, 245, 176, 6, 4, 245, 177, 6, - 4, 249, 82, 6, 4, 245, 175, 6, 4, 245, 181, 6, 4, 245, 182, 6, 4, 251, - 72, 6, 4, 245, 179, 6, 4, 241, 161, 6, 4, 245, 180, 6, 4, 245, 185, 6, 4, - 251, 73, 6, 4, 245, 183, 6, 4, 241, 162, 6, 4, 245, 184, 6, 4, 251, 237, - 6, 4, 251, 238, 6, 4, 253, 180, 6, 4, 251, 236, 6, 4, 246, 83, 6, 4, 251, - 231, 6, 4, 246, 82, 6, 4, 251, 220, 6, 4, 251, 221, 6, 4, 222, 6, 4, 251, - 218, 6, 4, 246, 97, 6, 4, 246, 98, 6, 4, 251, 243, 6, 4, 246, 96, 6, 4, - 251, 241, 6, 4, 251, 242, 6, 4, 253, 181, 6, 4, 249, 114, 6, 4, 251, 226, - 6, 4, 253, 206, 6, 4, 251, 246, 6, 4, 251, 247, 6, 4, 253, 154, 6, 4, - 251, 244, 6, 4, 246, 100, 6, 4, 251, 245, 6, 4, 251, 250, 6, 4, 251, 251, - 6, 4, 254, 209, 6, 4, 251, 249, 6, 4, 250, 247, 6, 4, 250, 248, 6, 4, - 253, 245, 6, 4, 250, 246, 6, 4, 250, 235, 6, 4, 250, 236, 6, 4, 253, 179, - 6, 4, 250, 234, 6, 4, 250, 251, 6, 4, 254, 63, 6, 4, 250, 250, 6, 4, 250, - 253, 6, 4, 250, 254, 6, 4, 254, 93, 6, 4, 250, 252, 6, 4, 245, 93, 6, 4, - 249, 64, 6, 4, 251, 3, 6, 4, 251, 4, 6, 4, 254, 165, 6, 4, 251, 2, 6, 4, - 253, 14, 6, 4, 253, 15, 6, 4, 254, 48, 6, 4, 253, 13, 6, 4, 247, 187, 6, - 4, 247, 188, 6, 4, 253, 12, 6, 4, 247, 186, 6, 4, 253, 8, 6, 4, 253, 9, - 6, 4, 253, 171, 6, 4, 253, 7, 6, 4, 253, 18, 6, 4, 253, 20, 6, 4, 254, - 13, 6, 4, 253, 17, 6, 4, 253, 11, 6, 4, 249, 193, 6, 4, 253, 22, 6, 4, - 253, 23, 6, 4, 254, 49, 6, 4, 253, 21, 6, 4, 247, 189, 6, 4, 249, 197, 6, - 4, 253, 27, 6, 4, 253, 28, 6, 4, 255, 1, 6, 4, 253, 25, 6, 4, 247, 190, - 6, 4, 253, 26, 6, 4, 250, 196, 6, 4, 250, 197, 6, 4, 253, 201, 6, 4, 250, - 195, 6, 4, 245, 66, 6, 4, 250, 194, 6, 4, 245, 65, 6, 4, 250, 184, 6, 4, - 250, 187, 6, 4, 253, 133, 6, 4, 250, 182, 6, 4, 245, 75, 6, 4, 250, 209, - 6, 4, 248, 40, 6, 4, 250, 205, 6, 4, 253, 225, 6, 4, 250, 204, 6, 4, 250, - 191, 6, 4, 253, 200, 6, 4, 250, 190, 6, 4, 250, 212, 6, 4, 250, 213, 6, - 4, 253, 232, 6, 4, 250, 210, 6, 4, 245, 76, 6, 4, 250, 211, 6, 4, 252, - 223, 6, 4, 252, 224, 6, 4, 253, 212, 6, 4, 252, 222, 6, 4, 247, 149, 6, - 4, 248, 139, 6, 4, 247, 148, 6, 4, 249, 174, 6, 4, 252, 212, 6, 4, 253, - 126, 6, 4, 252, 209, 6, 4, 247, 174, 6, 4, 247, 175, 6, 4, 252, 233, 6, - 4, 247, 173, 6, 4, 249, 184, 6, 4, 252, 228, 6, 4, 87, 6, 4, 249, 3, 6, - 4, 252, 217, 6, 4, 253, 195, 6, 4, 252, 214, 6, 4, 252, 236, 6, 4, 252, - 237, 6, 4, 253, 196, 6, 4, 252, 234, 6, 4, 247, 176, 6, 4, 252, 235, 6, - 4, 245, 47, 6, 4, 245, 48, 6, 4, 249, 51, 6, 4, 245, 46, 6, 4, 241, 77, - 6, 4, 245, 45, 6, 4, 241, 76, 6, 4, 245, 39, 6, 4, 245, 40, 6, 4, 248, - 75, 6, 4, 245, 38, 6, 4, 241, 79, 6, 4, 245, 53, 6, 4, 241, 78, 6, 4, - 245, 51, 6, 4, 245, 52, 6, 4, 248, 204, 6, 4, 245, 50, 6, 4, 245, 43, 6, - 4, 249, 50, 6, 4, 245, 42, 6, 4, 245, 55, 6, 4, 245, 56, 6, 4, 249, 52, - 6, 4, 245, 54, 6, 4, 241, 80, 6, 4, 243, 163, 6, 4, 246, 130, 6, 4, 246, - 131, 6, 4, 252, 9, 6, 4, 246, 129, 6, 4, 242, 3, 6, 4, 246, 128, 6, 4, - 246, 124, 6, 4, 246, 125, 6, 4, 252, 7, 6, 4, 246, 123, 6, 4, 246, 133, - 6, 4, 246, 134, 6, 4, 252, 10, 6, 4, 246, 132, 6, 4, 246, 127, 6, 4, 252, - 8, 6, 4, 246, 126, 6, 4, 246, 137, 6, 4, 246, 138, 6, 4, 252, 11, 6, 4, - 246, 135, 6, 4, 242, 4, 6, 4, 246, 136, 6, 4, 245, 193, 6, 4, 245, 194, - 6, 4, 251, 75, 6, 4, 245, 192, 6, 4, 241, 164, 6, 4, 241, 165, 6, 4, 245, - 191, 6, 4, 241, 163, 6, 4, 245, 187, 6, 4, 245, 188, 6, 4, 249, 83, 6, 4, - 245, 186, 6, 4, 241, 166, 6, 4, 245, 198, 6, 4, 245, 196, 6, 4, 245, 197, - 6, 4, 245, 195, 6, 4, 245, 190, 6, 4, 251, 74, 6, 4, 245, 189, 6, 4, 245, - 199, 6, 4, 252, 24, 6, 4, 252, 25, 6, 4, 253, 166, 6, 4, 252, 23, 6, 4, - 246, 155, 6, 4, 252, 21, 6, 4, 246, 154, 6, 4, 252, 1, 6, 4, 253, 131, 6, - 4, 251, 255, 6, 4, 246, 195, 6, 4, 252, 41, 6, 4, 246, 194, 6, 4, 248, - 233, 6, 4, 252, 35, 6, 4, 253, 173, 6, 4, 252, 33, 6, 4, 252, 15, 6, 4, - 253, 197, 6, 4, 252, 13, 6, 4, 252, 44, 6, 4, 252, 45, 6, 4, 253, 150, 6, - 4, 252, 42, 6, 4, 246, 196, 6, 4, 252, 43, 6, 4, 245, 155, 6, 4, 245, - 156, 6, 4, 251, 66, 6, 4, 245, 154, 6, 4, 241, 152, 6, 4, 245, 153, 6, 4, - 241, 151, 6, 4, 245, 149, 6, 4, 245, 150, 6, 4, 251, 64, 6, 4, 245, 148, - 6, 4, 241, 154, 6, 4, 245, 159, 6, 4, 241, 153, 6, 4, 245, 158, 6, 4, - 251, 67, 6, 4, 245, 157, 6, 4, 245, 152, 6, 4, 251, 65, 6, 4, 245, 151, - 6, 4, 245, 162, 6, 4, 245, 163, 6, 4, 251, 68, 6, 4, 245, 160, 6, 4, 241, - 155, 6, 4, 245, 161, 6, 4, 245, 166, 6, 4, 245, 167, 6, 4, 251, 69, 6, 4, - 245, 164, 6, 4, 241, 156, 6, 4, 245, 165, 6, 4, 251, 200, 6, 4, 251, 201, - 6, 4, 253, 251, 6, 4, 251, 198, 6, 4, 246, 49, 6, 4, 246, 50, 6, 4, 249, - 105, 6, 4, 246, 48, 6, 4, 251, 185, 6, 4, 251, 186, 6, 4, 253, 134, 6, 4, - 251, 183, 6, 4, 246, 57, 6, 4, 246, 58, 6, 4, 251, 209, 6, 4, 246, 56, 6, - 4, 251, 206, 6, 4, 251, 208, 6, 4, 253, 216, 6, 4, 251, 205, 6, 4, 251, - 191, 6, 4, 253, 250, 6, 4, 251, 189, 6, 4, 251, 212, 6, 4, 251, 213, 6, - 4, 254, 8, 6, 4, 251, 210, 6, 4, 246, 59, 6, 4, 251, 211, 6, 4, 251, 215, - 6, 4, 251, 216, 6, 4, 254, 110, 6, 4, 251, 214, 6, 4, 246, 60, 6, 4, 249, - 109, 6, 4, 251, 23, 6, 4, 251, 24, 6, 4, 254, 6, 6, 4, 251, 22, 6, 4, - 245, 122, 6, 4, 245, 123, 6, 4, 251, 21, 6, 4, 245, 121, 6, 4, 251, 10, - 6, 4, 251, 11, 6, 4, 253, 139, 6, 4, 251, 8, 6, 4, 245, 131, 6, 4, 245, - 132, 6, 4, 251, 31, 6, 4, 245, 130, 6, 4, 249, 78, 6, 4, 251, 27, 6, 4, - 253, 234, 6, 4, 251, 26, 6, 4, 251, 15, 6, 4, 251, 17, 6, 4, 254, 5, 6, - 4, 249, 69, 6, 4, 251, 34, 6, 4, 251, 35, 6, 4, 253, 235, 6, 4, 251, 32, - 6, 4, 245, 133, 6, 4, 251, 33, 6, 4, 249, 95, 6, 4, 251, 152, 6, 4, 253, - 215, 6, 4, 251, 151, 6, 4, 246, 15, 6, 4, 251, 148, 6, 4, 246, 14, 6, 4, - 251, 138, 6, 4, 251, 140, 6, 4, 201, 6, 4, 251, 137, 6, 4, 246, 21, 6, 4, - 251, 165, 6, 4, 246, 20, 6, 4, 251, 161, 6, 4, 251, 162, 6, 4, 253, 190, - 6, 4, 251, 160, 6, 4, 251, 143, 6, 4, 251, 144, 6, 4, 253, 172, 6, 4, - 251, 142, 6, 4, 251, 168, 6, 4, 251, 169, 6, 4, 253, 203, 6, 4, 251, 166, - 6, 4, 246, 23, 6, 4, 251, 167, 6, 4, 245, 108, 6, 4, 245, 109, 6, 4, 249, - 72, 6, 4, 241, 129, 6, 4, 245, 107, 6, 4, 241, 128, 6, 4, 245, 101, 6, 4, - 245, 102, 6, 4, 249, 70, 6, 4, 245, 100, 6, 4, 241, 131, 6, 4, 241, 132, - 6, 4, 243, 181, 6, 4, 241, 130, 6, 4, 245, 110, 6, 4, 245, 111, 6, 4, - 249, 73, 6, 4, 243, 180, 6, 4, 245, 105, 6, 4, 245, 106, 6, 4, 249, 71, - 6, 4, 245, 104, 6, 4, 245, 114, 6, 4, 245, 115, 6, 4, 249, 74, 6, 4, 245, - 112, 6, 4, 241, 133, 6, 4, 245, 113, 6, 4, 241, 238, 6, 4, 246, 72, 6, 4, - 246, 68, 6, 4, 246, 69, 6, 4, 251, 227, 6, 4, 246, 67, 6, 4, 241, 240, 6, - 4, 246, 76, 6, 4, 241, 239, 6, 4, 246, 74, 6, 4, 246, 75, 6, 4, 248, 167, - 6, 4, 246, 73, 6, 4, 246, 71, 6, 4, 251, 228, 6, 4, 246, 70, 6, 4, 246, - 79, 6, 4, 246, 80, 6, 4, 251, 229, 6, 4, 246, 77, 6, 4, 241, 241, 6, 4, - 246, 78, 6, 4, 243, 196, 6, 4, 245, 216, 6, 4, 251, 91, 6, 4, 245, 215, - 6, 4, 241, 172, 6, 4, 241, 173, 6, 4, 245, 214, 6, 4, 241, 171, 6, 4, - 245, 210, 6, 4, 245, 211, 6, 4, 251, 89, 6, 4, 245, 209, 6, 4, 241, 175, - 6, 4, 241, 176, 6, 4, 243, 198, 6, 4, 241, 174, 6, 4, 245, 217, 6, 4, - 245, 218, 6, 4, 251, 92, 6, 4, 243, 197, 6, 4, 245, 213, 6, 4, 251, 90, - 6, 4, 245, 212, 6, 4, 242, 7, 6, 4, 246, 146, 6, 4, 242, 6, 6, 4, 246, - 142, 6, 4, 246, 143, 6, 4, 248, 50, 6, 4, 246, 141, 6, 4, 242, 9, 6, 4, - 242, 10, 6, 4, 246, 153, 6, 4, 246, 151, 6, 4, 246, 152, 6, 4, 248, 172, - 6, 4, 246, 150, 6, 4, 246, 145, 6, 4, 252, 17, 6, 4, 246, 144, 6, 4, 251, - 63, 6, 4, 245, 145, 6, 4, 248, 160, 6, 4, 248, 214, 6, 4, 251, 48, 6, 4, - 219, 6, 4, 251, 47, 6, 4, 245, 206, 6, 4, 245, 207, 6, 4, 251, 83, 6, 4, - 245, 205, 6, 4, 251, 80, 6, 4, 251, 81, 6, 4, 253, 184, 6, 4, 251, 79, 6, - 4, 251, 55, 6, 4, 253, 168, 6, 4, 251, 53, 6, 4, 253, 30, 6, 4, 253, 31, - 6, 4, 253, 138, 6, 4, 253, 29, 6, 4, 247, 200, 6, 4, 253, 39, 6, 4, 247, - 199, 6, 4, 253, 38, 6, 4, 253, 177, 6, 4, 253, 36, 6, 4, 253, 33, 6, 4, - 253, 170, 6, 4, 253, 32, 6, 4, 253, 106, 6, 4, 253, 107, 6, 4, 254, 17, - 6, 4, 253, 105, 6, 4, 248, 10, 6, 4, 253, 104, 6, 4, 248, 9, 6, 4, 253, - 99, 6, 4, 253, 100, 6, 4, 253, 163, 6, 4, 253, 98, 6, 4, 248, 12, 6, 4, - 253, 114, 6, 4, 248, 11, 6, 4, 249, 221, 6, 4, 253, 112, 6, 4, 253, 222, - 6, 4, 253, 111, 6, 4, 253, 102, 6, 4, 253, 228, 6, 4, 253, 101, 6, 4, - 253, 115, 6, 4, 253, 116, 6, 4, 254, 18, 6, 4, 249, 222, 6, 4, 248, 13, - 6, 4, 249, 223, 6, 4, 253, 120, 6, 4, 253, 121, 6, 4, 255, 13, 6, 4, 253, - 118, 6, 4, 248, 14, 6, 4, 253, 119, 6, 4, 250, 163, 6, 4, 250, 164, 6, 4, - 254, 55, 6, 4, 249, 40, 6, 4, 245, 19, 6, 4, 245, 20, 6, 4, 250, 161, 6, - 4, 245, 18, 6, 4, 250, 146, 6, 4, 250, 147, 6, 4, 253, 152, 6, 4, 249, - 38, 6, 4, 245, 28, 6, 4, 250, 170, 6, 4, 243, 157, 6, 4, 250, 167, 6, 4, - 250, 168, 6, 4, 253, 224, 6, 4, 250, 166, 6, 4, 250, 157, 6, 4, 254, 54, - 6, 4, 250, 156, 6, 4, 250, 172, 6, 4, 250, 173, 6, 4, 254, 84, 6, 4, 249, - 43, 6, 4, 245, 29, 6, 4, 250, 171, 6, 4, 249, 48, 6, 4, 250, 176, 6, 4, - 254, 85, 6, 4, 249, 47, 6, 4, 245, 30, 6, 4, 250, 175, 6, 4, 248, 24, 6, - 4, 248, 25, 6, 4, 249, 226, 6, 4, 248, 23, 6, 4, 241, 1, 6, 4, 242, 211, - 6, 4, 248, 22, 6, 4, 242, 210, 6, 4, 248, 17, 6, 4, 248, 18, 6, 4, 249, - 224, 6, 4, 248, 16, 6, 4, 248, 27, 6, 4, 249, 227, 6, 4, 248, 26, 6, 4, - 248, 21, 6, 4, 249, 225, 6, 4, 248, 20, 6, 4, 248, 30, 6, 4, 249, 228, 6, - 4, 248, 28, 6, 4, 242, 212, 6, 4, 248, 29, 6, 4, 248, 33, 6, 4, 248, 34, - 6, 4, 253, 122, 6, 4, 248, 31, 6, 4, 242, 213, 6, 4, 248, 32, 6, 4, 246, - 219, 6, 4, 246, 220, 6, 4, 252, 49, 6, 4, 246, 218, 6, 4, 242, 34, 6, 4, - 246, 217, 6, 4, 242, 33, 6, 4, 246, 214, 6, 4, 246, 215, 6, 4, 252, 47, - 6, 4, 246, 213, 6, 4, 242, 35, 6, 4, 246, 223, 6, 4, 246, 222, 6, 4, 246, - 221, 6, 4, 246, 216, 6, 4, 252, 48, 6, 4, 246, 225, 6, 4, 252, 50, 6, 4, - 243, 239, 6, 4, 242, 36, 6, 4, 246, 224, 6, 4, 246, 228, 6, 4, 246, 229, - 6, 4, 252, 51, 6, 4, 246, 226, 6, 4, 242, 37, 6, 4, 246, 227, 6, 4, 252, - 180, 6, 4, 187, 6, 4, 253, 198, 6, 4, 252, 179, 6, 4, 247, 88, 6, 4, 252, - 176, 6, 4, 247, 87, 6, 4, 252, 167, 6, 4, 252, 168, 6, 4, 253, 132, 6, 4, - 252, 166, 6, 4, 247, 126, 6, 4, 252, 193, 6, 4, 247, 125, 6, 4, 252, 186, - 6, 4, 252, 188, 6, 4, 253, 186, 6, 4, 252, 185, 6, 4, 252, 172, 6, 4, - 253, 210, 6, 4, 252, 171, 6, 4, 252, 196, 6, 4, 252, 197, 6, 4, 253, 211, - 6, 4, 252, 194, 6, 4, 247, 128, 6, 4, 252, 195, 6, 4, 252, 200, 6, 4, - 252, 201, 6, 4, 254, 243, 6, 4, 252, 198, 6, 4, 247, 130, 6, 4, 252, 199, - 6, 4, 247, 108, 6, 4, 247, 109, 6, 4, 248, 249, 6, 4, 247, 107, 6, 4, - 242, 129, 6, 4, 247, 106, 6, 4, 242, 128, 6, 4, 247, 101, 6, 4, 247, 102, - 6, 4, 248, 66, 6, 4, 247, 100, 6, 4, 247, 111, 6, 4, 247, 112, 6, 4, 248, - 250, 6, 4, 247, 110, 6, 4, 247, 105, 6, 4, 249, 168, 6, 4, 247, 104, 6, - 4, 247, 114, 6, 4, 247, 115, 6, 4, 248, 251, 6, 4, 247, 113, 6, 4, 247, - 118, 6, 4, 247, 119, 6, 4, 252, 189, 6, 4, 247, 116, 6, 4, 242, 130, 6, - 4, 247, 117, 6, 4, 247, 247, 6, 4, 247, 248, 6, 4, 248, 99, 6, 4, 247, - 246, 6, 4, 242, 204, 6, 4, 247, 255, 6, 4, 242, 203, 6, 4, 247, 253, 6, - 4, 247, 254, 6, 4, 249, 218, 6, 4, 247, 252, 6, 4, 247, 250, 6, 4, 247, - 251, 6, 4, 248, 123, 6, 4, 247, 249, 6, 4, 248, 2, 6, 4, 248, 3, 6, 4, - 249, 219, 6, 4, 248, 0, 6, 4, 242, 205, 6, 4, 248, 1, 6, 4, 248, 7, 6, 4, - 248, 8, 6, 4, 253, 103, 6, 4, 248, 5, 6, 4, 242, 206, 6, 4, 248, 6, 6, 4, - 244, 255, 6, 4, 245, 0, 6, 4, 248, 57, 6, 4, 244, 254, 6, 4, 241, 57, 6, - 4, 241, 58, 6, 4, 245, 9, 6, 4, 241, 56, 6, 4, 245, 7, 6, 4, 245, 8, 6, - 4, 248, 125, 6, 4, 245, 6, 6, 4, 245, 2, 6, 4, 245, 3, 6, 4, 248, 88, 6, - 4, 245, 1, 6, 4, 245, 12, 6, 4, 248, 200, 6, 4, 245, 10, 6, 4, 241, 59, - 6, 4, 245, 11, 6, 4, 245, 16, 6, 4, 245, 17, 6, 4, 250, 160, 6, 4, 245, - 14, 6, 4, 241, 60, 6, 4, 245, 15, 6, 4, 247, 35, 6, 4, 248, 96, 6, 4, - 242, 87, 6, 4, 247, 43, 6, 4, 247, 41, 6, 4, 247, 42, 6, 4, 249, 157, 6, - 4, 247, 40, 6, 4, 247, 38, 6, 4, 247, 39, 6, 4, 252, 147, 6, 4, 247, 37, - 6, 4, 247, 46, 6, 4, 247, 47, 6, 4, 252, 148, 6, 4, 247, 44, 6, 4, 242, - 88, 6, 4, 247, 45, 6, 4, 247, 50, 6, 4, 247, 51, 6, 4, 252, 149, 6, 4, - 247, 48, 6, 4, 242, 89, 6, 4, 247, 49, 6, 4, 246, 178, 6, 4, 246, 179, 6, - 4, 249, 123, 6, 4, 246, 177, 6, 4, 246, 184, 6, 4, 252, 37, 6, 4, 246, - 183, 6, 4, 246, 181, 6, 4, 246, 182, 6, 4, 252, 36, 6, 4, 246, 180, 6, 4, - 246, 187, 6, 4, 246, 188, 6, 4, 252, 38, 6, 4, 246, 185, 6, 4, 242, 25, - 6, 4, 246, 186, 6, 4, 246, 191, 6, 4, 246, 192, 6, 4, 252, 39, 6, 4, 246, - 189, 6, 4, 242, 26, 6, 4, 246, 190, 6, 4, 244, 8, 6, 4, 247, 69, 6, 4, - 248, 46, 6, 4, 247, 68, 6, 4, 242, 110, 6, 4, 247, 79, 6, 4, 242, 109, 6, - 4, 247, 77, 6, 4, 247, 78, 6, 4, 248, 110, 6, 4, 244, 13, 6, 4, 247, 71, - 6, 4, 247, 72, 6, 4, 248, 118, 6, 4, 247, 70, 6, 4, 247, 81, 6, 4, 247, - 82, 6, 4, 248, 248, 6, 4, 247, 80, 6, 4, 242, 111, 6, 4, 244, 15, 6, 4, - 247, 85, 6, 4, 247, 86, 6, 4, 249, 163, 6, 4, 247, 83, 6, 4, 242, 112, 6, - 4, 247, 84, 6, 4, 249, 152, 6, 4, 252, 130, 6, 4, 253, 130, 6, 4, 248, - 244, 6, 4, 247, 55, 6, 4, 252, 152, 6, 4, 247, 54, 6, 4, 252, 145, 6, 4, - 252, 146, 6, 4, 253, 160, 6, 4, 252, 144, 6, 4, 252, 135, 6, 4, 253, 194, - 6, 4, 252, 133, 6, 4, 252, 155, 6, 4, 252, 156, 6, 4, 253, 185, 6, 4, - 252, 153, 6, 4, 247, 56, 6, 4, 252, 154, 6, 4, 252, 161, 6, 4, 252, 162, - 6, 4, 254, 125, 6, 4, 252, 159, 6, 4, 247, 58, 6, 4, 252, 160, 6, 4, 251, - 118, 6, 4, 251, 119, 6, 4, 254, 7, 6, 4, 251, 117, 6, 4, 245, 236, 6, 4, - 245, 237, 6, 4, 251, 116, 6, 4, 245, 235, 6, 4, 245, 255, 6, 4, 246, 0, - 6, 4, 251, 126, 6, 4, 245, 254, 6, 4, 248, 115, 6, 4, 251, 124, 6, 4, - 253, 248, 6, 4, 251, 123, 6, 4, 251, 129, 6, 4, 251, 130, 6, 4, 254, 25, - 6, 4, 251, 127, 6, 4, 246, 1, 6, 4, 251, 128, 6, 4, 251, 134, 6, 4, 251, - 135, 6, 4, 254, 181, 6, 4, 251, 132, 6, 4, 246, 2, 6, 4, 251, 133, 6, 4, - 252, 96, 6, 4, 252, 97, 6, 4, 254, 28, 6, 4, 252, 95, 6, 4, 247, 13, 6, - 4, 247, 14, 6, 4, 252, 94, 6, 4, 247, 12, 6, 4, 247, 17, 6, 4, 247, 18, - 6, 4, 249, 149, 6, 4, 247, 16, 6, 4, 249, 148, 6, 4, 252, 102, 6, 4, 254, - 45, 6, 4, 252, 101, 6, 4, 252, 109, 6, 4, 252, 111, 6, 4, 254, 29, 6, 4, - 252, 107, 6, 4, 247, 19, 6, 4, 252, 108, 6, 4, 252, 121, 6, 4, 252, 123, - 6, 4, 254, 234, 6, 4, 252, 119, 6, 4, 247, 25, 6, 4, 252, 120, 6, 4, 245, - 240, 6, 4, 245, 241, 6, 4, 249, 86, 6, 4, 245, 239, 6, 4, 241, 183, 6, 4, - 241, 184, 6, 4, 243, 202, 6, 4, 241, 182, 6, 4, 241, 186, 6, 4, 245, 245, - 6, 4, 241, 185, 6, 4, 245, 243, 6, 4, 245, 244, 6, 4, 249, 87, 6, 4, 245, - 242, 6, 4, 243, 203, 6, 4, 245, 248, 6, 4, 249, 88, 6, 4, 245, 246, 6, 4, - 241, 187, 6, 4, 245, 247, 6, 4, 245, 250, 6, 4, 245, 251, 6, 4, 249, 89, - 6, 4, 245, 249, 6, 4, 246, 159, 6, 4, 246, 160, 6, 4, 252, 26, 6, 4, 246, - 158, 6, 4, 242, 14, 6, 4, 242, 15, 6, 4, 246, 157, 6, 4, 242, 13, 6, 4, - 242, 16, 6, 4, 246, 164, 6, 4, 246, 162, 6, 4, 246, 163, 6, 4, 252, 27, - 6, 4, 246, 161, 6, 4, 246, 167, 6, 4, 252, 28, 6, 4, 246, 165, 6, 4, 242, - 17, 6, 4, 246, 166, 6, 4, 246, 170, 6, 4, 246, 171, 6, 4, 252, 29, 6, 4, - 246, 168, 6, 4, 242, 18, 6, 4, 246, 169, 6, 4, 246, 203, 6, 4, 246, 204, - 6, 4, 248, 178, 6, 4, 243, 237, 6, 4, 242, 29, 6, 4, 242, 30, 6, 4, 246, - 202, 6, 4, 242, 28, 6, 4, 242, 32, 6, 4, 246, 208, 6, 4, 242, 31, 6, 4, - 246, 206, 6, 4, 246, 207, 6, 4, 248, 133, 6, 4, 243, 238, 6, 4, 246, 210, - 6, 4, 246, 211, 6, 4, 249, 125, 6, 4, 246, 209, 6, 4, 253, 45, 6, 4, 253, - 46, 6, 4, 253, 188, 6, 4, 253, 44, 6, 4, 247, 202, 6, 4, 247, 203, 6, 4, - 253, 43, 6, 4, 247, 201, 6, 4, 247, 205, 6, 4, 253, 52, 6, 4, 253, 50, 6, - 4, 253, 51, 6, 4, 254, 133, 6, 4, 253, 48, 6, 4, 253, 62, 6, 4, 253, 64, - 6, 4, 255, 7, 6, 4, 253, 60, 6, 4, 247, 210, 6, 4, 253, 61, 6, 4, 249, - 209, 6, 4, 253, 83, 6, 4, 253, 189, 6, 4, 253, 82, 6, 4, 247, 228, 6, 4, - 247, 229, 6, 4, 253, 80, 6, 4, 247, 227, 6, 4, 247, 240, 6, 4, 247, 241, - 6, 4, 253, 88, 6, 4, 247, 239, 6, 4, 249, 211, 6, 4, 253, 86, 6, 4, 253, - 162, 6, 4, 253, 85, 6, 4, 253, 91, 6, 4, 253, 92, 6, 4, 253, 161, 6, 4, - 253, 89, 6, 4, 247, 242, 6, 4, 253, 90, 6, 4, 253, 95, 6, 4, 253, 96, 6, - 4, 254, 77, 6, 4, 253, 93, 6, 4, 247, 243, 6, 4, 253, 94, 6, 25, 249, - 148, 6, 25, 253, 251, 6, 25, 249, 95, 6, 25, 243, 237, 6, 25, 249, 47, 6, - 25, 248, 249, 6, 25, 243, 180, 6, 25, 249, 69, 6, 25, 253, 180, 6, 25, - 243, 196, 6, 25, 249, 109, 6, 25, 243, 145, 6, 25, 249, 114, 6, 25, 253, - 162, 6, 25, 249, 142, 6, 25, 243, 198, 6, 25, 249, 174, 6, 25, 253, 139, - 6, 25, 249, 222, 6, 25, 249, 48, 6, 25, 243, 163, 6, 25, 249, 35, 6, 25, - 243, 181, 6, 25, 243, 238, 6, 25, 253, 196, 6, 25, 254, 120, 6, 25, 243, - 203, 6, 25, 249, 221, 6, 25, 249, 144, 6, 25, 249, 82, 6, 25, 249, 209, - 6, 25, 249, 197, 6, 25, 249, 163, 6, 25, 249, 193, 6, 25, 253, 163, 6, - 25, 253, 248, 6, 25, 243, 239, 6, 25, 249, 89, 6, 25, 249, 78, 6, 25, - 243, 202, 6, 25, 253, 177, 6, 25, 253, 232, 6, 25, 244, 15, 6, 25, 249, - 105, 6, 25, 254, 85, 6, 25, 243, 157, 6, 25, 249, 40, 6, 25, 243, 197, 6, - 25, 244, 8, 6, 25, 249, 223, 6, 25, 244, 13, 6, 25, 248, 88, 6, 25, 241, - 1, 6, 25, 243, 232, 6, 25, 253, 172, 49, 1, 238, 85, 188, 254, 15, 243, - 243, 49, 1, 238, 85, 188, 248, 122, 243, 243, 49, 1, 238, 85, 188, 254, - 15, 240, 222, 49, 1, 238, 85, 188, 248, 122, 240, 222, 49, 1, 238, 85, - 188, 254, 15, 254, 29, 49, 1, 238, 85, 188, 248, 122, 254, 29, 49, 1, - 238, 85, 188, 254, 15, 253, 185, 49, 1, 238, 85, 188, 248, 122, 253, 185, - 49, 1, 234, 27, 240, 4, 188, 125, 49, 1, 200, 240, 4, 188, 125, 49, 1, - 254, 40, 240, 4, 188, 125, 49, 1, 170, 240, 4, 188, 125, 49, 1, 235, 87, - 240, 4, 188, 125, 49, 1, 234, 27, 240, 4, 235, 64, 188, 125, 49, 1, 200, - 240, 4, 235, 64, 188, 125, 49, 1, 254, 40, 240, 4, 235, 64, 188, 125, 49, - 1, 170, 240, 4, 235, 64, 188, 125, 49, 1, 235, 87, 240, 4, 235, 64, 188, - 125, 49, 1, 234, 27, 235, 64, 188, 125, 49, 1, 200, 235, 64, 188, 125, - 49, 1, 254, 40, 235, 64, 188, 125, 49, 1, 170, 235, 64, 188, 125, 49, 1, - 235, 87, 235, 64, 188, 125, 239, 253, 242, 214, 1, 67, 239, 253, 242, - 214, 1, 71, 239, 253, 242, 214, 21, 236, 10, 239, 253, 242, 214, 1, 79, - 239, 253, 242, 214, 1, 72, 239, 253, 242, 214, 1, 73, 239, 253, 242, 214, - 21, 237, 170, 239, 253, 242, 214, 1, 253, 190, 239, 253, 242, 214, 1, - 248, 220, 239, 253, 242, 214, 1, 253, 234, 239, 253, 242, 214, 1, 249, - 75, 239, 253, 242, 214, 21, 235, 61, 239, 253, 242, 214, 1, 253, 224, - 239, 253, 242, 214, 1, 248, 125, 239, 253, 242, 214, 1, 253, 248, 239, - 253, 242, 214, 1, 251, 114, 239, 253, 242, 214, 1, 249, 6, 239, 253, 242, - 214, 1, 243, 131, 239, 253, 242, 214, 1, 248, 204, 239, 253, 242, 214, 1, - 245, 44, 239, 253, 242, 214, 1, 87, 239, 253, 242, 214, 1, 248, 97, 239, - 253, 242, 214, 1, 253, 225, 239, 253, 242, 214, 1, 250, 193, 239, 253, - 242, 214, 1, 253, 173, 239, 253, 242, 214, 1, 253, 208, 239, 253, 242, - 214, 1, 248, 238, 239, 253, 242, 214, 1, 254, 1, 239, 253, 242, 214, 1, - 250, 120, 239, 253, 242, 214, 1, 253, 181, 239, 253, 242, 214, 1, 253, - 160, 239, 253, 242, 214, 1, 253, 216, 239, 253, 242, 214, 1, 249, 157, - 239, 253, 242, 214, 1, 253, 186, 239, 253, 242, 214, 1, 253, 184, 239, - 253, 242, 214, 33, 21, 67, 239, 253, 242, 214, 33, 21, 71, 239, 253, 242, - 214, 33, 21, 79, 239, 253, 242, 214, 33, 21, 72, 239, 253, 242, 214, 33, - 21, 253, 156, 239, 253, 242, 214, 240, 120, 238, 200, 239, 253, 242, 214, - 240, 120, 238, 201, 239, 253, 242, 214, 240, 120, 239, 127, 239, 253, - 242, 214, 240, 120, 239, 128, 7, 9, 229, 68, 7, 9, 229, 69, 7, 9, 229, - 70, 7, 9, 229, 71, 7, 9, 229, 72, 7, 9, 229, 73, 7, 9, 229, 74, 7, 9, - 229, 75, 7, 9, 229, 76, 7, 9, 229, 77, 7, 9, 229, 78, 7, 9, 229, 79, 7, - 9, 229, 80, 7, 9, 229, 81, 7, 9, 229, 82, 7, 9, 229, 83, 7, 9, 229, 84, - 7, 9, 229, 85, 7, 9, 229, 86, 7, 9, 229, 87, 7, 9, 229, 88, 7, 9, 229, - 89, 7, 9, 229, 90, 7, 9, 229, 91, 7, 9, 229, 92, 7, 9, 229, 93, 7, 9, - 229, 94, 7, 9, 229, 95, 7, 9, 229, 96, 7, 9, 229, 97, 7, 9, 229, 98, 7, - 9, 229, 99, 7, 9, 229, 100, 7, 9, 229, 101, 7, 9, 229, 102, 7, 9, 229, - 103, 7, 9, 229, 104, 7, 9, 229, 105, 7, 9, 229, 106, 7, 9, 229, 107, 7, - 9, 229, 108, 7, 9, 229, 109, 7, 9, 229, 110, 7, 9, 229, 111, 7, 9, 229, - 112, 7, 9, 229, 113, 7, 9, 229, 114, 7, 9, 229, 115, 7, 9, 229, 116, 7, - 9, 229, 117, 7, 9, 229, 118, 7, 9, 229, 119, 7, 9, 229, 120, 7, 9, 229, - 121, 7, 9, 229, 122, 7, 9, 229, 123, 7, 9, 229, 124, 7, 9, 229, 125, 7, - 9, 229, 126, 7, 9, 229, 127, 7, 9, 229, 128, 7, 9, 229, 129, 7, 9, 229, - 130, 7, 9, 229, 131, 7, 9, 229, 132, 7, 9, 229, 133, 7, 9, 229, 134, 7, - 9, 229, 135, 7, 9, 229, 136, 7, 9, 229, 137, 7, 9, 229, 138, 7, 9, 229, - 139, 7, 9, 229, 140, 7, 9, 229, 141, 7, 9, 229, 142, 7, 9, 229, 143, 7, - 9, 229, 144, 7, 9, 229, 145, 7, 9, 229, 146, 7, 9, 229, 147, 7, 9, 229, - 148, 7, 9, 229, 149, 7, 9, 229, 150, 7, 9, 229, 151, 7, 9, 229, 152, 7, - 9, 229, 153, 7, 9, 229, 154, 7, 9, 229, 155, 7, 9, 229, 156, 7, 9, 229, - 157, 7, 9, 229, 158, 7, 9, 229, 159, 7, 9, 229, 160, 7, 9, 229, 161, 7, - 9, 229, 162, 7, 9, 229, 163, 7, 9, 229, 164, 7, 9, 229, 165, 7, 9, 229, - 166, 7, 9, 229, 167, 7, 9, 229, 168, 7, 9, 229, 169, 7, 9, 229, 170, 7, - 9, 229, 171, 7, 9, 229, 172, 7, 9, 229, 173, 7, 9, 229, 174, 7, 9, 229, - 175, 7, 9, 229, 176, 7, 9, 229, 177, 7, 9, 229, 178, 7, 9, 229, 179, 7, - 9, 229, 180, 7, 9, 229, 181, 7, 9, 229, 182, 7, 9, 229, 183, 7, 9, 229, - 184, 7, 9, 229, 185, 7, 9, 229, 186, 7, 9, 229, 187, 7, 9, 229, 188, 7, - 9, 229, 189, 7, 9, 229, 190, 7, 9, 229, 191, 7, 9, 229, 192, 7, 9, 229, - 193, 7, 9, 229, 194, 7, 9, 229, 195, 7, 9, 229, 196, 7, 9, 229, 197, 7, - 9, 229, 198, 7, 9, 229, 199, 7, 9, 229, 200, 7, 9, 229, 201, 7, 9, 229, - 202, 7, 9, 229, 203, 7, 9, 229, 204, 7, 9, 229, 205, 7, 9, 229, 206, 7, - 9, 229, 207, 7, 9, 229, 208, 7, 9, 229, 209, 7, 9, 229, 210, 7, 9, 229, - 211, 7, 9, 229, 212, 7, 9, 229, 213, 7, 9, 229, 214, 7, 9, 229, 215, 7, - 9, 229, 216, 7, 9, 229, 217, 7, 9, 229, 218, 7, 9, 229, 219, 7, 9, 229, - 220, 7, 9, 229, 221, 7, 9, 229, 222, 7, 9, 229, 223, 7, 9, 229, 224, 7, - 9, 229, 225, 7, 9, 229, 226, 7, 9, 229, 227, 7, 9, 229, 228, 7, 9, 229, - 229, 7, 9, 229, 230, 7, 9, 229, 231, 7, 9, 229, 232, 7, 9, 229, 233, 7, - 9, 229, 234, 7, 9, 229, 235, 7, 9, 229, 236, 7, 9, 229, 237, 7, 9, 229, - 238, 7, 9, 229, 239, 7, 9, 229, 240, 7, 9, 229, 241, 7, 9, 229, 242, 7, - 9, 229, 243, 7, 9, 229, 244, 7, 9, 229, 245, 7, 9, 229, 246, 7, 9, 229, - 247, 7, 9, 229, 248, 7, 9, 229, 249, 7, 9, 229, 250, 7, 9, 229, 251, 7, - 9, 229, 252, 7, 9, 229, 253, 7, 9, 229, 254, 7, 9, 229, 255, 7, 9, 230, - 0, 7, 9, 230, 1, 7, 9, 230, 2, 7, 9, 230, 3, 7, 9, 230, 4, 7, 9, 230, 5, - 7, 9, 230, 6, 7, 9, 230, 7, 7, 9, 230, 8, 7, 9, 230, 9, 7, 9, 230, 10, 7, - 9, 230, 11, 7, 9, 230, 12, 7, 9, 230, 13, 7, 9, 230, 14, 7, 9, 230, 15, - 7, 9, 230, 16, 7, 9, 230, 17, 7, 9, 230, 18, 7, 9, 230, 19, 7, 9, 230, - 20, 7, 9, 230, 21, 7, 9, 230, 22, 7, 9, 230, 23, 7, 9, 230, 24, 7, 9, - 230, 25, 7, 9, 230, 26, 7, 9, 230, 27, 7, 9, 230, 28, 7, 9, 230, 29, 7, - 9, 230, 30, 7, 9, 230, 31, 7, 9, 230, 32, 7, 9, 230, 33, 7, 9, 230, 34, - 7, 9, 230, 35, 7, 9, 230, 36, 7, 9, 230, 37, 7, 9, 230, 38, 7, 9, 230, - 39, 7, 9, 230, 40, 7, 9, 230, 41, 7, 9, 230, 42, 7, 9, 230, 43, 7, 9, - 230, 44, 7, 9, 230, 45, 7, 9, 230, 46, 7, 9, 230, 47, 7, 9, 230, 48, 7, - 9, 230, 49, 7, 9, 230, 50, 7, 9, 230, 51, 7, 9, 230, 52, 7, 9, 230, 53, - 7, 9, 230, 54, 7, 9, 230, 55, 7, 9, 230, 56, 7, 9, 230, 57, 7, 9, 230, - 58, 7, 9, 230, 59, 7, 9, 230, 60, 7, 9, 230, 61, 7, 9, 230, 62, 7, 9, - 230, 63, 7, 9, 230, 64, 7, 9, 230, 65, 7, 9, 230, 66, 7, 9, 230, 67, 7, - 9, 230, 68, 7, 9, 230, 69, 7, 9, 230, 70, 7, 9, 230, 71, 7, 9, 230, 72, - 7, 9, 230, 73, 7, 9, 230, 74, 7, 9, 230, 75, 7, 9, 230, 76, 7, 9, 230, - 77, 7, 9, 230, 78, 7, 9, 230, 79, 7, 9, 230, 80, 7, 9, 230, 81, 7, 9, - 230, 82, 7, 9, 230, 83, 7, 9, 230, 84, 7, 9, 230, 85, 7, 9, 230, 86, 7, - 9, 230, 87, 7, 9, 230, 88, 7, 9, 230, 89, 7, 9, 230, 90, 7, 9, 230, 91, - 7, 9, 230, 92, 7, 9, 230, 93, 7, 9, 230, 94, 7, 9, 230, 95, 7, 9, 230, - 96, 7, 9, 230, 97, 7, 9, 230, 98, 7, 9, 230, 99, 7, 9, 230, 100, 7, 9, - 230, 101, 7, 9, 230, 102, 7, 9, 230, 103, 7, 9, 230, 104, 7, 9, 230, 105, - 7, 9, 230, 106, 7, 9, 230, 107, 7, 9, 230, 108, 7, 9, 230, 109, 7, 9, - 230, 110, 7, 9, 230, 111, 7, 9, 230, 112, 7, 9, 230, 113, 7, 9, 230, 114, - 7, 9, 230, 115, 7, 9, 230, 116, 7, 9, 230, 117, 7, 9, 230, 118, 7, 9, - 230, 119, 7, 9, 230, 120, 7, 9, 230, 121, 7, 9, 230, 122, 7, 9, 230, 123, - 7, 9, 230, 124, 7, 9, 230, 125, 7, 9, 230, 126, 7, 9, 230, 127, 7, 9, - 230, 128, 7, 9, 230, 129, 7, 9, 230, 130, 7, 9, 230, 131, 7, 9, 230, 132, - 7, 9, 230, 133, 7, 9, 230, 134, 7, 9, 230, 135, 7, 9, 230, 136, 7, 9, - 230, 137, 7, 9, 230, 138, 7, 9, 230, 139, 7, 9, 230, 140, 7, 9, 230, 141, - 7, 9, 230, 142, 7, 9, 230, 143, 7, 9, 230, 144, 7, 9, 230, 145, 7, 9, - 230, 146, 7, 9, 230, 147, 7, 9, 230, 148, 7, 9, 230, 149, 7, 9, 230, 150, - 7, 9, 230, 151, 7, 9, 230, 152, 7, 9, 230, 153, 7, 9, 230, 154, 7, 9, - 230, 155, 7, 9, 230, 156, 7, 9, 230, 157, 7, 9, 230, 158, 7, 9, 230, 159, - 7, 9, 230, 160, 7, 9, 230, 161, 7, 9, 230, 162, 7, 9, 230, 163, 7, 9, - 230, 164, 7, 9, 230, 165, 7, 9, 230, 166, 7, 9, 230, 167, 7, 9, 230, 168, - 7, 9, 230, 169, 7, 9, 230, 170, 7, 9, 230, 171, 7, 9, 230, 172, 7, 9, - 230, 173, 7, 9, 230, 174, 7, 9, 230, 175, 7, 9, 230, 176, 7, 9, 230, 177, - 7, 9, 230, 178, 7, 9, 230, 179, 7, 9, 230, 180, 7, 9, 230, 181, 7, 9, - 230, 182, 7, 9, 230, 183, 7, 9, 230, 184, 7, 9, 230, 185, 7, 9, 230, 186, - 7, 9, 230, 187, 7, 9, 230, 188, 7, 9, 230, 189, 7, 9, 230, 190, 7, 9, - 230, 191, 7, 9, 230, 192, 7, 9, 230, 193, 7, 9, 230, 194, 7, 9, 230, 195, - 7, 9, 230, 196, 7, 9, 230, 197, 7, 9, 230, 198, 7, 9, 230, 199, 7, 9, - 230, 200, 7, 9, 230, 201, 7, 9, 230, 202, 7, 9, 230, 203, 7, 9, 230, 204, - 7, 9, 230, 205, 7, 9, 230, 206, 7, 9, 230, 207, 7, 9, 230, 208, 7, 9, - 230, 209, 7, 9, 230, 210, 7, 9, 230, 211, 7, 9, 230, 212, 7, 9, 230, 213, - 7, 9, 230, 214, 7, 9, 230, 215, 7, 9, 230, 216, 7, 9, 230, 217, 7, 9, - 230, 218, 7, 9, 230, 219, 7, 9, 230, 220, 7, 9, 230, 221, 7, 9, 230, 222, - 7, 9, 230, 223, 7, 9, 230, 224, 7, 9, 230, 225, 7, 9, 230, 226, 7, 9, - 230, 227, 7, 9, 230, 228, 7, 9, 230, 229, 7, 9, 230, 230, 7, 9, 230, 231, - 7, 9, 230, 232, 7, 9, 230, 233, 7, 9, 230, 234, 7, 9, 230, 235, 7, 9, - 230, 236, 7, 9, 230, 237, 7, 9, 230, 238, 7, 9, 230, 239, 7, 9, 230, 240, - 7, 9, 230, 241, 7, 9, 230, 242, 7, 9, 230, 243, 7, 9, 230, 244, 7, 9, - 230, 245, 7, 9, 230, 246, 7, 9, 230, 247, 7, 9, 230, 248, 7, 9, 230, 249, - 7, 9, 230, 250, 7, 9, 230, 251, 7, 9, 230, 252, 7, 9, 230, 253, 7, 9, - 230, 254, 7, 9, 230, 255, 7, 9, 231, 0, 7, 9, 231, 1, 7, 9, 231, 2, 7, 9, - 231, 3, 7, 9, 231, 4, 7, 9, 231, 5, 7, 9, 231, 6, 7, 9, 231, 7, 7, 9, - 231, 8, 7, 9, 231, 9, 7, 9, 231, 10, 7, 9, 231, 11, 7, 9, 231, 12, 7, 9, - 231, 13, 7, 9, 231, 14, 7, 9, 231, 15, 7, 9, 231, 16, 7, 9, 231, 17, 7, - 9, 231, 18, 7, 9, 231, 19, 7, 9, 231, 20, 7, 9, 231, 21, 7, 9, 231, 22, - 8, 3, 18, 254, 162, 8, 3, 18, 253, 245, 8, 3, 18, 254, 163, 8, 3, 18, - 250, 241, 8, 3, 18, 250, 242, 8, 3, 18, 183, 255, 99, 214, 8, 3, 18, 254, - 242, 100, 3, 18, 254, 39, 248, 175, 100, 3, 18, 254, 39, 248, 208, 100, - 3, 18, 254, 39, 248, 216, 100, 3, 18, 255, 0, 248, 175, 100, 3, 18, 254, - 39, 249, 17, 68, 1, 254, 50, 2, 240, 187, 68, 242, 232, 231, 144, 239, - 241, 68, 18, 238, 126, 254, 50, 254, 50, 240, 118, 68, 1, 233, 68, 243, - 144, 68, 1, 248, 98, 243, 3, 68, 1, 248, 98, 240, 165, 68, 1, 248, 98, - 253, 168, 68, 1, 248, 98, 248, 116, 68, 1, 248, 98, 240, 139, 68, 1, 248, - 98, 30, 248, 166, 68, 1, 248, 98, 243, 253, 68, 1, 248, 98, 249, 175, 68, - 1, 233, 68, 248, 49, 52, 68, 1, 248, 102, 2, 248, 102, 248, 40, 68, 1, - 248, 102, 2, 254, 73, 248, 40, 68, 1, 248, 102, 2, 240, 133, 19, 248, - 102, 248, 40, 68, 1, 248, 102, 2, 240, 133, 19, 254, 73, 248, 40, 68, 1, - 83, 2, 240, 118, 68, 1, 83, 2, 238, 149, 68, 1, 83, 2, 240, 140, 68, 1, - 254, 53, 2, 238, 61, 68, 1, 243, 184, 2, 238, 61, 68, 1, 243, 162, 2, - 238, 61, 68, 1, 255, 76, 2, 240, 140, 68, 1, 254, 76, 2, 238, 61, 68, 1, - 247, 244, 2, 238, 61, 68, 1, 254, 247, 2, 238, 61, 68, 1, 254, 50, 2, - 238, 61, 68, 1, 30, 253, 135, 2, 238, 61, 68, 1, 253, 135, 2, 238, 61, - 68, 1, 246, 38, 2, 238, 61, 68, 1, 254, 201, 2, 238, 61, 68, 1, 254, 114, - 2, 238, 61, 68, 1, 242, 94, 2, 238, 61, 68, 1, 30, 255, 38, 2, 238, 61, - 68, 1, 255, 38, 2, 238, 61, 68, 1, 247, 161, 2, 238, 61, 68, 1, 254, 233, - 2, 238, 61, 68, 1, 252, 134, 2, 238, 61, 68, 1, 248, 102, 2, 238, 61, 68, - 1, 254, 245, 2, 238, 61, 68, 1, 254, 76, 2, 240, 188, 68, 1, 254, 53, 2, - 243, 70, 68, 1, 253, 135, 2, 243, 70, 68, 1, 255, 38, 2, 243, 70, 68, 18, - 83, 240, 139, 11, 1, 83, 244, 49, 39, 13, 11, 1, 83, 244, 49, 30, 13, 11, - 1, 248, 147, 39, 13, 11, 1, 248, 147, 30, 13, 11, 1, 248, 147, 54, 13, - 11, 1, 248, 147, 113, 13, 11, 1, 254, 44, 39, 13, 11, 1, 254, 44, 30, 13, - 11, 1, 254, 44, 54, 13, 11, 1, 254, 44, 113, 13, 11, 1, 243, 52, 39, 13, - 11, 1, 243, 52, 30, 13, 11, 1, 243, 52, 54, 13, 11, 1, 243, 52, 113, 13, - 11, 1, 240, 124, 39, 13, 11, 1, 240, 124, 30, 13, 11, 1, 240, 124, 54, - 13, 11, 1, 240, 124, 113, 13, 11, 1, 243, 75, 39, 13, 11, 1, 243, 75, 30, - 13, 11, 1, 243, 75, 54, 13, 11, 1, 243, 75, 113, 13, 11, 1, 248, 189, 39, - 13, 11, 1, 248, 189, 30, 13, 11, 1, 248, 189, 54, 13, 11, 1, 248, 189, - 113, 13, 11, 1, 254, 47, 39, 13, 11, 1, 254, 47, 30, 13, 11, 1, 254, 47, - 54, 13, 11, 1, 254, 47, 113, 13, 11, 1, 243, 69, 39, 13, 11, 1, 243, 69, - 30, 13, 11, 1, 243, 69, 54, 13, 11, 1, 243, 69, 113, 13, 11, 1, 248, 152, - 39, 13, 11, 1, 248, 152, 30, 13, 11, 1, 248, 152, 54, 13, 11, 1, 248, - 152, 113, 13, 11, 1, 248, 177, 39, 13, 11, 1, 248, 177, 30, 13, 11, 1, - 248, 177, 54, 13, 11, 1, 248, 177, 113, 13, 11, 1, 243, 47, 39, 13, 11, - 1, 243, 47, 30, 13, 11, 1, 243, 47, 54, 13, 11, 1, 243, 47, 113, 13, 11, - 1, 238, 123, 39, 13, 11, 1, 238, 123, 30, 13, 11, 1, 238, 123, 54, 13, - 11, 1, 238, 123, 113, 13, 11, 1, 240, 166, 39, 13, 11, 1, 240, 166, 30, - 13, 11, 1, 243, 161, 39, 13, 11, 1, 243, 161, 30, 13, 11, 1, 254, 87, 39, - 13, 11, 1, 254, 87, 30, 13, 11, 1, 249, 49, 39, 13, 11, 1, 249, 49, 30, - 13, 11, 1, 254, 103, 39, 13, 11, 1, 254, 103, 30, 13, 11, 1, 249, 156, - 39, 13, 11, 1, 249, 156, 30, 13, 11, 1, 243, 21, 39, 13, 11, 1, 243, 21, - 30, 13, 11, 1, 243, 21, 54, 13, 11, 1, 243, 21, 113, 13, 11, 1, 253, 246, - 39, 13, 11, 1, 253, 246, 30, 13, 11, 1, 253, 246, 54, 13, 11, 1, 253, - 246, 113, 13, 11, 1, 248, 159, 39, 13, 11, 1, 248, 159, 30, 13, 11, 1, - 248, 159, 54, 13, 11, 1, 248, 159, 113, 13, 11, 1, 243, 67, 39, 13, 11, - 1, 243, 67, 30, 13, 11, 1, 243, 67, 54, 13, 11, 1, 243, 67, 113, 13, 11, - 1, 198, 240, 182, 39, 13, 11, 1, 198, 240, 182, 30, 13, 11, 1, 243, 71, - 39, 13, 11, 1, 243, 71, 30, 13, 11, 1, 243, 71, 54, 13, 11, 1, 243, 71, - 113, 13, 11, 1, 253, 124, 2, 57, 60, 39, 13, 11, 1, 253, 124, 2, 57, 60, - 30, 13, 11, 1, 253, 124, 248, 128, 39, 13, 11, 1, 253, 124, 248, 128, 30, - 13, 11, 1, 253, 124, 248, 128, 54, 13, 11, 1, 253, 124, 248, 128, 113, - 13, 11, 1, 253, 124, 233, 65, 39, 13, 11, 1, 253, 124, 233, 65, 30, 13, - 11, 1, 253, 124, 233, 65, 54, 13, 11, 1, 253, 124, 233, 65, 113, 13, 11, - 1, 57, 240, 92, 39, 13, 11, 1, 57, 240, 92, 30, 13, 11, 1, 57, 240, 92, - 2, 143, 60, 39, 13, 11, 1, 57, 240, 92, 2, 143, 60, 30, 13, 11, 1, 255, - 44, 39, 13, 11, 1, 255, 44, 30, 13, 11, 1, 255, 44, 54, 13, 11, 1, 255, - 44, 113, 13, 11, 1, 132, 39, 13, 11, 1, 132, 30, 13, 11, 1, 255, 33, 39, - 13, 11, 1, 255, 33, 30, 13, 11, 1, 255, 36, 39, 13, 11, 1, 255, 36, 30, - 13, 11, 1, 132, 2, 143, 60, 39, 13, 11, 1, 255, 65, 39, 13, 11, 1, 255, - 65, 30, 13, 11, 1, 238, 73, 255, 33, 39, 13, 11, 1, 238, 73, 255, 33, 30, - 13, 11, 1, 238, 73, 255, 36, 39, 13, 11, 1, 238, 73, 255, 36, 30, 13, 11, - 1, 157, 39, 13, 11, 1, 157, 30, 13, 11, 1, 157, 54, 13, 11, 1, 157, 113, - 13, 11, 1, 240, 104, 240, 192, 238, 73, 83, 150, 54, 13, 11, 1, 240, 104, - 240, 192, 238, 73, 83, 150, 113, 13, 11, 18, 57, 2, 143, 60, 2, 83, 39, - 13, 11, 18, 57, 2, 143, 60, 2, 83, 30, 13, 11, 18, 57, 2, 143, 60, 2, - 255, 30, 39, 13, 11, 18, 57, 2, 143, 60, 2, 255, 30, 30, 13, 11, 18, 57, - 2, 143, 60, 2, 253, 220, 39, 13, 11, 18, 57, 2, 143, 60, 2, 253, 220, 30, - 13, 11, 18, 57, 2, 143, 60, 2, 132, 39, 13, 11, 18, 57, 2, 143, 60, 2, - 132, 30, 13, 11, 18, 57, 2, 143, 60, 2, 255, 33, 39, 13, 11, 18, 57, 2, - 143, 60, 2, 255, 33, 30, 13, 11, 18, 57, 2, 143, 60, 2, 255, 36, 39, 13, - 11, 18, 57, 2, 143, 60, 2, 255, 36, 30, 13, 11, 18, 57, 2, 143, 60, 2, - 157, 39, 13, 11, 18, 57, 2, 143, 60, 2, 157, 30, 13, 11, 18, 57, 2, 143, - 60, 2, 157, 54, 13, 11, 18, 240, 104, 238, 73, 57, 2, 143, 60, 2, 83, - 150, 39, 13, 11, 18, 240, 104, 238, 73, 57, 2, 143, 60, 2, 83, 150, 30, - 13, 11, 18, 240, 104, 238, 73, 57, 2, 143, 60, 2, 83, 150, 54, 13, 11, 1, - 243, 26, 57, 39, 13, 11, 1, 243, 26, 57, 30, 13, 11, 1, 243, 26, 57, 54, - 13, 11, 1, 243, 26, 57, 113, 13, 11, 18, 57, 2, 143, 60, 2, 103, 39, 13, - 11, 18, 57, 2, 143, 60, 2, 94, 39, 13, 11, 18, 57, 2, 143, 60, 2, 51, 39, - 13, 11, 18, 57, 2, 143, 60, 2, 83, 150, 39, 13, 11, 18, 57, 2, 143, 60, - 2, 57, 39, 13, 11, 18, 253, 136, 2, 103, 39, 13, 11, 18, 253, 136, 2, 94, - 39, 13, 11, 18, 253, 136, 2, 164, 39, 13, 11, 18, 253, 136, 2, 51, 39, - 13, 11, 18, 253, 136, 2, 83, 150, 39, 13, 11, 18, 253, 136, 2, 57, 39, - 13, 11, 18, 253, 127, 2, 103, 39, 13, 11, 18, 253, 127, 2, 94, 39, 13, - 11, 18, 253, 127, 2, 164, 39, 13, 11, 18, 253, 127, 2, 51, 39, 13, 11, - 18, 253, 127, 2, 83, 150, 39, 13, 11, 18, 253, 127, 2, 57, 39, 13, 11, - 18, 248, 70, 2, 103, 39, 13, 11, 18, 248, 70, 2, 51, 39, 13, 11, 18, 248, - 70, 2, 83, 150, 39, 13, 11, 18, 248, 70, 2, 57, 39, 13, 11, 18, 103, 2, - 94, 39, 13, 11, 18, 103, 2, 51, 39, 13, 11, 18, 94, 2, 103, 39, 13, 11, - 18, 94, 2, 51, 39, 13, 11, 18, 164, 2, 103, 39, 13, 11, 18, 164, 2, 94, - 39, 13, 11, 18, 164, 2, 51, 39, 13, 11, 18, 248, 39, 2, 103, 39, 13, 11, - 18, 248, 39, 2, 94, 39, 13, 11, 18, 248, 39, 2, 164, 39, 13, 11, 18, 248, - 39, 2, 51, 39, 13, 11, 18, 253, 157, 2, 94, 39, 13, 11, 18, 253, 157, 2, - 51, 39, 13, 11, 18, 253, 155, 2, 103, 39, 13, 11, 18, 253, 155, 2, 94, - 39, 13, 11, 18, 253, 155, 2, 164, 39, 13, 11, 18, 253, 155, 2, 51, 39, - 13, 11, 18, 253, 169, 2, 94, 39, 13, 11, 18, 253, 169, 2, 51, 39, 13, 11, - 18, 253, 255, 2, 51, 39, 13, 11, 18, 253, 158, 2, 103, 39, 13, 11, 18, - 253, 158, 2, 51, 39, 13, 11, 18, 242, 240, 2, 103, 39, 13, 11, 18, 242, - 240, 2, 51, 39, 13, 11, 18, 253, 153, 2, 103, 39, 13, 11, 18, 253, 153, - 2, 94, 39, 13, 11, 18, 253, 153, 2, 164, 39, 13, 11, 18, 253, 153, 2, 51, - 39, 13, 11, 18, 253, 153, 2, 83, 150, 39, 13, 11, 18, 253, 153, 2, 57, - 39, 13, 11, 18, 253, 167, 2, 94, 39, 13, 11, 18, 253, 167, 2, 51, 39, 13, - 11, 18, 253, 167, 2, 83, 150, 39, 13, 11, 18, 253, 167, 2, 57, 39, 13, - 11, 18, 253, 135, 2, 83, 39, 13, 11, 18, 253, 135, 2, 103, 39, 13, 11, - 18, 253, 135, 2, 94, 39, 13, 11, 18, 253, 135, 2, 164, 39, 13, 11, 18, - 253, 135, 2, 182, 39, 13, 11, 18, 253, 135, 2, 51, 39, 13, 11, 18, 253, - 135, 2, 83, 150, 39, 13, 11, 18, 253, 135, 2, 57, 39, 13, 11, 18, 182, 2, - 103, 39, 13, 11, 18, 182, 2, 94, 39, 13, 11, 18, 182, 2, 164, 39, 13, 11, - 18, 182, 2, 51, 39, 13, 11, 18, 182, 2, 83, 150, 39, 13, 11, 18, 182, 2, - 57, 39, 13, 11, 18, 51, 2, 103, 39, 13, 11, 18, 51, 2, 94, 39, 13, 11, - 18, 51, 2, 164, 39, 13, 11, 18, 51, 2, 51, 39, 13, 11, 18, 51, 2, 83, - 150, 39, 13, 11, 18, 51, 2, 57, 39, 13, 11, 18, 198, 2, 103, 39, 13, 11, - 18, 198, 2, 94, 39, 13, 11, 18, 198, 2, 164, 39, 13, 11, 18, 198, 2, 51, - 39, 13, 11, 18, 198, 2, 83, 150, 39, 13, 11, 18, 198, 2, 57, 39, 13, 11, - 18, 253, 124, 2, 103, 39, 13, 11, 18, 253, 124, 2, 51, 39, 13, 11, 18, - 253, 124, 2, 83, 150, 39, 13, 11, 18, 253, 124, 2, 57, 39, 13, 11, 18, - 57, 2, 103, 39, 13, 11, 18, 57, 2, 94, 39, 13, 11, 18, 57, 2, 164, 39, - 13, 11, 18, 57, 2, 51, 39, 13, 11, 18, 57, 2, 83, 150, 39, 13, 11, 18, - 57, 2, 57, 39, 13, 11, 18, 249, 0, 2, 233, 49, 83, 39, 13, 11, 18, 253, - 143, 2, 233, 49, 83, 39, 13, 11, 18, 83, 150, 2, 233, 49, 83, 39, 13, 11, - 18, 240, 47, 2, 237, 1, 39, 13, 11, 18, 240, 47, 2, 237, 15, 39, 13, 11, - 18, 240, 47, 2, 243, 40, 39, 13, 11, 18, 240, 47, 2, 243, 56, 39, 13, 11, - 18, 240, 47, 2, 243, 63, 39, 13, 11, 18, 240, 47, 2, 233, 49, 83, 39, 13, - 11, 18, 57, 2, 143, 60, 2, 253, 143, 30, 13, 11, 18, 57, 2, 143, 60, 2, - 248, 104, 30, 13, 11, 18, 57, 2, 143, 60, 2, 51, 30, 13, 11, 18, 57, 2, - 143, 60, 2, 198, 30, 13, 11, 18, 57, 2, 143, 60, 2, 83, 150, 30, 13, 11, - 18, 57, 2, 143, 60, 2, 57, 30, 13, 11, 18, 253, 136, 2, 253, 143, 30, 13, - 11, 18, 253, 136, 2, 248, 104, 30, 13, 11, 18, 253, 136, 2, 51, 30, 13, - 11, 18, 253, 136, 2, 198, 30, 13, 11, 18, 253, 136, 2, 83, 150, 30, 13, - 11, 18, 253, 136, 2, 57, 30, 13, 11, 18, 253, 127, 2, 253, 143, 30, 13, - 11, 18, 253, 127, 2, 248, 104, 30, 13, 11, 18, 253, 127, 2, 51, 30, 13, - 11, 18, 253, 127, 2, 198, 30, 13, 11, 18, 253, 127, 2, 83, 150, 30, 13, - 11, 18, 253, 127, 2, 57, 30, 13, 11, 18, 248, 70, 2, 253, 143, 30, 13, - 11, 18, 248, 70, 2, 248, 104, 30, 13, 11, 18, 248, 70, 2, 51, 30, 13, 11, - 18, 248, 70, 2, 198, 30, 13, 11, 18, 248, 70, 2, 83, 150, 30, 13, 11, 18, - 248, 70, 2, 57, 30, 13, 11, 18, 253, 153, 2, 83, 150, 30, 13, 11, 18, - 253, 153, 2, 57, 30, 13, 11, 18, 253, 167, 2, 83, 150, 30, 13, 11, 18, - 253, 167, 2, 57, 30, 13, 11, 18, 253, 135, 2, 83, 30, 13, 11, 18, 253, - 135, 2, 182, 30, 13, 11, 18, 253, 135, 2, 51, 30, 13, 11, 18, 253, 135, - 2, 83, 150, 30, 13, 11, 18, 253, 135, 2, 57, 30, 13, 11, 18, 182, 2, 51, - 30, 13, 11, 18, 182, 2, 83, 150, 30, 13, 11, 18, 182, 2, 57, 30, 13, 11, - 18, 51, 2, 83, 30, 13, 11, 18, 51, 2, 51, 30, 13, 11, 18, 198, 2, 253, - 143, 30, 13, 11, 18, 198, 2, 248, 104, 30, 13, 11, 18, 198, 2, 51, 30, - 13, 11, 18, 198, 2, 198, 30, 13, 11, 18, 198, 2, 83, 150, 30, 13, 11, 18, - 198, 2, 57, 30, 13, 11, 18, 83, 150, 2, 233, 49, 83, 30, 13, 11, 18, 57, - 2, 253, 143, 30, 13, 11, 18, 57, 2, 248, 104, 30, 13, 11, 18, 57, 2, 51, - 30, 13, 11, 18, 57, 2, 198, 30, 13, 11, 18, 57, 2, 83, 150, 30, 13, 11, - 18, 57, 2, 57, 30, 13, 11, 18, 57, 2, 143, 60, 2, 103, 54, 13, 11, 18, - 57, 2, 143, 60, 2, 94, 54, 13, 11, 18, 57, 2, 143, 60, 2, 164, 54, 13, - 11, 18, 57, 2, 143, 60, 2, 51, 54, 13, 11, 18, 57, 2, 143, 60, 2, 253, - 124, 54, 13, 11, 18, 253, 136, 2, 103, 54, 13, 11, 18, 253, 136, 2, 94, - 54, 13, 11, 18, 253, 136, 2, 164, 54, 13, 11, 18, 253, 136, 2, 51, 54, - 13, 11, 18, 253, 136, 2, 253, 124, 54, 13, 11, 18, 253, 127, 2, 103, 54, - 13, 11, 18, 253, 127, 2, 94, 54, 13, 11, 18, 253, 127, 2, 164, 54, 13, - 11, 18, 253, 127, 2, 51, 54, 13, 11, 18, 253, 127, 2, 253, 124, 54, 13, - 11, 18, 248, 70, 2, 51, 54, 13, 11, 18, 103, 2, 94, 54, 13, 11, 18, 103, - 2, 51, 54, 13, 11, 18, 94, 2, 103, 54, 13, 11, 18, 94, 2, 51, 54, 13, 11, - 18, 164, 2, 103, 54, 13, 11, 18, 164, 2, 51, 54, 13, 11, 18, 248, 39, 2, - 103, 54, 13, 11, 18, 248, 39, 2, 94, 54, 13, 11, 18, 248, 39, 2, 164, 54, - 13, 11, 18, 248, 39, 2, 51, 54, 13, 11, 18, 253, 157, 2, 94, 54, 13, 11, - 18, 253, 157, 2, 164, 54, 13, 11, 18, 253, 157, 2, 51, 54, 13, 11, 18, - 253, 155, 2, 103, 54, 13, 11, 18, 253, 155, 2, 94, 54, 13, 11, 18, 253, - 155, 2, 164, 54, 13, 11, 18, 253, 155, 2, 51, 54, 13, 11, 18, 253, 169, - 2, 94, 54, 13, 11, 18, 253, 255, 2, 51, 54, 13, 11, 18, 253, 158, 2, 103, - 54, 13, 11, 18, 253, 158, 2, 51, 54, 13, 11, 18, 242, 240, 2, 103, 54, - 13, 11, 18, 242, 240, 2, 51, 54, 13, 11, 18, 253, 153, 2, 103, 54, 13, - 11, 18, 253, 153, 2, 94, 54, 13, 11, 18, 253, 153, 2, 164, 54, 13, 11, - 18, 253, 153, 2, 51, 54, 13, 11, 18, 253, 167, 2, 94, 54, 13, 11, 18, - 253, 167, 2, 51, 54, 13, 11, 18, 253, 135, 2, 103, 54, 13, 11, 18, 253, - 135, 2, 94, 54, 13, 11, 18, 253, 135, 2, 164, 54, 13, 11, 18, 253, 135, - 2, 182, 54, 13, 11, 18, 253, 135, 2, 51, 54, 13, 11, 18, 182, 2, 103, 54, - 13, 11, 18, 182, 2, 94, 54, 13, 11, 18, 182, 2, 164, 54, 13, 11, 18, 182, - 2, 51, 54, 13, 11, 18, 182, 2, 253, 124, 54, 13, 11, 18, 51, 2, 103, 54, - 13, 11, 18, 51, 2, 94, 54, 13, 11, 18, 51, 2, 164, 54, 13, 11, 18, 51, 2, - 51, 54, 13, 11, 18, 198, 2, 103, 54, 13, 11, 18, 198, 2, 94, 54, 13, 11, - 18, 198, 2, 164, 54, 13, 11, 18, 198, 2, 51, 54, 13, 11, 18, 198, 2, 253, - 124, 54, 13, 11, 18, 253, 124, 2, 103, 54, 13, 11, 18, 253, 124, 2, 51, - 54, 13, 11, 18, 253, 124, 2, 233, 49, 83, 54, 13, 11, 18, 57, 2, 103, 54, - 13, 11, 18, 57, 2, 94, 54, 13, 11, 18, 57, 2, 164, 54, 13, 11, 18, 57, 2, - 51, 54, 13, 11, 18, 57, 2, 253, 124, 54, 13, 11, 18, 57, 2, 143, 60, 2, - 51, 113, 13, 11, 18, 57, 2, 143, 60, 2, 253, 124, 113, 13, 11, 18, 253, - 136, 2, 51, 113, 13, 11, 18, 253, 136, 2, 253, 124, 113, 13, 11, 18, 253, - 127, 2, 51, 113, 13, 11, 18, 253, 127, 2, 253, 124, 113, 13, 11, 18, 248, - 70, 2, 51, 113, 13, 11, 18, 248, 70, 2, 253, 124, 113, 13, 11, 18, 248, - 39, 2, 51, 113, 13, 11, 18, 248, 39, 2, 253, 124, 113, 13, 11, 18, 242, - 216, 2, 51, 113, 13, 11, 18, 242, 216, 2, 253, 124, 113, 13, 11, 18, 253, - 135, 2, 182, 113, 13, 11, 18, 253, 135, 2, 51, 113, 13, 11, 18, 182, 2, - 51, 113, 13, 11, 18, 198, 2, 51, 113, 13, 11, 18, 198, 2, 253, 124, 113, - 13, 11, 18, 57, 2, 51, 113, 13, 11, 18, 57, 2, 253, 124, 113, 13, 11, 18, - 240, 47, 2, 243, 40, 113, 13, 11, 18, 240, 47, 2, 243, 56, 113, 13, 11, - 18, 240, 47, 2, 243, 63, 113, 13, 11, 18, 253, 169, 2, 83, 150, 39, 13, - 11, 18, 253, 169, 2, 57, 39, 13, 11, 18, 253, 158, 2, 83, 150, 39, 13, - 11, 18, 253, 158, 2, 57, 39, 13, 11, 18, 242, 240, 2, 83, 150, 39, 13, - 11, 18, 242, 240, 2, 57, 39, 13, 11, 18, 248, 39, 2, 83, 150, 39, 13, 11, - 18, 248, 39, 2, 57, 39, 13, 11, 18, 242, 216, 2, 83, 150, 39, 13, 11, 18, - 242, 216, 2, 57, 39, 13, 11, 18, 94, 2, 83, 150, 39, 13, 11, 18, 94, 2, - 57, 39, 13, 11, 18, 103, 2, 83, 150, 39, 13, 11, 18, 103, 2, 57, 39, 13, - 11, 18, 164, 2, 83, 150, 39, 13, 11, 18, 164, 2, 57, 39, 13, 11, 18, 253, - 157, 2, 83, 150, 39, 13, 11, 18, 253, 157, 2, 57, 39, 13, 11, 18, 253, - 155, 2, 83, 150, 39, 13, 11, 18, 253, 155, 2, 57, 39, 13, 11, 18, 242, - 216, 2, 103, 39, 13, 11, 18, 242, 216, 2, 94, 39, 13, 11, 18, 242, 216, - 2, 164, 39, 13, 11, 18, 242, 216, 2, 51, 39, 13, 11, 18, 242, 216, 2, - 253, 143, 39, 13, 11, 18, 248, 39, 2, 253, 143, 39, 13, 11, 18, 253, 157, - 2, 253, 143, 39, 13, 11, 18, 253, 155, 2, 253, 143, 39, 13, 11, 18, 253, - 169, 2, 83, 150, 30, 13, 11, 18, 253, 169, 2, 57, 30, 13, 11, 18, 253, - 158, 2, 83, 150, 30, 13, 11, 18, 253, 158, 2, 57, 30, 13, 11, 18, 242, - 240, 2, 83, 150, 30, 13, 11, 18, 242, 240, 2, 57, 30, 13, 11, 18, 248, - 39, 2, 83, 150, 30, 13, 11, 18, 248, 39, 2, 57, 30, 13, 11, 18, 242, 216, - 2, 83, 150, 30, 13, 11, 18, 242, 216, 2, 57, 30, 13, 11, 18, 94, 2, 83, - 150, 30, 13, 11, 18, 94, 2, 57, 30, 13, 11, 18, 103, 2, 83, 150, 30, 13, - 11, 18, 103, 2, 57, 30, 13, 11, 18, 164, 2, 83, 150, 30, 13, 11, 18, 164, - 2, 57, 30, 13, 11, 18, 253, 157, 2, 83, 150, 30, 13, 11, 18, 253, 157, 2, - 57, 30, 13, 11, 18, 253, 155, 2, 83, 150, 30, 13, 11, 18, 253, 155, 2, - 57, 30, 13, 11, 18, 242, 216, 2, 103, 30, 13, 11, 18, 242, 216, 2, 94, - 30, 13, 11, 18, 242, 216, 2, 164, 30, 13, 11, 18, 242, 216, 2, 51, 30, - 13, 11, 18, 242, 216, 2, 253, 143, 30, 13, 11, 18, 248, 39, 2, 253, 143, - 30, 13, 11, 18, 253, 157, 2, 253, 143, 30, 13, 11, 18, 253, 155, 2, 253, - 143, 30, 13, 11, 18, 242, 216, 2, 103, 54, 13, 11, 18, 242, 216, 2, 94, - 54, 13, 11, 18, 242, 216, 2, 164, 54, 13, 11, 18, 242, 216, 2, 51, 54, - 13, 11, 18, 248, 39, 2, 253, 124, 54, 13, 11, 18, 242, 216, 2, 253, 124, - 54, 13, 11, 18, 253, 169, 2, 51, 54, 13, 11, 18, 248, 39, 2, 103, 113, - 13, 11, 18, 248, 39, 2, 94, 113, 13, 11, 18, 248, 39, 2, 164, 113, 13, - 11, 18, 242, 216, 2, 103, 113, 13, 11, 18, 242, 216, 2, 94, 113, 13, 11, - 18, 242, 216, 2, 164, 113, 13, 11, 18, 253, 169, 2, 51, 113, 13, 11, 18, - 253, 255, 2, 51, 113, 13, 11, 18, 83, 2, 236, 214, 30, 13, 11, 18, 83, 2, - 236, 214, 39, 13, 240, 206, 40, 232, 74, 240, 206, 38, 232, 74, 11, 18, - 253, 127, 2, 103, 2, 51, 54, 13, 11, 18, 253, 127, 2, 94, 2, 103, 30, 13, - 11, 18, 253, 127, 2, 94, 2, 103, 54, 13, 11, 18, 253, 127, 2, 94, 2, 51, - 54, 13, 11, 18, 253, 127, 2, 164, 2, 51, 54, 13, 11, 18, 253, 127, 2, 51, - 2, 103, 54, 13, 11, 18, 253, 127, 2, 51, 2, 94, 54, 13, 11, 18, 253, 127, - 2, 51, 2, 164, 54, 13, 11, 18, 103, 2, 51, 2, 94, 30, 13, 11, 18, 103, 2, - 51, 2, 94, 54, 13, 11, 18, 94, 2, 51, 2, 57, 30, 13, 11, 18, 94, 2, 51, - 2, 83, 150, 30, 13, 11, 18, 248, 39, 2, 94, 2, 103, 54, 13, 11, 18, 248, - 39, 2, 103, 2, 94, 54, 13, 11, 18, 248, 39, 2, 103, 2, 83, 150, 30, 13, - 11, 18, 248, 39, 2, 51, 2, 94, 30, 13, 11, 18, 248, 39, 2, 51, 2, 94, 54, - 13, 11, 18, 248, 39, 2, 51, 2, 103, 54, 13, 11, 18, 248, 39, 2, 51, 2, - 51, 30, 13, 11, 18, 248, 39, 2, 51, 2, 51, 54, 13, 11, 18, 253, 157, 2, - 94, 2, 94, 30, 13, 11, 18, 253, 157, 2, 94, 2, 94, 54, 13, 11, 18, 253, - 157, 2, 51, 2, 51, 30, 13, 11, 18, 242, 216, 2, 94, 2, 51, 30, 13, 11, - 18, 242, 216, 2, 94, 2, 51, 54, 13, 11, 18, 242, 216, 2, 103, 2, 57, 30, - 13, 11, 18, 242, 216, 2, 51, 2, 164, 30, 13, 11, 18, 242, 216, 2, 51, 2, - 164, 54, 13, 11, 18, 242, 216, 2, 51, 2, 51, 30, 13, 11, 18, 242, 216, 2, - 51, 2, 51, 54, 13, 11, 18, 253, 155, 2, 94, 2, 83, 150, 30, 13, 11, 18, - 253, 155, 2, 164, 2, 51, 30, 13, 11, 18, 253, 155, 2, 164, 2, 51, 54, 13, - 11, 18, 253, 169, 2, 51, 2, 94, 30, 13, 11, 18, 253, 169, 2, 51, 2, 94, - 54, 13, 11, 18, 253, 169, 2, 51, 2, 51, 54, 13, 11, 18, 253, 169, 2, 51, - 2, 57, 30, 13, 11, 18, 253, 158, 2, 103, 2, 51, 30, 13, 11, 18, 253, 158, - 2, 51, 2, 51, 30, 13, 11, 18, 253, 158, 2, 51, 2, 51, 54, 13, 11, 18, - 253, 158, 2, 51, 2, 83, 150, 30, 13, 11, 18, 242, 240, 2, 51, 2, 51, 30, - 13, 11, 18, 242, 240, 2, 51, 2, 57, 30, 13, 11, 18, 242, 240, 2, 51, 2, - 83, 150, 30, 13, 11, 18, 253, 153, 2, 164, 2, 51, 30, 13, 11, 18, 253, - 153, 2, 164, 2, 51, 54, 13, 11, 18, 253, 167, 2, 51, 2, 94, 30, 13, 11, - 18, 253, 167, 2, 51, 2, 51, 30, 13, 11, 18, 182, 2, 94, 2, 51, 30, 13, - 11, 18, 182, 2, 94, 2, 57, 30, 13, 11, 18, 182, 2, 94, 2, 83, 150, 30, - 13, 11, 18, 182, 2, 103, 2, 103, 54, 13, 11, 18, 182, 2, 103, 2, 103, 30, - 13, 11, 18, 182, 2, 164, 2, 51, 30, 13, 11, 18, 182, 2, 164, 2, 51, 54, - 13, 11, 18, 182, 2, 51, 2, 94, 30, 13, 11, 18, 182, 2, 51, 2, 94, 54, 13, - 11, 18, 51, 2, 94, 2, 103, 54, 13, 11, 18, 51, 2, 94, 2, 51, 54, 13, 11, - 18, 51, 2, 94, 2, 57, 30, 13, 11, 18, 51, 2, 103, 2, 94, 54, 13, 11, 18, - 51, 2, 103, 2, 51, 54, 13, 11, 18, 51, 2, 164, 2, 103, 54, 13, 11, 18, - 51, 2, 164, 2, 51, 54, 13, 11, 18, 51, 2, 103, 2, 164, 54, 13, 11, 18, - 253, 124, 2, 51, 2, 103, 54, 13, 11, 18, 253, 124, 2, 51, 2, 51, 54, 13, - 11, 18, 198, 2, 94, 2, 51, 54, 13, 11, 18, 198, 2, 94, 2, 83, 150, 30, - 13, 11, 18, 198, 2, 103, 2, 51, 30, 13, 11, 18, 198, 2, 103, 2, 51, 54, - 13, 11, 18, 198, 2, 103, 2, 83, 150, 30, 13, 11, 18, 198, 2, 51, 2, 57, - 30, 13, 11, 18, 198, 2, 51, 2, 83, 150, 30, 13, 11, 18, 57, 2, 51, 2, 51, - 30, 13, 11, 18, 57, 2, 51, 2, 51, 54, 13, 11, 18, 253, 136, 2, 164, 2, - 57, 30, 13, 11, 18, 253, 127, 2, 103, 2, 57, 30, 13, 11, 18, 253, 127, 2, - 103, 2, 83, 150, 30, 13, 11, 18, 253, 127, 2, 164, 2, 57, 30, 13, 11, 18, - 253, 127, 2, 164, 2, 83, 150, 30, 13, 11, 18, 253, 127, 2, 51, 2, 57, 30, - 13, 11, 18, 253, 127, 2, 51, 2, 83, 150, 30, 13, 11, 18, 103, 2, 51, 2, - 57, 30, 13, 11, 18, 103, 2, 94, 2, 83, 150, 30, 13, 11, 18, 103, 2, 51, - 2, 83, 150, 30, 13, 11, 18, 248, 39, 2, 164, 2, 83, 150, 30, 13, 11, 18, - 253, 157, 2, 94, 2, 57, 30, 13, 11, 18, 242, 216, 2, 94, 2, 57, 30, 13, - 11, 18, 253, 155, 2, 94, 2, 57, 30, 13, 11, 18, 182, 2, 103, 2, 57, 30, - 13, 11, 18, 182, 2, 51, 2, 57, 30, 13, 11, 18, 57, 2, 94, 2, 57, 30, 13, - 11, 18, 57, 2, 103, 2, 57, 30, 13, 11, 18, 57, 2, 51, 2, 57, 30, 13, 11, - 18, 51, 2, 51, 2, 57, 30, 13, 11, 18, 253, 167, 2, 51, 2, 57, 30, 13, 11, - 18, 198, 2, 94, 2, 57, 30, 13, 11, 18, 253, 167, 2, 51, 2, 94, 54, 13, - 11, 18, 182, 2, 94, 2, 51, 54, 13, 11, 18, 253, 158, 2, 51, 2, 57, 30, - 13, 11, 18, 253, 135, 2, 51, 2, 57, 30, 13, 11, 18, 198, 2, 103, 2, 94, - 54, 13, 11, 18, 51, 2, 164, 2, 57, 30, 13, 11, 18, 182, 2, 103, 2, 51, - 54, 13, 11, 18, 253, 135, 2, 51, 2, 51, 30, 13, 11, 18, 182, 2, 103, 2, - 51, 30, 13, 11, 18, 198, 2, 103, 2, 94, 30, 13, 11, 18, 103, 2, 94, 2, - 57, 30, 13, 11, 18, 94, 2, 103, 2, 57, 30, 13, 11, 18, 51, 2, 103, 2, 57, - 30, 13, 11, 18, 253, 153, 2, 51, 2, 57, 30, 13, 11, 18, 253, 136, 2, 94, - 2, 57, 30, 13, 11, 18, 253, 135, 2, 51, 2, 51, 54, 13, 11, 18, 253, 158, - 2, 103, 2, 51, 54, 13, 11, 18, 253, 157, 2, 51, 2, 51, 54, 13, 11, 18, - 248, 39, 2, 164, 2, 57, 30, 13, 11, 18, 198, 2, 103, 2, 57, 30, 13, 11, - 18, 244, 3, 249, 191, 255, 24, 238, 197, 248, 119, 21, 39, 13, 11, 18, - 252, 85, 249, 191, 255, 24, 238, 197, 248, 119, 21, 39, 13, 11, 18, 244, - 77, 39, 13, 11, 18, 244, 75, 39, 13, 11, 18, 237, 213, 39, 13, 11, 18, - 247, 64, 39, 13, 11, 18, 242, 77, 39, 13, 11, 18, 240, 107, 39, 13, 11, - 18, 238, 45, 39, 13, 11, 18, 244, 3, 39, 13, 11, 18, 233, 100, 240, 107, - 236, 140, 11, 18, 229, 46, 252, 136, 52, 11, 18, 235, 181, 235, 168, 234, - 93, 34, 233, 233, 34, 233, 234, 34, 233, 235, 34, 233, 236, 34, 233, 237, - 34, 233, 238, 34, 233, 239, 34, 233, 240, 34, 233, 241, 34, 232, 204, 34, - 232, 205, 34, 232, 206, 34, 232, 207, 34, 232, 208, 34, 232, 209, 34, - 232, 210, 232, 70, 248, 38, 28, 59, 240, 27, 232, 70, 248, 38, 28, 59, - 80, 240, 27, 232, 70, 248, 38, 28, 59, 80, 248, 37, 208, 232, 70, 248, - 38, 28, 59, 240, 24, 232, 70, 248, 38, 28, 59, 234, 14, 232, 70, 248, 38, - 28, 59, 233, 54, 69, 232, 70, 248, 38, 28, 59, 236, 156, 69, 232, 70, - 248, 38, 28, 59, 40, 64, 234, 11, 104, 232, 70, 248, 38, 28, 59, 38, 64, - 234, 11, 237, 79, 232, 70, 248, 38, 28, 59, 163, 235, 69, 50, 18, 40, - 243, 7, 50, 18, 38, 243, 7, 50, 45, 242, 219, 40, 243, 7, 50, 45, 242, - 219, 38, 243, 7, 232, 70, 248, 38, 28, 59, 171, 53, 238, 143, 232, 70, - 248, 38, 28, 59, 255, 28, 242, 235, 232, 70, 248, 38, 28, 59, 255, 23, - 242, 235, 232, 70, 248, 38, 28, 59, 170, 242, 224, 232, 70, 248, 38, 28, - 59, 248, 103, 170, 242, 224, 232, 70, 248, 38, 28, 59, 40, 232, 74, 232, - 70, 248, 38, 28, 59, 38, 232, 74, 232, 70, 248, 38, 28, 59, 40, 242, 225, - 104, 232, 70, 248, 38, 28, 59, 38, 242, 225, 104, 232, 70, 248, 38, 28, - 59, 40, 236, 171, 242, 255, 104, 232, 70, 248, 38, 28, 59, 38, 236, 171, - 242, 255, 104, 232, 70, 248, 38, 28, 59, 40, 86, 234, 11, 104, 232, 70, - 248, 38, 28, 59, 38, 86, 234, 11, 104, 232, 70, 248, 38, 28, 59, 40, 45, - 185, 104, 232, 70, 248, 38, 28, 59, 38, 45, 185, 104, 232, 70, 248, 38, - 28, 59, 40, 185, 104, 232, 70, 248, 38, 28, 59, 38, 185, 104, 232, 70, - 248, 38, 28, 59, 40, 240, 31, 104, 232, 70, 248, 38, 28, 59, 38, 240, 31, - 104, 232, 70, 248, 38, 28, 59, 40, 64, 240, 31, 104, 232, 70, 248, 38, - 28, 59, 38, 64, 240, 31, 104, 240, 221, 248, 40, 64, 240, 221, 248, 40, - 232, 70, 248, 38, 28, 59, 40, 31, 104, 232, 70, 248, 38, 28, 59, 38, 31, - 104, 240, 55, 235, 74, 234, 48, 235, 74, 248, 103, 235, 74, 45, 248, 103, - 235, 74, 240, 55, 170, 242, 224, 234, 48, 170, 242, 224, 248, 103, 170, - 242, 224, 3, 240, 27, 3, 80, 240, 27, 3, 248, 37, 208, 3, 234, 14, 3, - 240, 24, 3, 236, 156, 69, 3, 233, 54, 69, 3, 255, 28, 242, 235, 3, 40, - 232, 74, 3, 38, 232, 74, 3, 40, 242, 225, 104, 3, 38, 242, 225, 104, 3, - 40, 236, 171, 242, 255, 104, 3, 38, 236, 171, 242, 255, 104, 3, 61, 52, - 3, 234, 17, 3, 235, 52, 3, 248, 49, 52, 3, 231, 94, 3, 235, 44, 52, 3, - 232, 68, 52, 3, 240, 7, 52, 3, 238, 75, 236, 177, 3, 240, 114, 52, 3, - 238, 107, 52, 3, 234, 20, 254, 20, 11, 236, 214, 39, 13, 11, 239, 214, 2, - 236, 214, 48, 11, 237, 1, 39, 13, 11, 248, 138, 236, 26, 11, 237, 15, 39, - 13, 11, 243, 40, 39, 13, 11, 243, 40, 113, 13, 11, 243, 56, 39, 13, 11, - 243, 56, 113, 13, 11, 243, 63, 39, 13, 11, 243, 63, 113, 13, 11, 240, 47, - 39, 13, 11, 240, 47, 113, 13, 11, 244, 25, 39, 13, 11, 244, 25, 113, 13, - 11, 1, 143, 39, 13, 11, 1, 83, 2, 243, 42, 60, 39, 13, 11, 1, 83, 2, 243, - 42, 60, 30, 13, 11, 1, 83, 2, 143, 60, 39, 13, 11, 1, 83, 2, 143, 60, 30, - 13, 11, 1, 253, 220, 2, 143, 60, 39, 13, 11, 1, 253, 220, 2, 143, 60, 30, - 13, 11, 1, 83, 2, 143, 242, 230, 39, 13, 11, 1, 83, 2, 143, 242, 230, 30, - 13, 11, 1, 57, 2, 143, 60, 39, 13, 11, 1, 57, 2, 143, 60, 30, 13, 11, 1, - 57, 2, 143, 60, 54, 13, 11, 1, 57, 2, 143, 60, 113, 13, 11, 1, 83, 39, - 13, 11, 1, 83, 30, 13, 11, 1, 253, 136, 39, 13, 11, 1, 253, 136, 30, 13, - 11, 1, 253, 136, 54, 13, 11, 1, 253, 136, 113, 13, 11, 1, 253, 127, 238, - 144, 39, 13, 11, 1, 253, 127, 238, 144, 30, 13, 11, 1, 253, 127, 39, 13, - 11, 1, 253, 127, 30, 13, 11, 1, 253, 127, 54, 13, 11, 1, 253, 127, 113, - 13, 11, 1, 248, 70, 39, 13, 11, 1, 248, 70, 30, 13, 11, 1, 248, 70, 54, - 13, 11, 1, 248, 70, 113, 13, 11, 1, 103, 39, 13, 11, 1, 103, 30, 13, 11, - 1, 103, 54, 13, 11, 1, 103, 113, 13, 11, 1, 94, 39, 13, 11, 1, 94, 30, - 13, 11, 1, 94, 54, 13, 11, 1, 94, 113, 13, 11, 1, 164, 39, 13, 11, 1, - 164, 30, 13, 11, 1, 164, 54, 13, 11, 1, 164, 113, 13, 11, 1, 253, 199, - 39, 13, 11, 1, 253, 199, 30, 13, 11, 1, 249, 0, 39, 13, 11, 1, 249, 0, - 30, 13, 11, 1, 253, 143, 39, 13, 11, 1, 253, 143, 30, 13, 11, 1, 248, - 104, 39, 13, 11, 1, 248, 104, 30, 13, 11, 1, 248, 39, 39, 13, 11, 1, 248, - 39, 30, 13, 11, 1, 248, 39, 54, 13, 11, 1, 248, 39, 113, 13, 11, 1, 242, - 216, 39, 13, 11, 1, 242, 216, 30, 13, 11, 1, 242, 216, 54, 13, 11, 1, - 242, 216, 113, 13, 11, 1, 253, 157, 39, 13, 11, 1, 253, 157, 30, 13, 11, - 1, 253, 157, 54, 13, 11, 1, 253, 157, 113, 13, 11, 1, 253, 155, 39, 13, - 11, 1, 253, 155, 30, 13, 11, 1, 253, 155, 54, 13, 11, 1, 253, 155, 113, - 13, 11, 1, 253, 169, 39, 13, 11, 1, 253, 169, 30, 13, 11, 1, 253, 169, - 54, 13, 11, 1, 253, 169, 113, 13, 11, 1, 253, 255, 39, 13, 11, 1, 253, - 255, 30, 13, 11, 1, 253, 255, 54, 13, 11, 1, 253, 255, 113, 13, 11, 1, - 253, 158, 39, 13, 11, 1, 253, 158, 30, 13, 11, 1, 253, 158, 54, 13, 11, - 1, 253, 158, 113, 13, 11, 1, 242, 240, 39, 13, 11, 1, 242, 240, 30, 13, - 11, 1, 242, 240, 54, 13, 11, 1, 242, 240, 113, 13, 11, 1, 253, 153, 39, - 13, 11, 1, 253, 153, 30, 13, 11, 1, 253, 153, 54, 13, 11, 1, 253, 153, - 113, 13, 11, 1, 253, 167, 39, 13, 11, 1, 253, 167, 30, 13, 11, 1, 253, - 167, 54, 13, 11, 1, 253, 167, 113, 13, 11, 1, 253, 135, 39, 13, 11, 1, - 253, 135, 30, 13, 11, 1, 253, 135, 54, 13, 11, 1, 253, 135, 113, 13, 11, - 1, 182, 39, 13, 11, 1, 182, 30, 13, 11, 1, 182, 54, 13, 11, 1, 182, 113, - 13, 11, 1, 51, 39, 13, 11, 1, 51, 30, 13, 11, 1, 51, 54, 13, 11, 1, 51, - 113, 13, 11, 1, 198, 39, 13, 11, 1, 198, 30, 13, 11, 1, 198, 54, 13, 11, - 1, 198, 113, 13, 11, 1, 253, 124, 39, 13, 11, 1, 253, 124, 30, 13, 11, 1, - 253, 124, 54, 13, 11, 1, 253, 124, 113, 13, 11, 1, 253, 220, 39, 13, 11, - 1, 253, 220, 30, 13, 11, 1, 83, 150, 39, 13, 11, 1, 83, 150, 30, 13, 11, - 1, 57, 39, 13, 11, 1, 57, 30, 13, 11, 1, 57, 54, 13, 11, 1, 57, 113, 13, - 11, 18, 182, 2, 83, 2, 243, 42, 60, 39, 13, 11, 18, 182, 2, 83, 2, 243, - 42, 60, 30, 13, 11, 18, 182, 2, 83, 2, 143, 60, 39, 13, 11, 18, 182, 2, - 83, 2, 143, 60, 30, 13, 11, 18, 182, 2, 83, 2, 143, 242, 230, 39, 13, 11, - 18, 182, 2, 83, 2, 143, 242, 230, 30, 13, 11, 18, 182, 2, 83, 39, 13, 11, - 18, 182, 2, 83, 30, 13, 248, 145, 243, 81, 236, 233, 240, 15, 89, 233, - 54, 69, 89, 235, 51, 69, 89, 61, 52, 89, 240, 114, 52, 89, 238, 107, 52, - 89, 234, 17, 89, 233, 59, 89, 40, 232, 74, 89, 38, 232, 74, 89, 235, 52, - 89, 248, 49, 52, 89, 240, 27, 89, 231, 94, 89, 248, 37, 208, 89, 236, - 177, 89, 26, 242, 217, 89, 26, 127, 89, 26, 111, 89, 26, 166, 89, 26, - 177, 89, 26, 176, 89, 26, 187, 89, 26, 203, 89, 26, 195, 89, 26, 202, 89, - 240, 24, 89, 234, 14, 89, 235, 44, 52, 89, 240, 7, 52, 89, 232, 68, 52, - 89, 236, 156, 69, 89, 234, 20, 254, 20, 89, 8, 5, 1, 67, 89, 8, 5, 1, - 217, 89, 8, 5, 1, 255, 18, 89, 8, 5, 1, 209, 89, 8, 5, 1, 72, 89, 8, 5, - 1, 255, 19, 89, 8, 5, 1, 210, 89, 8, 5, 1, 192, 89, 8, 5, 1, 71, 89, 8, - 5, 1, 221, 89, 8, 5, 1, 255, 15, 89, 8, 5, 1, 162, 89, 8, 5, 1, 173, 89, - 8, 5, 1, 197, 89, 8, 5, 1, 73, 89, 8, 5, 1, 223, 89, 8, 5, 1, 255, 20, - 89, 8, 5, 1, 144, 89, 8, 5, 1, 193, 89, 8, 5, 1, 214, 89, 8, 5, 1, 79, - 89, 8, 5, 1, 179, 89, 8, 5, 1, 255, 16, 89, 8, 5, 1, 206, 89, 8, 5, 1, - 255, 14, 89, 8, 5, 1, 255, 17, 89, 40, 31, 104, 89, 238, 75, 236, 177, - 89, 38, 31, 104, 89, 190, 238, 54, 89, 170, 242, 224, 89, 242, 245, 238, - 54, 89, 8, 3, 1, 67, 89, 8, 3, 1, 217, 89, 8, 3, 1, 255, 18, 89, 8, 3, 1, - 209, 89, 8, 3, 1, 72, 89, 8, 3, 1, 255, 19, 89, 8, 3, 1, 210, 89, 8, 3, - 1, 192, 89, 8, 3, 1, 71, 89, 8, 3, 1, 221, 89, 8, 3, 1, 255, 15, 89, 8, - 3, 1, 162, 89, 8, 3, 1, 173, 89, 8, 3, 1, 197, 89, 8, 3, 1, 73, 89, 8, 3, - 1, 223, 89, 8, 3, 1, 255, 20, 89, 8, 3, 1, 144, 89, 8, 3, 1, 193, 89, 8, - 3, 1, 214, 89, 8, 3, 1, 79, 89, 8, 3, 1, 179, 89, 8, 3, 1, 255, 16, 89, - 8, 3, 1, 206, 89, 8, 3, 1, 255, 14, 89, 8, 3, 1, 255, 17, 89, 40, 242, - 225, 104, 89, 59, 242, 224, 89, 38, 242, 225, 104, 89, 169, 89, 40, 64, - 232, 74, 89, 38, 64, 232, 74, 74, 80, 248, 37, 208, 74, 40, 240, 31, 104, - 74, 38, 240, 31, 104, 74, 80, 240, 27, 74, 42, 240, 1, 248, 40, 74, 42, - 1, 253, 177, 74, 42, 1, 3, 67, 74, 42, 1, 3, 71, 74, 42, 1, 3, 79, 74, - 42, 1, 3, 72, 74, 42, 1, 3, 73, 74, 42, 1, 3, 216, 74, 42, 1, 3, 253, - 161, 74, 42, 1, 3, 253, 162, 74, 42, 1, 3, 253, 196, 74, 226, 254, 235, - 138, 243, 1, 69, 74, 42, 1, 67, 74, 42, 1, 71, 74, 42, 1, 79, 74, 42, 1, - 72, 74, 42, 1, 73, 74, 42, 1, 201, 74, 42, 1, 253, 215, 74, 42, 1, 253, - 203, 74, 42, 1, 253, 172, 74, 42, 1, 253, 190, 74, 42, 1, 253, 132, 74, - 42, 1, 253, 198, 74, 42, 1, 253, 211, 74, 42, 1, 253, 210, 74, 42, 1, - 253, 186, 74, 42, 1, 253, 126, 74, 42, 1, 253, 212, 74, 42, 1, 253, 196, - 74, 42, 1, 253, 195, 74, 42, 1, 87, 74, 42, 1, 253, 131, 74, 42, 1, 253, - 166, 74, 42, 1, 253, 150, 74, 42, 1, 253, 197, 74, 42, 1, 253, 173, 74, - 42, 1, 219, 74, 42, 1, 253, 214, 74, 42, 1, 253, 236, 74, 42, 1, 253, - 168, 74, 42, 1, 253, 184, 74, 42, 1, 222, 74, 42, 1, 253, 180, 74, 42, 1, - 253, 154, 74, 42, 1, 253, 206, 74, 42, 1, 253, 181, 74, 42, 1, 216, 74, - 42, 1, 253, 161, 74, 42, 1, 253, 162, 74, 42, 1, 253, 130, 74, 42, 1, - 253, 209, 74, 42, 1, 253, 185, 74, 42, 1, 253, 194, 74, 42, 1, 253, 160, - 74, 42, 1, 253, 138, 74, 42, 1, 197, 74, 42, 240, 59, 243, 1, 69, 74, 42, - 233, 75, 243, 1, 69, 74, 23, 238, 114, 74, 23, 1, 238, 99, 74, 23, 1, - 232, 87, 74, 23, 1, 232, 91, 74, 23, 1, 240, 80, 74, 23, 1, 232, 93, 74, - 23, 1, 232, 94, 74, 23, 1, 238, 102, 74, 23, 1, 232, 101, 74, 23, 1, 240, - 85, 74, 23, 1, 231, 98, 74, 23, 1, 232, 96, 74, 23, 1, 232, 97, 74, 23, - 1, 233, 74, 74, 23, 1, 231, 43, 74, 23, 1, 231, 42, 74, 23, 1, 232, 85, - 74, 23, 1, 240, 78, 74, 23, 1, 240, 83, 74, 23, 1, 233, 79, 74, 23, 1, - 233, 66, 74, 23, 1, 243, 34, 74, 23, 1, 234, 32, 74, 23, 1, 240, 75, 74, - 23, 1, 240, 71, 74, 23, 1, 233, 77, 74, 23, 1, 236, 195, 74, 23, 1, 236, - 198, 74, 23, 1, 236, 205, 74, 23, 1, 236, 201, 74, 23, 1, 240, 74, 74, - 23, 1, 67, 74, 23, 1, 253, 178, 74, 23, 1, 216, 74, 23, 1, 249, 18, 74, - 23, 1, 254, 59, 74, 23, 1, 72, 74, 23, 1, 249, 22, 74, 23, 1, 253, 254, - 74, 23, 1, 73, 74, 23, 1, 253, 138, 74, 23, 1, 249, 12, 74, 23, 1, 253, - 193, 74, 23, 1, 253, 162, 74, 23, 1, 79, 74, 23, 1, 249, 14, 74, 23, 1, - 253, 170, 74, 23, 1, 253, 187, 74, 23, 1, 253, 161, 74, 23, 1, 254, 61, - 74, 23, 1, 253, 189, 74, 23, 1, 71, 89, 249, 39, 52, 89, 243, 246, 52, - 89, 161, 52, 89, 196, 89, 240, 129, 125, 89, 254, 134, 52, 89, 254, 131, - 52, 74, 245, 91, 136, 235, 63, 74, 139, 56, 74, 226, 226, 56, 74, 77, 56, - 74, 235, 45, 56, 74, 86, 238, 59, 74, 64, 238, 51, 233, 71, 234, 4, 238, - 159, 233, 71, 234, 4, 234, 6, 233, 71, 234, 4, 233, 251, 242, 38, 233, - 99, 234, 49, 233, 99, 234, 49, 44, 41, 4, 249, 254, 67, 44, 41, 4, 250, - 23, 72, 44, 41, 4, 250, 15, 71, 44, 41, 4, 250, 43, 73, 44, 41, 4, 250, - 0, 79, 44, 41, 4, 249, 247, 253, 133, 44, 41, 4, 250, 30, 253, 200, 44, - 41, 4, 249, 253, 253, 201, 44, 41, 4, 250, 4, 253, 225, 44, 41, 4, 250, - 34, 253, 232, 44, 41, 4, 250, 39, 253, 146, 44, 41, 4, 250, 31, 254, 24, - 44, 41, 4, 250, 21, 253, 248, 44, 41, 4, 250, 45, 254, 25, 44, 41, 4, - 250, 57, 201, 44, 41, 4, 250, 29, 253, 172, 44, 41, 4, 250, 47, 253, 215, - 44, 41, 4, 250, 50, 253, 190, 44, 41, 4, 250, 60, 253, 203, 44, 41, 4, - 250, 59, 222, 44, 41, 4, 250, 3, 253, 206, 44, 41, 4, 250, 53, 253, 180, - 44, 41, 4, 250, 5, 253, 181, 44, 41, 4, 250, 10, 253, 154, 44, 41, 4, - 249, 252, 253, 131, 44, 41, 4, 250, 11, 253, 197, 44, 41, 4, 250, 17, - 253, 166, 44, 41, 4, 250, 35, 253, 173, 44, 41, 4, 250, 38, 253, 150, 44, - 41, 4, 249, 249, 253, 129, 44, 41, 4, 250, 52, 253, 175, 44, 41, 4, 250, - 24, 253, 147, 44, 41, 4, 250, 1, 253, 208, 44, 41, 4, 250, 33, 253, 239, - 44, 41, 4, 250, 6, 253, 217, 44, 41, 4, 250, 58, 254, 70, 44, 41, 4, 250, - 9, 254, 28, 44, 41, 4, 250, 19, 254, 45, 44, 41, 4, 250, 42, 253, 130, - 44, 41, 4, 250, 14, 253, 194, 44, 41, 4, 250, 36, 253, 209, 44, 41, 4, - 249, 248, 253, 160, 44, 41, 4, 250, 13, 253, 185, 44, 41, 4, 250, 18, - 253, 132, 44, 41, 4, 249, 255, 253, 210, 44, 41, 4, 250, 26, 253, 198, - 44, 41, 4, 250, 2, 253, 186, 44, 41, 4, 250, 40, 253, 211, 44, 41, 4, - 250, 41, 253, 126, 44, 41, 4, 249, 250, 253, 195, 44, 41, 4, 250, 22, - 253, 212, 44, 41, 4, 249, 251, 87, 44, 41, 4, 250, 49, 253, 196, 44, 41, - 4, 250, 37, 253, 138, 44, 41, 4, 250, 55, 253, 170, 44, 41, 4, 250, 25, - 253, 187, 44, 41, 4, 250, 27, 253, 177, 44, 41, 4, 250, 7, 253, 163, 44, - 41, 4, 250, 54, 253, 228, 44, 41, 4, 250, 8, 253, 222, 44, 41, 4, 250, - 12, 254, 137, 44, 41, 4, 250, 28, 254, 138, 44, 41, 4, 250, 61, 253, 151, - 44, 41, 4, 250, 51, 250, 215, 44, 41, 4, 250, 63, 250, 216, 44, 41, 4, - 250, 32, 248, 176, 44, 41, 4, 250, 16, 252, 77, 44, 41, 4, 250, 44, 252, - 76, 44, 41, 4, 250, 56, 252, 124, 44, 41, 4, 250, 20, 252, 125, 44, 41, - 4, 250, 48, 252, 141, 44, 41, 4, 250, 46, 252, 207, 44, 41, 4, 250, 62, - 249, 8, 44, 41, 4, 250, 64, 111, 44, 41, 12, 244, 88, 44, 41, 12, 244, - 89, 44, 41, 12, 244, 90, 44, 41, 12, 244, 91, 44, 41, 12, 244, 92, 44, - 41, 12, 244, 93, 44, 41, 12, 244, 94, 44, 41, 12, 244, 95, 44, 41, 12, - 244, 96, 44, 41, 12, 244, 97, 44, 41, 12, 244, 98, 44, 41, 12, 244, 99, - 44, 41, 12, 244, 100, 44, 41, 12, 244, 101, 44, 41, 78, 250, 65, 248, - 131, 44, 41, 78, 250, 66, 240, 253, 44, 41, 78, 250, 67, 243, 164, 44, - 41, 78, 250, 68, 241, 98, 44, 41, 78, 244, 102, 246, 63, 44, 41, 78, 244, - 103, 236, 106, 44, 41, 78, 244, 104, 249, 58, 44, 41, 78, 244, 105, 249, - 151, 44, 41, 78, 244, 106, 236, 102, 44, 41, 78, 244, 107, 237, 172, 44, - 41, 78, 244, 108, 252, 187, 44, 41, 78, 244, 109, 244, 225, 44, 41, 78, - 244, 110, 248, 202, 44, 41, 78, 244, 111, 244, 231, 44, 41, 78, 250, 69, - 240, 153, 44, 41, 78, 250, 70, 239, 4, 44, 41, 78, 250, 71, 242, 40, 44, - 41, 78, 250, 72, 242, 123, 44, 41, 78, 250, 73, 237, 99, 44, 41, 236, - 184, 250, 74, 246, 6, 44, 41, 236, 184, 250, 75, 239, 104, 44, 41, 78, - 250, 76, 249, 127, 44, 41, 78, 250, 77, 243, 133, 44, 41, 78, 244, 112, - 44, 41, 236, 184, 250, 78, 241, 13, 44, 41, 236, 184, 250, 79, 246, 64, - 44, 41, 78, 250, 80, 239, 14, 44, 41, 78, 250, 81, 243, 96, 44, 41, 78, - 244, 113, 44, 41, 78, 250, 82, 244, 53, 44, 41, 78, 244, 114, 44, 41, 78, - 244, 115, 44, 41, 78, 250, 83, 243, 8, 44, 41, 78, 244, 116, 44, 41, 78, - 244, 117, 44, 41, 78, 244, 118, 44, 41, 236, 184, 250, 84, 242, 163, 44, - 41, 78, 244, 120, 44, 41, 78, 244, 121, 44, 41, 78, 250, 85, 240, 132, - 44, 41, 78, 244, 122, 44, 41, 78, 244, 123, 44, 41, 78, 250, 86, 237, - 164, 44, 41, 78, 250, 87, 238, 248, 44, 41, 78, 244, 124, 44, 41, 78, - 244, 125, 44, 41, 78, 244, 126, 44, 41, 78, 244, 127, 44, 41, 78, 244, - 128, 44, 41, 78, 244, 129, 44, 41, 78, 244, 130, 44, 41, 78, 244, 131, - 44, 41, 78, 244, 132, 44, 41, 78, 250, 88, 241, 248, 44, 41, 78, 244, - 133, 44, 41, 78, 250, 89, 244, 37, 44, 41, 78, 244, 134, 44, 41, 78, 244, - 135, 44, 41, 78, 244, 136, 44, 41, 78, 244, 137, 44, 41, 78, 244, 138, - 44, 41, 78, 244, 139, 44, 41, 78, 244, 140, 44, 41, 78, 244, 141, 44, 41, - 78, 244, 142, 44, 41, 78, 244, 143, 44, 41, 78, 244, 144, 44, 41, 78, - 250, 90, 239, 90, 44, 41, 78, 250, 91, 234, 190, 44, 41, 78, 250, 92, - 237, 73, 44, 41, 78, 250, 93, 240, 236, 44, 41, 78, 250, 94, 56, 44, 41, - 78, 244, 171, 44, 41, 78, 250, 95, 242, 137, 44, 41, 78, 244, 172, 44, - 41, 78, 244, 173, 44, 41, 78, 250, 96, 239, 248, 236, 252, 44, 41, 78, - 250, 97, 236, 252, 44, 41, 78, 250, 98, 239, 22, 241, 116, 44, 41, 78, - 250, 99, 242, 184, 44, 41, 78, 244, 174, 44, 41, 78, 244, 175, 44, 41, - 236, 184, 250, 100, 241, 85, 44, 41, 78, 244, 176, 44, 41, 78, 244, 177, - 44, 41, 78, 244, 179, 44, 41, 78, 244, 180, 44, 41, 78, 244, 181, 44, 41, - 78, 250, 101, 245, 35, 44, 41, 78, 244, 182, 44, 41, 78, 244, 183, 44, - 41, 78, 244, 184, 44, 41, 78, 244, 185, 44, 41, 78, 244, 186, 44, 41, 78, - 240, 6, 244, 119, 44, 41, 78, 240, 6, 244, 145, 44, 41, 78, 240, 6, 244, - 146, 44, 41, 78, 240, 6, 244, 147, 44, 41, 78, 240, 6, 244, 148, 44, 41, - 78, 240, 6, 244, 149, 44, 41, 78, 240, 6, 244, 150, 44, 41, 78, 240, 6, - 244, 151, 44, 41, 78, 240, 6, 244, 152, 44, 41, 78, 240, 6, 244, 153, 44, - 41, 78, 240, 6, 244, 154, 44, 41, 78, 240, 6, 244, 155, 44, 41, 78, 240, - 6, 244, 156, 44, 41, 78, 240, 6, 244, 157, 44, 41, 78, 240, 6, 244, 158, - 44, 41, 78, 240, 6, 244, 159, 44, 41, 78, 240, 6, 244, 160, 44, 41, 78, - 240, 6, 244, 161, 44, 41, 78, 240, 6, 244, 162, 44, 41, 78, 240, 6, 244, - 163, 44, 41, 78, 240, 6, 244, 164, 44, 41, 78, 240, 6, 244, 165, 44, 41, - 78, 240, 6, 244, 166, 44, 41, 78, 240, 6, 244, 167, 44, 41, 78, 240, 6, - 244, 168, 44, 41, 78, 240, 6, 244, 169, 44, 41, 78, 240, 6, 244, 170, 44, - 41, 78, 240, 6, 244, 178, 44, 41, 78, 240, 6, 244, 187, 167, 248, 143, - 235, 95, 242, 224, 167, 248, 143, 235, 95, 248, 40, 167, 243, 53, 69, - 167, 61, 127, 167, 61, 111, 167, 61, 166, 167, 61, 177, 167, 61, 176, - 167, 61, 187, 167, 61, 203, 167, 61, 195, 167, 61, 202, 167, 61, 248, 53, - 167, 61, 238, 77, 167, 61, 238, 101, 167, 61, 240, 136, 167, 61, 240, 50, - 167, 61, 240, 234, 167, 61, 237, 38, 167, 61, 238, 182, 167, 61, 238, - 147, 167, 61, 253, 125, 236, 149, 167, 61, 171, 236, 149, 167, 61, 204, - 236, 149, 167, 61, 248, 58, 236, 149, 167, 61, 248, 48, 236, 149, 167, - 61, 254, 31, 236, 149, 167, 61, 243, 31, 236, 149, 167, 61, 242, 254, - 236, 149, 167, 61, 248, 173, 236, 149, 167, 61, 253, 125, 235, 49, 167, - 61, 171, 235, 49, 167, 61, 204, 235, 49, 167, 61, 248, 58, 235, 49, 167, - 61, 248, 48, 235, 49, 167, 61, 254, 31, 235, 49, 167, 61, 243, 31, 235, - 49, 167, 61, 242, 254, 235, 49, 167, 61, 248, 173, 235, 49, 167, 61, 253, - 219, 235, 49, 167, 61, 240, 48, 235, 49, 167, 61, 240, 53, 235, 49, 167, - 61, 243, 6, 235, 49, 167, 61, 243, 18, 235, 49, 167, 61, 247, 90, 235, - 49, 167, 61, 239, 190, 235, 49, 167, 61, 241, 92, 235, 49, 167, 61, 242, - 12, 235, 49, 167, 240, 106, 248, 196, 247, 183, 167, 240, 106, 243, 41, - 236, 188, 167, 240, 106, 240, 87, 236, 188, 167, 240, 106, 243, 129, 236, - 188, 167, 240, 106, 240, 137, 236, 188, 167, 254, 157, 238, 119, 243, 41, - 236, 188, 167, 241, 218, 238, 119, 243, 41, 236, 188, 167, 238, 119, 240, - 87, 236, 188, 167, 238, 119, 243, 129, 236, 188, 17, 180, 242, 227, 253, - 125, 237, 33, 17, 180, 242, 227, 253, 125, 243, 7, 17, 180, 242, 227, - 253, 125, 237, 141, 17, 180, 242, 227, 176, 17, 180, 242, 227, 240, 50, - 17, 180, 242, 227, 248, 48, 236, 149, 17, 180, 242, 227, 248, 48, 235, - 49, 17, 180, 242, 227, 243, 18, 235, 49, 17, 180, 242, 227, 248, 48, 236, - 192, 17, 180, 242, 227, 253, 219, 236, 192, 17, 180, 242, 227, 243, 18, - 236, 192, 17, 180, 242, 227, 253, 125, 238, 92, 236, 192, 17, 180, 242, - 227, 248, 48, 238, 92, 236, 192, 17, 180, 242, 227, 253, 125, 236, 193, - 236, 192, 17, 180, 242, 227, 248, 48, 236, 193, 236, 192, 17, 180, 242, - 227, 248, 48, 236, 187, 17, 180, 242, 227, 253, 219, 236, 187, 17, 180, - 242, 227, 243, 18, 236, 187, 17, 180, 242, 227, 253, 125, 238, 92, 236, - 187, 17, 180, 242, 227, 248, 48, 238, 92, 236, 187, 17, 180, 242, 227, - 253, 125, 236, 193, 236, 187, 17, 180, 242, 227, 253, 219, 236, 193, 236, - 187, 17, 180, 242, 227, 243, 18, 236, 193, 236, 187, 17, 180, 242, 227, - 253, 219, 243, 107, 17, 180, 239, 91, 253, 125, 236, 76, 17, 180, 236, - 179, 127, 17, 180, 234, 38, 127, 17, 180, 234, 37, 111, 17, 180, 236, - 179, 111, 17, 180, 237, 100, 171, 235, 121, 17, 180, 234, 37, 171, 235, - 121, 17, 180, 234, 19, 176, 17, 180, 234, 19, 248, 53, 17, 180, 234, 19, - 253, 219, 235, 96, 13, 17, 180, 234, 38, 248, 53, 17, 180, 236, 60, 248, - 53, 17, 180, 236, 179, 248, 53, 17, 180, 236, 179, 238, 101, 17, 180, - 234, 19, 240, 50, 17, 180, 234, 19, 243, 18, 235, 96, 13, 17, 180, 234, - 38, 240, 50, 17, 180, 236, 179, 240, 50, 17, 180, 236, 179, 253, 125, - 236, 149, 17, 180, 236, 179, 204, 236, 149, 17, 180, 234, 37, 248, 48, - 236, 149, 17, 180, 234, 19, 248, 48, 236, 149, 17, 180, 236, 179, 248, - 48, 236, 149, 17, 180, 235, 186, 248, 48, 236, 149, 17, 180, 241, 254, - 248, 48, 236, 149, 17, 180, 236, 179, 253, 125, 235, 49, 17, 180, 236, - 179, 248, 48, 235, 49, 17, 180, 239, 40, 248, 48, 243, 107, 17, 180, 238, - 16, 243, 18, 243, 107, 17, 253, 125, 137, 52, 17, 253, 125, 137, 21, 235, - 96, 13, 17, 171, 242, 149, 52, 17, 204, 236, 236, 52, 17, 249, 206, 52, - 17, 242, 140, 52, 17, 238, 180, 52, 17, 252, 57, 52, 17, 171, 243, 68, - 52, 17, 204, 243, 68, 52, 17, 248, 58, 243, 68, 52, 17, 248, 48, 243, 68, - 52, 17, 237, 209, 52, 17, 239, 111, 248, 196, 52, 17, 246, 52, 52, 17, - 242, 44, 52, 17, 242, 188, 52, 17, 241, 19, 52, 17, 241, 17, 52, 17, 241, - 141, 52, 17, 238, 33, 248, 196, 52, 17, 248, 145, 52, 76, 24, 1, 67, 76, - 24, 1, 253, 242, 76, 24, 1, 253, 172, 76, 24, 1, 253, 200, 76, 24, 1, 72, - 76, 24, 1, 254, 12, 76, 24, 1, 253, 228, 76, 24, 1, 253, 168, 76, 24, 1, - 248, 111, 76, 24, 1, 71, 76, 24, 1, 201, 76, 24, 1, 254, 3, 76, 24, 1, - 254, 22, 76, 24, 1, 253, 202, 76, 24, 1, 248, 93, 76, 24, 1, 73, 76, 24, - 1, 253, 175, 76, 24, 1, 248, 118, 76, 24, 1, 253, 203, 76, 24, 1, 254, 4, - 76, 24, 1, 254, 23, 76, 24, 1, 253, 195, 76, 24, 1, 79, 76, 24, 1, 250, - 223, 76, 24, 1, 249, 136, 76, 24, 1, 249, 94, 76, 24, 1, 254, 21, 76, 24, - 1, 250, 229, 76, 24, 1, 248, 88, 76, 24, 1, 253, 142, 76, 24, 1, 253, - 148, 76, 24, 178, 127, 76, 24, 178, 176, 76, 24, 178, 248, 53, 76, 24, - 178, 240, 50, 240, 8, 1, 244, 71, 240, 8, 1, 237, 70, 240, 8, 1, 245, - 120, 240, 8, 1, 245, 32, 240, 8, 1, 238, 240, 240, 8, 1, 236, 83, 240, 8, - 1, 245, 233, 240, 8, 1, 245, 139, 240, 8, 1, 239, 221, 240, 8, 1, 250, - 222, 240, 8, 1, 241, 206, 240, 8, 1, 241, 211, 240, 8, 1, 241, 226, 240, - 8, 1, 239, 142, 240, 8, 1, 251, 113, 240, 8, 1, 247, 184, 240, 8, 1, 236, - 68, 240, 8, 1, 238, 147, 240, 8, 1, 242, 75, 240, 8, 1, 242, 98, 240, 8, - 1, 242, 144, 240, 8, 1, 242, 185, 240, 8, 1, 241, 102, 240, 8, 1, 241, - 179, 240, 8, 1, 240, 190, 240, 8, 1, 242, 43, 240, 8, 1, 248, 173, 236, - 149, 236, 147, 1, 244, 78, 236, 147, 1, 242, 242, 236, 147, 1, 241, 122, - 236, 147, 1, 248, 61, 236, 147, 1, 240, 28, 236, 147, 1, 253, 184, 236, - 147, 1, 253, 177, 236, 147, 1, 242, 251, 236, 147, 1, 245, 201, 236, 147, - 1, 249, 176, 236, 147, 1, 248, 193, 236, 147, 1, 248, 116, 236, 147, 1, - 243, 33, 236, 147, 1, 240, 33, 236, 147, 1, 248, 166, 236, 147, 1, 245, - 64, 236, 147, 1, 248, 132, 236, 147, 1, 254, 18, 236, 147, 1, 242, 95, - 236, 147, 1, 248, 105, 236, 147, 1, 253, 239, 236, 147, 1, 247, 61, 236, - 147, 1, 247, 15, 236, 147, 1, 242, 76, 236, 147, 1, 239, 219, 236, 147, - 1, 240, 180, 236, 147, 1, 87, 236, 147, 1, 71, 236, 147, 1, 79, 236, 147, - 1, 248, 251, 236, 147, 248, 143, 236, 213, 76, 184, 21, 67, 76, 184, 21, - 71, 76, 184, 21, 79, 76, 184, 21, 201, 76, 184, 21, 253, 203, 76, 184, - 21, 253, 139, 76, 184, 21, 253, 235, 76, 184, 21, 253, 253, 76, 184, 21, - 253, 152, 76, 184, 21, 253, 146, 76, 184, 21, 254, 7, 76, 184, 21, 253, - 126, 76, 184, 21, 253, 196, 76, 184, 21, 253, 133, 76, 184, 21, 253, 201, - 76, 184, 21, 253, 232, 76, 184, 21, 248, 55, 76, 184, 21, 253, 129, 76, - 184, 21, 253, 141, 76, 184, 21, 253, 179, 76, 184, 21, 253, 131, 76, 184, - 21, 253, 150, 76, 184, 21, 222, 76, 184, 21, 253, 180, 76, 184, 21, 253, - 154, 76, 184, 21, 216, 76, 184, 21, 253, 171, 76, 184, 21, 254, 48, 76, - 184, 21, 253, 130, 76, 184, 21, 253, 185, 76, 184, 21, 253, 134, 76, 184, - 21, 253, 132, 76, 184, 21, 253, 163, 76, 184, 21, 248, 46, 76, 184, 21, - 248, 66, 76, 184, 21, 219, 76, 184, 21, 233, 118, 76, 184, 21, 231, 117, - 76, 184, 21, 231, 118, 76, 184, 21, 232, 66, 76, 184, 21, 234, 107, 76, - 184, 21, 232, 126, 76, 184, 21, 244, 189, 76, 184, 21, 237, 81, 76, 184, - 248, 143, 236, 213, 76, 184, 61, 127, 76, 184, 61, 111, 76, 184, 61, 248, - 53, 76, 184, 61, 238, 77, 76, 184, 61, 236, 149, 121, 5, 1, 183, 71, 121, - 5, 1, 183, 72, 121, 5, 1, 183, 67, 121, 5, 1, 183, 254, 0, 121, 5, 1, - 183, 73, 121, 5, 1, 183, 253, 156, 121, 5, 1, 242, 215, 71, 121, 5, 1, - 242, 215, 72, 121, 5, 1, 242, 215, 67, 121, 5, 1, 242, 215, 254, 0, 121, - 5, 1, 242, 215, 73, 121, 5, 1, 242, 215, 253, 156, 121, 5, 1, 254, 33, - 121, 5, 1, 254, 121, 121, 5, 1, 254, 14, 121, 5, 1, 248, 192, 121, 5, 1, - 192, 121, 5, 1, 248, 180, 121, 5, 1, 248, 197, 121, 5, 1, 248, 255, 121, - 5, 1, 248, 149, 121, 5, 1, 243, 54, 121, 5, 1, 248, 161, 121, 5, 1, 249, - 92, 121, 5, 1, 249, 67, 121, 5, 1, 254, 21, 121, 5, 1, 249, 10, 121, 5, - 1, 248, 109, 121, 5, 1, 243, 77, 121, 5, 1, 254, 23, 121, 5, 1, 248, 194, - 121, 5, 1, 248, 93, 121, 5, 1, 243, 139, 121, 5, 1, 254, 4, 121, 5, 1, - 254, 3, 121, 5, 1, 254, 22, 121, 5, 1, 253, 202, 121, 5, 1, 248, 108, - 121, 5, 1, 254, 42, 121, 5, 1, 254, 91, 121, 3, 1, 183, 71, 121, 3, 1, - 183, 72, 121, 3, 1, 183, 67, 121, 3, 1, 183, 254, 0, 121, 3, 1, 183, 73, - 121, 3, 1, 183, 253, 156, 121, 3, 1, 242, 215, 71, 121, 3, 1, 242, 215, - 72, 121, 3, 1, 242, 215, 67, 121, 3, 1, 242, 215, 254, 0, 121, 3, 1, 242, - 215, 73, 121, 3, 1, 242, 215, 253, 156, 121, 3, 1, 254, 33, 121, 3, 1, - 254, 121, 121, 3, 1, 254, 14, 121, 3, 1, 248, 192, 121, 3, 1, 192, 121, - 3, 1, 248, 180, 121, 3, 1, 248, 197, 121, 3, 1, 248, 255, 121, 3, 1, 248, - 149, 121, 3, 1, 243, 54, 121, 3, 1, 248, 161, 121, 3, 1, 249, 92, 121, 3, - 1, 249, 67, 121, 3, 1, 254, 21, 121, 3, 1, 249, 10, 121, 3, 1, 248, 109, - 121, 3, 1, 243, 77, 121, 3, 1, 254, 23, 121, 3, 1, 248, 194, 121, 3, 1, - 248, 93, 121, 3, 1, 243, 139, 121, 3, 1, 254, 4, 121, 3, 1, 254, 3, 121, - 3, 1, 254, 22, 121, 3, 1, 253, 202, 121, 3, 1, 248, 108, 121, 3, 1, 254, - 42, 121, 3, 1, 254, 91, 207, 1, 246, 240, 207, 1, 249, 184, 207, 1, 246, - 13, 207, 1, 249, 61, 207, 1, 242, 147, 207, 1, 253, 186, 207, 1, 247, - 127, 207, 1, 239, 25, 207, 1, 253, 77, 207, 1, 245, 204, 207, 1, 250, - 121, 207, 1, 245, 58, 207, 1, 251, 6, 207, 1, 253, 19, 207, 1, 247, 144, - 207, 1, 253, 110, 207, 1, 237, 23, 207, 1, 241, 189, 207, 1, 253, 35, - 207, 1, 241, 144, 207, 1, 246, 53, 207, 1, 246, 86, 207, 1, 254, 174, - 207, 1, 250, 221, 207, 1, 249, 241, 207, 1, 249, 234, 207, 1, 254, 9, - 207, 1, 244, 53, 207, 1, 248, 235, 207, 1, 254, 0, 207, 1, 247, 33, 207, - 1, 248, 132, 207, 1, 248, 207, 207, 1, 249, 235, 207, 1, 249, 84, 207, 1, - 253, 176, 207, 1, 252, 55, 207, 1, 246, 234, 207, 1, 249, 127, 207, 1, - 249, 244, 207, 1, 249, 240, 207, 1, 253, 227, 207, 1, 249, 236, 207, 1, - 250, 228, 207, 1, 241, 18, 207, 1, 248, 206, 207, 1, 251, 100, 207, 1, - 253, 78, 238, 50, 1, 243, 3, 238, 50, 1, 253, 141, 238, 50, 1, 253, 126, - 238, 50, 1, 253, 146, 238, 50, 1, 253, 253, 238, 50, 1, 248, 61, 238, 50, - 1, 245, 60, 238, 50, 1, 253, 130, 238, 50, 1, 253, 132, 238, 50, 1, 242, - 106, 238, 50, 1, 248, 76, 238, 50, 1, 244, 244, 238, 50, 1, 253, 139, - 238, 50, 1, 253, 179, 238, 50, 1, 247, 4, 238, 50, 1, 246, 3, 238, 50, 1, - 246, 34, 238, 50, 1, 246, 84, 238, 50, 1, 246, 197, 238, 50, 1, 248, 142, - 238, 50, 1, 219, 238, 50, 1, 216, 238, 50, 1, 67, 238, 50, 1, 72, 238, - 50, 1, 71, 238, 50, 1, 73, 238, 50, 1, 79, 238, 50, 1, 253, 140, 238, 50, - 1, 253, 164, 238, 50, 1, 253, 156, 238, 50, 26, 242, 217, 238, 50, 26, - 127, 238, 50, 26, 111, 238, 50, 26, 166, 238, 50, 26, 177, 238, 50, 26, - 176, 238, 50, 26, 187, 238, 50, 26, 203, 238, 50, 26, 195, 238, 50, 26, - 202, 172, 4, 67, 172, 4, 72, 172, 4, 71, 172, 4, 73, 172, 4, 79, 172, 4, - 253, 146, 172, 4, 253, 248, 172, 4, 201, 172, 4, 253, 172, 172, 4, 253, - 215, 172, 4, 253, 190, 172, 4, 253, 203, 172, 4, 253, 134, 172, 4, 253, - 250, 172, 4, 253, 251, 172, 4, 253, 216, 172, 4, 254, 8, 172, 4, 222, - 172, 4, 253, 206, 172, 4, 253, 180, 172, 4, 253, 181, 172, 4, 253, 154, - 172, 4, 253, 131, 172, 4, 253, 197, 172, 4, 253, 166, 172, 4, 253, 173, - 172, 4, 253, 150, 172, 4, 253, 129, 172, 4, 253, 175, 172, 4, 253, 147, - 172, 4, 253, 208, 172, 4, 253, 239, 172, 4, 253, 130, 172, 4, 253, 194, - 172, 4, 253, 209, 172, 4, 253, 160, 172, 4, 253, 185, 172, 4, 253, 132, - 172, 4, 253, 210, 172, 4, 253, 198, 172, 4, 253, 186, 172, 4, 253, 211, - 172, 4, 253, 126, 172, 4, 253, 195, 172, 4, 253, 212, 172, 4, 87, 172, 4, - 253, 196, 172, 4, 253, 138, 172, 4, 253, 170, 172, 4, 253, 187, 172, 4, - 253, 177, 172, 4, 253, 253, 172, 4, 254, 132, 172, 4, 253, 163, 172, 4, - 253, 222, 151, 1, 67, 151, 33, 21, 71, 151, 33, 21, 79, 151, 33, 21, 165, - 144, 151, 33, 21, 72, 151, 33, 21, 73, 151, 33, 240, 51, 69, 151, 21, 45, - 248, 51, 46, 151, 21, 235, 61, 151, 21, 236, 173, 151, 1, 201, 151, 1, - 248, 61, 151, 1, 253, 139, 151, 1, 248, 77, 151, 1, 253, 152, 151, 1, - 248, 57, 151, 1, 253, 146, 151, 1, 248, 78, 151, 1, 248, 71, 151, 1, 242, - 247, 151, 1, 248, 75, 151, 1, 242, 249, 151, 1, 248, 82, 151, 1, 253, - 126, 151, 1, 248, 55, 151, 1, 253, 133, 151, 1, 248, 76, 151, 1, 253, - 131, 151, 1, 253, 129, 151, 1, 248, 65, 151, 1, 253, 141, 151, 1, 248, - 81, 151, 1, 222, 151, 1, 216, 151, 1, 253, 130, 151, 1, 253, 134, 151, 1, - 253, 171, 151, 1, 248, 46, 151, 1, 248, 66, 151, 1, 253, 132, 151, 1, - 253, 163, 151, 1, 219, 151, 1, 249, 97, 151, 1, 242, 161, 151, 21, 253, - 144, 48, 151, 21, 241, 44, 151, 21, 53, 46, 151, 238, 72, 151, 26, 127, - 151, 26, 111, 151, 26, 166, 151, 26, 177, 151, 61, 248, 53, 151, 61, 238, - 77, 151, 61, 253, 125, 236, 149, 151, 61, 253, 125, 235, 49, 151, 233, - 51, 248, 40, 151, 233, 51, 3, 238, 51, 151, 233, 51, 238, 51, 151, 233, - 51, 237, 95, 125, 151, 233, 51, 236, 57, 151, 233, 51, 241, 220, 151, - 233, 51, 240, 111, 151, 233, 51, 45, 240, 111, 151, 233, 51, 241, 217, - 37, 20, 12, 240, 29, 37, 20, 12, 239, 37, 37, 20, 12, 232, 71, 37, 20, - 12, 243, 112, 232, 83, 37, 20, 12, 243, 112, 240, 73, 37, 20, 12, 240, - 152, 232, 83, 37, 20, 12, 240, 152, 240, 73, 37, 20, 12, 236, 44, 37, 20, - 12, 235, 30, 37, 20, 12, 232, 191, 37, 20, 12, 235, 43, 37, 20, 12, 236, - 142, 240, 73, 37, 20, 12, 236, 48, 37, 20, 12, 243, 142, 232, 83, 37, 20, - 12, 254, 92, 232, 83, 37, 20, 12, 238, 223, 37, 20, 12, 234, 213, 37, 20, - 12, 233, 116, 37, 20, 12, 234, 45, 240, 73, 37, 20, 12, 238, 20, 37, 20, - 12, 242, 150, 37, 20, 12, 240, 205, 235, 55, 37, 20, 12, 240, 98, 235, - 55, 37, 20, 12, 239, 168, 37, 20, 12, 235, 187, 37, 20, 12, 242, 175, 37, - 20, 12, 249, 85, 235, 55, 37, 20, 12, 238, 118, 235, 55, 37, 20, 12, 235, - 90, 235, 55, 37, 20, 12, 236, 96, 37, 20, 12, 236, 71, 37, 20, 12, 239, - 203, 235, 164, 37, 20, 12, 242, 45, 235, 55, 37, 20, 12, 239, 239, 235, - 55, 37, 20, 12, 236, 246, 235, 55, 37, 20, 12, 235, 165, 37, 20, 12, 238, - 195, 37, 20, 12, 242, 82, 37, 20, 12, 240, 207, 235, 55, 37, 20, 12, 238, - 29, 37, 20, 12, 231, 116, 37, 20, 12, 239, 188, 37, 20, 12, 238, 153, - 235, 55, 37, 20, 12, 238, 153, 251, 225, 238, 15, 37, 20, 12, 235, 132, - 235, 55, 37, 20, 12, 242, 146, 37, 20, 12, 241, 214, 37, 20, 12, 250, - 217, 37, 20, 12, 247, 158, 37, 20, 12, 238, 25, 37, 20, 12, 234, 215, 37, - 20, 12, 243, 142, 254, 92, 248, 64, 37, 20, 12, 240, 18, 235, 55, 37, 20, - 12, 234, 203, 37, 20, 12, 236, 242, 235, 55, 37, 20, 12, 241, 194, 236, - 132, 37, 20, 12, 236, 73, 37, 20, 12, 234, 241, 37, 20, 12, 236, 46, 37, - 20, 12, 236, 253, 235, 55, 37, 20, 12, 237, 246, 37, 20, 12, 233, 92, - 235, 55, 37, 20, 12, 233, 93, 235, 55, 37, 20, 12, 237, 177, 37, 20, 12, - 243, 231, 37, 20, 12, 237, 234, 37, 20, 12, 237, 190, 243, 84, 37, 20, - 12, 236, 242, 243, 84, 37, 20, 12, 232, 59, 37, 20, 12, 231, 139, 37, 20, - 12, 249, 85, 248, 64, 37, 20, 12, 240, 205, 248, 64, 37, 20, 12, 243, - 112, 248, 64, 37, 20, 12, 237, 235, 37, 20, 12, 236, 47, 37, 20, 12, 229, - 51, 37, 20, 12, 229, 47, 37, 20, 12, 237, 233, 248, 64, 37, 20, 12, 235, - 90, 253, 238, 248, 106, 37, 20, 12, 238, 118, 253, 238, 248, 106, 37, 20, - 12, 239, 252, 37, 20, 12, 234, 45, 248, 64, 37, 20, 12, 234, 44, 236, - 126, 248, 64, 37, 20, 12, 238, 49, 37, 20, 12, 229, 48, 37, 20, 12, 237, - 148, 37, 20, 12, 237, 86, 37, 20, 12, 241, 243, 245, 231, 37, 20, 12, - 240, 152, 248, 64, 37, 20, 12, 240, 207, 248, 64, 37, 20, 12, 236, 82, - 248, 64, 37, 20, 12, 239, 151, 37, 20, 12, 233, 114, 37, 20, 12, 237, - 196, 37, 20, 12, 233, 93, 248, 64, 37, 20, 12, 233, 92, 248, 64, 37, 20, - 12, 240, 172, 232, 190, 37, 20, 12, 237, 193, 37, 20, 12, 227, 12, 37, - 20, 12, 236, 242, 248, 64, 37, 20, 12, 233, 194, 37, 20, 12, 238, 153, - 248, 64, 37, 20, 12, 242, 138, 37, 20, 12, 236, 253, 248, 64, 37, 20, 12, - 236, 13, 37, 20, 12, 242, 100, 248, 64, 37, 20, 12, 247, 204, 238, 195, - 37, 20, 12, 227, 8, 37, 20, 12, 229, 53, 37, 20, 12, 231, 32, 37, 20, 12, - 226, 242, 37, 20, 12, 226, 233, 37, 20, 12, 231, 33, 37, 20, 12, 229, 54, - 37, 20, 12, 229, 66, 37, 20, 12, 231, 44, 37, 20, 12, 240, 172, 231, 44, - 37, 20, 12, 235, 132, 248, 64, 37, 20, 12, 233, 109, 250, 230, 37, 20, - 12, 233, 109, 250, 232, 37, 20, 12, 247, 143, 238, 161, 37, 20, 12, 252, - 218, 254, 65, 237, 63, 37, 20, 12, 234, 211, 37, 20, 12, 234, 186, 37, - 20, 12, 249, 208, 243, 20, 37, 20, 12, 249, 208, 248, 106, 37, 20, 12, - 238, 14, 37, 20, 12, 240, 194, 248, 106, 37, 20, 12, 245, 67, 235, 55, - 37, 20, 12, 238, 142, 235, 55, 37, 20, 12, 238, 142, 243, 84, 37, 20, 12, - 238, 142, 248, 64, 37, 20, 12, 236, 246, 248, 64, 37, 20, 12, 244, 83, - 37, 20, 12, 240, 73, 37, 20, 12, 239, 228, 37, 20, 12, 236, 128, 37, 20, - 12, 236, 229, 37, 20, 12, 240, 100, 250, 225, 236, 254, 37, 20, 12, 240, - 100, 254, 57, 236, 221, 37, 20, 12, 240, 100, 247, 159, 236, 221, 37, 20, - 12, 240, 100, 238, 24, 236, 221, 37, 20, 12, 240, 100, 239, 97, 236, 254, - 37, 20, 12, 240, 98, 253, 238, 248, 106, 37, 20, 12, 240, 98, 231, 92, - 235, 171, 37, 20, 12, 240, 98, 231, 92, 240, 168, 37, 20, 12, 235, 204, - 37, 20, 12, 236, 223, 231, 92, 236, 247, 243, 20, 37, 20, 12, 236, 223, - 231, 92, 236, 247, 248, 106, 37, 20, 12, 236, 223, 231, 92, 240, 168, 37, - 20, 12, 235, 37, 37, 20, 12, 241, 14, 37, 20, 12, 233, 209, 37, 20, 12, - 237, 106, 37, 20, 12, 243, 13, 249, 139, 243, 143, 37, 20, 12, 243, 13, - 235, 170, 37, 20, 12, 243, 13, 243, 143, 37, 20, 12, 243, 13, 239, 135, - 37, 20, 12, 243, 13, 246, 66, 37, 20, 12, 243, 13, 240, 184, 37, 20, 12, - 243, 13, 234, 196, 37, 20, 12, 243, 13, 249, 139, 240, 184, 37, 20, 12, - 236, 162, 240, 211, 240, 35, 37, 20, 12, 236, 162, 249, 27, 240, 211, - 240, 35, 37, 20, 12, 236, 162, 237, 5, 240, 35, 37, 20, 12, 236, 162, - 249, 27, 237, 5, 240, 35, 37, 20, 12, 236, 162, 242, 157, 240, 35, 37, - 20, 12, 236, 162, 235, 36, 37, 20, 12, 236, 162, 236, 241, 240, 35, 37, - 20, 12, 236, 162, 236, 241, 238, 198, 240, 35, 37, 20, 12, 236, 162, 238, - 198, 240, 35, 37, 20, 12, 236, 162, 238, 209, 240, 35, 37, 20, 12, 241, - 181, 240, 243, 234, 58, 37, 20, 12, 234, 44, 240, 243, 234, 58, 37, 20, - 12, 235, 99, 233, 40, 37, 20, 12, 235, 99, 233, 87, 37, 20, 12, 235, 99, - 235, 119, 37, 20, 12, 236, 162, 247, 185, 240, 35, 37, 20, 12, 236, 162, - 234, 240, 240, 35, 37, 20, 12, 236, 162, 238, 209, 236, 241, 240, 35, 37, - 20, 12, 234, 57, 255, 98, 238, 161, 37, 20, 12, 234, 57, 255, 98, 237, - 110, 37, 20, 12, 239, 56, 254, 65, 240, 18, 249, 196, 37, 20, 12, 236, - 38, 37, 20, 12, 233, 210, 37, 20, 12, 240, 18, 237, 66, 237, 103, 241, - 178, 37, 20, 12, 240, 18, 235, 72, 253, 129, 37, 20, 12, 240, 18, 235, - 72, 243, 231, 37, 20, 12, 240, 18, 251, 254, 240, 35, 37, 20, 12, 240, - 18, 235, 72, 253, 201, 37, 20, 12, 240, 18, 238, 150, 237, 107, 253, 201, - 37, 20, 12, 240, 18, 235, 72, 253, 172, 37, 20, 12, 240, 18, 235, 72, - 253, 222, 37, 20, 12, 240, 18, 235, 72, 255, 62, 243, 20, 37, 20, 12, - 240, 18, 235, 72, 255, 62, 248, 106, 37, 20, 12, 240, 18, 238, 199, 240, - 110, 235, 119, 37, 20, 12, 240, 18, 238, 199, 240, 110, 233, 87, 37, 20, - 12, 241, 105, 238, 150, 240, 110, 242, 174, 37, 20, 12, 240, 18, 238, - 150, 240, 110, 239, 212, 37, 20, 12, 240, 18, 239, 143, 37, 20, 12, 243, - 89, 242, 209, 37, 20, 12, 243, 89, 239, 109, 37, 20, 12, 243, 89, 239, - 200, 37, 20, 12, 240, 18, 220, 240, 90, 231, 55, 37, 20, 12, 240, 18, - 234, 184, 234, 91, 37, 20, 12, 240, 90, 232, 110, 37, 20, 12, 240, 72, - 232, 110, 37, 20, 12, 240, 72, 231, 55, 37, 20, 12, 240, 72, 248, 146, - 254, 57, 235, 68, 37, 20, 12, 240, 72, 233, 88, 238, 225, 235, 68, 37, - 20, 12, 240, 72, 235, 120, 255, 56, 235, 68, 37, 20, 12, 240, 72, 234, - 86, 249, 128, 235, 68, 37, 20, 12, 240, 90, 248, 146, 254, 57, 235, 68, - 37, 20, 12, 240, 90, 233, 88, 238, 225, 235, 68, 37, 20, 12, 240, 90, - 235, 120, 255, 56, 235, 68, 37, 20, 12, 240, 90, 234, 86, 249, 128, 235, - 68, 37, 20, 12, 240, 179, 239, 43, 37, 20, 12, 240, 179, 239, 250, 37, - 20, 12, 236, 212, 248, 146, 241, 242, 37, 20, 12, 236, 212, 248, 146, - 239, 133, 37, 20, 12, 236, 212, 240, 73, 37, 20, 12, 236, 212, 237, 47, - 37, 20, 12, 236, 186, 237, 47, 37, 20, 12, 236, 186, 238, 155, 237, 7, - 37, 20, 12, 236, 186, 238, 155, 235, 154, 37, 20, 12, 236, 186, 238, 155, - 233, 108, 37, 20, 12, 236, 186, 238, 250, 37, 20, 12, 236, 186, 240, 128, - 237, 7, 37, 20, 12, 236, 186, 240, 128, 235, 154, 37, 20, 12, 236, 186, - 240, 128, 233, 108, 37, 20, 12, 237, 108, 254, 167, 37, 20, 12, 235, 203, - 254, 10, 37, 20, 12, 238, 152, 37, 20, 12, 238, 90, 253, 129, 37, 20, 12, - 238, 90, 249, 196, 37, 20, 12, 238, 90, 253, 139, 37, 20, 12, 238, 90, - 253, 201, 37, 20, 12, 238, 90, 253, 172, 37, 20, 12, 238, 90, 253, 222, - 37, 20, 12, 238, 90, 253, 166, 37, 20, 12, 235, 90, 253, 238, 243, 225, - 37, 20, 12, 238, 118, 253, 238, 243, 225, 37, 20, 12, 235, 90, 253, 238, - 243, 20, 37, 20, 12, 238, 118, 253, 238, 243, 20, 37, 20, 12, 240, 194, - 243, 20, 37, 20, 12, 240, 98, 253, 238, 243, 20, 20, 12, 240, 12, 236, - 194, 20, 12, 45, 236, 194, 20, 12, 30, 236, 194, 20, 12, 238, 75, 30, - 236, 194, 20, 12, 240, 55, 236, 194, 20, 12, 242, 215, 236, 194, 20, 12, - 40, 240, 64, 52, 20, 12, 38, 240, 64, 52, 20, 12, 240, 64, 243, 5, 20, - 12, 253, 199, 240, 219, 20, 12, 255, 70, 244, 242, 20, 12, 240, 219, 20, - 12, 245, 25, 20, 12, 236, 237, 236, 21, 20, 12, 236, 237, 236, 22, 20, - 12, 236, 237, 236, 23, 20, 12, 237, 10, 20, 12, 239, 69, 46, 20, 12, 241, - 37, 69, 20, 12, 237, 82, 20, 12, 241, 35, 20, 12, 104, 20, 12, 237, 225, - 240, 89, 20, 12, 238, 35, 240, 89, 20, 12, 235, 34, 240, 89, 20, 12, 236, - 25, 240, 89, 20, 12, 236, 24, 240, 89, 20, 12, 238, 8, 240, 89, 20, 12, - 235, 2, 234, 55, 20, 12, 233, 204, 234, 55, 20, 12, 255, 104, 243, 37, - 20, 12, 255, 104, 248, 148, 240, 82, 243, 51, 20, 12, 255, 104, 248, 148, - 240, 82, 240, 108, 20, 12, 255, 105, 243, 37, 20, 12, 255, 112, 243, 37, - 20, 12, 255, 112, 248, 148, 240, 82, 243, 51, 20, 12, 255, 112, 248, 148, - 240, 82, 240, 108, 20, 12, 249, 57, 239, 26, 20, 12, 249, 57, 239, 27, - 20, 12, 45, 240, 223, 20, 12, 45, 243, 174, 20, 12, 248, 209, 253, 176, - 20, 12, 248, 209, 242, 236, 20, 12, 238, 146, 253, 176, 20, 12, 238, 146, - 242, 236, 20, 12, 243, 74, 253, 176, 20, 12, 243, 74, 242, 236, 20, 12, - 238, 80, 188, 240, 223, 20, 12, 238, 80, 188, 243, 174, 20, 12, 241, 66, - 244, 31, 20, 12, 254, 153, 244, 31, 20, 12, 240, 82, 243, 51, 20, 12, - 240, 82, 240, 108, 20, 12, 232, 107, 243, 51, 20, 12, 232, 107, 240, 108, - 20, 12, 246, 95, 242, 239, 20, 12, 244, 51, 242, 239, 20, 12, 137, 242, - 239, 20, 12, 238, 80, 242, 239, 20, 12, 240, 62, 242, 239, 20, 12, 235, - 108, 242, 239, 20, 12, 231, 112, 242, 239, 20, 12, 232, 109, 242, 239, - 20, 12, 253, 125, 238, 92, 231, 113, 242, 239, 20, 12, 255, 113, 235, 78, - 20, 12, 248, 49, 235, 78, 20, 12, 218, 255, 113, 235, 78, 20, 12, 31, - 236, 153, 240, 39, 20, 12, 31, 236, 153, 240, 0, 20, 12, 236, 152, 236, - 153, 88, 240, 39, 20, 12, 236, 152, 236, 153, 88, 240, 0, 20, 12, 236, - 152, 236, 153, 40, 240, 39, 20, 12, 236, 152, 236, 153, 40, 240, 0, 20, - 12, 236, 152, 236, 153, 38, 240, 39, 20, 12, 236, 152, 236, 153, 38, 240, - 0, 20, 12, 236, 152, 236, 153, 92, 240, 39, 20, 12, 236, 152, 236, 153, - 92, 240, 0, 20, 12, 236, 152, 236, 153, 88, 38, 240, 39, 20, 12, 236, - 152, 236, 153, 88, 38, 240, 0, 20, 12, 249, 113, 236, 153, 240, 39, 20, - 12, 249, 113, 236, 153, 240, 0, 20, 12, 231, 57, 236, 153, 92, 240, 39, - 20, 12, 231, 57, 236, 153, 92, 240, 0, 20, 12, 233, 56, 235, 78, 20, 12, - 253, 16, 235, 78, 20, 12, 236, 153, 240, 0, 20, 12, 252, 40, 235, 78, 20, - 12, 238, 172, 236, 153, 240, 39, 20, 12, 238, 172, 236, 153, 240, 0, 20, - 12, 239, 255, 20, 12, 244, 51, 243, 9, 20, 12, 137, 243, 9, 20, 12, 238, - 80, 243, 9, 20, 12, 240, 62, 243, 9, 20, 12, 235, 108, 243, 9, 20, 12, - 231, 112, 243, 9, 20, 12, 232, 109, 243, 9, 20, 12, 253, 125, 238, 92, - 231, 113, 243, 9, 20, 12, 50, 243, 46, 20, 12, 50, 233, 38, 243, 46, 20, - 12, 50, 234, 83, 20, 12, 50, 234, 84, 20, 12, 50, 234, 85, 20, 12, 236, - 225, 234, 83, 20, 12, 236, 225, 234, 84, 20, 12, 236, 225, 234, 85, 20, - 12, 50, 232, 117, 248, 40, 20, 12, 50, 239, 71, 20, 12, 50, 239, 72, 20, - 12, 50, 239, 73, 20, 12, 50, 239, 74, 20, 12, 50, 239, 75, 20, 12, 243, - 24, 243, 146, 20, 12, 253, 165, 243, 146, 20, 12, 243, 24, 248, 139, 20, - 12, 253, 165, 248, 139, 20, 12, 243, 24, 244, 19, 20, 12, 253, 165, 244, - 19, 20, 12, 243, 24, 238, 207, 20, 12, 253, 165, 238, 207, 20, 12, 50, - 238, 54, 20, 12, 50, 236, 105, 20, 12, 50, 239, 216, 20, 12, 50, 231, 81, - 20, 12, 50, 237, 201, 20, 12, 50, 227, 2, 20, 12, 50, 227, 11, 20, 12, - 50, 241, 221, 20, 12, 234, 46, 253, 176, 20, 12, 234, 46, 242, 236, 20, - 12, 50, 245, 71, 20, 12, 50, 252, 138, 20, 12, 50, 245, 90, 20, 12, 50, - 242, 117, 20, 12, 50, 244, 217, 20, 12, 50, 45, 238, 156, 20, 12, 50, - 240, 3, 238, 156, 20, 12, 232, 201, 20, 12, 239, 208, 20, 12, 255, 17, - 20, 12, 242, 61, 20, 12, 241, 237, 20, 12, 241, 115, 20, 12, 234, 106, - 20, 12, 232, 127, 20, 12, 243, 186, 249, 122, 240, 37, 20, 12, 243, 186, - 249, 122, 255, 51, 240, 37, 20, 12, 254, 250, 20, 12, 244, 41, 20, 12, - 236, 145, 244, 41, 20, 12, 249, 188, 240, 37, 20, 12, 249, 188, 253, 176, - 20, 12, 236, 172, 236, 111, 20, 12, 236, 172, 236, 112, 20, 12, 236, 172, - 236, 113, 20, 12, 236, 172, 236, 114, 20, 12, 236, 172, 236, 115, 20, 12, - 236, 172, 236, 116, 20, 12, 236, 172, 236, 117, 20, 12, 236, 172, 236, - 118, 20, 12, 236, 172, 236, 119, 20, 12, 236, 172, 235, 3, 20, 12, 236, - 172, 235, 4, 20, 12, 232, 168, 20, 12, 232, 186, 20, 12, 253, 165, 147, - 239, 204, 20, 12, 240, 112, 240, 37, 20, 12, 50, 92, 248, 198, 20, 12, - 50, 88, 248, 198, 20, 12, 50, 236, 34, 20, 12, 50, 252, 182, 234, 235, - 20, 12, 243, 114, 69, 20, 12, 243, 114, 88, 69, 20, 12, 137, 243, 114, - 69, 20, 12, 235, 125, 253, 176, 20, 12, 235, 125, 242, 236, 20, 12, 2, - 232, 165, 20, 12, 245, 34, 20, 12, 250, 181, 249, 26, 20, 12, 239, 131, - 20, 12, 241, 219, 20, 12, 239, 13, 20, 12, 234, 40, 240, 39, 20, 12, 234, - 40, 240, 0, 20, 12, 239, 138, 20, 12, 240, 200, 240, 0, 20, 12, 234, 41, - 240, 39, 20, 12, 234, 41, 240, 0, 20, 12, 249, 65, 240, 39, 20, 12, 249, - 65, 240, 0, 20, 12, 243, 217, 237, 29, 242, 239, 20, 12, 243, 217, 234, - 29, 242, 239, 20, 12, 241, 38, 242, 239, 20, 12, 234, 40, 242, 239, 20, - 12, 240, 200, 242, 239, 20, 12, 234, 41, 242, 239, 20, 12, 240, 65, 235, - 106, 253, 231, 234, 13, 235, 134, 20, 12, 240, 65, 235, 106, 253, 231, - 234, 13, 233, 85, 20, 12, 240, 65, 235, 106, 253, 231, 234, 13, 237, 29, - 231, 102, 20, 12, 240, 65, 233, 62, 253, 231, 234, 13, 235, 134, 20, 12, - 240, 65, 233, 62, 253, 231, 234, 13, 233, 85, 20, 12, 240, 65, 233, 62, - 253, 231, 234, 13, 234, 29, 231, 102, 20, 12, 240, 65, 233, 62, 253, 231, - 234, 13, 234, 29, 231, 126, 20, 12, 240, 65, 233, 62, 253, 231, 234, 13, - 234, 29, 231, 127, 20, 12, 241, 69, 20, 12, 235, 126, 255, 105, 243, 37, - 20, 12, 235, 126, 255, 112, 243, 37, 20, 12, 31, 217, 20, 12, 242, 178, - 20, 12, 237, 238, 20, 12, 239, 28, 20, 12, 234, 251, 20, 12, 235, 190, - 20, 12, 236, 129, 20, 12, 234, 237, 20, 12, 236, 77, 238, 185, 20, 12, - 236, 97, 238, 185, 20, 12, 238, 31, 234, 249, 20, 12, 254, 223, 233, 248, - 17, 242, 222, 126, 235, 146, 17, 242, 222, 126, 235, 147, 17, 242, 222, - 126, 236, 122, 17, 242, 222, 126, 235, 148, 17, 242, 222, 126, 235, 149, - 17, 242, 222, 126, 236, 123, 17, 242, 222, 126, 235, 150, 17, 242, 222, - 126, 235, 151, 17, 242, 222, 126, 236, 124, 17, 242, 222, 126, 235, 7, - 17, 242, 222, 126, 234, 67, 17, 242, 222, 126, 234, 68, 17, 242, 222, - 126, 234, 69, 17, 242, 222, 126, 234, 70, 17, 242, 222, 126, 235, 8, 17, - 242, 222, 126, 235, 9, 17, 242, 222, 126, 234, 71, 17, 242, 222, 126, - 234, 72, 17, 242, 222, 126, 234, 73, 17, 242, 222, 126, 235, 10, 17, 242, - 222, 126, 235, 11, 17, 242, 222, 126, 235, 12, 17, 242, 222, 126, 234, - 74, 17, 242, 222, 126, 234, 75, 17, 242, 222, 126, 234, 76, 17, 242, 222, - 126, 234, 77, 17, 242, 222, 126, 234, 78, 17, 242, 222, 126, 234, 79, 17, - 242, 222, 126, 234, 80, 17, 232, 69, 126, 235, 146, 17, 232, 69, 126, - 235, 147, 17, 232, 69, 126, 235, 148, 17, 232, 69, 126, 235, 149, 17, - 232, 69, 126, 235, 150, 17, 232, 69, 126, 235, 151, 17, 232, 69, 126, - 234, 67, 17, 232, 69, 126, 234, 68, 17, 232, 69, 126, 234, 69, 17, 232, - 69, 126, 234, 70, 17, 232, 69, 126, 234, 71, 17, 232, 69, 126, 234, 72, - 17, 232, 69, 126, 234, 73, 17, 232, 69, 126, 234, 74, 17, 232, 69, 126, - 234, 75, 17, 232, 69, 126, 235, 13, 17, 232, 69, 126, 235, 14, 17, 232, - 69, 126, 235, 15, 17, 232, 69, 126, 235, 16, 17, 232, 69, 126, 235, 17, - 17, 232, 69, 126, 235, 18, 17, 232, 69, 126, 235, 19, 17, 232, 69, 126, - 235, 20, 17, 232, 69, 126, 235, 21, 17, 232, 69, 126, 235, 22, 17, 232, - 69, 126, 235, 23, 17, 232, 69, 126, 235, 24, 17, 232, 69, 126, 235, 25, - 17, 232, 69, 126, 235, 26, 17, 232, 69, 126, 235, 27, 17, 232, 69, 126, - 235, 28, 17, 232, 69, 126, 235, 29, 17, 232, 69, 126, 234, 76, 17, 232, - 69, 126, 234, 77, 17, 232, 69, 126, 234, 78, 17, 232, 69, 126, 234, 79, - 17, 232, 69, 126, 234, 80, 50, 17, 20, 237, 49, 50, 17, 20, 234, 82, 50, - 17, 20, 234, 62, 17, 20, 239, 116, 236, 184, 28, 240, 49, 240, 56, 28, - 237, 174, 240, 49, 240, 56, 28, 245, 203, 240, 49, 240, 56, 28, 238, 181, - 238, 139, 240, 56, 28, 238, 181, 241, 169, 240, 56, 28, 240, 49, 120, 28, - 238, 129, 120, 28, 248, 37, 238, 51, 120, 28, 241, 244, 120, 28, 237, 72, - 120, 28, 238, 193, 240, 147, 120, 28, 232, 122, 120, 28, 238, 252, 120, - 28, 233, 73, 120, 28, 235, 182, 248, 235, 120, 28, 231, 123, 128, 233, - 136, 120, 28, 233, 137, 120, 28, 232, 67, 120, 28, 235, 127, 120, 28, - 232, 192, 120, 28, 240, 215, 120, 28, 237, 91, 120, 28, 238, 189, 244, - 188, 120, 28, 237, 51, 120, 28, 234, 54, 120, 28, 237, 55, 120, 28, 237, - 250, 120, 28, 233, 229, 120, 28, 245, 79, 120, 28, 251, 125, 120, 28, - 233, 127, 120, 28, 234, 185, 120, 28, 239, 54, 120, 28, 239, 21, 120, 28, - 231, 122, 120, 28, 16, 233, 230, 120, 28, 237, 230, 120, 28, 239, 115, - 120, 28, 234, 101, 120, 28, 237, 189, 120, 28, 234, 193, 120, 28, 236, - 109, 120, 28, 239, 169, 120, 28, 236, 28, 120, 28, 234, 248, 120, 28, - 254, 190, 128, 241, 246, 120, 28, 235, 141, 120, 28, 245, 125, 153, 243, - 224, 120, 28, 233, 196, 120, 28, 242, 135, 120, 28, 234, 197, 120, 28, - 232, 164, 120, 28, 237, 232, 120, 28, 239, 174, 120, 28, 239, 76, 120, - 28, 238, 40, 128, 238, 46, 120, 28, 234, 103, 120, 28, 237, 23, 120, 28, - 236, 16, 120, 28, 242, 171, 120, 28, 231, 125, 120, 28, 240, 23, 240, - 201, 120, 28, 232, 167, 120, 28, 235, 124, 253, 247, 120, 28, 237, 204, - 120, 28, 231, 115, 120, 28, 231, 65, 120, 28, 241, 88, 120, 28, 240, 252, - 120, 28, 238, 6, 120, 28, 241, 180, 120, 28, 234, 109, 120, 28, 234, 108, - 120, 28, 237, 109, 120, 28, 233, 199, 120, 28, 234, 253, 120, 28, 236, - 107, 120, 28, 236, 33, 120, 28, 233, 69, 120, 28, 237, 88, 120, 28, 237, - 154, 120, 28, 232, 114, 120, 28, 233, 125, 120, 28, 255, 34, 253, 145, - 242, 177, 120, 28, 231, 124, 120, 28, 234, 217, 120, 28, 234, 191, 10, - 16, 5, 67, 10, 16, 5, 217, 10, 16, 5, 255, 18, 10, 16, 5, 209, 10, 16, 5, - 72, 10, 16, 5, 255, 19, 10, 16, 5, 210, 10, 16, 5, 192, 10, 16, 5, 71, - 10, 16, 5, 221, 10, 16, 5, 255, 15, 10, 16, 5, 162, 10, 16, 5, 173, 10, - 16, 5, 197, 10, 16, 5, 73, 10, 16, 5, 223, 10, 16, 5, 255, 20, 10, 16, 5, - 144, 10, 16, 5, 193, 10, 16, 5, 214, 10, 16, 5, 79, 10, 16, 5, 179, 10, - 16, 5, 255, 16, 10, 16, 5, 206, 10, 16, 5, 255, 14, 10, 16, 5, 255, 17, - 10, 16, 3, 67, 10, 16, 3, 217, 10, 16, 3, 255, 18, 10, 16, 3, 209, 10, - 16, 3, 72, 10, 16, 3, 255, 19, 10, 16, 3, 210, 10, 16, 3, 192, 10, 16, 3, - 71, 10, 16, 3, 221, 10, 16, 3, 255, 15, 10, 16, 3, 162, 10, 16, 3, 173, - 10, 16, 3, 197, 10, 16, 3, 73, 10, 16, 3, 223, 10, 16, 3, 255, 20, 10, - 16, 3, 144, 10, 16, 3, 193, 10, 16, 3, 214, 10, 16, 3, 79, 10, 16, 3, - 179, 10, 16, 3, 255, 16, 10, 16, 3, 206, 10, 16, 3, 255, 14, 10, 16, 3, - 255, 17, 10, 24, 5, 67, 10, 24, 5, 217, 10, 24, 5, 255, 18, 10, 24, 5, - 209, 10, 24, 5, 72, 10, 24, 5, 255, 19, 10, 24, 5, 210, 10, 24, 5, 192, - 10, 24, 5, 71, 10, 24, 5, 221, 10, 24, 5, 255, 15, 10, 24, 5, 162, 10, - 24, 5, 173, 10, 24, 5, 197, 10, 24, 5, 73, 10, 24, 5, 223, 10, 24, 5, - 255, 20, 10, 24, 5, 144, 10, 24, 5, 193, 10, 24, 5, 214, 10, 24, 5, 79, - 10, 24, 5, 179, 10, 24, 5, 255, 16, 10, 24, 5, 206, 10, 24, 5, 255, 14, - 10, 24, 5, 255, 17, 10, 24, 3, 67, 10, 24, 3, 217, 10, 24, 3, 255, 18, - 10, 24, 3, 209, 10, 24, 3, 72, 10, 24, 3, 255, 19, 10, 24, 3, 210, 10, - 24, 3, 71, 10, 24, 3, 221, 10, 24, 3, 255, 15, 10, 24, 3, 162, 10, 24, 3, - 173, 10, 24, 3, 197, 10, 24, 3, 73, 10, 24, 3, 223, 10, 24, 3, 255, 20, - 10, 24, 3, 144, 10, 24, 3, 193, 10, 24, 3, 214, 10, 24, 3, 79, 10, 24, 3, - 179, 10, 24, 3, 255, 16, 10, 24, 3, 206, 10, 24, 3, 255, 14, 10, 24, 3, - 255, 17, 10, 16, 24, 5, 67, 10, 16, 24, 5, 217, 10, 16, 24, 5, 255, 18, - 10, 16, 24, 5, 209, 10, 16, 24, 5, 72, 10, 16, 24, 5, 255, 19, 10, 16, - 24, 5, 210, 10, 16, 24, 5, 192, 10, 16, 24, 5, 71, 10, 16, 24, 5, 221, - 10, 16, 24, 5, 255, 15, 10, 16, 24, 5, 162, 10, 16, 24, 5, 173, 10, 16, - 24, 5, 197, 10, 16, 24, 5, 73, 10, 16, 24, 5, 223, 10, 16, 24, 5, 255, - 20, 10, 16, 24, 5, 144, 10, 16, 24, 5, 193, 10, 16, 24, 5, 214, 10, 16, - 24, 5, 79, 10, 16, 24, 5, 179, 10, 16, 24, 5, 255, 16, 10, 16, 24, 5, - 206, 10, 16, 24, 5, 255, 14, 10, 16, 24, 5, 255, 17, 10, 16, 24, 3, 67, - 10, 16, 24, 3, 217, 10, 16, 24, 3, 255, 18, 10, 16, 24, 3, 209, 10, 16, - 24, 3, 72, 10, 16, 24, 3, 255, 19, 10, 16, 24, 3, 210, 10, 16, 24, 3, - 192, 10, 16, 24, 3, 71, 10, 16, 24, 3, 221, 10, 16, 24, 3, 255, 15, 10, - 16, 24, 3, 162, 10, 16, 24, 3, 173, 10, 16, 24, 3, 197, 10, 16, 24, 3, - 73, 10, 16, 24, 3, 223, 10, 16, 24, 3, 255, 20, 10, 16, 24, 3, 144, 10, - 16, 24, 3, 193, 10, 16, 24, 3, 214, 10, 16, 24, 3, 79, 10, 16, 24, 3, - 179, 10, 16, 24, 3, 255, 16, 10, 16, 24, 3, 206, 10, 16, 24, 3, 255, 14, - 10, 16, 24, 3, 255, 17, 10, 84, 5, 67, 10, 84, 5, 255, 18, 10, 84, 5, - 209, 10, 84, 5, 210, 10, 84, 5, 221, 10, 84, 5, 255, 15, 10, 84, 5, 197, - 10, 84, 5, 73, 10, 84, 5, 223, 10, 84, 5, 255, 20, 10, 84, 5, 193, 10, - 84, 5, 214, 10, 84, 5, 79, 10, 84, 5, 179, 10, 84, 5, 255, 16, 10, 84, 5, - 206, 10, 84, 5, 255, 14, 10, 84, 5, 255, 17, 10, 84, 3, 67, 10, 84, 3, - 217, 10, 84, 3, 255, 18, 10, 84, 3, 209, 10, 84, 3, 255, 19, 10, 84, 3, - 192, 10, 84, 3, 71, 10, 84, 3, 221, 10, 84, 3, 255, 15, 10, 84, 3, 162, - 10, 84, 3, 173, 10, 84, 3, 197, 10, 84, 3, 223, 10, 84, 3, 255, 20, 10, - 84, 3, 144, 10, 84, 3, 193, 10, 84, 3, 214, 10, 84, 3, 79, 10, 84, 3, - 179, 10, 84, 3, 255, 16, 10, 84, 3, 206, 10, 84, 3, 255, 14, 10, 84, 3, - 255, 17, 10, 16, 84, 5, 67, 10, 16, 84, 5, 217, 10, 16, 84, 5, 255, 18, - 10, 16, 84, 5, 209, 10, 16, 84, 5, 72, 10, 16, 84, 5, 255, 19, 10, 16, - 84, 5, 210, 10, 16, 84, 5, 192, 10, 16, 84, 5, 71, 10, 16, 84, 5, 221, - 10, 16, 84, 5, 255, 15, 10, 16, 84, 5, 162, 10, 16, 84, 5, 173, 10, 16, - 84, 5, 197, 10, 16, 84, 5, 73, 10, 16, 84, 5, 223, 10, 16, 84, 5, 255, - 20, 10, 16, 84, 5, 144, 10, 16, 84, 5, 193, 10, 16, 84, 5, 214, 10, 16, - 84, 5, 79, 10, 16, 84, 5, 179, 10, 16, 84, 5, 255, 16, 10, 16, 84, 5, - 206, 10, 16, 84, 5, 255, 14, 10, 16, 84, 5, 255, 17, 10, 16, 84, 3, 67, - 10, 16, 84, 3, 217, 10, 16, 84, 3, 255, 18, 10, 16, 84, 3, 209, 10, 16, - 84, 3, 72, 10, 16, 84, 3, 255, 19, 10, 16, 84, 3, 210, 10, 16, 84, 3, - 192, 10, 16, 84, 3, 71, 10, 16, 84, 3, 221, 10, 16, 84, 3, 255, 15, 10, - 16, 84, 3, 162, 10, 16, 84, 3, 173, 10, 16, 84, 3, 197, 10, 16, 84, 3, - 73, 10, 16, 84, 3, 223, 10, 16, 84, 3, 255, 20, 10, 16, 84, 3, 144, 10, - 16, 84, 3, 193, 10, 16, 84, 3, 214, 10, 16, 84, 3, 79, 10, 16, 84, 3, - 179, 10, 16, 84, 3, 255, 16, 10, 16, 84, 3, 206, 10, 16, 84, 3, 255, 14, - 10, 16, 84, 3, 255, 17, 10, 93, 5, 67, 10, 93, 5, 217, 10, 93, 5, 209, - 10, 93, 5, 72, 10, 93, 5, 255, 19, 10, 93, 5, 210, 10, 93, 5, 221, 10, - 93, 5, 255, 15, 10, 93, 5, 162, 10, 93, 5, 173, 10, 93, 5, 197, 10, 93, - 5, 73, 10, 93, 5, 223, 10, 93, 5, 255, 20, 10, 93, 5, 193, 10, 93, 5, - 214, 10, 93, 5, 79, 10, 93, 5, 179, 10, 93, 5, 255, 16, 10, 93, 5, 206, - 10, 93, 5, 255, 14, 10, 93, 3, 67, 10, 93, 3, 217, 10, 93, 3, 255, 18, - 10, 93, 3, 209, 10, 93, 3, 72, 10, 93, 3, 255, 19, 10, 93, 3, 210, 10, - 93, 3, 192, 10, 93, 3, 71, 10, 93, 3, 221, 10, 93, 3, 255, 15, 10, 93, 3, - 162, 10, 93, 3, 173, 10, 93, 3, 197, 10, 93, 3, 73, 10, 93, 3, 223, 10, - 93, 3, 255, 20, 10, 93, 3, 144, 10, 93, 3, 193, 10, 93, 3, 214, 10, 93, - 3, 79, 10, 93, 3, 179, 10, 93, 3, 255, 16, 10, 93, 3, 206, 10, 93, 3, - 255, 14, 10, 93, 3, 255, 17, 10, 138, 5, 67, 10, 138, 5, 217, 10, 138, 5, - 209, 10, 138, 5, 72, 10, 138, 5, 255, 19, 10, 138, 5, 210, 10, 138, 5, - 71, 10, 138, 5, 221, 10, 138, 5, 255, 15, 10, 138, 5, 162, 10, 138, 5, - 173, 10, 138, 5, 73, 10, 138, 5, 193, 10, 138, 5, 214, 10, 138, 5, 79, - 10, 138, 5, 179, 10, 138, 5, 255, 16, 10, 138, 5, 206, 10, 138, 5, 255, - 14, 10, 138, 3, 67, 10, 138, 3, 217, 10, 138, 3, 255, 18, 10, 138, 3, - 209, 10, 138, 3, 72, 10, 138, 3, 255, 19, 10, 138, 3, 210, 10, 138, 3, - 192, 10, 138, 3, 71, 10, 138, 3, 221, 10, 138, 3, 255, 15, 10, 138, 3, - 162, 10, 138, 3, 173, 10, 138, 3, 197, 10, 138, 3, 73, 10, 138, 3, 223, - 10, 138, 3, 255, 20, 10, 138, 3, 144, 10, 138, 3, 193, 10, 138, 3, 214, - 10, 138, 3, 79, 10, 138, 3, 179, 10, 138, 3, 255, 16, 10, 138, 3, 206, - 10, 138, 3, 255, 14, 10, 138, 3, 255, 17, 10, 16, 93, 5, 67, 10, 16, 93, - 5, 217, 10, 16, 93, 5, 255, 18, 10, 16, 93, 5, 209, 10, 16, 93, 5, 72, - 10, 16, 93, 5, 255, 19, 10, 16, 93, 5, 210, 10, 16, 93, 5, 192, 10, 16, - 93, 5, 71, 10, 16, 93, 5, 221, 10, 16, 93, 5, 255, 15, 10, 16, 93, 5, - 162, 10, 16, 93, 5, 173, 10, 16, 93, 5, 197, 10, 16, 93, 5, 73, 10, 16, - 93, 5, 223, 10, 16, 93, 5, 255, 20, 10, 16, 93, 5, 144, 10, 16, 93, 5, - 193, 10, 16, 93, 5, 214, 10, 16, 93, 5, 79, 10, 16, 93, 5, 179, 10, 16, - 93, 5, 255, 16, 10, 16, 93, 5, 206, 10, 16, 93, 5, 255, 14, 10, 16, 93, - 5, 255, 17, 10, 16, 93, 3, 67, 10, 16, 93, 3, 217, 10, 16, 93, 3, 255, - 18, 10, 16, 93, 3, 209, 10, 16, 93, 3, 72, 10, 16, 93, 3, 255, 19, 10, - 16, 93, 3, 210, 10, 16, 93, 3, 192, 10, 16, 93, 3, 71, 10, 16, 93, 3, - 221, 10, 16, 93, 3, 255, 15, 10, 16, 93, 3, 162, 10, 16, 93, 3, 173, 10, - 16, 93, 3, 197, 10, 16, 93, 3, 73, 10, 16, 93, 3, 223, 10, 16, 93, 3, - 255, 20, 10, 16, 93, 3, 144, 10, 16, 93, 3, 193, 10, 16, 93, 3, 214, 10, - 16, 93, 3, 79, 10, 16, 93, 3, 179, 10, 16, 93, 3, 255, 16, 10, 16, 93, 3, - 206, 10, 16, 93, 3, 255, 14, 10, 16, 93, 3, 255, 17, 10, 27, 5, 67, 10, - 27, 5, 217, 10, 27, 5, 255, 18, 10, 27, 5, 209, 10, 27, 5, 72, 10, 27, 5, - 255, 19, 10, 27, 5, 210, 10, 27, 5, 192, 10, 27, 5, 71, 10, 27, 5, 221, - 10, 27, 5, 255, 15, 10, 27, 5, 162, 10, 27, 5, 173, 10, 27, 5, 197, 10, - 27, 5, 73, 10, 27, 5, 223, 10, 27, 5, 255, 20, 10, 27, 5, 144, 10, 27, 5, - 193, 10, 27, 5, 214, 10, 27, 5, 79, 10, 27, 5, 179, 10, 27, 5, 255, 16, - 10, 27, 5, 206, 10, 27, 5, 255, 14, 10, 27, 5, 255, 17, 10, 27, 3, 67, - 10, 27, 3, 217, 10, 27, 3, 255, 18, 10, 27, 3, 209, 10, 27, 3, 72, 10, - 27, 3, 255, 19, 10, 27, 3, 210, 10, 27, 3, 192, 10, 27, 3, 71, 10, 27, 3, - 221, 10, 27, 3, 255, 15, 10, 27, 3, 162, 10, 27, 3, 173, 10, 27, 3, 197, - 10, 27, 3, 73, 10, 27, 3, 223, 10, 27, 3, 255, 20, 10, 27, 3, 144, 10, - 27, 3, 193, 10, 27, 3, 214, 10, 27, 3, 79, 10, 27, 3, 179, 10, 27, 3, - 255, 16, 10, 27, 3, 206, 10, 27, 3, 255, 14, 10, 27, 3, 255, 17, 10, 27, - 16, 5, 67, 10, 27, 16, 5, 217, 10, 27, 16, 5, 255, 18, 10, 27, 16, 5, - 209, 10, 27, 16, 5, 72, 10, 27, 16, 5, 255, 19, 10, 27, 16, 5, 210, 10, - 27, 16, 5, 192, 10, 27, 16, 5, 71, 10, 27, 16, 5, 221, 10, 27, 16, 5, - 255, 15, 10, 27, 16, 5, 162, 10, 27, 16, 5, 173, 10, 27, 16, 5, 197, 10, - 27, 16, 5, 73, 10, 27, 16, 5, 223, 10, 27, 16, 5, 255, 20, 10, 27, 16, 5, - 144, 10, 27, 16, 5, 193, 10, 27, 16, 5, 214, 10, 27, 16, 5, 79, 10, 27, - 16, 5, 179, 10, 27, 16, 5, 255, 16, 10, 27, 16, 5, 206, 10, 27, 16, 5, - 255, 14, 10, 27, 16, 5, 255, 17, 10, 27, 16, 3, 67, 10, 27, 16, 3, 217, - 10, 27, 16, 3, 255, 18, 10, 27, 16, 3, 209, 10, 27, 16, 3, 72, 10, 27, - 16, 3, 255, 19, 10, 27, 16, 3, 210, 10, 27, 16, 3, 192, 10, 27, 16, 3, - 71, 10, 27, 16, 3, 221, 10, 27, 16, 3, 255, 15, 10, 27, 16, 3, 162, 10, - 27, 16, 3, 173, 10, 27, 16, 3, 197, 10, 27, 16, 3, 73, 10, 27, 16, 3, - 223, 10, 27, 16, 3, 255, 20, 10, 27, 16, 3, 144, 10, 27, 16, 3, 193, 10, - 27, 16, 3, 214, 10, 27, 16, 3, 79, 10, 27, 16, 3, 179, 10, 27, 16, 3, - 255, 16, 10, 27, 16, 3, 206, 10, 27, 16, 3, 255, 14, 10, 27, 16, 3, 255, - 17, 10, 27, 24, 5, 67, 10, 27, 24, 5, 217, 10, 27, 24, 5, 255, 18, 10, - 27, 24, 5, 209, 10, 27, 24, 5, 72, 10, 27, 24, 5, 255, 19, 10, 27, 24, 5, - 210, 10, 27, 24, 5, 192, 10, 27, 24, 5, 71, 10, 27, 24, 5, 221, 10, 27, - 24, 5, 255, 15, 10, 27, 24, 5, 162, 10, 27, 24, 5, 173, 10, 27, 24, 5, - 197, 10, 27, 24, 5, 73, 10, 27, 24, 5, 223, 10, 27, 24, 5, 255, 20, 10, - 27, 24, 5, 144, 10, 27, 24, 5, 193, 10, 27, 24, 5, 214, 10, 27, 24, 5, - 79, 10, 27, 24, 5, 179, 10, 27, 24, 5, 255, 16, 10, 27, 24, 5, 206, 10, - 27, 24, 5, 255, 14, 10, 27, 24, 5, 255, 17, 10, 27, 24, 3, 67, 10, 27, - 24, 3, 217, 10, 27, 24, 3, 255, 18, 10, 27, 24, 3, 209, 10, 27, 24, 3, - 72, 10, 27, 24, 3, 255, 19, 10, 27, 24, 3, 210, 10, 27, 24, 3, 192, 10, - 27, 24, 3, 71, 10, 27, 24, 3, 221, 10, 27, 24, 3, 255, 15, 10, 27, 24, 3, - 162, 10, 27, 24, 3, 173, 10, 27, 24, 3, 197, 10, 27, 24, 3, 73, 10, 27, - 24, 3, 223, 10, 27, 24, 3, 255, 20, 10, 27, 24, 3, 144, 10, 27, 24, 3, - 193, 10, 27, 24, 3, 214, 10, 27, 24, 3, 79, 10, 27, 24, 3, 179, 10, 27, - 24, 3, 255, 16, 10, 27, 24, 3, 206, 10, 27, 24, 3, 255, 14, 10, 27, 24, - 3, 255, 17, 10, 27, 16, 24, 5, 67, 10, 27, 16, 24, 5, 217, 10, 27, 16, - 24, 5, 255, 18, 10, 27, 16, 24, 5, 209, 10, 27, 16, 24, 5, 72, 10, 27, - 16, 24, 5, 255, 19, 10, 27, 16, 24, 5, 210, 10, 27, 16, 24, 5, 192, 10, - 27, 16, 24, 5, 71, 10, 27, 16, 24, 5, 221, 10, 27, 16, 24, 5, 255, 15, - 10, 27, 16, 24, 5, 162, 10, 27, 16, 24, 5, 173, 10, 27, 16, 24, 5, 197, - 10, 27, 16, 24, 5, 73, 10, 27, 16, 24, 5, 223, 10, 27, 16, 24, 5, 255, - 20, 10, 27, 16, 24, 5, 144, 10, 27, 16, 24, 5, 193, 10, 27, 16, 24, 5, - 214, 10, 27, 16, 24, 5, 79, 10, 27, 16, 24, 5, 179, 10, 27, 16, 24, 5, - 255, 16, 10, 27, 16, 24, 5, 206, 10, 27, 16, 24, 5, 255, 14, 10, 27, 16, - 24, 5, 255, 17, 10, 27, 16, 24, 3, 67, 10, 27, 16, 24, 3, 217, 10, 27, - 16, 24, 3, 255, 18, 10, 27, 16, 24, 3, 209, 10, 27, 16, 24, 3, 72, 10, - 27, 16, 24, 3, 255, 19, 10, 27, 16, 24, 3, 210, 10, 27, 16, 24, 3, 192, - 10, 27, 16, 24, 3, 71, 10, 27, 16, 24, 3, 221, 10, 27, 16, 24, 3, 255, - 15, 10, 27, 16, 24, 3, 162, 10, 27, 16, 24, 3, 173, 10, 27, 16, 24, 3, - 197, 10, 27, 16, 24, 3, 73, 10, 27, 16, 24, 3, 223, 10, 27, 16, 24, 3, - 255, 20, 10, 27, 16, 24, 3, 144, 10, 27, 16, 24, 3, 193, 10, 27, 16, 24, - 3, 214, 10, 27, 16, 24, 3, 79, 10, 27, 16, 24, 3, 179, 10, 27, 16, 24, 3, - 255, 16, 10, 27, 16, 24, 3, 206, 10, 27, 16, 24, 3, 255, 14, 10, 27, 16, - 24, 3, 255, 17, 10, 160, 5, 67, 10, 160, 5, 217, 10, 160, 5, 255, 18, 10, - 160, 5, 209, 10, 160, 5, 72, 10, 160, 5, 255, 19, 10, 160, 5, 210, 10, - 160, 5, 192, 10, 160, 5, 71, 10, 160, 5, 221, 10, 160, 5, 255, 15, 10, - 160, 5, 162, 10, 160, 5, 173, 10, 160, 5, 197, 10, 160, 5, 73, 10, 160, - 5, 223, 10, 160, 5, 255, 20, 10, 160, 5, 144, 10, 160, 5, 193, 10, 160, - 5, 214, 10, 160, 5, 79, 10, 160, 5, 179, 10, 160, 5, 255, 16, 10, 160, 5, - 206, 10, 160, 5, 255, 14, 10, 160, 5, 255, 17, 10, 160, 3, 67, 10, 160, - 3, 217, 10, 160, 3, 255, 18, 10, 160, 3, 209, 10, 160, 3, 72, 10, 160, 3, - 255, 19, 10, 160, 3, 210, 10, 160, 3, 192, 10, 160, 3, 71, 10, 160, 3, - 221, 10, 160, 3, 255, 15, 10, 160, 3, 162, 10, 160, 3, 173, 10, 160, 3, - 197, 10, 160, 3, 73, 10, 160, 3, 223, 10, 160, 3, 255, 20, 10, 160, 3, - 144, 10, 160, 3, 193, 10, 160, 3, 214, 10, 160, 3, 79, 10, 160, 3, 179, - 10, 160, 3, 255, 16, 10, 160, 3, 206, 10, 160, 3, 255, 14, 10, 160, 3, - 255, 17, 10, 24, 3, 238, 70, 71, 10, 24, 3, 238, 70, 221, 10, 16, 5, 240, - 22, 10, 16, 5, 242, 242, 10, 16, 5, 240, 10, 10, 16, 5, 240, 28, 10, 16, - 5, 236, 165, 10, 16, 5, 242, 251, 10, 16, 5, 248, 87, 10, 16, 5, 240, 38, - 10, 16, 5, 242, 237, 10, 16, 5, 240, 41, 10, 16, 5, 240, 33, 10, 16, 5, - 253, 154, 10, 16, 5, 253, 150, 10, 16, 5, 253, 188, 10, 16, 5, 236, 169, - 10, 16, 5, 253, 147, 10, 16, 5, 248, 73, 10, 16, 5, 243, 0, 91, 10, 16, - 5, 240, 21, 10, 16, 5, 248, 85, 10, 16, 5, 236, 160, 10, 16, 5, 248, 68, - 10, 16, 5, 248, 67, 10, 16, 5, 248, 69, 10, 16, 5, 240, 20, 10, 16, 240, - 79, 10, 16, 3, 240, 22, 10, 16, 3, 242, 242, 10, 16, 3, 240, 10, 10, 16, - 3, 240, 28, 10, 16, 3, 236, 165, 10, 16, 3, 242, 251, 10, 16, 3, 248, 87, - 10, 16, 3, 240, 38, 10, 16, 3, 242, 237, 10, 16, 3, 240, 41, 10, 16, 3, - 240, 33, 10, 16, 3, 253, 154, 10, 16, 3, 253, 150, 10, 16, 3, 253, 188, - 10, 16, 3, 236, 169, 10, 16, 3, 253, 147, 10, 16, 3, 248, 73, 10, 16, 3, - 30, 240, 21, 10, 16, 3, 240, 21, 10, 16, 3, 248, 85, 10, 16, 3, 236, 160, - 10, 16, 3, 248, 68, 10, 16, 3, 248, 67, 10, 16, 3, 248, 69, 10, 16, 3, - 240, 20, 10, 16, 238, 100, 231, 90, 10, 16, 238, 57, 91, 10, 16, 243, 0, - 91, 10, 16, 243, 29, 91, 10, 16, 254, 11, 91, 10, 16, 253, 218, 91, 10, - 16, 255, 29, 91, 10, 24, 5, 240, 22, 10, 24, 5, 242, 242, 10, 24, 5, 240, - 10, 10, 24, 5, 240, 28, 10, 24, 5, 236, 165, 10, 24, 5, 242, 251, 10, 24, - 5, 248, 87, 10, 24, 5, 240, 38, 10, 24, 5, 242, 237, 10, 24, 5, 240, 41, - 10, 24, 5, 240, 33, 10, 24, 5, 253, 154, 10, 24, 5, 253, 150, 10, 24, 5, - 253, 188, 10, 24, 5, 236, 169, 10, 24, 5, 253, 147, 10, 24, 5, 248, 73, - 10, 24, 5, 243, 0, 91, 10, 24, 5, 240, 21, 10, 24, 5, 248, 85, 10, 24, 5, - 236, 160, 10, 24, 5, 248, 68, 10, 24, 5, 248, 67, 10, 24, 5, 248, 69, 10, - 24, 5, 240, 20, 10, 24, 240, 79, 10, 24, 3, 240, 22, 10, 24, 3, 242, 242, - 10, 24, 3, 240, 10, 10, 24, 3, 240, 28, 10, 24, 3, 236, 165, 10, 24, 3, - 242, 251, 10, 24, 3, 248, 87, 10, 24, 3, 240, 38, 10, 24, 3, 242, 237, - 10, 24, 3, 240, 41, 10, 24, 3, 240, 33, 10, 24, 3, 253, 154, 10, 24, 3, - 253, 150, 10, 24, 3, 253, 188, 10, 24, 3, 236, 169, 10, 24, 3, 253, 147, - 10, 24, 3, 248, 73, 10, 24, 3, 30, 240, 21, 10, 24, 3, 240, 21, 10, 24, - 3, 248, 85, 10, 24, 3, 236, 160, 10, 24, 3, 248, 68, 10, 24, 3, 248, 67, - 10, 24, 3, 248, 69, 10, 24, 3, 240, 20, 10, 24, 238, 100, 231, 90, 10, - 24, 238, 57, 91, 10, 24, 243, 0, 91, 10, 24, 243, 29, 91, 10, 24, 254, - 11, 91, 10, 24, 253, 218, 91, 10, 24, 255, 29, 91, 10, 16, 24, 5, 240, - 22, 10, 16, 24, 5, 242, 242, 10, 16, 24, 5, 240, 10, 10, 16, 24, 5, 240, - 28, 10, 16, 24, 5, 236, 165, 10, 16, 24, 5, 242, 251, 10, 16, 24, 5, 248, - 87, 10, 16, 24, 5, 240, 38, 10, 16, 24, 5, 242, 237, 10, 16, 24, 5, 240, - 41, 10, 16, 24, 5, 240, 33, 10, 16, 24, 5, 253, 154, 10, 16, 24, 5, 253, - 150, 10, 16, 24, 5, 253, 188, 10, 16, 24, 5, 236, 169, 10, 16, 24, 5, - 253, 147, 10, 16, 24, 5, 248, 73, 10, 16, 24, 5, 243, 0, 91, 10, 16, 24, - 5, 240, 21, 10, 16, 24, 5, 248, 85, 10, 16, 24, 5, 236, 160, 10, 16, 24, - 5, 248, 68, 10, 16, 24, 5, 248, 67, 10, 16, 24, 5, 248, 69, 10, 16, 24, - 5, 240, 20, 10, 16, 24, 240, 79, 10, 16, 24, 3, 240, 22, 10, 16, 24, 3, - 242, 242, 10, 16, 24, 3, 240, 10, 10, 16, 24, 3, 240, 28, 10, 16, 24, 3, - 236, 165, 10, 16, 24, 3, 242, 251, 10, 16, 24, 3, 248, 87, 10, 16, 24, 3, - 240, 38, 10, 16, 24, 3, 242, 237, 10, 16, 24, 3, 240, 41, 10, 16, 24, 3, - 240, 33, 10, 16, 24, 3, 253, 154, 10, 16, 24, 3, 253, 150, 10, 16, 24, 3, - 253, 188, 10, 16, 24, 3, 236, 169, 10, 16, 24, 3, 253, 147, 10, 16, 24, - 3, 248, 73, 10, 16, 24, 3, 30, 240, 21, 10, 16, 24, 3, 240, 21, 10, 16, - 24, 3, 248, 85, 10, 16, 24, 3, 236, 160, 10, 16, 24, 3, 248, 68, 10, 16, - 24, 3, 248, 67, 10, 16, 24, 3, 248, 69, 10, 16, 24, 3, 240, 20, 10, 16, - 24, 238, 100, 231, 90, 10, 16, 24, 238, 57, 91, 10, 16, 24, 243, 0, 91, - 10, 16, 24, 243, 29, 91, 10, 16, 24, 254, 11, 91, 10, 16, 24, 253, 218, - 91, 10, 16, 24, 255, 29, 91, 10, 27, 16, 5, 240, 22, 10, 27, 16, 5, 242, - 242, 10, 27, 16, 5, 240, 10, 10, 27, 16, 5, 240, 28, 10, 27, 16, 5, 236, - 165, 10, 27, 16, 5, 242, 251, 10, 27, 16, 5, 248, 87, 10, 27, 16, 5, 240, - 38, 10, 27, 16, 5, 242, 237, 10, 27, 16, 5, 240, 41, 10, 27, 16, 5, 240, - 33, 10, 27, 16, 5, 253, 154, 10, 27, 16, 5, 253, 150, 10, 27, 16, 5, 253, - 188, 10, 27, 16, 5, 236, 169, 10, 27, 16, 5, 253, 147, 10, 27, 16, 5, - 248, 73, 10, 27, 16, 5, 243, 0, 91, 10, 27, 16, 5, 240, 21, 10, 27, 16, - 5, 248, 85, 10, 27, 16, 5, 236, 160, 10, 27, 16, 5, 248, 68, 10, 27, 16, - 5, 248, 67, 10, 27, 16, 5, 248, 69, 10, 27, 16, 5, 240, 20, 10, 27, 16, - 240, 79, 10, 27, 16, 3, 240, 22, 10, 27, 16, 3, 242, 242, 10, 27, 16, 3, - 240, 10, 10, 27, 16, 3, 240, 28, 10, 27, 16, 3, 236, 165, 10, 27, 16, 3, - 242, 251, 10, 27, 16, 3, 248, 87, 10, 27, 16, 3, 240, 38, 10, 27, 16, 3, - 242, 237, 10, 27, 16, 3, 240, 41, 10, 27, 16, 3, 240, 33, 10, 27, 16, 3, - 253, 154, 10, 27, 16, 3, 253, 150, 10, 27, 16, 3, 253, 188, 10, 27, 16, - 3, 236, 169, 10, 27, 16, 3, 253, 147, 10, 27, 16, 3, 248, 73, 10, 27, 16, - 3, 30, 240, 21, 10, 27, 16, 3, 240, 21, 10, 27, 16, 3, 248, 85, 10, 27, - 16, 3, 236, 160, 10, 27, 16, 3, 248, 68, 10, 27, 16, 3, 248, 67, 10, 27, - 16, 3, 248, 69, 10, 27, 16, 3, 240, 20, 10, 27, 16, 238, 100, 231, 90, - 10, 27, 16, 238, 57, 91, 10, 27, 16, 243, 0, 91, 10, 27, 16, 243, 29, 91, - 10, 27, 16, 254, 11, 91, 10, 27, 16, 253, 218, 91, 10, 27, 16, 255, 29, - 91, 10, 27, 16, 24, 5, 240, 22, 10, 27, 16, 24, 5, 242, 242, 10, 27, 16, - 24, 5, 240, 10, 10, 27, 16, 24, 5, 240, 28, 10, 27, 16, 24, 5, 236, 165, - 10, 27, 16, 24, 5, 242, 251, 10, 27, 16, 24, 5, 248, 87, 10, 27, 16, 24, - 5, 240, 38, 10, 27, 16, 24, 5, 242, 237, 10, 27, 16, 24, 5, 240, 41, 10, - 27, 16, 24, 5, 240, 33, 10, 27, 16, 24, 5, 253, 154, 10, 27, 16, 24, 5, - 253, 150, 10, 27, 16, 24, 5, 253, 188, 10, 27, 16, 24, 5, 236, 169, 10, - 27, 16, 24, 5, 253, 147, 10, 27, 16, 24, 5, 248, 73, 10, 27, 16, 24, 5, - 243, 0, 91, 10, 27, 16, 24, 5, 240, 21, 10, 27, 16, 24, 5, 248, 85, 10, - 27, 16, 24, 5, 236, 160, 10, 27, 16, 24, 5, 248, 68, 10, 27, 16, 24, 5, - 248, 67, 10, 27, 16, 24, 5, 248, 69, 10, 27, 16, 24, 5, 240, 20, 10, 27, - 16, 24, 240, 79, 10, 27, 16, 24, 3, 240, 22, 10, 27, 16, 24, 3, 242, 242, - 10, 27, 16, 24, 3, 240, 10, 10, 27, 16, 24, 3, 240, 28, 10, 27, 16, 24, - 3, 236, 165, 10, 27, 16, 24, 3, 242, 251, 10, 27, 16, 24, 3, 248, 87, 10, - 27, 16, 24, 3, 240, 38, 10, 27, 16, 24, 3, 242, 237, 10, 27, 16, 24, 3, - 240, 41, 10, 27, 16, 24, 3, 240, 33, 10, 27, 16, 24, 3, 253, 154, 10, 27, - 16, 24, 3, 253, 150, 10, 27, 16, 24, 3, 253, 188, 10, 27, 16, 24, 3, 236, - 169, 10, 27, 16, 24, 3, 253, 147, 10, 27, 16, 24, 3, 248, 73, 10, 27, 16, - 24, 3, 30, 240, 21, 10, 27, 16, 24, 3, 240, 21, 10, 27, 16, 24, 3, 248, - 85, 10, 27, 16, 24, 3, 236, 160, 10, 27, 16, 24, 3, 248, 68, 10, 27, 16, - 24, 3, 248, 67, 10, 27, 16, 24, 3, 248, 69, 10, 27, 16, 24, 3, 240, 20, - 10, 27, 16, 24, 238, 100, 231, 90, 10, 27, 16, 24, 238, 57, 91, 10, 27, - 16, 24, 243, 0, 91, 10, 27, 16, 24, 243, 29, 91, 10, 27, 16, 24, 254, 11, - 91, 10, 27, 16, 24, 253, 218, 91, 10, 27, 16, 24, 255, 29, 91, 10, 16, - 26, 242, 217, 10, 16, 26, 127, 10, 16, 26, 111, 10, 16, 26, 166, 10, 16, - 26, 177, 10, 16, 26, 176, 10, 16, 26, 187, 10, 16, 26, 203, 10, 16, 26, - 195, 10, 16, 26, 202, 10, 138, 26, 242, 217, 10, 138, 26, 127, 10, 138, - 26, 111, 10, 138, 26, 166, 10, 138, 26, 177, 10, 138, 26, 176, 10, 138, - 26, 187, 10, 138, 26, 203, 10, 138, 26, 195, 10, 138, 26, 202, 10, 27, - 26, 242, 217, 10, 27, 26, 127, 10, 27, 26, 111, 10, 27, 26, 166, 10, 27, - 26, 177, 10, 27, 26, 176, 10, 27, 26, 187, 10, 27, 26, 203, 10, 27, 26, - 195, 10, 27, 26, 202, 10, 27, 16, 26, 242, 217, 10, 27, 16, 26, 127, 10, - 27, 16, 26, 111, 10, 27, 16, 26, 166, 10, 27, 16, 26, 177, 10, 27, 16, - 26, 176, 10, 27, 16, 26, 187, 10, 27, 16, 26, 203, 10, 27, 16, 26, 195, - 10, 27, 16, 26, 202, 10, 160, 26, 242, 217, 10, 160, 26, 127, 10, 160, - 26, 111, 10, 160, 26, 166, 10, 160, 26, 177, 10, 160, 26, 176, 10, 160, - 26, 187, 10, 160, 26, 203, 10, 160, 26, 195, 10, 160, 26, 202, 7, 9, 227, - 16, 7, 9, 227, 17, 7, 9, 227, 18, 7, 9, 227, 19, 7, 9, 227, 20, 7, 9, - 227, 21, 7, 9, 227, 22, 7, 9, 227, 23, 7, 9, 227, 24, 7, 9, 227, 25, 7, - 9, 227, 26, 7, 9, 227, 27, 7, 9, 227, 28, 7, 9, 227, 29, 7, 9, 227, 30, - 7, 9, 227, 31, 7, 9, 227, 32, 7, 9, 227, 33, 7, 9, 227, 34, 7, 9, 227, - 35, 7, 9, 227, 36, 7, 9, 227, 37, 7, 9, 227, 38, 7, 9, 227, 39, 7, 9, - 227, 40, 7, 9, 227, 41, 7, 9, 227, 42, 7, 9, 227, 43, 7, 9, 227, 44, 7, - 9, 227, 45, 7, 9, 227, 46, 7, 9, 227, 47, 7, 9, 227, 48, 7, 9, 227, 49, - 7, 9, 227, 50, 7, 9, 227, 51, 7, 9, 227, 52, 7, 9, 227, 53, 7, 9, 227, - 54, 7, 9, 227, 55, 7, 9, 227, 56, 7, 9, 227, 57, 7, 9, 227, 58, 7, 9, - 227, 59, 7, 9, 227, 60, 7, 9, 227, 61, 7, 9, 227, 62, 7, 9, 227, 63, 7, - 9, 227, 64, 7, 9, 227, 65, 7, 9, 227, 66, 7, 9, 227, 67, 7, 9, 227, 68, - 7, 9, 227, 69, 7, 9, 227, 70, 7, 9, 227, 71, 7, 9, 227, 72, 7, 9, 227, - 73, 7, 9, 227, 74, 7, 9, 227, 75, 7, 9, 227, 76, 7, 9, 227, 77, 7, 9, - 227, 78, 7, 9, 227, 79, 7, 9, 227, 80, 7, 9, 227, 81, 7, 9, 227, 82, 7, - 9, 227, 83, 7, 9, 227, 84, 7, 9, 227, 85, 7, 9, 227, 86, 7, 9, 227, 87, - 7, 9, 227, 88, 7, 9, 227, 89, 7, 9, 227, 90, 7, 9, 227, 91, 7, 9, 227, - 92, 7, 9, 227, 93, 7, 9, 227, 94, 7, 9, 227, 95, 7, 9, 227, 96, 7, 9, - 227, 97, 7, 9, 227, 98, 7, 9, 227, 99, 7, 9, 227, 100, 7, 9, 227, 101, 7, - 9, 227, 102, 7, 9, 227, 103, 7, 9, 227, 104, 7, 9, 227, 105, 7, 9, 227, - 106, 7, 9, 227, 107, 7, 9, 227, 108, 7, 9, 227, 109, 7, 9, 227, 110, 7, - 9, 227, 111, 7, 9, 227, 112, 7, 9, 227, 113, 7, 9, 227, 114, 7, 9, 227, - 115, 7, 9, 227, 116, 7, 9, 227, 117, 7, 9, 227, 118, 7, 9, 227, 119, 7, - 9, 227, 120, 7, 9, 227, 121, 7, 9, 227, 122, 7, 9, 227, 123, 7, 9, 227, - 124, 7, 9, 227, 125, 7, 9, 227, 126, 7, 9, 227, 127, 7, 9, 227, 128, 7, - 9, 227, 129, 7, 9, 227, 130, 7, 9, 227, 131, 7, 9, 227, 132, 7, 9, 227, - 133, 7, 9, 227, 134, 7, 9, 227, 135, 7, 9, 227, 136, 7, 9, 227, 137, 7, - 9, 227, 138, 7, 9, 227, 139, 7, 9, 227, 140, 7, 9, 227, 141, 7, 9, 227, - 142, 7, 9, 227, 143, 7, 9, 227, 144, 7, 9, 227, 145, 7, 9, 227, 146, 7, - 9, 227, 147, 7, 9, 227, 148, 7, 9, 227, 149, 7, 9, 227, 150, 7, 9, 227, - 151, 7, 9, 227, 152, 7, 9, 227, 153, 7, 9, 227, 154, 7, 9, 227, 155, 7, - 9, 227, 156, 7, 9, 227, 157, 7, 9, 227, 158, 7, 9, 227, 159, 7, 9, 227, - 160, 7, 9, 227, 161, 7, 9, 227, 162, 7, 9, 227, 163, 7, 9, 227, 164, 7, - 9, 227, 165, 7, 9, 227, 166, 7, 9, 227, 167, 7, 9, 227, 168, 7, 9, 227, - 169, 7, 9, 227, 170, 7, 9, 227, 171, 7, 9, 227, 172, 7, 9, 227, 173, 7, - 9, 227, 174, 7, 9, 227, 175, 7, 9, 227, 176, 7, 9, 227, 177, 7, 9, 227, - 178, 7, 9, 227, 179, 7, 9, 227, 180, 7, 9, 227, 181, 7, 9, 227, 182, 7, - 9, 227, 183, 7, 9, 227, 184, 7, 9, 227, 185, 7, 9, 227, 186, 7, 9, 227, - 187, 7, 9, 227, 188, 7, 9, 227, 189, 7, 9, 227, 190, 7, 9, 227, 191, 7, - 9, 227, 192, 7, 9, 227, 193, 7, 9, 227, 194, 7, 9, 227, 195, 7, 9, 227, - 196, 7, 9, 227, 197, 7, 9, 227, 198, 7, 9, 227, 199, 7, 9, 227, 200, 7, - 9, 227, 201, 7, 9, 227, 202, 7, 9, 227, 203, 7, 9, 227, 204, 7, 9, 227, - 205, 7, 9, 227, 206, 7, 9, 227, 207, 7, 9, 227, 208, 7, 9, 227, 209, 7, - 9, 227, 210, 7, 9, 227, 211, 7, 9, 227, 212, 7, 9, 227, 213, 7, 9, 227, - 214, 7, 9, 227, 215, 7, 9, 227, 216, 7, 9, 227, 217, 7, 9, 227, 218, 7, - 9, 227, 219, 7, 9, 227, 220, 7, 9, 227, 221, 7, 9, 227, 222, 7, 9, 227, - 223, 7, 9, 227, 224, 7, 9, 227, 225, 7, 9, 227, 226, 7, 9, 227, 227, 7, - 9, 227, 228, 7, 9, 227, 229, 7, 9, 227, 230, 7, 9, 227, 231, 7, 9, 227, - 232, 7, 9, 227, 233, 7, 9, 227, 234, 7, 9, 227, 235, 7, 9, 227, 236, 7, - 9, 227, 237, 7, 9, 227, 238, 7, 9, 227, 239, 7, 9, 227, 240, 7, 9, 227, - 241, 7, 9, 227, 242, 7, 9, 227, 243, 7, 9, 227, 244, 7, 9, 227, 245, 7, - 9, 227, 246, 7, 9, 227, 247, 7, 9, 227, 248, 7, 9, 227, 249, 7, 9, 227, - 250, 7, 9, 227, 251, 7, 9, 227, 252, 7, 9, 227, 253, 7, 9, 227, 254, 7, - 9, 227, 255, 7, 9, 228, 0, 7, 9, 228, 1, 7, 9, 228, 2, 7, 9, 228, 3, 7, - 9, 228, 4, 7, 9, 228, 5, 7, 9, 228, 6, 7, 9, 228, 7, 7, 9, 228, 8, 7, 9, - 228, 9, 7, 9, 228, 10, 7, 9, 228, 11, 7, 9, 228, 12, 7, 9, 228, 13, 7, 9, - 228, 14, 7, 9, 228, 15, 7, 9, 228, 16, 7, 9, 228, 17, 7, 9, 228, 18, 7, - 9, 228, 19, 7, 9, 228, 20, 7, 9, 228, 21, 7, 9, 228, 22, 7, 9, 228, 23, - 7, 9, 228, 24, 7, 9, 228, 25, 7, 9, 228, 26, 7, 9, 228, 27, 7, 9, 228, - 28, 7, 9, 228, 29, 7, 9, 228, 30, 7, 9, 228, 31, 7, 9, 228, 32, 7, 9, - 228, 33, 7, 9, 228, 34, 7, 9, 228, 35, 7, 9, 228, 36, 7, 9, 228, 37, 7, - 9, 228, 38, 7, 9, 228, 39, 7, 9, 228, 40, 7, 9, 228, 41, 7, 9, 228, 42, - 7, 9, 228, 43, 7, 9, 228, 44, 7, 9, 228, 45, 7, 9, 228, 46, 7, 9, 228, - 47, 7, 9, 228, 48, 7, 9, 228, 49, 7, 9, 228, 50, 7, 9, 228, 51, 7, 9, - 228, 52, 7, 9, 228, 53, 7, 9, 228, 54, 7, 9, 228, 55, 7, 9, 228, 56, 7, - 9, 228, 57, 7, 9, 228, 58, 7, 9, 228, 59, 7, 9, 228, 60, 7, 9, 228, 61, - 7, 9, 228, 62, 7, 9, 228, 63, 7, 9, 228, 64, 7, 9, 228, 65, 7, 9, 228, - 66, 7, 9, 228, 67, 7, 9, 228, 68, 7, 9, 228, 69, 7, 9, 228, 70, 7, 9, - 228, 71, 7, 9, 228, 72, 7, 9, 228, 73, 7, 9, 228, 74, 7, 9, 228, 75, 7, - 9, 228, 76, 7, 9, 228, 77, 7, 9, 228, 78, 7, 9, 228, 79, 7, 9, 228, 80, - 7, 9, 228, 81, 7, 9, 228, 82, 7, 9, 228, 83, 7, 9, 228, 84, 7, 9, 228, - 85, 7, 9, 228, 86, 7, 9, 228, 87, 7, 9, 228, 88, 7, 9, 228, 89, 7, 9, - 228, 90, 7, 9, 228, 91, 7, 9, 228, 92, 7, 9, 228, 93, 7, 9, 228, 94, 7, - 9, 228, 95, 7, 9, 228, 96, 7, 9, 228, 97, 7, 9, 228, 98, 7, 9, 228, 99, - 7, 9, 228, 100, 7, 9, 228, 101, 7, 9, 228, 102, 7, 9, 228, 103, 7, 9, - 228, 104, 7, 9, 228, 105, 7, 9, 228, 106, 7, 9, 228, 107, 7, 9, 228, 108, - 7, 9, 228, 109, 7, 9, 228, 110, 7, 9, 228, 111, 7, 9, 228, 112, 7, 9, - 228, 113, 7, 9, 228, 114, 7, 9, 228, 115, 7, 9, 228, 116, 7, 9, 228, 117, - 7, 9, 228, 118, 7, 9, 228, 119, 7, 9, 228, 120, 7, 9, 228, 121, 7, 9, - 228, 122, 7, 9, 228, 123, 7, 9, 228, 124, 7, 9, 228, 125, 7, 9, 228, 126, - 7, 9, 228, 127, 7, 9, 228, 128, 7, 9, 228, 129, 7, 9, 228, 130, 7, 9, - 228, 131, 7, 9, 228, 132, 7, 9, 228, 133, 7, 9, 228, 134, 7, 9, 228, 135, - 7, 9, 228, 136, 7, 9, 228, 137, 7, 9, 228, 138, 7, 9, 228, 139, 7, 9, - 228, 140, 7, 9, 228, 141, 7, 9, 228, 142, 7, 9, 228, 143, 7, 9, 228, 144, - 7, 9, 228, 145, 7, 9, 228, 146, 7, 9, 228, 147, 7, 9, 228, 148, 7, 9, - 228, 149, 7, 9, 228, 150, 7, 9, 228, 151, 7, 9, 228, 152, 7, 9, 228, 153, - 7, 9, 228, 154, 7, 9, 228, 155, 7, 9, 228, 156, 7, 9, 228, 157, 7, 9, - 228, 158, 7, 9, 228, 159, 7, 9, 228, 160, 7, 9, 228, 161, 7, 9, 228, 162, - 7, 9, 228, 163, 7, 9, 228, 164, 7, 9, 228, 165, 7, 9, 228, 166, 7, 9, - 228, 167, 7, 9, 228, 168, 7, 9, 228, 169, 7, 9, 228, 170, 7, 9, 228, 171, - 7, 9, 228, 172, 7, 9, 228, 173, 7, 9, 228, 174, 7, 9, 228, 175, 7, 9, - 228, 176, 7, 9, 228, 177, 7, 9, 228, 178, 7, 9, 228, 179, 7, 9, 228, 180, - 7, 9, 228, 181, 7, 9, 228, 182, 7, 9, 228, 183, 7, 9, 228, 184, 7, 9, - 228, 185, 7, 9, 228, 186, 7, 9, 228, 187, 7, 9, 228, 188, 7, 9, 228, 189, - 7, 9, 228, 190, 7, 9, 228, 191, 7, 9, 228, 192, 7, 9, 228, 193, 7, 9, - 228, 194, 7, 9, 228, 195, 7, 9, 228, 196, 7, 9, 228, 197, 7, 9, 228, 198, - 7, 9, 228, 199, 7, 9, 228, 200, 7, 9, 228, 201, 7, 9, 228, 202, 7, 9, - 228, 203, 7, 9, 228, 204, 7, 9, 228, 205, 7, 9, 228, 206, 7, 9, 228, 207, - 7, 9, 228, 208, 7, 9, 228, 209, 7, 9, 228, 210, 7, 9, 228, 211, 7, 9, - 228, 212, 7, 9, 228, 213, 7, 9, 228, 214, 7, 9, 228, 215, 7, 9, 228, 216, - 7, 9, 228, 217, 7, 9, 228, 218, 7, 9, 228, 219, 7, 9, 228, 220, 7, 9, - 228, 221, 7, 9, 228, 222, 7, 9, 228, 223, 7, 9, 228, 224, 7, 9, 228, 225, - 7, 9, 228, 226, 7, 9, 228, 227, 7, 9, 228, 228, 7, 9, 228, 229, 7, 9, - 228, 230, 7, 9, 228, 231, 7, 9, 228, 232, 7, 9, 228, 233, 7, 9, 228, 234, - 7, 9, 228, 235, 7, 9, 228, 236, 7, 9, 228, 237, 7, 9, 228, 238, 7, 9, - 228, 239, 7, 9, 228, 240, 7, 9, 228, 241, 7, 9, 228, 242, 7, 9, 228, 243, - 7, 9, 228, 244, 7, 9, 228, 245, 7, 9, 228, 246, 7, 9, 228, 247, 7, 9, - 228, 248, 7, 9, 228, 249, 7, 9, 228, 250, 7, 9, 228, 251, 7, 9, 228, 252, - 7, 9, 228, 253, 7, 9, 228, 254, 7, 9, 228, 255, 7, 9, 229, 0, 7, 9, 229, - 1, 7, 9, 229, 2, 7, 9, 229, 3, 7, 9, 229, 4, 7, 9, 229, 5, 7, 9, 229, 6, - 7, 9, 229, 7, 7, 9, 229, 8, 7, 9, 229, 9, 7, 9, 229, 10, 7, 9, 229, 11, - 7, 9, 229, 12, 7, 9, 229, 13, 7, 9, 229, 14, 7, 9, 229, 15, 7, 9, 229, - 16, 7, 9, 229, 17, 7, 9, 229, 18, 7, 9, 229, 19, 7, 9, 229, 20, 7, 9, - 229, 21, 7, 9, 229, 22, 7, 9, 229, 23, 7, 9, 229, 24, 7, 9, 229, 25, 7, - 9, 229, 26, 7, 9, 229, 27, 7, 9, 229, 28, 7, 9, 229, 29, 7, 9, 229, 30, - 7, 9, 229, 31, 7, 9, 229, 32, 7, 9, 229, 33, 7, 9, 229, 34, 7, 9, 229, - 35, 7, 9, 229, 36, 7, 9, 229, 37, 7, 9, 229, 38, 7, 9, 229, 39, 7, 9, - 229, 40, 7, 9, 229, 41, 7, 9, 229, 42, 7, 9, 229, 43, 7, 9, 229, 44, 7, - 9, 229, 45, 237, 194, 249, 173, 97, 240, 15, 97, 233, 54, 69, 97, 235, - 51, 69, 97, 61, 52, 97, 240, 114, 52, 97, 238, 107, 52, 97, 234, 17, 97, - 233, 59, 97, 40, 232, 74, 97, 38, 232, 74, 97, 235, 52, 97, 248, 49, 52, - 97, 240, 27, 97, 231, 94, 97, 248, 37, 208, 97, 236, 177, 97, 26, 242, - 217, 97, 26, 127, 97, 26, 111, 97, 26, 166, 97, 26, 177, 97, 26, 176, 97, - 26, 187, 97, 26, 203, 97, 26, 195, 97, 26, 202, 97, 240, 24, 97, 234, 14, - 97, 235, 44, 52, 97, 240, 7, 52, 97, 232, 68, 52, 97, 236, 156, 69, 97, - 234, 20, 254, 20, 97, 8, 5, 1, 67, 97, 8, 5, 1, 217, 97, 8, 5, 1, 255, - 18, 97, 8, 5, 1, 209, 97, 8, 5, 1, 72, 97, 8, 5, 1, 255, 19, 97, 8, 5, 1, - 210, 97, 8, 5, 1, 192, 97, 8, 5, 1, 71, 97, 8, 5, 1, 221, 97, 8, 5, 1, - 255, 15, 97, 8, 5, 1, 162, 97, 8, 5, 1, 173, 97, 8, 5, 1, 197, 97, 8, 5, - 1, 73, 97, 8, 5, 1, 223, 97, 8, 5, 1, 255, 20, 97, 8, 5, 1, 144, 97, 8, - 5, 1, 193, 97, 8, 5, 1, 214, 97, 8, 5, 1, 79, 97, 8, 5, 1, 179, 97, 8, 5, - 1, 255, 16, 97, 8, 5, 1, 206, 97, 8, 5, 1, 255, 14, 97, 8, 5, 1, 255, 17, - 97, 40, 31, 104, 97, 238, 75, 236, 177, 97, 38, 31, 104, 97, 190, 238, - 54, 97, 170, 242, 224, 97, 242, 245, 238, 54, 97, 8, 3, 1, 67, 97, 8, 3, - 1, 217, 97, 8, 3, 1, 255, 18, 97, 8, 3, 1, 209, 97, 8, 3, 1, 72, 97, 8, - 3, 1, 255, 19, 97, 8, 3, 1, 210, 97, 8, 3, 1, 192, 97, 8, 3, 1, 71, 97, - 8, 3, 1, 221, 97, 8, 3, 1, 255, 15, 97, 8, 3, 1, 162, 97, 8, 3, 1, 173, - 97, 8, 3, 1, 197, 97, 8, 3, 1, 73, 97, 8, 3, 1, 223, 97, 8, 3, 1, 255, - 20, 97, 8, 3, 1, 144, 97, 8, 3, 1, 193, 97, 8, 3, 1, 214, 97, 8, 3, 1, - 79, 97, 8, 3, 1, 179, 97, 8, 3, 1, 255, 16, 97, 8, 3, 1, 206, 97, 8, 3, - 1, 255, 14, 97, 8, 3, 1, 255, 17, 97, 40, 242, 225, 104, 97, 59, 242, - 224, 97, 38, 242, 225, 104, 97, 169, 241, 43, 249, 173, 34, 232, 211, 34, - 232, 212, 34, 232, 213, 34, 232, 214, 34, 232, 215, 34, 232, 216, 34, - 232, 217, 34, 232, 218, 34, 232, 219, 34, 232, 220, 34, 232, 221, 34, - 232, 222, 34, 232, 223, 34, 232, 224, 34, 232, 225, 34, 232, 226, 34, - 232, 227, 34, 232, 228, 34, 232, 229, 34, 232, 230, 34, 232, 231, 34, - 232, 232, 34, 232, 233, 34, 232, 234, 34, 232, 235, 34, 232, 236, 34, - 232, 237, 34, 232, 238, 34, 232, 239, 34, 232, 240, 34, 232, 241, 34, - 232, 242, 34, 232, 243, 34, 232, 244, 34, 232, 245, 34, 232, 246, 34, - 232, 247, 34, 232, 248, 34, 232, 249, 34, 232, 250, 34, 232, 251, 34, - 232, 252, 34, 232, 253, 34, 232, 254, 34, 232, 255, 34, 233, 0, 34, 233, - 1, 34, 233, 2, 34, 233, 3, 34, 233, 4, 34, 233, 5, 34, 233, 6, 34, 233, - 7, 34, 233, 8, 34, 233, 9, 34, 233, 10, 34, 233, 11, 34, 233, 12, 34, - 233, 13, 34, 233, 14, 34, 233, 15, 34, 233, 16, 34, 233, 17, 34, 233, 18, - 34, 233, 19, 34, 233, 20, 34, 233, 21, 34, 233, 22, 34, 233, 23, 34, 233, - 24, 34, 233, 25, 34, 233, 26, 34, 233, 27, 34, 233, 28, 34, 233, 29, 34, - 233, 30, 34, 233, 31, 34, 233, 32, 34, 233, 33, 34, 233, 34, 34, 233, 35, - 34, 233, 36, 34, 233, 37, 34, 231, 153, 34, 231, 154, 34, 231, 155, 34, - 231, 156, 34, 231, 157, 34, 231, 158, 34, 231, 159, 34, 231, 160, 34, - 231, 161, 34, 231, 162, 34, 231, 163, 34, 231, 164, 34, 231, 165, 34, - 231, 166, 34, 231, 167, 34, 231, 168, 34, 231, 169, 34, 231, 170, 34, - 231, 171, 34, 231, 172, 34, 231, 173, 34, 231, 174, 34, 231, 175, 34, - 231, 176, 34, 231, 177, 34, 231, 178, 34, 231, 179, 34, 231, 180, 34, - 231, 181, 34, 231, 182, 34, 231, 183, 34, 231, 184, 34, 231, 185, 34, - 231, 186, 34, 231, 187, 34, 231, 188, 34, 231, 189, 34, 231, 190, 34, - 231, 191, 34, 231, 192, 34, 231, 193, 34, 231, 194, 34, 231, 195, 34, - 231, 196, 34, 231, 197, 34, 231, 198, 34, 231, 199, 34, 231, 200, 34, - 231, 201, 34, 231, 202, 34, 231, 203, 34, 231, 204, 34, 231, 205, 34, - 231, 206, 34, 231, 207, 34, 231, 208, 34, 231, 209, 34, 231, 210, 34, - 231, 211, 34, 231, 212, 34, 231, 213, 34, 231, 214, 34, 231, 215, 34, - 231, 216, 34, 231, 217, 34, 231, 218, 34, 231, 219, 34, 231, 220, 34, - 231, 221, 34, 231, 222, 34, 231, 223, 34, 231, 224, 34, 231, 225, 34, - 231, 226, 34, 231, 227, 34, 231, 228, 34, 231, 229, 34, 231, 230, 34, - 231, 231, 34, 231, 232, 34, 231, 233, 34, 231, 234, 34, 231, 235, 34, - 231, 236, 34, 231, 237, 34, 231, 238, 34, 231, 239, 34, 231, 240, 34, - 231, 241, 34, 231, 242, 34, 231, 243, 34, 231, 244, 34, 231, 245, 34, - 231, 246, 34, 231, 247, 34, 231, 248, 34, 231, 249, 34, 231, 250, 34, - 231, 251, 34, 231, 252, 34, 231, 253, 34, 231, 254, 34, 231, 255, 34, - 232, 0, 34, 232, 1, 34, 232, 2, 34, 232, 3, 34, 232, 4, 34, 232, 5, 34, - 232, 6, 34, 232, 7, 34, 232, 8, 34, 232, 9, 34, 232, 10, 34, 232, 11, 34, - 232, 12, 34, 232, 13, 34, 232, 14, 34, 232, 15, 34, 232, 16, 34, 232, 17, - 34, 232, 18, 34, 232, 19, 34, 232, 20, 34, 232, 21, 34, 232, 22, 34, 232, - 23, 34, 232, 24, 34, 232, 25, 34, 232, 26, 34, 232, 27, 34, 232, 28, 34, - 232, 29, 34, 232, 30, 34, 232, 31, 34, 232, 32, 34, 232, 33, 34, 232, 34, - 34, 232, 35, 34, 232, 36, 34, 232, 37, 34, 232, 38, 34, 232, 39, 34, 232, - 40, 34, 232, 41, 34, 232, 42, 34, 232, 43, 34, 232, 44, 34, 232, 45, 34, - 232, 46, 34, 232, 47, 34, 232, 48, 34, 232, 49, 34, 232, 50, 34, 232, 51, - 34, 232, 52, 34, 232, 53, + 0, 237, 69, 229, 165, 76, 231, 199, 76, 65, 53, 237, 179, 53, 235, 86, + 53, 230, 142, 229, 172, 42, 228, 180, 41, 228, 180, 231, 198, 79, 53, + 237, 67, 227, 193, 246, 162, 240, 121, 233, 104, 21, 240, 126, 21, 118, + 21, 113, 21, 166, 21, 158, 21, 173, 21, 183, 21, 194, 21, 187, 21, 192, + 237, 66, 230, 140, 231, 190, 53, 237, 51, 53, 228, 175, 53, 233, 82, 76, + 230, 145, 253, 113, 7, 6, 1, 57, 7, 6, 1, 254, 185, 7, 6, 1, 254, 194, 7, + 6, 1, 222, 222, 7, 6, 1, 72, 7, 6, 1, 254, 191, 7, 6, 1, 214, 7, 6, 1, + 212, 7, 6, 1, 74, 7, 6, 1, 254, 192, 7, 6, 1, 254, 186, 7, 6, 1, 149, 7, + 6, 1, 185, 7, 6, 1, 199, 7, 6, 1, 73, 7, 6, 1, 254, 187, 7, 6, 1, 254, + 196, 7, 6, 1, 146, 7, 6, 1, 193, 7, 6, 1, 254, 183, 7, 6, 1, 66, 7, 6, 1, + 196, 7, 6, 1, 254, 195, 7, 6, 1, 254, 184, 7, 6, 1, 254, 190, 7, 6, 1, + 254, 193, 42, 37, 104, 235, 37, 233, 104, 41, 37, 104, 230, 125, 235, 24, + 184, 240, 138, 240, 163, 235, 24, 7, 3, 1, 57, 7, 3, 1, 254, 185, 7, 3, + 1, 254, 194, 7, 3, 1, 222, 222, 7, 3, 1, 72, 7, 3, 1, 254, 191, 7, 3, 1, + 214, 7, 3, 1, 212, 7, 3, 1, 74, 7, 3, 1, 254, 192, 7, 3, 1, 254, 186, 7, + 3, 1, 149, 7, 3, 1, 185, 7, 3, 1, 199, 7, 3, 1, 73, 7, 3, 1, 254, 187, 7, + 3, 1, 254, 196, 7, 3, 1, 146, 7, 3, 1, 193, 7, 3, 1, 254, 183, 7, 3, 1, + 66, 7, 3, 1, 196, 7, 3, 1, 254, 195, 7, 3, 1, 254, 184, 7, 3, 1, 254, + 190, 7, 3, 1, 254, 193, 42, 240, 137, 104, 61, 240, 138, 41, 240, 137, + 104, 205, 233, 173, 237, 69, 233, 70, 229, 165, 76, 248, 7, 53, 241, 215, + 53, 233, 112, 53, 254, 19, 53, 237, 150, 125, 235, 135, 53, 219, 232, + 103, 53, 233, 204, 235, 197, 230, 156, 227, 185, 47, 240, 117, 231, 199, + 76, 190, 53, 246, 227, 235, 69, 231, 131, 53, 235, 16, 237, 177, 53, 231, + 122, 53, 229, 163, 113, 229, 163, 166, 240, 159, 235, 24, 244, 142, 53, + 235, 201, 53, 237, 44, 246, 164, 233, 79, 229, 163, 118, 232, 228, 235, + 197, 230, 156, 227, 133, 47, 240, 117, 231, 199, 76, 237, 80, 233, 76, + 168, 233, 155, 237, 80, 233, 76, 168, 240, 170, 237, 80, 233, 76, 152, + 232, 41, 233, 70, 233, 82, 76, 7, 6, 1, 102, 2, 237, 36, 7, 6, 1, 102, 2, + 155, 7, 6, 1, 102, 2, 229, 162, 7, 6, 1, 102, 2, 205, 7, 6, 1, 102, 2, + 219, 7, 6, 1, 102, 2, 246, 174, 46, 7, 6, 1, 253, 4, 7, 6, 1, 255, 62, 2, + 233, 79, 7, 6, 1, 161, 2, 237, 36, 7, 6, 1, 161, 2, 155, 7, 6, 1, 161, 2, + 229, 162, 7, 6, 1, 161, 2, 219, 7, 6, 1, 255, 55, 2, 237, 36, 7, 6, 1, + 255, 55, 2, 155, 7, 6, 1, 255, 55, 2, 229, 162, 7, 6, 1, 255, 55, 2, 219, + 7, 6, 1, 246, 242, 7, 6, 1, 255, 60, 2, 205, 7, 6, 1, 130, 2, 237, 36, 7, + 6, 1, 130, 2, 155, 7, 6, 1, 130, 2, 229, 162, 7, 6, 1, 130, 2, 205, 7, 6, + 1, 130, 2, 219, 227, 134, 53, 7, 6, 1, 130, 2, 82, 7, 6, 1, 97, 2, 237, + 36, 7, 6, 1, 97, 2, 155, 7, 6, 1, 97, 2, 229, 162, 7, 6, 1, 97, 2, 219, + 7, 6, 1, 255, 64, 2, 155, 7, 6, 1, 237, 219, 7, 3, 1, 240, 235, 193, 7, + 3, 1, 102, 2, 237, 36, 7, 3, 1, 102, 2, 155, 7, 3, 1, 102, 2, 229, 162, + 7, 3, 1, 102, 2, 205, 7, 3, 1, 102, 2, 219, 7, 3, 1, 102, 2, 246, 174, + 46, 7, 3, 1, 253, 4, 7, 3, 1, 255, 62, 2, 233, 79, 7, 3, 1, 161, 2, 237, + 36, 7, 3, 1, 161, 2, 155, 7, 3, 1, 161, 2, 229, 162, 7, 3, 1, 161, 2, + 219, 7, 3, 1, 255, 55, 2, 237, 36, 7, 3, 1, 255, 55, 2, 155, 7, 3, 1, + 255, 55, 2, 229, 162, 7, 3, 1, 255, 55, 2, 219, 7, 3, 1, 246, 242, 7, 3, + 1, 255, 60, 2, 205, 7, 3, 1, 130, 2, 237, 36, 7, 3, 1, 130, 2, 155, 7, 3, + 1, 130, 2, 229, 162, 7, 3, 1, 130, 2, 205, 7, 3, 1, 130, 2, 219, 233, + 130, 53, 7, 3, 1, 130, 2, 82, 7, 3, 1, 97, 2, 237, 36, 7, 3, 1, 97, 2, + 155, 7, 3, 1, 97, 2, 229, 162, 7, 3, 1, 97, 2, 219, 7, 3, 1, 255, 64, 2, + 155, 7, 3, 1, 237, 219, 7, 3, 1, 255, 64, 2, 219, 7, 6, 1, 102, 2, 235, + 16, 7, 3, 1, 102, 2, 235, 16, 7, 6, 1, 102, 2, 237, 46, 7, 3, 1, 102, 2, + 237, 46, 7, 6, 1, 102, 2, 235, 47, 7, 3, 1, 102, 2, 235, 47, 7, 6, 1, + 255, 62, 2, 155, 7, 3, 1, 255, 62, 2, 155, 7, 6, 1, 255, 62, 2, 229, 162, + 7, 3, 1, 255, 62, 2, 229, 162, 7, 6, 1, 255, 62, 2, 56, 46, 7, 3, 1, 255, + 62, 2, 56, 46, 7, 6, 1, 255, 62, 2, 237, 43, 7, 3, 1, 255, 62, 2, 237, + 43, 7, 6, 1, 255, 63, 2, 237, 43, 7, 3, 1, 255, 63, 2, 237, 43, 7, 6, 1, + 255, 63, 2, 82, 7, 3, 1, 255, 63, 2, 82, 7, 6, 1, 161, 2, 235, 16, 7, 3, + 1, 161, 2, 235, 16, 7, 6, 1, 161, 2, 237, 46, 7, 3, 1, 161, 2, 237, 46, + 7, 6, 1, 161, 2, 56, 46, 7, 3, 1, 161, 2, 56, 46, 7, 6, 1, 161, 2, 235, + 47, 7, 3, 1, 161, 2, 235, 47, 7, 6, 1, 161, 2, 237, 43, 7, 3, 1, 161, 2, + 237, 43, 7, 6, 1, 255, 65, 2, 229, 162, 7, 3, 1, 255, 65, 2, 229, 162, 7, + 6, 1, 255, 65, 2, 237, 46, 7, 3, 1, 255, 65, 2, 237, 46, 7, 6, 1, 255, + 65, 2, 56, 46, 7, 3, 1, 255, 65, 2, 56, 46, 7, 6, 1, 255, 65, 2, 233, 79, + 7, 3, 1, 255, 65, 2, 233, 79, 7, 6, 1, 255, 66, 2, 229, 162, 7, 3, 1, + 255, 66, 2, 229, 162, 7, 6, 1, 255, 66, 2, 82, 7, 3, 1, 255, 66, 2, 82, + 7, 6, 1, 255, 55, 2, 205, 7, 3, 1, 255, 55, 2, 205, 7, 6, 1, 255, 55, 2, + 235, 16, 7, 3, 1, 255, 55, 2, 235, 16, 7, 6, 1, 255, 55, 2, 237, 46, 7, + 3, 1, 255, 55, 2, 237, 46, 7, 6, 1, 255, 55, 2, 235, 47, 7, 3, 1, 255, + 55, 2, 235, 47, 7, 6, 1, 255, 55, 2, 56, 46, 7, 3, 1, 235, 46, 74, 7, 6, + 20, 253, 231, 7, 3, 20, 253, 231, 7, 6, 1, 255, 73, 2, 229, 162, 7, 3, 1, + 255, 73, 2, 229, 162, 7, 6, 1, 255, 67, 2, 233, 79, 7, 3, 1, 255, 67, 2, + 233, 79, 7, 3, 1, 250, 186, 7, 6, 1, 255, 58, 2, 155, 7, 3, 1, 255, 58, + 2, 155, 7, 6, 1, 255, 58, 2, 233, 79, 7, 3, 1, 255, 58, 2, 233, 79, 7, 6, + 1, 255, 58, 2, 237, 43, 7, 3, 1, 255, 58, 2, 237, 43, 7, 6, 1, 255, 58, + 2, 237, 44, 246, 164, 7, 3, 1, 255, 58, 2, 237, 44, 246, 164, 7, 6, 1, + 255, 58, 2, 82, 7, 3, 1, 255, 58, 2, 82, 7, 6, 1, 255, 60, 2, 155, 7, 3, + 1, 255, 60, 2, 155, 7, 6, 1, 255, 60, 2, 233, 79, 7, 3, 1, 255, 60, 2, + 233, 79, 7, 6, 1, 255, 60, 2, 237, 43, 7, 3, 1, 255, 60, 2, 237, 43, 7, + 3, 1, 255, 60, 234, 197, 254, 205, 229, 172, 7, 6, 1, 247, 0, 7, 3, 1, + 247, 0, 7, 6, 1, 130, 2, 235, 16, 7, 3, 1, 130, 2, 235, 16, 7, 6, 1, 130, + 2, 237, 46, 7, 3, 1, 130, 2, 237, 46, 7, 6, 1, 130, 2, 47, 155, 7, 3, 1, + 130, 2, 47, 155, 7, 6, 20, 253, 15, 7, 3, 20, 253, 15, 7, 6, 1, 255, 57, + 2, 155, 7, 3, 1, 255, 57, 2, 155, 7, 6, 1, 255, 57, 2, 233, 79, 7, 3, 1, + 255, 57, 2, 233, 79, 7, 6, 1, 255, 57, 2, 237, 43, 7, 3, 1, 255, 57, 2, + 237, 43, 7, 6, 1, 255, 59, 2, 155, 7, 3, 1, 255, 59, 2, 155, 7, 6, 1, + 255, 59, 2, 229, 162, 7, 3, 1, 255, 59, 2, 229, 162, 7, 6, 1, 255, 59, 2, + 233, 79, 7, 3, 1, 255, 59, 2, 233, 79, 7, 6, 1, 255, 59, 2, 237, 43, 7, + 3, 1, 255, 59, 2, 237, 43, 7, 6, 1, 255, 61, 2, 233, 79, 7, 3, 1, 255, + 61, 2, 233, 79, 7, 6, 1, 255, 61, 2, 237, 43, 7, 3, 1, 255, 61, 2, 237, + 43, 7, 6, 1, 255, 61, 2, 82, 7, 3, 1, 255, 61, 2, 82, 7, 6, 1, 97, 2, + 205, 7, 3, 1, 97, 2, 205, 7, 6, 1, 97, 2, 235, 16, 7, 3, 1, 97, 2, 235, + 16, 7, 6, 1, 97, 2, 237, 46, 7, 3, 1, 97, 2, 237, 46, 7, 6, 1, 97, 2, + 246, 174, 46, 7, 3, 1, 97, 2, 246, 174, 46, 7, 6, 1, 97, 2, 47, 155, 7, + 3, 1, 97, 2, 47, 155, 7, 6, 1, 97, 2, 235, 47, 7, 3, 1, 97, 2, 235, 47, + 7, 6, 1, 255, 71, 2, 229, 162, 7, 3, 1, 255, 71, 2, 229, 162, 7, 6, 1, + 255, 64, 2, 229, 162, 7, 3, 1, 255, 64, 2, 229, 162, 7, 6, 1, 255, 64, 2, + 219, 7, 6, 1, 255, 56, 2, 155, 7, 3, 1, 255, 56, 2, 155, 7, 6, 1, 255, + 56, 2, 56, 46, 7, 3, 1, 255, 56, 2, 56, 46, 7, 6, 1, 255, 56, 2, 237, 43, + 7, 3, 1, 255, 56, 2, 237, 43, 7, 3, 1, 182, 193, 7, 3, 1, 45, 2, 82, 7, + 6, 1, 45, 2, 88, 7, 6, 1, 45, 2, 235, 104, 7, 3, 1, 45, 2, 235, 104, 7, + 6, 1, 206, 183, 7, 3, 1, 206, 183, 7, 6, 1, 246, 157, 73, 7, 6, 1, 255, + 62, 2, 88, 7, 3, 1, 255, 62, 2, 88, 7, 6, 1, 235, 239, 222, 222, 7, 6, 1, + 255, 63, 2, 88, 7, 6, 1, 255, 63, 2, 235, 104, 7, 3, 1, 255, 63, 2, 235, + 104, 7, 3, 1, 209, 237, 75, 7, 6, 1, 200, 72, 7, 6, 1, 237, 144, 7, 6, 1, + 246, 157, 72, 7, 6, 1, 255, 72, 2, 88, 7, 3, 1, 255, 72, 2, 88, 7, 6, 1, + 255, 65, 2, 88, 7, 6, 1, 237, 61, 7, 3, 1, 253, 227, 7, 6, 1, 240, 146, + 7, 6, 1, 255, 55, 2, 82, 7, 6, 1, 255, 67, 2, 88, 7, 3, 1, 255, 67, 2, + 88, 7, 3, 1, 255, 58, 2, 125, 7, 3, 1, 239, 80, 2, 82, 7, 6, 1, 209, 185, + 7, 6, 1, 255, 60, 2, 42, 88, 7, 3, 1, 255, 60, 2, 182, 41, 247, 3, 7, 6, + 1, 130, 2, 237, 44, 205, 7, 6, 1, 130, 2, 240, 179, 7, 3, 1, 130, 2, 240, + 179, 7, 6, 1, 253, 157, 7, 3, 1, 253, 157, 7, 6, 1, 255, 70, 2, 88, 7, 3, + 1, 255, 70, 2, 88, 7, 1, 254, 20, 7, 6, 1, 206, 113, 7, 3, 1, 206, 113, + 7, 6, 1, 246, 232, 7, 1, 200, 253, 146, 240, 202, 7, 3, 1, 255, 61, 2, + 235, 36, 88, 7, 6, 1, 255, 61, 2, 88, 7, 3, 1, 255, 61, 2, 88, 7, 6, 1, + 255, 61, 2, 231, 201, 88, 7, 6, 1, 97, 2, 240, 179, 7, 3, 1, 97, 2, 240, + 179, 7, 6, 1, 233, 92, 7, 6, 1, 255, 69, 2, 88, 7, 6, 1, 255, 64, 2, 88, + 7, 3, 1, 255, 64, 2, 88, 7, 6, 1, 255, 56, 2, 82, 7, 3, 1, 255, 56, 2, + 82, 7, 6, 1, 247, 74, 7, 6, 1, 253, 101, 232, 5, 7, 3, 1, 253, 101, 232, + 5, 7, 3, 1, 253, 101, 2, 240, 133, 7, 1, 135, 2, 82, 7, 6, 1, 206, 173, + 7, 3, 1, 206, 173, 7, 1, 233, 70, 235, 31, 247, 20, 2, 82, 7, 1, 242, 27, + 7, 1, 238, 181, 237, 151, 7, 1, 236, 130, 237, 151, 7, 1, 234, 1, 237, + 151, 7, 1, 231, 201, 237, 151, 7, 6, 1, 254, 235, 2, 237, 43, 7, 6, 1, + 255, 63, 2, 3, 1, 255, 56, 2, 237, 43, 7, 3, 1, 254, 235, 2, 237, 43, 7, + 6, 1, 253, 244, 7, 6, 1, 255, 58, 2, 3, 1, 254, 192, 7, 3, 1, 253, 244, + 7, 6, 1, 253, 250, 7, 6, 1, 255, 60, 2, 3, 1, 254, 192, 7, 3, 1, 253, + 250, 7, 6, 1, 102, 2, 237, 43, 7, 3, 1, 102, 2, 237, 43, 7, 6, 1, 255, + 55, 2, 237, 43, 7, 3, 1, 255, 55, 2, 237, 43, 7, 6, 1, 130, 2, 237, 43, + 7, 3, 1, 130, 2, 237, 43, 7, 6, 1, 97, 2, 237, 43, 7, 3, 1, 97, 2, 237, + 43, 7, 6, 1, 97, 2, 231, 203, 22, 235, 16, 7, 3, 1, 97, 2, 231, 203, 22, + 235, 16, 7, 6, 1, 97, 2, 231, 203, 22, 155, 7, 3, 1, 97, 2, 231, 203, 22, + 155, 7, 6, 1, 97, 2, 231, 203, 22, 237, 43, 7, 3, 1, 97, 2, 231, 203, 22, + 237, 43, 7, 6, 1, 97, 2, 231, 203, 22, 237, 36, 7, 3, 1, 97, 2, 231, 203, + 22, 237, 36, 7, 3, 1, 209, 72, 7, 6, 1, 102, 2, 231, 203, 22, 235, 16, 7, + 3, 1, 102, 2, 231, 203, 22, 235, 16, 7, 6, 1, 102, 2, 56, 64, 22, 235, + 16, 7, 3, 1, 102, 2, 56, 64, 22, 235, 16, 7, 6, 1, 254, 215, 2, 235, 16, + 7, 3, 1, 254, 215, 2, 235, 16, 7, 6, 1, 255, 65, 2, 82, 7, 3, 1, 255, 65, + 2, 82, 7, 6, 1, 255, 65, 2, 237, 43, 7, 3, 1, 255, 65, 2, 237, 43, 7, 6, + 1, 255, 67, 2, 237, 43, 7, 3, 1, 255, 67, 2, 237, 43, 7, 6, 1, 130, 2, + 235, 47, 7, 3, 1, 130, 2, 235, 47, 7, 6, 1, 130, 2, 237, 208, 22, 235, + 16, 7, 3, 1, 130, 2, 237, 208, 22, 235, 16, 7, 6, 1, 253, 101, 2, 237, + 43, 7, 3, 1, 253, 101, 2, 237, 43, 7, 3, 1, 255, 73, 2, 237, 43, 7, 6, 1, + 253, 217, 7, 6, 1, 255, 63, 2, 3, 1, 254, 193, 7, 3, 1, 253, 217, 7, 6, + 1, 255, 65, 2, 155, 7, 3, 1, 255, 65, 2, 155, 7, 6, 1, 238, 9, 7, 6, 1, + 242, 27, 7, 6, 1, 255, 60, 2, 237, 36, 7, 3, 1, 255, 60, 2, 237, 36, 7, + 6, 1, 102, 2, 246, 174, 64, 22, 155, 7, 3, 1, 102, 2, 246, 174, 64, 22, + 155, 7, 6, 1, 254, 215, 2, 155, 7, 3, 1, 254, 215, 2, 155, 7, 6, 1, 130, + 2, 195, 22, 155, 7, 3, 1, 130, 2, 195, 22, 155, 7, 6, 1, 102, 2, 47, 237, + 36, 7, 3, 1, 102, 2, 47, 237, 36, 7, 6, 1, 102, 2, 233, 70, 237, 46, 7, + 3, 1, 102, 2, 233, 70, 237, 46, 7, 6, 1, 161, 2, 47, 237, 36, 7, 3, 1, + 161, 2, 47, 237, 36, 7, 6, 1, 161, 2, 233, 70, 237, 46, 7, 3, 1, 161, 2, + 233, 70, 237, 46, 7, 6, 1, 255, 55, 2, 47, 237, 36, 7, 3, 1, 255, 55, 2, + 47, 237, 36, 7, 6, 1, 255, 55, 2, 233, 70, 237, 46, 7, 3, 1, 255, 55, 2, + 233, 70, 237, 46, 7, 6, 1, 130, 2, 47, 237, 36, 7, 3, 1, 130, 2, 47, 237, + 36, 7, 6, 1, 130, 2, 233, 70, 237, 46, 7, 3, 1, 130, 2, 233, 70, 237, 46, + 7, 6, 1, 255, 57, 2, 47, 237, 36, 7, 3, 1, 255, 57, 2, 47, 237, 36, 7, 6, + 1, 255, 57, 2, 233, 70, 237, 46, 7, 3, 1, 255, 57, 2, 233, 70, 237, 46, + 7, 6, 1, 97, 2, 47, 237, 36, 7, 3, 1, 97, 2, 47, 237, 36, 7, 6, 1, 97, 2, + 233, 70, 237, 46, 7, 3, 1, 97, 2, 233, 70, 237, 46, 7, 6, 1, 255, 59, 2, + 240, 162, 51, 7, 3, 1, 255, 59, 2, 240, 162, 51, 7, 6, 1, 255, 61, 2, + 240, 162, 51, 7, 3, 1, 255, 61, 2, 240, 162, 51, 7, 6, 1, 242, 32, 7, 3, + 1, 242, 32, 7, 6, 1, 255, 66, 2, 237, 43, 7, 3, 1, 255, 66, 2, 237, 43, + 7, 6, 1, 255, 60, 2, 182, 41, 247, 3, 7, 3, 1, 255, 63, 2, 240, 168, 7, + 6, 1, 253, 119, 7, 3, 1, 253, 119, 7, 6, 1, 255, 56, 2, 88, 7, 3, 1, 255, + 56, 2, 88, 7, 6, 1, 102, 2, 56, 46, 7, 3, 1, 102, 2, 56, 46, 7, 6, 1, + 161, 2, 233, 79, 7, 3, 1, 161, 2, 233, 79, 7, 6, 1, 130, 2, 231, 203, 22, + 235, 16, 7, 3, 1, 130, 2, 231, 203, 22, 235, 16, 7, 6, 1, 130, 2, 240, + 128, 22, 235, 16, 7, 3, 1, 130, 2, 240, 128, 22, 235, 16, 7, 6, 1, 130, + 2, 56, 46, 7, 3, 1, 130, 2, 56, 46, 7, 6, 1, 130, 2, 56, 64, 22, 235, 16, + 7, 3, 1, 130, 2, 56, 64, 22, 235, 16, 7, 6, 1, 255, 64, 2, 235, 16, 7, 3, + 1, 255, 64, 2, 235, 16, 7, 3, 1, 255, 58, 2, 240, 168, 7, 3, 1, 255, 60, + 2, 240, 168, 7, 3, 1, 255, 61, 2, 240, 168, 7, 3, 1, 235, 46, 254, 192, + 7, 3, 1, 255, 22, 233, 113, 7, 3, 1, 255, 45, 233, 113, 7, 6, 1, 102, 2, + 82, 7, 6, 1, 255, 62, 2, 82, 7, 3, 1, 255, 62, 2, 82, 7, 6, 1, 255, 58, + 2, 125, 7, 6, 1, 255, 61, 2, 233, 74, 82, 7, 3, 1, 255, 59, 2, 241, 77, + 240, 133, 7, 3, 1, 255, 56, 2, 241, 77, 240, 133, 7, 6, 1, 235, 31, 240, + 121, 7, 3, 1, 235, 31, 240, 121, 7, 6, 1, 45, 2, 82, 7, 6, 1, 97, 125, 7, + 6, 1, 209, 196, 7, 6, 1, 161, 2, 82, 7, 3, 1, 161, 2, 82, 7, 6, 1, 255, + 73, 2, 82, 7, 3, 1, 255, 73, 2, 82, 7, 6, 1, 3, 255, 75, 2, 246, 171, + 240, 133, 7, 3, 1, 255, 75, 2, 246, 171, 240, 133, 7, 6, 1, 255, 57, 2, + 82, 7, 3, 1, 255, 57, 2, 82, 7, 6, 1, 255, 64, 2, 82, 7, 3, 1, 255, 64, + 2, 82, 7, 3, 1, 209, 57, 7, 3, 1, 237, 71, 7, 3, 1, 209, 237, 71, 7, 3, + 1, 45, 2, 88, 7, 3, 1, 246, 157, 73, 7, 3, 1, 255, 62, 2, 240, 168, 7, 3, + 1, 255, 63, 2, 240, 133, 7, 3, 1, 255, 63, 2, 88, 7, 3, 1, 200, 72, 7, 3, + 1, 237, 144, 7, 3, 1, 241, 14, 2, 88, 7, 3, 1, 246, 157, 72, 7, 3, 1, + 200, 246, 157, 72, 7, 3, 1, 200, 246, 157, 161, 2, 88, 7, 3, 1, 237, 58, + 200, 246, 157, 72, 7, 3, 1, 235, 46, 255, 73, 2, 82, 7, 3, 1, 255, 65, 2, + 88, 7, 3, 1, 95, 214, 7, 1, 3, 6, 214, 7, 3, 1, 237, 61, 7, 3, 1, 251, + 172, 240, 179, 7, 3, 1, 209, 212, 7, 3, 1, 255, 66, 2, 88, 7, 3, 1, 250, + 67, 2, 88, 7, 3, 1, 255, 55, 2, 82, 7, 3, 1, 240, 146, 7, 1, 3, 6, 74, 7, + 3, 1, 255, 58, 2, 237, 44, 205, 7, 3, 1, 255, 58, 2, 242, 199, 7, 3, 1, + 255, 58, 2, 231, 201, 88, 7, 3, 1, 244, 95, 7, 3, 1, 209, 185, 7, 3, 1, + 209, 255, 68, 2, 182, 247, 3, 7, 3, 1, 255, 68, 2, 88, 7, 3, 1, 255, 60, + 2, 42, 88, 7, 3, 1, 255, 60, 2, 231, 201, 88, 7, 1, 3, 6, 199, 7, 3, 1, + 237, 118, 73, 7, 1, 3, 6, 253, 15, 7, 3, 1, 237, 58, 237, 68, 7, 3, 1, + 246, 198, 7, 3, 1, 209, 146, 7, 3, 1, 209, 255, 57, 2, 182, 247, 3, 7, 3, + 1, 209, 255, 57, 2, 88, 7, 3, 1, 255, 57, 2, 182, 247, 3, 7, 3, 1, 255, + 57, 2, 240, 133, 7, 3, 1, 255, 57, 2, 231, 251, 7, 3, 1, 200, 255, 57, 2, + 231, 251, 7, 1, 3, 6, 146, 7, 1, 3, 6, 233, 70, 146, 7, 3, 1, 255, 59, 2, + 88, 7, 3, 1, 246, 232, 7, 3, 1, 235, 46, 255, 73, 2, 195, 22, 88, 7, 3, + 1, 241, 250, 200, 246, 232, 7, 3, 1, 253, 146, 2, 240, 168, 7, 3, 1, 209, + 254, 183, 7, 3, 1, 255, 61, 2, 231, 201, 88, 7, 3, 1, 97, 125, 7, 3, 1, + 233, 92, 7, 3, 1, 255, 69, 2, 88, 7, 3, 1, 209, 196, 7, 3, 1, 209, 254, + 195, 7, 3, 1, 209, 254, 190, 7, 1, 3, 6, 254, 190, 7, 3, 1, 255, 56, 2, + 231, 201, 88, 7, 3, 1, 255, 56, 2, 240, 168, 7, 3, 1, 247, 74, 7, 3, 1, + 253, 101, 2, 240, 168, 7, 1, 235, 31, 240, 121, 7, 1, 230, 138, 237, 107, + 231, 71, 7, 1, 233, 70, 235, 31, 240, 121, 7, 1, 233, 34, 254, 194, 7, 1, + 233, 188, 237, 151, 7, 1, 3, 6, 254, 185, 7, 3, 1, 237, 58, 246, 157, 72, + 7, 1, 3, 6, 255, 65, 2, 88, 7, 1, 3, 6, 212, 7, 3, 1, 255, 73, 2, 227, + 200, 7, 3, 1, 209, 254, 186, 7, 1, 3, 6, 149, 7, 3, 1, 255, 75, 2, 88, 7, + 1, 235, 31, 247, 20, 2, 82, 7, 1, 200, 235, 31, 247, 20, 2, 82, 7, 3, 1, + 254, 235, 233, 113, 7, 3, 1, 249, 188, 233, 113, 7, 3, 1, 254, 235, 235, + 90, 2, 240, 168, 7, 3, 1, 255, 50, 233, 113, 7, 3, 1, 252, 14, 233, 113, + 7, 3, 1, 255, 47, 235, 90, 2, 240, 168, 7, 3, 1, 249, 243, 233, 113, 7, + 3, 1, 255, 35, 233, 113, 7, 3, 1, 255, 36, 233, 113, 7, 1, 233, 188, 229, + 209, 7, 1, 234, 20, 229, 209, 7, 3, 1, 209, 255, 66, 2, 231, 251, 7, 3, + 1, 209, 255, 66, 2, 233, 206, 22, 240, 133, 52, 1, 3, 212, 52, 1, 3, 255, + 66, 2, 88, 52, 1, 3, 254, 192, 52, 1, 3, 146, 52, 1, 3, 209, 146, 52, 1, + 3, 209, 255, 57, 2, 88, 52, 1, 3, 6, 233, 70, 146, 52, 1, 3, 254, 195, + 52, 1, 3, 254, 190, 52, 1, 237, 114, 52, 1, 47, 237, 114, 52, 1, 209, + 237, 67, 52, 1, 229, 172, 52, 1, 200, 237, 67, 52, 1, 41, 132, 240, 147, + 52, 1, 42, 132, 240, 147, 52, 1, 235, 31, 240, 121, 52, 1, 200, 235, 31, + 240, 121, 52, 1, 42, 230, 133, 52, 1, 41, 230, 133, 52, 1, 99, 230, 133, + 52, 1, 103, 230, 133, 52, 1, 230, 125, 235, 24, 237, 43, 52, 1, 61, 240, + 138, 52, 1, 235, 16, 52, 1, 240, 159, 235, 24, 52, 1, 240, 163, 235, 24, + 52, 1, 184, 61, 240, 138, 52, 1, 184, 235, 16, 52, 1, 184, 240, 163, 235, + 24, 52, 1, 184, 240, 159, 235, 24, 52, 1, 230, 160, 237, 66, 52, 1, 132, + 230, 160, 237, 66, 52, 1, 235, 112, 41, 132, 240, 147, 52, 1, 235, 112, + 42, 132, 240, 147, 52, 1, 99, 240, 149, 52, 1, 103, 240, 149, 52, 1, 79, + 53, 52, 1, 240, 172, 53, 237, 46, 56, 46, 246, 174, 46, 235, 47, 3, 205, + 47, 240, 159, 235, 24, 52, 1, 239, 222, 88, 52, 1, 240, 221, 235, 24, 52, + 1, 3, 237, 61, 52, 1, 3, 149, 52, 1, 3, 193, 52, 1, 3, 254, 184, 52, 1, + 3, 200, 235, 31, 240, 121, 52, 1, 230, 153, 206, 125, 52, 1, 201, 206, + 125, 52, 1, 253, 152, 206, 125, 52, 1, 184, 206, 125, 52, 1, 231, 237, + 206, 125, 52, 1, 253, 122, 231, 249, 206, 76, 52, 1, 247, 24, 231, 249, + 206, 76, 52, 1, 235, 8, 52, 1, 229, 159, 52, 1, 47, 229, 172, 52, 1, 184, + 103, 230, 133, 52, 1, 184, 99, 230, 133, 52, 1, 184, 42, 230, 133, 52, 1, + 184, 41, 230, 133, 52, 1, 184, 240, 147, 52, 1, 237, 44, 240, 163, 235, + 24, 52, 1, 237, 44, 47, 240, 163, 235, 24, 52, 1, 237, 44, 47, 240, 159, + 235, 24, 52, 1, 184, 205, 52, 1, 237, 105, 237, 66, 52, 1, 240, 205, 201, + 240, 167, 52, 1, 252, 255, 201, 240, 167, 52, 1, 240, 205, 184, 240, 167, + 52, 1, 252, 255, 184, 240, 167, 52, 1, 238, 51, 52, 1, 246, 157, 238, 51, + 52, 1, 184, 42, 58, 36, 240, 163, 235, 24, 36, 240, 159, 235, 24, 36, + 230, 125, 235, 24, 36, 205, 36, 235, 16, 36, 231, 223, 36, 237, 46, 36, + 56, 46, 36, 219, 36, 246, 171, 46, 36, 246, 174, 46, 36, 47, 240, 159, + 235, 24, 36, 237, 43, 36, 61, 246, 167, 46, 36, 47, 61, 246, 167, 46, 36, + 47, 240, 163, 235, 24, 36, 228, 184, 36, 233, 70, 237, 46, 36, 209, 240, + 162, 46, 36, 240, 162, 46, 36, 200, 240, 162, 46, 36, 240, 162, 64, 237, + 41, 36, 240, 163, 237, 48, 51, 36, 240, 159, 237, 48, 51, 36, 42, 246, + 215, 51, 36, 41, 246, 215, 51, 36, 42, 240, 117, 46, 36, 240, 179, 36, + 42, 132, 246, 174, 51, 36, 99, 246, 215, 51, 36, 103, 246, 215, 51, 36, + 79, 5, 51, 36, 240, 172, 5, 51, 36, 230, 85, 246, 171, 51, 36, 231, 201, + 246, 171, 51, 36, 56, 51, 36, 231, 203, 51, 36, 246, 174, 51, 36, 240, + 162, 51, 36, 233, 79, 36, 235, 47, 36, 61, 246, 167, 51, 36, 237, 174, + 51, 36, 233, 70, 47, 248, 238, 51, 36, 241, 29, 51, 36, 230, 125, 237, + 48, 51, 36, 240, 161, 51, 36, 233, 70, 240, 161, 51, 36, 240, 128, 51, + 36, 237, 83, 51, 36, 184, 240, 138, 36, 47, 184, 240, 138, 36, 240, 128, + 233, 87, 36, 240, 125, 195, 233, 87, 36, 182, 195, 233, 87, 36, 240, 125, + 235, 54, 233, 87, 36, 182, 235, 54, 233, 87, 36, 41, 132, 246, 174, 51, + 36, 233, 70, 237, 174, 51, 36, 37, 51, 36, 236, 212, 51, 36, 255, 74, 46, + 36, 61, 205, 36, 47, 231, 223, 36, 240, 163, 206, 76, 36, 240, 159, 206, + 76, 36, 19, 228, 179, 36, 19, 233, 170, 36, 19, 231, 207, 237, 70, 36, + 19, 227, 132, 36, 237, 174, 46, 36, 237, 51, 5, 51, 36, 47, 61, 246, 167, + 51, 36, 42, 240, 117, 51, 36, 190, 240, 128, 46, 36, 231, 79, 46, 36, + 237, 78, 105, 180, 46, 36, 42, 41, 67, 51, 36, 235, 18, 67, 51, 36, 234, + 113, 235, 124, 36, 41, 231, 214, 46, 36, 42, 132, 246, 174, 46, 36, 233, + 205, 36, 255, 74, 51, 36, 42, 231, 214, 51, 36, 41, 231, 214, 51, 36, 41, + 231, 214, 22, 99, 231, 214, 51, 36, 41, 132, 246, 174, 46, 36, 56, 64, + 237, 41, 36, 233, 145, 51, 36, 47, 246, 174, 51, 36, 237, 170, 46, 36, + 47, 240, 161, 51, 36, 47, 237, 46, 36, 47, 235, 16, 36, 47, 237, 83, 51, + 36, 47, 205, 36, 47, 233, 70, 237, 46, 36, 47, 81, 67, 51, 36, 7, 3, 1, + 57, 36, 7, 3, 1, 72, 36, 7, 3, 1, 74, 36, 7, 3, 1, 73, 36, 7, 3, 1, 66, + 36, 7, 3, 1, 254, 194, 36, 7, 3, 1, 222, 222, 36, 7, 3, 1, 212, 36, 7, 3, + 1, 185, 36, 7, 3, 1, 146, 36, 7, 3, 1, 254, 183, 36, 7, 3, 1, 196, 36, 7, + 3, 1, 254, 184, 19, 6, 1, 241, 155, 19, 3, 1, 241, 155, 19, 6, 1, 235, + 83, 237, 143, 19, 3, 1, 235, 83, 237, 143, 19, 207, 53, 19, 203, 207, 53, + 19, 6, 1, 230, 191, 233, 129, 19, 3, 1, 230, 191, 233, 129, 19, 227, 132, + 19, 3, 200, 237, 103, 240, 197, 98, 19, 3, 237, 50, 237, 103, 240, 197, + 98, 19, 3, 200, 237, 50, 237, 103, 240, 197, 98, 19, 233, 82, 76, 19, + 237, 70, 19, 231, 207, 237, 70, 19, 6, 1, 240, 120, 2, 237, 70, 19, 254, + 26, 235, 220, 19, 6, 1, 235, 28, 2, 237, 70, 19, 6, 1, 252, 206, 2, 237, + 70, 19, 6, 1, 246, 168, 2, 237, 70, 19, 6, 1, 235, 35, 2, 237, 70, 19, 6, + 1, 235, 23, 2, 237, 70, 19, 6, 1, 240, 123, 2, 237, 70, 19, 3, 1, 246, + 168, 2, 231, 207, 22, 237, 70, 19, 6, 1, 237, 71, 19, 6, 1, 240, 160, 19, + 6, 1, 237, 61, 19, 6, 1, 237, 75, 19, 6, 1, 233, 96, 19, 6, 1, 240, 173, + 19, 6, 1, 246, 219, 19, 6, 1, 237, 89, 19, 6, 1, 240, 146, 19, 6, 1, 237, + 91, 19, 6, 1, 237, 82, 19, 6, 1, 252, 229, 19, 6, 1, 252, 227, 19, 6, 1, + 253, 38, 19, 6, 1, 233, 100, 19, 6, 1, 252, 223, 19, 6, 1, 246, 209, 19, + 6, 1, 237, 73, 19, 6, 1, 246, 212, 19, 6, 1, 233, 92, 19, 6, 1, 246, 198, + 19, 6, 1, 246, 200, 19, 6, 1, 246, 204, 19, 6, 1, 237, 68, 19, 6, 1, 246, + 168, 2, 230, 152, 19, 6, 1, 235, 23, 2, 230, 152, 19, 3, 1, 240, 120, 2, + 237, 70, 19, 3, 1, 235, 28, 2, 237, 70, 19, 3, 1, 252, 206, 2, 237, 70, + 19, 3, 1, 246, 168, 2, 237, 70, 19, 3, 1, 235, 23, 2, 231, 207, 22, 237, + 70, 19, 3, 1, 237, 71, 19, 3, 1, 240, 160, 19, 3, 1, 237, 61, 19, 3, 1, + 237, 75, 19, 3, 1, 233, 96, 19, 3, 1, 240, 173, 19, 3, 1, 246, 219, 19, + 3, 1, 237, 89, 19, 3, 1, 240, 146, 19, 3, 1, 237, 91, 19, 3, 1, 237, 82, + 19, 3, 1, 252, 229, 19, 3, 1, 252, 227, 19, 3, 1, 253, 38, 19, 3, 1, 233, + 100, 19, 3, 1, 252, 223, 19, 3, 1, 246, 209, 19, 3, 1, 35, 237, 73, 19, + 3, 1, 237, 73, 19, 3, 1, 246, 212, 19, 3, 1, 233, 92, 19, 3, 1, 246, 198, + 19, 3, 1, 246, 200, 19, 3, 1, 246, 204, 19, 3, 1, 237, 68, 19, 3, 1, 246, + 168, 2, 230, 152, 19, 3, 1, 235, 23, 2, 230, 152, 19, 3, 1, 235, 35, 2, + 237, 70, 19, 3, 1, 235, 23, 2, 237, 70, 19, 3, 1, 240, 123, 2, 237, 70, + 19, 6, 253, 150, 98, 19, 249, 112, 98, 19, 240, 178, 98, 19, 235, 23, 2, + 246, 171, 98, 19, 235, 23, 2, 240, 159, 22, 246, 171, 98, 19, 235, 23, 2, + 231, 203, 22, 246, 171, 98, 19, 253, 120, 98, 19, 254, 200, 98, 19, 253, + 150, 98, 19, 1, 235, 83, 237, 136, 19, 3, 1, 235, 83, 237, 136, 19, 1, + 235, 138, 19, 3, 1, 235, 138, 19, 1, 233, 129, 19, 3, 1, 233, 129, 19, 1, + 237, 136, 19, 3, 1, 237, 136, 19, 1, 237, 143, 19, 3, 1, 237, 143, 70, 6, + 1, 240, 212, 70, 3, 1, 240, 212, 70, 6, 1, 248, 37, 70, 3, 1, 248, 37, + 70, 6, 1, 241, 1, 70, 3, 1, 241, 1, 70, 6, 1, 240, 209, 70, 3, 1, 240, + 209, 70, 6, 1, 235, 93, 70, 3, 1, 235, 93, 70, 6, 1, 237, 146, 70, 3, 1, + 237, 146, 70, 6, 1, 248, 25, 70, 3, 1, 248, 25, 19, 240, 210, 98, 19, + 253, 70, 98, 19, 237, 103, 240, 197, 98, 19, 1, 248, 203, 19, 6, 240, + 178, 98, 19, 237, 103, 235, 28, 98, 19, 200, 237, 103, 235, 28, 98, 19, + 6, 1, 246, 245, 19, 3, 1, 246, 245, 19, 6, 237, 103, 240, 197, 98, 19, 6, + 1, 247, 49, 19, 3, 1, 247, 49, 19, 253, 70, 2, 195, 98, 19, 6, 200, 237, + 103, 240, 197, 98, 19, 6, 237, 50, 237, 103, 240, 197, 98, 19, 6, 200, + 237, 50, 237, 103, 240, 197, 98, 28, 6, 1, 254, 237, 2, 237, 36, 28, 6, + 1, 253, 232, 28, 6, 1, 247, 70, 28, 6, 1, 248, 55, 28, 6, 1, 232, 61, + 253, 77, 28, 6, 1, 246, 255, 28, 6, 1, 222, 224, 74, 28, 6, 1, 253, 28, + 28, 6, 1, 253, 117, 28, 6, 1, 247, 86, 28, 6, 1, 247, 43, 28, 6, 1, 242, + 10, 28, 6, 1, 248, 84, 28, 6, 1, 255, 55, 2, 237, 36, 28, 6, 1, 240, 125, + 66, 28, 6, 1, 241, 122, 28, 6, 1, 57, 28, 6, 1, 253, 73, 28, 6, 1, 253, + 95, 28, 6, 1, 247, 13, 28, 6, 1, 253, 20, 28, 6, 1, 253, 77, 28, 6, 1, + 246, 251, 28, 6, 1, 253, 46, 28, 6, 1, 74, 28, 6, 1, 240, 125, 74, 28, 6, + 1, 177, 28, 6, 1, 253, 58, 28, 6, 1, 253, 87, 28, 6, 1, 252, 232, 28, 6, + 1, 73, 28, 6, 1, 253, 0, 28, 6, 1, 253, 99, 28, 6, 1, 253, 116, 28, 6, 1, + 253, 9, 28, 6, 1, 66, 28, 6, 1, 253, 124, 28, 6, 1, 154, 28, 6, 1, 246, + 248, 28, 6, 1, 246, 217, 28, 6, 1, 246, 165, 28, 6, 1, 237, 215, 28, 6, + 1, 248, 58, 53, 28, 6, 1, 241, 24, 28, 6, 1, 246, 227, 53, 28, 6, 1, 72, + 28, 6, 1, 252, 233, 28, 6, 1, 191, 28, 3, 1, 57, 28, 3, 1, 253, 73, 28, + 3, 1, 253, 95, 28, 3, 1, 247, 13, 28, 3, 1, 253, 20, 28, 3, 1, 253, 77, + 28, 3, 1, 246, 251, 28, 3, 1, 253, 46, 28, 3, 1, 74, 28, 3, 1, 240, 125, + 74, 28, 3, 1, 177, 28, 3, 1, 253, 58, 28, 3, 1, 253, 87, 28, 3, 1, 252, + 232, 28, 3, 1, 73, 28, 3, 1, 253, 0, 28, 3, 1, 253, 99, 28, 3, 1, 253, + 116, 28, 3, 1, 253, 9, 28, 3, 1, 66, 28, 3, 1, 253, 124, 28, 3, 1, 154, + 28, 3, 1, 246, 248, 28, 3, 1, 246, 217, 28, 3, 1, 246, 165, 28, 3, 1, + 237, 215, 28, 3, 1, 248, 58, 53, 28, 3, 1, 241, 24, 28, 3, 1, 246, 227, + 53, 28, 3, 1, 72, 28, 3, 1, 252, 233, 28, 3, 1, 191, 28, 3, 1, 254, 237, + 2, 237, 36, 28, 3, 1, 253, 232, 28, 3, 1, 247, 70, 28, 3, 1, 248, 55, 28, + 3, 1, 232, 61, 253, 77, 28, 3, 1, 246, 255, 28, 3, 1, 222, 224, 74, 28, + 3, 1, 253, 28, 28, 3, 1, 253, 117, 28, 3, 1, 247, 86, 28, 3, 1, 247, 43, + 28, 3, 1, 242, 10, 28, 3, 1, 248, 84, 28, 3, 1, 255, 55, 2, 237, 36, 28, + 3, 1, 240, 125, 66, 28, 3, 1, 241, 122, 28, 6, 1, 237, 68, 28, 3, 1, 237, + 68, 28, 6, 1, 247, 25, 28, 3, 1, 247, 25, 28, 6, 1, 233, 93, 72, 28, 3, + 1, 233, 93, 72, 28, 6, 1, 237, 102, 246, 183, 28, 3, 1, 237, 102, 246, + 183, 28, 6, 1, 233, 93, 237, 102, 246, 183, 28, 3, 1, 233, 93, 237, 102, + 246, 183, 28, 6, 1, 253, 47, 246, 183, 28, 3, 1, 253, 47, 246, 183, 28, + 6, 1, 233, 93, 253, 47, 246, 183, 28, 3, 1, 233, 93, 253, 47, 246, 183, + 28, 6, 1, 247, 83, 28, 3, 1, 247, 83, 28, 6, 1, 246, 204, 28, 3, 1, 246, + 204, 28, 6, 1, 240, 226, 28, 3, 1, 240, 226, 28, 6, 1, 233, 151, 28, 3, + 1, 233, 151, 28, 6, 1, 235, 180, 2, 47, 240, 163, 235, 24, 28, 3, 1, 235, + 180, 2, 47, 240, 163, 235, 24, 28, 6, 1, 253, 137, 28, 3, 1, 253, 137, + 28, 6, 1, 241, 226, 237, 68, 28, 3, 1, 241, 226, 237, 68, 28, 6, 1, 240, + 123, 2, 237, 220, 28, 3, 1, 240, 123, 2, 237, 220, 28, 6, 1, 253, 188, + 28, 3, 1, 253, 188, 28, 6, 1, 237, 136, 28, 3, 1, 237, 136, 28, 232, 12, + 53, 36, 28, 237, 220, 36, 28, 227, 74, 36, 28, 172, 232, 35, 36, 28, 186, + 232, 35, 36, 28, 232, 252, 36, 28, 235, 56, 232, 12, 53, 36, 28, 233, + 152, 53, 28, 6, 1, 240, 125, 255, 55, 2, 240, 133, 28, 3, 1, 240, 125, + 255, 55, 2, 240, 133, 28, 6, 1, 233, 233, 53, 28, 3, 1, 233, 233, 53, 28, + 6, 1, 255, 5, 2, 240, 216, 28, 3, 1, 255, 5, 2, 240, 216, 28, 6, 1, 253, + 67, 2, 235, 230, 28, 3, 1, 253, 67, 2, 235, 230, 28, 6, 1, 253, 67, 2, + 82, 28, 3, 1, 253, 67, 2, 82, 28, 6, 1, 253, 67, 2, 237, 44, 88, 28, 3, + 1, 253, 67, 2, 237, 44, 88, 28, 6, 1, 253, 123, 2, 230, 126, 28, 3, 1, + 253, 123, 2, 230, 126, 28, 6, 1, 254, 245, 2, 230, 126, 28, 3, 1, 254, + 245, 2, 230, 126, 28, 6, 1, 188, 2, 230, 126, 28, 3, 1, 188, 2, 230, 126, + 28, 6, 1, 188, 2, 61, 82, 28, 3, 1, 188, 2, 61, 82, 28, 6, 1, 188, 2, 82, + 28, 3, 1, 188, 2, 82, 28, 6, 1, 235, 149, 177, 28, 3, 1, 235, 149, 177, + 28, 6, 1, 254, 199, 2, 230, 126, 28, 3, 1, 254, 199, 2, 230, 126, 28, 6, + 20, 254, 199, 247, 13, 28, 3, 20, 254, 199, 247, 13, 28, 6, 1, 254, 231, + 2, 237, 44, 88, 28, 3, 1, 254, 231, 2, 237, 44, 88, 28, 6, 1, 231, 215, + 154, 28, 3, 1, 231, 215, 154, 28, 6, 1, 255, 6, 2, 230, 126, 28, 3, 1, + 255, 6, 2, 230, 126, 28, 6, 1, 254, 212, 2, 230, 126, 28, 3, 1, 254, 212, + 2, 230, 126, 28, 6, 1, 233, 157, 66, 28, 3, 1, 233, 157, 66, 28, 6, 1, + 233, 157, 97, 2, 82, 28, 3, 1, 233, 157, 97, 2, 82, 28, 6, 1, 254, 204, + 2, 230, 126, 28, 3, 1, 254, 204, 2, 230, 126, 28, 6, 20, 254, 212, 246, + 248, 28, 3, 20, 254, 212, 246, 248, 28, 6, 1, 253, 74, 2, 230, 126, 28, + 3, 1, 253, 74, 2, 230, 126, 28, 6, 1, 253, 74, 2, 61, 82, 28, 3, 1, 253, + 74, 2, 61, 82, 28, 6, 1, 241, 236, 28, 3, 1, 241, 236, 28, 6, 1, 231, + 215, 246, 217, 28, 3, 1, 231, 215, 246, 217, 28, 6, 1, 231, 215, 253, 74, + 2, 230, 126, 28, 3, 1, 231, 215, 253, 74, 2, 230, 126, 28, 1, 232, 32, + 28, 6, 1, 253, 123, 2, 237, 46, 28, 3, 1, 253, 123, 2, 237, 46, 28, 6, 1, + 188, 2, 88, 28, 3, 1, 188, 2, 88, 28, 6, 1, 254, 211, 2, 240, 133, 28, 3, + 1, 254, 211, 2, 240, 133, 28, 6, 1, 254, 199, 2, 88, 28, 3, 1, 254, 199, + 2, 88, 28, 6, 1, 254, 199, 2, 240, 133, 28, 3, 1, 254, 199, 2, 240, 133, + 28, 6, 1, 230, 189, 246, 217, 28, 3, 1, 230, 189, 246, 217, 28, 6, 1, + 254, 213, 2, 240, 133, 28, 3, 1, 254, 213, 2, 240, 133, 28, 3, 1, 232, + 32, 28, 6, 1, 102, 2, 237, 46, 28, 3, 1, 102, 2, 237, 46, 28, 6, 1, 102, + 2, 219, 28, 3, 1, 102, 2, 219, 28, 6, 20, 102, 253, 77, 28, 3, 20, 102, + 253, 77, 28, 6, 1, 254, 237, 2, 237, 46, 28, 3, 1, 254, 237, 2, 237, 46, + 28, 6, 1, 237, 144, 28, 3, 1, 237, 144, 28, 6, 1, 241, 14, 2, 219, 28, 3, + 1, 241, 14, 2, 219, 28, 6, 1, 253, 123, 2, 219, 28, 3, 1, 253, 123, 2, + 219, 28, 6, 1, 254, 245, 2, 219, 28, 3, 1, 254, 245, 2, 219, 28, 6, 1, + 231, 215, 246, 255, 28, 3, 1, 231, 215, 246, 255, 28, 6, 1, 255, 55, 2, + 235, 16, 28, 3, 1, 255, 55, 2, 235, 16, 28, 6, 1, 255, 55, 2, 219, 28, 3, + 1, 255, 55, 2, 219, 28, 6, 1, 130, 2, 219, 28, 3, 1, 130, 2, 219, 28, 6, + 1, 237, 118, 73, 28, 3, 1, 237, 118, 73, 28, 6, 1, 237, 118, 130, 2, 219, + 28, 3, 1, 237, 118, 130, 2, 219, 28, 6, 1, 161, 2, 219, 28, 3, 1, 161, 2, + 219, 28, 6, 1, 97, 2, 235, 16, 28, 3, 1, 97, 2, 235, 16, 28, 6, 1, 97, 2, + 219, 28, 3, 1, 97, 2, 219, 28, 6, 1, 97, 2, 47, 155, 28, 3, 1, 97, 2, 47, + 155, 28, 6, 1, 253, 74, 2, 219, 28, 3, 1, 253, 74, 2, 219, 28, 6, 1, 253, + 67, 2, 230, 126, 28, 3, 1, 253, 67, 2, 230, 126, 28, 6, 1, 247, 119, 2, + 219, 28, 3, 1, 247, 119, 2, 219, 28, 6, 1, 253, 67, 2, 195, 22, 88, 28, + 3, 1, 253, 67, 2, 195, 22, 88, 28, 6, 1, 254, 204, 2, 88, 28, 3, 1, 254, + 204, 2, 88, 28, 6, 1, 254, 204, 2, 82, 28, 3, 1, 254, 204, 2, 82, 28, 6, + 1, 246, 207, 253, 20, 28, 3, 1, 246, 207, 253, 20, 28, 6, 1, 246, 207, + 247, 70, 28, 3, 1, 246, 207, 247, 70, 28, 6, 1, 246, 207, 248, 209, 28, + 3, 1, 246, 207, 248, 209, 28, 6, 1, 246, 207, 241, 123, 28, 3, 1, 246, + 207, 241, 123, 28, 6, 1, 246, 207, 247, 86, 28, 3, 1, 246, 207, 247, 86, + 28, 6, 1, 246, 207, 247, 43, 28, 3, 1, 246, 207, 247, 43, 28, 6, 1, 246, + 207, 248, 164, 28, 3, 1, 246, 207, 248, 164, 28, 6, 1, 246, 207, 248, + 173, 28, 3, 1, 246, 207, 248, 173, 28, 6, 1, 200, 253, 46, 28, 3, 1, 200, + 253, 46, 28, 6, 1, 254, 211, 2, 88, 28, 3, 1, 254, 211, 2, 88, 28, 6, 1, + 247, 17, 28, 3, 1, 247, 17, 28, 6, 1, 247, 48, 28, 3, 1, 247, 48, 28, 6, + 1, 247, 61, 28, 3, 1, 247, 61, 28, 6, 1, 253, 35, 28, 3, 1, 253, 35, 28, + 6, 1, 252, 250, 28, 3, 1, 252, 250, 28, 6, 1, 241, 92, 177, 28, 3, 1, + 241, 92, 177, 28, 6, 1, 254, 211, 2, 237, 44, 88, 28, 3, 1, 254, 211, 2, + 237, 44, 88, 28, 6, 1, 254, 199, 2, 237, 44, 88, 28, 3, 1, 254, 199, 2, + 237, 44, 88, 120, 6, 1, 247, 245, 120, 6, 1, 247, 252, 120, 6, 1, 248, + 53, 120, 6, 1, 252, 203, 120, 6, 1, 247, 137, 120, 6, 1, 252, 226, 120, + 6, 1, 253, 144, 120, 6, 1, 253, 125, 120, 6, 1, 96, 120, 6, 1, 246, 251, + 120, 6, 1, 247, 152, 120, 6, 1, 241, 183, 120, 6, 1, 247, 229, 120, 6, 1, + 252, 215, 120, 6, 1, 248, 81, 120, 6, 1, 253, 21, 120, 6, 1, 252, 213, + 120, 6, 1, 241, 141, 120, 6, 1, 241, 109, 120, 6, 1, 247, 173, 120, 6, 1, + 253, 28, 120, 6, 1, 247, 94, 120, 6, 1, 246, 165, 120, 6, 1, 253, 108, + 120, 6, 1, 246, 176, 120, 6, 1, 247, 188, 120, 6, 1, 241, 165, 120, 6, 1, + 208, 120, 6, 1, 248, 154, 120, 6, 1, 248, 191, 120, 6, 1, 242, 3, 120, 6, + 1, 247, 198, 120, 6, 1, 253, 66, 120, 6, 1, 241, 87, 120, 6, 1, 241, 213, + 120, 6, 1, 247, 156, 120, 6, 1, 253, 187, 120, 6, 1, 247, 75, 120, 52, 1, + 42, 132, 240, 147, 120, 229, 172, 120, 233, 203, 76, 120, 229, 165, 76, + 120, 237, 67, 120, 233, 82, 76, 120, 228, 196, 76, 120, 3, 1, 247, 245, + 120, 3, 1, 247, 252, 120, 3, 1, 248, 53, 120, 3, 1, 252, 203, 120, 3, 1, + 247, 137, 120, 3, 1, 252, 226, 120, 3, 1, 253, 144, 120, 3, 1, 253, 125, + 120, 3, 1, 96, 120, 3, 1, 246, 251, 120, 3, 1, 247, 152, 120, 3, 1, 241, + 183, 120, 3, 1, 247, 229, 120, 3, 1, 252, 215, 120, 3, 1, 248, 81, 120, + 3, 1, 253, 21, 120, 3, 1, 252, 213, 120, 3, 1, 241, 141, 120, 3, 1, 241, + 109, 120, 3, 1, 247, 173, 120, 3, 1, 253, 28, 120, 3, 1, 247, 94, 120, 3, + 1, 246, 165, 120, 3, 1, 253, 108, 120, 3, 1, 246, 176, 120, 3, 1, 247, + 188, 120, 3, 1, 241, 165, 120, 3, 1, 208, 120, 3, 1, 248, 154, 120, 3, 1, + 248, 191, 120, 3, 1, 242, 3, 120, 3, 1, 247, 198, 120, 3, 1, 253, 66, + 120, 3, 1, 241, 87, 120, 3, 1, 241, 213, 120, 3, 1, 247, 156, 120, 3, 1, + 253, 187, 120, 3, 1, 247, 75, 120, 3, 20, 254, 50, 241, 87, 120, 246, + 162, 240, 121, 120, 235, 69, 78, 237, 48, 234, 98, 78, 237, 48, 237, 213, + 78, 237, 48, 230, 108, 78, 237, 48, 242, 36, 238, 38, 78, 237, 48, 242, + 36, 238, 229, 78, 237, 48, 237, 6, 78, 237, 48, 239, 220, 78, 237, 48, + 240, 101, 78, 237, 48, 236, 184, 78, 237, 48, 240, 98, 78, 237, 48, 240, + 34, 78, 237, 48, 235, 173, 78, 237, 48, 238, 236, 236, 161, 78, 237, 48, + 230, 186, 78, 237, 48, 239, 209, 245, 61, 78, 237, 48, 235, 221, 236, 90, + 78, 237, 48, 239, 184, 78, 237, 48, 242, 66, 236, 101, 78, 237, 48, 239, + 121, 78, 237, 48, 232, 223, 78, 237, 48, 236, 153, 78, 237, 48, 239, 104, + 236, 118, 78, 237, 48, 238, 172, 78, 237, 48, 239, 207, 78, 237, 48, 235, + 221, 236, 197, 78, 237, 48, 246, 87, 254, 32, 246, 94, 78, 237, 48, 251, + 97, 78, 237, 48, 244, 7, 78, 237, 48, 243, 55, 78, 237, 48, 240, 109, 78, + 165, 239, 99, 235, 20, 78, 240, 143, 239, 247, 78, 240, 143, 241, 42, + 237, 213, 78, 240, 143, 241, 42, 237, 187, 78, 240, 143, 241, 42, 235, + 134, 78, 240, 143, 238, 6, 78, 240, 143, 240, 49, 78, 240, 143, 237, 213, + 78, 240, 143, 237, 187, 78, 240, 143, 235, 134, 78, 240, 143, 238, 7, 78, + 240, 143, 243, 231, 243, 170, 32, 247, 221, 78, 240, 143, 236, 198, 78, + 240, 143, 237, 200, 145, 237, 206, 78, 240, 143, 239, 105, 78, 229, 161, + 239, 97, 78, 240, 143, 241, 11, 78, 229, 161, 239, 181, 78, 240, 143, + 246, 244, 246, 164, 78, 240, 143, 253, 193, 246, 164, 78, 229, 161, 254, + 149, 239, 182, 78, 165, 240, 116, 246, 164, 78, 165, 203, 246, 164, 78, + 229, 161, 253, 23, 234, 114, 78, 240, 143, 239, 208, 238, 38, 78, 1, 240, + 174, 78, 1, 247, 253, 78, 1, 238, 247, 78, 1, 237, 238, 78, 1, 252, 252, + 78, 1, 247, 221, 78, 1, 240, 102, 78, 1, 248, 60, 78, 1, 247, 210, 78, 1, + 247, 63, 78, 1, 35, 247, 1, 78, 1, 247, 1, 78, 1, 237, 205, 78, 1, 35, + 247, 41, 78, 1, 247, 41, 78, 1, 35, 246, 195, 78, 1, 246, 195, 78, 1, + 236, 205, 78, 1, 241, 97, 78, 1, 35, 253, 0, 78, 1, 253, 0, 78, 1, 35, + 238, 77, 78, 1, 238, 77, 78, 1, 248, 142, 78, 1, 241, 222, 78, 1, 240, + 203, 78, 1, 248, 171, 78, 20, 235, 106, 47, 247, 221, 78, 20, 235, 106, + 253, 200, 247, 63, 78, 20, 235, 106, 47, 247, 63, 78, 229, 161, 235, 173, + 78, 229, 161, 230, 186, 10, 65, 53, 10, 5, 239, 237, 10, 234, 105, 235, + 70, 10, 5, 239, 233, 228, 177, 248, 11, 240, 233, 228, 177, 237, 182, + 240, 233, 10, 251, 175, 228, 177, 253, 129, 241, 194, 53, 228, 177, 253, + 129, 253, 53, 233, 117, 53, 235, 238, 53, 10, 237, 67, 10, 248, 20, 230, + 131, 10, 239, 201, 242, 19, 53, 10, 5, 239, 116, 10, 5, 229, 214, 237, + 171, 231, 185, 10, 5, 237, 171, 232, 79, 10, 5, 230, 94, 235, 244, 10, 5, + 251, 170, 235, 246, 242, 57, 10, 5, 231, 175, 10, 3, 201, 247, 55, 10, 3, + 201, 20, 92, 2, 216, 2, 247, 26, 10, 3, 201, 241, 89, 10, 3, 237, 247, + 10, 3, 237, 176, 10, 3, 238, 12, 10, 230, 140, 10, 237, 49, 56, 229, 161, + 76, 10, 233, 82, 76, 10, 1, 238, 5, 10, 1, 92, 2, 240, 229, 46, 10, 1, + 92, 2, 164, 46, 10, 1, 253, 54, 2, 164, 46, 10, 1, 92, 2, 164, 51, 10, 1, + 62, 2, 164, 46, 10, 1, 240, 174, 10, 1, 247, 251, 10, 1, 252, 210, 234, + 150, 10, 1, 252, 11, 10, 1, 245, 243, 10, 1, 241, 164, 10, 1, 250, 59, + 10, 1, 241, 171, 10, 1, 249, 176, 10, 1, 245, 242, 10, 1, 247, 198, 10, + 1, 241, 89, 10, 1, 241, 67, 10, 1, 239, 244, 10, 1, 251, 209, 10, 1, 249, + 174, 10, 1, 247, 55, 10, 1, 252, 167, 10, 1, 246, 224, 10, 1, 237, 255, + 10, 1, 240, 191, 2, 135, 197, 46, 10, 1, 240, 191, 2, 152, 197, 51, 10, + 1, 240, 176, 62, 2, 233, 70, 196, 10, 1, 240, 176, 62, 2, 135, 197, 46, + 10, 1, 240, 176, 62, 2, 152, 197, 46, 10, 234, 241, 10, 1, 247, 75, 10, + 1, 248, 139, 10, 1, 247, 1, 10, 1, 248, 89, 10, 1, 241, 190, 10, 1, 241, + 205, 10, 1, 250, 64, 10, 1, 247, 60, 10, 1, 92, 233, 172, 10, 1, 247, 26, + 10, 232, 184, 10, 232, 105, 10, 232, 212, 10, 237, 247, 10, 237, 176, 10, + 238, 12, 10, 236, 220, 10, 238, 69, 10, 239, 92, 46, 10, 164, 46, 10, + 164, 51, 10, 231, 195, 240, 174, 10, 233, 70, 237, 176, 10, 165, 246, + 156, 235, 174, 10, 233, 68, 10, 31, 5, 3, 255, 69, 46, 10, 31, 5, 233, + 70, 3, 255, 69, 46, 10, 31, 5, 56, 51, 10, 200, 237, 176, 10, 240, 224, + 2, 135, 240, 169, 228, 177, 21, 240, 126, 228, 177, 21, 118, 228, 177, + 21, 113, 228, 177, 21, 166, 228, 177, 21, 158, 228, 177, 21, 173, 228, + 177, 21, 183, 228, 177, 21, 194, 228, 177, 21, 187, 228, 177, 21, 192, + 10, 235, 86, 53, 10, 235, 163, 230, 131, 10, 232, 12, 230, 131, 10, 246, + 159, 235, 50, 240, 139, 10, 1, 235, 46, 247, 251, 10, 1, 235, 46, 248, + 139, 10, 1, 229, 163, 240, 174, 10, 1, 92, 240, 82, 10, 1, 92, 2, 246, + 239, 164, 46, 10, 1, 92, 2, 246, 239, 164, 51, 10, 1, 201, 238, 5, 10, 1, + 201, 164, 240, 174, 10, 1, 201, 164, 247, 60, 10, 1, 97, 2, 164, 46, 10, + 1, 201, 164, 247, 26, 10, 1, 246, 12, 10, 1, 237, 12, 10, 1, 242, 197, + 10, 1, 252, 210, 2, 240, 147, 10, 1, 252, 210, 2, 152, 197, 64, 230, 134, + 10, 1, 247, 188, 10, 1, 240, 32, 10, 1, 238, 119, 10, 1, 101, 2, 164, 46, + 10, 1, 101, 2, 135, 197, 61, 46, 10, 1, 245, 20, 10, 1, 243, 89, 10, 1, + 101, 2, 152, 197, 46, 10, 1, 240, 30, 10, 1, 234, 242, 10, 1, 243, 30, + 10, 1, 253, 56, 2, 240, 147, 10, 1, 253, 56, 2, 56, 51, 10, 1, 253, 56, + 2, 56, 240, 144, 22, 3, 247, 55, 10, 1, 238, 167, 10, 1, 236, 43, 10, 1, + 249, 210, 10, 1, 253, 56, 2, 152, 197, 64, 230, 134, 10, 1, 253, 56, 2, + 246, 160, 197, 46, 10, 1, 245, 122, 10, 1, 252, 225, 2, 3, 196, 10, 1, + 252, 225, 2, 240, 147, 10, 1, 252, 225, 2, 56, 51, 10, 1, 252, 225, 2, 3, + 255, 69, 51, 10, 1, 252, 225, 2, 56, 240, 144, 22, 56, 46, 10, 1, 252, + 225, 2, 135, 197, 46, 10, 1, 250, 127, 10, 1, 252, 225, 2, 246, 160, 197, + 46, 10, 1, 246, 163, 2, 56, 240, 144, 22, 56, 46, 10, 1, 246, 163, 2, + 152, 197, 51, 10, 1, 246, 163, 2, 152, 197, 240, 144, 22, 152, 197, 46, + 10, 1, 252, 240, 2, 135, 197, 51, 10, 1, 252, 240, 2, 152, 197, 46, 10, + 1, 252, 241, 2, 152, 197, 46, 10, 1, 252, 244, 2, 152, 197, 46, 10, 1, + 235, 46, 247, 75, 10, 1, 252, 235, 2, 56, 244, 152, 51, 10, 1, 252, 235, + 2, 56, 51, 10, 1, 252, 73, 10, 1, 252, 235, 2, 152, 197, 51, 10, 1, 239, + 187, 10, 1, 253, 1, 2, 56, 46, 10, 1, 253, 1, 2, 152, 197, 46, 10, 1, + 239, 61, 10, 1, 241, 77, 247, 1, 10, 1, 252, 214, 2, 240, 147, 10, 1, + 252, 214, 2, 56, 46, 10, 1, 253, 69, 10, 1, 252, 214, 2, 152, 197, 51, + 10, 1, 250, 10, 10, 1, 253, 102, 2, 240, 147, 10, 1, 239, 140, 10, 1, + 253, 102, 2, 135, 197, 51, 10, 1, 243, 158, 10, 1, 253, 102, 2, 152, 197, + 46, 10, 1, 216, 2, 3, 196, 10, 1, 216, 2, 56, 46, 10, 1, 216, 2, 152, + 197, 46, 10, 1, 216, 2, 152, 197, 51, 10, 1, 246, 156, 2, 56, 51, 10, 1, + 246, 156, 235, 174, 10, 1, 239, 225, 10, 1, 246, 156, 2, 240, 147, 10, 1, + 246, 156, 2, 152, 197, 46, 10, 1, 252, 207, 228, 242, 10, 1, 240, 237, 2, + 56, 46, 10, 1, 252, 207, 2, 62, 46, 10, 1, 252, 207, 241, 144, 10, 1, + 252, 207, 247, 34, 2, 164, 46, 10, 1, 252, 210, 235, 129, 241, 144, 10, + 1, 253, 54, 2, 240, 147, 10, 1, 235, 49, 253, 15, 10, 1, 253, 15, 10, 1, + 66, 10, 1, 252, 233, 10, 1, 235, 49, 252, 233, 10, 1, 253, 54, 2, 135, + 197, 46, 10, 1, 253, 95, 10, 1, 240, 176, 247, 26, 10, 1, 62, 2, 240, + 133, 10, 1, 62, 2, 3, 196, 10, 1, 253, 54, 2, 56, 46, 10, 1, 72, 10, 1, + 62, 2, 152, 197, 51, 10, 1, 62, 236, 9, 10, 1, 62, 237, 123, 2, 164, 46, + 10, 246, 162, 240, 121, 10, 1, 253, 4, 10, 3, 201, 20, 252, 240, 2, 216, + 2, 92, 233, 172, 10, 3, 201, 20, 253, 1, 2, 216, 2, 92, 233, 172, 10, 3, + 201, 55, 59, 15, 10, 3, 201, 216, 240, 174, 10, 3, 201, 241, 164, 10, 3, + 201, 152, 240, 169, 10, 3, 201, 241, 67, 10, 252, 255, 106, 242, 68, 10, + 241, 75, 106, 254, 145, 254, 211, 243, 178, 10, 3, 201, 235, 98, 240, + 126, 10, 3, 201, 237, 15, 229, 211, 240, 126, 10, 3, 201, 235, 46, 247, + 148, 106, 241, 171, 10, 3, 201, 55, 44, 15, 10, 3, 184, 241, 67, 10, 3, + 201, 239, 91, 10, 3, 247, 60, 10, 3, 247, 26, 10, 3, 201, 247, 26, 10, 3, + 201, 241, 205, 10, 241, 214, 106, 236, 204, 10, 240, 195, 237, 95, 184, + 240, 121, 10, 240, 195, 237, 95, 201, 240, 121, 10, 235, 98, 201, 247, + 20, 2, 238, 219, 235, 111, 10, 3, 184, 241, 190, 10, 1, 253, 56, 2, 233, + 70, 196, 10, 1, 252, 225, 2, 233, 70, 196, 233, 81, 228, 177, 21, 240, + 126, 233, 81, 228, 177, 21, 118, 233, 81, 228, 177, 21, 113, 233, 81, + 228, 177, 21, 166, 233, 81, 228, 177, 21, 158, 233, 81, 228, 177, 21, + 173, 233, 81, 228, 177, 21, 183, 233, 81, 228, 177, 21, 194, 233, 81, + 228, 177, 21, 187, 233, 81, 228, 177, 21, 192, 10, 1, 240, 129, 2, 56, + 51, 10, 1, 252, 237, 2, 56, 51, 10, 1, 240, 157, 2, 56, 51, 10, 5, 238, + 60, 230, 142, 10, 5, 238, 60, 229, 52, 247, 173, 10, 1, 252, 207, 2, 233, + 70, 196, 151, 252, 255, 106, 231, 118, 151, 229, 194, 246, 162, 240, 121, + 151, 232, 8, 246, 162, 240, 121, 151, 229, 194, 237, 66, 151, 232, 8, + 237, 66, 151, 169, 237, 66, 151, 240, 194, 237, 191, 240, 132, 151, 240, + 194, 237, 191, 237, 41, 151, 229, 194, 240, 194, 237, 191, 240, 132, 151, + 232, 8, 240, 194, 237, 191, 237, 41, 151, 228, 230, 151, 233, 166, 236, + 173, 151, 233, 166, 231, 101, 151, 233, 166, 229, 231, 151, 228, 196, 76, + 151, 1, 237, 227, 151, 1, 229, 163, 237, 227, 151, 1, 242, 202, 151, 1, + 238, 231, 151, 1, 243, 113, 232, 23, 151, 1, 236, 40, 151, 1, 235, 46, + 238, 169, 241, 224, 151, 1, 252, 252, 151, 1, 247, 60, 151, 1, 241, 89, + 151, 1, 243, 172, 151, 1, 245, 241, 151, 1, 252, 15, 232, 23, 151, 1, + 246, 100, 151, 1, 252, 156, 252, 252, 151, 1, 244, 49, 151, 1, 236, 129, + 151, 1, 251, 16, 151, 1, 246, 195, 151, 1, 233, 234, 151, 1, 35, 233, + 234, 151, 1, 72, 151, 1, 253, 0, 151, 1, 200, 253, 0, 151, 1, 239, 232, + 151, 1, 245, 91, 151, 1, 241, 224, 151, 1, 240, 203, 151, 1, 252, 9, 151, + 1, 235, 15, 238, 122, 151, 1, 235, 15, 236, 95, 151, 1, 235, 15, 234, 50, + 151, 237, 211, 46, 151, 237, 211, 51, 151, 237, 211, 235, 120, 151, 237, + 226, 46, 151, 237, 226, 51, 151, 237, 226, 235, 120, 151, 241, 221, 46, + 151, 241, 221, 51, 151, 237, 50, 242, 39, 229, 164, 151, 237, 50, 242, + 39, 234, 3, 151, 241, 152, 46, 151, 241, 152, 51, 151, 230, 65, 235, 120, + 151, 241, 128, 46, 151, 241, 128, 51, 151, 239, 231, 151, 233, 204, 246, + 164, 151, 231, 130, 151, 233, 15, 151, 135, 61, 197, 46, 151, 135, 61, + 197, 51, 151, 152, 197, 46, 151, 152, 197, 51, 151, 235, 78, 246, 167, + 46, 151, 235, 78, 246, 167, 51, 151, 239, 123, 151, 234, 13, 151, 1, 235, + 137, 240, 103, 151, 1, 235, 137, 239, 68, 151, 1, 235, 137, 253, 147, 10, + 1, 252, 217, 2, 152, 197, 229, 27, 51, 10, 1, 252, 217, 2, 56, 240, 144, + 22, 152, 197, 46, 10, 1, 252, 217, 2, 152, 197, 233, 78, 235, 18, 51, 10, + 1, 252, 217, 2, 152, 197, 233, 78, 235, 18, 240, 144, 22, 135, 197, 46, + 10, 1, 252, 217, 2, 135, 197, 240, 144, 22, 56, 46, 10, 1, 252, 217, 2, + 233, 70, 3, 255, 69, 51, 10, 1, 252, 217, 2, 3, 196, 10, 1, 101, 2, 135, + 197, 46, 10, 1, 101, 2, 152, 197, 233, 78, 235, 18, 51, 10, 1, 253, 56, + 2, 135, 197, 230, 161, 240, 144, 22, 3, 247, 55, 10, 1, 253, 56, 2, 233, + 70, 3, 255, 69, 51, 10, 1, 252, 225, 2, 82, 10, 1, 246, 163, 2, 246, 160, + 197, 46, 10, 1, 252, 244, 2, 135, 197, 46, 10, 1, 252, 244, 2, 152, 197, + 233, 78, 231, 191, 46, 10, 1, 252, 244, 2, 135, 197, 230, 161, 46, 10, 1, + 252, 235, 2, 135, 197, 51, 10, 1, 252, 235, 2, 152, 197, 233, 78, 235, + 18, 51, 10, 1, 240, 191, 2, 56, 46, 10, 1, 240, 191, 2, 152, 197, 46, 10, + 1, 240, 191, 2, 152, 197, 233, 78, 235, 18, 51, 10, 1, 55, 2, 56, 46, 10, + 1, 55, 2, 56, 51, 10, 1, 246, 156, 2, 135, 197, 51, 10, 1, 246, 156, 2, + 3, 247, 55, 10, 1, 246, 156, 2, 3, 196, 10, 1, 216, 2, 125, 10, 1, 252, + 225, 2, 135, 197, 230, 161, 46, 10, 1, 252, 225, 2, 164, 46, 10, 1, 246, + 163, 2, 135, 197, 230, 161, 46, 10, 1, 101, 2, 3, 10, 1, 252, 241, 51, + 10, 1, 101, 2, 3, 10, 1, 252, 241, 22, 135, 240, 169, 10, 1, 246, 163, 2, + 3, 10, 1, 252, 241, 22, 135, 240, 169, 10, 1, 252, 225, 2, 3, 10, 1, 252, + 241, 22, 135, 240, 169, 10, 1, 101, 2, 3, 10, 1, 252, 241, 46, 10, 1, 92, + 2, 233, 81, 228, 177, 21, 135, 46, 10, 1, 92, 2, 233, 81, 228, 177, 21, + 152, 46, 10, 1, 240, 176, 62, 2, 233, 81, 228, 177, 21, 135, 46, 10, 1, + 240, 176, 62, 2, 233, 81, 228, 177, 21, 152, 46, 10, 1, 240, 176, 62, 2, + 233, 81, 228, 177, 21, 246, 160, 51, 10, 1, 253, 54, 2, 233, 81, 228, + 177, 21, 135, 46, 10, 1, 253, 54, 2, 233, 81, 228, 177, 21, 152, 46, 10, + 1, 62, 237, 123, 2, 233, 81, 228, 177, 21, 135, 46, 10, 1, 62, 237, 123, + 2, 233, 81, 228, 177, 21, 152, 46, 10, 1, 101, 2, 233, 81, 228, 177, 21, + 246, 160, 51, 10, 1, 246, 163, 2, 233, 81, 228, 177, 21, 246, 160, 46, + 10, 1, 246, 163, 2, 233, 70, 196, 10, 1, 252, 214, 2, 135, 197, 46, 237, + 37, 1, 247, 14, 237, 37, 1, 231, 141, 237, 37, 1, 239, 155, 237, 37, 1, + 247, 100, 237, 37, 1, 247, 247, 237, 37, 1, 231, 97, 237, 37, 1, 239, 54, + 237, 37, 1, 238, 94, 237, 37, 1, 240, 71, 237, 37, 1, 239, 100, 237, 37, + 1, 238, 211, 237, 37, 1, 236, 47, 237, 37, 1, 241, 18, 237, 37, 1, 239, + 78, 237, 37, 1, 238, 228, 237, 37, 1, 231, 74, 237, 37, 1, 239, 239, 237, + 37, 1, 232, 107, 237, 37, 1, 233, 67, 237, 37, 1, 233, 51, 237, 37, 1, + 247, 117, 237, 37, 1, 232, 246, 237, 37, 1, 232, 211, 237, 37, 1, 230, + 234, 237, 37, 1, 246, 10, 237, 37, 1, 241, 156, 237, 37, 1, 244, 52, 237, + 37, 1, 237, 1, 237, 37, 1, 248, 207, 237, 37, 1, 236, 222, 237, 37, 1, + 236, 203, 237, 37, 1, 236, 39, 237, 37, 1, 96, 237, 37, 1, 253, 65, 237, + 37, 1, 242, 49, 237, 37, 1, 236, 94, 237, 37, 1, 239, 206, 237, 37, 1, + 240, 81, 237, 37, 233, 252, 237, 37, 230, 220, 237, 37, 234, 123, 237, + 37, 231, 61, 237, 37, 235, 1, 237, 37, 231, 111, 237, 37, 234, 90, 237, + 37, 231, 68, 237, 37, 234, 173, 237, 37, 231, 110, 237, 37, 238, 69, 237, + 37, 1, 247, 179, 204, 21, 240, 126, 204, 21, 118, 204, 21, 113, 204, 21, + 166, 204, 21, 158, 204, 21, 173, 204, 21, 183, 204, 21, 194, 204, 21, + 187, 204, 21, 192, 204, 1, 57, 204, 1, 252, 231, 204, 1, 74, 204, 1, 72, + 204, 1, 66, 204, 1, 252, 220, 204, 1, 73, 204, 1, 229, 244, 204, 1, 199, + 204, 1, 252, 211, 204, 1, 213, 204, 1, 252, 202, 204, 1, 252, 213, 204, + 1, 246, 176, 204, 1, 252, 203, 204, 1, 208, 204, 1, 246, 221, 204, 1, + 252, 204, 204, 1, 248, 46, 204, 1, 252, 234, 204, 1, 177, 204, 1, 252, + 200, 204, 1, 255, 13, 235, 231, 204, 1, 198, 204, 1, 246, 181, 204, 1, + 252, 201, 204, 1, 154, 204, 1, 252, 208, 204, 1, 191, 204, 1, 254, 119, + 235, 231, 204, 1, 247, 154, 252, 213, 204, 1, 247, 154, 246, 176, 204, 1, + 247, 154, 208, 204, 36, 240, 125, 201, 240, 167, 204, 36, 240, 125, 184, + 240, 167, 204, 36, 240, 125, 237, 115, 240, 167, 204, 36, 182, 230, 181, + 240, 167, 204, 36, 182, 201, 240, 167, 204, 36, 182, 184, 240, 167, 204, + 36, 182, 237, 115, 240, 167, 204, 36, 229, 40, 76, 204, 36, 47, 56, 46, + 204, 201, 206, 229, 172, 204, 184, 206, 229, 172, 204, 14, 255, 41, 236, + 46, 204, 14, 230, 64, 204, 237, 67, 204, 229, 165, 76, 204, 230, 75, 94, + 5, 228, 184, 94, 5, 231, 206, 94, 5, 233, 102, 94, 1, 240, 125, 57, 94, + 1, 57, 94, 1, 252, 212, 94, 1, 74, 94, 1, 252, 216, 94, 1, 66, 94, 1, + 252, 224, 94, 1, 153, 146, 94, 1, 153, 149, 94, 1, 237, 108, 72, 94, 1, + 240, 125, 72, 94, 1, 72, 94, 1, 252, 221, 94, 1, 237, 108, 73, 94, 1, + 240, 125, 73, 94, 1, 73, 94, 1, 252, 222, 94, 1, 177, 94, 1, 246, 178, + 94, 1, 252, 205, 94, 1, 246, 202, 94, 1, 246, 169, 94, 1, 252, 215, 94, + 1, 246, 176, 94, 1, 252, 213, 94, 1, 246, 213, 94, 1, 246, 181, 94, 1, + 246, 191, 94, 1, 240, 150, 94, 1, 246, 192, 94, 1, 240, 166, 94, 1, 246, + 203, 94, 1, 252, 202, 94, 1, 246, 173, 94, 1, 252, 203, 94, 1, 246, 196, + 94, 1, 252, 201, 94, 1, 241, 203, 94, 1, 213, 94, 1, 246, 182, 94, 1, + 252, 211, 94, 1, 246, 199, 94, 1, 198, 94, 1, 191, 94, 1, 208, 94, 1, + 246, 221, 94, 1, 252, 200, 94, 1, 246, 225, 94, 1, 241, 48, 94, 1, 252, + 243, 94, 1, 246, 165, 94, 1, 246, 190, 94, 1, 252, 204, 94, 1, 154, 94, + 5, 237, 125, 94, 5, 231, 220, 94, 31, 5, 252, 212, 94, 31, 5, 74, 94, 31, + 5, 252, 216, 94, 31, 5, 66, 94, 31, 5, 252, 224, 94, 31, 5, 153, 146, 94, + 31, 5, 153, 252, 249, 94, 31, 5, 237, 108, 72, 94, 31, 5, 240, 125, 72, + 94, 31, 5, 72, 94, 31, 5, 252, 221, 94, 31, 5, 237, 108, 73, 94, 31, 5, + 240, 125, 73, 94, 31, 5, 73, 94, 31, 5, 252, 222, 94, 5, 235, 43, 94, + 253, 128, 94, 237, 165, 5, 237, 14, 94, 237, 165, 5, 232, 68, 94, 240, + 163, 235, 24, 94, 240, 159, 235, 24, 94, 1, 253, 35, 94, 1, 241, 173, 94, + 1, 241, 142, 94, 1, 252, 226, 94, 1, 238, 174, 94, 1, 247, 48, 94, 1, + 252, 234, 94, 1, 247, 236, 94, 1, 153, 252, 249, 94, 1, 153, 252, 245, + 94, 31, 5, 153, 149, 94, 31, 5, 153, 252, 245, 94, 237, 109, 94, 47, 237, + 109, 94, 21, 240, 126, 94, 21, 118, 94, 21, 113, 94, 21, 166, 94, 21, + 158, 94, 21, 173, 94, 21, 183, 94, 21, 194, 94, 21, 187, 94, 21, 192, 94, + 228, 196, 53, 94, 5, 201, 236, 234, 246, 164, 94, 1, 237, 108, 57, 94, 1, + 247, 77, 94, 1, 248, 70, 94, 1, 235, 31, 240, 121, 94, 1, 243, 34, 94, 1, + 247, 66, 121, 5, 228, 184, 121, 5, 231, 206, 121, 5, 233, 102, 121, 1, + 57, 121, 1, 252, 212, 121, 1, 74, 121, 1, 252, 216, 121, 1, 66, 121, 1, + 252, 224, 121, 1, 153, 146, 121, 1, 153, 149, 121, 1, 72, 121, 1, 252, + 221, 121, 1, 73, 121, 1, 252, 222, 121, 1, 177, 121, 1, 246, 178, 121, 1, + 252, 205, 121, 1, 246, 202, 121, 1, 246, 169, 121, 1, 252, 215, 121, 1, + 246, 176, 121, 1, 252, 213, 121, 1, 246, 213, 121, 1, 246, 181, 121, 1, + 246, 191, 121, 1, 240, 150, 121, 1, 246, 192, 121, 1, 240, 166, 121, 1, + 246, 203, 121, 1, 252, 202, 121, 1, 246, 173, 121, 1, 252, 203, 121, 1, + 246, 196, 121, 1, 252, 201, 121, 1, 213, 121, 1, 246, 182, 121, 1, 252, + 211, 121, 1, 246, 199, 121, 1, 198, 121, 1, 191, 121, 1, 208, 121, 1, + 252, 200, 121, 1, 246, 165, 121, 1, 246, 190, 121, 1, 252, 204, 121, 1, + 154, 121, 5, 237, 125, 121, 5, 231, 220, 121, 31, 5, 252, 212, 121, 31, + 5, 74, 121, 31, 5, 252, 216, 121, 31, 5, 66, 121, 31, 5, 252, 224, 121, + 31, 5, 153, 146, 121, 31, 5, 153, 252, 249, 121, 31, 5, 72, 121, 31, 5, + 252, 221, 121, 31, 5, 73, 121, 31, 5, 252, 222, 121, 5, 235, 43, 121, 1, + 239, 67, 252, 202, 121, 254, 233, 237, 101, 76, 121, 1, 246, 221, 121, 1, + 247, 48, 121, 1, 247, 236, 121, 1, 153, 252, 249, 121, 1, 153, 252, 245, + 121, 31, 5, 153, 149, 121, 31, 5, 153, 252, 245, 121, 21, 240, 126, 121, + 21, 118, 121, 21, 113, 121, 21, 166, 121, 21, 158, 121, 21, 173, 121, 21, + 183, 121, 21, 194, 121, 21, 187, 121, 21, 192, 121, 1, 254, 224, 2, 237, + 44, 231, 236, 121, 1, 254, 224, 2, 203, 231, 236, 121, 240, 234, 76, 121, + 240, 234, 53, 121, 233, 112, 231, 227, 118, 121, 233, 112, 231, 227, 113, + 121, 233, 112, 231, 227, 166, 121, 233, 112, 231, 227, 158, 121, 233, + 112, 231, 227, 168, 250, 215, 247, 212, 252, 230, 228, 238, 121, 233, + 112, 229, 246, 233, 135, 121, 235, 179, 148, 5, 248, 228, 237, 232, 148, + 5, 237, 232, 148, 5, 233, 102, 148, 1, 57, 148, 1, 252, 212, 148, 1, 74, + 148, 1, 252, 216, 148, 1, 66, 148, 1, 252, 224, 148, 1, 252, 231, 148, 1, + 252, 221, 148, 1, 252, 220, 148, 1, 252, 222, 148, 1, 177, 148, 1, 246, + 178, 148, 1, 252, 205, 148, 1, 246, 202, 148, 1, 246, 169, 148, 1, 252, + 215, 148, 1, 246, 176, 148, 1, 252, 213, 148, 1, 246, 213, 148, 1, 246, + 181, 148, 1, 246, 191, 148, 1, 240, 150, 148, 1, 246, 192, 148, 1, 240, + 166, 148, 1, 246, 203, 148, 1, 252, 202, 148, 1, 246, 173, 148, 1, 252, + 203, 148, 1, 246, 196, 148, 1, 252, 201, 148, 1, 213, 148, 1, 246, 182, + 148, 1, 252, 211, 148, 1, 246, 199, 148, 1, 198, 148, 1, 191, 148, 1, + 208, 148, 1, 252, 200, 148, 1, 246, 225, 148, 1, 252, 243, 148, 1, 246, + 165, 148, 1, 252, 204, 148, 1, 154, 148, 5, 237, 125, 148, 31, 5, 252, + 212, 148, 31, 5, 74, 148, 31, 5, 252, 216, 148, 31, 5, 66, 148, 31, 5, + 252, 224, 148, 31, 5, 252, 231, 148, 31, 5, 252, 221, 148, 31, 5, 252, + 220, 148, 31, 5, 252, 222, 148, 5, 235, 43, 148, 5, 240, 64, 148, 1, 241, + 173, 148, 1, 241, 142, 148, 1, 252, 226, 148, 1, 246, 221, 148, 1, 252, + 234, 148, 21, 240, 126, 148, 21, 118, 148, 21, 113, 148, 21, 166, 148, + 21, 158, 148, 21, 173, 148, 21, 183, 148, 21, 194, 148, 21, 187, 148, 21, + 192, 148, 240, 44, 148, 238, 89, 148, 250, 122, 148, 252, 60, 148, 255, + 25, 239, 174, 148, 5, 237, 32, 137, 5, 228, 184, 137, 5, 231, 206, 137, + 5, 233, 102, 137, 1, 57, 137, 1, 252, 212, 137, 1, 74, 137, 1, 252, 216, + 137, 1, 66, 137, 1, 252, 224, 137, 1, 153, 146, 137, 1, 153, 149, 137, + 31, 237, 108, 72, 137, 1, 72, 137, 1, 252, 221, 137, 31, 237, 108, 73, + 137, 1, 73, 137, 1, 252, 222, 137, 1, 177, 137, 1, 246, 178, 137, 1, 252, + 205, 137, 1, 246, 202, 137, 1, 246, 169, 137, 1, 252, 215, 137, 1, 246, + 176, 137, 1, 252, 213, 137, 1, 246, 213, 137, 1, 246, 181, 137, 1, 246, + 191, 137, 1, 240, 150, 137, 1, 246, 192, 137, 1, 240, 166, 137, 1, 246, + 203, 137, 1, 252, 202, 137, 1, 246, 173, 137, 1, 252, 203, 137, 1, 246, + 196, 137, 1, 252, 201, 137, 1, 213, 137, 1, 246, 182, 137, 1, 252, 211, + 137, 1, 246, 199, 137, 1, 198, 137, 1, 191, 137, 1, 208, 137, 1, 252, + 200, 137, 1, 246, 225, 137, 1, 252, 243, 137, 1, 246, 165, 137, 1, 246, + 190, 137, 1, 252, 204, 137, 1, 154, 137, 5, 237, 125, 137, 5, 231, 220, + 137, 31, 5, 252, 212, 137, 31, 5, 74, 137, 31, 5, 252, 216, 137, 31, 5, + 66, 137, 31, 5, 252, 224, 137, 31, 5, 153, 146, 137, 31, 5, 153, 252, + 249, 137, 31, 5, 237, 108, 72, 137, 31, 5, 72, 137, 31, 5, 252, 221, 137, + 31, 5, 237, 108, 73, 137, 31, 5, 73, 137, 31, 5, 252, 222, 137, 5, 235, + 43, 137, 253, 128, 137, 1, 153, 252, 249, 137, 1, 153, 252, 245, 137, 31, + 5, 153, 149, 137, 31, 5, 153, 252, 245, 137, 21, 240, 126, 137, 21, 118, + 137, 21, 113, 137, 21, 166, 137, 21, 158, 137, 21, 173, 137, 21, 183, + 137, 21, 194, 137, 21, 187, 137, 21, 192, 137, 240, 234, 53, 134, 5, 228, + 184, 134, 5, 231, 206, 134, 5, 233, 102, 134, 1, 57, 134, 1, 252, 212, + 134, 1, 74, 134, 1, 252, 216, 134, 1, 66, 134, 1, 252, 224, 134, 1, 153, + 146, 134, 1, 153, 149, 134, 1, 72, 134, 1, 252, 221, 134, 1, 73, 134, 1, + 252, 222, 134, 1, 177, 134, 1, 246, 178, 134, 1, 252, 205, 134, 1, 246, + 202, 134, 1, 246, 169, 134, 1, 252, 215, 134, 1, 246, 176, 134, 1, 252, + 213, 134, 1, 246, 213, 134, 1, 246, 181, 134, 1, 246, 191, 134, 1, 240, + 150, 134, 1, 246, 192, 134, 1, 240, 166, 134, 1, 246, 203, 134, 1, 252, + 202, 134, 1, 246, 173, 134, 1, 252, 203, 134, 1, 246, 196, 134, 1, 252, + 201, 134, 1, 213, 134, 1, 246, 182, 134, 1, 252, 211, 134, 1, 246, 199, + 134, 1, 198, 134, 1, 191, 134, 1, 208, 134, 1, 252, 200, 134, 1, 246, + 225, 134, 1, 252, 243, 134, 1, 246, 165, 134, 1, 246, 190, 134, 1, 252, + 204, 134, 1, 154, 134, 5, 237, 125, 134, 5, 231, 220, 134, 31, 5, 252, + 212, 134, 31, 5, 74, 134, 31, 5, 252, 216, 134, 31, 5, 66, 134, 31, 5, + 252, 224, 134, 31, 5, 153, 146, 134, 31, 5, 153, 252, 249, 134, 31, 5, + 72, 134, 31, 5, 252, 221, 134, 31, 5, 73, 134, 31, 5, 252, 222, 134, 5, + 235, 43, 134, 254, 227, 237, 101, 76, 134, 254, 233, 237, 101, 76, 134, + 1, 246, 221, 134, 1, 247, 48, 134, 1, 247, 236, 134, 1, 153, 252, 249, + 134, 1, 153, 252, 245, 134, 31, 5, 153, 149, 134, 31, 5, 153, 252, 245, + 134, 21, 240, 126, 134, 21, 118, 134, 21, 113, 134, 21, 166, 134, 21, + 158, 134, 21, 173, 134, 21, 183, 134, 21, 194, 134, 21, 187, 134, 21, + 192, 134, 235, 179, 134, 1, 252, 208, 160, 5, 231, 206, 160, 5, 233, 102, + 160, 1, 57, 160, 1, 252, 212, 160, 1, 74, 160, 1, 252, 216, 160, 1, 66, + 160, 1, 252, 224, 160, 1, 72, 160, 1, 252, 231, 160, 1, 252, 221, 160, 1, + 73, 160, 1, 252, 220, 160, 1, 252, 222, 160, 1, 177, 160, 1, 246, 169, + 160, 1, 252, 215, 160, 1, 252, 213, 160, 1, 246, 181, 160, 1, 246, 191, + 160, 1, 246, 203, 160, 1, 252, 202, 160, 1, 252, 201, 160, 1, 241, 203, + 160, 1, 213, 160, 1, 198, 160, 1, 191, 160, 1, 208, 160, 1, 246, 221, + 160, 1, 252, 200, 160, 1, 246, 225, 160, 1, 241, 48, 160, 1, 252, 243, + 160, 1, 246, 165, 160, 1, 246, 190, 160, 1, 252, 204, 160, 1, 154, 160, + 31, 5, 252, 212, 160, 31, 5, 74, 160, 31, 5, 252, 216, 160, 31, 5, 66, + 160, 31, 5, 252, 224, 160, 31, 5, 72, 160, 31, 5, 252, 231, 160, 31, 5, + 252, 221, 160, 31, 5, 73, 160, 31, 5, 252, 220, 160, 31, 5, 252, 222, + 160, 5, 235, 43, 160, 253, 128, 160, 254, 233, 237, 101, 76, 160, 21, + 240, 126, 160, 21, 118, 160, 21, 113, 160, 21, 166, 160, 21, 158, 160, + 21, 173, 160, 21, 183, 160, 21, 194, 160, 21, 187, 160, 21, 192, 160, 65, + 246, 179, 160, 65, 168, 233, 75, 160, 65, 168, 231, 196, 160, 252, 218, + 53, 160, 244, 150, 53, 160, 248, 200, 53, 160, 243, 53, 53, 160, 238, + 163, 53, 160, 254, 203, 64, 53, 160, 240, 234, 53, 160, 65, 53, 119, 5, + 228, 184, 119, 5, 231, 206, 119, 5, 233, 102, 119, 1, 57, 119, 1, 252, + 212, 119, 1, 74, 119, 1, 252, 216, 119, 1, 66, 119, 1, 252, 224, 119, 1, + 153, 146, 119, 1, 153, 149, 119, 1, 72, 119, 1, 252, 231, 119, 1, 252, + 221, 119, 1, 73, 119, 1, 252, 220, 119, 1, 252, 222, 119, 1, 177, 119, 1, + 246, 178, 119, 1, 252, 205, 119, 1, 246, 202, 119, 1, 246, 169, 119, 1, + 252, 215, 119, 1, 246, 176, 119, 1, 252, 213, 119, 1, 246, 213, 119, 1, + 246, 181, 119, 1, 246, 191, 119, 1, 240, 150, 119, 1, 246, 192, 119, 1, + 240, 166, 119, 1, 246, 203, 119, 1, 252, 202, 119, 1, 246, 173, 119, 1, + 252, 203, 119, 1, 246, 196, 119, 1, 252, 201, 119, 1, 213, 119, 1, 246, + 182, 119, 1, 252, 211, 119, 1, 246, 199, 119, 1, 198, 119, 1, 191, 119, + 1, 208, 119, 1, 246, 221, 119, 1, 252, 200, 119, 1, 246, 225, 119, 1, + 252, 243, 119, 1, 246, 165, 119, 1, 246, 190, 119, 1, 252, 204, 119, 1, + 154, 119, 5, 231, 220, 119, 31, 5, 252, 212, 119, 31, 5, 74, 119, 31, 5, + 252, 216, 119, 31, 5, 66, 119, 31, 5, 252, 224, 119, 31, 5, 153, 146, + 119, 31, 5, 153, 252, 249, 119, 31, 5, 72, 119, 31, 5, 252, 231, 119, 31, + 5, 252, 221, 119, 31, 5, 73, 119, 31, 5, 252, 220, 119, 31, 5, 252, 222, + 119, 5, 235, 43, 119, 237, 101, 76, 119, 254, 227, 237, 101, 76, 119, 1, + 246, 216, 119, 1, 246, 254, 119, 1, 153, 252, 249, 119, 1, 153, 252, 245, + 119, 31, 5, 153, 149, 119, 31, 5, 153, 252, 245, 119, 21, 240, 126, 119, + 21, 118, 119, 21, 113, 119, 21, 166, 119, 21, 158, 119, 21, 173, 119, 21, + 183, 119, 21, 194, 119, 21, 187, 119, 21, 192, 119, 233, 76, 21, 247, 27, + 32, 253, 156, 237, 126, 106, 158, 119, 233, 76, 21, 168, 32, 253, 156, + 237, 126, 106, 158, 119, 233, 76, 21, 135, 32, 253, 156, 237, 126, 106, + 158, 119, 233, 76, 21, 152, 32, 253, 156, 237, 126, 106, 158, 119, 233, + 76, 21, 168, 32, 247, 138, 237, 126, 106, 158, 119, 233, 76, 21, 135, 32, + 247, 138, 237, 126, 106, 158, 119, 233, 76, 21, 152, 32, 247, 138, 237, + 126, 106, 158, 119, 5, 240, 56, 129, 5, 231, 206, 129, 5, 233, 102, 129, + 1, 57, 129, 1, 252, 212, 129, 1, 74, 129, 1, 252, 216, 129, 1, 66, 129, + 1, 252, 224, 129, 1, 153, 146, 129, 1, 153, 149, 129, 1, 72, 129, 1, 252, + 231, 129, 1, 252, 221, 129, 1, 73, 129, 1, 252, 220, 129, 1, 252, 222, + 129, 1, 177, 129, 1, 246, 178, 129, 1, 252, 205, 129, 1, 246, 202, 129, + 1, 246, 169, 129, 1, 252, 215, 129, 1, 246, 176, 129, 1, 252, 213, 129, + 1, 246, 213, 129, 1, 246, 181, 129, 1, 246, 191, 129, 1, 240, 150, 129, + 1, 246, 192, 129, 1, 240, 166, 129, 1, 246, 203, 129, 1, 252, 202, 129, + 1, 246, 173, 129, 1, 252, 203, 129, 1, 246, 196, 129, 1, 252, 201, 129, + 1, 213, 129, 1, 246, 182, 129, 1, 252, 211, 129, 1, 246, 199, 129, 1, + 198, 129, 1, 191, 129, 1, 208, 129, 1, 246, 221, 129, 1, 252, 200, 129, + 1, 246, 225, 129, 1, 252, 243, 129, 1, 246, 165, 129, 1, 246, 190, 129, + 1, 252, 204, 129, 1, 154, 129, 5, 237, 125, 129, 5, 231, 220, 129, 31, 5, + 252, 212, 129, 31, 5, 74, 129, 31, 5, 252, 216, 129, 31, 5, 66, 129, 31, + 5, 252, 224, 129, 31, 5, 153, 146, 129, 31, 5, 153, 252, 249, 129, 31, 5, + 72, 129, 31, 5, 252, 231, 129, 31, 5, 252, 221, 129, 31, 5, 73, 129, 31, + 5, 252, 220, 129, 31, 5, 252, 222, 129, 5, 235, 43, 129, 237, 101, 76, + 129, 254, 227, 237, 101, 76, 129, 1, 252, 234, 129, 1, 153, 252, 249, + 129, 1, 153, 252, 245, 129, 31, 5, 153, 149, 129, 31, 5, 153, 252, 245, + 129, 21, 240, 126, 129, 21, 118, 129, 21, 113, 129, 21, 166, 129, 21, + 158, 129, 21, 173, 129, 21, 183, 129, 21, 194, 129, 21, 187, 129, 21, + 192, 129, 5, 229, 33, 129, 5, 229, 160, 114, 5, 231, 206, 114, 5, 233, + 102, 114, 1, 57, 114, 1, 252, 212, 114, 1, 74, 114, 1, 252, 216, 114, 1, + 66, 114, 1, 252, 224, 114, 1, 153, 146, 114, 1, 153, 149, 114, 1, 72, + 114, 1, 252, 231, 114, 1, 252, 221, 114, 1, 73, 114, 1, 252, 220, 114, 1, + 252, 222, 114, 1, 177, 114, 1, 246, 178, 114, 1, 252, 205, 114, 1, 246, + 202, 114, 1, 246, 169, 114, 1, 252, 215, 114, 1, 246, 176, 114, 1, 252, + 213, 114, 1, 246, 213, 114, 1, 246, 181, 114, 1, 246, 191, 114, 1, 240, + 150, 114, 1, 246, 192, 114, 1, 240, 166, 114, 1, 246, 203, 114, 1, 252, + 202, 114, 1, 246, 173, 114, 1, 252, 203, 114, 1, 246, 196, 114, 1, 252, + 201, 114, 1, 213, 114, 1, 246, 182, 114, 1, 252, 211, 114, 1, 246, 199, + 114, 1, 198, 114, 1, 191, 114, 1, 208, 114, 1, 246, 221, 114, 1, 252, + 200, 114, 1, 246, 225, 114, 1, 241, 48, 114, 1, 252, 243, 114, 1, 246, + 165, 114, 1, 246, 190, 114, 1, 252, 204, 114, 1, 154, 114, 5, 231, 220, + 114, 31, 5, 252, 212, 114, 31, 5, 74, 114, 31, 5, 252, 216, 114, 31, 5, + 66, 114, 31, 5, 252, 224, 114, 31, 5, 153, 146, 114, 31, 5, 153, 252, + 249, 114, 31, 5, 72, 114, 31, 5, 252, 231, 114, 31, 5, 252, 221, 114, 31, + 5, 73, 114, 31, 5, 252, 220, 114, 31, 5, 252, 222, 114, 5, 235, 43, 114, + 254, 233, 237, 101, 76, 114, 1, 153, 252, 249, 114, 1, 153, 252, 245, + 114, 31, 5, 153, 149, 114, 31, 5, 153, 252, 245, 114, 21, 240, 126, 114, + 21, 118, 114, 21, 113, 114, 21, 166, 114, 21, 158, 114, 21, 173, 114, 21, + 183, 114, 21, 194, 114, 21, 187, 114, 21, 192, 114, 65, 246, 179, 114, + 65, 168, 233, 75, 114, 65, 168, 231, 196, 114, 233, 76, 168, 233, 155, + 114, 233, 76, 168, 240, 170, 114, 233, 76, 152, 232, 41, 114, 248, 20, + 76, 114, 1, 237, 129, 253, 155, 114, 1, 237, 129, 199, 114, 1, 237, 129, + 252, 249, 114, 1, 237, 129, 149, 114, 1, 237, 129, 252, 245, 114, 1, 237, + 129, 254, 186, 147, 5, 229, 229, 147, 5, 231, 184, 147, 1, 236, 3, 147, + 1, 233, 251, 147, 1, 233, 254, 147, 1, 232, 66, 147, 1, 236, 114, 147, 1, + 234, 125, 147, 1, 237, 19, 147, 1, 235, 3, 147, 1, 232, 210, 147, 1, 231, + 88, 147, 1, 232, 205, 147, 1, 231, 81, 147, 1, 236, 67, 147, 1, 234, 91, + 147, 1, 233, 255, 147, 1, 236, 180, 147, 1, 234, 177, 147, 1, 234, 10, + 147, 1, 230, 135, 233, 211, 147, 1, 229, 171, 233, 211, 147, 1, 230, 135, + 233, 165, 147, 1, 229, 171, 233, 165, 147, 1, 236, 117, 229, 203, 147, 1, + 235, 99, 233, 165, 147, 1, 230, 135, 233, 189, 147, 1, 229, 171, 233, + 189, 147, 1, 230, 135, 233, 168, 147, 1, 229, 171, 233, 168, 147, 1, 235, + 140, 229, 203, 147, 1, 235, 140, 234, 215, 229, 39, 147, 1, 235, 99, 233, + 168, 147, 1, 230, 135, 232, 59, 147, 1, 229, 171, 232, 59, 147, 1, 230, + 135, 231, 248, 147, 1, 229, 171, 231, 248, 147, 1, 232, 1, 233, 221, 147, + 1, 235, 99, 231, 248, 147, 1, 230, 135, 233, 244, 147, 1, 229, 171, 233, + 244, 147, 1, 230, 135, 233, 161, 147, 1, 229, 171, 233, 161, 147, 1, 235, + 118, 233, 221, 147, 1, 235, 99, 233, 161, 147, 1, 230, 135, 233, 224, + 147, 1, 229, 171, 233, 224, 147, 1, 230, 135, 233, 159, 147, 1, 229, 171, + 233, 159, 147, 1, 234, 156, 147, 1, 248, 235, 233, 159, 147, 1, 235, 11, + 147, 1, 234, 203, 147, 1, 235, 118, 233, 215, 147, 1, 235, 5, 147, 1, + 235, 140, 233, 178, 147, 1, 232, 1, 233, 178, 147, 1, 235, 118, 233, 178, + 147, 1, 234, 118, 147, 1, 232, 1, 233, 215, 147, 1, 234, 101, 147, 5, + 230, 222, 147, 31, 5, 229, 181, 147, 31, 5, 241, 45, 229, 195, 147, 31, + 5, 246, 253, 229, 195, 147, 31, 5, 241, 45, 232, 29, 147, 31, 5, 246, + 253, 232, 29, 147, 31, 5, 241, 45, 230, 190, 147, 31, 5, 246, 253, 230, + 190, 147, 31, 5, 227, 203, 147, 31, 5, 233, 212, 147, 31, 5, 246, 253, + 233, 212, 147, 31, 5, 244, 63, 243, 56, 147, 31, 5, 235, 125, 253, 181, + 229, 181, 147, 31, 5, 235, 125, 253, 181, 246, 253, 229, 181, 147, 31, 5, + 235, 125, 253, 181, 228, 198, 147, 31, 5, 228, 198, 147, 31, 5, 246, 253, + 227, 203, 147, 31, 5, 246, 253, 228, 198, 147, 229, 161, 230, 74, 128, + 116, 255, 9, 248, 78, 128, 116, 253, 105, 244, 53, 128, 116, 253, 105, + 239, 69, 128, 116, 253, 105, 239, 70, 128, 116, 253, 105, 244, 56, 128, + 116, 253, 105, 234, 201, 128, 116, 254, 114, 251, 56, 128, 116, 253, 142, + 242, 243, 128, 116, 253, 142, 238, 148, 128, 116, 253, 142, 238, 147, + 128, 116, 254, 225, 253, 25, 128, 116, 253, 142, 242, 252, 128, 116, 255, + 17, 246, 92, 128, 116, 254, 246, 238, 145, 128, 116, 180, 239, 183, 128, + 116, 253, 92, 241, 78, 128, 116, 253, 92, 230, 81, 128, 116, 253, 92, + 234, 193, 128, 116, 254, 252, 251, 49, 128, 116, 254, 246, 249, 184, 128, + 116, 180, 252, 6, 128, 116, 253, 92, 240, 40, 128, 116, 253, 92, 237, 2, + 128, 116, 253, 92, 240, 39, 128, 116, 254, 252, 252, 227, 128, 116, 255, + 20, 236, 6, 128, 116, 255, 44, 248, 133, 128, 116, 253, 130, 239, 196, + 128, 116, 254, 236, 252, 234, 128, 116, 253, 130, 245, 68, 128, 116, 254, + 236, 249, 237, 128, 116, 253, 130, 234, 214, 128, 116, 255, 38, 198, 128, + 116, 255, 17, 247, 231, 128, 116, 255, 46, 251, 194, 128, 116, 253, 3, + 128, 116, 254, 239, 241, 182, 128, 116, 253, 22, 128, 116, 255, 53, 246, + 51, 128, 116, 254, 225, 245, 149, 128, 116, 254, 225, 245, 143, 128, 116, + 254, 225, 251, 239, 128, 116, 254, 220, 250, 77, 128, 116, 254, 239, 238, + 150, 128, 116, 130, 247, 9, 128, 116, 254, 220, 236, 168, 128, 116, 231, + 113, 128, 116, 246, 214, 57, 128, 116, 253, 61, 232, 200, 128, 116, 246, + 214, 252, 212, 128, 116, 246, 214, 253, 140, 128, 116, 246, 214, 74, 128, + 116, 246, 214, 252, 216, 128, 116, 246, 214, 253, 71, 128, 116, 246, 214, + 252, 50, 128, 116, 246, 214, 66, 128, 116, 246, 214, 252, 224, 128, 116, + 234, 192, 128, 233, 112, 14, 242, 171, 128, 116, 246, 214, 72, 128, 116, + 246, 214, 253, 4, 128, 116, 246, 214, 73, 128, 116, 246, 214, 254, 227, + 234, 148, 128, 116, 246, 214, 254, 227, 232, 224, 128, 116, 229, 35, 128, + 116, 232, 225, 128, 116, 231, 99, 128, 116, 253, 61, 253, 219, 128, 116, + 253, 61, 246, 228, 128, 116, 253, 61, 252, 29, 128, 116, 253, 61, 232, + 96, 128, 116, 229, 153, 128, 116, 232, 233, 128, 116, 233, 65, 128, 116, + 234, 104, 128, 21, 240, 126, 128, 21, 118, 128, 21, 113, 128, 21, 166, + 128, 21, 158, 128, 21, 173, 128, 21, 183, 128, 21, 194, 128, 21, 187, + 128, 21, 192, 128, 116, 229, 227, 128, 116, 236, 122, 179, 1, 253, 33, + 179, 1, 253, 105, 240, 215, 179, 1, 253, 105, 247, 22, 179, 1, 247, 93, + 179, 1, 253, 66, 179, 1, 254, 225, 247, 22, 179, 1, 247, 19, 179, 1, 253, + 57, 179, 1, 96, 179, 1, 253, 92, 240, 215, 179, 1, 253, 92, 247, 22, 179, + 1, 253, 8, 179, 1, 253, 98, 179, 1, 253, 50, 179, 1, 253, 130, 240, 215, + 179, 1, 254, 236, 247, 22, 179, 1, 253, 130, 247, 22, 179, 1, 254, 236, + 240, 215, 179, 1, 253, 14, 179, 1, 252, 251, 179, 1, 254, 239, 241, 182, + 179, 1, 254, 239, 244, 107, 179, 1, 253, 10, 179, 1, 254, 225, 240, 215, + 179, 1, 254, 220, 240, 215, 179, 1, 73, 179, 1, 254, 220, 247, 22, 179, + 231, 218, 179, 31, 5, 57, 179, 31, 5, 253, 61, 247, 39, 179, 31, 5, 252, + 212, 179, 31, 5, 253, 140, 179, 31, 5, 74, 179, 31, 5, 252, 216, 179, 31, + 5, 254, 190, 179, 31, 5, 253, 203, 179, 31, 5, 66, 179, 31, 5, 252, 224, + 179, 31, 5, 253, 61, 250, 178, 179, 232, 45, 5, 253, 49, 179, 232, 45, 5, + 247, 19, 179, 31, 5, 72, 179, 31, 5, 253, 176, 179, 31, 5, 73, 179, 31, + 5, 253, 114, 179, 31, 5, 252, 221, 179, 255, 9, 252, 200, 179, 206, 253, + 61, 253, 219, 179, 206, 253, 61, 246, 228, 179, 206, 253, 61, 253, 44, + 179, 206, 253, 61, 236, 21, 179, 228, 227, 76, 179, 231, 107, 179, 21, + 240, 126, 179, 21, 118, 179, 21, 113, 179, 21, 166, 179, 21, 158, 179, + 21, 173, 179, 21, 183, 179, 21, 194, 179, 21, 187, 179, 21, 192, 179, + 254, 220, 253, 8, 179, 254, 220, 253, 14, 54, 4, 253, 128, 54, 165, 247, + 35, 253, 55, 253, 62, 233, 56, 57, 54, 165, 247, 35, 253, 55, 253, 62, + 253, 205, 248, 148, 249, 107, 198, 54, 165, 247, 35, 253, 55, 253, 62, + 253, 205, 247, 35, 240, 241, 198, 54, 165, 59, 253, 55, 253, 62, 248, + 100, 198, 54, 165, 235, 113, 253, 55, 253, 62, 248, 156, 198, 54, 165, + 240, 206, 253, 55, 253, 62, 248, 131, 248, 157, 198, 54, 165, 253, 55, + 253, 62, 240, 241, 248, 157, 198, 54, 165, 245, 153, 240, 192, 54, 165, + 242, 215, 253, 55, 247, 88, 54, 165, 249, 123, 248, 159, 253, 55, 247, + 88, 54, 165, 227, 246, 237, 222, 54, 165, 232, 110, 240, 241, 238, 133, + 54, 165, 240, 192, 54, 165, 247, 97, 240, 192, 54, 165, 240, 241, 240, + 192, 54, 165, 247, 97, 240, 241, 240, 192, 54, 165, 254, 143, 249, 156, + 240, 14, 240, 192, 54, 165, 248, 147, 250, 41, 240, 192, 54, 165, 240, + 206, 241, 91, 241, 13, 254, 206, 182, 246, 241, 54, 165, 247, 35, 237, + 222, 54, 233, 217, 5, 249, 155, 237, 127, 54, 233, 217, 5, 250, 217, 237, + 127, 54, 228, 197, 5, 251, 219, 250, 20, 242, 40, 237, 127, 54, 228, 197, + 5, 238, 87, 213, 54, 228, 197, 5, 245, 155, 237, 11, 54, 5, 246, 226, + 247, 71, 241, 138, 54, 5, 246, 226, 247, 71, 238, 2, 54, 5, 246, 226, + 247, 71, 241, 146, 54, 5, 246, 226, 253, 153, 241, 138, 54, 5, 246, 226, + 253, 153, 238, 2, 54, 5, 246, 226, 247, 71, 246, 226, 251, 37, 54, 21, + 240, 126, 54, 21, 118, 54, 21, 113, 54, 21, 166, 54, 21, 158, 54, 21, + 173, 54, 21, 183, 54, 21, 194, 54, 21, 187, 54, 21, 192, 54, 21, 132, + 118, 54, 21, 132, 113, 54, 21, 132, 166, 54, 21, 132, 158, 54, 21, 132, + 173, 54, 21, 132, 183, 54, 21, 132, 194, 54, 21, 132, 187, 54, 21, 132, + 192, 54, 21, 132, 240, 126, 54, 165, 242, 213, 237, 127, 54, 165, 248, + 110, 241, 107, 253, 252, 252, 183, 54, 165, 240, 206, 241, 91, 241, 13, + 247, 123, 253, 247, 246, 241, 54, 165, 248, 110, 241, 107, 251, 218, 237, + 127, 54, 165, 253, 74, 247, 88, 54, 165, 254, 11, 238, 88, 54, 165, 253, + 223, 241, 13, 241, 149, 54, 165, 253, 223, 241, 13, 241, 148, 54, 165, + 253, 207, 241, 172, 241, 149, 54, 165, 253, 207, 241, 172, 241, 148, 54, + 5, 254, 175, 238, 78, 54, 5, 254, 98, 238, 78, 54, 1, 177, 54, 1, 246, + 178, 54, 1, 252, 205, 54, 1, 246, 202, 54, 1, 246, 169, 54, 1, 252, 215, + 54, 1, 246, 176, 54, 1, 252, 213, 54, 1, 246, 181, 54, 1, 246, 191, 54, + 1, 240, 150, 54, 1, 246, 192, 54, 1, 240, 166, 54, 1, 246, 203, 54, 1, + 252, 202, 54, 1, 246, 173, 54, 1, 252, 203, 54, 1, 246, 196, 54, 1, 252, + 201, 54, 1, 213, 54, 1, 246, 182, 54, 1, 252, 211, 54, 1, 246, 199, 54, + 1, 198, 54, 1, 246, 216, 54, 1, 240, 240, 54, 1, 246, 254, 54, 1, 241, + 121, 54, 1, 252, 208, 54, 1, 246, 223, 54, 1, 252, 226, 54, 1, 253, 204, + 54, 1, 191, 54, 1, 208, 54, 1, 252, 200, 54, 1, 246, 165, 54, 1, 246, + 190, 54, 1, 252, 204, 54, 1, 154, 54, 1, 57, 54, 1, 241, 175, 54, 1, 230, + 154, 208, 54, 1, 247, 161, 54, 1, 246, 221, 54, 31, 5, 252, 212, 54, 31, + 5, 74, 54, 31, 5, 252, 216, 54, 31, 5, 66, 54, 31, 5, 252, 224, 54, 31, + 5, 153, 146, 54, 31, 5, 153, 252, 249, 54, 31, 5, 153, 149, 54, 31, 5, + 153, 252, 245, 54, 31, 5, 72, 54, 31, 5, 252, 231, 54, 31, 5, 73, 54, 31, + 5, 252, 220, 54, 5, 251, 185, 254, 253, 254, 113, 252, 246, 54, 5, 248, + 148, 242, 195, 54, 31, 5, 200, 74, 54, 31, 5, 200, 252, 216, 54, 5, 253, + 252, 254, 180, 254, 109, 252, 203, 54, 5, 254, 148, 244, 91, 54, 165, + 234, 115, 54, 165, 236, 182, 54, 5, 254, 91, 237, 127, 54, 5, 247, 24, + 237, 127, 54, 5, 254, 90, 254, 11, 246, 241, 54, 5, 251, 4, 246, 241, 54, + 5, 253, 222, 254, 36, 233, 231, 54, 5, 253, 222, 254, 99, 233, 231, 54, + 231, 189, 1, 177, 54, 231, 189, 1, 246, 178, 54, 231, 189, 1, 252, 205, + 54, 231, 189, 1, 246, 202, 54, 231, 189, 1, 246, 169, 54, 231, 189, 1, + 252, 215, 54, 231, 189, 1, 246, 176, 54, 231, 189, 1, 252, 213, 54, 231, + 189, 1, 246, 181, 54, 231, 189, 1, 246, 191, 54, 231, 189, 1, 240, 150, + 54, 231, 189, 1, 246, 192, 54, 231, 189, 1, 240, 166, 54, 231, 189, 1, + 246, 203, 54, 231, 189, 1, 252, 202, 54, 231, 189, 1, 246, 173, 54, 231, + 189, 1, 252, 203, 54, 231, 189, 1, 246, 196, 54, 231, 189, 1, 252, 201, + 54, 231, 189, 1, 213, 54, 231, 189, 1, 246, 182, 54, 231, 189, 1, 252, + 211, 54, 231, 189, 1, 246, 199, 54, 231, 189, 1, 198, 54, 231, 189, 1, + 246, 216, 54, 231, 189, 1, 240, 240, 54, 231, 189, 1, 246, 254, 54, 231, + 189, 1, 241, 121, 54, 231, 189, 1, 252, 208, 54, 231, 189, 1, 246, 223, + 54, 231, 189, 1, 252, 226, 54, 231, 189, 1, 253, 204, 54, 231, 189, 1, + 191, 54, 231, 189, 1, 208, 54, 231, 189, 1, 252, 200, 54, 231, 189, 1, + 246, 165, 54, 231, 189, 1, 246, 190, 54, 231, 189, 1, 252, 204, 54, 231, + 189, 1, 154, 54, 231, 189, 1, 57, 54, 231, 189, 1, 241, 175, 54, 231, + 189, 1, 230, 154, 252, 208, 54, 231, 189, 1, 230, 154, 191, 54, 231, 189, + 1, 230, 154, 208, 54, 254, 238, 255, 14, 246, 178, 54, 254, 238, 255, 14, + 254, 79, 247, 123, 253, 247, 246, 241, 54, 228, 189, 5, 112, 241, 100, + 54, 228, 189, 5, 157, 241, 100, 54, 228, 189, 5, 249, 143, 245, 239, 54, + 228, 189, 5, 251, 215, 238, 86, 54, 14, 249, 207, 253, 48, 54, 14, 254, + 4, 251, 184, 54, 14, 245, 59, 243, 120, 54, 14, 254, 4, 254, 144, 248, + 147, 243, 155, 54, 14, 248, 131, 213, 54, 14, 253, 43, 253, 48, 54, 14, + 253, 43, 254, 210, 247, 97, 235, 107, 54, 14, 253, 43, 254, 210, 250, 42, + 235, 107, 54, 14, 253, 43, 254, 210, 247, 123, 235, 107, 54, 5, 246, 226, + 253, 153, 246, 226, 243, 73, 54, 5, 246, 226, 253, 153, 241, 146, 54, + 165, 242, 214, 248, 159, 254, 228, 253, 62, 238, 41, 54, 165, 244, 149, + 253, 55, 254, 228, 253, 62, 238, 41, 54, 165, 247, 97, 237, 222, 54, 165, + 59, 248, 0, 238, 43, 253, 55, 253, 62, 248, 100, 198, 54, 165, 235, 113, + 248, 0, 238, 43, 253, 55, 253, 62, 248, 156, 198, 69, 1, 177, 69, 1, 246, + 178, 69, 1, 252, 205, 69, 1, 246, 202, 69, 1, 246, 169, 69, 1, 252, 215, + 69, 1, 246, 176, 69, 1, 252, 213, 69, 1, 246, 213, 69, 1, 246, 181, 69, + 1, 244, 250, 69, 1, 246, 191, 69, 1, 240, 150, 69, 1, 246, 192, 69, 1, + 240, 166, 69, 1, 246, 203, 69, 1, 252, 202, 69, 1, 246, 173, 69, 1, 252, + 203, 69, 1, 246, 196, 69, 1, 252, 201, 69, 1, 213, 69, 1, 246, 182, 69, + 1, 252, 211, 69, 1, 246, 199, 69, 1, 198, 69, 1, 191, 69, 1, 208, 69, 1, + 252, 200, 69, 1, 252, 208, 69, 1, 252, 204, 69, 1, 154, 69, 1, 246, 225, + 69, 1, 57, 69, 1, 246, 166, 57, 69, 1, 74, 69, 1, 252, 216, 69, 1, 66, + 69, 1, 252, 224, 69, 1, 72, 69, 1, 253, 68, 72, 69, 1, 73, 69, 1, 252, + 222, 69, 31, 5, 252, 5, 252, 212, 69, 31, 5, 252, 212, 69, 31, 5, 74, 69, + 31, 5, 252, 216, 69, 31, 5, 66, 69, 31, 5, 252, 224, 69, 31, 5, 72, 69, + 31, 5, 252, 221, 69, 31, 5, 253, 68, 252, 216, 69, 31, 5, 253, 68, 73, + 69, 31, 5, 161, 46, 69, 5, 231, 206, 69, 5, 56, 51, 69, 5, 233, 102, 69, + 5, 235, 43, 69, 5, 242, 64, 69, 231, 194, 5, 124, 191, 69, 231, 194, 5, + 124, 208, 69, 231, 194, 5, 124, 252, 208, 69, 231, 194, 5, 124, 154, 69, + 1, 240, 227, 252, 204, 69, 21, 240, 126, 69, 21, 118, 69, 21, 113, 69, + 21, 166, 69, 21, 158, 69, 21, 173, 69, 21, 183, 69, 21, 194, 69, 21, 187, + 69, 21, 192, 69, 5, 237, 102, 233, 144, 69, 5, 233, 144, 69, 14, 232, + 221, 69, 14, 230, 236, 69, 14, 225, 110, 69, 14, 232, 198, 69, 1, 246, + 165, 69, 1, 246, 190, 69, 1, 153, 146, 69, 1, 153, 252, 249, 69, 1, 153, + 149, 69, 1, 153, 252, 245, 69, 31, 5, 153, 146, 69, 31, 5, 153, 252, 249, + 69, 31, 5, 153, 149, 69, 31, 5, 153, 252, 245, 69, 1, 253, 68, 246, 169, + 69, 1, 253, 68, 246, 213, 69, 1, 253, 68, 247, 66, 69, 1, 253, 68, 247, + 250, 69, 231, 194, 5, 253, 68, 124, 252, 201, 69, 231, 194, 5, 253, 68, + 124, 198, 69, 231, 194, 5, 253, 68, 124, 252, 200, 69, 1, 247, 103, 240, + 153, 246, 165, 69, 31, 5, 247, 103, 240, 153, 253, 100, 69, 206, 165, + 247, 103, 240, 153, 239, 6, 69, 206, 165, 247, 103, 240, 153, 255, 34, + 247, 99, 69, 1, 235, 62, 253, 51, 240, 153, 246, 173, 69, 1, 235, 62, + 253, 51, 240, 153, 247, 47, 69, 31, 5, 235, 62, 253, 51, 240, 153, 253, + 100, 69, 31, 5, 235, 62, 253, 51, 240, 153, 253, 71, 69, 5, 235, 62, 253, + 51, 240, 153, 237, 7, 69, 5, 235, 62, 253, 51, 240, 153, 235, 101, 69, 5, + 235, 62, 253, 51, 240, 153, 235, 102, 69, 5, 235, 62, 253, 51, 240, 153, + 235, 227, 69, 5, 235, 62, 253, 51, 240, 153, 235, 103, 69, 1, 235, 121, + 253, 51, 240, 153, 246, 203, 69, 1, 235, 121, 253, 51, 240, 153, 247, + 235, 69, 1, 235, 121, 253, 51, 240, 153, 243, 144, 69, 31, 5, 250, 21, + 240, 153, 74, 69, 31, 5, 240, 119, 253, 15, 69, 31, 5, 240, 119, 66, 69, + 31, 5, 240, 119, 252, 231, 69, 1, 246, 166, 177, 69, 1, 246, 166, 246, + 178, 69, 1, 246, 166, 252, 205, 69, 1, 246, 166, 252, 215, 69, 1, 246, + 166, 252, 226, 69, 1, 246, 166, 246, 181, 69, 1, 246, 166, 252, 203, 69, + 1, 246, 166, 252, 201, 69, 1, 246, 166, 246, 182, 69, 1, 246, 166, 252, + 234, 69, 1, 246, 166, 252, 211, 69, 1, 246, 166, 246, 173, 69, 1, 246, + 166, 154, 69, 231, 194, 5, 246, 166, 124, 252, 208, 69, 31, 5, 246, 166, + 252, 212, 69, 31, 5, 246, 166, 72, 69, 31, 5, 246, 166, 161, 46, 69, 31, + 5, 246, 166, 35, 254, 190, 69, 5, 246, 166, 235, 101, 69, 5, 246, 166, + 235, 102, 69, 5, 246, 166, 235, 103, 69, 5, 246, 166, 235, 228, 69, 5, + 246, 166, 235, 116, 235, 101, 69, 5, 246, 166, 235, 116, 235, 102, 69, 5, + 246, 166, 235, 116, 234, 95, 240, 167, 69, 1, 241, 227, 235, 198, 252, + 234, 69, 5, 241, 227, 235, 198, 235, 103, 69, 246, 166, 21, 240, 126, 69, + 246, 166, 21, 118, 69, 246, 166, 21, 113, 69, 246, 166, 21, 166, 69, 246, + 166, 21, 158, 69, 246, 166, 21, 173, 69, 246, 166, 21, 183, 69, 246, 166, + 21, 194, 69, 246, 166, 21, 187, 69, 246, 166, 21, 192, 69, 14, 246, 166, + 118, 69, 14, 246, 166, 229, 18, 87, 6, 1, 253, 5, 87, 6, 1, 247, 121, 87, + 6, 1, 247, 32, 87, 6, 1, 247, 131, 87, 6, 1, 252, 232, 87, 6, 1, 247, + 222, 87, 6, 1, 247, 237, 87, 6, 1, 247, 209, 87, 6, 1, 253, 79, 87, 6, 1, + 247, 39, 87, 6, 1, 247, 167, 87, 6, 1, 247, 4, 87, 6, 1, 247, 92, 87, 6, + 1, 253, 106, 87, 6, 1, 247, 187, 87, 6, 1, 241, 90, 87, 6, 1, 247, 194, + 87, 6, 1, 247, 49, 87, 6, 1, 247, 56, 87, 6, 1, 253, 121, 87, 6, 1, 241, + 61, 87, 6, 1, 241, 46, 87, 6, 1, 241, 39, 87, 6, 1, 247, 193, 87, 6, 1, + 240, 203, 87, 6, 1, 241, 32, 87, 6, 1, 246, 241, 87, 6, 1, 247, 153, 87, + 6, 1, 247, 125, 87, 6, 1, 241, 31, 87, 6, 1, 247, 228, 87, 6, 1, 241, 44, + 87, 6, 1, 247, 145, 87, 6, 1, 252, 252, 87, 6, 1, 247, 81, 87, 6, 1, 252, + 250, 87, 6, 1, 247, 146, 87, 6, 1, 247, 150, 87, 1, 253, 5, 87, 1, 247, + 121, 87, 1, 247, 32, 87, 1, 247, 131, 87, 1, 252, 232, 87, 1, 247, 222, + 87, 1, 247, 237, 87, 1, 247, 209, 87, 1, 253, 79, 87, 1, 247, 39, 87, 1, + 247, 167, 87, 1, 247, 4, 87, 1, 247, 92, 87, 1, 253, 106, 87, 1, 247, + 187, 87, 1, 241, 90, 87, 1, 247, 194, 87, 1, 247, 49, 87, 1, 247, 56, 87, + 1, 253, 121, 87, 1, 241, 61, 87, 1, 241, 46, 87, 1, 241, 39, 87, 1, 247, + 193, 87, 1, 240, 203, 87, 1, 241, 32, 87, 1, 246, 241, 87, 1, 247, 153, + 87, 1, 247, 125, 87, 1, 241, 31, 87, 1, 247, 228, 87, 1, 241, 44, 87, 1, + 247, 145, 87, 1, 252, 252, 87, 1, 247, 81, 87, 1, 252, 250, 87, 1, 247, + 146, 87, 1, 247, 150, 87, 1, 253, 88, 87, 1, 253, 202, 87, 1, 238, 200, + 87, 1, 209, 247, 32, 87, 1, 246, 224, 87, 231, 242, 230, 131, 52, 1, 87, + 247, 92, 26, 122, 235, 77, 26, 122, 228, 195, 26, 122, 237, 139, 26, 122, + 235, 81, 26, 122, 228, 209, 26, 122, 237, 142, 26, 122, 237, 137, 26, + 122, 237, 141, 26, 122, 229, 193, 26, 122, 240, 213, 26, 122, 230, 159, + 26, 122, 237, 134, 26, 122, 237, 130, 26, 122, 229, 191, 26, 122, 233, + 128, 26, 122, 233, 131, 26, 122, 233, 138, 26, 122, 233, 133, 26, 122, + 237, 133, 26, 122, 227, 207, 26, 122, 229, 219, 26, 122, 227, 196, 26, + 122, 229, 42, 26, 122, 227, 153, 26, 122, 228, 217, 26, 122, 229, 220, + 26, 122, 228, 193, 26, 122, 227, 169, 26, 122, 228, 200, 26, 122, 227, + 137, 26, 122, 227, 208, 26, 122, 229, 50, 26, 122, 227, 209, 26, 122, + 229, 180, 26, 122, 222, 239, 26, 122, 222, 240, 26, 122, 223, 51, 26, + 122, 225, 99, 26, 122, 223, 50, 26, 122, 228, 215, 26, 122, 227, 173, 26, + 122, 227, 149, 26, 122, 227, 148, 26, 122, 227, 138, 26, 122, 222, 231, + 26, 122, 228, 207, 26, 122, 229, 216, 26, 122, 228, 208, 26, 122, 229, + 217, 26, 122, 230, 111, 26, 122, 229, 190, 26, 122, 222, 251, 26, 122, + 227, 78, 26, 122, 230, 110, 26, 122, 229, 215, 26, 122, 228, 161, 26, + 122, 228, 162, 26, 122, 228, 164, 26, 122, 228, 163, 26, 122, 230, 109, + 26, 122, 227, 222, 26, 122, 222, 244, 26, 122, 223, 60, 26, 122, 222, + 228, 26, 122, 233, 174, 26, 122, 227, 205, 26, 122, 227, 245, 26, 122, + 229, 29, 26, 122, 229, 30, 26, 122, 230, 68, 26, 122, 227, 166, 26, 122, + 229, 192, 26, 122, 229, 28, 26, 122, 227, 164, 26, 122, 227, 168, 26, + 122, 227, 167, 26, 122, 232, 13, 26, 122, 228, 228, 26, 122, 227, 159, + 26, 122, 222, 234, 26, 122, 222, 255, 26, 122, 222, 225, 26, 122, 223, + 61, 26, 122, 227, 158, 26, 122, 223, 62, 26, 122, 222, 233, 26, 122, 227, + 147, 26, 122, 223, 56, 26, 122, 229, 218, 26, 122, 228, 210, 26, 122, + 235, 92, 26, 170, 235, 92, 26, 170, 57, 26, 170, 253, 4, 26, 170, 191, + 26, 170, 247, 61, 26, 170, 253, 177, 26, 170, 72, 26, 170, 247, 232, 26, + 170, 253, 96, 26, 170, 73, 26, 170, 252, 208, 26, 170, 247, 223, 26, 170, + 253, 15, 26, 170, 252, 251, 26, 170, 66, 26, 170, 247, 227, 26, 170, 252, + 250, 26, 170, 253, 27, 26, 170, 252, 233, 26, 170, 253, 100, 26, 170, + 253, 28, 26, 170, 74, 26, 170, 248, 219, 26, 170, 248, 220, 26, 170, 246, + 73, 26, 170, 240, 90, 26, 170, 243, 98, 26, 170, 243, 99, 26, 170, 238, + 203, 26, 170, 240, 96, 26, 170, 240, 97, 26, 170, 245, 51, 26, 170, 251, + 91, 26, 170, 245, 52, 26, 170, 251, 92, 26, 170, 251, 93, 26, 170, 238, + 83, 26, 170, 235, 233, 26, 170, 237, 34, 26, 170, 246, 93, 26, 170, 242, + 31, 26, 170, 252, 48, 26, 170, 246, 27, 26, 170, 235, 0, 26, 170, 246, + 28, 26, 170, 252, 49, 26, 170, 246, 96, 26, 170, 240, 100, 26, 170, 246, + 97, 26, 170, 235, 234, 26, 170, 238, 84, 26, 170, 246, 98, 26, 170, 242, + 33, 26, 170, 243, 102, 26, 170, 238, 209, 26, 170, 246, 88, 26, 170, 250, + 110, 26, 170, 244, 1, 26, 170, 250, 111, 26, 170, 250, 112, 26, 170, 244, + 0, 26, 170, 234, 122, 26, 170, 237, 228, 26, 170, 232, 74, 26, 170, 234, + 7, 26, 170, 234, 6, 26, 170, 230, 112, 26, 138, 235, 77, 26, 138, 228, + 195, 26, 138, 228, 199, 26, 138, 237, 139, 26, 138, 228, 201, 26, 138, + 228, 202, 26, 138, 235, 81, 26, 138, 237, 142, 26, 138, 227, 197, 26, + 138, 228, 204, 26, 138, 228, 205, 26, 138, 229, 188, 26, 138, 227, 140, + 26, 138, 227, 139, 26, 138, 228, 193, 26, 138, 237, 137, 26, 138, 237, + 141, 26, 138, 229, 180, 26, 138, 240, 213, 26, 138, 230, 159, 26, 138, + 237, 134, 26, 138, 237, 130, 26, 138, 233, 128, 26, 138, 233, 131, 26, + 138, 233, 138, 26, 138, 233, 133, 26, 138, 237, 133, 26, 138, 227, 248, + 26, 138, 222, 235, 26, 138, 227, 207, 26, 138, 227, 196, 26, 138, 229, + 204, 26, 138, 227, 144, 26, 138, 227, 172, 26, 138, 227, 153, 26, 138, + 228, 168, 26, 138, 222, 241, 26, 138, 228, 217, 26, 138, 227, 210, 26, + 138, 222, 237, 26, 138, 229, 220, 26, 138, 222, 236, 26, 138, 223, 52, + 26, 138, 222, 253, 26, 138, 222, 249, 26, 138, 222, 230, 26, 138, 225, + 102, 26, 138, 227, 151, 26, 138, 227, 174, 26, 138, 222, 242, 26, 138, + 227, 253, 26, 138, 229, 37, 26, 138, 228, 200, 26, 138, 229, 200, 26, + 138, 225, 97, 26, 138, 227, 143, 26, 138, 227, 171, 26, 138, 229, 36, 26, + 138, 227, 137, 26, 138, 229, 51, 26, 138, 227, 148, 26, 138, 229, 49, 26, + 138, 227, 138, 26, 138, 228, 207, 26, 138, 228, 208, 26, 138, 229, 217, + 26, 138, 229, 190, 26, 138, 233, 174, 26, 138, 227, 205, 26, 138, 222, + 246, 26, 138, 229, 192, 26, 138, 227, 165, 26, 138, 232, 13, 26, 138, + 227, 155, 26, 138, 222, 254, 26, 138, 227, 147, 26, 138, 223, 56, 26, + 138, 229, 24, 26, 138, 229, 26, 26, 138, 229, 23, 26, 138, 229, 25, 26, + 138, 228, 210, 25, 4, 154, 25, 4, 253, 59, 25, 4, 253, 41, 25, 4, 247, + 14, 25, 4, 247, 149, 25, 4, 252, 252, 25, 4, 253, 21, 25, 4, 250, 90, 25, + 4, 252, 200, 25, 4, 253, 22, 25, 4, 253, 42, 25, 4, 247, 166, 25, 4, 247, + 168, 25, 4, 253, 80, 25, 4, 253, 49, 25, 4, 247, 171, 25, 4, 250, 70, 25, + 4, 250, 74, 25, 4, 250, 72, 25, 4, 241, 156, 25, 4, 243, 173, 25, 4, 250, + 71, 25, 4, 250, 73, 25, 4, 243, 174, 25, 4, 198, 25, 4, 252, 229, 25, 4, + 252, 239, 25, 4, 248, 98, 25, 4, 247, 172, 25, 4, 253, 13, 25, 4, 253, + 14, 25, 4, 247, 90, 25, 4, 251, 253, 25, 4, 252, 1, 25, 4, 251, 255, 25, + 4, 245, 231, 25, 4, 245, 232, 25, 4, 251, 254, 25, 4, 252, 0, 25, 4, 245, + 233, 25, 4, 208, 25, 4, 253, 3, 25, 4, 253, 37, 25, 4, 247, 100, 25, 4, + 247, 197, 25, 4, 253, 36, 25, 4, 252, 246, 25, 4, 251, 201, 25, 4, 252, + 204, 25, 4, 253, 26, 25, 4, 253, 24, 25, 4, 248, 153, 25, 4, 247, 50, 25, + 4, 253, 52, 25, 4, 253, 25, 25, 4, 247, 206, 25, 4, 246, 165, 25, 4, 246, + 246, 25, 4, 247, 51, 25, 4, 241, 234, 25, 4, 241, 70, 25, 4, 246, 186, + 25, 4, 246, 245, 25, 4, 241, 72, 25, 4, 253, 35, 25, 4, 253, 132, 25, 4, + 253, 131, 25, 4, 247, 192, 25, 4, 251, 131, 25, 4, 253, 190, 25, 4, 253, + 159, 25, 4, 251, 141, 25, 4, 251, 154, 25, 4, 251, 156, 25, 4, 245, 106, + 25, 4, 245, 107, 25, 4, 251, 155, 25, 4, 251, 132, 25, 4, 251, 136, 25, + 4, 251, 134, 25, 4, 245, 92, 25, 4, 245, 93, 25, 4, 251, 133, 25, 4, 251, + 135, 25, 4, 245, 94, 25, 4, 245, 96, 25, 4, 239, 210, 25, 4, 239, 211, + 25, 4, 245, 95, 25, 4, 252, 211, 25, 4, 253, 48, 25, 4, 253, 30, 25, 4, + 247, 247, 25, 4, 247, 28, 25, 4, 253, 73, 25, 4, 253, 98, 25, 4, 248, 2, + 25, 4, 252, 243, 25, 4, 253, 139, 25, 4, 253, 138, 25, 4, 252, 69, 25, 4, + 247, 113, 25, 4, 253, 95, 25, 4, 253, 108, 25, 4, 252, 88, 25, 4, 252, + 202, 25, 4, 253, 18, 25, 4, 253, 44, 25, 4, 247, 207, 25, 4, 247, 106, + 25, 4, 253, 9, 25, 4, 96, 25, 4, 247, 218, 25, 4, 252, 215, 25, 4, 253, + 172, 25, 4, 253, 143, 25, 4, 248, 3, 25, 4, 248, 6, 25, 4, 253, 141, 25, + 4, 253, 66, 25, 4, 247, 128, 25, 4, 253, 83, 25, 4, 254, 173, 25, 4, 253, + 38, 25, 4, 252, 110, 25, 4, 252, 111, 25, 4, 254, 17, 25, 4, 254, 18, 25, + 4, 252, 116, 25, 4, 252, 122, 25, 4, 252, 124, 25, 4, 246, 68, 25, 4, + 246, 69, 25, 4, 252, 123, 25, 4, 252, 201, 25, 4, 252, 227, 25, 4, 252, + 248, 25, 4, 247, 179, 25, 4, 247, 181, 25, 4, 252, 247, 25, 4, 253, 8, + 25, 4, 247, 95, 25, 4, 246, 181, 25, 4, 247, 185, 25, 4, 247, 44, 25, 4, + 245, 18, 25, 4, 241, 206, 25, 4, 248, 119, 25, 4, 247, 19, 25, 4, 245, + 33, 25, 4, 235, 31, 57, 25, 4, 235, 31, 66, 25, 4, 235, 31, 74, 25, 4, + 235, 31, 252, 212, 25, 4, 235, 31, 252, 231, 25, 4, 235, 31, 72, 25, 4, + 235, 31, 73, 25, 4, 235, 31, 252, 208, 25, 4, 177, 25, 4, 253, 34, 25, 4, + 253, 7, 25, 4, 248, 76, 25, 4, 248, 80, 25, 4, 253, 6, 25, 4, 253, 33, + 25, 4, 250, 176, 25, 4, 247, 163, 25, 4, 247, 165, 25, 4, 241, 3, 25, 4, + 244, 75, 25, 4, 247, 164, 25, 4, 250, 194, 25, 4, 250, 198, 25, 4, 250, + 196, 25, 4, 244, 76, 25, 4, 244, 77, 25, 4, 250, 195, 25, 4, 250, 197, + 25, 4, 244, 78, 25, 4, 244, 80, 25, 4, 239, 75, 25, 4, 239, 76, 25, 4, + 244, 79, 25, 4, 252, 208, 25, 4, 253, 109, 25, 4, 253, 27, 25, 4, 247, + 115, 25, 4, 247, 226, 25, 4, 252, 250, 25, 4, 253, 10, 25, 4, 252, 101, + 25, 4, 230, 138, 57, 25, 4, 230, 138, 66, 25, 4, 230, 138, 74, 25, 4, + 230, 138, 252, 212, 25, 4, 230, 138, 252, 231, 25, 4, 230, 138, 72, 25, + 4, 230, 138, 73, 25, 4, 252, 226, 25, 4, 253, 97, 25, 4, 253, 72, 25, 4, + 248, 207, 25, 4, 247, 64, 25, 4, 253, 46, 25, 4, 253, 65, 25, 4, 252, + 193, 25, 4, 246, 223, 25, 4, 247, 240, 25, 4, 247, 238, 25, 4, 246, 108, + 25, 4, 241, 25, 25, 4, 246, 251, 25, 4, 247, 239, 25, 4, 246, 124, 25, 4, + 191, 25, 4, 252, 233, 25, 4, 253, 28, 25, 4, 247, 117, 25, 4, 247, 62, + 25, 4, 253, 96, 25, 4, 252, 251, 25, 4, 252, 153, 25, 4, 252, 203, 25, 4, + 253, 31, 25, 4, 253, 12, 25, 4, 249, 173, 25, 4, 247, 30, 25, 4, 253, 20, + 25, 4, 253, 57, 25, 4, 249, 217, 25, 4, 246, 192, 25, 4, 248, 24, 25, 4, + 248, 23, 25, 4, 243, 29, 25, 4, 243, 35, 25, 4, 248, 22, 25, 4, 247, 130, + 25, 4, 243, 51, 25, 4, 252, 213, 25, 4, 253, 118, 25, 4, 253, 104, 25, 4, + 250, 125, 25, 4, 247, 38, 25, 4, 253, 117, 25, 4, 253, 90, 25, 4, 250, + 146, 25, 4, 252, 205, 25, 4, 253, 40, 25, 4, 253, 39, 25, 4, 247, 143, + 25, 4, 247, 144, 25, 4, 253, 103, 25, 4, 253, 76, 25, 4, 250, 36, 25, 4, + 250, 50, 25, 4, 250, 52, 25, 4, 243, 163, 25, 4, 243, 164, 25, 4, 250, + 51, 25, 4, 247, 77, 25, 4, 248, 51, 25, 4, 248, 49, 25, 4, 243, 123, 25, + 4, 243, 127, 25, 4, 248, 48, 25, 4, 248, 50, 25, 4, 238, 244, 25, 4, 246, + 173, 25, 4, 247, 213, 25, 4, 247, 7, 25, 4, 241, 18, 25, 4, 240, 238, 25, + 4, 246, 247, 25, 4, 246, 228, 25, 4, 245, 248, 25, 4, 246, 176, 25, 4, + 247, 124, 25, 4, 246, 200, 25, 4, 242, 242, 25, 4, 240, 246, 25, 4, 246, + 217, 25, 4, 247, 29, 25, 4, 243, 4, 25, 4, 246, 182, 25, 4, 251, 107, 25, + 4, 246, 198, 25, 4, 245, 67, 25, 4, 245, 69, 25, 4, 248, 130, 25, 4, 247, + 99, 25, 4, 245, 71, 25, 4, 246, 216, 25, 4, 247, 216, 25, 4, 247, 58, 25, + 4, 246, 7, 25, 4, 242, 9, 25, 4, 246, 248, 25, 4, 247, 215, 25, 4, 246, + 9, 25, 4, 252, 42, 25, 4, 252, 47, 25, 4, 252, 44, 25, 4, 246, 24, 25, 4, + 246, 25, 25, 4, 252, 43, 25, 4, 252, 46, 25, 4, 246, 26, 25, 4, 252, 234, + 25, 4, 253, 178, 25, 4, 253, 88, 25, 4, 247, 139, 25, 4, 247, 140, 25, 4, + 253, 147, 25, 4, 253, 148, 25, 4, 248, 42, 25, 4, 213, 25, 4, 253, 82, + 25, 4, 252, 223, 25, 4, 248, 127, 25, 4, 247, 46, 25, 4, 253, 0, 25, 4, + 253, 50, 25, 4, 247, 47, 25, 4, 251, 202, 25, 4, 251, 32, 25, 4, 250, 5, + 25, 36, 231, 73, 76, 25, 235, 135, 76, 25, 231, 187, 25, 246, 162, 240, + 121, 25, 237, 67, 25, 230, 140, 25, 237, 66, 25, 236, 192, 237, 66, 25, + 233, 82, 76, 25, 231, 242, 230, 131, 25, 21, 118, 25, 21, 113, 25, 21, + 166, 25, 21, 158, 25, 21, 173, 25, 21, 183, 25, 21, 194, 25, 21, 187, 25, + 21, 192, 25, 65, 246, 179, 25, 65, 235, 52, 25, 65, 235, 80, 25, 65, 237, + 203, 25, 65, 237, 100, 25, 65, 238, 62, 25, 65, 233, 235, 25, 65, 235, + 169, 25, 65, 235, 132, 25, 65, 233, 75, 25, 65, 253, 53, 231, 196, 25, 4, + 231, 246, 247, 90, 25, 4, 247, 178, 25, 4, 244, 161, 25, 4, 247, 177, 25, + 4, 231, 246, 248, 2, 25, 4, 249, 135, 25, 4, 242, 225, 25, 4, 249, 134, + 25, 4, 231, 246, 248, 42, 25, 4, 250, 4, 25, 4, 243, 112, 25, 4, 250, 3, + 25, 4, 231, 246, 247, 47, 25, 4, 247, 191, 25, 4, 245, 87, 25, 4, 247, + 190, 25, 240, 188, 165, 240, 99, 25, 240, 188, 165, 238, 182, 25, 240, + 188, 165, 235, 206, 25, 240, 188, 165, 240, 125, 235, 206, 25, 240, 188, + 165, 238, 186, 25, 240, 188, 165, 239, 65, 25, 240, 188, 165, 236, 27, + 25, 240, 188, 165, 239, 8, 25, 240, 188, 165, 228, 239, 25, 240, 188, + 165, 244, 72, 131, 1, 57, 131, 1, 72, 131, 1, 74, 131, 1, 73, 131, 1, 66, + 131, 1, 196, 131, 1, 252, 205, 131, 1, 177, 131, 1, 253, 103, 131, 1, + 253, 39, 131, 1, 253, 76, 131, 1, 253, 40, 131, 1, 254, 63, 131, 1, 154, + 131, 1, 252, 252, 131, 1, 253, 41, 131, 1, 253, 21, 131, 1, 253, 59, 131, + 1, 253, 227, 131, 1, 252, 200, 131, 1, 253, 80, 131, 1, 253, 42, 131, 1, + 253, 49, 131, 1, 253, 22, 131, 1, 254, 96, 131, 1, 198, 131, 1, 253, 13, + 131, 1, 252, 239, 131, 1, 253, 14, 131, 1, 252, 229, 131, 1, 252, 201, + 131, 1, 248, 63, 131, 1, 251, 38, 131, 1, 252, 247, 131, 1, 252, 248, + 131, 1, 253, 8, 131, 1, 252, 227, 131, 1, 253, 251, 131, 1, 251, 145, + 131, 1, 251, 146, 131, 1, 251, 147, 131, 1, 248, 144, 131, 1, 248, 145, + 131, 1, 251, 152, 131, 1, 252, 204, 131, 1, 193, 131, 1, 253, 52, 131, 1, + 253, 24, 131, 1, 253, 25, 131, 1, 253, 26, 131, 1, 254, 9, 131, 1, 252, + 203, 131, 1, 252, 202, 131, 1, 253, 20, 131, 1, 253, 9, 131, 1, 253, 12, + 131, 1, 253, 44, 131, 1, 253, 57, 131, 1, 253, 31, 131, 1, 254, 48, 131, + 1, 248, 30, 131, 1, 248, 174, 131, 1, 248, 175, 131, 1, 248, 176, 131, 1, + 248, 177, 131, 1, 248, 178, 131, 1, 252, 25, 131, 1, 246, 216, 131, 1, + 246, 248, 131, 1, 247, 58, 131, 1, 247, 215, 131, 1, 247, 216, 131, 1, + 252, 30, 131, 1, 252, 208, 131, 1, 252, 250, 131, 1, 253, 27, 131, 1, + 253, 10, 131, 1, 253, 109, 131, 1, 254, 171, 131, 1, 191, 131, 1, 253, + 96, 131, 1, 253, 28, 131, 1, 252, 251, 131, 1, 252, 233, 131, 1, 254, + 176, 16, 17, 72, 16, 17, 248, 221, 16, 17, 74, 16, 17, 252, 216, 16, 17, + 73, 16, 17, 252, 220, 16, 17, 237, 93, 252, 220, 16, 17, 60, 252, 231, + 16, 17, 60, 74, 16, 17, 57, 16, 17, 252, 212, 16, 17, 252, 250, 16, 17, + 127, 252, 250, 16, 17, 253, 27, 16, 17, 127, 253, 27, 16, 17, 248, 194, + 16, 17, 127, 248, 194, 16, 17, 253, 10, 16, 17, 127, 253, 10, 16, 17, + 247, 116, 16, 17, 127, 247, 116, 16, 17, 235, 39, 247, 116, 16, 17, 252, + 208, 16, 17, 127, 252, 208, 16, 17, 247, 115, 16, 17, 127, 247, 115, 16, + 17, 235, 39, 247, 115, 16, 17, 252, 221, 16, 17, 237, 93, 254, 195, 16, + 17, 235, 31, 240, 121, 16, 17, 35, 155, 16, 17, 35, 237, 36, 16, 17, 35, + 237, 59, 132, 240, 147, 16, 17, 35, 252, 228, 132, 240, 147, 16, 17, 35, + 41, 132, 240, 147, 16, 17, 35, 240, 147, 16, 17, 35, 47, 155, 16, 17, 35, + 47, 240, 125, 61, 233, 243, 16, 17, 35, 237, 44, 246, 164, 16, 17, 35, + 240, 125, 169, 82, 16, 17, 35, 240, 180, 16, 17, 35, 103, 240, 149, 16, + 17, 252, 232, 16, 17, 253, 79, 16, 17, 253, 106, 16, 17, 253, 5, 16, 17, + 253, 0, 16, 17, 245, 58, 16, 17, 252, 223, 16, 17, 248, 132, 16, 17, 253, + 50, 16, 17, 247, 189, 16, 17, 237, 93, 247, 189, 16, 17, 60, 247, 149, + 16, 17, 60, 253, 41, 16, 17, 213, 16, 17, 248, 127, 16, 17, 247, 190, 16, + 17, 127, 247, 190, 16, 17, 247, 191, 16, 17, 127, 247, 191, 16, 17, 241, + 216, 16, 17, 127, 241, 216, 16, 17, 248, 137, 16, 17, 127, 248, 137, 16, + 17, 241, 217, 16, 17, 127, 241, 217, 16, 17, 247, 47, 16, 17, 127, 247, + 47, 16, 17, 241, 65, 16, 17, 127, 241, 65, 16, 17, 237, 93, 241, 65, 16, + 17, 254, 187, 16, 17, 127, 254, 187, 16, 17, 60, 212, 16, 17, 253, 9, 16, + 17, 245, 235, 16, 17, 253, 44, 16, 17, 252, 20, 16, 17, 96, 16, 17, 247, + 109, 16, 17, 237, 93, 247, 109, 16, 17, 60, 247, 30, 16, 17, 60, 253, 12, + 16, 17, 252, 202, 16, 17, 247, 207, 16, 17, 247, 59, 16, 17, 127, 247, + 59, 16, 17, 248, 186, 16, 17, 127, 248, 186, 16, 17, 242, 14, 16, 17, + 127, 242, 14, 16, 17, 113, 16, 17, 127, 113, 16, 17, 242, 15, 16, 17, + 127, 242, 15, 16, 17, 247, 218, 16, 17, 127, 247, 218, 16, 17, 241, 83, + 16, 17, 127, 241, 83, 16, 17, 235, 39, 241, 83, 16, 17, 254, 183, 16, 17, + 248, 181, 16, 17, 248, 182, 16, 17, 247, 217, 16, 17, 246, 191, 16, 17, + 253, 6, 16, 17, 244, 44, 16, 17, 253, 7, 16, 17, 250, 168, 16, 17, 253, + 33, 16, 17, 247, 162, 16, 17, 237, 93, 247, 162, 16, 17, 177, 16, 17, + 248, 76, 16, 17, 247, 164, 16, 17, 127, 247, 164, 16, 17, 247, 165, 16, + 17, 127, 247, 165, 16, 17, 241, 176, 16, 17, 127, 241, 176, 16, 17, 248, + 88, 16, 17, 127, 248, 88, 16, 17, 241, 177, 16, 17, 127, 241, 177, 16, + 17, 247, 163, 16, 17, 127, 247, 163, 16, 17, 241, 3, 16, 17, 127, 241, 3, + 16, 17, 235, 39, 241, 3, 16, 17, 254, 186, 16, 17, 253, 243, 16, 17, 228, + 194, 247, 156, 16, 17, 228, 194, 250, 167, 16, 17, 228, 194, 250, 177, + 16, 17, 228, 194, 250, 154, 16, 17, 253, 141, 16, 17, 242, 229, 16, 17, + 253, 143, 16, 17, 249, 159, 16, 17, 253, 66, 16, 17, 247, 126, 16, 17, + 237, 93, 247, 126, 16, 17, 252, 215, 16, 17, 248, 3, 16, 17, 248, 13, 16, + 17, 127, 248, 13, 16, 17, 247, 129, 16, 17, 127, 247, 129, 16, 17, 241, + 113, 16, 17, 127, 241, 113, 16, 17, 248, 14, 16, 17, 127, 248, 14, 16, + 17, 241, 114, 16, 17, 127, 241, 114, 16, 17, 247, 128, 16, 17, 127, 247, + 128, 16, 17, 241, 35, 16, 17, 127, 241, 35, 16, 17, 235, 39, 241, 35, 16, + 17, 254, 194, 16, 17, 237, 88, 253, 135, 16, 17, 253, 13, 16, 17, 244, + 114, 16, 17, 252, 239, 16, 17, 251, 13, 16, 17, 253, 14, 16, 17, 247, + 175, 16, 17, 237, 93, 247, 175, 16, 17, 198, 16, 17, 248, 98, 16, 17, + 247, 177, 16, 17, 127, 247, 177, 16, 17, 247, 178, 16, 17, 127, 247, 178, + 16, 17, 241, 196, 16, 17, 127, 241, 196, 16, 17, 248, 105, 16, 17, 127, + 248, 105, 16, 17, 241, 197, 16, 17, 127, 241, 197, 16, 17, 247, 90, 16, + 17, 127, 247, 90, 16, 17, 241, 54, 16, 17, 127, 241, 54, 16, 17, 235, 39, + 241, 54, 16, 17, 185, 16, 17, 127, 185, 16, 17, 254, 102, 16, 17, 230, + 175, 185, 16, 17, 237, 88, 185, 16, 17, 252, 247, 16, 17, 244, 162, 16, + 17, 252, 248, 16, 17, 248, 112, 16, 17, 253, 8, 16, 17, 247, 183, 16, 17, + 237, 93, 247, 183, 16, 17, 252, 201, 16, 17, 247, 179, 16, 17, 248, 118, + 16, 17, 127, 248, 118, 16, 17, 247, 95, 16, 17, 127, 247, 95, 16, 17, + 241, 56, 16, 17, 127, 241, 56, 16, 17, 235, 39, 241, 56, 16, 17, 199, 16, + 17, 60, 253, 69, 16, 17, 254, 115, 16, 17, 253, 80, 16, 17, 244, 83, 16, + 17, 253, 42, 16, 17, 250, 220, 16, 17, 253, 49, 16, 17, 247, 87, 16, 17, + 237, 93, 247, 87, 16, 17, 252, 200, 16, 17, 247, 166, 16, 17, 248, 94, + 16, 17, 127, 248, 94, 16, 17, 248, 95, 16, 17, 127, 248, 95, 16, 17, 241, + 187, 16, 17, 127, 241, 187, 16, 17, 248, 96, 16, 17, 127, 248, 96, 16, + 17, 241, 188, 16, 17, 127, 241, 188, 16, 17, 247, 171, 16, 17, 127, 247, + 171, 16, 17, 241, 186, 16, 17, 127, 241, 186, 16, 17, 149, 16, 17, 127, + 149, 16, 17, 124, 149, 16, 17, 253, 52, 16, 17, 245, 146, 16, 17, 253, + 24, 16, 17, 251, 223, 16, 17, 253, 25, 16, 17, 247, 104, 16, 17, 237, 93, + 247, 104, 16, 17, 252, 204, 16, 17, 248, 153, 16, 17, 248, 167, 16, 17, + 127, 248, 167, 16, 17, 248, 168, 16, 17, 127, 248, 168, 16, 17, 241, 253, + 16, 17, 127, 241, 253, 16, 17, 248, 169, 16, 17, 127, 248, 169, 16, 17, + 241, 254, 16, 17, 127, 241, 254, 16, 17, 247, 206, 16, 17, 127, 247, 206, + 16, 17, 241, 76, 16, 17, 127, 241, 76, 16, 17, 235, 39, 241, 76, 16, 17, + 193, 16, 17, 230, 175, 193, 16, 17, 254, 10, 16, 17, 231, 204, 193, 16, + 17, 231, 104, 254, 147, 16, 17, 235, 39, 251, 228, 16, 17, 235, 39, 251, + 208, 16, 17, 235, 39, 245, 195, 16, 17, 235, 39, 245, 221, 16, 17, 235, + 39, 245, 190, 16, 17, 235, 39, 245, 154, 16, 17, 246, 186, 16, 17, 247, + 51, 16, 17, 245, 165, 16, 17, 246, 245, 16, 17, 241, 239, 16, 17, 246, + 165, 16, 17, 241, 234, 16, 17, 241, 16, 16, 17, 127, 241, 16, 16, 17, + 241, 243, 16, 17, 127, 241, 243, 16, 17, 238, 56, 16, 17, 127, 238, 56, + 16, 17, 241, 244, 16, 17, 127, 241, 244, 16, 17, 238, 57, 16, 17, 127, + 238, 57, 16, 17, 241, 72, 16, 17, 127, 241, 72, 16, 17, 238, 55, 16, 17, + 127, 238, 55, 16, 17, 253, 160, 16, 17, 253, 96, 16, 17, 246, 74, 16, 17, + 253, 28, 16, 17, 252, 150, 16, 17, 252, 251, 16, 17, 247, 234, 16, 17, + 237, 93, 247, 234, 16, 17, 191, 16, 17, 247, 117, 16, 17, 248, 204, 16, + 17, 127, 248, 204, 16, 17, 248, 205, 16, 17, 127, 248, 205, 16, 17, 242, + 34, 16, 17, 127, 242, 34, 16, 17, 248, 206, 16, 17, 127, 248, 206, 16, + 17, 242, 35, 16, 17, 127, 242, 35, 16, 17, 247, 235, 16, 17, 127, 247, + 235, 16, 17, 241, 88, 16, 17, 127, 241, 88, 16, 17, 235, 39, 241, 88, 16, + 17, 254, 190, 16, 17, 230, 231, 254, 190, 16, 17, 127, 254, 190, 16, 17, + 237, 88, 253, 28, 16, 17, 253, 36, 16, 17, 239, 212, 253, 36, 16, 17, + 127, 253, 80, 16, 17, 245, 111, 16, 17, 253, 37, 16, 17, 251, 182, 16, + 17, 252, 246, 16, 17, 248, 149, 16, 17, 127, 253, 49, 16, 17, 208, 16, + 17, 247, 100, 16, 17, 127, 252, 200, 16, 17, 241, 228, 16, 17, 127, 241, + 228, 16, 17, 146, 16, 17, 127, 146, 16, 17, 124, 146, 16, 17, 253, 147, + 16, 17, 243, 105, 16, 17, 253, 88, 16, 17, 249, 247, 16, 17, 253, 148, + 16, 17, 248, 39, 16, 17, 252, 234, 16, 17, 247, 139, 16, 17, 241, 135, + 16, 17, 127, 241, 135, 16, 17, 254, 191, 16, 17, 246, 247, 16, 17, 237, + 207, 246, 247, 16, 17, 247, 7, 16, 17, 237, 207, 247, 7, 16, 17, 241, 79, + 16, 17, 237, 207, 241, 79, 16, 17, 246, 228, 16, 17, 241, 80, 16, 17, + 246, 173, 16, 17, 241, 18, 16, 17, 238, 73, 16, 17, 127, 238, 73, 16, 17, + 253, 135, 16, 17, 246, 13, 16, 17, 246, 14, 16, 17, 241, 82, 16, 17, 240, + 150, 16, 17, 252, 32, 16, 17, 252, 39, 16, 17, 252, 40, 16, 17, 252, 41, + 16, 17, 252, 38, 16, 17, 235, 64, 252, 252, 16, 17, 235, 64, 253, 41, 16, + 17, 235, 64, 250, 75, 16, 17, 235, 64, 253, 21, 16, 17, 235, 64, 248, 65, + 16, 17, 235, 64, 154, 16, 17, 235, 64, 247, 14, 16, 17, 235, 64, 212, 16, + 17, 236, 171, 212, 16, 17, 254, 66, 16, 17, 245, 90, 16, 17, 253, 131, + 16, 17, 248, 141, 16, 17, 253, 159, 16, 17, 251, 142, 16, 17, 253, 35, + 16, 17, 247, 192, 16, 17, 254, 196, 16, 17, 242, 5, 16, 17, 242, 6, 16, + 17, 242, 7, 16, 17, 242, 4, 16, 17, 127, 253, 36, 16, 17, 127, 253, 37, + 16, 17, 127, 252, 246, 16, 17, 127, 208, 16, 17, 239, 134, 16, 17, 247, + 182, 16, 17, 244, 216, 16, 17, 247, 93, 16, 17, 244, 219, 16, 17, 246, + 169, 16, 17, 244, 202, 16, 17, 253, 69, 16, 17, 251, 67, 16, 17, 237, 88, + 246, 186, 16, 17, 237, 88, 247, 51, 16, 17, 237, 88, 246, 245, 16, 17, + 237, 88, 246, 165, 16, 17, 230, 150, 246, 247, 16, 17, 230, 150, 247, 7, + 16, 17, 230, 150, 246, 228, 16, 17, 230, 150, 246, 173, 16, 17, 230, 150, + 253, 135, 16, 17, 248, 90, 16, 17, 244, 98, 16, 17, 248, 91, 16, 17, 244, + 99, 16, 17, 247, 17, 16, 17, 244, 96, 16, 17, 254, 93, 16, 17, 235, 65, + 246, 247, 16, 17, 235, 65, 247, 7, 16, 17, 235, 65, 241, 79, 16, 17, 235, + 65, 246, 228, 16, 17, 235, 65, 241, 80, 16, 17, 235, 65, 246, 173, 16, + 17, 235, 65, 241, 18, 16, 17, 235, 65, 253, 135, 16, 17, 235, 243, 254, + 185, 16, 17, 231, 204, 72, 16, 17, 231, 204, 74, 16, 17, 231, 204, 73, + 16, 17, 231, 204, 57, 16, 17, 231, 204, 252, 250, 16, 17, 231, 204, 253, + 27, 16, 17, 231, 204, 253, 10, 16, 17, 231, 204, 252, 208, 16, 17, 231, + 204, 252, 247, 16, 17, 231, 204, 252, 248, 16, 17, 231, 204, 253, 8, 16, + 17, 231, 204, 252, 201, 16, 17, 231, 204, 253, 6, 16, 17, 231, 204, 253, + 7, 16, 17, 231, 204, 253, 33, 16, 17, 231, 204, 177, 16, 17, 237, 88, + 252, 252, 16, 17, 237, 88, 253, 41, 16, 17, 237, 88, 253, 21, 16, 17, + 237, 88, 154, 16, 17, 60, 250, 29, 16, 17, 60, 248, 52, 16, 17, 60, 247, + 13, 16, 17, 60, 243, 143, 16, 17, 60, 250, 28, 16, 17, 60, 246, 202, 16, + 17, 60, 253, 3, 16, 17, 60, 252, 246, 16, 17, 60, 253, 36, 16, 17, 60, + 247, 197, 16, 17, 60, 253, 37, 16, 17, 60, 208, 16, 17, 60, 253, 109, 16, + 17, 60, 253, 10, 16, 17, 60, 252, 250, 16, 17, 60, 247, 226, 16, 17, 60, + 253, 27, 16, 17, 60, 252, 208, 16, 17, 60, 250, 101, 16, 17, 60, 250, + 100, 16, 17, 60, 247, 151, 16, 17, 60, 243, 241, 16, 17, 60, 250, 99, 16, + 17, 60, 250, 98, 16, 17, 60, 247, 213, 16, 17, 60, 246, 228, 16, 17, 60, + 246, 247, 16, 17, 60, 240, 238, 16, 17, 60, 247, 7, 16, 17, 60, 246, 173, + 16, 17, 60, 252, 33, 16, 17, 60, 247, 217, 16, 17, 60, 248, 181, 16, 17, + 60, 246, 11, 16, 17, 60, 248, 182, 16, 17, 60, 246, 191, 16, 17, 60, 253, + 82, 16, 17, 60, 253, 50, 16, 17, 60, 253, 0, 16, 17, 60, 247, 46, 16, 17, + 60, 252, 223, 16, 17, 60, 213, 16, 17, 60, 254, 187, 16, 17, 60, 253, 40, + 16, 17, 60, 253, 76, 16, 17, 60, 253, 103, 16, 17, 60, 247, 144, 16, 17, + 60, 253, 39, 16, 17, 60, 252, 205, 16, 17, 60, 250, 164, 16, 17, 60, 247, + 158, 16, 17, 60, 248, 82, 16, 17, 60, 244, 55, 16, 17, 60, 247, 157, 16, + 17, 60, 246, 178, 16, 17, 60, 250, 174, 16, 17, 60, 250, 173, 16, 17, 60, + 250, 171, 16, 17, 60, 244, 62, 16, 17, 60, 250, 172, 16, 17, 60, 247, + 161, 16, 17, 60, 253, 183, 16, 17, 60, 252, 227, 16, 17, 60, 253, 8, 16, + 17, 60, 252, 247, 16, 17, 60, 247, 181, 16, 17, 60, 252, 248, 16, 17, 60, + 252, 201, 16, 17, 60, 252, 229, 16, 17, 60, 253, 14, 16, 17, 60, 253, 13, + 16, 17, 60, 247, 172, 16, 17, 60, 252, 239, 16, 17, 60, 198, 16, 17, 60, + 252, 233, 16, 17, 60, 252, 251, 16, 17, 60, 253, 96, 16, 17, 60, 247, 62, + 16, 17, 60, 253, 28, 16, 17, 60, 191, 16, 17, 60, 253, 118, 16, 17, 237, + 88, 253, 118, 16, 17, 60, 253, 90, 16, 17, 60, 253, 117, 16, 17, 60, 247, + 38, 16, 17, 60, 253, 104, 16, 17, 237, 88, 253, 104, 16, 17, 60, 252, + 213, 16, 17, 60, 248, 73, 16, 17, 60, 248, 72, 16, 17, 60, 250, 135, 16, + 17, 60, 244, 20, 16, 17, 60, 248, 71, 16, 17, 60, 248, 70, 16, 17, 60, + 253, 22, 16, 17, 60, 253, 49, 16, 17, 60, 253, 80, 16, 17, 60, 247, 168, + 16, 17, 60, 253, 42, 16, 17, 60, 252, 200, 16, 17, 60, 249, 201, 16, 17, + 60, 249, 200, 16, 17, 60, 249, 198, 16, 17, 60, 243, 74, 16, 17, 60, 249, + 199, 16, 17, 60, 248, 30, 16, 17, 60, 250, 219, 16, 17, 60, 248, 91, 16, + 17, 60, 250, 218, 16, 17, 60, 244, 97, 16, 17, 60, 248, 90, 16, 17, 60, + 247, 17, 16, 17, 60, 246, 1, 16, 17, 60, 242, 7, 16, 17, 60, 242, 5, 16, + 17, 60, 240, 45, 16, 17, 60, 242, 6, 16, 17, 60, 242, 4, 16, 17, 60, 248, + 178, 16, 17, 60, 248, 177, 16, 17, 60, 248, 175, 16, 17, 60, 246, 0, 16, + 17, 60, 248, 176, 16, 17, 60, 248, 174, 16, 17, 60, 253, 97, 16, 17, 60, + 253, 65, 16, 17, 60, 253, 46, 16, 17, 60, 247, 64, 16, 17, 60, 253, 72, + 16, 17, 60, 252, 226, 16, 17, 60, 254, 193, 16, 17, 60, 59, 254, 193, 16, + 17, 60, 249, 222, 16, 17, 60, 249, 221, 16, 17, 60, 246, 255, 16, 17, 60, + 243, 90, 16, 17, 60, 249, 220, 16, 17, 60, 246, 254, 16, 17, 60, 253, 26, + 16, 17, 60, 253, 25, 16, 17, 60, 253, 52, 16, 17, 60, 247, 50, 16, 17, + 60, 253, 24, 16, 17, 60, 252, 204, 16, 17, 60, 246, 246, 16, 17, 60, 246, + 245, 16, 17, 60, 246, 186, 16, 17, 60, 241, 70, 16, 17, 60, 247, 51, 16, + 17, 60, 246, 165, 16, 17, 60, 253, 160, 16, 17, 60, 247, 216, 16, 17, 60, + 247, 215, 16, 17, 60, 246, 248, 16, 17, 60, 242, 9, 16, 17, 60, 247, 58, + 16, 17, 60, 246, 216, 16, 17, 60, 247, 124, 16, 17, 60, 247, 29, 16, 17, + 60, 246, 217, 16, 17, 60, 240, 246, 16, 17, 60, 246, 200, 16, 17, 60, + 246, 176, 16, 17, 60, 246, 19, 16, 17, 60, 246, 18, 16, 17, 60, 246, 16, + 16, 17, 60, 240, 51, 16, 17, 60, 246, 17, 16, 17, 60, 246, 15, 16, 17, + 253, 212, 53, 16, 17, 246, 162, 240, 121, 16, 17, 248, 140, 16, 17, 244, + 203, 16, 17, 244, 248, 16, 17, 239, 153, 16, 17, 244, 249, 16, 17, 239, + 154, 16, 17, 244, 247, 16, 17, 239, 152, 240, 135, 245, 193, 76, 240, + 135, 1, 238, 120, 240, 135, 1, 244, 108, 240, 135, 1, 238, 213, 240, 135, + 1, 245, 148, 240, 135, 1, 244, 229, 240, 135, 1, 246, 29, 240, 135, 1, + 243, 26, 240, 135, 1, 240, 43, 240, 135, 1, 243, 18, 240, 135, 1, 238, + 143, 240, 135, 1, 244, 154, 240, 135, 1, 243, 154, 240, 135, 1, 234, 169, + 240, 135, 1, 236, 242, 240, 135, 1, 245, 138, 240, 135, 1, 242, 47, 240, + 135, 1, 248, 124, 240, 135, 1, 253, 161, 240, 135, 1, 234, 89, 240, 135, + 1, 234, 131, 240, 135, 1, 234, 88, 240, 135, 1, 253, 81, 240, 135, 1, + 233, 57, 240, 135, 1, 244, 4, 240, 135, 1, 229, 16, 240, 135, 1, 239, + 188, 240, 135, 235, 171, 76, 240, 135, 200, 235, 171, 76, 140, 1, 249, + 242, 249, 244, 255, 26, 254, 191, 140, 1, 196, 140, 1, 252, 64, 254, 244, + 66, 140, 1, 254, 20, 140, 1, 254, 190, 140, 1, 254, 195, 140, 1, 234, + 247, 245, 247, 237, 219, 140, 1, 246, 242, 140, 1, 242, 59, 57, 140, 1, + 255, 42, 73, 140, 1, 255, 0, 57, 140, 1, 242, 43, 140, 1, 227, 70, 73, + 140, 1, 227, 175, 73, 140, 1, 73, 140, 1, 253, 15, 140, 1, 253, 106, 140, + 1, 245, 112, 253, 191, 251, 177, 146, 140, 1, 239, 58, 140, 1, 249, 152, + 140, 1, 250, 157, 254, 186, 140, 1, 214, 140, 1, 247, 0, 140, 1, 250, 22, + 250, 55, 214, 140, 1, 246, 197, 140, 1, 246, 60, 252, 109, 254, 195, 140, + 1, 239, 3, 212, 140, 1, 243, 167, 212, 140, 1, 222, 247, 212, 140, 1, + 223, 53, 212, 140, 1, 239, 126, 254, 120, 251, 42, 199, 140, 1, 227, 77, + 199, 140, 1, 232, 172, 140, 1, 250, 123, 255, 8, 254, 72, 74, 140, 1, 72, + 140, 1, 244, 16, 254, 192, 140, 1, 250, 24, 140, 1, 227, 170, 253, 4, + 140, 1, 228, 160, 57, 140, 1, 250, 124, 249, 230, 140, 1, 239, 192, 239, + 190, 254, 187, 140, 1, 242, 53, 238, 204, 140, 1, 240, 10, 193, 140, 1, + 245, 184, 227, 71, 193, 140, 1, 227, 176, 193, 140, 1, 254, 194, 140, 1, + 254, 193, 140, 1, 245, 255, 253, 136, 254, 162, 254, 183, 140, 1, 227, + 177, 254, 183, 140, 1, 222, 222, 140, 1, 234, 19, 242, 201, 236, 13, 254, + 185, 140, 1, 222, 250, 254, 185, 140, 1, 232, 173, 140, 1, 236, 175, 140, + 1, 243, 95, 255, 24, 72, 140, 1, 239, 96, 253, 245, 185, 140, 1, 225, 96, + 185, 140, 1, 227, 76, 185, 140, 1, 239, 82, 250, 205, 250, 229, 149, 140, + 1, 232, 171, 140, 1, 236, 111, 140, 1, 250, 118, 140, 1, 243, 24, 249, + 175, 222, 222, 140, 1, 236, 179, 243, 101, 73, 140, 1, 247, 135, 140, 1, + 250, 121, 140, 1, 234, 43, 140, 1, 242, 230, 140, 1, 238, 141, 140, 1, + 245, 217, 140, 1, 227, 72, 140, 1, 227, 178, 140, 1, 227, 244, 140, 1, + 254, 196, 140, 1, 254, 184, 140, 237, 62, 228, 182, 140, 233, 219, 228, + 182, 140, 240, 221, 228, 182, 140, 238, 104, 98, 140, 234, 254, 98, 140, + 234, 18, 98, 235, 34, 1, 57, 235, 34, 1, 74, 235, 34, 1, 66, 235, 34, 1, + 177, 235, 34, 1, 252, 205, 235, 34, 1, 246, 169, 235, 34, 1, 252, 202, + 235, 34, 1, 252, 203, 235, 34, 1, 252, 201, 235, 34, 1, 213, 235, 34, 1, + 252, 211, 235, 34, 1, 198, 235, 34, 1, 191, 235, 34, 1, 252, 200, 235, + 34, 1, 252, 208, 235, 34, 1, 252, 204, 235, 34, 1, 154, 235, 34, 31, 5, + 74, 235, 34, 31, 5, 66, 235, 34, 5, 235, 43, 235, 32, 1, 57, 235, 32, 1, + 74, 235, 32, 1, 66, 235, 32, 1, 177, 235, 32, 1, 252, 205, 235, 32, 1, + 246, 169, 235, 32, 1, 252, 202, 235, 32, 1, 252, 203, 235, 32, 1, 252, + 201, 235, 32, 1, 213, 235, 32, 1, 252, 211, 235, 32, 1, 198, 235, 32, 1, + 191, 235, 32, 1, 208, 235, 32, 1, 252, 200, 235, 32, 1, 252, 208, 235, + 32, 1, 252, 204, 235, 32, 1, 154, 235, 32, 31, 5, 74, 235, 32, 31, 5, 66, + 235, 32, 5, 232, 240, 230, 194, 237, 62, 228, 182, 230, 194, 47, 228, + 182, 240, 145, 1, 57, 240, 145, 1, 74, 240, 145, 1, 66, 240, 145, 1, 177, + 240, 145, 1, 252, 205, 240, 145, 1, 246, 169, 240, 145, 1, 252, 202, 240, + 145, 1, 252, 203, 240, 145, 1, 252, 201, 240, 145, 1, 213, 240, 145, 1, + 252, 211, 240, 145, 1, 198, 240, 145, 1, 191, 240, 145, 1, 208, 240, 145, + 1, 252, 200, 240, 145, 1, 252, 208, 240, 145, 1, 252, 204, 240, 145, 1, + 154, 240, 145, 31, 5, 74, 240, 145, 31, 5, 66, 233, 86, 1, 57, 233, 86, + 1, 74, 233, 86, 1, 66, 233, 86, 1, 177, 233, 86, 1, 252, 205, 233, 86, 1, + 246, 169, 233, 86, 1, 252, 202, 233, 86, 1, 252, 203, 233, 86, 1, 252, + 201, 233, 86, 1, 213, 233, 86, 1, 252, 211, 233, 86, 1, 198, 233, 86, 1, + 191, 233, 86, 1, 252, 200, 233, 86, 1, 252, 208, 233, 86, 1, 252, 204, + 233, 86, 31, 5, 74, 233, 86, 31, 5, 66, 71, 1, 177, 71, 1, 246, 178, 71, + 1, 253, 33, 71, 1, 247, 158, 71, 1, 247, 93, 71, 1, 252, 215, 71, 1, 246, + 176, 71, 1, 253, 66, 71, 1, 247, 29, 71, 1, 247, 19, 71, 1, 252, 203, 71, + 1, 240, 150, 71, 1, 253, 57, 71, 1, 241, 82, 71, 1, 251, 68, 71, 1, 252, + 202, 71, 1, 246, 173, 71, 1, 96, 71, 1, 246, 228, 71, 1, 253, 8, 71, 1, + 252, 211, 71, 1, 246, 182, 71, 1, 253, 50, 71, 1, 247, 99, 71, 1, 253, + 14, 71, 1, 252, 251, 71, 1, 252, 246, 71, 1, 253, 49, 71, 1, 253, 108, + 71, 1, 246, 165, 71, 1, 247, 203, 71, 1, 252, 204, 71, 1, 154, 71, 1, + 252, 200, 71, 1, 253, 35, 71, 229, 166, 31, 251, 129, 71, 229, 166, 31, + 247, 192, 71, 229, 166, 31, 253, 131, 71, 229, 166, 31, 248, 141, 71, + 229, 166, 31, 253, 132, 71, 229, 166, 31, 251, 148, 71, 229, 166, 31, + 248, 145, 71, 229, 166, 31, 245, 105, 71, 229, 166, 31, 254, 6, 71, 229, + 166, 31, 251, 207, 71, 229, 166, 31, 253, 186, 71, 229, 166, 31, 250, + 244, 71, 229, 166, 31, 253, 190, 71, 229, 166, 31, 248, 140, 71, 229, + 166, 31, 254, 3, 247, 219, 118, 71, 229, 166, 31, 254, 3, 247, 219, 113, + 71, 229, 166, 31, 251, 130, 71, 31, 233, 208, 254, 28, 71, 31, 233, 208, + 252, 212, 71, 31, 5, 252, 212, 71, 31, 5, 74, 71, 31, 5, 252, 216, 71, + 31, 5, 254, 190, 71, 31, 5, 253, 203, 71, 31, 5, 66, 71, 31, 5, 252, 224, + 71, 31, 5, 253, 197, 71, 31, 5, 253, 15, 71, 31, 5, 191, 71, 31, 5, 253, + 77, 71, 31, 5, 72, 71, 31, 5, 253, 4, 71, 31, 5, 252, 221, 71, 31, 5, + 252, 220, 71, 31, 5, 252, 222, 71, 5, 234, 170, 71, 5, 234, 204, 71, 5, + 227, 182, 71, 5, 229, 38, 71, 5, 234, 251, 71, 5, 236, 7, 71, 5, 239, + 226, 71, 5, 229, 155, 71, 5, 234, 135, 71, 5, 238, 91, 71, 5, 239, 236, + 236, 207, 71, 5, 237, 24, 71, 5, 238, 157, 71, 5, 229, 235, 71, 5, 244, + 54, 71, 5, 229, 234, 71, 5, 238, 136, 253, 189, 244, 74, 71, 5, 253, 60, + 247, 109, 71, 5, 236, 11, 71, 5, 239, 195, 244, 153, 71, 5, 234, 141, 71, + 233, 112, 14, 245, 116, 71, 5, 227, 156, 71, 5, 232, 82, 71, 21, 240, + 126, 71, 21, 118, 71, 21, 113, 71, 21, 166, 71, 21, 158, 71, 21, 173, 71, + 21, 183, 71, 21, 194, 71, 21, 187, 71, 21, 192, 71, 14, 253, 60, 240, + 183, 251, 231, 71, 14, 253, 60, 240, 183, 244, 159, 71, 14, 253, 60, 240, + 183, 248, 132, 71, 14, 253, 60, 240, 183, 249, 108, 71, 14, 253, 60, 240, + 183, 242, 220, 71, 14, 253, 60, 240, 183, 245, 81, 71, 14, 253, 60, 240, + 183, 231, 125, 71, 14, 253, 60, 240, 183, 232, 255, 71, 14, 253, 60, 240, + 183, 232, 254, 71, 14, 253, 60, 240, 183, 231, 124, 68, 238, 123, 68, + 231, 218, 68, 237, 67, 68, 246, 162, 240, 121, 68, 237, 66, 68, 246, 160, + 240, 169, 68, 246, 175, 246, 227, 235, 69, 68, 246, 185, 4, 234, 21, 235, + 70, 68, 237, 64, 237, 67, 68, 237, 64, 246, 162, 240, 121, 68, 236, 167, + 68, 247, 142, 38, 233, 179, 118, 68, 247, 142, 38, 233, 179, 113, 68, + 247, 142, 38, 233, 179, 166, 68, 31, 230, 131, 68, 21, 240, 126, 68, 21, + 118, 68, 21, 113, 68, 21, 166, 68, 21, 158, 68, 21, 173, 68, 21, 183, 68, + 21, 194, 68, 21, 187, 68, 21, 192, 68, 1, 57, 68, 1, 72, 68, 1, 74, 68, + 1, 73, 68, 1, 66, 68, 1, 253, 15, 68, 1, 253, 71, 68, 1, 252, 231, 68, 1, + 252, 201, 68, 1, 247, 9, 68, 1, 252, 211, 68, 1, 213, 68, 1, 253, 35, 68, + 1, 252, 205, 68, 1, 198, 68, 1, 252, 200, 68, 1, 252, 204, 68, 1, 246, + 165, 68, 1, 252, 202, 68, 1, 252, 203, 68, 1, 246, 176, 68, 1, 252, 213, + 68, 1, 191, 68, 1, 208, 68, 1, 252, 208, 68, 1, 252, 234, 68, 1, 177, 68, + 1, 246, 178, 68, 1, 246, 216, 68, 1, 252, 226, 68, 1, 247, 14, 68, 1, + 252, 187, 68, 1, 247, 17, 68, 1, 247, 238, 68, 1, 246, 200, 68, 1, 246, + 175, 182, 31, 53, 68, 1, 246, 175, 72, 68, 1, 246, 175, 74, 68, 1, 246, + 175, 73, 68, 1, 246, 175, 66, 68, 1, 246, 175, 253, 15, 68, 1, 246, 175, + 253, 71, 68, 1, 246, 175, 247, 9, 68, 1, 246, 175, 252, 211, 68, 1, 246, + 175, 213, 68, 1, 246, 175, 253, 35, 68, 1, 246, 175, 252, 205, 68, 1, + 246, 175, 198, 68, 1, 246, 175, 252, 202, 68, 1, 246, 175, 252, 203, 68, + 1, 246, 175, 246, 176, 68, 1, 246, 175, 252, 213, 68, 1, 246, 175, 246, + 216, 68, 1, 246, 175, 191, 68, 1, 246, 175, 252, 208, 68, 1, 246, 175, + 177, 68, 1, 246, 175, 247, 143, 68, 1, 246, 175, 247, 14, 68, 1, 246, + 175, 250, 130, 68, 1, 246, 175, 251, 59, 68, 1, 246, 175, 246, 254, 68, + 1, 246, 185, 72, 68, 1, 246, 185, 74, 68, 1, 246, 185, 253, 234, 68, 1, + 246, 185, 253, 71, 68, 1, 246, 185, 66, 68, 1, 246, 185, 247, 9, 68, 1, + 246, 185, 177, 68, 1, 246, 185, 252, 205, 68, 1, 246, 185, 154, 68, 1, + 246, 185, 213, 68, 1, 246, 185, 246, 165, 68, 1, 246, 185, 252, 202, 68, + 1, 246, 185, 252, 203, 68, 1, 246, 185, 252, 213, 68, 1, 246, 185, 252, + 234, 68, 1, 246, 185, 247, 143, 68, 1, 246, 185, 247, 14, 68, 1, 246, + 185, 246, 216, 68, 1, 246, 185, 252, 226, 68, 1, 246, 185, 247, 100, 68, + 1, 246, 185, 246, 176, 68, 1, 246, 185, 246, 223, 68, 1, 237, 64, 74, 68, + 1, 237, 64, 177, 68, 1, 237, 64, 208, 68, 1, 237, 64, 252, 234, 68, 1, + 237, 64, 246, 223, 68, 1, 252, 209, 246, 161, 234, 4, 118, 68, 1, 252, + 209, 246, 161, 237, 25, 118, 68, 1, 252, 209, 246, 161, 236, 41, 68, 1, + 252, 209, 246, 161, 233, 248, 68, 1, 252, 209, 246, 161, 233, 70, 233, + 248, 68, 1, 252, 209, 246, 161, 235, 148, 68, 1, 252, 209, 246, 161, 152, + 235, 148, 68, 1, 252, 209, 246, 161, 57, 68, 1, 252, 209, 246, 161, 74, + 68, 1, 252, 209, 246, 161, 177, 68, 1, 252, 209, 246, 161, 246, 169, 68, + 1, 252, 209, 246, 161, 252, 215, 68, 1, 252, 209, 246, 161, 246, 191, 68, + 1, 252, 209, 246, 161, 240, 150, 68, 1, 252, 209, 246, 161, 246, 192, 68, + 1, 252, 209, 246, 161, 246, 203, 68, 1, 252, 209, 246, 161, 252, 202, 68, + 1, 252, 209, 246, 161, 252, 203, 68, 1, 252, 209, 246, 161, 213, 68, 1, + 252, 209, 246, 161, 246, 182, 68, 1, 252, 209, 246, 161, 246, 190, 68, 1, + 252, 209, 246, 161, 246, 223, 68, 1, 252, 209, 246, 161, 252, 226, 68, 1, + 252, 209, 246, 161, 253, 111, 68, 1, 246, 175, 252, 209, 246, 161, 252, + 202, 68, 1, 246, 175, 252, 209, 246, 161, 246, 223, 68, 1, 237, 64, 252, + 209, 246, 161, 246, 202, 68, 1, 237, 64, 252, 209, 246, 161, 246, 169, + 68, 1, 237, 64, 252, 209, 246, 161, 252, 215, 68, 1, 237, 64, 252, 209, + 246, 161, 246, 213, 68, 1, 237, 64, 252, 209, 246, 161, 246, 191, 68, 1, + 237, 64, 252, 209, 246, 161, 240, 166, 68, 1, 237, 64, 252, 209, 246, + 161, 252, 202, 68, 1, 237, 64, 252, 209, 246, 161, 246, 196, 68, 1, 237, + 64, 252, 209, 246, 161, 246, 190, 68, 1, 237, 64, 252, 209, 246, 161, + 249, 170, 68, 1, 237, 64, 252, 209, 246, 161, 246, 223, 68, 1, 237, 64, + 252, 209, 246, 161, 252, 226, 68, 1, 252, 209, 246, 161, 132, 66, 68, 1, + 252, 209, 246, 161, 132, 191, 68, 1, 237, 64, 252, 209, 246, 161, 246, + 199, 68, 1, 252, 209, 246, 161, 234, 46, 68, 1, 237, 64, 252, 209, 246, + 161, 247, 17, 174, 228, 172, 236, 133, 174, 1, 177, 174, 1, 246, 178, + 174, 1, 252, 205, 174, 1, 246, 202, 174, 1, 246, 169, 174, 1, 252, 215, + 174, 1, 246, 176, 174, 1, 252, 213, 174, 1, 246, 213, 174, 1, 248, 197, + 174, 1, 252, 202, 174, 1, 246, 173, 174, 1, 252, 203, 174, 1, 246, 196, + 174, 1, 252, 201, 174, 1, 213, 174, 1, 246, 182, 174, 1, 252, 211, 174, + 1, 246, 199, 174, 1, 198, 174, 1, 191, 174, 1, 208, 174, 1, 252, 200, + 174, 1, 252, 208, 174, 1, 246, 165, 174, 1, 246, 190, 174, 1, 252, 204, + 174, 1, 154, 174, 31, 5, 57, 174, 31, 5, 74, 174, 31, 5, 66, 174, 31, 5, + 252, 231, 174, 31, 5, 252, 221, 174, 31, 5, 252, 220, 174, 31, 5, 252, + 222, 174, 31, 5, 72, 174, 31, 5, 73, 174, 231, 189, 1, 191, 174, 231, + 189, 1, 208, 174, 231, 189, 1, 252, 208, 174, 3, 1, 177, 174, 3, 1, 246, + 169, 174, 3, 1, 231, 206, 174, 3, 1, 252, 202, 174, 3, 1, 252, 201, 174, + 3, 1, 213, 174, 3, 1, 198, 174, 3, 1, 208, 174, 3, 1, 252, 200, 174, 5, + 231, 106, 174, 5, 231, 91, 174, 5, 245, 145, 174, 5, 247, 87, 174, 229, + 165, 76, 174, 233, 82, 76, 174, 21, 240, 126, 174, 21, 118, 174, 21, 113, + 174, 21, 166, 174, 21, 158, 174, 21, 173, 174, 21, 183, 174, 21, 194, + 174, 21, 187, 174, 21, 192, 91, 254, 197, 1, 177, 91, 254, 197, 1, 253, + 83, 91, 254, 197, 1, 246, 169, 91, 254, 197, 1, 246, 216, 91, 254, 197, + 1, 252, 204, 91, 254, 197, 1, 191, 91, 254, 197, 1, 252, 202, 91, 254, + 197, 1, 246, 173, 91, 254, 197, 1, 252, 200, 91, 254, 197, 1, 213, 91, + 254, 197, 1, 246, 182, 91, 254, 197, 1, 198, 91, 254, 197, 1, 252, 234, + 91, 254, 197, 1, 252, 243, 91, 254, 197, 1, 154, 91, 254, 197, 1, 253, + 35, 91, 254, 197, 1, 246, 178, 91, 254, 197, 1, 240, 240, 91, 254, 197, + 1, 252, 201, 91, 254, 197, 1, 57, 91, 254, 197, 1, 74, 91, 254, 197, 1, + 252, 231, 91, 254, 197, 1, 253, 144, 91, 254, 197, 1, 66, 91, 254, 197, + 1, 252, 220, 91, 254, 197, 1, 73, 91, 254, 197, 1, 253, 71, 91, 254, 197, + 1, 72, 91, 254, 197, 1, 248, 241, 91, 254, 197, 1, 252, 221, 91, 254, + 197, 1, 235, 101, 91, 254, 197, 1, 235, 102, 91, 254, 197, 1, 235, 227, + 91, 254, 197, 1, 235, 103, 91, 254, 197, 1, 235, 228, 139, 91, 144, 1, + 201, 253, 35, 139, 91, 144, 1, 184, 253, 35, 139, 91, 144, 1, 201, 177, + 139, 91, 144, 1, 201, 253, 83, 139, 91, 144, 1, 201, 246, 169, 139, 91, + 144, 1, 184, 177, 139, 91, 144, 1, 184, 253, 83, 139, 91, 144, 1, 184, + 246, 169, 139, 91, 144, 1, 201, 246, 216, 139, 91, 144, 1, 201, 252, 204, + 139, 91, 144, 1, 201, 191, 139, 91, 144, 1, 184, 246, 216, 139, 91, 144, + 1, 184, 252, 204, 139, 91, 144, 1, 184, 191, 139, 91, 144, 1, 201, 252, + 202, 139, 91, 144, 1, 201, 246, 173, 139, 91, 144, 1, 201, 252, 201, 139, + 91, 144, 1, 184, 252, 202, 139, 91, 144, 1, 184, 246, 173, 139, 91, 144, + 1, 184, 252, 201, 139, 91, 144, 1, 201, 213, 139, 91, 144, 1, 201, 246, + 182, 139, 91, 144, 1, 201, 198, 139, 91, 144, 1, 184, 213, 139, 91, 144, + 1, 184, 246, 182, 139, 91, 144, 1, 184, 198, 139, 91, 144, 1, 201, 252, + 234, 139, 91, 144, 1, 201, 252, 243, 139, 91, 144, 1, 201, 252, 200, 139, + 91, 144, 1, 184, 252, 234, 139, 91, 144, 1, 184, 252, 243, 139, 91, 144, + 1, 184, 252, 200, 139, 91, 144, 1, 201, 154, 139, 91, 144, 1, 201, 252, + 203, 139, 91, 144, 1, 201, 252, 211, 139, 91, 144, 1, 184, 154, 139, 91, + 144, 1, 184, 252, 203, 139, 91, 144, 1, 184, 252, 211, 139, 91, 144, 1, + 201, 248, 87, 139, 91, 144, 1, 201, 248, 195, 139, 91, 144, 1, 184, 248, + 87, 139, 91, 144, 1, 184, 248, 195, 139, 91, 144, 31, 5, 31, 231, 142, + 139, 91, 144, 31, 5, 252, 212, 139, 91, 144, 31, 5, 252, 216, 139, 91, + 144, 31, 5, 66, 139, 91, 144, 31, 5, 252, 224, 139, 91, 144, 31, 5, 72, + 139, 91, 144, 31, 5, 253, 4, 139, 91, 144, 31, 5, 73, 139, 91, 144, 31, + 5, 253, 253, 139, 91, 144, 31, 5, 253, 71, 139, 91, 144, 31, 5, 253, 114, + 139, 91, 144, 31, 5, 248, 226, 139, 91, 144, 31, 5, 254, 15, 139, 91, + 144, 31, 5, 254, 123, 139, 91, 144, 31, 5, 251, 95, 139, 91, 144, 31, 5, + 252, 51, 139, 91, 144, 31, 5, 253, 234, 139, 91, 144, 1, 35, 196, 139, + 91, 144, 1, 35, 253, 69, 139, 91, 144, 1, 35, 199, 139, 91, 144, 1, 35, + 185, 139, 91, 144, 1, 35, 254, 186, 139, 91, 144, 1, 35, 222, 222, 139, + 91, 144, 1, 35, 254, 185, 139, 91, 144, 206, 235, 190, 139, 91, 144, 206, + 235, 191, 139, 91, 144, 21, 240, 126, 139, 91, 144, 21, 118, 139, 91, + 144, 21, 113, 139, 91, 144, 21, 166, 139, 91, 144, 21, 158, 139, 91, 144, + 21, 173, 139, 91, 144, 21, 183, 139, 91, 144, 21, 194, 139, 91, 144, 21, + 187, 139, 91, 144, 21, 192, 139, 91, 144, 5, 250, 204, 139, 91, 144, 5, + 244, 87, 71, 14, 230, 88, 71, 14, 248, 104, 240, 164, 71, 14, 253, 189, + 240, 164, 71, 14, 253, 208, 240, 164, 71, 14, 248, 1, 240, 164, 71, 14, + 248, 135, 240, 164, 71, 14, 232, 37, 240, 164, 71, 14, 233, 230, 240, + 164, 71, 14, 233, 229, 240, 164, 71, 14, 232, 36, 240, 164, 71, 14, 253, + 214, 240, 164, 71, 14, 233, 198, 240, 164, 71, 14, 235, 162, 240, 164, + 71, 14, 235, 161, 240, 164, 71, 14, 233, 197, 240, 164, 71, 14, 233, 199, + 240, 164, 71, 14, 231, 183, 71, 14, 248, 104, 246, 211, 71, 14, 253, 189, + 246, 211, 71, 14, 253, 208, 246, 211, 71, 14, 248, 1, 246, 211, 71, 14, + 248, 135, 246, 211, 71, 14, 232, 37, 246, 211, 71, 14, 233, 230, 246, + 211, 71, 14, 233, 229, 246, 211, 71, 14, 232, 36, 246, 211, 71, 14, 253, + 214, 246, 211, 71, 14, 233, 198, 246, 211, 71, 14, 235, 162, 246, 211, + 71, 14, 235, 161, 246, 211, 71, 14, 233, 197, 246, 211, 71, 14, 233, 199, + 246, 211, 233, 73, 1, 177, 233, 73, 1, 252, 205, 233, 73, 1, 246, 169, + 233, 73, 1, 244, 217, 233, 73, 1, 213, 233, 73, 1, 252, 211, 233, 73, 1, + 198, 233, 73, 1, 248, 102, 233, 73, 1, 252, 202, 233, 73, 1, 252, 203, + 233, 73, 1, 252, 201, 233, 73, 1, 248, 117, 233, 73, 1, 252, 215, 233, + 73, 1, 252, 213, 233, 73, 1, 246, 181, 233, 73, 1, 245, 19, 233, 73, 1, + 191, 233, 73, 1, 208, 233, 73, 1, 252, 200, 233, 73, 1, 252, 243, 233, + 73, 1, 252, 204, 233, 73, 1, 57, 233, 73, 1, 154, 233, 73, 31, 5, 74, + 233, 73, 31, 5, 66, 233, 73, 31, 5, 72, 233, 73, 31, 5, 73, 233, 73, 31, + 5, 253, 4, 233, 73, 234, 181, 233, 73, 252, 255, 106, 233, 144, 85, 5, + 253, 198, 239, 223, 85, 5, 253, 198, 236, 20, 85, 5, 238, 142, 85, 5, + 235, 217, 85, 5, 238, 124, 85, 1, 238, 92, 85, 1, 242, 50, 235, 48, 85, + 1, 239, 39, 85, 1, 244, 5, 235, 48, 85, 1, 240, 65, 85, 1, 246, 31, 235, + 48, 85, 1, 254, 224, 241, 66, 85, 1, 254, 224, 247, 199, 235, 48, 85, 1, + 254, 229, 238, 20, 85, 1, 254, 229, 241, 180, 235, 48, 85, 1, 238, 198, + 85, 1, 235, 242, 85, 1, 239, 172, 85, 1, 245, 53, 235, 48, 85, 1, 177, + 85, 1, 188, 230, 168, 85, 1, 252, 205, 85, 1, 254, 248, 243, 153, 85, 1, + 246, 169, 85, 1, 252, 215, 85, 1, 255, 21, 244, 85, 85, 1, 252, 213, 85, + 1, 255, 33, 244, 15, 85, 1, 246, 181, 85, 1, 254, 214, 239, 81, 85, 1, + 254, 214, 241, 52, 230, 168, 85, 1, 254, 218, 241, 52, 230, 223, 85, 1, + 254, 218, 241, 52, 230, 168, 85, 1, 255, 13, 236, 199, 85, 1, 252, 202, + 85, 1, 254, 214, 245, 238, 85, 1, 252, 203, 85, 1, 254, 218, 244, 115, + 85, 1, 252, 201, 85, 1, 213, 85, 1, 254, 242, 239, 56, 85, 1, 252, 211, + 85, 1, 255, 19, 234, 138, 85, 1, 198, 85, 1, 191, 85, 1, 208, 85, 1, 252, + 200, 85, 1, 252, 208, 85, 1, 255, 15, 245, 147, 85, 1, 255, 15, 245, 151, + 85, 1, 252, 204, 85, 1, 154, 85, 5, 234, 207, 85, 31, 5, 235, 48, 85, 31, + 5, 252, 52, 85, 31, 5, 253, 198, 245, 152, 85, 31, 5, 245, 223, 85, 31, + 5, 251, 241, 244, 6, 85, 31, 5, 254, 224, 241, 66, 85, 31, 5, 254, 224, + 247, 199, 235, 48, 85, 31, 5, 254, 229, 238, 20, 85, 31, 5, 254, 229, + 241, 180, 235, 48, 85, 31, 5, 236, 253, 85, 31, 5, 237, 217, 241, 66, 85, + 31, 5, 237, 217, 235, 48, 85, 31, 5, 237, 217, 247, 199, 235, 48, 85, 31, + 5, 239, 191, 85, 31, 5, 245, 65, 235, 48, 85, 248, 229, 242, 42, 85, 1, + 252, 214, 237, 128, 85, 1, 250, 163, 237, 128, 85, 1, 252, 45, 237, 128, + 85, 1, 255, 23, 237, 128, 85, 1, 254, 254, 237, 128, 85, 1, 254, 177, + 237, 128, 85, 1, 238, 109, 237, 128, 85, 21, 240, 126, 85, 21, 118, 85, + 21, 113, 85, 21, 166, 85, 21, 158, 85, 21, 173, 85, 21, 183, 85, 21, 194, + 85, 21, 187, 85, 21, 192, 85, 239, 180, 85, 236, 183, 85, 240, 85, 85, + 241, 28, 231, 115, 85, 241, 28, 245, 186, 85, 241, 28, 234, 187, 85, 232, + 239, 85, 23, 14, 243, 77, 85, 23, 14, 243, 58, 85, 23, 14, 243, 85, 85, + 23, 14, 241, 117, 85, 23, 14, 248, 18, 235, 217, 85, 23, 14, 243, 70, 85, + 23, 14, 238, 166, 85, 23, 14, 238, 183, 85, 23, 14, 238, 168, 85, 23, 14, + 248, 18, 243, 122, 85, 23, 14, 36, 240, 31, 85, 23, 14, 36, 238, 201, 85, + 23, 14, 36, 236, 120, 85, 23, 14, 36, 236, 119, 85, 23, 14, 36, 233, 169, + 85, 23, 14, 36, 239, 64, 2, 233, 169, 85, 23, 14, 36, 239, 63, 2, 233, + 169, 85, 23, 14, 36, 238, 121, 85, 23, 14, 36, 243, 152, 85, 23, 14, 230, + 158, 246, 157, 247, 133, 85, 23, 14, 230, 158, 246, 157, 248, 17, 85, 23, + 14, 230, 158, 237, 58, 248, 183, 85, 23, 14, 230, 158, 237, 58, 252, 4, + 85, 23, 14, 231, 232, 246, 157, 245, 60, 85, 23, 14, 231, 232, 246, 157, + 245, 83, 85, 23, 14, 231, 232, 237, 58, 245, 76, 85, 23, 14, 231, 232, + 237, 58, 245, 79, 85, 23, 14, 231, 232, 246, 157, 241, 62, 220, 5, 232, + 244, 220, 5, 231, 116, 220, 5, 231, 117, 220, 1, 57, 220, 1, 74, 220, 1, + 66, 220, 1, 253, 4, 220, 1, 73, 220, 1, 72, 220, 1, 253, 100, 220, 1, + 177, 220, 1, 253, 35, 220, 1, 252, 205, 220, 1, 246, 169, 220, 1, 252, + 215, 220, 1, 252, 213, 220, 1, 252, 226, 220, 1, 246, 181, 220, 1, 252, + 202, 220, 1, 252, 203, 220, 1, 252, 201, 220, 1, 213, 220, 1, 252, 234, + 220, 1, 252, 243, 220, 1, 252, 211, 220, 1, 198, 220, 1, 191, 220, 1, + 208, 220, 1, 252, 200, 220, 1, 252, 208, 220, 1, 252, 204, 220, 1, 253, + 83, 220, 1, 154, 220, 231, 194, 5, 231, 114, 220, 231, 194, 5, 232, 243, + 220, 231, 194, 5, 234, 184, 220, 31, 5, 232, 241, 220, 31, 5, 234, 185, + 220, 31, 5, 230, 86, 220, 31, 5, 232, 242, 220, 31, 5, 234, 183, 220, 31, + 5, 230, 87, 220, 5, 234, 182, 220, 1, 246, 178, 220, 1, 251, 248, 220, + 21, 240, 126, 220, 21, 118, 220, 21, 113, 220, 21, 166, 220, 21, 158, + 220, 21, 173, 220, 21, 183, 220, 21, 194, 220, 21, 187, 220, 21, 192, + 156, 1, 177, 156, 1, 250, 175, 156, 1, 246, 178, 156, 1, 252, 205, 156, + 1, 250, 35, 156, 1, 246, 169, 156, 1, 252, 215, 156, 1, 246, 176, 156, 1, + 252, 213, 156, 1, 246, 181, 156, 1, 252, 202, 156, 1, 246, 173, 156, 1, + 252, 203, 156, 1, 252, 201, 156, 1, 213, 156, 1, 248, 133, 156, 1, 246, + 182, 156, 1, 252, 234, 156, 1, 249, 253, 156, 1, 252, 211, 156, 1, 249, + 124, 156, 1, 198, 156, 1, 251, 20, 156, 1, 246, 216, 156, 1, 240, 240, + 156, 1, 246, 254, 156, 1, 191, 156, 1, 208, 156, 1, 252, 200, 156, 1, + 154, 156, 1, 248, 61, 156, 1, 252, 243, 156, 1, 252, 204, 156, 1, 246, + 165, 156, 1, 252, 208, 156, 1, 57, 156, 231, 189, 1, 191, 156, 231, 189, + 1, 208, 156, 31, 5, 252, 212, 156, 31, 5, 74, 156, 31, 5, 73, 156, 31, 5, + 252, 220, 156, 31, 5, 66, 156, 31, 5, 252, 224, 156, 31, 5, 72, 156, 231, + 194, 5, 254, 186, 156, 231, 194, 5, 185, 156, 231, 194, 5, 149, 156, 231, + 194, 5, 199, 156, 231, 194, 5, 254, 187, 156, 231, 194, 5, 146, 156, 231, + 194, 5, 254, 183, 156, 231, 194, 5, 234, 172, 156, 231, 194, 5, 244, 48, + 156, 5, 251, 173, 156, 5, 237, 125, 156, 229, 161, 235, 218, 156, 229, + 161, 251, 85, 240, 41, 235, 218, 156, 229, 161, 235, 156, 156, 229, 161, + 240, 50, 235, 156, 156, 229, 161, 237, 10, 156, 21, 240, 126, 156, 21, + 118, 156, 21, 113, 156, 21, 166, 156, 21, 158, 156, 21, 173, 156, 21, + 183, 156, 21, 194, 156, 21, 187, 156, 21, 192, 156, 1, 246, 191, 156, 1, + 240, 150, 156, 1, 246, 192, 254, 189, 240, 122, 21, 240, 126, 254, 189, + 240, 122, 21, 118, 254, 189, 240, 122, 21, 113, 254, 189, 240, 122, 21, + 166, 254, 189, 240, 122, 21, 158, 254, 189, 240, 122, 21, 173, 254, 189, + 240, 122, 21, 183, 254, 189, 240, 122, 21, 194, 254, 189, 240, 122, 21, + 187, 254, 189, 240, 122, 21, 192, 254, 189, 240, 122, 1, 252, 200, 254, + 189, 240, 122, 1, 253, 113, 254, 189, 240, 122, 1, 254, 24, 254, 189, + 240, 122, 1, 247, 9, 254, 189, 240, 122, 1, 253, 112, 254, 189, 240, 122, + 1, 247, 166, 254, 189, 240, 122, 1, 248, 223, 254, 189, 240, 122, 1, 248, + 222, 254, 189, 240, 122, 1, 248, 224, 254, 189, 240, 122, 1, 248, 225, + 254, 189, 240, 122, 1, 253, 42, 254, 189, 240, 122, 1, 253, 182, 254, + 189, 240, 122, 1, 253, 230, 254, 189, 240, 122, 1, 250, 120, 254, 189, + 240, 122, 1, 253, 149, 254, 189, 240, 122, 1, 253, 22, 254, 189, 240, + 122, 1, 254, 163, 254, 189, 240, 122, 1, 253, 45, 254, 189, 240, 122, 1, + 248, 188, 254, 189, 240, 122, 1, 254, 15, 254, 189, 240, 122, 1, 253, 80, + 254, 189, 240, 122, 1, 254, 51, 254, 189, 240, 122, 1, 249, 223, 254, + 189, 240, 122, 1, 252, 232, 254, 189, 240, 122, 1, 248, 34, 254, 189, + 240, 122, 1, 253, 49, 254, 189, 240, 122, 1, 251, 100, 254, 189, 240, + 122, 1, 254, 121, 254, 189, 240, 122, 1, 254, 0, 254, 189, 240, 122, 1, + 253, 187, 254, 189, 240, 122, 254, 207, 234, 253, 254, 189, 240, 122, + 236, 88, 232, 60, 254, 189, 240, 122, 231, 105, 232, 60, 254, 189, 240, + 122, 239, 218, 254, 189, 240, 122, 232, 249, 254, 189, 240, 122, 242, 45, + 254, 189, 240, 122, 229, 161, 235, 193, 254, 189, 240, 122, 229, 161, 47, + 235, 193, 7, 1, 3, 6, 57, 7, 1, 3, 6, 253, 4, 7, 3, 1, 209, 253, 4, 7, 1, + 3, 6, 237, 118, 254, 185, 7, 1, 3, 6, 254, 194, 7, 1, 3, 6, 222, 222, 7, + 1, 3, 6, 246, 242, 7, 1, 3, 6, 72, 7, 3, 1, 209, 246, 157, 72, 7, 3, 1, + 209, 74, 7, 1, 3, 6, 254, 192, 7, 1, 3, 6, 254, 186, 7, 1, 3, 6, 255, 58, + 2, 82, 7, 1, 3, 6, 185, 7, 1, 3, 6, 200, 199, 7, 1, 3, 6, 73, 7, 1, 3, 6, + 246, 157, 73, 7, 3, 1, 233, 116, 73, 7, 3, 1, 233, 116, 246, 157, 73, 7, + 3, 1, 233, 116, 130, 2, 82, 7, 3, 1, 209, 253, 15, 7, 1, 3, 6, 253, 119, + 7, 3, 1, 252, 228, 132, 73, 7, 3, 1, 237, 59, 132, 73, 7, 1, 3, 6, 254, + 187, 7, 1, 3, 6, 200, 146, 7, 1, 3, 6, 209, 146, 7, 1, 3, 6, 254, 183, 7, + 1, 3, 6, 66, 7, 3, 1, 233, 116, 66, 7, 3, 1, 233, 116, 229, 247, 66, 7, + 3, 1, 233, 116, 209, 185, 7, 1, 3, 6, 196, 7, 1, 3, 6, 254, 195, 7, 1, 3, + 6, 254, 193, 7, 1, 3, 6, 247, 74, 7, 1, 237, 107, 232, 218, 234, 227, 7, + 1, 246, 224, 19, 1, 3, 6, 237, 61, 19, 1, 3, 6, 237, 82, 19, 1, 3, 6, + 252, 223, 19, 1, 3, 6, 246, 209, 19, 1, 3, 6, 246, 204, 28, 1, 3, 6, 253, + 58, 52, 1, 6, 57, 52, 1, 6, 253, 4, 52, 1, 6, 254, 185, 52, 1, 6, 237, + 118, 254, 185, 52, 1, 6, 222, 222, 52, 1, 6, 72, 52, 1, 6, 200, 72, 52, + 1, 6, 214, 52, 1, 6, 212, 52, 1, 6, 74, 52, 1, 6, 254, 192, 52, 1, 6, + 254, 186, 52, 1, 6, 149, 52, 1, 6, 185, 52, 1, 6, 199, 52, 1, 6, 200, + 199, 52, 1, 6, 73, 52, 1, 6, 253, 119, 52, 1, 6, 254, 187, 52, 1, 6, 146, + 52, 1, 6, 254, 183, 52, 1, 6, 66, 52, 1, 6, 254, 195, 52, 1, 3, 57, 52, + 1, 3, 209, 57, 52, 1, 3, 237, 71, 52, 1, 3, 209, 253, 4, 52, 1, 3, 254, + 185, 52, 1, 3, 222, 222, 52, 1, 3, 72, 52, 1, 3, 237, 144, 52, 1, 3, 246, + 157, 72, 52, 1, 3, 209, 246, 157, 72, 52, 1, 3, 214, 52, 1, 3, 209, 74, + 52, 1, 3, 254, 186, 52, 1, 3, 185, 52, 1, 3, 247, 0, 52, 1, 3, 73, 52, 1, + 3, 246, 157, 73, 52, 1, 3, 252, 228, 132, 73, 52, 1, 3, 237, 59, 132, 73, + 52, 1, 3, 254, 187, 52, 1, 3, 254, 183, 52, 1, 3, 66, 52, 1, 3, 233, 116, + 66, 52, 1, 3, 209, 185, 52, 1, 3, 196, 52, 1, 3, 246, 224, 52, 1, 3, 240, + 160, 52, 1, 3, 19, 237, 61, 52, 1, 3, 237, 75, 52, 1, 3, 19, 246, 198, + 52, 1, 3, 246, 200, 7, 231, 195, 3, 1, 74, 7, 231, 195, 3, 1, 146, 7, + 231, 195, 3, 1, 66, 7, 231, 195, 3, 1, 196, 19, 231, 195, 3, 1, 240, 160, + 19, 231, 195, 3, 1, 237, 61, 19, 231, 195, 3, 1, 246, 209, 19, 231, 195, + 3, 1, 246, 198, 19, 231, 195, 3, 1, 246, 200, 7, 3, 1, 253, 71, 7, 3, 1, + 45, 2, 237, 44, 205, 7, 3, 1, 255, 63, 2, 237, 44, 205, 7, 3, 1, 255, 72, + 2, 237, 44, 205, 7, 3, 1, 255, 68, 2, 237, 44, 205, 7, 3, 1, 255, 60, 2, + 237, 44, 205, 7, 3, 1, 255, 70, 2, 237, 44, 205, 7, 3, 1, 255, 57, 2, + 237, 44, 205, 7, 3, 1, 255, 57, 2, 233, 206, 22, 237, 44, 205, 7, 3, 1, + 255, 59, 2, 237, 44, 205, 7, 3, 1, 255, 61, 2, 237, 44, 205, 7, 3, 1, + 255, 56, 2, 237, 44, 205, 7, 3, 1, 209, 214, 52, 1, 28, 252, 232, 7, 3, + 1, 235, 38, 214, 7, 3, 1, 255, 48, 2, 227, 180, 7, 3, 6, 1, 255, 55, 2, + 82, 7, 3, 1, 246, 168, 2, 82, 7, 3, 1, 255, 70, 2, 82, 7, 3, 6, 1, 97, 2, + 82, 7, 3, 1, 235, 23, 2, 82, 7, 3, 1, 45, 2, 235, 36, 88, 7, 3, 1, 255, + 63, 2, 235, 36, 88, 7, 3, 1, 255, 72, 2, 235, 36, 88, 7, 3, 1, 255, 65, + 2, 235, 36, 88, 7, 3, 1, 255, 67, 2, 235, 36, 88, 7, 3, 1, 255, 58, 2, + 235, 36, 88, 7, 3, 1, 255, 68, 2, 235, 36, 88, 7, 3, 1, 255, 60, 2, 235, + 36, 88, 7, 3, 1, 255, 70, 2, 235, 36, 88, 7, 3, 1, 255, 57, 2, 235, 36, + 88, 7, 3, 1, 255, 59, 2, 235, 36, 88, 7, 3, 1, 253, 146, 2, 235, 36, 88, + 7, 3, 1, 255, 69, 2, 235, 36, 88, 7, 3, 1, 255, 74, 2, 235, 36, 88, 7, 3, + 1, 255, 56, 2, 235, 36, 88, 7, 3, 1, 102, 2, 231, 201, 88, 7, 3, 1, 240, + 120, 2, 231, 201, 88, 7, 3, 1, 255, 63, 2, 246, 171, 22, 240, 133, 7, 3, + 1, 161, 2, 231, 201, 88, 7, 3, 1, 246, 157, 161, 2, 231, 201, 88, 7, 3, + 1, 200, 246, 157, 161, 2, 231, 201, 88, 7, 3, 1, 241, 14, 2, 231, 201, + 88, 7, 3, 1, 255, 55, 2, 231, 201, 88, 7, 3, 1, 246, 157, 130, 2, 231, + 201, 88, 7, 3, 1, 253, 146, 2, 231, 201, 88, 7, 3, 1, 97, 2, 231, 201, + 88, 7, 3, 1, 253, 101, 2, 231, 201, 88, 52, 1, 3, 209, 237, 71, 52, 1, 3, + 254, 194, 52, 1, 3, 255, 62, 2, 240, 168, 52, 1, 3, 246, 242, 52, 1, 3, + 200, 246, 157, 72, 52, 1, 3, 254, 191, 52, 1, 3, 235, 46, 255, 73, 2, 82, + 52, 1, 3, 95, 214, 52, 1, 3, 209, 212, 52, 1, 3, 255, 55, 2, 82, 52, 1, + 3, 240, 146, 52, 1, 3, 6, 74, 52, 1, 3, 6, 255, 55, 2, 82, 52, 1, 3, 255, + 73, 2, 227, 200, 52, 1, 3, 255, 58, 2, 231, 201, 88, 52, 1, 3, 255, 58, + 2, 235, 36, 88, 52, 1, 3, 6, 149, 52, 1, 3, 255, 68, 2, 88, 52, 1, 3, + 209, 255, 68, 2, 182, 247, 3, 52, 1, 3, 255, 60, 2, 42, 88, 52, 1, 3, + 255, 60, 2, 231, 201, 88, 52, 1, 3, 6, 199, 52, 1, 3, 237, 118, 73, 52, + 1, 3, 246, 198, 52, 1, 3, 255, 59, 2, 88, 52, 1, 3, 246, 232, 52, 1, 3, + 255, 61, 2, 235, 36, 88, 52, 1, 3, 97, 125, 52, 1, 3, 233, 92, 52, 1, 3, + 6, 66, 52, 1, 3, 255, 69, 2, 88, 52, 1, 3, 209, 196, 52, 1, 3, 254, 193, + 52, 1, 3, 255, 56, 2, 231, 201, 88, 52, 1, 3, 255, 56, 2, 240, 168, 52, + 1, 3, 247, 74, 52, 1, 3, 237, 89, 36, 237, 50, 240, 163, 235, 24, 36, + 237, 50, 240, 159, 235, 24, 36, 245, 192, 51, 36, 231, 150, 76, 36, 227, + 250, 36, 227, 241, 36, 227, 252, 36, 227, 215, 36, 222, 245, 36, 222, + 243, 36, 7, 3, 1, 255, 57, 51, 36, 227, 221, 36, 227, 251, 36, 47, 230, + 125, 46, 36, 237, 208, 46, 36, 237, 170, 51, 36, 255, 8, 51, 36, 254, + 244, 46, 36, 255, 52, 46, 36, 7, 3, 1, 231, 230, 246, 157, 102, 46, 36, + 7, 3, 1, 253, 4, 36, 7, 3, 1, 253, 168, 36, 7, 3, 1, 253, 169, 36, 7, 3, + 1, 255, 62, 233, 79, 36, 7, 3, 1, 235, 38, 222, 222, 36, 7, 3, 1, 246, + 242, 36, 7, 3, 1, 214, 36, 7, 1, 3, 6, 214, 36, 7, 3, 1, 254, 186, 36, 7, + 3, 1, 149, 36, 7, 1, 3, 6, 149, 36, 7, 1, 3, 6, 185, 36, 7, 3, 1, 199, + 36, 7, 1, 3, 6, 199, 36, 7, 1, 3, 6, 146, 36, 7, 3, 1, 255, 57, 233, 143, + 36, 7, 3, 1, 193, 36, 7, 3, 1, 182, 193, 36, 7, 3, 1, 254, 193, 36, 42, + 231, 214, 46, 36, 41, 231, 214, 22, 103, 231, 214, 51, 7, 6, 1, 102, 2, + 246, 174, 51, 7, 3, 1, 102, 2, 246, 174, 51, 7, 6, 1, 45, 2, 56, 46, 7, + 3, 1, 45, 2, 56, 46, 7, 6, 1, 45, 2, 56, 51, 7, 3, 1, 45, 2, 56, 51, 7, + 6, 1, 45, 2, 246, 167, 51, 7, 3, 1, 45, 2, 246, 167, 51, 7, 6, 1, 255, + 62, 2, 235, 87, 22, 155, 7, 3, 1, 255, 62, 2, 235, 87, 22, 155, 7, 6, 1, + 255, 63, 2, 56, 46, 7, 3, 1, 255, 63, 2, 56, 46, 7, 6, 1, 255, 63, 2, 56, + 51, 7, 3, 1, 255, 63, 2, 56, 51, 7, 6, 1, 255, 63, 2, 246, 167, 51, 7, 3, + 1, 255, 63, 2, 246, 167, 51, 7, 6, 1, 255, 63, 2, 233, 79, 7, 3, 1, 255, + 63, 2, 233, 79, 7, 6, 1, 255, 63, 2, 230, 125, 51, 7, 3, 1, 255, 63, 2, + 230, 125, 51, 7, 6, 1, 161, 2, 237, 83, 22, 237, 36, 7, 3, 1, 161, 2, + 237, 83, 22, 237, 36, 7, 6, 1, 161, 2, 237, 83, 22, 155, 7, 3, 1, 161, 2, + 237, 83, 22, 155, 7, 6, 1, 161, 2, 230, 125, 51, 7, 3, 1, 161, 2, 230, + 125, 51, 7, 6, 1, 161, 2, 240, 128, 51, 7, 3, 1, 161, 2, 240, 128, 51, 7, + 6, 1, 161, 2, 235, 87, 22, 237, 46, 7, 3, 1, 161, 2, 235, 87, 22, 237, + 46, 7, 6, 1, 255, 72, 2, 56, 46, 7, 3, 1, 255, 72, 2, 56, 46, 7, 6, 1, + 255, 65, 2, 235, 16, 7, 3, 1, 255, 65, 2, 235, 16, 7, 6, 1, 255, 66, 2, + 56, 46, 7, 3, 1, 255, 66, 2, 56, 46, 7, 6, 1, 255, 66, 2, 56, 51, 7, 3, + 1, 255, 66, 2, 56, 51, 7, 6, 1, 255, 66, 2, 219, 7, 3, 1, 255, 66, 2, + 219, 7, 6, 1, 255, 66, 2, 233, 79, 7, 3, 1, 255, 66, 2, 233, 79, 7, 6, 1, + 255, 66, 2, 240, 161, 51, 7, 3, 1, 255, 66, 2, 240, 161, 51, 7, 6, 1, + 255, 55, 2, 240, 128, 51, 7, 3, 1, 255, 55, 2, 240, 128, 51, 7, 6, 1, + 255, 55, 2, 231, 203, 22, 155, 7, 3, 1, 255, 55, 2, 231, 203, 22, 155, 7, + 6, 1, 255, 67, 2, 155, 7, 3, 1, 255, 67, 2, 155, 7, 6, 1, 255, 67, 2, 56, + 51, 7, 3, 1, 255, 67, 2, 56, 51, 7, 6, 1, 255, 67, 2, 246, 167, 51, 7, 3, + 1, 255, 67, 2, 246, 167, 51, 7, 6, 1, 255, 58, 2, 56, 51, 7, 3, 1, 255, + 58, 2, 56, 51, 7, 6, 1, 255, 58, 2, 56, 240, 144, 22, 235, 16, 7, 3, 1, + 255, 58, 2, 56, 240, 144, 22, 235, 16, 7, 6, 1, 255, 58, 2, 246, 167, 51, + 7, 3, 1, 255, 58, 2, 246, 167, 51, 7, 6, 1, 255, 58, 2, 230, 125, 51, 7, + 3, 1, 255, 58, 2, 230, 125, 51, 7, 6, 1, 255, 68, 2, 155, 7, 3, 1, 255, + 68, 2, 155, 7, 6, 1, 255, 68, 2, 56, 46, 7, 3, 1, 255, 68, 2, 56, 46, 7, + 6, 1, 255, 68, 2, 56, 51, 7, 3, 1, 255, 68, 2, 56, 51, 7, 6, 1, 255, 60, + 2, 56, 46, 7, 3, 1, 255, 60, 2, 56, 46, 7, 6, 1, 255, 60, 2, 56, 51, 7, + 3, 1, 255, 60, 2, 56, 51, 7, 6, 1, 255, 60, 2, 246, 167, 51, 7, 3, 1, + 255, 60, 2, 246, 167, 51, 7, 6, 1, 255, 60, 2, 230, 125, 51, 7, 3, 1, + 255, 60, 2, 230, 125, 51, 7, 6, 1, 130, 2, 240, 128, 22, 155, 7, 3, 1, + 130, 2, 240, 128, 22, 155, 7, 6, 1, 130, 2, 240, 128, 22, 219, 7, 3, 1, + 130, 2, 240, 128, 22, 219, 7, 6, 1, 130, 2, 237, 83, 22, 237, 36, 7, 3, + 1, 130, 2, 237, 83, 22, 237, 36, 7, 6, 1, 130, 2, 237, 83, 22, 155, 7, 3, + 1, 130, 2, 237, 83, 22, 155, 7, 6, 1, 255, 70, 2, 155, 7, 3, 1, 255, 70, + 2, 155, 7, 6, 1, 255, 70, 2, 56, 46, 7, 3, 1, 255, 70, 2, 56, 46, 7, 6, + 1, 255, 57, 2, 56, 46, 7, 3, 1, 255, 57, 2, 56, 46, 7, 6, 1, 255, 57, 2, + 56, 51, 7, 3, 1, 255, 57, 2, 56, 51, 7, 6, 1, 255, 57, 2, 56, 240, 144, + 22, 235, 16, 7, 3, 1, 255, 57, 2, 56, 240, 144, 22, 235, 16, 7, 6, 1, + 255, 57, 2, 246, 167, 51, 7, 3, 1, 255, 57, 2, 246, 167, 51, 7, 6, 1, + 255, 59, 2, 56, 46, 7, 3, 1, 255, 59, 2, 56, 46, 7, 6, 1, 255, 59, 2, 56, + 51, 7, 3, 1, 255, 59, 2, 56, 51, 7, 6, 1, 255, 59, 2, 240, 159, 22, 56, + 46, 7, 3, 1, 255, 59, 2, 240, 159, 22, 56, 46, 7, 6, 1, 255, 59, 2, 241, + 29, 22, 56, 46, 7, 3, 1, 255, 59, 2, 241, 29, 22, 56, 46, 7, 6, 1, 255, + 59, 2, 56, 240, 144, 22, 56, 46, 7, 3, 1, 255, 59, 2, 56, 240, 144, 22, + 56, 46, 7, 6, 1, 255, 61, 2, 56, 46, 7, 3, 1, 255, 61, 2, 56, 46, 7, 6, + 1, 255, 61, 2, 56, 51, 7, 3, 1, 255, 61, 2, 56, 51, 7, 6, 1, 255, 61, 2, + 246, 167, 51, 7, 3, 1, 255, 61, 2, 246, 167, 51, 7, 6, 1, 255, 61, 2, + 230, 125, 51, 7, 3, 1, 255, 61, 2, 230, 125, 51, 7, 6, 1, 97, 2, 231, + 203, 51, 7, 3, 1, 97, 2, 231, 203, 51, 7, 6, 1, 97, 2, 240, 128, 51, 7, + 3, 1, 97, 2, 240, 128, 51, 7, 6, 1, 97, 2, 230, 125, 51, 7, 3, 1, 97, 2, + 230, 125, 51, 7, 6, 1, 97, 2, 240, 128, 22, 155, 7, 3, 1, 97, 2, 240, + 128, 22, 155, 7, 6, 1, 97, 2, 237, 83, 22, 219, 7, 3, 1, 97, 2, 237, 83, + 22, 219, 7, 6, 1, 255, 69, 2, 205, 7, 3, 1, 255, 69, 2, 205, 7, 6, 1, + 255, 69, 2, 56, 51, 7, 3, 1, 255, 69, 2, 56, 51, 7, 6, 1, 255, 71, 2, + 237, 36, 7, 3, 1, 255, 71, 2, 237, 36, 7, 6, 1, 255, 71, 2, 155, 7, 3, 1, + 255, 71, 2, 155, 7, 6, 1, 255, 71, 2, 219, 7, 3, 1, 255, 71, 2, 219, 7, + 6, 1, 255, 71, 2, 56, 46, 7, 3, 1, 255, 71, 2, 56, 46, 7, 6, 1, 255, 71, + 2, 56, 51, 7, 3, 1, 255, 71, 2, 56, 51, 7, 6, 1, 255, 74, 2, 56, 46, 7, + 3, 1, 255, 74, 2, 56, 46, 7, 6, 1, 255, 74, 2, 219, 7, 3, 1, 255, 74, 2, + 219, 7, 6, 1, 255, 64, 2, 56, 46, 7, 3, 1, 255, 64, 2, 56, 46, 7, 6, 1, + 255, 56, 2, 229, 162, 7, 3, 1, 255, 56, 2, 229, 162, 7, 6, 1, 255, 56, 2, + 56, 51, 7, 3, 1, 255, 56, 2, 56, 51, 7, 6, 1, 255, 56, 2, 246, 167, 51, + 7, 3, 1, 255, 56, 2, 246, 167, 51, 7, 3, 1, 255, 66, 2, 246, 167, 51, 7, + 3, 1, 255, 61, 2, 219, 7, 3, 1, 255, 71, 2, 246, 174, 46, 7, 3, 1, 255, + 64, 2, 246, 174, 46, 7, 3, 1, 102, 2, 41, 132, 240, 147, 7, 3, 1, 182, + 255, 59, 2, 56, 46, 7, 3, 1, 182, 255, 59, 2, 233, 74, 82, 7, 3, 1, 182, + 255, 59, 2, 201, 82, 7, 6, 1, 240, 235, 193, 7, 3, 1, 237, 75, 7, 6, 1, + 102, 2, 56, 51, 7, 3, 1, 102, 2, 56, 51, 7, 6, 1, 102, 2, 246, 171, 46, + 7, 3, 1, 102, 2, 246, 171, 46, 7, 6, 1, 102, 2, 230, 125, 22, 155, 7, 3, + 1, 102, 2, 230, 125, 22, 155, 7, 6, 1, 102, 2, 230, 125, 22, 237, 36, 7, + 3, 1, 102, 2, 230, 125, 22, 237, 36, 7, 6, 1, 102, 2, 230, 125, 22, 246, + 171, 46, 7, 3, 1, 102, 2, 230, 125, 22, 246, 171, 46, 7, 6, 1, 102, 2, + 230, 125, 22, 205, 7, 3, 1, 102, 2, 230, 125, 22, 205, 7, 6, 1, 102, 2, + 230, 125, 22, 56, 51, 7, 3, 1, 102, 2, 230, 125, 22, 56, 51, 7, 6, 1, + 102, 2, 240, 161, 22, 155, 7, 3, 1, 102, 2, 240, 161, 22, 155, 7, 6, 1, + 102, 2, 240, 161, 22, 237, 36, 7, 3, 1, 102, 2, 240, 161, 22, 237, 36, 7, + 6, 1, 102, 2, 240, 161, 22, 246, 171, 46, 7, 3, 1, 102, 2, 240, 161, 22, + 246, 171, 46, 7, 6, 1, 102, 2, 240, 161, 22, 205, 7, 3, 1, 102, 2, 240, + 161, 22, 205, 7, 6, 1, 102, 2, 240, 161, 22, 56, 51, 7, 3, 1, 102, 2, + 240, 161, 22, 56, 51, 7, 6, 1, 161, 2, 56, 51, 7, 3, 1, 161, 2, 56, 51, + 7, 6, 1, 161, 2, 246, 171, 46, 7, 3, 1, 161, 2, 246, 171, 46, 7, 6, 1, + 161, 2, 205, 7, 3, 1, 161, 2, 205, 7, 6, 1, 161, 2, 230, 125, 22, 155, 7, + 3, 1, 161, 2, 230, 125, 22, 155, 7, 6, 1, 161, 2, 230, 125, 22, 237, 36, + 7, 3, 1, 161, 2, 230, 125, 22, 237, 36, 7, 6, 1, 161, 2, 230, 125, 22, + 246, 171, 46, 7, 3, 1, 161, 2, 230, 125, 22, 246, 171, 46, 7, 6, 1, 161, + 2, 230, 125, 22, 205, 7, 3, 1, 161, 2, 230, 125, 22, 205, 7, 6, 1, 161, + 2, 230, 125, 22, 56, 51, 7, 3, 1, 161, 2, 230, 125, 22, 56, 51, 7, 6, 1, + 255, 55, 2, 246, 171, 46, 7, 3, 1, 255, 55, 2, 246, 171, 46, 7, 6, 1, + 255, 55, 2, 56, 51, 7, 3, 1, 255, 55, 2, 56, 51, 7, 6, 1, 130, 2, 56, 51, + 7, 3, 1, 130, 2, 56, 51, 7, 6, 1, 130, 2, 246, 171, 46, 7, 3, 1, 130, 2, + 246, 171, 46, 7, 6, 1, 130, 2, 230, 125, 22, 155, 7, 3, 1, 130, 2, 230, + 125, 22, 155, 7, 6, 1, 130, 2, 230, 125, 22, 237, 36, 7, 3, 1, 130, 2, + 230, 125, 22, 237, 36, 7, 6, 1, 130, 2, 230, 125, 22, 246, 171, 46, 7, 3, + 1, 130, 2, 230, 125, 22, 246, 171, 46, 7, 6, 1, 130, 2, 230, 125, 22, + 205, 7, 3, 1, 130, 2, 230, 125, 22, 205, 7, 6, 1, 130, 2, 230, 125, 22, + 56, 51, 7, 3, 1, 130, 2, 230, 125, 22, 56, 51, 7, 6, 1, 130, 2, 246, 188, + 22, 155, 7, 3, 1, 130, 2, 246, 188, 22, 155, 7, 6, 1, 130, 2, 246, 188, + 22, 237, 36, 7, 3, 1, 130, 2, 246, 188, 22, 237, 36, 7, 6, 1, 130, 2, + 246, 188, 22, 246, 171, 46, 7, 3, 1, 130, 2, 246, 188, 22, 246, 171, 46, + 7, 6, 1, 130, 2, 246, 188, 22, 205, 7, 3, 1, 130, 2, 246, 188, 22, 205, + 7, 6, 1, 130, 2, 246, 188, 22, 56, 51, 7, 3, 1, 130, 2, 246, 188, 22, 56, + 51, 7, 6, 1, 97, 2, 56, 51, 7, 3, 1, 97, 2, 56, 51, 7, 6, 1, 97, 2, 246, + 171, 46, 7, 3, 1, 97, 2, 246, 171, 46, 7, 6, 1, 97, 2, 246, 188, 22, 155, + 7, 3, 1, 97, 2, 246, 188, 22, 155, 7, 6, 1, 97, 2, 246, 188, 22, 237, 36, + 7, 3, 1, 97, 2, 246, 188, 22, 237, 36, 7, 6, 1, 97, 2, 246, 188, 22, 246, + 171, 46, 7, 3, 1, 97, 2, 246, 188, 22, 246, 171, 46, 7, 6, 1, 97, 2, 246, + 188, 22, 205, 7, 3, 1, 97, 2, 246, 188, 22, 205, 7, 6, 1, 97, 2, 246, + 188, 22, 56, 51, 7, 3, 1, 97, 2, 246, 188, 22, 56, 51, 7, 6, 1, 255, 64, + 2, 237, 36, 7, 3, 1, 255, 64, 2, 237, 36, 7, 6, 1, 255, 64, 2, 56, 51, 7, + 3, 1, 255, 64, 2, 56, 51, 7, 6, 1, 255, 64, 2, 246, 171, 46, 7, 3, 1, + 255, 64, 2, 246, 171, 46, 7, 6, 1, 255, 64, 2, 205, 7, 3, 1, 255, 64, 2, + 205, 7, 6, 1, 228, 192, 252, 245, 7, 3, 1, 228, 192, 252, 245, 7, 6, 1, + 228, 192, 196, 7, 3, 1, 228, 192, 196, 7, 6, 1, 255, 64, 2, 240, 202, 7, + 3, 1, 255, 64, 2, 240, 202, 19, 3, 1, 240, 120, 2, 237, 77, 19, 3, 1, + 240, 120, 2, 237, 74, 19, 3, 1, 240, 120, 2, 186, 22, 237, 39, 19, 3, 1, + 240, 120, 2, 172, 22, 237, 39, 19, 3, 1, 240, 120, 2, 186, 22, 240, 124, + 19, 3, 1, 240, 120, 2, 172, 22, 240, 124, 19, 3, 1, 240, 120, 2, 186, 22, + 228, 179, 19, 3, 1, 240, 120, 2, 172, 22, 228, 179, 19, 6, 1, 240, 120, + 2, 237, 77, 19, 6, 1, 240, 120, 2, 237, 74, 19, 6, 1, 240, 120, 2, 186, + 22, 237, 39, 19, 6, 1, 240, 120, 2, 172, 22, 237, 39, 19, 6, 1, 240, 120, + 2, 186, 22, 240, 124, 19, 6, 1, 240, 120, 2, 172, 22, 240, 124, 19, 6, 1, + 240, 120, 2, 186, 22, 228, 179, 19, 6, 1, 240, 120, 2, 172, 22, 228, 179, + 19, 3, 1, 235, 28, 2, 237, 77, 19, 3, 1, 235, 28, 2, 237, 74, 19, 3, 1, + 235, 28, 2, 186, 22, 237, 39, 19, 3, 1, 235, 28, 2, 172, 22, 237, 39, 19, + 3, 1, 235, 28, 2, 186, 22, 240, 124, 19, 3, 1, 235, 28, 2, 172, 22, 240, + 124, 19, 6, 1, 235, 28, 2, 237, 77, 19, 6, 1, 235, 28, 2, 237, 74, 19, 6, + 1, 235, 28, 2, 186, 22, 237, 39, 19, 6, 1, 235, 28, 2, 172, 22, 237, 39, + 19, 6, 1, 235, 28, 2, 186, 22, 240, 124, 19, 6, 1, 235, 28, 2, 172, 22, + 240, 124, 19, 3, 1, 252, 206, 2, 237, 77, 19, 3, 1, 252, 206, 2, 237, 74, + 19, 3, 1, 252, 206, 2, 186, 22, 237, 39, 19, 3, 1, 252, 206, 2, 172, 22, + 237, 39, 19, 3, 1, 252, 206, 2, 186, 22, 240, 124, 19, 3, 1, 252, 206, 2, + 172, 22, 240, 124, 19, 3, 1, 252, 206, 2, 186, 22, 228, 179, 19, 3, 1, + 252, 206, 2, 172, 22, 228, 179, 19, 6, 1, 252, 206, 2, 237, 77, 19, 6, 1, + 252, 206, 2, 237, 74, 19, 6, 1, 252, 206, 2, 186, 22, 237, 39, 19, 6, 1, + 252, 206, 2, 172, 22, 237, 39, 19, 6, 1, 252, 206, 2, 186, 22, 240, 124, + 19, 6, 1, 252, 206, 2, 172, 22, 240, 124, 19, 6, 1, 252, 206, 2, 186, 22, + 228, 179, 19, 6, 1, 252, 206, 2, 172, 22, 228, 179, 19, 3, 1, 246, 168, + 2, 237, 77, 19, 3, 1, 246, 168, 2, 237, 74, 19, 3, 1, 246, 168, 2, 186, + 22, 237, 39, 19, 3, 1, 246, 168, 2, 172, 22, 237, 39, 19, 3, 1, 246, 168, + 2, 186, 22, 240, 124, 19, 3, 1, 246, 168, 2, 172, 22, 240, 124, 19, 3, 1, + 246, 168, 2, 186, 22, 228, 179, 19, 3, 1, 246, 168, 2, 172, 22, 228, 179, + 19, 6, 1, 246, 168, 2, 237, 77, 19, 6, 1, 246, 168, 2, 237, 74, 19, 6, 1, + 246, 168, 2, 186, 22, 237, 39, 19, 6, 1, 246, 168, 2, 172, 22, 237, 39, + 19, 6, 1, 246, 168, 2, 186, 22, 240, 124, 19, 6, 1, 246, 168, 2, 172, 22, + 240, 124, 19, 6, 1, 246, 168, 2, 186, 22, 228, 179, 19, 6, 1, 246, 168, + 2, 172, 22, 228, 179, 19, 3, 1, 235, 35, 2, 237, 77, 19, 3, 1, 235, 35, + 2, 237, 74, 19, 3, 1, 235, 35, 2, 186, 22, 237, 39, 19, 3, 1, 235, 35, 2, + 172, 22, 237, 39, 19, 3, 1, 235, 35, 2, 186, 22, 240, 124, 19, 3, 1, 235, + 35, 2, 172, 22, 240, 124, 19, 6, 1, 235, 35, 2, 237, 77, 19, 6, 1, 235, + 35, 2, 237, 74, 19, 6, 1, 235, 35, 2, 186, 22, 237, 39, 19, 6, 1, 235, + 35, 2, 172, 22, 237, 39, 19, 6, 1, 235, 35, 2, 186, 22, 240, 124, 19, 6, + 1, 235, 35, 2, 172, 22, 240, 124, 19, 3, 1, 235, 23, 2, 237, 77, 19, 3, + 1, 235, 23, 2, 237, 74, 19, 3, 1, 235, 23, 2, 186, 22, 237, 39, 19, 3, 1, + 235, 23, 2, 172, 22, 237, 39, 19, 3, 1, 235, 23, 2, 186, 22, 240, 124, + 19, 3, 1, 235, 23, 2, 172, 22, 240, 124, 19, 3, 1, 235, 23, 2, 186, 22, + 228, 179, 19, 3, 1, 235, 23, 2, 172, 22, 228, 179, 19, 6, 1, 235, 23, 2, + 237, 74, 19, 6, 1, 235, 23, 2, 172, 22, 237, 39, 19, 6, 1, 235, 23, 2, + 172, 22, 240, 124, 19, 6, 1, 235, 23, 2, 172, 22, 228, 179, 19, 3, 1, + 240, 123, 2, 237, 77, 19, 3, 1, 240, 123, 2, 237, 74, 19, 3, 1, 240, 123, + 2, 186, 22, 237, 39, 19, 3, 1, 240, 123, 2, 172, 22, 237, 39, 19, 3, 1, + 240, 123, 2, 186, 22, 240, 124, 19, 3, 1, 240, 123, 2, 172, 22, 240, 124, + 19, 3, 1, 240, 123, 2, 186, 22, 228, 179, 19, 3, 1, 240, 123, 2, 172, 22, + 228, 179, 19, 6, 1, 240, 123, 2, 237, 77, 19, 6, 1, 240, 123, 2, 237, 74, + 19, 6, 1, 240, 123, 2, 186, 22, 237, 39, 19, 6, 1, 240, 123, 2, 172, 22, + 237, 39, 19, 6, 1, 240, 123, 2, 186, 22, 240, 124, 19, 6, 1, 240, 123, 2, + 172, 22, 240, 124, 19, 6, 1, 240, 123, 2, 186, 22, 228, 179, 19, 6, 1, + 240, 123, 2, 172, 22, 228, 179, 19, 3, 1, 240, 120, 2, 237, 39, 19, 3, 1, + 240, 120, 2, 240, 124, 19, 3, 1, 235, 28, 2, 237, 39, 19, 3, 1, 235, 28, + 2, 240, 124, 19, 3, 1, 252, 206, 2, 237, 39, 19, 3, 1, 252, 206, 2, 240, + 124, 19, 3, 1, 246, 168, 2, 237, 39, 19, 3, 1, 246, 168, 2, 240, 124, 19, + 3, 1, 235, 35, 2, 237, 39, 19, 3, 1, 235, 35, 2, 240, 124, 19, 3, 1, 235, + 23, 2, 237, 39, 19, 3, 1, 235, 23, 2, 240, 124, 19, 3, 1, 240, 123, 2, + 237, 39, 19, 3, 1, 240, 123, 2, 240, 124, 19, 3, 1, 240, 120, 2, 186, 22, + 227, 132, 19, 3, 1, 240, 120, 2, 172, 22, 227, 132, 19, 3, 1, 240, 120, + 2, 186, 22, 240, 165, 22, 227, 132, 19, 3, 1, 240, 120, 2, 172, 22, 240, + 165, 22, 227, 132, 19, 3, 1, 240, 120, 2, 186, 22, 246, 210, 22, 227, + 132, 19, 3, 1, 240, 120, 2, 172, 22, 246, 210, 22, 227, 132, 19, 3, 1, + 240, 120, 2, 186, 22, 229, 167, 22, 227, 132, 19, 3, 1, 240, 120, 2, 172, + 22, 229, 167, 22, 227, 132, 19, 6, 1, 240, 120, 2, 186, 22, 225, 104, 19, + 6, 1, 240, 120, 2, 172, 22, 225, 104, 19, 6, 1, 240, 120, 2, 186, 22, + 240, 165, 22, 225, 104, 19, 6, 1, 240, 120, 2, 172, 22, 240, 165, 22, + 225, 104, 19, 6, 1, 240, 120, 2, 186, 22, 246, 210, 22, 225, 104, 19, 6, + 1, 240, 120, 2, 172, 22, 246, 210, 22, 225, 104, 19, 6, 1, 240, 120, 2, + 186, 22, 229, 167, 22, 225, 104, 19, 6, 1, 240, 120, 2, 172, 22, 229, + 167, 22, 225, 104, 19, 3, 1, 252, 206, 2, 186, 22, 227, 132, 19, 3, 1, + 252, 206, 2, 172, 22, 227, 132, 19, 3, 1, 252, 206, 2, 186, 22, 240, 165, + 22, 227, 132, 19, 3, 1, 252, 206, 2, 172, 22, 240, 165, 22, 227, 132, 19, + 3, 1, 252, 206, 2, 186, 22, 246, 210, 22, 227, 132, 19, 3, 1, 252, 206, + 2, 172, 22, 246, 210, 22, 227, 132, 19, 3, 1, 252, 206, 2, 186, 22, 229, + 167, 22, 227, 132, 19, 3, 1, 252, 206, 2, 172, 22, 229, 167, 22, 227, + 132, 19, 6, 1, 252, 206, 2, 186, 22, 225, 104, 19, 6, 1, 252, 206, 2, + 172, 22, 225, 104, 19, 6, 1, 252, 206, 2, 186, 22, 240, 165, 22, 225, + 104, 19, 6, 1, 252, 206, 2, 172, 22, 240, 165, 22, 225, 104, 19, 6, 1, + 252, 206, 2, 186, 22, 246, 210, 22, 225, 104, 19, 6, 1, 252, 206, 2, 172, + 22, 246, 210, 22, 225, 104, 19, 6, 1, 252, 206, 2, 186, 22, 229, 167, 22, + 225, 104, 19, 6, 1, 252, 206, 2, 172, 22, 229, 167, 22, 225, 104, 19, 3, + 1, 240, 123, 2, 186, 22, 227, 132, 19, 3, 1, 240, 123, 2, 172, 22, 227, + 132, 19, 3, 1, 240, 123, 2, 186, 22, 240, 165, 22, 227, 132, 19, 3, 1, + 240, 123, 2, 172, 22, 240, 165, 22, 227, 132, 19, 3, 1, 240, 123, 2, 186, + 22, 246, 210, 22, 227, 132, 19, 3, 1, 240, 123, 2, 172, 22, 246, 210, 22, + 227, 132, 19, 3, 1, 240, 123, 2, 186, 22, 229, 167, 22, 227, 132, 19, 3, + 1, 240, 123, 2, 172, 22, 229, 167, 22, 227, 132, 19, 6, 1, 240, 123, 2, + 186, 22, 225, 104, 19, 6, 1, 240, 123, 2, 172, 22, 225, 104, 19, 6, 1, + 240, 123, 2, 186, 22, 240, 165, 22, 225, 104, 19, 6, 1, 240, 123, 2, 172, + 22, 240, 165, 22, 225, 104, 19, 6, 1, 240, 123, 2, 186, 22, 246, 210, 22, + 225, 104, 19, 6, 1, 240, 123, 2, 172, 22, 246, 210, 22, 225, 104, 19, 6, + 1, 240, 123, 2, 186, 22, 229, 167, 22, 225, 104, 19, 6, 1, 240, 123, 2, + 172, 22, 229, 167, 22, 225, 104, 19, 3, 1, 240, 120, 2, 235, 82, 19, 3, + 1, 240, 120, 2, 235, 16, 19, 3, 1, 240, 120, 2, 240, 165, 22, 227, 132, + 19, 3, 1, 240, 120, 2, 227, 132, 19, 3, 1, 240, 120, 2, 246, 210, 22, + 227, 132, 19, 3, 1, 240, 120, 2, 228, 179, 19, 3, 1, 240, 120, 2, 229, + 167, 22, 227, 132, 19, 6, 1, 240, 120, 2, 235, 82, 19, 6, 1, 240, 120, 2, + 235, 16, 19, 6, 1, 240, 120, 2, 237, 39, 19, 6, 1, 240, 120, 2, 240, 124, + 19, 6, 1, 240, 120, 2, 225, 104, 19, 233, 170, 19, 225, 104, 19, 237, 77, + 19, 228, 179, 19, 231, 207, 22, 228, 179, 19, 3, 1, 252, 206, 2, 240, + 165, 22, 227, 132, 19, 3, 1, 252, 206, 2, 227, 132, 19, 3, 1, 252, 206, + 2, 246, 210, 22, 227, 132, 19, 3, 1, 252, 206, 2, 228, 179, 19, 3, 1, + 252, 206, 2, 229, 167, 22, 227, 132, 19, 6, 1, 235, 28, 2, 237, 39, 19, + 6, 1, 235, 28, 2, 240, 124, 19, 6, 1, 252, 206, 2, 237, 39, 19, 6, 1, + 252, 206, 2, 240, 124, 19, 6, 1, 252, 206, 2, 225, 104, 19, 186, 22, 237, + 39, 19, 186, 22, 240, 124, 19, 186, 22, 228, 179, 19, 3, 1, 246, 168, 2, + 235, 82, 19, 3, 1, 246, 168, 2, 235, 16, 19, 3, 1, 246, 168, 2, 231, 207, + 22, 237, 39, 19, 3, 1, 246, 168, 2, 231, 207, 22, 240, 124, 19, 3, 1, + 246, 168, 2, 228, 179, 19, 3, 1, 246, 168, 2, 231, 207, 22, 228, 179, 19, + 6, 1, 246, 168, 2, 235, 82, 19, 6, 1, 246, 168, 2, 235, 16, 19, 6, 1, + 246, 168, 2, 237, 39, 19, 6, 1, 246, 168, 2, 240, 124, 19, 172, 22, 237, + 39, 19, 172, 22, 240, 124, 19, 172, 22, 228, 179, 19, 3, 1, 235, 23, 2, + 235, 82, 19, 3, 1, 235, 23, 2, 235, 16, 19, 3, 1, 235, 23, 2, 231, 207, + 22, 237, 39, 19, 3, 1, 235, 23, 2, 231, 207, 22, 240, 124, 19, 3, 1, 253, + 70, 2, 237, 77, 19, 3, 1, 253, 70, 2, 237, 74, 19, 3, 1, 235, 23, 2, 228, + 179, 19, 3, 1, 235, 23, 2, 231, 207, 22, 228, 179, 19, 6, 1, 235, 23, 2, + 235, 82, 19, 6, 1, 235, 23, 2, 235, 16, 19, 6, 1, 235, 23, 2, 237, 39, + 19, 6, 1, 235, 23, 2, 240, 124, 19, 6, 1, 253, 70, 2, 237, 74, 19, 231, + 207, 22, 237, 39, 19, 231, 207, 22, 240, 124, 19, 237, 39, 19, 3, 1, 240, + 123, 2, 240, 165, 22, 227, 132, 19, 3, 1, 240, 123, 2, 227, 132, 19, 3, + 1, 240, 123, 2, 246, 210, 22, 227, 132, 19, 3, 1, 240, 123, 2, 228, 179, + 19, 3, 1, 240, 123, 2, 229, 167, 22, 227, 132, 19, 6, 1, 235, 35, 2, 237, + 39, 19, 6, 1, 235, 35, 2, 240, 124, 19, 6, 1, 240, 123, 2, 237, 39, 19, + 6, 1, 240, 123, 2, 240, 124, 19, 6, 1, 240, 123, 2, 225, 104, 19, 240, + 124, 19, 237, 74, 254, 199, 240, 232, 254, 213, 240, 232, 254, 199, 237, + 69, 254, 213, 237, 69, 229, 154, 237, 69, 230, 62, 237, 69, 231, 144, + 237, 69, 237, 248, 237, 69, 229, 161, 237, 69, 252, 18, 237, 69, 250, 60, + 237, 69, 247, 27, 241, 23, 237, 69, 247, 27, 241, 23, 230, 82, 247, 27, + 241, 23, 235, 124, 227, 195, 76, 227, 198, 76, 235, 69, 229, 43, 235, 69, + 237, 248, 240, 151, 254, 199, 240, 151, 254, 213, 240, 151, 169, 125, 47, + 61, 240, 138, 47, 184, 240, 138, 42, 237, 62, 231, 199, 76, 41, 237, 62, + 231, 199, 76, 237, 62, 241, 185, 231, 199, 76, 237, 62, 225, 109, 231, + 199, 76, 42, 47, 231, 199, 76, 41, 47, 231, 199, 76, 47, 241, 185, 231, + 199, 76, 47, 225, 109, 231, 199, 76, 235, 160, 47, 235, 160, 235, 45, + 230, 160, 235, 45, 168, 56, 235, 128, 135, 56, 235, 128, 169, 231, 218, + 230, 67, 237, 209, 246, 167, 230, 131, 231, 242, 230, 131, 227, 195, 230, + 182, 227, 198, 230, 182, 254, 133, 229, 249, 230, 61, 227, 195, 232, 30, + 227, 198, 232, 30, 239, 125, 233, 173, 237, 69, 253, 129, 241, 194, 53, + 253, 129, 253, 53, 233, 117, 53, 237, 114, 47, 237, 114, 237, 49, 237, + 114, 200, 237, 114, 200, 47, 237, 114, 200, 237, 49, 237, 114, 237, 197, + 237, 62, 227, 185, 240, 117, 231, 199, 76, 237, 62, 227, 133, 240, 117, + 231, 199, 76, 233, 11, 76, 47, 229, 165, 76, 228, 213, 231, 223, 232, 63, + 116, 247, 57, 240, 206, 232, 28, 237, 209, 232, 81, 238, 10, 235, 45, + 233, 76, 237, 84, 42, 37, 235, 22, 2, 237, 190, 41, 37, 235, 22, 2, 237, + 190, 47, 233, 82, 76, 233, 82, 229, 165, 76, 229, 165, 233, 82, 76, 234, + 249, 5, 253, 125, 200, 235, 201, 53, 86, 117, 235, 45, 86, 81, 235, 45, + 184, 231, 198, 200, 230, 140, 243, 15, 253, 19, 135, 232, 80, 235, 245, + 230, 122, 230, 145, 240, 172, 53, 245, 229, 240, 151, 233, 70, 232, 63, + 238, 221, 229, 161, 76, 152, 56, 228, 182, 231, 212, 237, 114, 246, 160, + 56, 228, 182, 246, 159, 56, 228, 182, 135, 56, 228, 182, 246, 160, 56, + 76, 237, 50, 237, 85, 232, 57, 61, 246, 160, 240, 169, 237, 60, 12, 237, + 69, 247, 8, 235, 124, 234, 109, 228, 225, 231, 253, 237, 166, 231, 253, + 230, 131, 231, 253, 240, 180, 235, 178, 232, 54, 232, 47, 233, 182, 232, + 54, 232, 47, 235, 178, 10, 211, 233, 236, 233, 182, 10, 211, 233, 236, + 234, 165, 21, 235, 209, 236, 169, 21, 235, 209, 229, 163, 240, 126, 229, + 163, 7, 3, 1, 74, 229, 163, 158, 229, 163, 173, 229, 163, 183, 229, 163, + 194, 229, 163, 187, 229, 163, 192, 229, 163, 79, 53, 229, 163, 237, 124, + 229, 163, 237, 51, 53, 229, 163, 42, 228, 180, 229, 163, 41, 228, 180, + 229, 163, 7, 3, 1, 199, 231, 195, 240, 126, 231, 195, 118, 231, 195, 113, + 231, 195, 166, 231, 195, 158, 231, 195, 173, 231, 195, 183, 231, 195, + 194, 231, 195, 187, 231, 195, 192, 231, 195, 79, 53, 231, 195, 237, 124, + 231, 195, 237, 51, 53, 231, 195, 42, 228, 180, 231, 195, 41, 228, 180, 7, + 231, 195, 3, 1, 57, 7, 231, 195, 3, 1, 72, 7, 231, 195, 3, 1, 73, 7, 231, + 195, 3, 1, 254, 184, 7, 231, 195, 3, 1, 237, 144, 227, 239, 53, 240, 194, + 53, 234, 40, 53, 238, 226, 243, 109, 53, 250, 224, 53, 251, 15, 53, 244, + 163, 53, 239, 193, 53, 240, 234, 53, 254, 16, 53, 139, 239, 246, 53, 249, + 203, 53, 249, 235, 53, 254, 82, 53, 240, 53, 53, 235, 167, 53, 238, 237, + 245, 64, 53, 251, 106, 53, 236, 98, 53, 236, 0, 53, 236, 106, 53, 249, + 151, 53, 36, 42, 235, 14, 46, 36, 41, 235, 14, 46, 36, 182, 61, 246, 167, + 233, 87, 36, 240, 125, 61, 246, 167, 233, 87, 36, 227, 184, 67, 46, 36, + 231, 209, 67, 46, 36, 42, 67, 46, 36, 41, 67, 46, 36, 246, 174, 233, 87, + 36, 231, 209, 246, 174, 233, 87, 36, 227, 184, 246, 174, 233, 87, 36, + 152, 197, 46, 36, 246, 160, 197, 46, 36, 231, 222, 235, 20, 36, 231, 222, + 235, 27, 36, 231, 222, 233, 90, 36, 231, 222, 237, 40, 230, 151, 36, 42, + 41, 67, 46, 36, 231, 222, 236, 210, 36, 231, 222, 236, 121, 36, 231, 222, + 240, 68, 233, 78, 231, 193, 36, 235, 37, 235, 54, 233, 87, 36, 47, 61, + 195, 233, 87, 36, 235, 247, 98, 36, 237, 49, 233, 59, 36, 246, 240, 237, + 174, 46, 36, 117, 67, 233, 87, 36, 182, 47, 235, 54, 233, 87, 36, 81, + 235, 14, 2, 171, 230, 134, 36, 117, 235, 14, 2, 171, 230, 134, 36, 42, + 67, 51, 36, 41, 67, 51, 36, 233, 145, 46, 235, 144, 253, 16, 232, 65, + 180, 252, 230, 234, 235, 159, 6, 254, 194, 237, 177, 234, 29, 237, 95, + 246, 167, 98, 249, 144, 253, 16, 249, 141, 252, 53, 243, 103, 232, 17, + 234, 217, 237, 177, 230, 59, 95, 3, 214, 95, 6, 212, 228, 187, 6, 212, + 159, 6, 212, 238, 35, 232, 17, 238, 35, 234, 34, 107, 135, 252, 223, 95, + 6, 74, 228, 187, 6, 74, 95, 6, 149, 95, 3, 149, 255, 58, 45, 252, 219, + 98, 159, 6, 199, 239, 159, 53, 240, 181, 233, 9, 230, 240, 95, 6, 254, + 187, 159, 6, 254, 187, 159, 6, 254, 196, 95, 6, 146, 228, 187, 6, 146, + 159, 6, 146, 229, 53, 245, 236, 232, 43, 236, 217, 76, 232, 11, 53, 246, + 4, 165, 53, 233, 61, 159, 6, 254, 193, 245, 57, 53, 253, 254, 53, 233, + 70, 253, 254, 53, 228, 187, 6, 254, 193, 209, 19, 3, 1, 240, 146, 239, + 62, 53, 234, 2, 53, 95, 6, 254, 185, 228, 187, 6, 254, 194, 232, 180, 98, + 95, 3, 72, 95, 6, 72, 95, 6, 254, 191, 209, 6, 254, 191, 95, 6, 185, 95, + 3, 73, 92, 98, 253, 171, 98, 241, 143, 98, 241, 116, 98, 230, 71, 235, + 214, 235, 97, 6, 254, 196, 232, 183, 53, 159, 3, 252, 223, 159, 3, 237, + 61, 159, 6, 237, 61, 159, 6, 252, 223, 159, 240, 154, 230, 196, 209, 30, + 6, 214, 209, 30, 6, 149, 200, 30, 6, 149, 209, 30, 6, 254, 190, 159, 27, + 6, 222, 222, 159, 27, 3, 222, 222, 159, 27, 3, 72, 159, 27, 3, 74, 159, + 27, 3, 254, 192, 234, 200, 240, 138, 209, 230, 142, 253, 129, 53, 227, + 216, 209, 3, 254, 191, 14, 32, 233, 16, 235, 214, 237, 80, 233, 76, 168, + 240, 37, 237, 80, 233, 76, 135, 237, 4, 237, 80, 233, 76, 168, 238, 217, + 237, 80, 233, 76, 135, 235, 122, 237, 80, 233, 76, 152, 235, 122, 237, + 80, 233, 76, 246, 160, 235, 122, 237, 80, 233, 76, 168, 238, 61, 237, 80, + 233, 76, 246, 159, 236, 232, 237, 80, 233, 76, 168, 236, 63, 237, 80, + 233, 76, 152, 233, 163, 237, 80, 233, 76, 246, 159, 233, 163, 237, 80, + 233, 76, 240, 155, 233, 163, 233, 76, 231, 227, 118, 240, 118, 207, 118, + 240, 118, 207, 113, 240, 118, 207, 166, 240, 118, 207, 158, 240, 118, + 207, 173, 240, 118, 207, 183, 240, 118, 207, 194, 240, 118, 207, 187, + 240, 118, 207, 192, 240, 118, 207, 246, 179, 240, 118, 207, 235, 68, 240, + 118, 207, 235, 72, 240, 118, 207, 237, 100, 240, 118, 207, 168, 233, 75, + 240, 118, 207, 246, 159, 233, 75, 240, 118, 207, 168, 231, 196, 3, 240, + 118, 207, 118, 3, 240, 118, 207, 113, 3, 240, 118, 207, 166, 3, 240, 118, + 207, 158, 3, 240, 118, 207, 173, 3, 240, 118, 207, 183, 3, 240, 118, 207, + 194, 3, 240, 118, 207, 187, 3, 240, 118, 207, 192, 3, 240, 118, 207, 246, + 179, 3, 240, 118, 207, 235, 68, 3, 240, 118, 207, 235, 72, 3, 240, 118, + 207, 237, 100, 3, 240, 118, 207, 168, 233, 75, 3, 240, 118, 207, 246, + 159, 233, 75, 3, 240, 118, 207, 168, 231, 196, 240, 118, 207, 168, 233, + 117, 255, 62, 222, 222, 240, 118, 207, 246, 159, 231, 196, 240, 118, 207, + 253, 53, 231, 196, 240, 118, 207, 200, 168, 233, 75, 7, 3, 1, 200, 254, + 194, 240, 118, 207, 253, 17, 250, 209, 15, 240, 118, 207, 240, 189, 243, + 91, 15, 240, 118, 207, 240, 189, 231, 196, 240, 118, 207, 168, 235, 56, + 231, 196, 117, 58, 235, 18, 58, 81, 58, 231, 191, 58, 42, 41, 58, 99, + 103, 58, 240, 134, 246, 184, 58, 240, 134, 246, 170, 58, 240, 141, 246, + 170, 58, 240, 141, 246, 184, 58, 117, 67, 2, 82, 81, 67, 2, 82, 117, 247, + 23, 58, 81, 247, 23, 58, 117, 135, 237, 183, 58, 235, 18, 135, 237, 183, + 58, 81, 135, 237, 183, 58, 231, 191, 135, 237, 183, 58, 117, 67, 2, 240, + 133, 81, 67, 2, 240, 133, 117, 67, 246, 172, 125, 235, 18, 67, 246, 172, + 125, 81, 67, 246, 172, 125, 231, 191, 67, 246, 172, 125, 99, 103, 67, 2, + 242, 175, 117, 67, 2, 88, 81, 67, 2, 88, 117, 67, 2, 240, 202, 81, 67, 2, + 240, 202, 42, 41, 247, 23, 58, 42, 41, 67, 2, 82, 231, 191, 237, 170, 58, + 235, 18, 67, 2, 253, 93, 230, 143, 235, 18, 67, 2, 253, 93, 229, 177, + 231, 191, 67, 2, 253, 93, 230, 143, 231, 191, 67, 2, 253, 93, 229, 177, + 81, 67, 2, 237, 79, 230, 134, 231, 191, 67, 2, 237, 79, 230, 143, 227, + 184, 252, 228, 230, 195, 58, 231, 209, 252, 228, 230, 195, 58, 240, 134, + 246, 184, 67, 180, 182, 125, 117, 67, 180, 252, 219, 107, 81, 67, 180, + 125, 227, 184, 246, 157, 237, 40, 58, 231, 209, 246, 157, 237, 40, 58, + 117, 235, 14, 2, 171, 233, 139, 117, 235, 14, 2, 171, 230, 134, 235, 18, + 235, 14, 2, 171, 229, 177, 235, 18, 235, 14, 2, 171, 230, 143, 81, 235, + 14, 2, 171, 233, 139, 81, 235, 14, 2, 171, 230, 134, 231, 191, 235, 14, + 2, 171, 229, 177, 231, 191, 235, 14, 2, 171, 230, 143, 81, 67, 107, 117, + 58, 235, 18, 67, 117, 106, 231, 191, 58, 117, 67, 107, 81, 58, 117, 237, + 186, 235, 73, 235, 18, 237, 186, 235, 73, 81, 237, 186, 235, 73, 231, + 191, 237, 186, 235, 73, 117, 235, 14, 107, 81, 233, 105, 81, 235, 14, + 107, 117, 233, 105, 117, 47, 67, 2, 82, 42, 41, 47, 67, 2, 82, 81, 47, + 67, 2, 82, 117, 47, 58, 235, 18, 47, 58, 81, 47, 58, 231, 191, 47, 58, + 42, 41, 47, 58, 99, 103, 47, 58, 240, 134, 246, 184, 47, 58, 240, 134, + 246, 170, 47, 58, 240, 141, 246, 170, 47, 58, 240, 141, 246, 184, 47, 58, + 117, 237, 49, 58, 81, 237, 49, 58, 117, 233, 156, 58, 81, 233, 156, 58, + 235, 18, 67, 2, 47, 82, 231, 191, 67, 2, 47, 82, 117, 237, 110, 58, 235, + 18, 237, 110, 58, 81, 237, 110, 58, 231, 191, 237, 110, 58, 117, 67, 180, + 125, 81, 67, 180, 125, 117, 63, 58, 235, 18, 63, 58, 81, 63, 58, 231, + 191, 63, 58, 235, 18, 63, 67, 246, 172, 125, 235, 18, 63, 67, 254, 223, + 232, 33, 235, 18, 63, 67, 254, 223, 233, 226, 2, 169, 125, 235, 18, 63, + 67, 254, 223, 233, 226, 2, 61, 125, 235, 18, 63, 47, 58, 235, 18, 63, 47, + 67, 254, 223, 232, 33, 81, 63, 67, 246, 172, 246, 52, 240, 134, 246, 184, + 67, 180, 235, 40, 240, 141, 246, 170, 67, 180, 235, 40, 99, 103, 63, 58, + 41, 67, 2, 3, 235, 20, 231, 191, 67, 117, 106, 235, 18, 58, 152, 81, 235, + 73, 117, 67, 2, 61, 82, 81, 67, 2, 61, 82, 42, 41, 67, 2, 61, 82, 117, + 67, 2, 47, 61, 82, 81, 67, 2, 47, 61, 82, 42, 41, 67, 2, 47, 61, 82, 117, + 229, 186, 58, 81, 229, 186, 58, 42, 41, 229, 186, 58, 32, 247, 241, 229, + 238, 235, 79, 227, 188, 242, 1, 236, 66, 242, 1, 246, 218, 190, 238, 210, + 240, 195, 248, 155, 231, 84, 237, 138, 235, 44, 253, 16, 190, 254, 216, + 235, 44, 253, 16, 3, 235, 44, 253, 16, 233, 111, 254, 203, 235, 130, 246, + 218, 190, 235, 114, 254, 203, 235, 130, 3, 233, 111, 254, 203, 235, 130, + 252, 255, 106, 239, 204, 240, 154, 233, 101, 240, 154, 230, 178, 240, + 154, 230, 196, 240, 172, 53, 227, 254, 53, 56, 240, 180, 233, 130, 237, + 84, 253, 133, 237, 124, 233, 145, 231, 192, 246, 174, 231, 192, 238, 134, + 231, 192, 37, 240, 233, 248, 11, 240, 233, 237, 182, 240, 233, 229, 54, + 96, 231, 252, 41, 237, 98, 237, 98, 233, 99, 237, 98, 232, 7, 237, 98, + 234, 57, 246, 218, 190, 235, 164, 233, 132, 96, 190, 233, 132, 96, 235, + 26, 246, 230, 235, 26, 253, 81, 227, 186, 237, 117, 231, 208, 47, 231, + 208, 237, 49, 231, 208, 235, 115, 231, 208, 236, 249, 231, 208, 240, 79, + 231, 208, 231, 209, 231, 208, 231, 209, 235, 115, 231, 208, 227, 184, + 235, 115, 231, 208, 231, 177, 234, 16, 239, 216, 229, 210, 56, 237, 124, + 236, 65, 232, 199, 229, 210, 230, 66, 240, 128, 231, 192, 200, 205, 233, + 70, 250, 211, 193, 251, 225, 241, 22, 240, 87, 233, 101, 190, 205, 240, + 172, 205, 227, 142, 105, 96, 190, 227, 142, 105, 96, 227, 187, 105, 96, + 227, 187, 253, 85, 190, 233, 183, 105, 96, 235, 58, 227, 187, 253, 43, + 233, 183, 105, 96, 237, 78, 105, 96, 190, 237, 78, 105, 96, 237, 78, 105, + 145, 105, 96, 237, 49, 205, 253, 167, 105, 96, 230, 130, 96, 227, 204, + 230, 130, 96, 230, 245, 233, 187, 230, 225, 252, 230, 239, 85, 227, 204, + 105, 96, 227, 187, 105, 180, 145, 252, 230, 240, 190, 253, 16, 240, 190, + 106, 145, 227, 187, 105, 96, 240, 194, 235, 91, 237, 51, 237, 66, 246, + 174, 254, 198, 105, 96, 246, 174, 105, 96, 229, 242, 96, 231, 66, 230, + 57, 96, 247, 53, 235, 91, 241, 36, 105, 96, 105, 180, 254, 205, 229, 245, + 233, 99, 253, 210, 231, 129, 105, 96, 190, 105, 96, 231, 239, 96, 190, + 231, 239, 96, 234, 234, 230, 130, 96, 231, 190, 145, 105, 96, 228, 175, + 145, 105, 96, 231, 190, 107, 105, 96, 228, 175, 107, 105, 96, 231, 190, + 253, 85, 190, 105, 96, 228, 175, 253, 85, 190, 105, 96, 247, 89, 230, + 128, 247, 89, 227, 183, 233, 187, 190, 230, 130, 96, 190, 230, 128, 190, + 227, 183, 235, 58, 231, 190, 253, 43, 105, 96, 235, 58, 228, 175, 253, + 43, 105, 96, 231, 190, 145, 230, 130, 96, 228, 175, 145, 230, 130, 96, + 235, 58, 231, 190, 253, 43, 230, 130, 96, 235, 58, 228, 175, 253, 43, + 230, 130, 96, 231, 190, 145, 227, 183, 228, 175, 145, 230, 128, 235, 58, + 231, 190, 253, 43, 227, 183, 235, 58, 228, 175, 253, 43, 230, 128, 232, + 4, 232, 9, 233, 106, 145, 105, 96, 233, 107, 145, 105, 96, 233, 106, 145, + 230, 130, 96, 233, 107, 145, 230, 130, 96, 246, 218, 190, 234, 196, 246, + 218, 190, 234, 236, 237, 76, 253, 16, 233, 83, 253, 16, 190, 102, 237, + 76, 253, 16, 190, 102, 233, 83, 253, 16, 237, 76, 106, 145, 105, 96, 233, + 83, 106, 145, 105, 96, 235, 58, 102, 237, 76, 106, 253, 43, 105, 96, 235, + 58, 102, 233, 83, 106, 253, 43, 105, 96, 237, 76, 106, 2, 190, 105, 96, + 233, 83, 106, 2, 190, 105, 96, 232, 232, 233, 220, 227, 73, 233, 220, + 237, 117, 37, 240, 190, 253, 16, 37, 233, 142, 253, 16, 37, 240, 190, + 106, 145, 105, 96, 37, 233, 142, 106, 145, 105, 96, 37, 248, 4, 37, 248, + 12, 33, 240, 180, 33, 237, 124, 33, 237, 166, 33, 233, 130, 237, 84, 33, + 56, 231, 192, 33, 246, 174, 231, 192, 33, 233, 145, 231, 192, 33, 235, + 91, 33, 240, 151, 235, 51, 240, 180, 235, 51, 237, 124, 235, 51, 237, + 166, 235, 51, 56, 231, 192, 41, 240, 149, 42, 240, 149, 103, 240, 149, + 99, 240, 149, 230, 227, 236, 158, 242, 8, 236, 86, 237, 49, 61, 252, 219, + 41, 230, 141, 47, 61, 252, 219, 47, 41, 230, 141, 246, 218, 190, 239, + 205, 190, 242, 8, 246, 218, 190, 238, 223, 235, 194, 47, 61, 252, 219, + 47, 41, 230, 141, 233, 106, 242, 16, 231, 244, 233, 107, 242, 16, 231, + 244, 237, 104, 233, 136, 253, 16, 233, 111, 254, 203, 237, 104, 232, 46, + 237, 104, 233, 136, 106, 145, 105, 96, 233, 111, 254, 203, 237, 104, 233, + 136, 145, 105, 96, 233, 142, 253, 16, 240, 190, 253, 16, 232, 0, 232, + 203, 232, 101, 236, 149, 229, 32, 252, 118, 244, 165, 251, 71, 41, 240, + 117, 2, 247, 10, 41, 231, 193, 240, 154, 235, 26, 246, 230, 240, 154, + 235, 26, 253, 81, 240, 154, 227, 186, 240, 154, 237, 117, 235, 41, 231, + 192, 56, 231, 192, 247, 53, 231, 192, 233, 130, 237, 166, 235, 154, 42, + 237, 104, 237, 246, 230, 147, 233, 101, 41, 237, 104, 237, 246, 230, 147, + 233, 101, 42, 230, 147, 233, 101, 41, 230, 147, 233, 101, 200, 240, 128, + 235, 91, 240, 137, 235, 26, 253, 81, 240, 137, 235, 26, 246, 230, 47, + 235, 61, 47, 231, 228, 47, 227, 186, 47, 237, 117, 231, 120, 105, 22, + 233, 132, 96, 231, 190, 2, 246, 164, 228, 175, 2, 246, 164, 247, 114, + 247, 89, 230, 128, 247, 114, 247, 89, 227, 183, 231, 190, 105, 180, 145, + 227, 183, 228, 175, 105, 180, 145, 230, 128, 105, 180, 145, 230, 128, + 105, 180, 145, 227, 183, 105, 180, 145, 232, 4, 105, 180, 145, 232, 9, + 246, 218, 190, 236, 191, 145, 237, 81, 246, 218, 190, 236, 246, 145, 237, + 81, 190, 37, 240, 190, 106, 145, 105, 96, 190, 37, 233, 142, 106, 145, + 105, 96, 37, 240, 190, 106, 145, 190, 105, 96, 37, 233, 142, 106, 145, + 190, 105, 96, 231, 190, 253, 85, 190, 230, 130, 96, 228, 175, 253, 85, + 190, 230, 130, 96, 233, 106, 253, 85, 190, 230, 130, 96, 233, 107, 253, + 85, 190, 230, 130, 96, 190, 237, 104, 233, 136, 253, 16, 246, 218, 190, + 235, 114, 254, 203, 237, 104, 232, 46, 190, 237, 104, 233, 136, 106, 145, + 105, 96, 246, 218, 190, 235, 114, 254, 203, 237, 104, 233, 136, 145, 237, + 81, 61, 231, 218, 236, 155, 169, 231, 218, 99, 41, 233, 74, 231, 218, + 103, 41, 233, 74, 231, 218, 235, 44, 106, 2, 182, 169, 82, 235, 44, 106, + 2, 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 3, 235, 44, 106, 2, + 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 235, 44, 106, 2, 56, 46, + 235, 44, 106, 2, 233, 95, 3, 235, 44, 106, 2, 233, 95, 235, 44, 106, 2, + 231, 197, 235, 44, 106, 2, 135, 169, 233, 243, 233, 111, 2, 182, 169, 82, + 233, 111, 2, 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 3, 233, 111, + 2, 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 233, 111, 2, 233, 95, + 3, 233, 111, 2, 233, 95, 255, 56, 150, 253, 170, 230, 79, 234, 51, 53, + 234, 94, 58, 239, 27, 99, 230, 133, 103, 230, 133, 230, 92, 229, 48, 246, + 239, 240, 138, 42, 233, 190, 41, 233, 190, 42, 237, 249, 41, 237, 249, + 237, 59, 41, 240, 247, 237, 59, 42, 240, 247, 252, 228, 41, 240, 247, + 252, 228, 42, 240, 247, 200, 190, 53, 37, 233, 123, 247, 10, 234, 218, + 236, 215, 232, 11, 233, 8, 234, 195, 230, 156, 235, 6, 235, 27, 241, 214, + 106, 234, 130, 53, 209, 190, 53, 238, 81, 230, 167, 252, 228, 42, 235, + 40, 252, 228, 41, 235, 40, 237, 59, 42, 235, 40, 237, 59, 41, 235, 40, + 252, 228, 132, 231, 208, 237, 59, 132, 231, 208, 238, 227, 240, 6, 99, + 231, 214, 236, 10, 135, 169, 242, 174, 239, 175, 250, 162, 241, 127, 180, + 252, 230, 237, 41, 255, 74, 254, 198, 102, 233, 10, 246, 231, 232, 214, + 227, 185, 240, 117, 104, 227, 133, 240, 117, 104, 241, 127, 180, 252, + 230, 240, 132, 235, 150, 240, 147, 227, 223, 253, 167, 225, 111, 233, 49, + 246, 3, 236, 202, 232, 113, 236, 178, 236, 36, 240, 29, 240, 4, 228, 233, + 228, 234, 162, 163, 14, 236, 108, 162, 163, 14, 240, 15, 240, 232, 162, + 163, 14, 246, 189, 237, 81, 162, 163, 14, 246, 189, 235, 164, 162, 163, + 14, 246, 189, 233, 90, 162, 163, 14, 246, 189, 247, 15, 162, 163, 14, + 246, 189, 235, 20, 162, 163, 14, 237, 40, 237, 164, 162, 163, 14, 237, + 40, 247, 15, 162, 163, 14, 245, 191, 125, 162, 163, 14, 232, 83, 125, + 162, 163, 14, 246, 189, 237, 84, 162, 163, 14, 246, 189, 230, 151, 162, + 163, 14, 246, 189, 230, 128, 162, 163, 14, 246, 189, 227, 183, 162, 163, + 14, 117, 241, 21, 162, 163, 14, 81, 241, 21, 162, 163, 14, 246, 189, 117, + 58, 162, 163, 14, 246, 189, 81, 58, 162, 163, 14, 237, 40, 230, 151, 162, + 163, 14, 103, 246, 215, 231, 197, 162, 163, 14, 241, 36, 237, 164, 162, + 163, 14, 246, 189, 103, 237, 197, 162, 163, 14, 246, 189, 237, 75, 162, + 163, 14, 103, 246, 215, 247, 15, 162, 163, 14, 235, 18, 241, 21, 162, + 163, 14, 246, 189, 235, 18, 58, 162, 163, 14, 99, 246, 215, 233, 95, 162, + 163, 14, 253, 173, 237, 164, 162, 163, 14, 246, 189, 99, 237, 197, 162, + 163, 14, 246, 189, 249, 185, 162, 163, 14, 99, 246, 215, 247, 15, 162, + 163, 14, 231, 191, 241, 21, 162, 163, 14, 246, 189, 231, 191, 58, 162, + 163, 14, 241, 218, 231, 197, 162, 163, 14, 241, 36, 231, 197, 162, 163, + 14, 235, 41, 231, 197, 162, 163, 14, 253, 236, 231, 197, 162, 163, 14, + 237, 40, 231, 197, 162, 163, 14, 99, 247, 201, 247, 15, 162, 163, 14, + 241, 218, 240, 232, 162, 163, 14, 237, 40, 240, 139, 162, 163, 14, 246, + 189, 237, 66, 162, 163, 14, 99, 246, 215, 219, 162, 163, 14, 253, 173, + 219, 162, 163, 14, 247, 53, 219, 162, 163, 14, 253, 236, 219, 162, 163, + 14, 237, 40, 219, 162, 163, 14, 103, 247, 201, 237, 164, 162, 163, 14, + 42, 247, 201, 237, 164, 162, 163, 14, 240, 128, 219, 162, 163, 14, 228, + 175, 219, 162, 163, 14, 240, 162, 125, 162, 163, 14, 253, 173, 205, 162, + 163, 14, 240, 108, 162, 163, 14, 245, 219, 205, 162, 163, 14, 233, 21, + 231, 197, 162, 163, 14, 246, 189, 190, 237, 81, 162, 163, 14, 246, 189, + 233, 4, 162, 163, 14, 103, 240, 206, 205, 162, 163, 14, 99, 240, 206, + 205, 162, 163, 14, 240, 146, 162, 163, 14, 246, 209, 162, 163, 14, 237, + 68, 162, 163, 14, 240, 120, 231, 197, 162, 163, 14, 235, 28, 231, 197, + 162, 163, 14, 246, 168, 231, 197, 162, 163, 14, 240, 123, 231, 197, 162, + 163, 14, 237, 71, 190, 240, 245, 76, 41, 240, 117, 2, 231, 191, 237, 170, + 58, 231, 143, 246, 157, 246, 231, 249, 109, 98, 61, 246, 167, 2, 237, 44, + 246, 164, 232, 28, 98, 230, 239, 232, 62, 98, 227, 230, 232, 62, 98, 233, + 203, 98, 229, 240, 98, 63, 37, 2, 237, 95, 61, 240, 138, 243, 97, 98, + 229, 182, 253, 239, 98, 250, 65, 98, 33, 169, 252, 219, 2, 238, 28, 33, + 233, 80, 240, 152, 237, 150, 237, 40, 2, 232, 234, 58, 252, 54, 98, 231, + 103, 98, 231, 80, 98, 222, 232, 239, 0, 98, 222, 232, 239, 77, 98, 222, + 223, 98, 222, 226, 98, 237, 242, 236, 38, 14, 211, 113, 223, 54, 98, 162, + 163, 14, 240, 232, 235, 163, 231, 247, 253, 239, 98, 234, 198, 241, 210, + 251, 53, 241, 210, 245, 82, 238, 44, 98, 243, 14, 238, 44, 98, 42, 229, + 169, 240, 116, 88, 42, 229, 169, 230, 136, 42, 229, 169, 203, 88, 41, + 229, 169, 240, 116, 88, 41, 229, 169, 230, 136, 41, 229, 169, 203, 88, + 42, 37, 235, 22, 240, 116, 235, 40, 42, 37, 235, 22, 230, 136, 42, 37, + 235, 22, 203, 235, 40, 41, 37, 235, 22, 240, 116, 235, 40, 41, 37, 235, + 22, 230, 136, 41, 37, 235, 22, 203, 235, 40, 42, 240, 137, 235, 22, 240, + 116, 88, 42, 240, 137, 235, 22, 237, 44, 237, 188, 42, 240, 137, 235, 22, + 203, 88, 240, 137, 235, 22, 230, 136, 41, 240, 137, 235, 22, 240, 116, + 88, 41, 240, 137, 235, 22, 237, 44, 237, 188, 41, 240, 137, 235, 22, 203, + 88, 233, 98, 230, 136, 169, 246, 167, 230, 136, 240, 116, 42, 145, 203, + 41, 240, 137, 235, 22, 233, 144, 240, 116, 41, 145, 203, 42, 240, 137, + 235, 22, 233, 144, 232, 10, 247, 214, 232, 10, 235, 110, 252, 228, 37, + 104, 237, 59, 37, 104, 237, 59, 37, 235, 22, 107, 252, 228, 37, 104, 29, + 14, 235, 110, 42, 61, 77, 240, 138, 41, 61, 77, 240, 138, 169, 247, 102, + 236, 138, 169, 247, 102, 236, 139, 169, 247, 102, 236, 140, 169, 247, + 102, 236, 141, 231, 205, 14, 157, 61, 22, 252, 228, 237, 41, 231, 205, + 14, 157, 61, 22, 237, 59, 237, 41, 231, 205, 14, 157, 61, 2, 235, 20, + 231, 205, 14, 157, 103, 22, 169, 2, 235, 20, 231, 205, 14, 157, 99, 22, + 169, 2, 235, 20, 231, 205, 14, 157, 61, 2, 231, 193, 231, 205, 14, 157, + 103, 22, 169, 2, 231, 193, 231, 205, 14, 157, 99, 22, 169, 2, 231, 193, + 231, 205, 14, 157, 61, 22, 241, 22, 231, 205, 14, 157, 103, 22, 169, 2, + 241, 22, 231, 205, 14, 157, 99, 22, 169, 2, 241, 22, 231, 205, 14, 157, + 103, 22, 229, 164, 231, 205, 14, 157, 99, 22, 229, 164, 231, 205, 14, + 157, 61, 22, 252, 228, 240, 132, 231, 205, 14, 157, 61, 22, 237, 59, 240, + 132, 37, 241, 38, 239, 219, 98, 243, 96, 98, 61, 246, 167, 230, 136, 233, + 114, 237, 46, 233, 114, 182, 107, 239, 251, 233, 114, 240, 125, 107, 241, + 4, 233, 114, 182, 107, 135, 236, 227, 233, 114, 135, 238, 54, 107, 241, + 4, 233, 114, 135, 238, 54, 236, 115, 233, 114, 233, 247, 233, 114, 230, + 213, 233, 114, 230, 193, 241, 126, 236, 97, 243, 111, 252, 228, 228, 180, + 237, 59, 228, 180, 252, 228, 240, 137, 104, 237, 59, 240, 137, 104, 252, + 228, 233, 89, 240, 158, 104, 237, 59, 233, 89, 240, 158, 104, 63, 231, + 179, 235, 150, 246, 174, 2, 235, 20, 228, 166, 232, 191, 255, 0, 234, 41, + 231, 62, 227, 186, 14, 32, 245, 13, 14, 32, 241, 75, 106, 234, 120, 14, + 32, 241, 75, 106, 242, 0, 14, 32, 252, 255, 106, 242, 0, 14, 32, 252, + 255, 106, 228, 169, 14, 32, 234, 96, 14, 32, 228, 211, 14, 32, 242, 198, + 14, 32, 230, 229, 14, 32, 169, 229, 221, 14, 32, 246, 167, 241, 129, 14, + 32, 61, 229, 221, 14, 32, 211, 241, 129, 14, 32, 234, 28, 235, 205, 14, + 32, 241, 237, 247, 186, 14, 32, 241, 237, 253, 79, 14, 32, 249, 182, 250, + 222, 235, 170, 14, 32, 237, 178, 235, 88, 118, 14, 32, 237, 178, 235, 88, + 113, 14, 32, 237, 178, 235, 88, 166, 14, 32, 237, 178, 235, 88, 158, 14, + 32, 233, 71, 228, 211, 14, 32, 230, 116, 244, 3, 14, 32, 252, 255, 106, + 229, 156, 237, 65, 14, 32, 236, 18, 14, 32, 252, 255, 106, 236, 151, 14, + 32, 230, 115, 14, 32, 235, 170, 14, 32, 249, 248, 230, 131, 14, 32, 243, + 157, 230, 131, 14, 32, 239, 217, 230, 131, 14, 32, 246, 229, 230, 131, + 14, 32, 237, 69, 14, 32, 236, 44, 242, 209, 98, 246, 157, 246, 231, 14, + 32, 234, 168, 14, 32, 238, 180, 211, 113, 14, 32, 231, 148, 211, 113, + 253, 63, 88, 253, 63, 238, 146, 253, 63, 241, 133, 253, 63, 233, 70, 241, + 133, 253, 63, 249, 110, 236, 17, 253, 63, 254, 34, 247, 57, 253, 63, 238, + 129, 249, 99, 225, 114, 253, 63, 238, 95, 106, 237, 234, 253, 63, 240, + 151, 253, 63, 234, 42, 235, 144, 236, 170, 253, 63, 47, 230, 151, 33, 21, + 118, 33, 21, 113, 33, 21, 166, 33, 21, 158, 33, 21, 173, 33, 21, 183, 33, + 21, 194, 33, 21, 187, 33, 21, 192, 33, 65, 246, 179, 33, 65, 235, 68, 33, + 65, 235, 72, 33, 65, 231, 234, 33, 65, 231, 231, 33, 65, 233, 141, 33, + 65, 233, 135, 33, 65, 230, 148, 33, 65, 231, 229, 33, 65, 231, 233, 33, + 65, 235, 52, 93, 21, 118, 93, 21, 113, 93, 21, 166, 93, 21, 158, 93, 21, + 173, 93, 21, 183, 93, 21, 194, 93, 21, 187, 93, 21, 192, 93, 65, 246, + 179, 93, 65, 235, 68, 93, 65, 235, 72, 93, 65, 231, 234, 93, 65, 231, + 231, 93, 65, 233, 141, 93, 65, 233, 135, 93, 65, 230, 148, 93, 65, 231, + 229, 93, 65, 231, 233, 93, 65, 235, 52, 21, 168, 246, 162, 240, 121, 21, + 135, 246, 162, 240, 121, 21, 152, 246, 162, 240, 121, 21, 246, 160, 246, + 162, 240, 121, 21, 246, 159, 246, 162, 240, 121, 21, 253, 17, 246, 162, + 240, 121, 21, 240, 155, 246, 162, 240, 121, 21, 240, 142, 246, 162, 240, + 121, 21, 246, 208, 246, 162, 240, 121, 65, 253, 53, 246, 162, 240, 121, + 65, 238, 199, 246, 162, 240, 121, 65, 238, 79, 246, 162, 240, 121, 65, + 234, 245, 246, 162, 240, 121, 65, 234, 107, 246, 162, 240, 121, 65, 236, + 78, 246, 162, 240, 121, 65, 235, 210, 246, 162, 240, 121, 65, 233, 22, + 246, 162, 240, 121, 65, 234, 92, 246, 162, 240, 121, 65, 234, 171, 246, + 162, 240, 121, 65, 237, 97, 246, 162, 240, 121, 93, 7, 3, 1, 57, 93, 7, + 3, 1, 254, 185, 93, 7, 3, 1, 254, 194, 93, 7, 3, 1, 222, 222, 93, 7, 3, + 1, 72, 93, 7, 3, 1, 254, 191, 93, 7, 3, 1, 214, 93, 7, 3, 1, 212, 93, 7, + 3, 1, 74, 93, 7, 3, 1, 254, 192, 93, 7, 3, 1, 254, 186, 93, 7, 3, 1, 149, + 93, 7, 3, 1, 185, 93, 7, 3, 1, 199, 93, 7, 3, 1, 73, 93, 7, 3, 1, 254, + 187, 93, 7, 3, 1, 254, 196, 93, 7, 3, 1, 146, 93, 7, 3, 1, 193, 93, 7, 3, + 1, 254, 183, 93, 7, 3, 1, 66, 93, 7, 3, 1, 196, 93, 7, 3, 1, 254, 195, + 93, 7, 3, 1, 254, 184, 93, 7, 3, 1, 254, 190, 93, 7, 3, 1, 254, 193, 33, + 7, 6, 1, 57, 33, 7, 6, 1, 254, 185, 33, 7, 6, 1, 254, 194, 33, 7, 6, 1, + 222, 222, 33, 7, 6, 1, 72, 33, 7, 6, 1, 254, 191, 33, 7, 6, 1, 214, 33, + 7, 6, 1, 212, 33, 7, 6, 1, 74, 33, 7, 6, 1, 254, 192, 33, 7, 6, 1, 254, + 186, 33, 7, 6, 1, 149, 33, 7, 6, 1, 185, 33, 7, 6, 1, 199, 33, 7, 6, 1, + 73, 33, 7, 6, 1, 254, 187, 33, 7, 6, 1, 254, 196, 33, 7, 6, 1, 146, 33, + 7, 6, 1, 193, 33, 7, 6, 1, 254, 183, 33, 7, 6, 1, 66, 33, 7, 6, 1, 196, + 33, 7, 6, 1, 254, 195, 33, 7, 6, 1, 254, 184, 33, 7, 6, 1, 254, 190, 33, + 7, 6, 1, 254, 193, 33, 7, 3, 1, 57, 33, 7, 3, 1, 254, 185, 33, 7, 3, 1, + 254, 194, 33, 7, 3, 1, 222, 222, 33, 7, 3, 1, 72, 33, 7, 3, 1, 254, 191, + 33, 7, 3, 1, 214, 33, 7, 3, 1, 212, 33, 7, 3, 1, 74, 33, 7, 3, 1, 254, + 192, 33, 7, 3, 1, 254, 186, 33, 7, 3, 1, 149, 33, 7, 3, 1, 185, 33, 7, 3, + 1, 199, 33, 7, 3, 1, 73, 33, 7, 3, 1, 254, 187, 33, 7, 3, 1, 254, 196, + 33, 7, 3, 1, 146, 33, 7, 3, 1, 193, 33, 7, 3, 1, 254, 183, 33, 7, 3, 1, + 66, 33, 7, 3, 1, 196, 33, 7, 3, 1, 254, 195, 33, 7, 3, 1, 254, 184, 33, + 7, 3, 1, 254, 190, 33, 7, 3, 1, 254, 193, 33, 21, 240, 126, 233, 71, 33, + 65, 235, 68, 233, 71, 33, 65, 235, 72, 233, 71, 33, 65, 231, 234, 233, + 71, 33, 65, 231, 231, 233, 71, 33, 65, 233, 141, 233, 71, 33, 65, 233, + 135, 233, 71, 33, 65, 230, 148, 233, 71, 33, 65, 231, 229, 233, 71, 33, + 65, 231, 233, 233, 71, 33, 65, 235, 52, 47, 33, 21, 118, 47, 33, 21, 113, + 47, 33, 21, 166, 47, 33, 21, 158, 47, 33, 21, 173, 47, 33, 21, 183, 47, + 33, 21, 194, 47, 33, 21, 187, 47, 33, 21, 192, 47, 33, 65, 246, 179, 233, + 71, 33, 21, 240, 126, 77, 80, 157, 229, 164, 77, 80, 112, 229, 164, 77, + 80, 157, 231, 210, 77, 80, 112, 231, 210, 77, 80, 157, 237, 49, 246, 187, + 229, 164, 77, 80, 112, 237, 49, 246, 187, 229, 164, 77, 80, 157, 237, 49, + 246, 187, 231, 210, 77, 80, 112, 237, 49, 246, 187, 231, 210, 77, 80, + 157, 231, 212, 246, 187, 229, 164, 77, 80, 112, 231, 212, 246, 187, 229, + 164, 77, 80, 157, 231, 212, 246, 187, 231, 210, 77, 80, 112, 231, 212, + 246, 187, 231, 210, 77, 80, 157, 103, 22, 237, 41, 77, 80, 103, 157, 22, + 41, 237, 63, 77, 80, 103, 112, 22, 41, 237, 57, 77, 80, 112, 103, 22, + 237, 41, 77, 80, 157, 103, 22, 240, 132, 77, 80, 103, 157, 22, 42, 237, + 63, 77, 80, 103, 112, 22, 42, 237, 57, 77, 80, 112, 103, 22, 240, 132, + 77, 80, 157, 99, 22, 237, 41, 77, 80, 99, 157, 22, 41, 237, 63, 77, 80, + 99, 112, 22, 41, 237, 57, 77, 80, 112, 99, 22, 237, 41, 77, 80, 157, 99, + 22, 240, 132, 77, 80, 99, 157, 22, 42, 237, 63, 77, 80, 99, 112, 22, 42, + 237, 57, 77, 80, 112, 99, 22, 240, 132, 77, 80, 157, 61, 22, 237, 41, 77, + 80, 61, 157, 22, 41, 237, 63, 77, 80, 99, 112, 22, 41, 103, 237, 57, 77, + 80, 103, 112, 22, 41, 99, 237, 57, 77, 80, 61, 112, 22, 41, 237, 57, 77, + 80, 103, 157, 22, 41, 99, 237, 63, 77, 80, 99, 157, 22, 41, 103, 237, 63, + 77, 80, 112, 61, 22, 237, 41, 77, 80, 157, 61, 22, 240, 132, 77, 80, 61, + 157, 22, 42, 237, 63, 77, 80, 99, 112, 22, 42, 103, 237, 57, 77, 80, 103, + 112, 22, 42, 99, 237, 57, 77, 80, 61, 112, 22, 42, 237, 57, 77, 80, 103, + 157, 22, 42, 99, 237, 63, 77, 80, 99, 157, 22, 42, 103, 237, 63, 77, 80, + 112, 61, 22, 240, 132, 77, 80, 157, 103, 22, 229, 164, 77, 80, 42, 112, + 22, 41, 103, 237, 57, 77, 80, 41, 112, 22, 42, 103, 237, 57, 77, 80, 103, + 157, 22, 169, 237, 63, 77, 80, 103, 112, 22, 169, 237, 57, 77, 80, 41, + 157, 22, 42, 103, 237, 63, 77, 80, 42, 157, 22, 41, 103, 237, 63, 77, 80, + 112, 103, 22, 229, 164, 77, 80, 157, 99, 22, 229, 164, 77, 80, 42, 112, + 22, 41, 99, 237, 57, 77, 80, 41, 112, 22, 42, 99, 237, 57, 77, 80, 99, + 157, 22, 169, 237, 63, 77, 80, 99, 112, 22, 169, 237, 57, 77, 80, 41, + 157, 22, 42, 99, 237, 63, 77, 80, 42, 157, 22, 41, 99, 237, 63, 77, 80, + 112, 99, 22, 229, 164, 77, 80, 157, 61, 22, 229, 164, 77, 80, 42, 112, + 22, 41, 61, 237, 57, 77, 80, 41, 112, 22, 42, 61, 237, 57, 77, 80, 61, + 157, 22, 169, 237, 63, 77, 80, 99, 112, 22, 103, 169, 237, 57, 77, 80, + 103, 112, 22, 99, 169, 237, 57, 77, 80, 61, 112, 22, 169, 237, 57, 77, + 80, 42, 99, 112, 22, 41, 103, 237, 57, 77, 80, 41, 99, 112, 22, 42, 103, + 237, 57, 77, 80, 42, 103, 112, 22, 41, 99, 237, 57, 77, 80, 41, 103, 112, + 22, 42, 99, 237, 57, 77, 80, 103, 157, 22, 99, 169, 237, 63, 77, 80, 99, + 157, 22, 103, 169, 237, 63, 77, 80, 41, 157, 22, 42, 61, 237, 63, 77, 80, + 42, 157, 22, 41, 61, 237, 63, 77, 80, 112, 61, 22, 229, 164, 77, 80, 157, + 47, 246, 187, 229, 164, 77, 80, 112, 47, 246, 187, 229, 164, 77, 80, 157, + 47, 246, 187, 231, 210, 77, 80, 112, 47, 246, 187, 231, 210, 77, 80, 47, + 229, 164, 77, 80, 47, 231, 210, 77, 80, 103, 237, 62, 22, 41, 235, 55, + 77, 80, 103, 47, 22, 41, 235, 60, 77, 80, 47, 103, 22, 237, 41, 77, 80, + 103, 237, 62, 22, 42, 235, 55, 77, 80, 103, 47, 22, 42, 235, 60, 77, 80, + 47, 103, 22, 240, 132, 77, 80, 99, 237, 62, 22, 41, 235, 55, 77, 80, 99, + 47, 22, 41, 235, 60, 77, 80, 47, 99, 22, 237, 41, 77, 80, 99, 237, 62, + 22, 42, 235, 55, 77, 80, 99, 47, 22, 42, 235, 60, 77, 80, 47, 99, 22, + 240, 132, 77, 80, 61, 237, 62, 22, 41, 235, 55, 77, 80, 61, 47, 22, 41, + 235, 60, 77, 80, 47, 61, 22, 237, 41, 77, 80, 61, 237, 62, 22, 42, 235, + 55, 77, 80, 61, 47, 22, 42, 235, 60, 77, 80, 47, 61, 22, 240, 132, 77, + 80, 103, 237, 62, 22, 169, 235, 55, 77, 80, 103, 47, 22, 169, 235, 60, + 77, 80, 47, 103, 22, 229, 164, 77, 80, 99, 237, 62, 22, 169, 235, 55, 77, + 80, 99, 47, 22, 169, 235, 60, 77, 80, 47, 99, 22, 229, 164, 77, 80, 61, + 237, 62, 22, 169, 235, 55, 77, 80, 61, 47, 22, 169, 235, 60, 77, 80, 47, + 61, 22, 229, 164, 77, 80, 157, 253, 29, 103, 22, 237, 41, 77, 80, 157, + 253, 29, 103, 22, 240, 132, 77, 80, 157, 253, 29, 99, 22, 240, 132, 77, + 80, 157, 253, 29, 99, 22, 237, 41, 77, 80, 157, 233, 74, 240, 116, 41, + 180, 203, 240, 132, 77, 80, 157, 233, 74, 240, 116, 42, 180, 203, 237, + 41, 77, 80, 157, 233, 74, 237, 85, 77, 80, 157, 240, 132, 77, 80, 157, + 253, 19, 77, 80, 157, 237, 41, 77, 80, 157, 240, 152, 77, 80, 112, 240, + 132, 77, 80, 112, 253, 19, 77, 80, 112, 237, 41, 77, 80, 112, 240, 152, + 77, 80, 157, 42, 22, 112, 237, 41, 77, 80, 157, 99, 22, 112, 240, 152, + 77, 80, 112, 42, 22, 157, 237, 41, 77, 80, 112, 99, 22, 157, 240, 152, + 240, 116, 132, 237, 65, 203, 168, 237, 112, 237, 65, 203, 168, 235, 53, + 237, 65, 203, 152, 235, 75, 237, 65, 203, 132, 237, 65, 203, 246, 159, + 235, 75, 237, 65, 203, 152, 233, 176, 237, 65, 203, 240, 155, 235, 75, + 237, 65, 246, 162, 237, 65, 42, 240, 155, 235, 75, 237, 65, 42, 152, 233, + 176, 237, 65, 42, 246, 159, 235, 75, 237, 65, 42, 132, 237, 65, 42, 152, + 235, 75, 237, 65, 42, 168, 235, 53, 237, 65, 42, 168, 237, 112, 237, 65, + 41, 132, 237, 65, 157, 237, 214, 237, 60, 237, 214, 249, 180, 237, 214, + 240, 116, 168, 237, 112, 237, 65, 41, 168, 237, 112, 237, 65, 233, 88, + 203, 240, 132, 233, 88, 203, 237, 41, 233, 88, 240, 116, 240, 132, 233, + 88, 240, 116, 42, 22, 203, 42, 22, 203, 237, 41, 233, 88, 240, 116, 42, + 22, 203, 237, 41, 233, 88, 240, 116, 42, 22, 240, 116, 41, 22, 203, 240, + 132, 233, 88, 240, 116, 42, 22, 240, 116, 41, 22, 203, 237, 41, 233, 88, + 240, 116, 237, 41, 233, 88, 240, 116, 41, 22, 203, 240, 132, 233, 88, + 240, 116, 41, 22, 203, 42, 22, 203, 237, 41, 86, 235, 27, 63, 235, 27, + 63, 37, 2, 235, 98, 233, 195, 63, 37, 230, 162, 86, 3, 235, 27, 37, 2, + 169, 240, 200, 37, 2, 61, 240, 200, 37, 2, 231, 112, 230, 179, 240, 200, + 37, 2, 240, 116, 42, 180, 203, 41, 240, 200, 37, 2, 240, 116, 41, 180, + 203, 42, 240, 200, 37, 2, 233, 74, 230, 179, 240, 200, 86, 3, 235, 27, + 63, 3, 235, 27, 86, 230, 157, 63, 230, 157, 86, 61, 230, 157, 63, 61, + 230, 157, 86, 227, 145, 63, 227, 145, 86, 229, 174, 231, 193, 63, 229, + 174, 231, 193, 86, 229, 174, 3, 231, 193, 63, 229, 174, 3, 231, 193, 86, + 227, 133, 231, 193, 63, 227, 133, 231, 193, 86, 227, 133, 3, 231, 193, + 63, 227, 133, 3, 231, 193, 86, 227, 133, 233, 154, 63, 227, 133, 233, + 154, 86, 227, 189, 231, 193, 63, 227, 189, 231, 193, 86, 227, 189, 3, + 231, 193, 63, 227, 189, 3, 231, 193, 86, 227, 185, 231, 193, 63, 227, + 185, 231, 193, 86, 227, 185, 3, 231, 193, 63, 227, 185, 3, 231, 193, 86, + 227, 185, 233, 154, 63, 227, 185, 233, 154, 86, 233, 90, 63, 233, 90, 63, + 235, 41, 230, 162, 86, 3, 233, 90, 234, 103, 233, 123, 63, 235, 20, 237, + 50, 235, 20, 237, 40, 2, 61, 240, 200, 232, 89, 86, 235, 20, 237, 40, 2, + 42, 132, 237, 45, 237, 40, 2, 41, 132, 237, 45, 237, 40, 2, 203, 132, + 237, 45, 237, 40, 2, 240, 116, 132, 237, 45, 237, 40, 2, 240, 116, 41, + 233, 88, 237, 45, 237, 40, 2, 253, 167, 253, 85, 240, 116, 42, 233, 88, + 237, 45, 42, 132, 86, 235, 20, 41, 132, 86, 235, 20, 235, 94, 235, 45, + 235, 94, 63, 235, 20, 240, 116, 132, 235, 94, 63, 235, 20, 203, 132, 235, + 94, 63, 235, 20, 240, 116, 42, 233, 88, 233, 146, 247, 10, 240, 116, 41, + 233, 88, 233, 146, 247, 10, 203, 41, 233, 88, 233, 146, 247, 10, 203, 42, + 233, 88, 233, 146, 247, 10, 240, 116, 132, 235, 20, 203, 132, 235, 20, + 86, 203, 41, 231, 193, 86, 203, 42, 231, 193, 86, 240, 116, 42, 231, 193, + 86, 240, 116, 41, 231, 193, 63, 235, 45, 37, 2, 42, 132, 237, 45, 37, 2, + 41, 132, 237, 45, 37, 2, 240, 116, 42, 233, 74, 132, 237, 45, 37, 2, 203, + 41, 233, 74, 132, 237, 45, 63, 37, 2, 61, 232, 86, 240, 138, 63, 229, + 174, 233, 80, 2, 246, 164, 229, 174, 233, 80, 2, 42, 132, 237, 45, 229, + 174, 233, 80, 2, 41, 132, 237, 45, 240, 185, 235, 20, 63, 37, 2, 240, + 116, 42, 231, 219, 63, 37, 2, 203, 42, 231, 219, 63, 37, 2, 203, 41, 231, + 219, 63, 37, 2, 240, 116, 41, 231, 219, 63, 237, 40, 2, 240, 116, 42, + 231, 219, 63, 237, 40, 2, 203, 42, 231, 219, 63, 237, 40, 2, 203, 41, + 231, 219, 63, 237, 40, 2, 240, 116, 41, 231, 219, 240, 116, 42, 231, 193, + 240, 116, 41, 231, 193, 203, 42, 231, 193, 63, 237, 60, 235, 27, 86, 237, + 60, 235, 27, 63, 237, 60, 3, 235, 27, 86, 237, 60, 3, 235, 27, 203, 41, + 231, 193, 86, 254, 8, 2, 241, 220, 238, 156, 233, 58, 234, 226, 238, 159, + 86, 240, 139, 63, 240, 139, 231, 98, 228, 167, 247, 54, 232, 77, 241, + 204, 230, 181, 241, 204, 228, 229, 229, 187, 86, 230, 212, 63, 230, 212, + 237, 149, 246, 231, 237, 149, 77, 2, 237, 234, 237, 149, 77, 2, 254, 184, + 234, 213, 235, 2, 2, 251, 171, 238, 193, 253, 225, 232, 84, 63, 241, 238, + 237, 188, 86, 241, 238, 237, 188, 233, 23, 200, 235, 97, 237, 202, 240, + 196, 235, 45, 86, 42, 233, 78, 237, 135, 86, 41, 233, 78, 237, 135, 63, + 42, 233, 78, 237, 135, 63, 99, 233, 78, 237, 135, 63, 41, 233, 78, 237, + 135, 63, 103, 233, 78, 237, 135, 245, 189, 22, 229, 243, 236, 22, 53, + 230, 93, 53, 232, 85, 53, 232, 91, 242, 58, 234, 178, 237, 85, 253, 212, + 246, 209, 240, 221, 106, 232, 222, 240, 221, 106, 231, 89, 247, 53, 22, + 232, 104, 240, 176, 98, 254, 23, 236, 221, 238, 4, 22, 236, 230, 245, 62, + 98, 253, 122, 240, 242, 235, 66, 32, 235, 123, 235, 66, 32, 241, 178, + 235, 66, 32, 240, 207, 235, 66, 32, 233, 246, 235, 66, 32, 240, 199, 235, + 66, 32, 237, 168, 235, 66, 32, 231, 255, 235, 66, 32, 237, 99, 246, 56, + 106, 236, 48, 63, 234, 108, 240, 223, 63, 235, 213, 240, 223, 86, 235, + 213, 240, 223, 63, 254, 8, 2, 241, 220, 240, 225, 235, 53, 240, 211, 250, + 207, 235, 53, 240, 211, 234, 159, 237, 154, 53, 237, 99, 246, 235, 53, + 234, 134, 236, 208, 237, 17, 234, 167, 239, 200, 238, 102, 236, 255, 236, + 91, 236, 19, 250, 213, 240, 78, 239, 84, 233, 20, 229, 58, 230, 233, 232, + 72, 236, 189, 63, 240, 175, 241, 2, 63, 240, 175, 238, 39, 63, 240, 175, + 241, 225, 63, 240, 175, 235, 152, 63, 240, 175, 235, 186, 63, 240, 175, + 241, 211, 86, 240, 175, 241, 2, 86, 240, 175, 238, 39, 86, 240, 175, 241, + 225, 86, 240, 175, 235, 152, 86, 240, 175, 235, 186, 86, 240, 175, 241, + 211, 86, 241, 249, 240, 198, 63, 240, 196, 240, 198, 63, 235, 41, 240, + 198, 86, 248, 9, 240, 198, 63, 241, 249, 240, 198, 86, 240, 196, 240, + 198, 86, 235, 41, 240, 198, 63, 248, 9, 240, 198, 253, 225, 234, 228, + 235, 53, 240, 186, 237, 112, 240, 186, 237, 229, 237, 112, 238, 29, 237, + 229, 232, 6, 238, 29, 241, 53, 247, 141, 53, 241, 53, 235, 131, 53, 241, + 53, 240, 235, 53, 246, 184, 151, 237, 85, 246, 170, 151, 237, 85, 232, + 64, 231, 213, 98, 231, 213, 14, 32, 240, 57, 231, 224, 231, 213, 14, 32, + 240, 58, 231, 224, 231, 213, 14, 32, 240, 59, 231, 224, 231, 213, 14, 32, + 240, 60, 231, 224, 231, 213, 14, 32, 240, 61, 231, 224, 231, 213, 14, 32, + 240, 62, 231, 224, 231, 213, 14, 32, 240, 63, 231, 224, 231, 213, 14, 32, + 236, 92, 231, 100, 86, 232, 64, 231, 213, 98, 234, 205, 241, 59, 98, 222, + 248, 241, 59, 98, 232, 248, 241, 59, 53, 231, 186, 98, 253, 115, 236, 68, + 253, 115, 236, 69, 253, 115, 236, 70, 253, 115, 236, 71, 253, 115, 236, + 72, 253, 115, 236, 73, 63, 237, 40, 2, 56, 237, 41, 63, 237, 40, 2, 135, + 240, 169, 86, 237, 40, 2, 63, 56, 237, 41, 86, 237, 40, 2, 135, 63, 240, + 169, 233, 115, 32, 240, 242, 233, 115, 32, 247, 233, 237, 111, 32, 235, + 175, 240, 242, 237, 111, 32, 238, 21, 247, 233, 237, 111, 32, 238, 21, + 240, 242, 237, 111, 32, 235, 175, 247, 233, 63, 241, 131, 86, 241, 131, + 238, 4, 22, 245, 72, 235, 145, 235, 117, 236, 250, 241, 251, 106, 228, + 222, 236, 209, 234, 0, 236, 85, 243, 121, 241, 251, 106, 236, 104, 248, + 240, 98, 227, 240, 233, 124, 63, 240, 139, 237, 27, 53, 201, 237, 26, 53, + 235, 166, 237, 154, 53, 235, 166, 246, 235, 53, 230, 72, 237, 154, 22, + 246, 235, 53, 246, 235, 22, 237, 154, 53, 246, 235, 2, 195, 53, 246, 235, + 2, 195, 22, 246, 235, 22, 237, 154, 53, 61, 246, 235, 2, 195, 53, 169, + 246, 235, 2, 195, 53, 237, 60, 63, 235, 20, 237, 60, 86, 235, 20, 237, + 60, 3, 63, 235, 20, 234, 152, 98, 236, 52, 98, 233, 60, 229, 208, 98, + 236, 34, 236, 87, 252, 62, 236, 165, 238, 144, 236, 181, 244, 37, 240, + 76, 236, 28, 86, 247, 176, 236, 134, 234, 220, 229, 149, 233, 6, 227, 75, + 63, 233, 148, 247, 4, 63, 233, 148, 241, 2, 86, 233, 148, 247, 4, 86, + 233, 148, 241, 2, 240, 116, 241, 101, 231, 245, 86, 231, 245, 203, 241, + 101, 231, 245, 63, 231, 245, 232, 11, 234, 145, 53, 252, 8, 238, 192, + 232, 67, 232, 178, 237, 23, 240, 251, 237, 31, 240, 251, 203, 41, 235, + 133, 235, 133, 240, 116, 41, 235, 133, 63, 248, 111, 86, 248, 111, 240, + 245, 76, 112, 240, 245, 76, 227, 134, 254, 184, 112, 227, 134, 254, 184, + 237, 149, 254, 184, 112, 237, 149, 254, 184, 233, 124, 19, 237, 85, 112, + 19, 237, 85, 246, 157, 237, 95, 237, 85, 112, 246, 157, 237, 95, 237, 85, + 7, 237, 85, 233, 125, 63, 7, 237, 85, 233, 124, 7, 237, 85, 236, 145, + 237, 85, 247, 53, 106, 238, 173, 246, 160, 225, 105, 231, 198, 246, 160, + 227, 136, 231, 198, 112, 246, 160, 227, 136, 231, 198, 246, 160, 229, + 237, 231, 198, 86, 246, 160, 235, 50, 240, 139, 63, 246, 160, 235, 50, + 240, 139, 237, 165, 233, 124, 63, 240, 139, 33, 63, 240, 139, 246, 157, + 237, 95, 86, 240, 139, 86, 237, 95, 63, 240, 139, 233, 124, 86, 240, 139, + 112, 233, 124, 86, 240, 139, 233, 175, 240, 139, 233, 125, 63, 240, 139, + 112, 231, 198, 246, 157, 237, 95, 231, 198, 240, 142, 240, 12, 231, 198, + 240, 142, 235, 50, 86, 240, 139, 240, 142, 235, 50, 233, 175, 240, 139, + 253, 17, 235, 50, 86, 240, 139, 240, 142, 235, 50, 229, 212, 86, 240, + 139, 112, 240, 142, 235, 50, 229, 212, 86, 240, 139, 238, 79, 235, 50, + 86, 240, 139, 235, 210, 235, 50, 231, 198, 225, 105, 231, 198, 246, 157, + 237, 95, 225, 105, 231, 198, 112, 225, 105, 231, 198, 253, 17, 233, 228, + 86, 22, 63, 231, 238, 86, 231, 238, 63, 231, 238, 240, 142, 233, 228, + 233, 124, 86, 231, 238, 33, 246, 157, 237, 95, 240, 142, 235, 50, 240, + 139, 112, 225, 105, 233, 175, 231, 198, 230, 171, 245, 251, 231, 180, + 230, 171, 112, 236, 26, 230, 171, 233, 239, 112, 233, 239, 227, 136, 231, + 198, 240, 142, 225, 105, 232, 40, 231, 198, 112, 240, 142, 225, 105, 232, + 40, 231, 198, 233, 125, 63, 235, 20, 203, 41, 227, 202, 63, 235, 27, 240, + 116, 41, 227, 202, 63, 235, 27, 203, 41, 233, 125, 63, 235, 27, 240, 116, + 41, 233, 125, 63, 235, 27, 86, 235, 41, 240, 172, 63, 254, 184, 157, 61, + 125, 237, 60, 61, 125, 112, 61, 125, 112, 237, 62, 209, 240, 162, 231, + 199, 165, 231, 200, 112, 237, 62, 240, 162, 231, 199, 165, 231, 200, 112, + 47, 209, 240, 162, 231, 199, 165, 231, 200, 112, 47, 240, 162, 231, 199, + 165, 231, 200, 237, 153, 251, 238, 231, 242, 5, 231, 200, 112, 229, 165, + 165, 231, 200, 112, 240, 196, 229, 165, 165, 231, 200, 112, 86, 237, 204, + 235, 97, 112, 86, 240, 196, 235, 45, 237, 202, 237, 204, 235, 97, 237, + 202, 240, 196, 235, 45, 237, 60, 42, 229, 169, 231, 200, 237, 60, 41, + 229, 169, 231, 200, 237, 60, 231, 230, 42, 229, 169, 231, 200, 237, 60, + 231, 230, 41, 229, 169, 231, 200, 237, 60, 227, 185, 240, 117, 235, 22, + 231, 200, 237, 60, 227, 133, 240, 117, 235, 22, 231, 200, 112, 227, 185, + 240, 117, 231, 199, 165, 231, 200, 112, 227, 133, 240, 117, 231, 199, + 165, 231, 200, 112, 227, 185, 240, 117, 235, 22, 231, 200, 112, 227, 133, + 240, 117, 235, 22, 231, 200, 157, 42, 233, 89, 240, 158, 235, 22, 231, + 200, 157, 41, 233, 89, 240, 158, 235, 22, 231, 200, 237, 60, 42, 240, + 137, 235, 22, 231, 200, 237, 60, 41, 240, 137, 235, 22, 231, 200, 235, + 25, 233, 71, 33, 21, 118, 235, 25, 233, 71, 33, 21, 113, 235, 25, 233, + 71, 33, 21, 166, 235, 25, 233, 71, 33, 21, 158, 235, 25, 233, 71, 33, 21, + 173, 235, 25, 233, 71, 33, 21, 183, 235, 25, 233, 71, 33, 21, 194, 235, + 25, 233, 71, 33, 21, 187, 235, 25, 233, 71, 33, 21, 192, 235, 25, 233, + 71, 33, 65, 246, 179, 235, 25, 33, 30, 21, 118, 235, 25, 33, 30, 21, 113, + 235, 25, 33, 30, 21, 166, 235, 25, 33, 30, 21, 158, 235, 25, 33, 30, 21, + 173, 235, 25, 33, 30, 21, 183, 235, 25, 33, 30, 21, 194, 235, 25, 33, 30, + 21, 187, 235, 25, 33, 30, 21, 192, 235, 25, 33, 30, 65, 246, 179, 235, + 25, 233, 71, 33, 30, 21, 118, 235, 25, 233, 71, 33, 30, 21, 113, 235, 25, + 233, 71, 33, 30, 21, 166, 235, 25, 233, 71, 33, 30, 21, 158, 235, 25, + 233, 71, 33, 30, 21, 173, 235, 25, 233, 71, 33, 30, 21, 183, 235, 25, + 233, 71, 33, 30, 21, 194, 235, 25, 233, 71, 33, 30, 21, 187, 235, 25, + 233, 71, 33, 30, 21, 192, 235, 25, 233, 71, 33, 30, 65, 246, 179, 112, + 230, 123, 81, 58, 112, 240, 141, 246, 170, 58, 112, 81, 58, 112, 240, + 134, 246, 170, 58, 234, 87, 240, 143, 81, 58, 112, 229, 57, 81, 58, 225, + 107, 81, 58, 112, 225, 107, 81, 58, 237, 110, 225, 107, 81, 58, 112, 237, + 110, 225, 107, 81, 58, 86, 81, 58, 235, 226, 230, 119, 81, 230, 133, 235, + 226, 227, 157, 81, 230, 133, 86, 81, 230, 133, 112, 86, 237, 153, 231, + 191, 22, 81, 58, 112, 86, 237, 153, 235, 18, 22, 81, 58, 241, 250, 86, + 81, 58, 112, 225, 112, 86, 81, 58, 229, 55, 63, 81, 58, 230, 76, 63, 81, + 58, 229, 233, 233, 125, 63, 81, 58, 229, 20, 233, 125, 63, 81, 58, 112, + 203, 227, 135, 63, 81, 58, 112, 240, 116, 227, 135, 63, 81, 58, 235, 196, + 203, 227, 135, 63, 81, 58, 235, 196, 240, 116, 227, 135, 63, 81, 58, 33, + 112, 63, 81, 58, 227, 131, 81, 58, 225, 106, 240, 141, 246, 170, 58, 225, + 106, 81, 58, 225, 106, 240, 134, 246, 170, 58, 112, 225, 106, 240, 141, + 246, 170, 58, 112, 225, 106, 81, 58, 112, 225, 106, 240, 134, 246, 170, + 58, 227, 79, 81, 58, 112, 225, 103, 81, 58, 228, 221, 81, 58, 112, 228, + 221, 81, 58, 228, 0, 81, 58, 152, 229, 248, 237, 98, 63, 233, 80, 230, + 162, 3, 63, 231, 193, 227, 146, 246, 157, 235, 61, 246, 157, 231, 228, + 42, 233, 232, 253, 170, 230, 163, 41, 233, 232, 253, 170, 230, 163, 145, + 2, 56, 235, 57, 235, 37, 235, 54, 232, 38, 235, 61, 233, 83, 232, 38, + 233, 104, 61, 252, 219, 2, 169, 82, 182, 232, 114, 63, 235, 41, 2, 235, + 112, 246, 164, 22, 2, 246, 164, 235, 44, 106, 235, 71, 233, 139, 203, 41, + 237, 79, 2, 246, 164, 240, 116, 42, 237, 79, 2, 246, 164, 42, 241, 57, + 240, 253, 41, 241, 57, 240, 253, 246, 162, 241, 57, 240, 253, 240, 185, + 99, 240, 149, 240, 185, 103, 240, 149, 42, 22, 41, 47, 230, 141, 42, 22, + 41, 240, 149, 42, 232, 0, 182, 41, 240, 149, 182, 42, 240, 149, 99, 246, + 215, 2, 237, 40, 46, 236, 143, 235, 119, 254, 205, 169, 245, 139, 63, + 227, 194, 233, 90, 63, 227, 194, 235, 41, 2, 117, 240, 216, 63, 227, 194, + 235, 41, 2, 81, 240, 216, 63, 37, 2, 117, 240, 216, 63, 37, 2, 81, 240, + 216, 12, 42, 63, 37, 104, 12, 41, 63, 37, 104, 12, 42, 240, 117, 104, 12, + 41, 240, 117, 104, 12, 42, 47, 240, 117, 104, 12, 41, 47, 240, 117, 104, + 12, 42, 63, 233, 89, 240, 158, 104, 12, 41, 63, 233, 89, 240, 158, 104, + 12, 42, 231, 230, 228, 180, 12, 41, 231, 230, 228, 180, 235, 18, 231, + 212, 58, 231, 191, 231, 212, 58, 227, 184, 237, 253, 237, 40, 58, 231, + 209, 237, 253, 237, 40, 58, 41, 67, 2, 33, 240, 180, 182, 117, 58, 182, + 81, 58, 182, 42, 41, 58, 182, 117, 47, 58, 182, 81, 47, 58, 182, 42, 41, + 47, 58, 182, 117, 67, 246, 172, 125, 182, 81, 67, 246, 172, 125, 182, + 117, 47, 67, 246, 172, 125, 182, 81, 47, 67, 246, 172, 125, 182, 81, 233, + 156, 58, 39, 40, 238, 126, 39, 40, 236, 54, 39, 40, 236, 55, 39, 40, 234, + 58, 39, 40, 236, 56, 39, 40, 234, 59, 39, 40, 234, 65, 39, 40, 232, 115, + 39, 40, 236, 57, 39, 40, 234, 60, 39, 40, 234, 66, 39, 40, 232, 116, 39, + 40, 234, 71, 39, 40, 232, 121, 39, 40, 232, 136, 39, 40, 230, 247, 39, + 40, 236, 58, 39, 40, 234, 61, 39, 40, 234, 67, 39, 40, 232, 117, 39, 40, + 234, 72, 39, 40, 232, 122, 39, 40, 232, 137, 39, 40, 230, 248, 39, 40, + 234, 76, 39, 40, 232, 126, 39, 40, 232, 141, 39, 40, 230, 252, 39, 40, + 232, 151, 39, 40, 231, 6, 39, 40, 231, 26, 39, 40, 229, 253, 39, 40, 236, + 59, 39, 40, 234, 62, 39, 40, 234, 68, 39, 40, 232, 118, 39, 40, 234, 73, + 39, 40, 232, 123, 39, 40, 232, 138, 39, 40, 230, 249, 39, 40, 234, 77, + 39, 40, 232, 127, 39, 40, 232, 142, 39, 40, 230, 253, 39, 40, 232, 152, + 39, 40, 231, 7, 39, 40, 231, 27, 39, 40, 229, 254, 39, 40, 234, 80, 39, + 40, 232, 130, 39, 40, 232, 145, 39, 40, 231, 0, 39, 40, 232, 155, 39, 40, + 231, 10, 39, 40, 231, 30, 39, 40, 230, 1, 39, 40, 232, 161, 39, 40, 231, + 16, 39, 40, 231, 36, 39, 40, 230, 7, 39, 40, 231, 46, 39, 40, 230, 17, + 39, 40, 230, 32, 39, 40, 228, 243, 39, 40, 236, 60, 39, 40, 234, 63, 39, + 40, 234, 69, 39, 40, 232, 119, 39, 40, 234, 74, 39, 40, 232, 124, 39, 40, + 232, 139, 39, 40, 230, 250, 39, 40, 234, 78, 39, 40, 232, 128, 39, 40, + 232, 143, 39, 40, 230, 254, 39, 40, 232, 153, 39, 40, 231, 8, 39, 40, + 231, 28, 39, 40, 229, 255, 39, 40, 234, 81, 39, 40, 232, 131, 39, 40, + 232, 146, 39, 40, 231, 1, 39, 40, 232, 156, 39, 40, 231, 11, 39, 40, 231, + 31, 39, 40, 230, 2, 39, 40, 232, 162, 39, 40, 231, 17, 39, 40, 231, 37, + 39, 40, 230, 8, 39, 40, 231, 47, 39, 40, 230, 18, 39, 40, 230, 33, 39, + 40, 228, 244, 39, 40, 234, 83, 39, 40, 232, 133, 39, 40, 232, 148, 39, + 40, 231, 3, 39, 40, 232, 158, 39, 40, 231, 13, 39, 40, 231, 33, 39, 40, + 230, 4, 39, 40, 232, 164, 39, 40, 231, 19, 39, 40, 231, 39, 39, 40, 230, + 10, 39, 40, 231, 49, 39, 40, 230, 20, 39, 40, 230, 35, 39, 40, 228, 246, + 39, 40, 232, 167, 39, 40, 231, 22, 39, 40, 231, 42, 39, 40, 230, 13, 39, + 40, 231, 52, 39, 40, 230, 23, 39, 40, 230, 38, 39, 40, 228, 249, 39, 40, + 231, 56, 39, 40, 230, 27, 39, 40, 230, 42, 39, 40, 228, 253, 39, 40, 230, + 47, 39, 40, 229, 2, 39, 40, 229, 8, 39, 40, 227, 231, 39, 40, 236, 61, + 39, 40, 234, 64, 39, 40, 234, 70, 39, 40, 232, 120, 39, 40, 234, 75, 39, + 40, 232, 125, 39, 40, 232, 140, 39, 40, 230, 251, 39, 40, 234, 79, 39, + 40, 232, 129, 39, 40, 232, 144, 39, 40, 230, 255, 39, 40, 232, 154, 39, + 40, 231, 9, 39, 40, 231, 29, 39, 40, 230, 0, 39, 40, 234, 82, 39, 40, + 232, 132, 39, 40, 232, 147, 39, 40, 231, 2, 39, 40, 232, 157, 39, 40, + 231, 12, 39, 40, 231, 32, 39, 40, 230, 3, 39, 40, 232, 163, 39, 40, 231, + 18, 39, 40, 231, 38, 39, 40, 230, 9, 39, 40, 231, 48, 39, 40, 230, 19, + 39, 40, 230, 34, 39, 40, 228, 245, 39, 40, 234, 84, 39, 40, 232, 134, 39, + 40, 232, 149, 39, 40, 231, 4, 39, 40, 232, 159, 39, 40, 231, 14, 39, 40, + 231, 34, 39, 40, 230, 5, 39, 40, 232, 165, 39, 40, 231, 20, 39, 40, 231, + 40, 39, 40, 230, 11, 39, 40, 231, 50, 39, 40, 230, 21, 39, 40, 230, 36, + 39, 40, 228, 247, 39, 40, 232, 168, 39, 40, 231, 23, 39, 40, 231, 43, 39, + 40, 230, 14, 39, 40, 231, 53, 39, 40, 230, 24, 39, 40, 230, 39, 39, 40, + 228, 250, 39, 40, 231, 57, 39, 40, 230, 28, 39, 40, 230, 43, 39, 40, 228, + 254, 39, 40, 230, 48, 39, 40, 229, 3, 39, 40, 229, 9, 39, 40, 227, 232, + 39, 40, 234, 85, 39, 40, 232, 135, 39, 40, 232, 150, 39, 40, 231, 5, 39, + 40, 232, 160, 39, 40, 231, 15, 39, 40, 231, 35, 39, 40, 230, 6, 39, 40, + 232, 166, 39, 40, 231, 21, 39, 40, 231, 41, 39, 40, 230, 12, 39, 40, 231, + 51, 39, 40, 230, 22, 39, 40, 230, 37, 39, 40, 228, 248, 39, 40, 232, 169, + 39, 40, 231, 24, 39, 40, 231, 44, 39, 40, 230, 15, 39, 40, 231, 54, 39, + 40, 230, 25, 39, 40, 230, 40, 39, 40, 228, 251, 39, 40, 231, 58, 39, 40, + 230, 29, 39, 40, 230, 44, 39, 40, 228, 255, 39, 40, 230, 49, 39, 40, 229, + 4, 39, 40, 229, 10, 39, 40, 227, 233, 39, 40, 232, 170, 39, 40, 231, 25, + 39, 40, 231, 45, 39, 40, 230, 16, 39, 40, 231, 55, 39, 40, 230, 26, 39, + 40, 230, 41, 39, 40, 228, 252, 39, 40, 231, 59, 39, 40, 230, 30, 39, 40, + 230, 45, 39, 40, 229, 0, 39, 40, 230, 50, 39, 40, 229, 5, 39, 40, 229, + 11, 39, 40, 227, 234, 39, 40, 231, 60, 39, 40, 230, 31, 39, 40, 230, 46, + 39, 40, 229, 1, 39, 40, 230, 51, 39, 40, 229, 6, 39, 40, 229, 12, 39, 40, + 227, 235, 39, 40, 230, 52, 39, 40, 229, 7, 39, 40, 229, 13, 39, 40, 227, + 236, 39, 40, 229, 14, 39, 40, 227, 237, 39, 40, 227, 238, 39, 40, 227, + 162, 81, 230, 132, 67, 2, 61, 82, 81, 230, 132, 67, 2, 47, 61, 82, 117, + 47, 67, 2, 61, 82, 81, 47, 67, 2, 61, 82, 42, 41, 47, 67, 2, 61, 82, 81, + 230, 132, 67, 246, 172, 125, 117, 47, 67, 246, 172, 125, 81, 47, 67, 246, + 172, 125, 231, 191, 67, 2, 169, 82, 235, 18, 67, 2, 169, 82, 235, 18, + 237, 49, 58, 231, 191, 237, 49, 58, 117, 47, 246, 187, 58, 81, 47, 246, + 187, 58, 117, 237, 49, 246, 187, 58, 81, 237, 49, 246, 187, 58, 81, 230, + 132, 237, 49, 246, 187, 58, 81, 67, 2, 237, 50, 240, 214, 235, 18, 67, + 180, 125, 231, 191, 67, 180, 125, 81, 67, 2, 246, 237, 2, 61, 82, 81, 67, + 2, 246, 237, 2, 47, 61, 82, 81, 230, 132, 67, 2, 240, 133, 81, 230, 132, + 67, 2, 246, 237, 2, 61, 82, 81, 230, 132, 67, 2, 246, 237, 2, 47, 61, 82, + 117, 229, 178, 81, 229, 178, 117, 47, 229, 178, 81, 47, 229, 178, 117, + 67, 180, 86, 233, 90, 81, 67, 180, 86, 233, 90, 117, 67, 246, 172, 252, + 219, 180, 86, 233, 90, 81, 67, 246, 172, 252, 219, 180, 86, 233, 90, 240, + 134, 246, 184, 22, 240, 141, 246, 170, 58, 240, 134, 246, 170, 22, 240, + 141, 246, 184, 58, 240, 134, 246, 184, 67, 2, 88, 240, 134, 246, 170, 67, + 2, 88, 240, 141, 246, 170, 67, 2, 88, 240, 141, 246, 184, 67, 2, 88, 240, + 134, 246, 184, 67, 22, 240, 134, 246, 170, 58, 240, 134, 246, 170, 67, + 22, 240, 141, 246, 170, 58, 240, 141, 246, 170, 67, 22, 240, 141, 246, + 184, 58, 240, 141, 246, 184, 67, 22, 240, 134, 246, 184, 58, 237, 115, + 233, 74, 233, 77, 235, 84, 231, 236, 235, 84, 233, 74, 233, 77, 237, 115, + 231, 236, 240, 141, 246, 170, 67, 233, 77, 240, 134, 246, 170, 58, 240, + 134, 246, 170, 67, 233, 77, 240, 141, 246, 170, 58, 235, 84, 233, 74, + 233, 77, 240, 134, 246, 170, 58, 237, 115, 233, 74, 233, 77, 240, 141, + 246, 170, 58, 240, 134, 246, 170, 67, 233, 77, 240, 134, 246, 184, 58, + 240, 134, 246, 184, 67, 233, 77, 240, 134, 246, 170, 58, 247, 23, 67, + 233, 78, 233, 201, 237, 41, 67, 233, 78, 81, 247, 107, 235, 89, 233, 139, + 67, 233, 78, 81, 247, 107, 235, 89, 230, 134, 67, 233, 78, 231, 191, 247, + 107, 235, 89, 230, 143, 67, 233, 78, 231, 191, 247, 107, 235, 89, 229, + 177, 231, 136, 253, 29, 231, 209, 58, 232, 219, 253, 29, 227, 184, 58, + 252, 228, 253, 29, 227, 184, 58, 237, 59, 253, 29, 227, 184, 58, 252, + 228, 253, 29, 231, 209, 67, 2, 237, 124, 252, 228, 253, 29, 227, 184, 67, + 2, 240, 180, 203, 41, 228, 206, 231, 209, 58, 203, 42, 228, 206, 227, + 184, 58, 227, 184, 237, 58, 237, 40, 58, 231, 209, 237, 58, 237, 40, 58, + 81, 67, 64, 240, 125, 117, 58, 117, 67, 64, 240, 125, 81, 58, 240, 125, + 81, 67, 64, 117, 58, 81, 67, 2, 79, 51, 117, 67, 2, 79, 51, 81, 67, 235, + 42, 254, 184, 42, 41, 67, 235, 42, 3, 235, 20, 235, 18, 230, 132, 67, + 246, 172, 3, 235, 20, 42, 171, 99, 41, 171, 103, 233, 105, 42, 171, 103, + 41, 171, 99, 233, 105, 99, 171, 41, 103, 171, 42, 233, 105, 99, 171, 42, + 103, 171, 41, 233, 105, 42, 171, 99, 41, 171, 99, 233, 105, 99, 171, 41, + 103, 171, 41, 233, 105, 42, 171, 103, 41, 171, 103, 233, 105, 99, 171, + 42, 103, 171, 42, 233, 105, 117, 235, 14, 2, 171, 99, 180, 125, 81, 235, + 14, 2, 171, 99, 180, 125, 235, 18, 235, 14, 2, 171, 41, 180, 125, 231, + 191, 235, 14, 2, 171, 41, 180, 125, 117, 235, 14, 2, 171, 103, 180, 125, + 81, 235, 14, 2, 171, 103, 180, 125, 235, 18, 235, 14, 2, 171, 42, 180, + 125, 231, 191, 235, 14, 2, 171, 42, 180, 125, 117, 235, 14, 2, 171, 99, + 246, 172, 125, 81, 235, 14, 2, 171, 99, 246, 172, 125, 235, 18, 235, 14, + 2, 171, 41, 246, 172, 125, 231, 191, 235, 14, 2, 171, 41, 246, 172, 125, + 117, 235, 14, 2, 171, 103, 246, 172, 125, 81, 235, 14, 2, 171, 103, 246, + 172, 125, 235, 18, 235, 14, 2, 171, 42, 246, 172, 125, 231, 191, 235, 14, + 2, 171, 42, 246, 172, 125, 117, 235, 14, 2, 171, 99, 64, 117, 235, 14, 2, + 171, 240, 152, 235, 18, 235, 14, 2, 171, 42, 237, 94, 235, 18, 235, 14, + 2, 171, 237, 41, 81, 235, 14, 2, 171, 99, 64, 81, 235, 14, 2, 171, 240, + 152, 231, 191, 235, 14, 2, 171, 42, 237, 94, 231, 191, 235, 14, 2, 171, + 237, 41, 117, 235, 14, 2, 171, 99, 64, 81, 235, 14, 2, 171, 253, 19, 117, + 235, 14, 2, 171, 103, 64, 81, 235, 14, 2, 171, 240, 152, 81, 235, 14, 2, + 171, 99, 64, 117, 235, 14, 2, 171, 253, 19, 81, 235, 14, 2, 171, 103, 64, + 117, 235, 14, 2, 171, 240, 152, 117, 235, 14, 2, 171, 99, 64, 182, 240, + 151, 117, 235, 14, 2, 171, 103, 240, 144, 182, 240, 151, 81, 235, 14, 2, + 171, 99, 64, 182, 240, 151, 81, 235, 14, 2, 171, 103, 240, 144, 182, 240, + 151, 235, 18, 235, 14, 2, 171, 42, 237, 94, 231, 191, 235, 14, 2, 171, + 237, 41, 231, 191, 235, 14, 2, 171, 42, 237, 94, 235, 18, 235, 14, 2, + 171, 237, 41, 41, 47, 67, 2, 235, 98, 240, 228, 237, 51, 5, 64, 81, 58, + 240, 128, 233, 118, 64, 81, 58, 117, 67, 64, 240, 128, 231, 192, 81, 67, + 64, 240, 128, 231, 192, 81, 67, 64, 237, 78, 105, 96, 231, 190, 64, 117, + 58, 117, 67, 235, 42, 230, 128, 228, 175, 64, 81, 58, 237, 76, 64, 81, + 58, 117, 67, 235, 42, 235, 61, 233, 83, 64, 117, 58, 42, 247, 76, 240, + 133, 41, 247, 76, 240, 133, 99, 247, 76, 240, 133, 103, 247, 76, 240, + 133, 237, 49, 61, 252, 219, 230, 163, 255, 56, 150, 245, 194, 255, 56, + 150, 247, 219, 237, 66, 42, 63, 240, 137, 104, 41, 63, 240, 137, 104, 42, + 63, 228, 180, 41, 63, 228, 180, 255, 56, 150, 42, 240, 190, 104, 255, 56, + 150, 41, 240, 190, 104, 255, 56, 150, 42, 235, 151, 104, 255, 56, 150, + 41, 235, 151, 104, 42, 37, 235, 22, 2, 231, 197, 41, 37, 235, 22, 2, 231, + 197, 42, 37, 235, 22, 2, 247, 108, 254, 198, 252, 228, 235, 40, 41, 37, + 235, 22, 2, 247, 108, 254, 198, 237, 59, 235, 40, 42, 37, 235, 22, 2, + 247, 108, 254, 198, 237, 59, 235, 40, 41, 37, 235, 22, 2, 247, 108, 254, + 198, 252, 228, 235, 40, 42, 240, 117, 235, 22, 2, 246, 164, 41, 240, 117, + 235, 22, 2, 246, 164, 42, 253, 29, 231, 190, 104, 41, 253, 29, 228, 175, + 104, 47, 42, 253, 29, 228, 175, 104, 47, 41, 253, 29, 231, 190, 104, 42, + 86, 233, 89, 240, 158, 104, 41, 86, 233, 89, 240, 158, 104, 237, 50, 237, + 155, 61, 237, 170, 240, 138, 233, 99, 240, 117, 235, 71, 240, 132, 41, + 240, 117, 235, 30, 2, 235, 27, 233, 99, 41, 240, 117, 2, 246, 164, 240, + 117, 2, 255, 59, 235, 57, 240, 159, 237, 98, 232, 7, 240, 117, 235, 71, + 240, 132, 232, 7, 240, 117, 235, 71, 253, 19, 209, 237, 98, 200, 237, 98, + 240, 117, 2, 231, 197, 200, 240, 117, 2, 231, 197, 235, 78, 240, 117, + 235, 71, 253, 19, 235, 78, 240, 117, 235, 71, 240, 152, 233, 99, 240, + 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, 233, 78, 99, 22, 237, + 41, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, 233, + 78, 99, 22, 240, 132, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, 119, + 254, 198, 67, 233, 78, 103, 22, 237, 41, 233, 99, 240, 117, 2, 246, 157, + 253, 84, 237, 119, 254, 198, 67, 233, 78, 103, 22, 240, 132, 233, 99, + 240, 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, 233, 78, 41, 22, + 253, 19, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, + 233, 78, 42, 22, 253, 19, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, + 119, 254, 198, 67, 233, 78, 41, 22, 240, 152, 233, 99, 240, 117, 2, 246, + 157, 253, 84, 237, 119, 254, 198, 67, 233, 78, 42, 22, 240, 152, 200, + 240, 195, 248, 155, 240, 195, 253, 133, 2, 233, 95, 240, 195, 253, 133, + 2, 3, 237, 40, 46, 240, 195, 253, 133, 2, 41, 67, 46, 240, 195, 253, 133, + 2, 42, 67, 46, 237, 40, 2, 169, 125, 33, 61, 125, 33, 232, 2, 33, 235, + 37, 233, 104, 33, 227, 146, 237, 40, 235, 119, 254, 205, 169, 252, 219, + 22, 252, 228, 132, 235, 119, 254, 205, 61, 125, 237, 40, 2, 229, 151, + 254, 184, 33, 222, 227, 233, 130, 53, 99, 67, 235, 42, 235, 20, 33, 63, + 235, 45, 33, 235, 45, 33, 230, 128, 33, 227, 183, 237, 40, 2, 3, 237, 40, + 180, 252, 230, 237, 41, 237, 40, 2, 135, 169, 236, 244, 180, 252, 230, + 237, 41, 235, 51, 237, 115, 233, 74, 237, 84, 235, 51, 235, 84, 233, 74, + 237, 84, 235, 51, 231, 198, 235, 51, 3, 235, 20, 235, 51, 235, 27, 135, + 237, 184, 234, 229, 233, 80, 2, 56, 46, 233, 80, 2, 231, 197, 255, 59, + 254, 198, 231, 193, 233, 80, 2, 238, 46, 254, 217, 235, 110, 41, 233, 80, + 64, 42, 231, 193, 42, 233, 80, 237, 94, 61, 125, 61, 252, 219, 237, 94, + 41, 231, 193, 237, 233, 2, 42, 132, 237, 45, 237, 233, 2, 41, 132, 237, + 45, 86, 235, 154, 24, 2, 42, 132, 237, 45, 24, 2, 41, 132, 237, 45, 63, + 230, 167, 86, 230, 167, 42, 237, 193, 237, 155, 41, 237, 193, 237, 155, + 42, 47, 237, 193, 237, 155, 41, 47, 237, 193, 237, 155, 231, 83, 231, + 252, 254, 159, 107, 231, 252, 234, 129, 235, 194, 2, 61, 125, 229, 15, + 232, 0, 37, 2, 232, 102, 234, 179, 232, 208, 254, 29, 236, 229, 233, 101, + 237, 51, 5, 22, 235, 29, 232, 2, 237, 51, 5, 22, 235, 29, 233, 132, 2, + 240, 128, 46, 231, 239, 180, 22, 235, 29, 232, 2, 238, 250, 240, 20, 227, + 181, 227, 189, 233, 80, 2, 42, 132, 237, 45, 227, 189, 233, 80, 2, 41, + 132, 237, 45, 86, 235, 41, 2, 103, 58, 86, 233, 123, 63, 237, 40, 2, 103, + 58, 86, 237, 40, 2, 103, 58, 228, 185, 63, 235, 27, 228, 185, 86, 235, + 27, 228, 185, 63, 233, 90, 228, 185, 86, 233, 90, 228, 185, 63, 235, 20, + 228, 185, 86, 235, 20, 228, 2, 235, 37, 235, 54, 231, 192, 235, 54, 2, + 233, 95, 235, 37, 235, 54, 2, 169, 82, 253, 47, 233, 104, 253, 47, 235, + 37, 233, 104, 47, 240, 180, 237, 49, 240, 180, 227, 185, 237, 153, 240, + 117, 104, 227, 133, 237, 153, 240, 117, 104, 245, 254, 244, 147, 240, + 154, 33, 56, 231, 192, 240, 154, 33, 79, 231, 192, 240, 154, 33, 24, 231, + 192, 240, 154, 240, 182, 233, 118, 2, 246, 164, 240, 154, 240, 182, 233, + 118, 2, 240, 180, 240, 154, 37, 228, 183, 231, 192, 240, 154, 37, 240, + 182, 231, 192, 135, 235, 26, 22, 231, 192, 135, 235, 26, 145, 231, 192, + 240, 154, 24, 231, 192, 239, 118, 135, 247, 21, 232, 10, 2, 231, 208, + 231, 212, 233, 98, 231, 192, 238, 220, 248, 128, 231, 208, 233, 98, 2, + 47, 82, 233, 98, 236, 2, 2, 237, 84, 229, 236, 232, 196, 227, 184, 229, + 31, 246, 167, 229, 184, 2, 229, 211, 248, 129, 237, 194, 241, 63, 246, + 167, 229, 184, 2, 228, 206, 248, 129, 237, 194, 241, 63, 246, 167, 229, + 184, 190, 232, 207, 252, 230, 241, 63, 233, 98, 237, 194, 102, 240, 143, + 231, 192, 231, 128, 233, 98, 231, 192, 233, 98, 2, 117, 67, 2, 88, 233, + 98, 2, 24, 53, 233, 98, 2, 227, 186, 233, 98, 2, 237, 117, 233, 98, 2, + 233, 95, 233, 98, 2, 231, 197, 240, 253, 240, 185, 42, 233, 80, 231, 192, + 255, 56, 150, 237, 212, 228, 212, 255, 56, 150, 237, 212, 236, 188, 255, + 56, 150, 237, 212, 230, 91, 79, 5, 2, 3, 237, 40, 46, 79, 5, 2, 230, 125, + 237, 48, 46, 79, 5, 2, 240, 128, 46, 79, 5, 2, 56, 51, 79, 5, 2, 240, + 128, 51, 79, 5, 2, 231, 195, 113, 79, 5, 2, 86, 231, 193, 240, 172, 5, 2, + 240, 162, 46, 240, 172, 5, 2, 56, 51, 240, 172, 5, 2, 235, 84, 240, 169, + 240, 172, 5, 2, 237, 115, 240, 169, 79, 5, 254, 198, 42, 132, 235, 20, + 79, 5, 254, 198, 41, 132, 235, 20, 240, 74, 145, 240, 221, 233, 101, 227, + 134, 5, 2, 56, 46, 227, 134, 5, 2, 231, 197, 230, 147, 236, 193, 2, 237, + 59, 236, 33, 241, 247, 233, 101, 227, 134, 5, 254, 198, 42, 132, 235, 20, + 227, 134, 5, 254, 198, 41, 132, 235, 20, 33, 227, 134, 5, 2, 230, 125, + 235, 24, 227, 134, 5, 254, 198, 47, 235, 20, 33, 233, 130, 53, 79, 5, + 254, 198, 231, 193, 240, 172, 5, 254, 198, 231, 193, 227, 134, 5, 254, + 198, 231, 193, 233, 209, 233, 101, 233, 14, 233, 209, 233, 101, 255, 56, + 150, 231, 132, 228, 212, 228, 224, 145, 230, 178, 228, 183, 2, 246, 164, + 240, 182, 2, 240, 172, 53, 240, 182, 2, 233, 95, 228, 183, 2, 233, 95, + 228, 183, 2, 235, 26, 246, 230, 240, 182, 2, 235, 26, 253, 81, 240, 182, + 64, 227, 186, 228, 183, 64, 237, 117, 240, 182, 64, 252, 219, 64, 227, + 186, 228, 183, 64, 252, 219, 64, 237, 117, 240, 182, 237, 94, 22, 237, + 184, 2, 237, 117, 228, 183, 237, 94, 22, 237, 184, 2, 227, 186, 237, 58, + 240, 182, 2, 235, 207, 237, 58, 228, 183, 2, 235, 207, 47, 37, 227, 186, + 47, 37, 237, 117, 237, 58, 240, 182, 2, 238, 46, 22, 241, 247, 233, 101, + 235, 26, 22, 2, 56, 46, 235, 26, 145, 2, 56, 46, 47, 235, 26, 246, 230, + 47, 235, 26, 253, 81, 135, 228, 214, 235, 26, 246, 230, 135, 228, 214, + 235, 26, 253, 81, 235, 211, 240, 185, 253, 81, 235, 211, 240, 185, 246, + 230, 235, 26, 145, 229, 205, 235, 26, 246, 230, 235, 26, 22, 2, 237, 44, + 240, 214, 235, 26, 145, 2, 237, 44, 240, 214, 235, 26, 22, 2, 169, 240, + 151, 235, 26, 145, 2, 169, 240, 151, 235, 26, 22, 2, 47, 233, 95, 235, + 26, 22, 2, 231, 197, 235, 26, 22, 2, 47, 231, 197, 3, 254, 167, 2, 231, + 197, 235, 26, 145, 2, 47, 233, 95, 235, 26, 145, 2, 47, 231, 197, 255, + 56, 150, 238, 189, 223, 57, 255, 56, 150, 245, 113, 223, 57, 237, 51, 5, + 2, 56, 51, 231, 239, 2, 56, 46, 237, 49, 169, 252, 219, 2, 47, 61, 82, + 237, 49, 169, 252, 219, 2, 237, 49, 61, 82, 240, 128, 233, 118, 2, 56, + 46, 240, 128, 233, 118, 2, 237, 115, 240, 169, 235, 59, 240, 172, 234, + 221, 232, 100, 2, 56, 46, 237, 51, 2, 231, 198, 237, 78, 105, 180, 2, + 230, 125, 235, 24, 227, 187, 105, 145, 105, 96, 237, 51, 5, 64, 79, 53, + 79, 5, 64, 237, 51, 53, 237, 51, 5, 64, 240, 128, 231, 192, 47, 240, 194, + 237, 81, 135, 229, 196, 237, 51, 238, 58, 152, 229, 196, 237, 51, 238, + 58, 237, 51, 5, 2, 135, 197, 64, 22, 135, 197, 51, 230, 130, 2, 246, 160, + 197, 46, 231, 190, 2, 237, 40, 235, 57, 228, 175, 2, 237, 40, 235, 57, + 231, 190, 2, 233, 82, 165, 46, 228, 175, 2, 233, 82, 165, 46, 231, 190, + 145, 235, 29, 105, 96, 228, 175, 145, 235, 29, 105, 96, 231, 190, 145, + 235, 29, 105, 180, 2, 56, 235, 57, 228, 175, 145, 235, 29, 105, 180, 2, + 56, 235, 57, 231, 190, 145, 235, 29, 105, 180, 2, 56, 46, 228, 175, 145, + 235, 29, 105, 180, 2, 56, 46, 231, 190, 145, 235, 29, 105, 180, 2, 56, + 64, 237, 41, 228, 175, 145, 235, 29, 105, 180, 2, 56, 64, 240, 132, 231, + 190, 145, 228, 188, 228, 175, 145, 228, 188, 231, 190, 22, 229, 175, 190, + 105, 96, 228, 175, 22, 229, 175, 190, 105, 96, 231, 190, 22, 190, 228, + 188, 228, 175, 22, 190, 228, 188, 231, 190, 64, 229, 170, 105, 64, 227, + 183, 228, 175, 64, 229, 170, 105, 64, 230, 128, 231, 190, 64, 235, 59, + 145, 237, 81, 228, 175, 64, 235, 59, 145, 237, 81, 231, 190, 64, 235, 59, + 64, 227, 183, 228, 175, 64, 235, 59, 64, 230, 128, 231, 190, 64, 228, + 175, 64, 229, 170, 237, 81, 228, 175, 64, 231, 190, 64, 229, 170, 237, + 81, 231, 190, 64, 235, 29, 105, 64, 228, 175, 64, 235, 29, 237, 81, 228, + 175, 64, 235, 29, 105, 64, 231, 190, 64, 235, 29, 237, 81, 235, 29, 105, + 180, 145, 230, 128, 235, 29, 105, 180, 145, 227, 183, 235, 29, 105, 180, + 145, 231, 190, 2, 56, 235, 57, 235, 29, 105, 180, 145, 228, 175, 2, 56, + 235, 57, 229, 170, 105, 180, 145, 230, 128, 229, 170, 105, 180, 145, 227, + 183, 229, 170, 235, 29, 105, 180, 145, 230, 128, 229, 170, 235, 29, 105, + 180, 145, 227, 183, 235, 59, 145, 230, 128, 235, 59, 145, 227, 183, 235, + 59, 64, 231, 190, 64, 237, 51, 53, 235, 59, 64, 228, 175, 64, 237, 51, + 53, 47, 237, 162, 230, 128, 47, 237, 162, 227, 183, 47, 237, 162, 231, + 190, 2, 231, 197, 228, 175, 229, 205, 230, 128, 228, 175, 237, 94, 230, + 128, 231, 190, 237, 58, 254, 205, 237, 236, 228, 175, 237, 58, 254, 205, + 237, 236, 231, 190, 237, 58, 254, 205, 241, 112, 64, 235, 29, 237, 81, + 228, 175, 237, 58, 254, 205, 241, 112, 64, 235, 29, 237, 81, 235, 212, + 241, 78, 238, 18, 241, 78, 235, 212, 247, 212, 145, 105, 96, 238, 18, + 247, 212, 145, 105, 96, 237, 51, 5, 2, 242, 219, 46, 233, 106, 64, 229, + 175, 237, 51, 53, 233, 107, 64, 229, 175, 237, 51, 53, 233, 106, 64, 229, + 175, 190, 105, 96, 233, 107, 64, 229, 175, 190, 105, 96, 233, 106, 64, + 237, 51, 53, 233, 107, 64, 237, 51, 53, 233, 106, 64, 190, 105, 96, 233, + 107, 64, 190, 105, 96, 233, 106, 64, 237, 78, 105, 96, 233, 107, 64, 237, + 78, 105, 96, 233, 106, 64, 190, 237, 78, 105, 96, 233, 107, 64, 190, 237, + 78, 105, 96, 47, 232, 4, 47, 232, 9, 237, 76, 2, 246, 164, 233, 83, 2, + 246, 164, 237, 76, 2, 79, 5, 51, 233, 83, 2, 79, 5, 51, 237, 76, 2, 227, + 134, 5, 51, 233, 83, 2, 227, 134, 5, 51, 237, 76, 106, 145, 105, 180, 2, + 56, 46, 233, 83, 106, 145, 105, 180, 2, 56, 46, 237, 76, 106, 64, 237, + 51, 53, 233, 83, 106, 64, 237, 51, 53, 237, 76, 106, 64, 240, 128, 231, + 192, 233, 83, 106, 64, 240, 128, 231, 192, 237, 76, 106, 64, 237, 78, + 105, 96, 233, 83, 106, 64, 237, 78, 105, 96, 237, 76, 106, 64, 190, 105, + 96, 233, 83, 106, 64, 190, 105, 96, 37, 42, 246, 157, 77, 231, 192, 37, + 41, 246, 157, 77, 231, 192, 237, 58, 235, 61, 237, 58, 231, 228, 237, 58, + 237, 76, 145, 105, 96, 237, 58, 233, 83, 145, 105, 96, 237, 76, 64, 231, + 228, 233, 83, 64, 235, 61, 237, 76, 64, 235, 61, 233, 83, 64, 231, 228, + 233, 83, 237, 94, 235, 61, 233, 83, 237, 94, 22, 237, 184, 254, 205, 246, + 187, 2, 235, 61, 235, 44, 106, 235, 71, 230, 134, 232, 250, 2, 254, 157, + 247, 214, 230, 120, 227, 186, 234, 106, 230, 83, 240, 125, 42, 240, 149, + 240, 125, 103, 240, 149, 240, 125, 99, 240, 149, 228, 1, 2, 193, 61, 252, + 219, 237, 49, 41, 230, 141, 47, 61, 252, 219, 42, 230, 141, 61, 252, 219, + 47, 42, 230, 141, 47, 61, 252, 219, 47, 42, 230, 141, 182, 246, 187, 246, + 172, 42, 239, 103, 106, 47, 231, 210, 240, 125, 103, 246, 215, 2, 233, + 95, 240, 125, 99, 246, 215, 2, 231, 197, 240, 125, 99, 246, 215, 64, 240, + 125, 103, 240, 149, 47, 103, 240, 149, 47, 99, 240, 149, 47, 195, 190, + 53, 200, 47, 195, 190, 53, 246, 218, 190, 238, 188, 2, 200, 234, 166, + 237, 84, 61, 246, 167, 2, 237, 40, 46, 61, 246, 167, 2, 237, 40, 51, 103, + 246, 215, 2, 237, 40, 51, 233, 132, 2, 169, 82, 233, 132, 2, 240, 128, + 231, 192, 237, 49, 61, 252, 219, 237, 231, 231, 244, 237, 49, 61, 252, + 219, 2, 169, 82, 237, 49, 240, 194, 231, 192, 237, 49, 237, 162, 230, + 128, 237, 49, 237, 162, 227, 183, 229, 170, 235, 29, 231, 190, 145, 105, + 96, 229, 170, 235, 29, 228, 175, 145, 105, 96, 237, 49, 235, 54, 237, + 231, 231, 244, 240, 185, 237, 49, 61, 252, 219, 231, 192, 47, 235, 54, + 231, 192, 63, 61, 125, 240, 154, 63, 61, 125, 240, 134, 246, 170, 63, 58, + 240, 134, 246, 184, 63, 58, 240, 141, 246, 170, 63, 58, 240, 141, 246, + 184, 63, 58, 42, 41, 63, 58, 117, 86, 58, 235, 18, 86, 58, 231, 191, 86, + 58, 240, 134, 246, 170, 86, 58, 240, 134, 246, 184, 86, 58, 240, 141, + 246, 170, 86, 58, 240, 141, 246, 184, 86, 58, 42, 41, 86, 58, 99, 103, + 86, 58, 81, 67, 2, 253, 93, 230, 134, 81, 67, 2, 253, 93, 233, 139, 117, + 67, 2, 253, 93, 230, 134, 117, 67, 2, 253, 93, 233, 139, 37, 2, 252, 228, + 132, 237, 45, 37, 2, 237, 59, 132, 237, 45, 37, 2, 240, 116, 41, 233, 74, + 132, 237, 45, 37, 2, 203, 42, 233, 74, 132, 237, 45, 235, 41, 2, 42, 132, + 237, 45, 235, 41, 2, 41, 132, 237, 45, 235, 41, 2, 252, 228, 132, 237, + 45, 235, 41, 2, 237, 59, 132, 237, 45, 237, 50, 235, 27, 86, 240, 185, + 235, 27, 63, 240, 185, 235, 27, 86, 247, 114, 3, 235, 27, 63, 247, 114, + 3, 235, 27, 86, 231, 243, 63, 231, 243, 63, 233, 167, 86, 233, 167, 169, + 86, 233, 167, 86, 240, 185, 235, 20, 86, 237, 60, 233, 90, 63, 237, 60, + 233, 90, 86, 237, 60, 233, 123, 63, 237, 60, 233, 123, 86, 3, 233, 90, + 86, 3, 233, 123, 63, 3, 233, 123, 86, 169, 233, 149, 63, 169, 233, 149, + 86, 61, 233, 149, 63, 61, 233, 149, 42, 67, 2, 3, 235, 20, 152, 117, 235, + 73, 42, 67, 2, 33, 240, 180, 182, 117, 233, 156, 58, 117, 230, 132, 67, + 2, 61, 82, 117, 230, 132, 67, 2, 47, 61, 82, 117, 230, 132, 67, 246, 172, + 125, 117, 230, 132, 237, 49, 246, 187, 58, 117, 67, 2, 237, 50, 240, 214, + 117, 67, 2, 246, 237, 2, 61, 82, 117, 67, 2, 246, 237, 2, 47, 61, 82, + 117, 230, 132, 67, 2, 240, 133, 117, 230, 132, 67, 2, 246, 237, 2, 61, + 82, 117, 230, 132, 67, 2, 246, 237, 2, 47, 61, 82, 117, 67, 235, 42, 254, + 184, 247, 23, 67, 233, 78, 233, 201, 240, 132, 237, 51, 5, 64, 117, 58, + 235, 37, 240, 128, 233, 118, 64, 117, 58, 117, 67, 64, 235, 37, 237, 78, + 105, 96, 81, 67, 235, 42, 227, 183, 81, 67, 235, 42, 231, 228, 117, 231, + 212, 58, 81, 231, 212, 58, 235, 37, 240, 128, 233, 118, 64, 81, 58, 81, + 67, 64, 235, 37, 237, 78, 105, 96, 240, 128, 233, 118, 64, 117, 58, 117, + 67, 64, 237, 78, 105, 96, 117, 67, 64, 235, 37, 240, 128, 231, 192, 81, + 67, 64, 235, 37, 240, 128, 231, 192, 63, 237, 60, 240, 139, 86, 3, 240, + 139, 63, 3, 240, 139, 86, 227, 133, 231, 243, 63, 227, 133, 231, 243, + 115, 6, 1, 247, 246, 115, 6, 1, 241, 106, 115, 6, 1, 242, 17, 115, 6, 1, + 233, 207, 115, 6, 1, 237, 243, 115, 6, 1, 238, 82, 115, 6, 1, 233, 250, + 115, 6, 1, 237, 180, 115, 6, 1, 235, 235, 115, 6, 1, 240, 252, 115, 6, 1, + 59, 240, 252, 115, 6, 1, 74, 115, 6, 1, 235, 165, 115, 6, 1, 241, 170, + 115, 6, 1, 233, 216, 115, 6, 1, 233, 153, 115, 6, 1, 238, 27, 115, 6, 1, + 248, 125, 115, 6, 1, 235, 204, 115, 6, 1, 238, 42, 115, 6, 1, 238, 63, + 115, 6, 1, 235, 229, 115, 6, 1, 248, 187, 115, 6, 1, 237, 252, 115, 6, 1, + 241, 154, 115, 6, 1, 248, 126, 115, 6, 1, 253, 0, 115, 6, 1, 241, 241, + 115, 6, 1, 247, 58, 115, 6, 1, 235, 158, 115, 6, 1, 246, 165, 115, 6, 1, + 241, 24, 115, 6, 1, 242, 30, 115, 6, 1, 242, 29, 115, 6, 1, 235, 216, + 154, 115, 6, 1, 252, 233, 115, 6, 1, 3, 246, 183, 115, 6, 1, 3, 254, 21, + 2, 240, 133, 115, 6, 1, 252, 251, 115, 6, 1, 235, 95, 3, 246, 183, 115, + 6, 1, 253, 47, 246, 183, 115, 6, 1, 235, 95, 253, 47, 246, 183, 115, 6, + 1, 240, 226, 115, 6, 1, 233, 151, 115, 6, 1, 233, 237, 115, 6, 1, 230, + 218, 57, 115, 6, 1, 233, 214, 233, 153, 115, 3, 1, 247, 246, 115, 3, 1, + 241, 106, 115, 3, 1, 242, 17, 115, 3, 1, 233, 207, 115, 3, 1, 237, 243, + 115, 3, 1, 238, 82, 115, 3, 1, 233, 250, 115, 3, 1, 237, 180, 115, 3, 1, + 235, 235, 115, 3, 1, 240, 252, 115, 3, 1, 59, 240, 252, 115, 3, 1, 74, + 115, 3, 1, 235, 165, 115, 3, 1, 241, 170, 115, 3, 1, 233, 216, 115, 3, 1, + 233, 153, 115, 3, 1, 238, 27, 115, 3, 1, 248, 125, 115, 3, 1, 235, 204, + 115, 3, 1, 238, 42, 115, 3, 1, 238, 63, 115, 3, 1, 235, 229, 115, 3, 1, + 248, 187, 115, 3, 1, 237, 252, 115, 3, 1, 241, 154, 115, 3, 1, 248, 126, + 115, 3, 1, 253, 0, 115, 3, 1, 241, 241, 115, 3, 1, 247, 58, 115, 3, 1, + 235, 158, 115, 3, 1, 246, 165, 115, 3, 1, 241, 24, 115, 3, 1, 242, 30, + 115, 3, 1, 242, 29, 115, 3, 1, 235, 216, 154, 115, 3, 1, 252, 233, 115, + 3, 1, 3, 246, 183, 115, 3, 1, 3, 254, 21, 2, 240, 133, 115, 3, 1, 252, + 251, 115, 3, 1, 235, 95, 3, 246, 183, 115, 3, 1, 253, 47, 246, 183, 115, + 3, 1, 235, 95, 253, 47, 246, 183, 115, 3, 1, 240, 226, 115, 3, 1, 233, + 151, 115, 3, 1, 233, 237, 115, 3, 1, 230, 218, 57, 115, 3, 1, 233, 214, + 233, 153, 7, 6, 1, 255, 58, 2, 47, 125, 7, 3, 1, 255, 58, 2, 47, 125, 7, + 6, 1, 255, 58, 2, 237, 44, 205, 7, 6, 1, 255, 70, 2, 82, 7, 6, 1, 255, + 57, 2, 240, 133, 7, 3, 1, 102, 2, 82, 7, 3, 1, 255, 61, 2, 233, 74, 82, + 7, 6, 1, 255, 66, 2, 230, 126, 7, 3, 1, 255, 66, 2, 230, 126, 7, 6, 1, + 255, 67, 2, 230, 126, 7, 3, 1, 255, 67, 2, 230, 126, 7, 6, 1, 255, 56, 2, + 230, 126, 7, 3, 1, 255, 56, 2, 230, 126, 7, 6, 1, 237, 71, 7, 6, 1, 255, + 68, 2, 88, 7, 6, 1, 209, 57, 7, 3, 1, 255, 69, 2, 41, 88, 7, 6, 1, 255, + 71, 2, 88, 7, 3, 1, 255, 71, 2, 88, 7, 3, 1, 255, 69, 2, 240, 168, 7, 6, + 1, 132, 212, 7, 3, 1, 132, 212, 7, 3, 1, 234, 238, 246, 198, 7, 3, 1, + 161, 2, 238, 28, 7, 3, 1, 209, 255, 57, 2, 240, 133, 7, 3, 1, 130, 2, + 184, 246, 174, 235, 57, 7, 1, 3, 6, 209, 72, 7, 231, 195, 3, 1, 254, 192, + 52, 1, 6, 196, 70, 6, 1, 241, 93, 70, 3, 1, 241, 93, 70, 6, 1, 242, 20, + 70, 3, 1, 242, 20, 70, 6, 1, 237, 61, 70, 3, 1, 237, 61, 70, 6, 1, 237, + 237, 70, 3, 1, 237, 237, 70, 6, 1, 247, 73, 70, 3, 1, 247, 73, 70, 6, 1, + 248, 165, 70, 3, 1, 248, 165, 70, 6, 1, 242, 37, 70, 3, 1, 242, 37, 70, + 6, 1, 241, 150, 70, 3, 1, 241, 150, 70, 6, 1, 235, 223, 70, 3, 1, 235, + 223, 70, 6, 1, 238, 11, 70, 3, 1, 238, 11, 70, 6, 1, 240, 255, 70, 3, 1, + 240, 255, 70, 6, 1, 238, 19, 70, 3, 1, 238, 19, 70, 6, 1, 252, 239, 70, + 3, 1, 252, 239, 70, 6, 1, 252, 248, 70, 3, 1, 252, 248, 70, 6, 1, 247, + 83, 70, 3, 1, 247, 83, 70, 6, 1, 73, 70, 3, 1, 73, 70, 6, 1, 252, 223, + 70, 3, 1, 252, 223, 70, 6, 1, 252, 246, 70, 3, 1, 252, 246, 70, 6, 1, + 241, 74, 70, 3, 1, 241, 74, 70, 6, 1, 246, 212, 70, 3, 1, 246, 212, 70, + 6, 1, 253, 197, 70, 3, 1, 253, 197, 70, 6, 1, 253, 88, 70, 3, 1, 253, 88, + 70, 6, 1, 247, 157, 70, 3, 1, 247, 157, 70, 6, 1, 246, 204, 70, 3, 1, + 246, 204, 70, 6, 1, 247, 98, 70, 3, 1, 247, 98, 70, 6, 1, 231, 216, 240, + 174, 70, 3, 1, 231, 216, 240, 174, 70, 6, 1, 84, 70, 246, 224, 70, 3, 1, + 84, 70, 246, 224, 70, 6, 1, 227, 191, 247, 73, 70, 3, 1, 227, 191, 247, + 73, 70, 6, 1, 231, 216, 240, 255, 70, 3, 1, 231, 216, 240, 255, 70, 6, 1, + 231, 216, 252, 248, 70, 3, 1, 231, 216, 252, 248, 70, 6, 1, 227, 191, + 252, 248, 70, 3, 1, 227, 191, 252, 248, 70, 6, 1, 84, 70, 247, 98, 70, 3, + 1, 84, 70, 247, 98, 70, 6, 1, 237, 143, 70, 3, 1, 237, 143, 70, 6, 1, + 235, 117, 240, 212, 70, 3, 1, 235, 117, 240, 212, 70, 6, 1, 84, 70, 240, + 212, 70, 3, 1, 84, 70, 240, 212, 70, 6, 1, 84, 70, 246, 232, 70, 3, 1, + 84, 70, 246, 232, 70, 6, 1, 233, 184, 241, 1, 70, 3, 1, 233, 184, 241, 1, + 70, 6, 1, 231, 216, 240, 209, 70, 3, 1, 231, 216, 240, 209, 70, 6, 1, 84, + 70, 240, 209, 70, 3, 1, 84, 70, 240, 209, 70, 6, 1, 84, 70, 154, 70, 3, + 1, 84, 70, 154, 70, 6, 1, 233, 213, 154, 70, 3, 1, 233, 213, 154, 70, 6, + 1, 84, 70, 248, 59, 70, 3, 1, 84, 70, 248, 59, 70, 6, 1, 84, 70, 247, + 147, 70, 3, 1, 84, 70, 247, 147, 70, 6, 1, 84, 70, 235, 93, 70, 3, 1, 84, + 70, 235, 93, 70, 6, 1, 84, 70, 248, 29, 70, 3, 1, 84, 70, 248, 29, 70, 6, + 1, 84, 70, 237, 146, 70, 3, 1, 84, 70, 237, 146, 70, 6, 1, 84, 237, 92, + 237, 146, 70, 3, 1, 84, 237, 92, 237, 146, 70, 6, 1, 84, 237, 92, 247, + 182, 70, 3, 1, 84, 237, 92, 247, 182, 70, 6, 1, 84, 237, 92, 247, 44, 70, + 3, 1, 84, 237, 92, 247, 44, 70, 6, 1, 84, 237, 92, 247, 225, 70, 3, 1, + 84, 237, 92, 247, 225, 70, 14, 248, 78, 70, 14, 255, 11, 252, 246, 70, + 14, 254, 200, 252, 246, 70, 14, 234, 230, 70, 14, 254, 155, 252, 246, 70, + 14, 254, 80, 252, 246, 70, 14, 245, 167, 241, 74, 70, 84, 237, 92, 246, + 162, 240, 121, 70, 84, 237, 92, 237, 242, 233, 82, 76, 70, 84, 237, 92, + 234, 128, 233, 82, 76, 70, 84, 237, 92, 242, 19, 233, 140, 70, 233, 76, + 168, 240, 170, 70, 246, 162, 240, 121, 70, 227, 255, 233, 140, 87, 3, 1, + 253, 5, 87, 3, 1, 247, 121, 87, 3, 1, 247, 32, 87, 3, 1, 247, 131, 87, 3, + 1, 252, 232, 87, 3, 1, 247, 222, 87, 3, 1, 247, 237, 87, 3, 1, 247, 209, + 87, 3, 1, 253, 79, 87, 3, 1, 247, 39, 87, 3, 1, 247, 167, 87, 3, 1, 247, + 4, 87, 3, 1, 247, 92, 87, 3, 1, 253, 106, 87, 3, 1, 247, 187, 87, 3, 1, + 241, 90, 87, 3, 1, 247, 194, 87, 3, 1, 247, 49, 87, 3, 1, 247, 56, 87, 3, + 1, 253, 121, 87, 3, 1, 241, 61, 87, 3, 1, 241, 46, 87, 3, 1, 241, 39, 87, + 3, 1, 247, 193, 87, 3, 1, 240, 203, 87, 3, 1, 241, 32, 87, 3, 1, 246, + 241, 87, 3, 1, 247, 153, 87, 3, 1, 247, 125, 87, 3, 1, 241, 31, 87, 3, 1, + 247, 228, 87, 3, 1, 241, 44, 87, 3, 1, 247, 145, 87, 3, 1, 252, 252, 87, + 3, 1, 247, 81, 87, 3, 1, 252, 250, 87, 3, 1, 247, 146, 87, 3, 1, 247, + 150, 221, 1, 191, 221, 1, 252, 134, 221, 1, 246, 75, 221, 1, 252, 137, + 221, 1, 240, 94, 221, 1, 237, 230, 235, 143, 248, 196, 221, 1, 248, 196, + 221, 1, 252, 135, 221, 1, 246, 78, 221, 1, 246, 77, 221, 1, 240, 93, 221, + 1, 252, 148, 221, 1, 252, 136, 221, 1, 247, 231, 221, 1, 237, 122, 247, + 231, 221, 1, 240, 95, 221, 1, 247, 230, 221, 1, 237, 230, 235, 143, 247, + 230, 221, 1, 237, 122, 247, 230, 221, 1, 246, 80, 221, 1, 247, 117, 221, + 1, 242, 28, 221, 1, 237, 122, 242, 28, 221, 1, 248, 198, 221, 1, 237, + 122, 248, 198, 221, 1, 253, 28, 221, 1, 241, 86, 221, 1, 235, 240, 241, + 86, 221, 1, 237, 122, 241, 86, 221, 1, 252, 138, 221, 1, 252, 139, 221, + 1, 248, 197, 221, 1, 237, 122, 246, 79, 221, 1, 237, 122, 240, 242, 221, + 1, 252, 140, 221, 1, 252, 233, 221, 1, 252, 141, 221, 1, 246, 81, 221, 1, + 241, 85, 221, 1, 237, 122, 241, 85, 221, 1, 248, 243, 241, 85, 221, 1, + 252, 142, 221, 1, 246, 83, 221, 1, 246, 82, 221, 1, 247, 25, 221, 1, 246, + 84, 221, 1, 246, 76, 221, 1, 246, 85, 221, 1, 252, 143, 221, 1, 252, 144, + 221, 1, 252, 145, 221, 1, 248, 199, 221, 1, 231, 176, 248, 199, 221, 1, + 246, 86, 221, 52, 1, 227, 249, 76, 25, 4, 250, 227, 25, 4, 251, 21, 25, + 4, 251, 187, 25, 4, 251, 230, 25, 4, 245, 170, 25, 4, 249, 125, 25, 4, + 252, 26, 25, 4, 249, 162, 25, 4, 251, 69, 25, 4, 245, 25, 25, 4, 235, 31, + 253, 253, 25, 4, 252, 184, 25, 4, 249, 202, 25, 4, 243, 43, 25, 4, 250, + 136, 25, 4, 245, 246, 25, 4, 242, 251, 25, 4, 245, 70, 25, 4, 251, 113, + 25, 4, 243, 140, 25, 4, 243, 142, 25, 4, 238, 245, 25, 4, 243, 141, 25, + 4, 246, 190, 25, 4, 247, 204, 25, 4, 247, 202, 25, 4, 245, 196, 25, 4, + 245, 200, 25, 4, 248, 166, 25, 4, 247, 203, 25, 4, 249, 146, 25, 4, 249, + 150, 25, 4, 249, 148, 25, 4, 242, 236, 25, 4, 242, 237, 25, 4, 249, 147, + 25, 4, 249, 149, 25, 4, 248, 214, 25, 4, 248, 218, 25, 4, 248, 216, 25, + 4, 246, 136, 25, 4, 246, 140, 25, 4, 248, 215, 25, 4, 248, 217, 25, 4, + 242, 238, 25, 4, 242, 241, 25, 4, 242, 239, 25, 4, 238, 139, 25, 4, 238, + 140, 25, 4, 241, 30, 25, 4, 242, 240, 25, 4, 251, 157, 25, 4, 251, 164, + 25, 4, 251, 159, 25, 4, 245, 108, 25, 4, 245, 109, 25, 4, 251, 158, 25, + 4, 251, 160, 25, 4, 250, 199, 25, 4, 250, 203, 25, 4, 250, 201, 25, 4, + 244, 81, 25, 4, 244, 82, 25, 4, 250, 200, 25, 4, 250, 202, 25, 4, 252, + 125, 25, 4, 252, 132, 25, 4, 252, 127, 25, 4, 246, 70, 25, 4, 246, 71, + 25, 4, 252, 126, 25, 4, 252, 128, 25, 4, 250, 53, 25, 4, 250, 58, 25, 4, + 250, 56, 25, 4, 243, 165, 25, 4, 243, 166, 25, 4, 250, 54, 25, 4, 250, + 57, 36, 28, 1, 253, 73, 36, 28, 1, 253, 95, 36, 28, 1, 247, 13, 36, 28, + 1, 253, 20, 36, 28, 1, 246, 251, 36, 28, 1, 253, 46, 36, 28, 1, 177, 36, + 28, 1, 253, 58, 36, 28, 1, 253, 87, 36, 28, 1, 252, 232, 36, 28, 1, 73, + 36, 28, 1, 253, 0, 36, 28, 1, 253, 99, 36, 28, 1, 253, 116, 36, 28, 1, + 253, 9, 36, 28, 1, 154, 36, 28, 1, 246, 248, 36, 28, 1, 246, 217, 36, 28, + 1, 246, 165, 36, 28, 1, 237, 215, 36, 28, 1, 240, 226, 36, 28, 1, 238, + 206, 36, 28, 1, 57, 36, 28, 1, 253, 77, 36, 28, 1, 237, 201, 36, 28, 1, + 231, 254, 253, 137, 36, 28, 1, 247, 25, 36, 28, 1, 252, 233, 36, 28, 1, + 233, 93, 57, 36, 28, 1, 237, 102, 246, 183, 36, 28, 1, 253, 47, 246, 183, + 36, 28, 1, 233, 93, 253, 47, 246, 183, 41, 240, 117, 228, 186, 235, 70, + 41, 240, 117, 237, 50, 228, 186, 235, 70, 42, 228, 186, 104, 41, 228, + 186, 104, 42, 237, 50, 228, 186, 104, 41, 237, 50, 228, 186, 104, 237, + 105, 227, 206, 235, 70, 237, 105, 237, 50, 227, 206, 235, 70, 237, 50, + 227, 199, 235, 70, 42, 227, 199, 104, 41, 227, 199, 104, 237, 105, 235, + 27, 42, 237, 105, 233, 223, 104, 41, 237, 105, 233, 223, 104, 232, 177, + 234, 36, 228, 203, 237, 251, 228, 203, 200, 237, 251, 228, 203, 227, 243, + 237, 50, 236, 172, 231, 191, 235, 146, 235, 18, 235, 146, 237, 50, 227, + 133, 237, 98, 47, 235, 78, 235, 69, 233, 70, 228, 213, 251, 102, 235, + 155, 238, 10, 2, 219, 240, 128, 2, 246, 174, 46, 42, 184, 230, 192, 104, + 41, 184, 230, 192, 104, 240, 128, 2, 56, 46, 240, 128, 2, 56, 51, 42, 61, + 252, 219, 2, 237, 190, 41, 61, 252, 219, 2, 237, 190, 252, 228, 42, 132, + 104, 252, 228, 41, 132, 104, 237, 59, 42, 132, 104, 237, 59, 41, 132, + 104, 42, 233, 116, 97, 104, 41, 233, 116, 97, 104, 42, 47, 228, 180, 41, + 47, 228, 180, 135, 197, 107, 168, 56, 228, 182, 168, 56, 107, 135, 197, + 228, 182, 235, 51, 246, 160, 56, 228, 182, 246, 159, 56, 76, 200, 233, + 82, 76, 61, 205, 246, 174, 237, 209, 9, 29, 236, 200, 9, 29, 237, 198, 9, + 29, 237, 145, 118, 9, 29, 237, 145, 113, 9, 29, 237, 145, 166, 9, 29, + 236, 186, 9, 29, 246, 231, 9, 29, 238, 70, 9, 29, 241, 174, 118, 9, 29, + 241, 174, 113, 9, 29, 229, 197, 9, 29, 241, 232, 9, 29, 3, 118, 9, 29, 3, + 113, 9, 29, 247, 85, 118, 9, 29, 247, 85, 113, 9, 29, 247, 85, 166, 9, + 29, 247, 85, 158, 9, 29, 240, 7, 9, 29, 235, 225, 9, 29, 241, 248, 118, + 9, 29, 241, 248, 113, 9, 29, 240, 196, 118, 9, 29, 240, 196, 113, 9, 29, + 240, 251, 9, 29, 247, 196, 9, 29, 238, 149, 9, 29, 247, 54, 9, 29, 240, + 211, 9, 29, 237, 240, 9, 29, 236, 159, 9, 29, 232, 97, 9, 29, 242, 23, + 118, 9, 29, 242, 23, 113, 9, 29, 240, 207, 9, 29, 254, 2, 118, 9, 29, + 254, 2, 113, 9, 29, 230, 149, 132, 248, 180, 238, 76, 9, 29, 247, 127, 9, + 29, 248, 31, 9, 29, 241, 163, 9, 29, 247, 255, 106, 237, 199, 9, 29, 248, + 36, 9, 29, 238, 65, 118, 9, 29, 238, 65, 113, 9, 29, 235, 109, 9, 29, + 241, 73, 9, 29, 228, 181, 241, 73, 9, 29, 253, 154, 118, 9, 29, 253, 154, + 113, 9, 29, 253, 154, 166, 9, 29, 253, 154, 158, 9, 29, 244, 121, 9, 29, + 238, 50, 9, 29, 247, 195, 9, 29, 248, 35, 9, 29, 248, 123, 9, 29, 241, + 105, 118, 9, 29, 241, 105, 113, 9, 29, 241, 189, 9, 29, 235, 192, 9, 29, + 241, 41, 118, 9, 29, 241, 41, 113, 9, 29, 241, 41, 166, 9, 29, 238, 74, + 9, 29, 233, 194, 9, 29, 246, 184, 118, 9, 29, 246, 184, 113, 9, 29, 228, + 181, 247, 50, 9, 29, 230, 149, 240, 179, 9, 29, 240, 179, 9, 29, 228, + 181, 235, 215, 9, 29, 228, 181, 238, 52, 9, 29, 241, 38, 9, 29, 228, 181, + 241, 108, 9, 29, 230, 149, 242, 21, 9, 29, 247, 224, 118, 9, 29, 247, + 224, 113, 9, 29, 241, 110, 9, 29, 228, 181, 241, 40, 9, 29, 182, 118, 9, + 29, 182, 113, 9, 29, 228, 181, 241, 4, 9, 29, 228, 181, 241, 137, 9, 29, + 241, 195, 118, 9, 29, 241, 195, 113, 9, 29, 241, 219, 9, 29, 241, 102, 9, + 29, 228, 181, 238, 71, 233, 171, 9, 29, 228, 181, 241, 179, 9, 29, 228, + 181, 240, 199, 9, 29, 228, 181, 248, 38, 9, 29, 253, 175, 118, 9, 29, + 253, 175, 113, 9, 29, 253, 175, 166, 9, 29, 228, 181, 247, 136, 9, 29, + 240, 228, 9, 29, 228, 181, 238, 8, 9, 29, 241, 103, 9, 29, 238, 0, 9, 29, + 228, 181, 241, 130, 9, 29, 228, 181, 241, 27, 9, 29, 228, 181, 241, 231, + 9, 29, 230, 149, 237, 224, 9, 29, 230, 149, 235, 232, 9, 29, 228, 181, + 241, 134, 9, 29, 228, 191, 241, 37, 9, 29, 228, 181, 241, 37, 9, 29, 228, + 191, 237, 221, 9, 29, 228, 181, 237, 221, 9, 29, 228, 191, 235, 74, 9, + 29, 228, 181, 235, 74, 9, 29, 235, 105, 9, 29, 228, 191, 235, 105, 9, 29, + 228, 181, 235, 105, 49, 29, 118, 49, 29, 240, 138, 49, 29, 246, 164, 49, + 29, 237, 84, 49, 29, 236, 213, 49, 29, 88, 49, 29, 113, 49, 29, 248, 92, + 49, 29, 247, 4, 49, 29, 244, 93, 49, 29, 238, 202, 49, 29, 187, 49, 29, + 103, 246, 231, 49, 29, 238, 162, 49, 29, 248, 66, 49, 29, 238, 70, 49, + 29, 246, 157, 246, 231, 49, 29, 239, 72, 49, 29, 238, 36, 49, 29, 246, + 59, 49, 29, 240, 13, 49, 29, 41, 246, 157, 246, 231, 49, 29, 239, 9, 230, + 164, 49, 29, 246, 179, 49, 29, 229, 197, 49, 29, 241, 232, 49, 29, 237, + 198, 49, 29, 234, 199, 49, 29, 238, 90, 49, 29, 238, 26, 49, 29, 230, + 164, 49, 29, 237, 99, 49, 29, 234, 216, 49, 29, 253, 76, 49, 29, 255, 27, + 236, 233, 49, 29, 234, 99, 49, 29, 249, 119, 49, 29, 237, 225, 49, 29, + 237, 235, 49, 29, 245, 119, 49, 29, 244, 8, 49, 29, 237, 216, 49, 29, + 244, 89, 49, 29, 236, 37, 49, 29, 236, 239, 49, 29, 231, 255, 49, 29, + 239, 224, 49, 29, 246, 58, 49, 29, 234, 176, 49, 29, 237, 13, 49, 29, + 249, 208, 49, 29, 240, 125, 235, 225, 49, 29, 237, 50, 237, 198, 49, 29, + 182, 236, 243, 49, 29, 135, 239, 5, 49, 29, 239, 250, 49, 29, 247, 68, + 49, 29, 240, 8, 49, 29, 234, 23, 49, 29, 245, 218, 49, 29, 237, 204, 49, + 29, 234, 116, 49, 29, 243, 78, 49, 29, 240, 251, 49, 29, 235, 155, 49, + 29, 247, 196, 49, 29, 236, 211, 49, 29, 236, 51, 49, 29, 247, 244, 49, + 29, 235, 27, 49, 29, 247, 184, 49, 29, 247, 54, 49, 29, 251, 214, 49, 29, + 240, 211, 49, 29, 241, 81, 49, 29, 244, 86, 49, 29, 240, 121, 49, 29, + 237, 240, 49, 29, 237, 28, 49, 29, 254, 246, 247, 184, 49, 29, 234, 33, + 49, 29, 248, 40, 49, 29, 243, 12, 49, 29, 240, 21, 49, 29, 237, 168, 49, + 29, 240, 207, 49, 29, 243, 13, 49, 29, 236, 75, 49, 29, 47, 254, 184, 49, + 29, 132, 248, 180, 238, 76, 49, 29, 240, 2, 49, 29, 243, 106, 49, 29, + 247, 127, 49, 29, 248, 31, 49, 29, 233, 0, 49, 29, 241, 163, 49, 29, 239, + 102, 49, 29, 245, 252, 49, 29, 240, 24, 49, 29, 244, 103, 49, 29, 252, + 65, 49, 29, 238, 216, 49, 29, 247, 255, 106, 237, 199, 49, 29, 233, 26, + 49, 29, 237, 50, 245, 240, 49, 29, 237, 90, 49, 29, 245, 188, 49, 29, + 240, 156, 49, 29, 248, 36, 49, 29, 238, 64, 49, 29, 58, 49, 29, 240, 22, + 49, 29, 236, 237, 49, 29, 240, 46, 49, 29, 238, 252, 49, 29, 242, 234, + 49, 29, 240, 19, 49, 29, 235, 109, 49, 29, 245, 115, 49, 29, 241, 73, 49, + 29, 250, 126, 49, 29, 251, 51, 49, 29, 238, 50, 49, 29, 234, 102, 49, 29, + 248, 123, 49, 29, 246, 230, 49, 29, 245, 78, 49, 29, 247, 135, 49, 29, + 238, 132, 49, 29, 241, 189, 49, 29, 232, 231, 49, 29, 241, 233, 49, 29, + 235, 251, 49, 29, 235, 192, 49, 29, 235, 142, 49, 29, 236, 176, 49, 29, + 242, 211, 49, 29, 233, 31, 49, 29, 238, 158, 49, 29, 238, 254, 49, 29, + 238, 74, 49, 29, 236, 113, 49, 29, 238, 127, 49, 29, 247, 224, 230, 164, + 49, 29, 233, 194, 49, 29, 246, 55, 49, 29, 247, 50, 49, 29, 240, 179, 49, + 29, 235, 215, 49, 29, 237, 20, 49, 29, 242, 196, 49, 29, 251, 109, 49, + 29, 236, 4, 49, 29, 238, 52, 49, 29, 251, 176, 49, 29, 251, 195, 49, 29, + 241, 38, 49, 29, 242, 212, 49, 29, 241, 108, 49, 29, 236, 12, 49, 29, + 234, 164, 49, 29, 242, 21, 49, 29, 241, 110, 49, 29, 241, 84, 49, 29, + 228, 241, 49, 29, 235, 7, 49, 29, 241, 40, 49, 29, 241, 4, 49, 29, 241, + 137, 49, 29, 239, 120, 49, 29, 240, 1, 49, 29, 240, 125, 240, 27, 241, + 27, 49, 29, 241, 219, 49, 29, 241, 102, 49, 29, 240, 88, 49, 29, 240, + 223, 49, 29, 233, 171, 49, 29, 238, 71, 233, 171, 49, 29, 244, 92, 49, + 29, 240, 9, 49, 29, 241, 179, 49, 29, 240, 199, 49, 29, 248, 38, 49, 29, + 247, 136, 49, 29, 240, 228, 49, 29, 232, 194, 49, 29, 238, 8, 49, 29, + 241, 103, 49, 29, 245, 237, 49, 29, 243, 169, 49, 29, 238, 218, 49, 29, + 230, 98, 241, 84, 49, 29, 232, 16, 49, 29, 238, 0, 49, 29, 241, 130, 49, + 29, 241, 27, 49, 29, 241, 231, 49, 29, 241, 119, 49, 29, 237, 224, 49, + 29, 243, 171, 49, 29, 235, 232, 49, 29, 236, 156, 49, 29, 237, 45, 49, + 29, 230, 54, 49, 29, 241, 134, 49, 29, 237, 9, 49, 29, 243, 81, 49, 29, + 248, 146, 49, 29, 244, 251, 49, 29, 241, 37, 49, 29, 237, 221, 49, 29, + 235, 74, 49, 29, 235, 105, 49, 29, 237, 250, 90, 229, 168, 116, 42, 180, + 237, 41, 90, 229, 168, 116, 64, 180, 51, 90, 229, 168, 116, 42, 180, 237, + 44, 22, 237, 41, 90, 229, 168, 116, 64, 180, 237, 44, 22, 51, 90, 229, + 168, 116, 246, 162, 233, 45, 90, 229, 168, 116, 233, 137, 246, 172, 46, + 90, 229, 168, 116, 233, 137, 246, 172, 51, 90, 229, 168, 116, 233, 137, + 246, 172, 240, 132, 90, 229, 168, 116, 233, 137, 246, 172, 240, 116, 240, + 132, 90, 229, 168, 116, 233, 137, 246, 172, 240, 116, 237, 41, 90, 229, + 168, 116, 233, 137, 246, 172, 203, 240, 132, 90, 229, 168, 116, 232, 236, + 90, 237, 69, 90, 237, 67, 90, 246, 162, 240, 121, 243, 72, 76, 234, 133, + 231, 85, 233, 242, 98, 90, 231, 225, 76, 90, 235, 113, 76, 90, 65, 240, + 126, 42, 240, 117, 104, 41, 240, 117, 104, 42, 47, 240, 117, 104, 41, 47, + 240, 117, 104, 42, 237, 79, 104, 41, 237, 79, 104, 42, 63, 237, 79, 104, + 41, 63, 237, 79, 104, 42, 86, 230, 137, 104, 41, 86, 230, 137, 104, 237, + 210, 76, 250, 26, 76, 42, 233, 89, 240, 158, 104, 41, 233, 89, 240, 158, + 104, 42, 63, 230, 137, 104, 41, 63, 230, 137, 104, 42, 63, 233, 89, 240, + 158, 104, 41, 63, 233, 89, 240, 158, 104, 42, 63, 37, 104, 41, 63, 37, + 104, 247, 23, 240, 151, 200, 47, 241, 64, 231, 199, 76, 47, 241, 64, 231, + 199, 76, 184, 47, 241, 64, 231, 199, 76, 237, 210, 165, 240, 223, 233, + 97, 207, 118, 233, 97, 207, 113, 233, 97, 207, 166, 233, 97, 207, 158, + 233, 97, 207, 173, 233, 97, 207, 183, 233, 97, 207, 194, 233, 97, 207, + 187, 233, 97, 207, 192, 90, 244, 94, 206, 76, 90, 237, 115, 206, 76, 90, + 231, 249, 206, 76, 90, 234, 97, 206, 76, 26, 237, 62, 56, 206, 76, 26, + 47, 56, 206, 76, 246, 239, 240, 151, 61, 247, 40, 237, 120, 76, 61, 247, + 40, 237, 120, 2, 237, 107, 240, 181, 76, 61, 247, 40, 237, 120, 165, 240, + 116, 240, 170, 61, 247, 40, 237, 120, 2, 237, 107, 240, 181, 165, 240, + 116, 240, 170, 61, 247, 40, 237, 120, 165, 203, 240, 170, 33, 237, 210, + 76, 90, 167, 246, 167, 249, 241, 231, 247, 98, 233, 97, 207, 246, 179, + 233, 97, 207, 235, 52, 233, 97, 207, 235, 80, 61, 90, 231, 225, 76, 250, + 249, 76, 248, 128, 229, 226, 76, 90, 38, 230, 156, 90, 132, 249, 249, + 237, 69, 126, 1, 3, 57, 126, 1, 57, 126, 1, 3, 74, 126, 1, 74, 126, 1, 3, + 66, 126, 1, 66, 126, 1, 3, 72, 126, 1, 72, 126, 1, 3, 73, 126, 1, 73, + 126, 1, 177, 126, 1, 252, 205, 126, 1, 253, 7, 126, 1, 253, 39, 126, 1, + 253, 34, 126, 1, 253, 40, 126, 1, 253, 6, 126, 1, 253, 103, 126, 1, 253, + 33, 126, 1, 253, 76, 126, 1, 252, 204, 126, 1, 252, 226, 126, 1, 253, 24, + 126, 1, 253, 72, 126, 1, 253, 26, 126, 1, 253, 97, 126, 1, 253, 52, 126, + 1, 253, 46, 126, 1, 253, 25, 126, 1, 253, 65, 126, 1, 252, 202, 126, 1, + 252, 203, 126, 1, 253, 44, 126, 1, 253, 12, 126, 1, 3, 253, 18, 126, 1, + 253, 18, 126, 1, 253, 31, 126, 1, 253, 9, 126, 1, 253, 20, 126, 1, 96, + 126, 1, 253, 57, 126, 1, 252, 201, 126, 1, 252, 248, 126, 1, 252, 227, + 126, 1, 252, 247, 126, 1, 253, 8, 126, 1, 154, 126, 1, 252, 211, 126, 1, + 213, 126, 1, 253, 41, 126, 1, 253, 30, 126, 1, 252, 223, 126, 1, 253, 59, + 126, 1, 253, 48, 126, 1, 253, 82, 126, 1, 252, 252, 126, 1, 253, 73, 126, + 1, 253, 0, 126, 1, 253, 21, 126, 1, 253, 98, 126, 1, 253, 50, 126, 1, + 198, 126, 1, 252, 239, 126, 1, 252, 229, 126, 1, 253, 13, 126, 1, 253, + 14, 126, 1, 3, 191, 126, 1, 191, 126, 1, 3, 252, 233, 126, 1, 252, 233, + 126, 1, 3, 252, 251, 126, 1, 252, 251, 126, 1, 208, 126, 1, 253, 37, 126, + 1, 253, 3, 126, 1, 253, 36, 126, 1, 252, 246, 126, 1, 3, 252, 208, 126, + 1, 252, 208, 126, 1, 253, 27, 126, 1, 252, 250, 126, 1, 253, 10, 126, 1, + 199, 126, 1, 253, 139, 126, 1, 3, 177, 126, 1, 3, 253, 6, 36, 222, 252, + 237, 107, 240, 181, 76, 36, 222, 252, 229, 189, 240, 181, 76, 222, 252, + 237, 107, 240, 181, 76, 222, 252, 229, 189, 240, 181, 76, 126, 231, 225, + 76, 126, 237, 107, 231, 225, 76, 126, 235, 90, 246, 95, 222, 252, 47, + 235, 69, 48, 1, 3, 57, 48, 1, 57, 48, 1, 3, 74, 48, 1, 74, 48, 1, 3, 66, + 48, 1, 66, 48, 1, 3, 72, 48, 1, 72, 48, 1, 3, 73, 48, 1, 73, 48, 1, 177, + 48, 1, 252, 205, 48, 1, 253, 7, 48, 1, 253, 39, 48, 1, 253, 34, 48, 1, + 253, 40, 48, 1, 253, 6, 48, 1, 253, 103, 48, 1, 253, 33, 48, 1, 253, 76, + 48, 1, 252, 204, 48, 1, 252, 226, 48, 1, 253, 24, 48, 1, 253, 72, 48, 1, + 253, 26, 48, 1, 253, 97, 48, 1, 253, 52, 48, 1, 253, 46, 48, 1, 253, 25, + 48, 1, 253, 65, 48, 1, 252, 202, 48, 1, 252, 203, 48, 1, 253, 44, 48, 1, + 253, 12, 48, 1, 3, 253, 18, 48, 1, 253, 18, 48, 1, 253, 31, 48, 1, 253, + 9, 48, 1, 253, 20, 48, 1, 96, 48, 1, 253, 57, 48, 1, 252, 201, 48, 1, + 252, 248, 48, 1, 252, 227, 48, 1, 252, 247, 48, 1, 253, 8, 48, 1, 154, + 48, 1, 252, 211, 48, 1, 213, 48, 1, 253, 41, 48, 1, 253, 30, 48, 1, 252, + 223, 48, 1, 253, 59, 48, 1, 253, 48, 48, 1, 253, 82, 48, 1, 252, 252, 48, + 1, 253, 73, 48, 1, 253, 0, 48, 1, 253, 21, 48, 1, 253, 98, 48, 1, 253, + 50, 48, 1, 198, 48, 1, 252, 239, 48, 1, 252, 229, 48, 1, 253, 13, 48, 1, + 253, 14, 48, 1, 3, 191, 48, 1, 191, 48, 1, 3, 252, 233, 48, 1, 252, 233, + 48, 1, 3, 252, 251, 48, 1, 252, 251, 48, 1, 208, 48, 1, 253, 37, 48, 1, + 253, 3, 48, 1, 253, 36, 48, 1, 252, 246, 48, 1, 3, 252, 208, 48, 1, 252, + 208, 48, 1, 253, 27, 48, 1, 252, 250, 48, 1, 253, 10, 48, 1, 199, 48, 1, + 253, 139, 48, 1, 3, 177, 48, 1, 3, 253, 6, 48, 1, 252, 243, 48, 1, 253, + 138, 48, 1, 253, 95, 48, 1, 253, 108, 48, 237, 44, 246, 164, 222, 252, + 232, 39, 240, 181, 76, 48, 231, 225, 76, 48, 237, 107, 231, 225, 76, 48, + 235, 90, 244, 64, 176, 1, 254, 185, 176, 1, 254, 187, 176, 1, 185, 176, + 1, 254, 191, 176, 1, 222, 222, 176, 1, 254, 183, 176, 1, 199, 176, 1, + 149, 176, 1, 214, 176, 1, 254, 186, 176, 1, 212, 176, 1, 254, 192, 176, + 1, 254, 196, 176, 1, 254, 184, 176, 1, 254, 178, 176, 1, 253, 211, 176, + 1, 253, 160, 176, 1, 146, 176, 1, 254, 193, 176, 1, 254, 194, 176, 1, + 193, 176, 1, 57, 176, 1, 73, 176, 1, 72, 176, 1, 253, 144, 176, 1, 252, + 221, 176, 1, 253, 176, 176, 1, 252, 222, 176, 1, 253, 119, 176, 1, 253, + 5, 176, 1, 252, 232, 176, 1, 247, 9, 176, 1, 247, 0, 176, 1, 253, 99, + 176, 1, 74, 176, 1, 66, 176, 1, 253, 233, 176, 1, 196, 176, 1, 253, 69, + 176, 1, 254, 61, 176, 1, 253, 230, 26, 1, 235, 77, 26, 1, 228, 195, 26, + 1, 228, 199, 26, 1, 237, 139, 26, 1, 228, 201, 26, 1, 228, 202, 26, 1, + 235, 81, 26, 1, 228, 209, 26, 1, 237, 142, 26, 1, 227, 197, 26, 1, 228, + 204, 26, 1, 228, 205, 26, 1, 229, 188, 26, 1, 227, 140, 26, 1, 227, 139, + 26, 1, 228, 193, 26, 1, 237, 137, 26, 1, 237, 141, 26, 1, 229, 193, 26, + 1, 229, 180, 26, 1, 240, 213, 26, 1, 230, 159, 26, 1, 237, 134, 26, 1, + 237, 130, 26, 1, 229, 191, 26, 1, 233, 128, 26, 1, 233, 131, 26, 1, 233, + 138, 26, 1, 233, 133, 26, 1, 237, 133, 26, 1, 57, 26, 1, 253, 4, 26, 1, + 191, 26, 1, 247, 61, 26, 1, 253, 177, 26, 1, 72, 26, 1, 247, 232, 26, 1, + 253, 96, 26, 1, 73, 26, 1, 252, 208, 26, 1, 247, 223, 26, 1, 253, 15, 26, + 1, 252, 251, 26, 1, 66, 26, 1, 247, 227, 26, 1, 252, 250, 26, 1, 253, 27, + 26, 1, 252, 233, 26, 1, 253, 100, 26, 1, 253, 28, 26, 1, 74, 26, 235, 92, + 26, 1, 229, 219, 26, 1, 227, 196, 26, 1, 229, 204, 26, 1, 227, 144, 26, + 1, 222, 241, 26, 1, 227, 210, 26, 1, 222, 253, 26, 1, 227, 151, 26, 1, + 222, 242, 26, 1, 228, 200, 26, 1, 229, 200, 26, 1, 227, 143, 26, 1, 227, + 137, 26, 1, 227, 208, 26, 1, 227, 209, 26, 1, 222, 239, 26, 1, 222, 240, + 26, 1, 228, 215, 26, 1, 227, 149, 26, 1, 227, 138, 26, 1, 222, 231, 26, + 1, 228, 207, 26, 1, 229, 216, 26, 1, 228, 208, 26, 1, 229, 190, 26, 1, + 229, 215, 26, 1, 233, 174, 26, 1, 229, 192, 26, 1, 232, 13, 26, 1, 227, + 155, 26, 1, 222, 254, 26, 1, 223, 56, 26, 1, 229, 218, 26, 1, 228, 210, + 26, 1, 238, 83, 26, 1, 235, 233, 26, 1, 242, 31, 26, 1, 235, 234, 26, 1, + 238, 84, 26, 1, 242, 33, 26, 1, 237, 228, 26, 1, 235, 249, 90, 230, 129, + 236, 142, 76, 90, 230, 129, 235, 37, 76, 90, 230, 129, 168, 76, 90, 230, + 129, 135, 76, 90, 230, 129, 152, 76, 90, 230, 129, 246, 160, 76, 90, 230, + 129, 252, 228, 76, 90, 230, 129, 237, 44, 76, 90, 230, 129, 237, 59, 76, + 90, 230, 129, 240, 225, 76, 90, 230, 129, 237, 145, 76, 90, 230, 129, + 240, 239, 76, 90, 230, 129, 237, 182, 76, 90, 230, 129, 239, 7, 76, 90, + 230, 129, 241, 126, 76, 90, 230, 129, 253, 245, 76, 176, 1, 253, 48, 176, + 1, 253, 72, 176, 1, 253, 104, 176, 1, 253, 40, 176, 1, 252, 231, 176, 1, + 249, 228, 176, 1, 252, 220, 176, 1, 248, 124, 176, 1, 253, 149, 176, 1, + 248, 236, 176, 1, 250, 119, 176, 1, 248, 188, 176, 1, 253, 78, 176, 1, + 251, 55, 176, 1, 242, 48, 176, 1, 242, 67, 176, 1, 253, 140, 176, 1, 253, + 128, 176, 1, 251, 98, 176, 1, 244, 10, 176, 35, 1, 254, 187, 176, 35, 1, + 254, 183, 176, 35, 1, 254, 186, 176, 35, 1, 212, 9, 195, 254, 183, 9, + 195, 254, 170, 9, 195, 254, 172, 9, 195, 249, 136, 9, 195, 254, 10, 9, + 195, 250, 109, 9, 195, 250, 106, 9, 195, 253, 226, 9, 195, 243, 253, 9, + 195, 245, 234, 9, 195, 250, 107, 9, 195, 243, 254, 9, 195, 243, 234, 9, + 195, 250, 108, 9, 195, 243, 255, 9, 195, 199, 9, 195, 212, 9, 195, 193, + 9, 195, 254, 187, 9, 195, 254, 150, 9, 195, 222, 222, 9, 195, 253, 228, + 9, 195, 253, 224, 9, 195, 254, 154, 9, 195, 251, 247, 9, 195, 253, 195, + 9, 195, 254, 146, 9, 195, 254, 127, 9, 195, 254, 139, 9, 195, 254, 160, + 9, 195, 252, 2, 9, 195, 251, 246, 9, 195, 243, 252, 9, 195, 239, 36, 9, + 195, 254, 130, 9, 195, 254, 196, 48, 1, 3, 253, 34, 48, 1, 3, 253, 24, + 48, 1, 3, 253, 26, 48, 1, 3, 96, 48, 1, 3, 252, 227, 48, 1, 3, 154, 48, + 1, 3, 253, 41, 48, 1, 3, 253, 59, 48, 1, 3, 252, 252, 48, 1, 3, 253, 21, + 48, 1, 3, 252, 229, 48, 1, 3, 208, 48, 1, 3, 253, 37, 48, 1, 3, 253, 3, + 48, 1, 3, 253, 36, 48, 1, 3, 252, 246, 93, 26, 235, 77, 93, 26, 237, 139, + 93, 26, 235, 81, 93, 26, 237, 142, 93, 26, 237, 137, 93, 26, 237, 141, + 93, 26, 240, 213, 93, 26, 237, 134, 93, 26, 237, 130, 93, 26, 233, 128, + 93, 26, 233, 131, 93, 26, 233, 138, 93, 26, 233, 133, 93, 26, 237, 133, + 93, 26, 238, 14, 57, 93, 26, 241, 202, 57, 93, 26, 238, 75, 57, 93, 26, + 241, 223, 57, 93, 26, 241, 193, 57, 93, 26, 241, 212, 57, 93, 26, 248, + 163, 57, 93, 26, 241, 43, 57, 93, 26, 241, 34, 57, 93, 26, 235, 157, 57, + 93, 26, 235, 183, 57, 93, 26, 235, 224, 57, 93, 26, 235, 199, 57, 93, 26, + 241, 157, 57, 93, 26, 241, 34, 66, 93, 237, 159, 116, 239, 171, 93, 237, + 159, 116, 130, 253, 59, 93, 133, 118, 93, 133, 113, 93, 133, 166, 93, + 133, 158, 93, 133, 173, 93, 133, 183, 93, 133, 194, 93, 133, 187, 93, + 133, 192, 93, 133, 246, 179, 93, 133, 240, 211, 93, 133, 240, 207, 93, + 133, 237, 168, 93, 133, 242, 25, 93, 133, 238, 24, 93, 133, 237, 99, 93, + 133, 247, 54, 93, 133, 238, 66, 93, 133, 241, 151, 93, 133, 233, 238, 93, + 133, 241, 198, 93, 133, 233, 240, 93, 133, 230, 183, 93, 133, 225, 108, + 93, 133, 238, 16, 93, 133, 231, 133, 93, 133, 242, 231, 93, 133, 238, 67, + 93, 133, 230, 197, 93, 133, 229, 198, 93, 133, 232, 42, 93, 133, 232, 14, + 93, 133, 232, 186, 93, 133, 240, 148, 93, 133, 241, 233, 93, 133, 238, + 40, 229, 208, 53, 33, 65, 237, 97, 118, 33, 65, 237, 97, 113, 33, 65, + 237, 97, 166, 33, 65, 237, 97, 158, 33, 65, 237, 97, 173, 33, 65, 237, + 97, 183, 33, 65, 237, 97, 194, 33, 65, 237, 97, 187, 33, 65, 237, 97, + 192, 33, 65, 235, 80, 33, 65, 237, 106, 118, 33, 65, 237, 106, 113, 33, + 65, 237, 106, 166, 33, 65, 237, 106, 158, 33, 65, 237, 106, 173, 33, 26, + 235, 77, 33, 26, 237, 139, 33, 26, 235, 81, 33, 26, 237, 142, 33, 26, + 237, 137, 33, 26, 237, 141, 33, 26, 240, 213, 33, 26, 237, 134, 33, 26, + 237, 130, 33, 26, 233, 128, 33, 26, 233, 131, 33, 26, 233, 138, 33, 26, + 233, 133, 33, 26, 237, 133, 33, 26, 238, 14, 57, 33, 26, 241, 202, 57, + 33, 26, 238, 75, 57, 33, 26, 241, 223, 57, 33, 26, 241, 193, 57, 33, 26, + 241, 212, 57, 33, 26, 248, 163, 57, 33, 26, 241, 43, 57, 33, 26, 241, 34, + 57, 33, 26, 235, 157, 57, 33, 26, 235, 183, 57, 33, 26, 235, 224, 57, 33, + 26, 235, 199, 57, 33, 26, 241, 157, 57, 33, 237, 159, 116, 236, 23, 33, + 237, 159, 116, 239, 53, 33, 26, 241, 43, 66, 237, 159, 233, 242, 98, 33, + 133, 118, 33, 133, 113, 33, 133, 166, 33, 133, 158, 33, 133, 173, 33, + 133, 183, 33, 133, 194, 33, 133, 187, 33, 133, 192, 33, 133, 246, 179, + 33, 133, 240, 211, 33, 133, 240, 207, 33, 133, 237, 168, 33, 133, 242, + 25, 33, 133, 238, 24, 33, 133, 237, 99, 33, 133, 247, 54, 33, 133, 238, + 66, 33, 133, 241, 151, 33, 133, 233, 238, 33, 133, 241, 198, 33, 133, + 233, 240, 33, 133, 230, 183, 33, 133, 225, 108, 33, 133, 238, 16, 33, + 133, 236, 214, 33, 133, 244, 116, 33, 133, 236, 76, 33, 133, 233, 44, 33, + 133, 231, 67, 33, 133, 239, 203, 33, 133, 230, 228, 33, 133, 244, 13, 33, + 133, 240, 148, 33, 133, 243, 20, 33, 133, 234, 37, 33, 133, 243, 177, 33, + 133, 235, 111, 33, 133, 250, 232, 33, 133, 240, 132, 33, 133, 237, 41, + 33, 133, 232, 229, 33, 133, 233, 12, 33, 133, 238, 67, 33, 133, 230, 197, + 33, 133, 229, 198, 33, 133, 232, 42, 33, 133, 232, 14, 33, 133, 239, 143, + 33, 65, 237, 106, 183, 33, 65, 237, 106, 194, 33, 65, 237, 106, 187, 33, + 65, 237, 106, 192, 33, 65, 237, 203, 33, 65, 240, 184, 118, 33, 65, 240, + 184, 113, 33, 65, 240, 184, 166, 33, 65, 240, 184, 158, 33, 65, 240, 184, + 173, 33, 65, 240, 184, 183, 33, 65, 240, 184, 194, 33, 65, 240, 184, 187, + 33, 65, 240, 184, 192, 33, 65, 237, 100, 90, 167, 14, 32, 234, 132, 90, + 167, 14, 32, 232, 185, 90, 167, 14, 32, 239, 98, 90, 167, 14, 32, 238, + 99, 90, 167, 14, 32, 250, 252, 90, 167, 14, 32, 244, 36, 90, 167, 14, 32, + 244, 35, 90, 167, 14, 32, 235, 255, 90, 167, 14, 32, 231, 138, 90, 167, + 14, 32, 234, 174, 90, 167, 14, 32, 232, 235, 90, 167, 14, 32, 232, 108, + 37, 253, 224, 37, 249, 231, 37, 254, 52, 236, 135, 232, 220, 53, 33, 48, + 57, 33, 48, 74, 33, 48, 66, 33, 48, 72, 33, 48, 73, 33, 48, 177, 33, 48, + 253, 7, 33, 48, 253, 34, 33, 48, 253, 6, 33, 48, 253, 33, 33, 48, 252, + 204, 33, 48, 253, 24, 33, 48, 253, 26, 33, 48, 253, 52, 33, 48, 253, 25, + 33, 48, 252, 202, 33, 48, 253, 44, 33, 48, 253, 18, 33, 48, 253, 9, 33, + 48, 96, 33, 48, 252, 201, 33, 48, 252, 248, 33, 48, 252, 227, 33, 48, + 252, 247, 33, 48, 253, 8, 33, 48, 154, 33, 48, 253, 41, 33, 48, 253, 59, + 33, 48, 252, 252, 33, 48, 253, 21, 33, 48, 198, 33, 48, 252, 239, 33, 48, + 252, 229, 33, 48, 253, 13, 33, 48, 253, 14, 33, 48, 191, 33, 48, 252, + 233, 33, 48, 252, 251, 33, 48, 208, 33, 48, 253, 37, 33, 48, 253, 3, 33, + 48, 253, 36, 33, 48, 252, 246, 33, 48, 252, 208, 33, 48, 253, 27, 33, 48, + 252, 250, 33, 48, 253, 10, 37, 235, 248, 37, 235, 253, 37, 238, 96, 37, + 242, 41, 37, 236, 112, 37, 244, 11, 37, 252, 55, 37, 232, 181, 37, 238, + 196, 37, 245, 54, 37, 245, 55, 37, 239, 55, 37, 234, 136, 37, 234, 137, + 37, 238, 234, 37, 238, 233, 37, 243, 149, 37, 238, 248, 37, 236, 127, 37, + 234, 112, 37, 244, 60, 37, 230, 73, 37, 229, 34, 37, 231, 93, 37, 236, + 99, 37, 231, 77, 37, 231, 95, 37, 234, 142, 37, 239, 60, 37, 236, 124, + 37, 239, 73, 37, 234, 212, 37, 233, 17, 37, 234, 223, 37, 239, 241, 37, + 239, 242, 37, 238, 165, 37, 243, 59, 37, 243, 79, 37, 252, 27, 37, 244, + 166, 37, 239, 156, 37, 239, 4, 37, 232, 237, 37, 239, 179, 37, 234, 11, + 37, 231, 119, 37, 236, 187, 37, 245, 75, 37, 242, 208, 37, 232, 204, 37, + 236, 107, 37, 232, 90, 37, 239, 29, 37, 231, 78, 37, 245, 66, 37, 236, + 185, 37, 236, 105, 37, 239, 189, 37, 239, 186, 37, 238, 117, 37, 236, + 190, 37, 236, 14, 37, 248, 64, 37, 239, 202, 37, 239, 26, 37, 243, 232, + 37, 234, 147, 37, 239, 94, 37, 239, 93, 37, 236, 148, 37, 234, 149, 37, + 234, 161, 37, 244, 148, 37, 231, 102, 37, 241, 50, 37, 234, 158, 37, 234, + 157, 37, 240, 91, 37, 240, 92, 37, 246, 99, 37, 234, 209, 37, 245, 117, + 37, 239, 230, 37, 234, 211, 37, 245, 114, 37, 233, 13, 37, 240, 83, 90, + 167, 14, 32, 246, 180, 240, 126, 90, 167, 14, 32, 246, 180, 118, 90, 167, + 14, 32, 246, 180, 113, 90, 167, 14, 32, 246, 180, 166, 90, 167, 14, 32, + 246, 180, 158, 90, 167, 14, 32, 246, 180, 173, 90, 167, 14, 32, 246, 180, + 183, 90, 167, 14, 32, 246, 180, 194, 90, 167, 14, 32, 246, 180, 187, 90, + 167, 14, 32, 246, 180, 192, 90, 167, 14, 32, 246, 180, 246, 179, 90, 167, + 14, 32, 246, 180, 235, 68, 90, 167, 14, 32, 246, 180, 235, 72, 90, 167, + 14, 32, 246, 180, 231, 234, 90, 167, 14, 32, 246, 180, 231, 231, 90, 167, + 14, 32, 246, 180, 233, 141, 90, 167, 14, 32, 246, 180, 233, 135, 90, 167, + 14, 32, 246, 180, 230, 148, 90, 167, 14, 32, 246, 180, 231, 229, 90, 167, + 14, 32, 246, 180, 231, 233, 90, 167, 14, 32, 246, 180, 235, 52, 90, 167, + 14, 32, 246, 180, 229, 224, 90, 167, 14, 32, 246, 180, 229, 225, 90, 167, + 14, 32, 246, 180, 227, 213, 90, 167, 14, 32, 246, 180, 228, 220, 37, 250, + 94, 37, 252, 203, 37, 252, 222, 37, 125, 37, 254, 0, 37, 254, 126, 37, + 254, 45, 37, 255, 4, 233, 91, 37, 255, 4, 237, 152, 37, 253, 233, 37, + 253, 145, 247, 91, 236, 102, 37, 253, 145, 247, 91, 236, 252, 37, 253, + 145, 247, 91, 234, 239, 37, 253, 145, 247, 91, 239, 101, 37, 228, 232, + 37, 254, 242, 242, 56, 37, 252, 201, 37, 254, 207, 57, 37, 198, 37, 177, + 37, 254, 78, 37, 253, 246, 37, 254, 59, 37, 249, 142, 37, 244, 51, 37, + 254, 129, 37, 254, 112, 37, 254, 207, 254, 191, 37, 254, 207, 214, 37, + 254, 101, 37, 253, 240, 37, 253, 228, 37, 250, 165, 37, 251, 11, 37, 250, + 30, 37, 252, 19, 37, 254, 207, 149, 37, 254, 103, 37, 254, 44, 37, 254, + 83, 37, 254, 56, 37, 254, 116, 37, 254, 207, 185, 37, 253, 248, 37, 254, + 39, 37, 254, 84, 37, 255, 12, 233, 91, 37, 255, 3, 233, 91, 37, 255, 68, + 233, 91, 37, 254, 250, 233, 91, 37, 255, 12, 237, 152, 37, 255, 3, 237, + 152, 37, 255, 68, 237, 152, 37, 254, 250, 237, 152, 37, 255, 68, 107, + 193, 37, 255, 68, 107, 255, 59, 233, 91, 37, 213, 37, 248, 85, 37, 248, + 102, 37, 250, 40, 37, 251, 169, 37, 253, 191, 107, 193, 37, 253, 191, + 107, 255, 59, 233, 91, 37, 254, 135, 37, 254, 117, 37, 254, 207, 193, 37, + 254, 104, 37, 254, 136, 37, 253, 251, 37, 254, 207, 196, 37, 254, 106, + 37, 254, 88, 37, 255, 39, 241, 50, 37, 254, 137, 37, 254, 118, 37, 254, + 207, 254, 195, 37, 254, 107, 37, 253, 243, 37, 255, 40, 241, 50, 37, 255, + 67, 248, 120, 37, 255, 68, 248, 120, 37, 253, 140, 37, 254, 35, 37, 254, + 37, 37, 254, 38, 37, 255, 62, 107, 253, 240, 37, 253, 66, 37, 254, 42, + 37, 254, 64, 37, 154, 37, 253, 226, 37, 253, 79, 37, 253, 183, 37, 254, + 250, 234, 26, 37, 254, 85, 37, 254, 94, 37, 254, 95, 37, 250, 228, 37, + 254, 97, 37, 255, 37, 237, 216, 37, 251, 14, 37, 251, 22, 37, 254, 131, + 37, 254, 132, 37, 251, 118, 37, 254, 134, 37, 254, 151, 37, 254, 9, 37, + 254, 169, 37, 255, 69, 107, 185, 37, 102, 107, 185, 90, 167, 14, 32, 252, + 218, 118, 90, 167, 14, 32, 252, 218, 113, 90, 167, 14, 32, 252, 218, 166, + 90, 167, 14, 32, 252, 218, 158, 90, 167, 14, 32, 252, 218, 173, 90, 167, + 14, 32, 252, 218, 183, 90, 167, 14, 32, 252, 218, 194, 90, 167, 14, 32, + 252, 218, 187, 90, 167, 14, 32, 252, 218, 192, 90, 167, 14, 32, 252, 218, + 246, 179, 90, 167, 14, 32, 252, 218, 235, 68, 90, 167, 14, 32, 252, 218, + 235, 72, 90, 167, 14, 32, 252, 218, 231, 234, 90, 167, 14, 32, 252, 218, + 231, 231, 90, 167, 14, 32, 252, 218, 233, 141, 90, 167, 14, 32, 252, 218, + 233, 135, 90, 167, 14, 32, 252, 218, 230, 148, 90, 167, 14, 32, 252, 218, + 231, 229, 90, 167, 14, 32, 252, 218, 231, 233, 90, 167, 14, 32, 252, 218, + 235, 52, 90, 167, 14, 32, 252, 218, 229, 224, 90, 167, 14, 32, 252, 218, + 229, 225, 90, 167, 14, 32, 252, 218, 227, 213, 90, 167, 14, 32, 252, 218, + 228, 220, 90, 167, 14, 32, 252, 218, 229, 157, 90, 167, 14, 32, 252, 218, + 230, 121, 90, 167, 14, 32, 252, 218, 228, 171, 90, 167, 14, 32, 252, 218, + 228, 170, 90, 167, 14, 32, 252, 218, 229, 158, 90, 167, 14, 32, 252, 218, + 235, 80, 90, 167, 14, 32, 252, 218, 230, 118, 37, 247, 12, 181, 32, 252, + 230, 234, 38, 235, 123, 181, 32, 252, 230, 233, 7, 237, 99, 181, 32, 230, + 246, 254, 217, 252, 230, 230, 230, 181, 32, 235, 12, 238, 222, 181, 32, + 233, 249, 181, 32, 232, 99, 181, 32, 252, 230, 242, 63, 181, 32, 235, + 177, 232, 55, 181, 32, 3, 235, 219, 181, 32, 233, 54, 181, 32, 239, 185, + 181, 32, 230, 113, 181, 32, 230, 60, 181, 32, 240, 227, 230, 90, 181, 32, + 234, 162, 181, 32, 230, 56, 181, 32, 230, 184, 181, 32, 252, 105, 254, + 223, 252, 230, 234, 47, 181, 32, 232, 71, 181, 32, 227, 161, 181, 32, + 238, 125, 234, 246, 181, 32, 238, 251, 181, 32, 233, 27, 238, 98, 181, + 32, 235, 205, 181, 32, 231, 87, 181, 32, 240, 227, 235, 219, 181, 32, + 244, 151, 233, 195, 181, 32, 240, 227, 227, 150, 181, 32, 252, 230, 235, + 237, 237, 168, 181, 32, 252, 230, 234, 31, 240, 207, 181, 32, 231, 86, + 181, 32, 232, 175, 181, 32, 234, 208, 181, 32, 240, 227, 238, 36, 181, + 32, 233, 1, 181, 32, 232, 106, 106, 252, 230, 237, 57, 181, 32, 252, 230, + 236, 74, 181, 32, 229, 187, 181, 32, 229, 44, 181, 32, 228, 237, 181, 32, + 232, 109, 181, 32, 232, 27, 181, 32, 227, 220, 181, 32, 238, 160, 180, + 241, 191, 181, 32, 232, 24, 232, 55, 181, 32, 236, 196, 237, 16, 181, 32, + 230, 84, 181, 32, 252, 230, 246, 54, 181, 32, 230, 97, 181, 32, 252, 230, + 232, 16, 181, 32, 252, 230, 234, 9, 233, 246, 181, 32, 252, 230, 235, + 182, 245, 220, 231, 255, 181, 32, 228, 240, 181, 32, 252, 230, 234, 153, + 236, 144, 181, 32, 230, 221, 181, 32, 252, 230, 233, 63, 181, 32, 252, + 230, 238, 235, 240, 199, 181, 32, 252, 230, 239, 51, 241, 178, 181, 32, + 229, 250, 181, 32, 230, 78, 181, 32, 244, 9, 240, 48, 181, 32, 3, 227, + 150, 181, 32, 242, 44, 229, 183, 181, 32, 238, 118, 229, 183, 8, 4, 254, + 73, 8, 4, 254, 74, 8, 4, 74, 8, 4, 254, 70, 8, 4, 250, 115, 8, 4, 250, + 116, 8, 4, 253, 77, 8, 4, 250, 114, 8, 4, 253, 113, 8, 4, 254, 30, 8, 4, + 57, 8, 4, 254, 27, 8, 4, 252, 57, 8, 4, 254, 164, 8, 4, 252, 56, 8, 4, + 253, 188, 8, 4, 254, 122, 8, 4, 73, 8, 4, 253, 255, 8, 4, 254, 53, 8, 4, + 72, 8, 4, 253, 109, 8, 4, 249, 121, 8, 4, 249, 122, 8, 4, 253, 30, 8, 4, + 249, 120, 8, 4, 242, 206, 8, 4, 242, 207, 8, 4, 249, 118, 8, 4, 242, 205, + 8, 4, 249, 101, 8, 4, 249, 102, 8, 4, 252, 211, 8, 4, 249, 100, 8, 4, + 242, 222, 8, 4, 249, 129, 8, 4, 242, 221, 8, 4, 249, 128, 8, 4, 246, 231, + 8, 4, 253, 98, 8, 4, 249, 127, 8, 4, 249, 113, 8, 4, 253, 73, 8, 4, 249, + 111, 8, 4, 249, 132, 8, 4, 249, 133, 8, 4, 253, 48, 8, 4, 249, 130, 8, 4, + 242, 224, 8, 4, 247, 11, 8, 4, 249, 139, 8, 4, 249, 140, 8, 4, 253, 210, + 8, 4, 249, 137, 8, 4, 242, 226, 8, 4, 249, 138, 8, 4, 251, 111, 8, 4, + 251, 112, 8, 4, 252, 223, 8, 4, 251, 110, 8, 4, 245, 74, 8, 4, 251, 108, + 8, 4, 245, 73, 8, 4, 251, 104, 8, 4, 251, 105, 8, 4, 213, 8, 4, 247, 45, + 8, 4, 245, 85, 8, 4, 251, 121, 8, 4, 245, 84, 8, 4, 251, 115, 8, 4, 251, + 116, 8, 4, 253, 50, 8, 4, 251, 114, 8, 4, 248, 136, 8, 4, 251, 124, 8, 4, + 253, 82, 8, 4, 251, 122, 8, 4, 245, 86, 8, 4, 251, 123, 8, 4, 248, 138, + 8, 4, 251, 127, 8, 4, 254, 138, 8, 4, 251, 125, 8, 4, 245, 88, 8, 4, 251, + 126, 8, 4, 242, 183, 8, 4, 242, 184, 8, 4, 249, 103, 8, 4, 242, 182, 8, + 4, 238, 112, 8, 4, 238, 113, 8, 4, 242, 181, 8, 4, 238, 111, 8, 4, 242, + 177, 8, 4, 242, 178, 8, 4, 247, 66, 8, 4, 242, 176, 8, 4, 238, 115, 8, 4, + 242, 188, 8, 4, 238, 114, 8, 4, 242, 186, 8, 4, 242, 187, 8, 4, 249, 104, + 8, 4, 242, 185, 8, 4, 242, 180, 8, 4, 247, 250, 8, 4, 242, 179, 8, 4, + 241, 98, 8, 4, 242, 191, 8, 4, 249, 105, 8, 4, 242, 189, 8, 4, 238, 116, + 8, 4, 242, 190, 8, 4, 242, 193, 8, 4, 242, 194, 8, 4, 249, 106, 8, 4, + 242, 192, 8, 4, 244, 171, 8, 4, 244, 172, 8, 4, 251, 45, 8, 4, 244, 170, + 8, 4, 239, 129, 8, 4, 241, 200, 8, 4, 239, 128, 8, 4, 244, 168, 8, 4, + 244, 169, 8, 4, 251, 44, 8, 4, 244, 167, 8, 4, 244, 174, 8, 4, 244, 175, + 8, 4, 251, 46, 8, 4, 244, 173, 8, 4, 244, 178, 8, 4, 244, 179, 8, 4, 251, + 47, 8, 4, 244, 176, 8, 4, 239, 130, 8, 4, 244, 177, 8, 4, 244, 182, 8, 4, + 244, 183, 8, 4, 251, 48, 8, 4, 244, 180, 8, 4, 239, 131, 8, 4, 244, 181, + 8, 4, 243, 204, 8, 4, 243, 205, 8, 4, 250, 85, 8, 4, 243, 203, 8, 4, 239, + 17, 8, 4, 243, 202, 8, 4, 239, 16, 8, 4, 243, 200, 8, 4, 243, 201, 8, 4, + 250, 84, 8, 4, 243, 199, 8, 4, 239, 19, 8, 4, 243, 209, 8, 4, 239, 18, 8, + 4, 243, 207, 8, 4, 243, 208, 8, 4, 248, 62, 8, 4, 243, 206, 8, 4, 243, + 212, 8, 4, 243, 213, 8, 4, 250, 86, 8, 4, 243, 210, 8, 4, 239, 20, 8, 4, + 243, 211, 8, 4, 243, 216, 8, 4, 250, 87, 8, 4, 243, 214, 8, 4, 239, 21, + 8, 4, 243, 215, 8, 4, 251, 18, 8, 4, 251, 19, 8, 4, 252, 239, 8, 4, 251, + 17, 8, 4, 244, 144, 8, 4, 251, 12, 8, 4, 244, 143, 8, 4, 250, 250, 8, 4, + 250, 251, 8, 4, 198, 8, 4, 250, 247, 8, 4, 244, 157, 8, 4, 244, 158, 8, + 4, 251, 27, 8, 4, 244, 156, 8, 4, 251, 23, 8, 4, 251, 24, 8, 4, 253, 14, + 8, 4, 248, 101, 8, 4, 251, 7, 8, 4, 253, 13, 8, 4, 251, 30, 8, 4, 251, + 31, 8, 4, 252, 229, 8, 4, 251, 28, 8, 4, 244, 160, 8, 4, 251, 29, 8, 4, + 251, 34, 8, 4, 251, 35, 8, 4, 254, 108, 8, 4, 251, 33, 8, 4, 249, 251, 8, + 4, 249, 252, 8, 4, 253, 88, 8, 4, 249, 250, 8, 4, 249, 239, 8, 4, 249, + 240, 8, 4, 252, 234, 8, 4, 249, 238, 8, 4, 249, 255, 8, 4, 253, 148, 8, + 4, 249, 254, 8, 4, 250, 1, 8, 4, 250, 2, 8, 4, 253, 178, 8, 4, 250, 0, 8, + 4, 243, 110, 8, 4, 248, 40, 8, 4, 250, 7, 8, 4, 250, 8, 8, 4, 254, 57, 8, + 4, 250, 6, 8, 4, 252, 77, 8, 4, 252, 78, 8, 4, 253, 138, 8, 4, 252, 76, + 8, 4, 246, 46, 8, 4, 246, 47, 8, 4, 252, 75, 8, 4, 246, 45, 8, 4, 252, + 71, 8, 4, 252, 72, 8, 4, 252, 243, 8, 4, 252, 70, 8, 4, 252, 82, 8, 4, + 252, 84, 8, 4, 253, 108, 8, 4, 252, 81, 8, 4, 252, 74, 8, 4, 248, 190, 8, + 4, 252, 86, 8, 4, 252, 87, 8, 4, 253, 139, 8, 4, 252, 85, 8, 4, 246, 49, + 8, 4, 248, 193, 8, 4, 252, 91, 8, 4, 252, 92, 8, 4, 253, 201, 8, 4, 252, + 89, 8, 4, 246, 50, 8, 4, 252, 90, 8, 4, 249, 196, 8, 4, 249, 197, 8, 4, + 253, 12, 8, 4, 249, 194, 8, 4, 243, 69, 8, 4, 249, 192, 8, 4, 243, 68, 8, + 4, 249, 181, 8, 4, 249, 183, 8, 4, 252, 203, 8, 4, 249, 179, 8, 4, 243, + 86, 8, 4, 249, 212, 8, 4, 246, 164, 8, 4, 249, 206, 8, 4, 253, 57, 8, 4, + 249, 205, 8, 4, 249, 187, 8, 4, 253, 20, 8, 4, 249, 186, 8, 4, 249, 215, + 8, 4, 249, 216, 8, 4, 253, 31, 8, 4, 249, 213, 8, 4, 243, 88, 8, 4, 249, + 214, 8, 4, 252, 23, 8, 4, 252, 24, 8, 4, 253, 44, 8, 4, 252, 22, 8, 4, + 245, 250, 8, 4, 247, 57, 8, 4, 245, 249, 8, 4, 248, 170, 8, 4, 252, 10, + 8, 4, 252, 202, 8, 4, 252, 7, 8, 4, 246, 21, 8, 4, 246, 22, 8, 4, 252, + 34, 8, 4, 246, 20, 8, 4, 248, 179, 8, 4, 252, 28, 8, 4, 96, 8, 4, 247, + 214, 8, 4, 252, 16, 8, 4, 253, 9, 8, 4, 252, 13, 8, 4, 252, 36, 8, 4, + 252, 37, 8, 4, 253, 18, 8, 4, 252, 35, 8, 4, 246, 23, 8, 4, 247, 112, 8, + 4, 243, 41, 8, 4, 243, 42, 8, 4, 248, 23, 8, 4, 243, 40, 8, 4, 238, 176, + 8, 4, 243, 39, 8, 4, 238, 175, 8, 4, 243, 32, 8, 4, 243, 33, 8, 4, 246, + 192, 8, 4, 243, 31, 8, 4, 238, 178, 8, 4, 243, 47, 8, 4, 238, 177, 8, 4, + 243, 45, 8, 4, 243, 46, 8, 4, 247, 130, 8, 4, 243, 44, 8, 4, 243, 37, 8, + 4, 248, 22, 8, 4, 243, 36, 8, 4, 243, 49, 8, 4, 243, 50, 8, 4, 248, 24, + 8, 4, 243, 48, 8, 4, 238, 179, 8, 4, 241, 118, 8, 4, 244, 192, 8, 4, 244, + 193, 8, 4, 248, 107, 8, 4, 244, 191, 8, 4, 239, 132, 8, 4, 244, 190, 8, + 4, 244, 185, 8, 4, 244, 186, 8, 4, 247, 180, 8, 4, 244, 184, 8, 4, 244, + 196, 8, 4, 244, 197, 8, 4, 248, 108, 8, 4, 244, 195, 8, 4, 244, 189, 8, + 4, 248, 106, 8, 4, 244, 188, 8, 4, 244, 200, 8, 4, 244, 201, 8, 4, 248, + 109, 8, 4, 244, 198, 8, 4, 239, 133, 8, 4, 244, 199, 8, 4, 243, 224, 8, + 4, 243, 225, 8, 4, 250, 89, 8, 4, 243, 223, 8, 4, 239, 23, 8, 4, 239, 24, + 8, 4, 243, 222, 8, 4, 239, 22, 8, 4, 243, 218, 8, 4, 243, 219, 8, 4, 248, + 63, 8, 4, 243, 217, 8, 4, 239, 25, 8, 4, 243, 229, 8, 4, 243, 227, 8, 4, + 243, 228, 8, 4, 243, 226, 8, 4, 243, 221, 8, 4, 250, 88, 8, 4, 243, 220, + 8, 4, 243, 230, 8, 4, 251, 63, 8, 4, 251, 64, 8, 4, 252, 248, 8, 4, 251, + 62, 8, 4, 244, 228, 8, 4, 251, 60, 8, 4, 244, 227, 8, 4, 251, 43, 8, 4, + 252, 201, 8, 4, 251, 41, 8, 4, 245, 15, 8, 4, 251, 80, 8, 4, 245, 14, 8, + 4, 247, 184, 8, 4, 251, 72, 8, 4, 253, 8, 8, 4, 251, 70, 8, 4, 251, 52, + 8, 4, 252, 247, 8, 4, 251, 50, 8, 4, 251, 83, 8, 4, 251, 84, 8, 4, 252, + 227, 8, 4, 251, 81, 8, 4, 245, 16, 8, 4, 251, 82, 8, 4, 243, 186, 8, 4, + 243, 187, 8, 4, 250, 80, 8, 4, 243, 185, 8, 4, 239, 11, 8, 4, 243, 184, + 8, 4, 239, 10, 8, 4, 243, 180, 8, 4, 243, 181, 8, 4, 248, 61, 8, 4, 243, + 179, 8, 4, 239, 13, 8, 4, 243, 190, 8, 4, 239, 12, 8, 4, 243, 189, 8, 4, + 250, 81, 8, 4, 243, 188, 8, 4, 243, 183, 8, 4, 250, 79, 8, 4, 243, 182, + 8, 4, 243, 193, 8, 4, 243, 194, 8, 4, 250, 82, 8, 4, 243, 191, 8, 4, 239, + 14, 8, 4, 243, 192, 8, 4, 243, 197, 8, 4, 243, 198, 8, 4, 250, 83, 8, 4, + 243, 195, 8, 4, 239, 15, 8, 4, 243, 196, 8, 4, 250, 225, 8, 4, 250, 226, + 8, 4, 253, 42, 8, 4, 250, 223, 8, 4, 244, 101, 8, 4, 244, 102, 8, 4, 248, + 93, 8, 4, 244, 100, 8, 4, 250, 208, 8, 4, 250, 210, 8, 4, 252, 200, 8, 4, + 250, 206, 8, 4, 244, 110, 8, 4, 244, 111, 8, 4, 250, 236, 8, 4, 244, 109, + 8, 4, 250, 231, 8, 4, 250, 233, 8, 4, 253, 49, 8, 4, 250, 230, 8, 4, 250, + 216, 8, 4, 253, 80, 8, 4, 250, 214, 8, 4, 250, 239, 8, 4, 250, 240, 8, 4, + 253, 22, 8, 4, 250, 237, 8, 4, 244, 112, 8, 4, 250, 238, 8, 4, 250, 242, + 8, 4, 250, 243, 8, 4, 253, 186, 8, 4, 250, 241, 8, 4, 244, 113, 8, 4, + 248, 97, 8, 4, 250, 33, 8, 4, 250, 34, 8, 4, 253, 39, 8, 4, 250, 32, 8, + 4, 243, 147, 8, 4, 243, 148, 8, 4, 250, 31, 8, 4, 243, 146, 8, 4, 250, + 14, 8, 4, 250, 15, 8, 4, 252, 205, 8, 4, 250, 13, 8, 4, 243, 160, 8, 4, + 243, 161, 8, 4, 250, 46, 8, 4, 243, 159, 8, 4, 248, 56, 8, 4, 250, 39, 8, + 4, 253, 76, 8, 4, 250, 38, 8, 4, 250, 25, 8, 4, 250, 27, 8, 4, 253, 103, + 8, 4, 248, 47, 8, 4, 250, 48, 8, 4, 250, 49, 8, 4, 253, 40, 8, 4, 250, + 47, 8, 4, 243, 162, 8, 4, 248, 57, 8, 4, 248, 83, 8, 4, 250, 170, 8, 4, + 253, 7, 8, 4, 250, 169, 8, 4, 244, 59, 8, 4, 250, 166, 8, 4, 244, 58, 8, + 4, 250, 156, 8, 4, 250, 158, 8, 4, 177, 8, 4, 250, 155, 8, 4, 244, 71, 8, + 4, 250, 190, 8, 4, 244, 70, 8, 4, 250, 180, 8, 4, 250, 181, 8, 4, 253, + 33, 8, 4, 250, 179, 8, 4, 250, 160, 8, 4, 250, 161, 8, 4, 253, 6, 8, 4, + 250, 159, 8, 4, 250, 192, 8, 4, 250, 193, 8, 4, 253, 34, 8, 4, 250, 191, + 8, 4, 244, 73, 8, 4, 246, 220, 8, 4, 243, 132, 8, 4, 243, 133, 8, 4, 248, + 49, 8, 4, 238, 239, 8, 4, 243, 131, 8, 4, 238, 238, 8, 4, 243, 125, 8, 4, + 243, 126, 8, 4, 247, 77, 8, 4, 243, 124, 8, 4, 238, 241, 8, 4, 238, 242, + 8, 4, 241, 140, 8, 4, 238, 240, 8, 4, 243, 134, 8, 4, 243, 135, 8, 4, + 248, 50, 8, 4, 241, 139, 8, 4, 243, 129, 8, 4, 243, 130, 8, 4, 248, 48, + 8, 4, 243, 128, 8, 4, 243, 138, 8, 4, 243, 139, 8, 4, 248, 51, 8, 4, 243, + 136, 8, 4, 238, 243, 8, 4, 243, 137, 8, 4, 239, 109, 8, 4, 244, 133, 8, + 4, 244, 124, 8, 4, 244, 125, 8, 4, 251, 8, 8, 4, 244, 123, 8, 4, 239, + 111, 8, 4, 244, 137, 8, 4, 239, 110, 8, 4, 244, 135, 8, 4, 244, 136, 8, + 4, 247, 88, 8, 4, 244, 134, 8, 4, 244, 132, 8, 4, 251, 9, 8, 4, 244, 131, + 8, 4, 244, 140, 8, 4, 244, 141, 8, 4, 251, 10, 8, 4, 244, 138, 8, 4, 239, + 112, 8, 4, 244, 139, 8, 4, 241, 159, 8, 4, 243, 249, 8, 4, 250, 104, 8, + 4, 243, 248, 8, 4, 239, 31, 8, 4, 239, 32, 8, 4, 243, 247, 8, 4, 239, 30, + 8, 4, 243, 243, 8, 4, 243, 244, 8, 4, 250, 102, 8, 4, 243, 242, 8, 4, + 239, 34, 8, 4, 239, 35, 8, 4, 241, 161, 8, 4, 239, 33, 8, 4, 243, 250, 8, + 4, 243, 251, 8, 4, 250, 105, 8, 4, 241, 160, 8, 4, 243, 246, 8, 4, 250, + 103, 8, 4, 243, 245, 8, 4, 239, 139, 8, 4, 244, 215, 8, 4, 239, 138, 8, + 4, 244, 206, 8, 4, 244, 207, 8, 4, 246, 169, 8, 4, 244, 205, 8, 4, 239, + 141, 8, 4, 239, 142, 8, 4, 244, 224, 8, 4, 244, 221, 8, 4, 244, 222, 8, + 4, 247, 93, 8, 4, 244, 220, 8, 4, 244, 210, 8, 4, 251, 54, 8, 4, 244, + 209, 8, 4, 250, 78, 8, 4, 243, 176, 8, 4, 247, 81, 8, 4, 247, 147, 8, 4, + 250, 63, 8, 4, 154, 8, 4, 250, 62, 8, 4, 243, 239, 8, 4, 243, 240, 8, 4, + 250, 97, 8, 4, 243, 238, 8, 4, 250, 92, 8, 4, 250, 93, 8, 4, 253, 21, 8, + 4, 250, 91, 8, 4, 250, 69, 8, 4, 252, 252, 8, 4, 250, 68, 8, 4, 252, 95, + 8, 4, 252, 96, 8, 4, 252, 208, 8, 4, 252, 94, 8, 4, 246, 62, 8, 4, 252, + 108, 8, 4, 246, 61, 8, 4, 252, 106, 8, 4, 253, 10, 8, 4, 252, 104, 8, 4, + 252, 99, 8, 4, 252, 250, 8, 4, 252, 98, 8, 4, 252, 181, 8, 4, 252, 182, + 8, 4, 253, 72, 8, 4, 252, 180, 8, 4, 246, 130, 8, 4, 252, 178, 8, 4, 246, + 129, 8, 4, 252, 170, 8, 4, 252, 171, 8, 4, 252, 226, 8, 4, 252, 169, 8, + 4, 246, 133, 8, 4, 252, 190, 8, 4, 246, 132, 8, 4, 248, 211, 8, 4, 252, + 186, 8, 4, 253, 65, 8, 4, 252, 185, 8, 4, 252, 174, 8, 4, 253, 46, 8, 4, + 252, 173, 8, 4, 252, 191, 8, 4, 252, 192, 8, 4, 253, 97, 8, 4, 248, 212, + 8, 4, 246, 134, 8, 4, 248, 213, 8, 4, 252, 196, 8, 4, 252, 197, 8, 4, + 254, 182, 8, 4, 252, 194, 8, 4, 246, 135, 8, 4, 252, 195, 8, 4, 249, 160, + 8, 4, 249, 161, 8, 4, 253, 143, 8, 4, 248, 8, 8, 4, 243, 10, 8, 4, 243, + 11, 8, 4, 249, 158, 8, 4, 243, 9, 8, 4, 248, 5, 8, 4, 249, 145, 8, 4, + 252, 215, 8, 4, 248, 4, 8, 4, 243, 21, 8, 4, 249, 166, 8, 4, 241, 111, 8, + 4, 249, 164, 8, 4, 249, 165, 8, 4, 253, 66, 8, 4, 249, 163, 8, 4, 249, + 154, 8, 4, 253, 141, 8, 4, 249, 153, 8, 4, 249, 168, 8, 4, 249, 169, 8, + 4, 253, 172, 8, 4, 248, 12, 8, 4, 243, 22, 8, 4, 249, 167, 8, 4, 248, 16, + 8, 4, 249, 172, 8, 4, 253, 213, 8, 4, 248, 15, 8, 4, 243, 23, 8, 4, 249, + 171, 8, 4, 246, 145, 8, 4, 246, 146, 8, 4, 248, 216, 8, 4, 246, 144, 8, + 4, 238, 85, 8, 4, 240, 113, 8, 4, 246, 143, 8, 4, 240, 112, 8, 4, 246, + 138, 8, 4, 246, 139, 8, 4, 248, 214, 8, 4, 246, 137, 8, 4, 246, 148, 8, + 4, 248, 217, 8, 4, 246, 147, 8, 4, 246, 142, 8, 4, 248, 215, 8, 4, 246, + 141, 8, 4, 246, 151, 8, 4, 248, 218, 8, 4, 246, 149, 8, 4, 240, 114, 8, + 4, 246, 150, 8, 4, 246, 154, 8, 4, 246, 155, 8, 4, 252, 198, 8, 4, 246, + 152, 8, 4, 240, 115, 8, 4, 246, 153, 8, 4, 245, 40, 8, 4, 245, 41, 8, 4, + 251, 88, 8, 4, 245, 39, 8, 4, 239, 166, 8, 4, 245, 38, 8, 4, 239, 165, 8, + 4, 245, 35, 8, 4, 245, 36, 8, 4, 251, 86, 8, 4, 245, 34, 8, 4, 239, 167, + 8, 4, 245, 44, 8, 4, 245, 43, 8, 4, 245, 42, 8, 4, 245, 37, 8, 4, 251, + 87, 8, 4, 245, 46, 8, 4, 251, 89, 8, 4, 241, 209, 8, 4, 239, 168, 8, 4, + 245, 45, 8, 4, 245, 49, 8, 4, 245, 50, 8, 4, 251, 90, 8, 4, 245, 47, 8, + 4, 239, 169, 8, 4, 245, 48, 8, 4, 251, 227, 8, 4, 183, 8, 4, 253, 24, 8, + 4, 251, 226, 8, 4, 245, 183, 8, 4, 251, 222, 8, 4, 245, 182, 8, 4, 251, + 211, 8, 4, 251, 213, 8, 4, 252, 204, 8, 4, 251, 210, 8, 4, 245, 225, 8, + 4, 251, 242, 8, 4, 245, 224, 8, 4, 251, 233, 8, 4, 251, 235, 8, 4, 253, + 25, 8, 4, 251, 232, 8, 4, 251, 217, 8, 4, 253, 52, 8, 4, 251, 216, 8, 4, + 251, 244, 8, 4, 251, 245, 8, 4, 253, 26, 8, 4, 251, 243, 8, 4, 245, 228, + 8, 4, 247, 205, 8, 4, 251, 251, 8, 4, 251, 252, 8, 4, 254, 153, 8, 4, + 251, 249, 8, 4, 245, 230, 8, 4, 251, 250, 8, 4, 245, 205, 8, 4, 245, 206, + 8, 4, 247, 202, 8, 4, 245, 204, 8, 4, 240, 17, 8, 4, 245, 203, 8, 4, 240, + 16, 8, 4, 245, 198, 8, 4, 245, 199, 8, 4, 246, 190, 8, 4, 245, 197, 8, 4, + 245, 208, 8, 4, 245, 209, 8, 4, 247, 203, 8, 4, 245, 207, 8, 4, 245, 202, + 8, 4, 248, 166, 8, 4, 245, 201, 8, 4, 245, 211, 8, 4, 245, 212, 8, 4, + 247, 204, 8, 4, 245, 210, 8, 4, 245, 215, 8, 4, 245, 216, 8, 4, 251, 236, + 8, 4, 245, 213, 8, 4, 240, 18, 8, 4, 245, 214, 8, 4, 246, 110, 8, 4, 246, + 111, 8, 4, 246, 223, 8, 4, 246, 109, 8, 4, 240, 105, 8, 4, 246, 119, 8, + 4, 240, 104, 8, 4, 246, 117, 8, 4, 246, 118, 8, 4, 247, 239, 8, 4, 246, + 116, 8, 4, 246, 113, 8, 4, 246, 114, 8, 4, 246, 251, 8, 4, 246, 112, 8, + 4, 246, 122, 8, 4, 246, 123, 8, 4, 247, 240, 8, 4, 246, 120, 8, 4, 240, + 106, 8, 4, 246, 121, 8, 4, 246, 127, 8, 4, 246, 128, 8, 4, 252, 175, 8, + 4, 246, 125, 8, 4, 240, 107, 8, 4, 246, 126, 8, 4, 242, 245, 8, 4, 242, + 246, 8, 4, 246, 176, 8, 4, 242, 244, 8, 4, 238, 152, 8, 4, 238, 153, 8, + 4, 243, 0, 8, 4, 238, 151, 8, 4, 242, 254, 8, 4, 242, 255, 8, 4, 247, 29, + 8, 4, 242, 253, 8, 4, 242, 248, 8, 4, 242, 249, 8, 4, 246, 217, 8, 4, + 242, 247, 8, 4, 243, 3, 8, 4, 247, 124, 8, 4, 243, 1, 8, 4, 238, 154, 8, + 4, 243, 2, 8, 4, 243, 7, 8, 4, 243, 8, 8, 4, 249, 157, 8, 4, 243, 5, 8, + 4, 238, 155, 8, 4, 243, 6, 8, 4, 245, 121, 8, 4, 246, 221, 8, 4, 239, + 227, 8, 4, 245, 129, 8, 4, 245, 127, 8, 4, 245, 128, 8, 4, 248, 151, 8, + 4, 245, 126, 8, 4, 245, 124, 8, 4, 245, 125, 8, 4, 251, 191, 8, 4, 245, + 123, 8, 4, 245, 132, 8, 4, 245, 133, 8, 4, 251, 192, 8, 4, 245, 130, 8, + 4, 239, 228, 8, 4, 245, 131, 8, 4, 245, 136, 8, 4, 245, 137, 8, 4, 251, + 193, 8, 4, 245, 134, 8, 4, 239, 229, 8, 4, 245, 135, 8, 4, 244, 253, 8, + 4, 244, 254, 8, 4, 248, 117, 8, 4, 244, 252, 8, 4, 245, 3, 8, 4, 251, 74, + 8, 4, 245, 2, 8, 4, 245, 0, 8, 4, 245, 1, 8, 4, 251, 73, 8, 4, 244, 255, + 8, 4, 245, 6, 8, 4, 245, 7, 8, 4, 251, 75, 8, 4, 245, 4, 8, 4, 239, 157, + 8, 4, 245, 5, 8, 4, 245, 10, 8, 4, 245, 11, 8, 4, 251, 76, 8, 4, 245, 8, + 8, 4, 239, 158, 8, 4, 245, 9, 8, 4, 241, 235, 8, 4, 245, 160, 8, 4, 246, + 165, 8, 4, 245, 158, 8, 4, 239, 253, 8, 4, 245, 173, 8, 4, 239, 252, 8, + 4, 245, 171, 8, 4, 245, 172, 8, 4, 246, 245, 8, 4, 241, 240, 8, 4, 245, + 163, 8, 4, 245, 164, 8, 4, 246, 186, 8, 4, 245, 162, 8, 4, 245, 175, 8, + 4, 245, 176, 8, 4, 246, 246, 8, 4, 245, 174, 8, 4, 239, 254, 8, 4, 241, + 242, 8, 4, 245, 180, 8, 4, 245, 181, 8, 4, 248, 160, 8, 4, 245, 178, 8, + 4, 239, 255, 8, 4, 245, 179, 8, 4, 248, 146, 8, 4, 251, 174, 8, 4, 208, + 8, 4, 247, 196, 8, 4, 245, 141, 8, 4, 251, 196, 8, 4, 245, 140, 8, 4, + 251, 189, 8, 4, 251, 190, 8, 4, 252, 246, 8, 4, 251, 188, 8, 4, 251, 180, + 8, 4, 253, 36, 8, 4, 251, 178, 8, 4, 251, 199, 8, 4, 251, 200, 8, 4, 253, + 3, 8, 4, 251, 197, 8, 4, 245, 142, 8, 4, 251, 198, 8, 4, 251, 205, 8, 4, + 251, 206, 8, 4, 254, 6, 8, 4, 251, 203, 8, 4, 245, 144, 8, 4, 251, 204, + 8, 4, 250, 133, 8, 4, 250, 134, 8, 4, 253, 104, 8, 4, 250, 132, 8, 4, + 244, 18, 8, 4, 244, 19, 8, 4, 250, 131, 8, 4, 244, 17, 8, 4, 244, 39, 8, + 4, 244, 40, 8, 4, 250, 141, 8, 4, 244, 38, 8, 4, 247, 15, 8, 4, 250, 139, + 8, 4, 253, 90, 8, 4, 250, 138, 8, 4, 250, 144, 8, 4, 250, 145, 8, 4, 253, + 118, 8, 4, 250, 142, 8, 4, 244, 41, 8, 4, 250, 143, 8, 4, 250, 149, 8, 4, + 250, 150, 8, 4, 254, 75, 8, 4, 250, 147, 8, 4, 244, 42, 8, 4, 250, 148, + 8, 4, 251, 139, 8, 4, 251, 140, 8, 4, 253, 131, 8, 4, 251, 138, 8, 4, + 245, 98, 8, 4, 245, 99, 8, 4, 251, 137, 8, 4, 245, 97, 8, 4, 245, 102, 8, + 4, 245, 103, 8, 4, 248, 144, 8, 4, 245, 101, 8, 4, 248, 143, 8, 4, 251, + 144, 8, 4, 253, 159, 8, 4, 251, 143, 8, 4, 251, 151, 8, 4, 251, 153, 8, + 4, 253, 132, 8, 4, 251, 149, 8, 4, 245, 104, 8, 4, 251, 150, 8, 4, 251, + 163, 8, 4, 251, 165, 8, 4, 254, 141, 8, 4, 251, 161, 8, 4, 245, 110, 8, + 4, 251, 162, 8, 4, 244, 22, 8, 4, 244, 23, 8, 4, 248, 71, 8, 4, 244, 21, + 8, 4, 239, 45, 8, 4, 239, 46, 8, 4, 241, 166, 8, 4, 239, 44, 8, 4, 239, + 48, 8, 4, 244, 27, 8, 4, 239, 47, 8, 4, 244, 25, 8, 4, 244, 26, 8, 4, + 248, 72, 8, 4, 244, 24, 8, 4, 241, 167, 8, 4, 244, 30, 8, 4, 248, 73, 8, + 4, 244, 28, 8, 4, 239, 49, 8, 4, 244, 29, 8, 4, 244, 32, 8, 4, 244, 33, + 8, 4, 248, 74, 8, 4, 244, 31, 8, 4, 244, 233, 8, 4, 244, 234, 8, 4, 248, + 113, 8, 4, 244, 232, 8, 4, 239, 147, 8, 4, 239, 148, 8, 4, 244, 231, 8, + 4, 239, 146, 8, 4, 239, 149, 8, 4, 244, 239, 8, 4, 244, 237, 8, 4, 244, + 238, 8, 4, 248, 114, 8, 4, 244, 236, 8, 4, 244, 242, 8, 4, 248, 115, 8, + 4, 244, 240, 8, 4, 239, 150, 8, 4, 244, 241, 8, 4, 244, 245, 8, 4, 244, + 246, 8, 4, 251, 66, 8, 4, 244, 243, 8, 4, 239, 151, 8, 4, 244, 244, 8, 4, + 245, 22, 8, 4, 245, 23, 8, 4, 247, 44, 8, 4, 241, 207, 8, 4, 239, 161, 8, + 4, 239, 162, 8, 4, 245, 21, 8, 4, 239, 160, 8, 4, 239, 164, 8, 4, 245, + 29, 8, 4, 239, 163, 8, 4, 245, 27, 8, 4, 245, 28, 8, 4, 247, 19, 8, 4, + 241, 208, 8, 4, 245, 31, 8, 4, 245, 32, 8, 4, 247, 185, 8, 4, 245, 30, 8, + 4, 252, 114, 8, 4, 252, 115, 8, 4, 253, 38, 8, 4, 252, 113, 8, 4, 246, + 64, 8, 4, 246, 65, 8, 4, 252, 112, 8, 4, 246, 63, 8, 4, 246, 67, 8, 4, + 252, 121, 8, 4, 252, 119, 8, 4, 252, 120, 8, 4, 254, 18, 8, 4, 252, 117, + 8, 4, 252, 131, 8, 4, 252, 133, 8, 4, 254, 174, 8, 4, 252, 129, 8, 4, + 246, 72, 8, 4, 252, 130, 8, 4, 248, 202, 8, 4, 252, 152, 8, 4, 253, 28, + 8, 4, 252, 151, 8, 4, 246, 90, 8, 4, 246, 91, 8, 4, 252, 149, 8, 4, 246, + 89, 8, 4, 246, 102, 8, 4, 246, 103, 8, 4, 252, 157, 8, 4, 246, 101, 8, 4, + 248, 203, 8, 4, 252, 155, 8, 4, 252, 251, 8, 4, 252, 154, 8, 4, 252, 160, + 8, 4, 252, 161, 8, 4, 252, 233, 8, 4, 252, 158, 8, 4, 246, 104, 8, 4, + 252, 159, 8, 4, 252, 164, 8, 4, 252, 165, 8, 4, 253, 203, 8, 4, 252, 162, + 8, 4, 246, 105, 8, 4, 252, 163, 8, 29, 248, 143, 8, 29, 253, 42, 8, 29, + 248, 83, 8, 29, 241, 207, 8, 29, 248, 15, 8, 29, 247, 202, 8, 29, 241, + 139, 8, 29, 248, 47, 8, 29, 252, 239, 8, 29, 241, 159, 8, 29, 248, 97, 8, + 29, 241, 98, 8, 29, 248, 101, 8, 29, 252, 251, 8, 29, 248, 136, 8, 29, + 241, 161, 8, 29, 248, 170, 8, 29, 252, 205, 8, 29, 248, 212, 8, 29, 248, + 16, 8, 29, 241, 118, 8, 29, 247, 11, 8, 29, 241, 140, 8, 29, 241, 208, 8, + 29, 253, 18, 8, 29, 253, 255, 8, 29, 241, 167, 8, 29, 248, 211, 8, 29, + 248, 138, 8, 29, 248, 62, 8, 29, 248, 202, 8, 29, 248, 193, 8, 29, 248, + 160, 8, 29, 248, 190, 8, 29, 252, 226, 8, 29, 253, 90, 8, 29, 241, 209, + 8, 29, 248, 74, 8, 29, 248, 56, 8, 29, 241, 166, 8, 29, 253, 10, 8, 29, + 253, 31, 8, 29, 241, 242, 8, 29, 248, 93, 8, 29, 253, 213, 8, 29, 241, + 111, 8, 29, 248, 8, 8, 29, 241, 160, 8, 29, 241, 235, 8, 29, 248, 213, 8, + 29, 241, 240, 8, 29, 246, 217, 8, 29, 238, 85, 8, 29, 241, 200, 8, 29, + 253, 6, 34, 4, 252, 231, 34, 4, 249, 224, 34, 4, 247, 149, 34, 4, 247, + 226, 34, 4, 246, 53, 34, 4, 247, 46, 34, 4, 242, 203, 34, 4, 247, 28, 34, + 4, 244, 118, 34, 4, 244, 66, 34, 4, 239, 107, 34, 4, 243, 116, 34, 4, + 247, 140, 34, 4, 247, 113, 34, 4, 247, 106, 34, 4, 240, 238, 34, 4, 243, + 61, 34, 4, 238, 184, 34, 4, 247, 168, 34, 4, 247, 197, 34, 4, 247, 30, + 34, 4, 244, 187, 34, 4, 247, 50, 34, 4, 241, 70, 34, 4, 247, 64, 34, 4, + 241, 25, 34, 4, 248, 6, 34, 4, 247, 38, 34, 4, 244, 230, 34, 4, 247, 62, + 34, 4, 248, 80, 34, 4, 239, 135, 34, 4, 247, 144, 34, 4, 247, 172, 34, 4, + 247, 181, 34, 4, 241, 206, 34, 4, 74, 34, 4, 253, 79, 34, 4, 253, 41, 34, + 4, 250, 76, 34, 4, 253, 27, 34, 4, 252, 100, 34, 4, 252, 223, 34, 4, 249, + 115, 34, 4, 253, 30, 34, 4, 251, 1, 34, 4, 250, 183, 34, 4, 244, 128, 34, + 4, 250, 17, 34, 4, 253, 88, 34, 4, 253, 138, 34, 4, 253, 44, 34, 4, 247, + 7, 34, 4, 249, 190, 34, 4, 243, 64, 34, 4, 253, 42, 34, 4, 253, 37, 34, + 4, 253, 12, 34, 4, 248, 107, 34, 4, 253, 24, 34, 4, 247, 51, 34, 4, 253, + 72, 34, 4, 247, 238, 34, 4, 253, 143, 34, 4, 253, 104, 34, 4, 248, 113, + 34, 4, 253, 28, 34, 4, 253, 7, 34, 4, 244, 212, 34, 4, 253, 39, 34, 4, + 252, 239, 34, 4, 252, 248, 34, 4, 247, 44, 34, 4, 57, 34, 4, 253, 5, 34, + 4, 244, 204, 34, 4, 154, 34, 4, 250, 61, 34, 4, 252, 208, 34, 4, 252, 93, + 34, 4, 213, 34, 4, 246, 199, 34, 4, 252, 211, 34, 4, 248, 99, 34, 4, 248, + 85, 34, 4, 244, 65, 34, 4, 244, 126, 34, 4, 248, 46, 34, 4, 252, 234, 34, + 4, 252, 243, 34, 4, 252, 202, 34, 4, 246, 173, 34, 4, 246, 196, 34, 4, + 243, 62, 34, 4, 252, 200, 34, 4, 208, 34, 4, 252, 203, 34, 4, 247, 180, + 34, 4, 252, 204, 34, 4, 246, 165, 34, 4, 252, 226, 34, 4, 246, 223, 34, + 4, 252, 215, 34, 4, 252, 213, 34, 4, 251, 65, 34, 4, 191, 34, 4, 177, 34, + 4, 247, 39, 34, 4, 241, 201, 34, 4, 252, 205, 34, 4, 198, 34, 4, 252, + 201, 34, 4, 246, 181, 34, 4, 252, 220, 34, 4, 251, 99, 34, 4, 248, 65, + 34, 4, 247, 116, 34, 4, 246, 57, 34, 4, 247, 189, 34, 4, 242, 204, 34, 4, + 249, 126, 34, 4, 244, 119, 34, 4, 244, 68, 34, 4, 239, 108, 34, 4, 243, + 119, 34, 4, 248, 39, 34, 4, 252, 80, 34, 4, 247, 109, 34, 4, 241, 80, 34, + 4, 243, 67, 34, 4, 238, 185, 34, 4, 247, 87, 34, 4, 248, 149, 34, 4, 249, + 204, 34, 4, 244, 194, 34, 4, 247, 104, 34, 4, 241, 239, 34, 4, 248, 210, + 34, 4, 246, 115, 34, 4, 247, 126, 34, 4, 250, 137, 34, 4, 244, 235, 34, + 4, 247, 234, 34, 4, 247, 162, 34, 4, 239, 137, 34, 4, 250, 37, 34, 4, + 247, 175, 34, 4, 247, 183, 34, 4, 245, 26, 34, 4, 66, 34, 4, 253, 121, + 34, 4, 253, 59, 34, 4, 250, 96, 34, 4, 253, 109, 34, 4, 252, 107, 34, 4, + 253, 82, 34, 4, 249, 116, 34, 4, 253, 48, 34, 4, 251, 3, 34, 4, 250, 185, + 34, 4, 244, 130, 34, 4, 250, 19, 34, 4, 253, 178, 34, 4, 253, 139, 34, 4, + 253, 18, 34, 4, 247, 213, 34, 4, 249, 191, 34, 4, 243, 66, 34, 4, 253, + 22, 34, 4, 253, 3, 34, 4, 253, 31, 34, 4, 248, 109, 34, 4, 253, 26, 34, + 4, 246, 246, 34, 4, 253, 97, 34, 4, 247, 240, 34, 4, 253, 172, 34, 4, + 253, 118, 34, 4, 248, 115, 34, 4, 252, 233, 34, 4, 253, 34, 34, 4, 244, + 214, 34, 4, 253, 40, 34, 4, 252, 229, 34, 4, 252, 227, 34, 4, 247, 185, + 34, 4, 73, 34, 4, 253, 106, 34, 4, 244, 218, 34, 4, 253, 21, 34, 4, 248, + 64, 34, 4, 253, 10, 34, 4, 252, 103, 34, 4, 253, 50, 34, 4, 247, 254, 34, + 4, 253, 98, 34, 4, 251, 2, 34, 4, 250, 184, 34, 4, 244, 129, 34, 4, 250, + 18, 34, 4, 243, 118, 34, 4, 253, 148, 34, 4, 253, 108, 34, 4, 96, 34, 4, + 246, 228, 34, 4, 248, 26, 34, 4, 243, 65, 34, 4, 253, 49, 34, 4, 252, + 246, 34, 4, 253, 57, 34, 4, 248, 108, 34, 4, 253, 25, 34, 4, 246, 245, + 34, 4, 253, 65, 34, 4, 247, 239, 34, 4, 253, 66, 34, 4, 253, 90, 34, 4, + 248, 114, 34, 4, 252, 251, 34, 4, 253, 33, 34, 4, 244, 213, 34, 4, 253, + 76, 34, 4, 253, 14, 34, 4, 253, 8, 34, 4, 247, 19, 34, 4, 72, 34, 4, 252, + 232, 34, 4, 244, 208, 34, 4, 252, 252, 34, 4, 250, 66, 34, 4, 252, 250, + 34, 4, 252, 97, 34, 4, 253, 0, 34, 4, 249, 114, 34, 4, 253, 73, 34, 4, + 251, 0, 34, 4, 250, 182, 34, 4, 244, 67, 34, 4, 244, 127, 34, 4, 250, 16, + 34, 4, 243, 117, 34, 4, 253, 147, 34, 4, 253, 95, 34, 4, 253, 9, 34, 4, + 246, 247, 34, 4, 249, 189, 34, 4, 243, 63, 34, 4, 253, 80, 34, 4, 253, + 36, 34, 4, 253, 20, 34, 4, 248, 106, 34, 4, 253, 52, 34, 4, 246, 186, 34, + 4, 253, 46, 34, 4, 246, 251, 34, 4, 253, 141, 34, 4, 253, 117, 34, 4, + 247, 43, 34, 4, 253, 96, 34, 4, 253, 6, 34, 4, 244, 211, 34, 4, 239, 136, + 34, 4, 253, 103, 34, 4, 250, 23, 34, 4, 253, 13, 34, 4, 252, 247, 34, 4, + 248, 119, 34, 4, 253, 69, 34, 4, 230, 77, 34, 237, 67, 34, 246, 162, 240, + 121, 34, 233, 82, 76, 34, 4, 240, 231, 252, 234, 34, 4, 240, 231, 177, + 34, 4, 240, 231, 247, 104, 34, 14, 238, 214, 34, 14, 239, 59, 34, 14, + 245, 253, 34, 14, 248, 112, 34, 14, 242, 173, 34, 14, 247, 139, 34, 14, + 247, 207, 34, 14, 241, 117, 34, 14, 238, 190, 34, 14, 244, 69, 34, 14, + 246, 2, 34, 14, 243, 75, 34, 14, 244, 34, 34, 21, 240, 126, 34, 21, 118, + 34, 21, 113, 34, 21, 166, 34, 21, 158, 34, 21, 173, 34, 21, 183, 34, 21, + 194, 34, 21, 187, 34, 21, 192, 34, 4, 240, 231, 198, 34, 4, 240, 231, + 253, 57, 28, 6, 1, 235, 236, 28, 3, 1, 235, 236, 28, 6, 1, 237, 180, 28, + 3, 1, 237, 180, 28, 6, 1, 200, 246, 255, 28, 3, 1, 200, 246, 255, 28, 6, + 1, 240, 146, 28, 3, 1, 240, 146, 28, 6, 1, 237, 201, 28, 3, 1, 237, 201, + 28, 6, 1, 231, 254, 253, 137, 28, 3, 1, 231, 254, 253, 137, 28, 6, 1, + 241, 104, 237, 68, 28, 3, 1, 241, 104, 237, 68, 28, 6, 1, 235, 195, 247, + 118, 28, 3, 1, 235, 195, 247, 118, 28, 6, 1, 247, 119, 2, 247, 248, 247, + 118, 28, 3, 1, 247, 119, 2, 247, 248, 247, 118, 28, 6, 1, 233, 93, 247, + 25, 28, 3, 1, 233, 93, 247, 25, 28, 6, 1, 200, 252, 233, 28, 3, 1, 200, + 252, 233, 28, 6, 1, 233, 93, 57, 28, 3, 1, 233, 93, 57, 28, 6, 1, 237, + 58, 237, 102, 246, 183, 28, 3, 1, 237, 58, 237, 102, 246, 183, 28, 6, 1, + 235, 153, 246, 183, 28, 3, 1, 235, 153, 246, 183, 28, 6, 1, 233, 93, 237, + 58, 237, 102, 246, 183, 28, 3, 1, 233, 93, 237, 58, 237, 102, 246, 183, + 28, 6, 1, 253, 202, 28, 3, 1, 253, 202, 28, 6, 1, 246, 227, 253, 20, 28, + 3, 1, 246, 227, 253, 20, 28, 6, 1, 246, 227, 253, 58, 28, 3, 1, 246, 227, + 253, 58, 28, 6, 1, 246, 227, 253, 87, 28, 3, 1, 246, 227, 253, 87, 28, 6, + 1, 231, 241, 73, 28, 3, 1, 231, 241, 73, 28, 6, 1, 232, 15, 73, 28, 3, 1, + 232, 15, 73, 28, 6, 1, 47, 231, 241, 73, 28, 3, 1, 47, 231, 241, 73, 28, + 1, 230, 80, 73, 36, 28, 240, 80, 36, 28, 253, 53, 233, 152, 53, 36, 28, + 235, 56, 233, 152, 53, 36, 28, 233, 117, 233, 152, 53, 234, 225, 231, + 198, 36, 28, 235, 181, 36, 28, 233, 225, 28, 235, 181, 28, 233, 225, 28, + 6, 1, 247, 134, 28, 3, 1, 247, 134, 28, 6, 1, 241, 124, 28, 3, 1, 241, + 124, 28, 6, 1, 242, 38, 28, 3, 1, 242, 38, 28, 6, 1, 241, 30, 28, 3, 1, + 241, 30, 28, 6, 1, 241, 125, 28, 3, 1, 241, 125, 28, 6, 1, 254, 212, 2, + 237, 44, 88, 28, 3, 1, 254, 212, 2, 237, 44, 88, 28, 6, 1, 247, 59, 28, + 3, 1, 247, 59, 28, 6, 1, 242, 12, 28, 3, 1, 242, 12, 28, 6, 1, 242, 11, + 28, 3, 1, 242, 11, 28, 6, 1, 241, 255, 28, 3, 1, 241, 255, 28, 6, 1, 247, + 151, 28, 3, 1, 247, 151, 28, 6, 1, 241, 16, 28, 3, 1, 241, 16, 52, 1, + 235, 63, 206, 253, 122, 241, 62, 52, 1, 235, 63, 206, 247, 24, 241, 62, + 52, 1, 235, 63, 206, 253, 122, 238, 48, 52, 1, 235, 63, 206, 247, 24, + 238, 48, 52, 1, 235, 63, 206, 253, 122, 253, 132, 52, 1, 235, 63, 206, + 247, 24, 253, 132, 52, 1, 235, 63, 206, 253, 122, 253, 3, 52, 1, 235, 63, + 206, 247, 24, 253, 3, 52, 1, 230, 153, 237, 50, 206, 125, 52, 1, 201, + 237, 50, 206, 125, 52, 1, 253, 152, 237, 50, 206, 125, 52, 1, 184, 237, + 50, 206, 125, 52, 1, 231, 237, 237, 50, 206, 125, 52, 1, 230, 153, 237, + 50, 231, 211, 206, 125, 52, 1, 201, 237, 50, 231, 211, 206, 125, 52, 1, + 253, 152, 237, 50, 231, 211, 206, 125, 52, 1, 184, 237, 50, 231, 211, + 206, 125, 52, 1, 231, 237, 237, 50, 231, 211, 206, 125, 52, 1, 230, 153, + 231, 211, 206, 125, 52, 1, 201, 231, 211, 206, 125, 52, 1, 253, 152, 231, + 211, 206, 125, 52, 1, 184, 231, 211, 206, 125, 52, 1, 231, 237, 231, 211, + 206, 125, 52, 1, 56, 61, 125, 52, 1, 56, 237, 84, 52, 1, 56, 169, 125, + 52, 1, 203, 41, 237, 79, 237, 98, 52, 1, 237, 105, 99, 58, 52, 1, 237, + 105, 103, 58, 52, 1, 237, 105, 229, 165, 76, 52, 1, 237, 105, 233, 70, + 229, 165, 76, 52, 1, 184, 233, 70, 229, 165, 76, 52, 1, 237, 165, 22, + 201, 240, 167, 52, 1, 237, 165, 22, 184, 240, 167, 7, 6, 1, 227, 192, + 240, 174, 7, 3, 1, 227, 192, 240, 174, 7, 6, 1, 227, 192, 246, 224, 7, 3, + 1, 227, 192, 246, 224, 7, 6, 1, 241, 153, 7, 3, 1, 241, 153, 7, 6, 1, + 254, 13, 7, 3, 1, 254, 13, 7, 6, 1, 232, 56, 7, 3, 1, 232, 56, 7, 6, 1, + 230, 180, 7, 3, 1, 230, 180, 7, 6, 1, 232, 18, 2, 237, 67, 7, 3, 1, 232, + 18, 2, 237, 67, 7, 1, 3, 6, 254, 191, 7, 1, 3, 6, 193, 7, 6, 1, 252, 212, + 7, 3, 1, 252, 212, 7, 6, 1, 253, 168, 7, 3, 1, 253, 168, 7, 6, 1, 252, + 222, 7, 3, 1, 252, 222, 7, 6, 1, 253, 169, 7, 3, 1, 253, 169, 7, 6, 1, + 255, 2, 2, 169, 125, 7, 3, 1, 255, 2, 2, 169, 125, 7, 6, 1, 253, 114, 7, + 3, 1, 253, 114, 7, 6, 1, 200, 255, 62, 2, 246, 164, 7, 3, 1, 200, 255, + 62, 2, 246, 164, 7, 6, 1, 255, 67, 2, 82, 7, 3, 1, 255, 67, 2, 82, 7, 6, + 1, 255, 67, 2, 233, 74, 82, 7, 3, 1, 255, 67, 2, 233, 74, 82, 7, 6, 1, + 255, 67, 2, 195, 22, 233, 74, 82, 7, 3, 1, 255, 67, 2, 195, 22, 233, 74, + 82, 7, 6, 1, 237, 150, 149, 7, 3, 1, 237, 150, 149, 7, 6, 1, 255, 58, 2, + 201, 82, 7, 3, 1, 255, 58, 2, 201, 82, 7, 6, 1, 130, 2, 182, 195, 233, + 87, 7, 3, 1, 130, 2, 182, 195, 233, 87, 7, 6, 1, 130, 2, 240, 202, 7, 3, + 1, 130, 2, 240, 202, 7, 6, 1, 252, 220, 7, 3, 1, 252, 220, 7, 6, 1, 255, + 70, 2, 195, 235, 42, 230, 126, 7, 3, 1, 255, 70, 2, 195, 235, 42, 230, + 126, 7, 6, 1, 255, 70, 2, 232, 22, 7, 3, 1, 255, 70, 2, 232, 22, 7, 6, 1, + 255, 70, 2, 233, 241, 240, 133, 7, 3, 1, 255, 70, 2, 233, 241, 240, 133, + 7, 6, 1, 255, 75, 2, 195, 235, 42, 230, 126, 7, 3, 1, 255, 75, 2, 195, + 235, 42, 230, 126, 7, 6, 1, 255, 75, 2, 233, 74, 82, 7, 3, 1, 255, 75, 2, + 233, 74, 82, 7, 6, 1, 255, 57, 233, 143, 7, 3, 1, 255, 57, 233, 143, 7, + 6, 1, 254, 5, 233, 143, 7, 3, 1, 254, 5, 233, 143, 7, 6, 1, 255, 69, 2, + 233, 74, 82, 7, 3, 1, 255, 69, 2, 233, 74, 82, 7, 6, 1, 253, 201, 7, 3, + 1, 253, 201, 7, 6, 1, 230, 219, 254, 193, 7, 3, 1, 230, 219, 254, 193, 7, + 6, 1, 241, 19, 2, 82, 7, 3, 1, 241, 19, 2, 82, 7, 6, 1, 241, 19, 2, 195, + 235, 42, 230, 126, 7, 3, 1, 241, 19, 2, 195, 235, 42, 230, 126, 7, 6, 1, + 242, 18, 7, 3, 1, 242, 18, 7, 6, 1, 253, 125, 7, 3, 1, 253, 125, 7, 6, 1, + 253, 182, 7, 3, 1, 253, 182, 7, 6, 1, 248, 10, 7, 3, 1, 248, 10, 52, 1, + 254, 165, 7, 3, 1, 249, 211, 7, 3, 1, 247, 18, 7, 3, 1, 251, 26, 7, 3, 1, + 251, 79, 7, 3, 1, 248, 152, 7, 1, 3, 6, 248, 152, 7, 3, 1, 248, 184, 7, + 3, 1, 253, 199, 7, 6, 1, 235, 38, 222, 222, 7, 3, 1, 235, 38, 222, 222, + 7, 6, 1, 235, 38, 254, 191, 7, 3, 1, 235, 38, 254, 191, 7, 6, 1, 235, 38, + 214, 7, 6, 1, 209, 235, 38, 214, 7, 3, 1, 209, 235, 38, 214, 7, 6, 1, + 209, 149, 7, 3, 1, 209, 149, 7, 6, 1, 235, 38, 146, 7, 3, 1, 235, 38, + 146, 7, 6, 1, 235, 38, 193, 7, 3, 1, 235, 38, 193, 7, 6, 1, 235, 38, 254, + 183, 7, 3, 1, 235, 38, 254, 183, 52, 1, 184, 230, 125, 235, 24, 52, 1, + 237, 66, 52, 1, 240, 125, 237, 51, 53, 7, 6, 1, 232, 44, 7, 3, 1, 232, + 44, 7, 230, 146, 1, 200, 254, 191, 7, 230, 146, 1, 200, 254, 187, 7, 230, + 146, 1, 233, 70, 185, 7, 230, 146, 1, 255, 55, 238, 22, 7, 230, 146, 1, + 235, 83, 185, 237, 42, 240, 127, 1, 57, 237, 42, 240, 127, 1, 74, 237, + 42, 240, 127, 5, 232, 176, 237, 42, 240, 127, 1, 66, 237, 42, 240, 127, + 1, 72, 237, 42, 240, 127, 1, 73, 237, 42, 240, 127, 5, 234, 117, 237, 42, + 240, 127, 1, 253, 33, 237, 42, 240, 127, 1, 247, 158, 237, 42, 240, 127, + 1, 253, 76, 237, 42, 240, 127, 1, 248, 52, 237, 42, 240, 127, 5, 231, + 206, 237, 42, 240, 127, 1, 253, 66, 237, 42, 240, 127, 1, 247, 29, 237, + 42, 240, 127, 1, 253, 90, 237, 42, 240, 127, 1, 250, 129, 237, 42, 240, + 127, 1, 247, 217, 237, 42, 240, 127, 1, 241, 82, 237, 42, 240, 127, 1, + 247, 130, 237, 42, 240, 127, 1, 243, 38, 237, 42, 240, 127, 1, 96, 237, + 42, 240, 127, 1, 246, 228, 237, 42, 240, 127, 1, 253, 57, 237, 42, 240, + 127, 1, 248, 26, 237, 42, 240, 127, 1, 253, 8, 237, 42, 240, 127, 1, 253, + 50, 237, 42, 240, 127, 1, 247, 99, 237, 42, 240, 127, 1, 253, 98, 237, + 42, 240, 127, 1, 247, 254, 237, 42, 240, 127, 1, 253, 14, 237, 42, 240, + 127, 1, 252, 246, 237, 42, 240, 127, 1, 253, 49, 237, 42, 240, 127, 1, + 248, 151, 237, 42, 240, 127, 1, 253, 25, 237, 42, 240, 127, 1, 253, 21, + 237, 42, 240, 127, 31, 5, 57, 237, 42, 240, 127, 31, 5, 74, 237, 42, 240, + 127, 31, 5, 66, 237, 42, 240, 127, 31, 5, 72, 237, 42, 240, 127, 31, 5, + 252, 220, 237, 42, 240, 127, 237, 189, 235, 190, 237, 42, 240, 127, 237, + 189, 235, 191, 237, 42, 240, 127, 237, 189, 236, 146, 237, 42, 240, 127, + 237, 189, 236, 147, 217, 1, 177, 217, 1, 246, 178, 217, 1, 252, 205, 217, + 1, 246, 169, 217, 1, 252, 215, 217, 1, 246, 176, 217, 1, 252, 213, 217, + 1, 246, 181, 217, 1, 252, 202, 217, 1, 246, 173, 217, 1, 252, 203, 217, + 1, 252, 201, 217, 1, 213, 217, 1, 246, 182, 217, 1, 252, 211, 217, 1, + 198, 217, 1, 246, 216, 217, 1, 240, 240, 217, 1, 246, 254, 217, 1, 252, + 208, 217, 1, 246, 223, 217, 1, 252, 226, 217, 1, 3, 57, 217, 1, 191, 217, + 1, 208, 217, 1, 252, 200, 217, 1, 246, 165, 217, 1, 252, 204, 217, 1, + 154, 217, 1, 57, 217, 1, 74, 217, 1, 66, 217, 1, 72, 217, 1, 73, 217, 1, + 253, 35, 217, 1, 253, 83, 217, 1, 252, 234, 217, 1, 247, 77, 217, 1, 252, + 231, 217, 231, 189, 1, 252, 208, 217, 231, 189, 1, 191, 217, 1, 246, 191, + 217, 1, 240, 150, 217, 1, 246, 192, 217, 1, 246, 203, 217, 1, 231, 235, + 191, 217, 1, 233, 62, 246, 165, 217, 1, 237, 107, 154, 217, 1, 232, 78, + 252, 234, 217, 231, 189, 1, 208, 217, 231, 149, 1, 208, 217, 1, 228, 184, + 217, 237, 62, 247, 148, 76, 217, 47, 247, 148, 76, 217, 165, 240, 192, + 217, 165, 47, 240, 192, 141, 5, 231, 206, 141, 5, 233, 102, 141, 1, 57, + 141, 1, 252, 212, 141, 1, 74, 141, 1, 252, 216, 141, 1, 66, 141, 1, 252, + 224, 141, 1, 153, 146, 141, 1, 153, 252, 249, 141, 1, 153, 149, 141, 1, + 153, 252, 245, 141, 1, 72, 141, 1, 252, 231, 141, 1, 252, 221, 141, 1, + 73, 141, 1, 252, 220, 141, 1, 252, 222, 141, 1, 177, 141, 1, 246, 178, + 141, 1, 252, 205, 141, 1, 246, 202, 141, 1, 246, 169, 141, 1, 252, 215, + 141, 1, 246, 176, 141, 1, 252, 213, 141, 1, 246, 213, 141, 1, 246, 181, + 141, 1, 246, 191, 141, 1, 240, 150, 141, 1, 246, 192, 141, 1, 240, 166, + 141, 1, 246, 203, 141, 1, 252, 202, 141, 1, 246, 173, 141, 1, 252, 203, + 141, 1, 246, 196, 141, 1, 252, 201, 141, 1, 213, 141, 1, 246, 182, 141, + 1, 252, 211, 141, 1, 246, 199, 141, 1, 198, 141, 1, 191, 141, 1, 208, + 141, 1, 252, 200, 141, 1, 252, 243, 141, 1, 246, 165, 141, 1, 246, 190, + 141, 1, 252, 204, 141, 1, 154, 141, 1, 246, 225, 141, 231, 194, 5, 239, + 2, 141, 31, 5, 252, 212, 141, 31, 5, 74, 141, 31, 5, 252, 216, 141, 31, + 5, 66, 141, 31, 5, 252, 224, 141, 31, 5, 153, 146, 141, 31, 5, 153, 252, + 249, 141, 31, 5, 153, 149, 141, 31, 5, 153, 252, 245, 141, 31, 5, 72, + 141, 31, 5, 252, 231, 141, 31, 5, 252, 221, 141, 31, 5, 73, 141, 31, 5, + 252, 220, 141, 31, 5, 252, 222, 141, 5, 235, 43, 141, 237, 109, 141, 47, + 237, 109, 141, 21, 240, 126, 141, 21, 118, 141, 21, 113, 141, 21, 166, + 141, 21, 158, 141, 21, 173, 141, 21, 183, 141, 21, 194, 141, 21, 187, + 141, 21, 192, 240, 119, 254, 188, 21, 240, 126, 240, 119, 254, 188, 21, + 118, 240, 119, 254, 188, 21, 113, 240, 119, 254, 188, 21, 166, 240, 119, + 254, 188, 21, 158, 240, 119, 254, 188, 21, 173, 240, 119, 254, 188, 21, + 183, 240, 119, 254, 188, 21, 194, 240, 119, 254, 188, 21, 187, 240, 119, + 254, 188, 21, 192, 240, 119, 254, 188, 1, 177, 240, 119, 254, 188, 1, + 246, 178, 240, 119, 254, 188, 1, 252, 205, 240, 119, 254, 188, 1, 246, + 169, 240, 119, 254, 188, 1, 252, 204, 240, 119, 254, 188, 1, 246, 165, + 240, 119, 254, 188, 1, 252, 226, 240, 119, 254, 188, 1, 246, 181, 240, + 119, 254, 188, 1, 252, 202, 240, 119, 254, 188, 1, 250, 95, 240, 119, + 254, 188, 1, 252, 201, 240, 119, 254, 188, 1, 213, 240, 119, 254, 188, 1, + 246, 182, 240, 119, 254, 188, 1, 198, 240, 119, 254, 188, 1, 252, 203, + 240, 119, 254, 188, 1, 252, 211, 240, 119, 254, 188, 1, 208, 240, 119, + 254, 188, 1, 191, 240, 119, 254, 188, 1, 252, 200, 240, 119, 254, 188, 1, + 252, 208, 240, 119, 254, 188, 1, 246, 173, 240, 119, 254, 188, 1, 154, + 240, 119, 254, 188, 1, 252, 243, 240, 119, 254, 188, 1, 252, 215, 240, + 119, 254, 188, 1, 57, 240, 119, 254, 188, 1, 253, 15, 240, 119, 254, 188, + 1, 74, 240, 119, 254, 188, 1, 252, 220, 240, 119, 254, 188, 31, 253, 71, + 240, 119, 254, 188, 31, 72, 240, 119, 254, 188, 31, 66, 240, 119, 254, + 188, 31, 252, 231, 240, 119, 254, 188, 31, 73, 240, 119, 254, 188, 206, + 235, 203, 240, 119, 254, 188, 206, 238, 135, 240, 119, 254, 188, 206, + 242, 232, 235, 203, 240, 119, 254, 188, 5, 247, 129, 240, 119, 254, 188, + 5, 245, 177, 237, 47, 1, 177, 237, 47, 1, 252, 205, 237, 47, 1, 246, 169, + 237, 47, 1, 252, 202, 237, 47, 1, 252, 203, 237, 47, 1, 252, 201, 237, + 47, 1, 213, 237, 47, 1, 252, 211, 237, 47, 1, 198, 237, 47, 1, 252, 215, + 237, 47, 1, 252, 213, 237, 47, 1, 246, 181, 237, 47, 1, 252, 204, 237, + 47, 1, 208, 237, 47, 1, 252, 200, 237, 47, 1, 191, 237, 47, 1, 252, 208, + 237, 47, 1, 154, 237, 47, 1, 248, 99, 237, 47, 1, 241, 201, 237, 47, 1, + 247, 180, 237, 47, 1, 245, 24, 237, 47, 1, 57, 237, 47, 31, 5, 74, 237, + 47, 31, 5, 66, 237, 47, 31, 5, 72, 237, 47, 31, 5, 252, 221, 237, 47, 31, + 5, 73, 237, 47, 31, 5, 252, 222, 237, 47, 31, 5, 253, 100, 237, 47, 31, + 5, 254, 49, 237, 47, 231, 194, 5, 253, 69, 237, 47, 231, 194, 5, 199, + 237, 47, 231, 194, 5, 146, 237, 47, 231, 194, 5, 212, 237, 47, 235, 43, + 237, 47, 235, 135, 76, 136, 1, 57, 136, 1, 74, 136, 1, 66, 136, 1, 72, + 136, 1, 252, 221, 136, 1, 73, 136, 1, 177, 136, 1, 246, 178, 136, 1, 252, + 205, 136, 1, 246, 202, 136, 1, 244, 223, 136, 1, 246, 169, 136, 1, 246, + 176, 136, 1, 242, 250, 136, 1, 252, 213, 136, 1, 246, 213, 136, 1, 244, + 226, 136, 1, 251, 57, 136, 1, 244, 225, 136, 1, 252, 202, 136, 1, 246, + 173, 136, 1, 252, 203, 136, 1, 246, 196, 136, 1, 251, 77, 136, 1, 252, + 201, 136, 1, 246, 192, 136, 1, 213, 136, 1, 251, 117, 136, 1, 246, 182, + 136, 1, 252, 211, 136, 1, 246, 199, 136, 1, 251, 25, 136, 1, 198, 136, 1, + 247, 66, 136, 1, 191, 136, 1, 208, 136, 1, 252, 200, 136, 1, 252, 243, + 136, 1, 246, 190, 136, 1, 252, 204, 136, 1, 154, 136, 31, 5, 252, 212, + 136, 31, 5, 74, 136, 31, 5, 252, 216, 136, 31, 5, 253, 176, 136, 31, 5, + 66, 136, 31, 5, 253, 15, 136, 31, 5, 73, 136, 31, 5, 252, 221, 136, 31, + 5, 252, 222, 136, 31, 5, 253, 71, 136, 231, 194, 5, 191, 136, 231, 194, + 5, 208, 136, 231, 194, 5, 252, 200, 136, 231, 194, 5, 252, 208, 136, 1, + 35, 254, 186, 136, 1, 35, 214, 136, 1, 35, 253, 69, 136, 231, 194, 5, 35, + 253, 69, 136, 1, 35, 253, 211, 136, 1, 35, 254, 183, 136, 1, 35, 199, + 136, 1, 35, 254, 187, 136, 1, 35, 254, 190, 136, 1, 35, 146, 136, 1, 35, + 149, 136, 1, 35, 253, 194, 136, 231, 194, 5, 35, 185, 136, 231, 194, 5, + 35, 212, 136, 21, 240, 126, 136, 21, 118, 136, 21, 113, 136, 21, 166, + 136, 21, 158, 136, 21, 173, 136, 21, 183, 136, 21, 194, 136, 21, 187, + 136, 21, 192, 136, 229, 161, 236, 236, 136, 229, 161, 237, 109, 136, 229, + 161, 47, 237, 109, 136, 229, 161, 237, 49, 237, 109, 9, 11, 225, 115, 9, + 11, 225, 116, 9, 11, 225, 117, 9, 11, 225, 118, 9, 11, 225, 119, 9, 11, + 225, 120, 9, 11, 225, 121, 9, 11, 225, 122, 9, 11, 225, 123, 9, 11, 225, + 124, 9, 11, 225, 125, 9, 11, 225, 126, 9, 11, 225, 127, 9, 11, 225, 128, + 9, 11, 225, 129, 9, 11, 225, 130, 9, 11, 225, 131, 9, 11, 225, 132, 9, + 11, 225, 133, 9, 11, 225, 134, 9, 11, 225, 135, 9, 11, 225, 136, 9, 11, + 225, 137, 9, 11, 225, 138, 9, 11, 225, 139, 9, 11, 225, 140, 9, 11, 225, + 141, 9, 11, 225, 142, 9, 11, 225, 143, 9, 11, 225, 144, 9, 11, 225, 145, + 9, 11, 225, 146, 9, 11, 225, 147, 9, 11, 225, 148, 9, 11, 225, 149, 9, + 11, 225, 150, 9, 11, 225, 151, 9, 11, 225, 152, 9, 11, 225, 153, 9, 11, + 225, 154, 9, 11, 225, 155, 9, 11, 225, 156, 9, 11, 225, 157, 9, 11, 225, + 158, 9, 11, 225, 159, 9, 11, 225, 160, 9, 11, 225, 161, 9, 11, 225, 162, + 9, 11, 225, 163, 9, 11, 225, 164, 9, 11, 225, 165, 9, 11, 225, 166, 9, + 11, 225, 167, 9, 11, 225, 168, 9, 11, 225, 169, 9, 11, 225, 170, 9, 11, + 225, 171, 9, 11, 225, 172, 9, 11, 225, 173, 9, 11, 225, 174, 9, 11, 225, + 175, 9, 11, 225, 176, 9, 11, 225, 177, 9, 11, 225, 178, 9, 11, 225, 179, + 9, 11, 225, 180, 9, 11, 225, 181, 9, 11, 225, 182, 9, 11, 225, 183, 9, + 11, 225, 184, 9, 11, 225, 185, 9, 11, 225, 186, 9, 11, 225, 187, 9, 11, + 225, 188, 9, 11, 225, 189, 9, 11, 225, 190, 9, 11, 225, 191, 9, 11, 225, + 192, 9, 11, 225, 193, 9, 11, 225, 194, 9, 11, 225, 195, 9, 11, 225, 196, + 9, 11, 225, 197, 9, 11, 225, 198, 9, 11, 225, 199, 9, 11, 225, 200, 9, + 11, 225, 201, 9, 11, 225, 202, 9, 11, 225, 203, 9, 11, 225, 204, 9, 11, + 225, 205, 9, 11, 225, 206, 9, 11, 225, 207, 9, 11, 225, 208, 9, 11, 225, + 209, 9, 11, 225, 210, 9, 11, 225, 211, 9, 11, 225, 212, 9, 11, 225, 213, + 9, 11, 225, 214, 9, 11, 225, 215, 9, 11, 225, 216, 9, 11, 225, 217, 9, + 11, 225, 218, 9, 11, 225, 219, 9, 11, 225, 220, 9, 11, 225, 221, 9, 11, + 225, 222, 9, 11, 225, 223, 9, 11, 225, 224, 9, 11, 225, 225, 9, 11, 225, + 226, 9, 11, 225, 227, 9, 11, 225, 228, 9, 11, 225, 229, 9, 11, 225, 230, + 9, 11, 225, 231, 9, 11, 225, 232, 9, 11, 225, 233, 9, 11, 225, 234, 9, + 11, 225, 235, 9, 11, 225, 236, 9, 11, 225, 237, 9, 11, 225, 238, 9, 11, + 225, 239, 9, 11, 225, 240, 9, 11, 225, 241, 9, 11, 225, 242, 9, 11, 225, + 243, 9, 11, 225, 244, 9, 11, 225, 245, 9, 11, 225, 246, 9, 11, 225, 247, + 9, 11, 225, 248, 9, 11, 225, 249, 9, 11, 225, 250, 9, 11, 225, 251, 9, + 11, 225, 252, 9, 11, 225, 253, 9, 11, 225, 254, 9, 11, 225, 255, 9, 11, + 226, 0, 9, 11, 226, 1, 9, 11, 226, 2, 9, 11, 226, 3, 9, 11, 226, 4, 9, + 11, 226, 5, 9, 11, 226, 6, 9, 11, 226, 7, 9, 11, 226, 8, 9, 11, 226, 9, + 9, 11, 226, 10, 9, 11, 226, 11, 9, 11, 226, 12, 9, 11, 226, 13, 9, 11, + 226, 14, 9, 11, 226, 15, 9, 11, 226, 16, 9, 11, 226, 17, 9, 11, 226, 18, + 9, 11, 226, 19, 9, 11, 226, 20, 9, 11, 226, 21, 9, 11, 226, 22, 9, 11, + 226, 23, 9, 11, 226, 24, 9, 11, 226, 25, 9, 11, 226, 26, 9, 11, 226, 27, + 9, 11, 226, 28, 9, 11, 226, 29, 9, 11, 226, 30, 9, 11, 226, 31, 9, 11, + 226, 32, 9, 11, 226, 33, 9, 11, 226, 34, 9, 11, 226, 35, 9, 11, 226, 36, + 9, 11, 226, 37, 9, 11, 226, 38, 9, 11, 226, 39, 9, 11, 226, 40, 9, 11, + 226, 41, 9, 11, 226, 42, 9, 11, 226, 43, 9, 11, 226, 44, 9, 11, 226, 45, + 9, 11, 226, 46, 9, 11, 226, 47, 9, 11, 226, 48, 9, 11, 226, 49, 9, 11, + 226, 50, 9, 11, 226, 51, 9, 11, 226, 52, 9, 11, 226, 53, 9, 11, 226, 54, + 9, 11, 226, 55, 9, 11, 226, 56, 9, 11, 226, 57, 9, 11, 226, 58, 9, 11, + 226, 59, 9, 11, 226, 60, 9, 11, 226, 61, 9, 11, 226, 62, 9, 11, 226, 63, + 9, 11, 226, 64, 9, 11, 226, 65, 9, 11, 226, 66, 9, 11, 226, 67, 9, 11, + 226, 68, 9, 11, 226, 69, 9, 11, 226, 70, 9, 11, 226, 71, 9, 11, 226, 72, + 9, 11, 226, 73, 9, 11, 226, 74, 9, 11, 226, 75, 9, 11, 226, 76, 9, 11, + 226, 77, 9, 11, 226, 78, 9, 11, 226, 79, 9, 11, 226, 80, 9, 11, 226, 81, + 9, 11, 226, 82, 9, 11, 226, 83, 9, 11, 226, 84, 9, 11, 226, 85, 9, 11, + 226, 86, 9, 11, 226, 87, 9, 11, 226, 88, 9, 11, 226, 89, 9, 11, 226, 90, + 9, 11, 226, 91, 9, 11, 226, 92, 9, 11, 226, 93, 9, 11, 226, 94, 9, 11, + 226, 95, 9, 11, 226, 96, 9, 11, 226, 97, 9, 11, 226, 98, 9, 11, 226, 99, + 9, 11, 226, 100, 9, 11, 226, 101, 9, 11, 226, 102, 9, 11, 226, 103, 9, + 11, 226, 104, 9, 11, 226, 105, 9, 11, 226, 106, 9, 11, 226, 107, 9, 11, + 226, 108, 9, 11, 226, 109, 9, 11, 226, 110, 9, 11, 226, 111, 9, 11, 226, + 112, 9, 11, 226, 113, 9, 11, 226, 114, 9, 11, 226, 115, 9, 11, 226, 116, + 9, 11, 226, 117, 9, 11, 226, 118, 9, 11, 226, 119, 9, 11, 226, 120, 9, + 11, 226, 121, 9, 11, 226, 122, 9, 11, 226, 123, 9, 11, 226, 124, 9, 11, + 226, 125, 9, 11, 226, 126, 9, 11, 226, 127, 9, 11, 226, 128, 9, 11, 226, + 129, 9, 11, 226, 130, 9, 11, 226, 131, 9, 11, 226, 132, 9, 11, 226, 133, + 9, 11, 226, 134, 9, 11, 226, 135, 9, 11, 226, 136, 9, 11, 226, 137, 9, + 11, 226, 138, 9, 11, 226, 139, 9, 11, 226, 140, 9, 11, 226, 141, 9, 11, + 226, 142, 9, 11, 226, 143, 9, 11, 226, 144, 9, 11, 226, 145, 9, 11, 226, + 146, 9, 11, 226, 147, 9, 11, 226, 148, 9, 11, 226, 149, 9, 11, 226, 150, + 9, 11, 226, 151, 9, 11, 226, 152, 9, 11, 226, 153, 9, 11, 226, 154, 9, + 11, 226, 155, 9, 11, 226, 156, 9, 11, 226, 157, 9, 11, 226, 158, 9, 11, + 226, 159, 9, 11, 226, 160, 9, 11, 226, 161, 9, 11, 226, 162, 9, 11, 226, + 163, 9, 11, 226, 164, 9, 11, 226, 165, 9, 11, 226, 166, 9, 11, 226, 167, + 9, 11, 226, 168, 9, 11, 226, 169, 9, 11, 226, 170, 9, 11, 226, 171, 9, + 11, 226, 172, 9, 11, 226, 173, 9, 11, 226, 174, 9, 11, 226, 175, 9, 11, + 226, 176, 9, 11, 226, 177, 9, 11, 226, 178, 9, 11, 226, 179, 9, 11, 226, + 180, 9, 11, 226, 181, 9, 11, 226, 182, 9, 11, 226, 183, 9, 11, 226, 184, + 9, 11, 226, 185, 9, 11, 226, 186, 9, 11, 226, 187, 9, 11, 226, 188, 9, + 11, 226, 189, 9, 11, 226, 190, 9, 11, 226, 191, 9, 11, 226, 192, 9, 11, + 226, 193, 9, 11, 226, 194, 9, 11, 226, 195, 9, 11, 226, 196, 9, 11, 226, + 197, 9, 11, 226, 198, 9, 11, 226, 199, 9, 11, 226, 200, 9, 11, 226, 201, + 9, 11, 226, 202, 9, 11, 226, 203, 9, 11, 226, 204, 9, 11, 226, 205, 9, + 11, 226, 206, 9, 11, 226, 207, 9, 11, 226, 208, 9, 11, 226, 209, 9, 11, + 226, 210, 9, 11, 226, 211, 9, 11, 226, 212, 9, 11, 226, 213, 9, 11, 226, + 214, 9, 11, 226, 215, 9, 11, 226, 216, 9, 11, 226, 217, 9, 11, 226, 218, + 9, 11, 226, 219, 9, 11, 226, 220, 9, 11, 226, 221, 9, 11, 226, 222, 9, + 11, 226, 223, 9, 11, 226, 224, 9, 11, 226, 225, 9, 11, 226, 226, 9, 11, + 226, 227, 9, 11, 226, 228, 9, 11, 226, 229, 9, 11, 226, 230, 9, 11, 226, + 231, 9, 11, 226, 232, 9, 11, 226, 233, 9, 11, 226, 234, 9, 11, 226, 235, + 9, 11, 226, 236, 9, 11, 226, 237, 9, 11, 226, 238, 9, 11, 226, 239, 9, + 11, 226, 240, 9, 11, 226, 241, 9, 11, 226, 242, 9, 11, 226, 243, 9, 11, + 226, 244, 9, 11, 226, 245, 9, 11, 226, 246, 9, 11, 226, 247, 9, 11, 226, + 248, 9, 11, 226, 249, 9, 11, 226, 250, 9, 11, 226, 251, 9, 11, 226, 252, + 9, 11, 226, 253, 9, 11, 226, 254, 9, 11, 226, 255, 9, 11, 227, 0, 9, 11, + 227, 1, 9, 11, 227, 2, 9, 11, 227, 3, 9, 11, 227, 4, 9, 11, 227, 5, 9, + 11, 227, 6, 9, 11, 227, 7, 9, 11, 227, 8, 9, 11, 227, 9, 9, 11, 227, 10, + 9, 11, 227, 11, 9, 11, 227, 12, 9, 11, 227, 13, 9, 11, 227, 14, 9, 11, + 227, 15, 9, 11, 227, 16, 9, 11, 227, 17, 9, 11, 227, 18, 9, 11, 227, 19, + 9, 11, 227, 20, 9, 11, 227, 21, 9, 11, 227, 22, 9, 11, 227, 23, 9, 11, + 227, 24, 9, 11, 227, 25, 9, 11, 227, 26, 9, 11, 227, 27, 9, 11, 227, 28, + 9, 11, 227, 29, 9, 11, 227, 30, 9, 11, 227, 31, 9, 11, 227, 32, 9, 11, + 227, 33, 9, 11, 227, 34, 9, 11, 227, 35, 9, 11, 227, 36, 9, 11, 227, 37, + 9, 11, 227, 38, 9, 11, 227, 39, 9, 11, 227, 40, 9, 11, 227, 41, 9, 11, + 227, 42, 9, 11, 227, 43, 9, 11, 227, 44, 9, 11, 227, 45, 9, 11, 227, 46, + 9, 11, 227, 47, 9, 11, 227, 48, 9, 11, 227, 49, 9, 11, 227, 50, 9, 11, + 227, 51, 9, 11, 227, 52, 9, 11, 227, 53, 9, 11, 227, 54, 9, 11, 227, 55, + 9, 11, 227, 56, 9, 11, 227, 57, 9, 11, 227, 58, 9, 11, 227, 59, 9, 11, + 227, 60, 9, 11, 227, 61, 9, 11, 227, 62, 9, 11, 227, 63, 9, 11, 227, 64, + 9, 11, 227, 65, 9, 11, 227, 66, 9, 11, 227, 67, 9, 11, 227, 68, 9, 11, + 227, 69, 7, 3, 20, 254, 54, 7, 3, 20, 253, 88, 7, 3, 20, 254, 55, 7, 3, + 20, 249, 245, 7, 3, 20, 249, 246, 7, 3, 20, 182, 255, 59, 254, 183, 7, 3, + 20, 253, 195, 120, 3, 20, 253, 151, 247, 94, 120, 3, 20, 253, 151, 247, + 137, 120, 3, 20, 253, 151, 247, 152, 120, 3, 20, 254, 168, 247, 94, 120, + 3, 20, 253, 151, 247, 229, 78, 1, 253, 164, 2, 238, 6, 78, 240, 143, 227, + 247, 237, 22, 78, 20, 235, 106, 253, 164, 253, 164, 237, 187, 78, 1, 229, + 182, 241, 97, 78, 1, 246, 240, 240, 174, 78, 1, 246, 240, 237, 238, 78, + 1, 246, 240, 252, 252, 78, 1, 246, 240, 247, 1, 78, 1, 246, 240, 237, + 205, 78, 1, 246, 240, 35, 247, 41, 78, 1, 246, 240, 241, 222, 78, 1, 246, + 240, 248, 171, 78, 1, 229, 182, 79, 53, 78, 1, 246, 244, 2, 246, 244, + 246, 164, 78, 1, 246, 244, 2, 253, 193, 246, 164, 78, 1, 246, 244, 2, + 237, 200, 22, 246, 244, 246, 164, 78, 1, 246, 244, 2, 237, 200, 22, 253, + 193, 246, 164, 78, 1, 92, 2, 237, 187, 78, 1, 92, 2, 235, 134, 78, 1, 92, + 2, 237, 206, 78, 1, 253, 171, 2, 235, 33, 78, 1, 241, 143, 2, 235, 33, + 78, 1, 241, 116, 2, 235, 33, 78, 1, 255, 29, 2, 237, 206, 78, 1, 253, + 200, 2, 235, 33, 78, 1, 246, 107, 2, 235, 33, 78, 1, 254, 158, 2, 235, + 33, 78, 1, 253, 164, 2, 235, 33, 78, 1, 35, 252, 214, 2, 235, 33, 78, 1, + 252, 214, 2, 235, 33, 78, 1, 244, 90, 2, 235, 33, 78, 1, 254, 100, 2, + 235, 33, 78, 1, 253, 23, 2, 235, 33, 78, 1, 239, 234, 2, 235, 33, 78, 1, + 35, 254, 231, 2, 235, 33, 78, 1, 254, 231, 2, 235, 33, 78, 1, 246, 8, 2, + 235, 33, 78, 1, 254, 140, 2, 235, 33, 78, 1, 251, 179, 2, 235, 33, 78, 1, + 246, 244, 2, 235, 33, 78, 1, 254, 156, 2, 235, 33, 78, 1, 253, 200, 2, + 238, 7, 78, 1, 253, 171, 2, 241, 11, 78, 1, 252, 214, 2, 241, 11, 78, 1, + 254, 231, 2, 241, 11, 78, 20, 92, 237, 205, 10, 1, 92, 242, 22, 44, 15, + 10, 1, 92, 242, 22, 35, 15, 10, 1, 247, 67, 44, 15, 10, 1, 247, 67, 35, + 15, 10, 1, 247, 67, 59, 15, 10, 1, 247, 67, 124, 15, 10, 1, 253, 158, 44, + 15, 10, 1, 253, 158, 35, 15, 10, 1, 253, 158, 59, 15, 10, 1, 253, 158, + 124, 15, 10, 1, 240, 244, 44, 15, 10, 1, 240, 244, 35, 15, 10, 1, 240, + 244, 59, 15, 10, 1, 240, 244, 124, 15, 10, 1, 237, 192, 44, 15, 10, 1, + 237, 192, 35, 15, 10, 1, 237, 192, 59, 15, 10, 1, 237, 192, 124, 15, 10, + 1, 241, 17, 44, 15, 10, 1, 241, 17, 35, 15, 10, 1, 241, 17, 59, 15, 10, + 1, 241, 17, 124, 15, 10, 1, 247, 110, 44, 15, 10, 1, 247, 110, 35, 15, + 10, 1, 247, 110, 59, 15, 10, 1, 247, 110, 124, 15, 10, 1, 253, 163, 44, + 15, 10, 1, 253, 163, 35, 15, 10, 1, 253, 163, 59, 15, 10, 1, 253, 163, + 124, 15, 10, 1, 241, 9, 44, 15, 10, 1, 241, 9, 35, 15, 10, 1, 241, 9, 59, + 15, 10, 1, 241, 9, 124, 15, 10, 1, 247, 72, 44, 15, 10, 1, 247, 72, 35, + 15, 10, 1, 247, 72, 59, 15, 10, 1, 247, 72, 124, 15, 10, 1, 247, 96, 44, + 15, 10, 1, 247, 96, 35, 15, 10, 1, 247, 96, 59, 15, 10, 1, 247, 96, 124, + 15, 10, 1, 240, 237, 44, 15, 10, 1, 240, 237, 35, 15, 10, 1, 240, 237, + 59, 15, 10, 1, 240, 237, 124, 15, 10, 1, 235, 100, 44, 15, 10, 1, 235, + 100, 35, 15, 10, 1, 235, 100, 59, 15, 10, 1, 235, 100, 124, 15, 10, 1, + 237, 239, 44, 15, 10, 1, 237, 239, 35, 15, 10, 1, 241, 115, 44, 15, 10, + 1, 241, 115, 35, 15, 10, 1, 253, 216, 44, 15, 10, 1, 253, 216, 35, 15, + 10, 1, 248, 21, 44, 15, 10, 1, 248, 21, 35, 15, 10, 1, 253, 235, 44, 15, + 10, 1, 253, 235, 35, 15, 10, 1, 248, 150, 44, 15, 10, 1, 248, 150, 35, + 15, 10, 1, 240, 191, 44, 15, 10, 1, 240, 191, 35, 15, 10, 1, 240, 191, + 59, 15, 10, 1, 240, 191, 124, 15, 10, 1, 253, 102, 44, 15, 10, 1, 253, + 102, 35, 15, 10, 1, 253, 102, 59, 15, 10, 1, 253, 102, 124, 15, 10, 1, + 247, 79, 44, 15, 10, 1, 247, 79, 35, 15, 10, 1, 247, 79, 59, 15, 10, 1, + 247, 79, 124, 15, 10, 1, 241, 7, 44, 15, 10, 1, 241, 7, 35, 15, 10, 1, + 241, 7, 59, 15, 10, 1, 241, 7, 124, 15, 10, 1, 246, 156, 238, 1, 44, 15, + 10, 1, 246, 156, 238, 1, 35, 15, 10, 1, 241, 12, 44, 15, 10, 1, 241, 12, + 35, 15, 10, 1, 241, 12, 59, 15, 10, 1, 241, 12, 124, 15, 10, 1, 252, 207, + 2, 62, 64, 44, 15, 10, 1, 252, 207, 2, 62, 64, 35, 15, 10, 1, 252, 207, + 247, 34, 44, 15, 10, 1, 252, 207, 247, 34, 35, 15, 10, 1, 252, 207, 247, + 34, 59, 15, 10, 1, 252, 207, 247, 34, 124, 15, 10, 1, 252, 207, 229, 179, + 44, 15, 10, 1, 252, 207, 229, 179, 35, 15, 10, 1, 252, 207, 229, 179, 59, + 15, 10, 1, 252, 207, 229, 179, 124, 15, 10, 1, 62, 237, 123, 44, 15, 10, + 1, 62, 237, 123, 35, 15, 10, 1, 62, 237, 123, 2, 164, 64, 44, 15, 10, 1, + 62, 237, 123, 2, 164, 64, 35, 15, 10, 1, 254, 241, 44, 15, 10, 1, 254, + 241, 35, 15, 10, 1, 254, 241, 59, 15, 10, 1, 254, 241, 124, 15, 10, 1, + 97, 44, 15, 10, 1, 97, 35, 15, 10, 1, 254, 222, 44, 15, 10, 1, 254, 222, + 35, 15, 10, 1, 254, 226, 44, 15, 10, 1, 254, 226, 35, 15, 10, 1, 97, 2, + 164, 64, 44, 15, 10, 1, 254, 254, 44, 15, 10, 1, 254, 254, 35, 15, 10, 1, + 235, 49, 254, 222, 44, 15, 10, 1, 235, 49, 254, 222, 35, 15, 10, 1, 235, + 49, 254, 226, 44, 15, 10, 1, 235, 49, 254, 226, 35, 15, 10, 1, 161, 44, + 15, 10, 1, 161, 35, 15, 10, 1, 161, 59, 15, 10, 1, 161, 124, 15, 10, 1, + 237, 167, 238, 13, 235, 49, 92, 175, 59, 15, 10, 1, 237, 167, 238, 13, + 235, 49, 92, 175, 124, 15, 10, 20, 62, 2, 164, 64, 2, 92, 44, 15, 10, 20, + 62, 2, 164, 64, 2, 92, 35, 15, 10, 20, 62, 2, 164, 64, 2, 254, 215, 44, + 15, 10, 20, 62, 2, 164, 64, 2, 254, 215, 35, 15, 10, 20, 62, 2, 164, 64, + 2, 253, 54, 44, 15, 10, 20, 62, 2, 164, 64, 2, 253, 54, 35, 15, 10, 20, + 62, 2, 164, 64, 2, 97, 44, 15, 10, 20, 62, 2, 164, 64, 2, 97, 35, 15, 10, + 20, 62, 2, 164, 64, 2, 254, 222, 44, 15, 10, 20, 62, 2, 164, 64, 2, 254, + 222, 35, 15, 10, 20, 62, 2, 164, 64, 2, 254, 226, 44, 15, 10, 20, 62, 2, + 164, 64, 2, 254, 226, 35, 15, 10, 20, 62, 2, 164, 64, 2, 161, 44, 15, 10, + 20, 62, 2, 164, 64, 2, 161, 35, 15, 10, 20, 62, 2, 164, 64, 2, 161, 59, + 15, 10, 20, 237, 167, 235, 49, 62, 2, 164, 64, 2, 92, 175, 44, 15, 10, + 20, 237, 167, 235, 49, 62, 2, 164, 64, 2, 92, 175, 35, 15, 10, 20, 237, + 167, 235, 49, 62, 2, 164, 64, 2, 92, 175, 59, 15, 10, 1, 240, 176, 62, + 44, 15, 10, 1, 240, 176, 62, 35, 15, 10, 1, 240, 176, 62, 59, 15, 10, 1, + 240, 176, 62, 124, 15, 10, 20, 62, 2, 164, 64, 2, 123, 44, 15, 10, 20, + 62, 2, 164, 64, 2, 101, 44, 15, 10, 20, 62, 2, 164, 64, 2, 55, 44, 15, + 10, 20, 62, 2, 164, 64, 2, 92, 175, 44, 15, 10, 20, 62, 2, 164, 64, 2, + 62, 44, 15, 10, 20, 252, 217, 2, 123, 44, 15, 10, 20, 252, 217, 2, 101, + 44, 15, 10, 20, 252, 217, 2, 202, 44, 15, 10, 20, 252, 217, 2, 55, 44, + 15, 10, 20, 252, 217, 2, 92, 175, 44, 15, 10, 20, 252, 217, 2, 62, 44, + 15, 10, 20, 252, 210, 2, 123, 44, 15, 10, 20, 252, 210, 2, 101, 44, 15, + 10, 20, 252, 210, 2, 202, 44, 15, 10, 20, 252, 210, 2, 55, 44, 15, 10, + 20, 252, 210, 2, 92, 175, 44, 15, 10, 20, 252, 210, 2, 62, 44, 15, 10, + 20, 246, 205, 2, 123, 44, 15, 10, 20, 246, 205, 2, 55, 44, 15, 10, 20, + 246, 205, 2, 92, 175, 44, 15, 10, 20, 246, 205, 2, 62, 44, 15, 10, 20, + 123, 2, 101, 44, 15, 10, 20, 123, 2, 55, 44, 15, 10, 20, 101, 2, 123, 44, + 15, 10, 20, 101, 2, 55, 44, 15, 10, 20, 202, 2, 123, 44, 15, 10, 20, 202, + 2, 101, 44, 15, 10, 20, 202, 2, 55, 44, 15, 10, 20, 246, 163, 2, 123, 44, + 15, 10, 20, 246, 163, 2, 101, 44, 15, 10, 20, 246, 163, 2, 202, 44, 15, + 10, 20, 246, 163, 2, 55, 44, 15, 10, 20, 252, 240, 2, 101, 44, 15, 10, + 20, 252, 240, 2, 55, 44, 15, 10, 20, 252, 237, 2, 123, 44, 15, 10, 20, + 252, 237, 2, 101, 44, 15, 10, 20, 252, 237, 2, 202, 44, 15, 10, 20, 252, + 237, 2, 55, 44, 15, 10, 20, 252, 241, 2, 101, 44, 15, 10, 20, 252, 241, + 2, 55, 44, 15, 10, 20, 253, 110, 2, 55, 44, 15, 10, 20, 252, 244, 2, 123, + 44, 15, 10, 20, 252, 244, 2, 55, 44, 15, 10, 20, 240, 157, 2, 123, 44, + 15, 10, 20, 240, 157, 2, 55, 44, 15, 10, 20, 252, 235, 2, 123, 44, 15, + 10, 20, 252, 235, 2, 101, 44, 15, 10, 20, 252, 235, 2, 202, 44, 15, 10, + 20, 252, 235, 2, 55, 44, 15, 10, 20, 252, 235, 2, 92, 175, 44, 15, 10, + 20, 252, 235, 2, 62, 44, 15, 10, 20, 253, 1, 2, 101, 44, 15, 10, 20, 253, + 1, 2, 55, 44, 15, 10, 20, 253, 1, 2, 92, 175, 44, 15, 10, 20, 253, 1, 2, + 62, 44, 15, 10, 20, 252, 214, 2, 92, 44, 15, 10, 20, 252, 214, 2, 123, + 44, 15, 10, 20, 252, 214, 2, 101, 44, 15, 10, 20, 252, 214, 2, 202, 44, + 15, 10, 20, 252, 214, 2, 216, 44, 15, 10, 20, 252, 214, 2, 55, 44, 15, + 10, 20, 252, 214, 2, 92, 175, 44, 15, 10, 20, 252, 214, 2, 62, 44, 15, + 10, 20, 216, 2, 123, 44, 15, 10, 20, 216, 2, 101, 44, 15, 10, 20, 216, 2, + 202, 44, 15, 10, 20, 216, 2, 55, 44, 15, 10, 20, 216, 2, 92, 175, 44, 15, + 10, 20, 216, 2, 62, 44, 15, 10, 20, 55, 2, 123, 44, 15, 10, 20, 55, 2, + 101, 44, 15, 10, 20, 55, 2, 202, 44, 15, 10, 20, 55, 2, 55, 44, 15, 10, + 20, 55, 2, 92, 175, 44, 15, 10, 20, 55, 2, 62, 44, 15, 10, 20, 246, 156, + 2, 123, 44, 15, 10, 20, 246, 156, 2, 101, 44, 15, 10, 20, 246, 156, 2, + 202, 44, 15, 10, 20, 246, 156, 2, 55, 44, 15, 10, 20, 246, 156, 2, 92, + 175, 44, 15, 10, 20, 246, 156, 2, 62, 44, 15, 10, 20, 252, 207, 2, 123, + 44, 15, 10, 20, 252, 207, 2, 55, 44, 15, 10, 20, 252, 207, 2, 92, 175, + 44, 15, 10, 20, 252, 207, 2, 62, 44, 15, 10, 20, 62, 2, 123, 44, 15, 10, + 20, 62, 2, 101, 44, 15, 10, 20, 62, 2, 202, 44, 15, 10, 20, 62, 2, 55, + 44, 15, 10, 20, 62, 2, 92, 175, 44, 15, 10, 20, 62, 2, 62, 44, 15, 10, + 20, 247, 211, 2, 229, 163, 92, 44, 15, 10, 20, 252, 225, 2, 229, 163, 92, + 44, 15, 10, 20, 92, 175, 2, 229, 163, 92, 44, 15, 10, 20, 237, 96, 2, + 233, 196, 44, 15, 10, 20, 237, 96, 2, 233, 210, 44, 15, 10, 20, 237, 96, + 2, 240, 224, 44, 15, 10, 20, 237, 96, 2, 240, 248, 44, 15, 10, 20, 237, + 96, 2, 241, 0, 44, 15, 10, 20, 237, 96, 2, 229, 163, 92, 44, 15, 10, 20, + 62, 2, 164, 64, 2, 252, 225, 35, 15, 10, 20, 62, 2, 164, 64, 2, 246, 250, + 35, 15, 10, 20, 62, 2, 164, 64, 2, 55, 35, 15, 10, 20, 62, 2, 164, 64, 2, + 246, 156, 35, 15, 10, 20, 62, 2, 164, 64, 2, 92, 175, 35, 15, 10, 20, 62, + 2, 164, 64, 2, 62, 35, 15, 10, 20, 252, 217, 2, 252, 225, 35, 15, 10, 20, + 252, 217, 2, 246, 250, 35, 15, 10, 20, 252, 217, 2, 55, 35, 15, 10, 20, + 252, 217, 2, 246, 156, 35, 15, 10, 20, 252, 217, 2, 92, 175, 35, 15, 10, + 20, 252, 217, 2, 62, 35, 15, 10, 20, 252, 210, 2, 252, 225, 35, 15, 10, + 20, 252, 210, 2, 246, 250, 35, 15, 10, 20, 252, 210, 2, 55, 35, 15, 10, + 20, 252, 210, 2, 246, 156, 35, 15, 10, 20, 252, 210, 2, 92, 175, 35, 15, + 10, 20, 252, 210, 2, 62, 35, 15, 10, 20, 246, 205, 2, 252, 225, 35, 15, + 10, 20, 246, 205, 2, 246, 250, 35, 15, 10, 20, 246, 205, 2, 55, 35, 15, + 10, 20, 246, 205, 2, 246, 156, 35, 15, 10, 20, 246, 205, 2, 92, 175, 35, + 15, 10, 20, 246, 205, 2, 62, 35, 15, 10, 20, 252, 235, 2, 92, 175, 35, + 15, 10, 20, 252, 235, 2, 62, 35, 15, 10, 20, 253, 1, 2, 92, 175, 35, 15, + 10, 20, 253, 1, 2, 62, 35, 15, 10, 20, 252, 214, 2, 92, 35, 15, 10, 20, + 252, 214, 2, 216, 35, 15, 10, 20, 252, 214, 2, 55, 35, 15, 10, 20, 252, + 214, 2, 92, 175, 35, 15, 10, 20, 252, 214, 2, 62, 35, 15, 10, 20, 216, 2, + 55, 35, 15, 10, 20, 216, 2, 92, 175, 35, 15, 10, 20, 216, 2, 62, 35, 15, + 10, 20, 55, 2, 92, 35, 15, 10, 20, 55, 2, 55, 35, 15, 10, 20, 246, 156, + 2, 252, 225, 35, 15, 10, 20, 246, 156, 2, 246, 250, 35, 15, 10, 20, 246, + 156, 2, 55, 35, 15, 10, 20, 246, 156, 2, 246, 156, 35, 15, 10, 20, 246, + 156, 2, 92, 175, 35, 15, 10, 20, 246, 156, 2, 62, 35, 15, 10, 20, 92, + 175, 2, 229, 163, 92, 35, 15, 10, 20, 62, 2, 252, 225, 35, 15, 10, 20, + 62, 2, 246, 250, 35, 15, 10, 20, 62, 2, 55, 35, 15, 10, 20, 62, 2, 246, + 156, 35, 15, 10, 20, 62, 2, 92, 175, 35, 15, 10, 20, 62, 2, 62, 35, 15, + 10, 20, 62, 2, 164, 64, 2, 123, 59, 15, 10, 20, 62, 2, 164, 64, 2, 101, + 59, 15, 10, 20, 62, 2, 164, 64, 2, 202, 59, 15, 10, 20, 62, 2, 164, 64, + 2, 55, 59, 15, 10, 20, 62, 2, 164, 64, 2, 252, 207, 59, 15, 10, 20, 252, + 217, 2, 123, 59, 15, 10, 20, 252, 217, 2, 101, 59, 15, 10, 20, 252, 217, + 2, 202, 59, 15, 10, 20, 252, 217, 2, 55, 59, 15, 10, 20, 252, 217, 2, + 252, 207, 59, 15, 10, 20, 252, 210, 2, 123, 59, 15, 10, 20, 252, 210, 2, + 101, 59, 15, 10, 20, 252, 210, 2, 202, 59, 15, 10, 20, 252, 210, 2, 55, + 59, 15, 10, 20, 252, 210, 2, 252, 207, 59, 15, 10, 20, 246, 205, 2, 55, + 59, 15, 10, 20, 123, 2, 101, 59, 15, 10, 20, 123, 2, 55, 59, 15, 10, 20, + 101, 2, 123, 59, 15, 10, 20, 101, 2, 55, 59, 15, 10, 20, 202, 2, 123, 59, + 15, 10, 20, 202, 2, 55, 59, 15, 10, 20, 246, 163, 2, 123, 59, 15, 10, 20, + 246, 163, 2, 101, 59, 15, 10, 20, 246, 163, 2, 202, 59, 15, 10, 20, 246, + 163, 2, 55, 59, 15, 10, 20, 252, 240, 2, 101, 59, 15, 10, 20, 252, 240, + 2, 202, 59, 15, 10, 20, 252, 240, 2, 55, 59, 15, 10, 20, 252, 237, 2, + 123, 59, 15, 10, 20, 252, 237, 2, 101, 59, 15, 10, 20, 252, 237, 2, 202, + 59, 15, 10, 20, 252, 237, 2, 55, 59, 15, 10, 20, 252, 241, 2, 101, 59, + 15, 10, 20, 253, 110, 2, 55, 59, 15, 10, 20, 252, 244, 2, 123, 59, 15, + 10, 20, 252, 244, 2, 55, 59, 15, 10, 20, 240, 157, 2, 123, 59, 15, 10, + 20, 240, 157, 2, 55, 59, 15, 10, 20, 252, 235, 2, 123, 59, 15, 10, 20, + 252, 235, 2, 101, 59, 15, 10, 20, 252, 235, 2, 202, 59, 15, 10, 20, 252, + 235, 2, 55, 59, 15, 10, 20, 253, 1, 2, 101, 59, 15, 10, 20, 253, 1, 2, + 55, 59, 15, 10, 20, 252, 214, 2, 123, 59, 15, 10, 20, 252, 214, 2, 101, + 59, 15, 10, 20, 252, 214, 2, 202, 59, 15, 10, 20, 252, 214, 2, 216, 59, + 15, 10, 20, 252, 214, 2, 55, 59, 15, 10, 20, 216, 2, 123, 59, 15, 10, 20, + 216, 2, 101, 59, 15, 10, 20, 216, 2, 202, 59, 15, 10, 20, 216, 2, 55, 59, + 15, 10, 20, 216, 2, 252, 207, 59, 15, 10, 20, 55, 2, 123, 59, 15, 10, 20, + 55, 2, 101, 59, 15, 10, 20, 55, 2, 202, 59, 15, 10, 20, 55, 2, 55, 59, + 15, 10, 20, 246, 156, 2, 123, 59, 15, 10, 20, 246, 156, 2, 101, 59, 15, + 10, 20, 246, 156, 2, 202, 59, 15, 10, 20, 246, 156, 2, 55, 59, 15, 10, + 20, 246, 156, 2, 252, 207, 59, 15, 10, 20, 252, 207, 2, 123, 59, 15, 10, + 20, 252, 207, 2, 55, 59, 15, 10, 20, 252, 207, 2, 229, 163, 92, 59, 15, + 10, 20, 62, 2, 123, 59, 15, 10, 20, 62, 2, 101, 59, 15, 10, 20, 62, 2, + 202, 59, 15, 10, 20, 62, 2, 55, 59, 15, 10, 20, 62, 2, 252, 207, 59, 15, + 10, 20, 62, 2, 164, 64, 2, 55, 124, 15, 10, 20, 62, 2, 164, 64, 2, 252, + 207, 124, 15, 10, 20, 252, 217, 2, 55, 124, 15, 10, 20, 252, 217, 2, 252, + 207, 124, 15, 10, 20, 252, 210, 2, 55, 124, 15, 10, 20, 252, 210, 2, 252, + 207, 124, 15, 10, 20, 246, 205, 2, 55, 124, 15, 10, 20, 246, 205, 2, 252, + 207, 124, 15, 10, 20, 246, 163, 2, 55, 124, 15, 10, 20, 246, 163, 2, 252, + 207, 124, 15, 10, 20, 240, 129, 2, 55, 124, 15, 10, 20, 240, 129, 2, 252, + 207, 124, 15, 10, 20, 252, 214, 2, 216, 124, 15, 10, 20, 252, 214, 2, 55, + 124, 15, 10, 20, 216, 2, 55, 124, 15, 10, 20, 246, 156, 2, 55, 124, 15, + 10, 20, 246, 156, 2, 252, 207, 124, 15, 10, 20, 62, 2, 55, 124, 15, 10, + 20, 62, 2, 252, 207, 124, 15, 10, 20, 237, 96, 2, 240, 224, 124, 15, 10, + 20, 237, 96, 2, 240, 248, 124, 15, 10, 20, 237, 96, 2, 241, 0, 124, 15, + 10, 20, 252, 241, 2, 92, 175, 44, 15, 10, 20, 252, 241, 2, 62, 44, 15, + 10, 20, 252, 244, 2, 92, 175, 44, 15, 10, 20, 252, 244, 2, 62, 44, 15, + 10, 20, 240, 157, 2, 92, 175, 44, 15, 10, 20, 240, 157, 2, 62, 44, 15, + 10, 20, 246, 163, 2, 92, 175, 44, 15, 10, 20, 246, 163, 2, 62, 44, 15, + 10, 20, 240, 129, 2, 92, 175, 44, 15, 10, 20, 240, 129, 2, 62, 44, 15, + 10, 20, 101, 2, 92, 175, 44, 15, 10, 20, 101, 2, 62, 44, 15, 10, 20, 123, + 2, 92, 175, 44, 15, 10, 20, 123, 2, 62, 44, 15, 10, 20, 202, 2, 92, 175, + 44, 15, 10, 20, 202, 2, 62, 44, 15, 10, 20, 252, 240, 2, 92, 175, 44, 15, + 10, 20, 252, 240, 2, 62, 44, 15, 10, 20, 252, 237, 2, 92, 175, 44, 15, + 10, 20, 252, 237, 2, 62, 44, 15, 10, 20, 240, 129, 2, 123, 44, 15, 10, + 20, 240, 129, 2, 101, 44, 15, 10, 20, 240, 129, 2, 202, 44, 15, 10, 20, + 240, 129, 2, 55, 44, 15, 10, 20, 240, 129, 2, 252, 225, 44, 15, 10, 20, + 246, 163, 2, 252, 225, 44, 15, 10, 20, 252, 240, 2, 252, 225, 44, 15, 10, + 20, 252, 237, 2, 252, 225, 44, 15, 10, 20, 252, 241, 2, 92, 175, 35, 15, + 10, 20, 252, 241, 2, 62, 35, 15, 10, 20, 252, 244, 2, 92, 175, 35, 15, + 10, 20, 252, 244, 2, 62, 35, 15, 10, 20, 240, 157, 2, 92, 175, 35, 15, + 10, 20, 240, 157, 2, 62, 35, 15, 10, 20, 246, 163, 2, 92, 175, 35, 15, + 10, 20, 246, 163, 2, 62, 35, 15, 10, 20, 240, 129, 2, 92, 175, 35, 15, + 10, 20, 240, 129, 2, 62, 35, 15, 10, 20, 101, 2, 92, 175, 35, 15, 10, 20, + 101, 2, 62, 35, 15, 10, 20, 123, 2, 92, 175, 35, 15, 10, 20, 123, 2, 62, + 35, 15, 10, 20, 202, 2, 92, 175, 35, 15, 10, 20, 202, 2, 62, 35, 15, 10, + 20, 252, 240, 2, 92, 175, 35, 15, 10, 20, 252, 240, 2, 62, 35, 15, 10, + 20, 252, 237, 2, 92, 175, 35, 15, 10, 20, 252, 237, 2, 62, 35, 15, 10, + 20, 240, 129, 2, 123, 35, 15, 10, 20, 240, 129, 2, 101, 35, 15, 10, 20, + 240, 129, 2, 202, 35, 15, 10, 20, 240, 129, 2, 55, 35, 15, 10, 20, 240, + 129, 2, 252, 225, 35, 15, 10, 20, 246, 163, 2, 252, 225, 35, 15, 10, 20, + 252, 240, 2, 252, 225, 35, 15, 10, 20, 252, 237, 2, 252, 225, 35, 15, 10, + 20, 240, 129, 2, 123, 59, 15, 10, 20, 240, 129, 2, 101, 59, 15, 10, 20, + 240, 129, 2, 202, 59, 15, 10, 20, 240, 129, 2, 55, 59, 15, 10, 20, 246, + 163, 2, 252, 207, 59, 15, 10, 20, 240, 129, 2, 252, 207, 59, 15, 10, 20, + 252, 241, 2, 55, 59, 15, 10, 20, 246, 163, 2, 123, 124, 15, 10, 20, 246, + 163, 2, 101, 124, 15, 10, 20, 246, 163, 2, 202, 124, 15, 10, 20, 240, + 129, 2, 123, 124, 15, 10, 20, 240, 129, 2, 101, 124, 15, 10, 20, 240, + 129, 2, 202, 124, 15, 10, 20, 252, 241, 2, 55, 124, 15, 10, 20, 253, 110, + 2, 55, 124, 15, 10, 20, 92, 2, 233, 150, 35, 15, 10, 20, 92, 2, 233, 150, + 44, 15, 238, 32, 42, 228, 180, 238, 32, 41, 228, 180, 10, 20, 252, 210, + 2, 123, 2, 55, 59, 15, 10, 20, 252, 210, 2, 101, 2, 123, 35, 15, 10, 20, + 252, 210, 2, 101, 2, 123, 59, 15, 10, 20, 252, 210, 2, 101, 2, 55, 59, + 15, 10, 20, 252, 210, 2, 202, 2, 55, 59, 15, 10, 20, 252, 210, 2, 55, 2, + 123, 59, 15, 10, 20, 252, 210, 2, 55, 2, 101, 59, 15, 10, 20, 252, 210, + 2, 55, 2, 202, 59, 15, 10, 20, 123, 2, 55, 2, 101, 35, 15, 10, 20, 123, + 2, 55, 2, 101, 59, 15, 10, 20, 101, 2, 55, 2, 62, 35, 15, 10, 20, 101, 2, + 55, 2, 92, 175, 35, 15, 10, 20, 246, 163, 2, 101, 2, 123, 59, 15, 10, 20, + 246, 163, 2, 123, 2, 101, 59, 15, 10, 20, 246, 163, 2, 123, 2, 92, 175, + 35, 15, 10, 20, 246, 163, 2, 55, 2, 101, 35, 15, 10, 20, 246, 163, 2, 55, + 2, 101, 59, 15, 10, 20, 246, 163, 2, 55, 2, 123, 59, 15, 10, 20, 246, + 163, 2, 55, 2, 55, 35, 15, 10, 20, 246, 163, 2, 55, 2, 55, 59, 15, 10, + 20, 252, 240, 2, 101, 2, 101, 35, 15, 10, 20, 252, 240, 2, 101, 2, 101, + 59, 15, 10, 20, 252, 240, 2, 55, 2, 55, 35, 15, 10, 20, 240, 129, 2, 101, + 2, 55, 35, 15, 10, 20, 240, 129, 2, 101, 2, 55, 59, 15, 10, 20, 240, 129, + 2, 123, 2, 62, 35, 15, 10, 20, 240, 129, 2, 55, 2, 202, 35, 15, 10, 20, + 240, 129, 2, 55, 2, 202, 59, 15, 10, 20, 240, 129, 2, 55, 2, 55, 35, 15, + 10, 20, 240, 129, 2, 55, 2, 55, 59, 15, 10, 20, 252, 237, 2, 101, 2, 92, + 175, 35, 15, 10, 20, 252, 237, 2, 202, 2, 55, 35, 15, 10, 20, 252, 237, + 2, 202, 2, 55, 59, 15, 10, 20, 252, 241, 2, 55, 2, 101, 35, 15, 10, 20, + 252, 241, 2, 55, 2, 101, 59, 15, 10, 20, 252, 241, 2, 55, 2, 55, 59, 15, + 10, 20, 252, 241, 2, 55, 2, 62, 35, 15, 10, 20, 252, 244, 2, 123, 2, 55, + 35, 15, 10, 20, 252, 244, 2, 55, 2, 55, 35, 15, 10, 20, 252, 244, 2, 55, + 2, 55, 59, 15, 10, 20, 252, 244, 2, 55, 2, 92, 175, 35, 15, 10, 20, 240, + 157, 2, 55, 2, 55, 35, 15, 10, 20, 240, 157, 2, 55, 2, 62, 35, 15, 10, + 20, 240, 157, 2, 55, 2, 92, 175, 35, 15, 10, 20, 252, 235, 2, 202, 2, 55, + 35, 15, 10, 20, 252, 235, 2, 202, 2, 55, 59, 15, 10, 20, 253, 1, 2, 55, + 2, 101, 35, 15, 10, 20, 253, 1, 2, 55, 2, 55, 35, 15, 10, 20, 216, 2, + 101, 2, 55, 35, 15, 10, 20, 216, 2, 101, 2, 62, 35, 15, 10, 20, 216, 2, + 101, 2, 92, 175, 35, 15, 10, 20, 216, 2, 123, 2, 123, 59, 15, 10, 20, + 216, 2, 123, 2, 123, 35, 15, 10, 20, 216, 2, 202, 2, 55, 35, 15, 10, 20, + 216, 2, 202, 2, 55, 59, 15, 10, 20, 216, 2, 55, 2, 101, 35, 15, 10, 20, + 216, 2, 55, 2, 101, 59, 15, 10, 20, 55, 2, 101, 2, 123, 59, 15, 10, 20, + 55, 2, 101, 2, 55, 59, 15, 10, 20, 55, 2, 101, 2, 62, 35, 15, 10, 20, 55, + 2, 123, 2, 101, 59, 15, 10, 20, 55, 2, 123, 2, 55, 59, 15, 10, 20, 55, 2, + 202, 2, 123, 59, 15, 10, 20, 55, 2, 202, 2, 55, 59, 15, 10, 20, 55, 2, + 123, 2, 202, 59, 15, 10, 20, 252, 207, 2, 55, 2, 123, 59, 15, 10, 20, + 252, 207, 2, 55, 2, 55, 59, 15, 10, 20, 246, 156, 2, 101, 2, 55, 59, 15, + 10, 20, 246, 156, 2, 101, 2, 92, 175, 35, 15, 10, 20, 246, 156, 2, 123, + 2, 55, 35, 15, 10, 20, 246, 156, 2, 123, 2, 55, 59, 15, 10, 20, 246, 156, + 2, 123, 2, 92, 175, 35, 15, 10, 20, 246, 156, 2, 55, 2, 62, 35, 15, 10, + 20, 246, 156, 2, 55, 2, 92, 175, 35, 15, 10, 20, 62, 2, 55, 2, 55, 35, + 15, 10, 20, 62, 2, 55, 2, 55, 59, 15, 10, 20, 252, 217, 2, 202, 2, 62, + 35, 15, 10, 20, 252, 210, 2, 123, 2, 62, 35, 15, 10, 20, 252, 210, 2, + 123, 2, 92, 175, 35, 15, 10, 20, 252, 210, 2, 202, 2, 62, 35, 15, 10, 20, + 252, 210, 2, 202, 2, 92, 175, 35, 15, 10, 20, 252, 210, 2, 55, 2, 62, 35, + 15, 10, 20, 252, 210, 2, 55, 2, 92, 175, 35, 15, 10, 20, 123, 2, 55, 2, + 62, 35, 15, 10, 20, 123, 2, 101, 2, 92, 175, 35, 15, 10, 20, 123, 2, 55, + 2, 92, 175, 35, 15, 10, 20, 246, 163, 2, 202, 2, 92, 175, 35, 15, 10, 20, + 252, 240, 2, 101, 2, 62, 35, 15, 10, 20, 240, 129, 2, 101, 2, 62, 35, 15, + 10, 20, 252, 237, 2, 101, 2, 62, 35, 15, 10, 20, 216, 2, 123, 2, 62, 35, + 15, 10, 20, 216, 2, 55, 2, 62, 35, 15, 10, 20, 62, 2, 101, 2, 62, 35, 15, + 10, 20, 62, 2, 123, 2, 62, 35, 15, 10, 20, 62, 2, 55, 2, 62, 35, 15, 10, + 20, 55, 2, 55, 2, 62, 35, 15, 10, 20, 253, 1, 2, 55, 2, 62, 35, 15, 10, + 20, 246, 156, 2, 101, 2, 62, 35, 15, 10, 20, 253, 1, 2, 55, 2, 101, 59, + 15, 10, 20, 216, 2, 101, 2, 55, 59, 15, 10, 20, 252, 244, 2, 55, 2, 62, + 35, 15, 10, 20, 252, 214, 2, 55, 2, 62, 35, 15, 10, 20, 246, 156, 2, 123, + 2, 101, 59, 15, 10, 20, 55, 2, 202, 2, 62, 35, 15, 10, 20, 216, 2, 123, + 2, 55, 59, 15, 10, 20, 252, 214, 2, 55, 2, 55, 35, 15, 10, 20, 216, 2, + 123, 2, 55, 35, 15, 10, 20, 246, 156, 2, 123, 2, 101, 35, 15, 10, 20, + 123, 2, 101, 2, 62, 35, 15, 10, 20, 101, 2, 123, 2, 62, 35, 15, 10, 20, + 55, 2, 123, 2, 62, 35, 15, 10, 20, 252, 235, 2, 55, 2, 62, 35, 15, 10, + 20, 252, 217, 2, 101, 2, 62, 35, 15, 10, 20, 252, 214, 2, 55, 2, 55, 59, + 15, 10, 20, 252, 244, 2, 123, 2, 55, 59, 15, 10, 20, 252, 240, 2, 55, 2, + 55, 59, 15, 10, 20, 246, 163, 2, 202, 2, 62, 35, 15, 10, 20, 246, 156, 2, + 123, 2, 62, 35, 15, 10, 20, 241, 230, 248, 189, 254, 203, 235, 187, 247, + 20, 5, 44, 15, 10, 20, 251, 128, 248, 189, 254, 203, 235, 187, 247, 20, + 5, 44, 15, 10, 20, 242, 54, 44, 15, 10, 20, 242, 51, 44, 15, 10, 20, 234, + 163, 44, 15, 10, 20, 245, 150, 44, 15, 10, 20, 239, 215, 44, 15, 10, 20, + 237, 171, 44, 15, 10, 20, 235, 9, 44, 15, 10, 20, 241, 230, 44, 15, 10, + 20, 229, 214, 237, 171, 233, 64, 10, 20, 225, 93, 251, 181, 53, 10, 20, + 232, 87, 232, 73, 230, 226, 38, 230, 99, 38, 230, 100, 38, 230, 101, 38, + 230, 102, 38, 230, 103, 38, 230, 104, 38, 230, 105, 38, 230, 106, 38, + 230, 107, 38, 229, 59, 38, 229, 60, 38, 229, 61, 38, 229, 62, 38, 229, + 63, 38, 229, 64, 38, 229, 65, 228, 178, 211, 32, 61, 237, 67, 228, 178, + 211, 32, 61, 90, 237, 67, 228, 178, 211, 32, 61, 90, 246, 162, 240, 121, + 228, 178, 211, 32, 61, 237, 66, 228, 178, 211, 32, 61, 230, 140, 228, + 178, 211, 32, 61, 229, 165, 76, 228, 178, 211, 32, 61, 233, 82, 76, 228, + 178, 211, 32, 61, 42, 63, 230, 137, 104, 228, 178, 211, 32, 61, 41, 63, + 230, 137, 234, 22, 228, 178, 211, 32, 61, 169, 231, 218, 36, 20, 42, 240, + 170, 36, 20, 41, 240, 170, 36, 47, 240, 128, 42, 240, 170, 36, 47, 240, + 128, 41, 240, 170, 36, 237, 83, 42, 240, 170, 36, 237, 83, 41, 240, 170, + 36, 230, 237, 235, 16, 228, 178, 211, 32, 61, 135, 56, 235, 128, 228, + 178, 211, 32, 61, 254, 213, 240, 151, 228, 178, 211, 32, 61, 254, 199, + 240, 151, 228, 178, 211, 32, 61, 184, 240, 138, 228, 178, 211, 32, 61, + 246, 239, 184, 240, 138, 228, 178, 211, 32, 61, 42, 228, 180, 228, 178, + 211, 32, 61, 41, 228, 180, 228, 178, 211, 32, 61, 42, 240, 137, 104, 228, + 178, 211, 32, 61, 41, 240, 137, 104, 228, 178, 211, 32, 61, 42, 233, 89, + 240, 158, 104, 228, 178, 211, 32, 61, 41, 233, 89, 240, 158, 104, 228, + 178, 211, 32, 61, 42, 86, 230, 137, 104, 228, 178, 211, 32, 61, 41, 86, + 230, 137, 104, 228, 178, 211, 32, 61, 42, 47, 240, 117, 104, 228, 178, + 211, 32, 61, 41, 47, 240, 117, 104, 228, 178, 211, 32, 61, 42, 240, 117, + 104, 228, 178, 211, 32, 61, 41, 240, 117, 104, 228, 178, 211, 32, 61, 42, + 237, 79, 104, 228, 178, 211, 32, 61, 41, 237, 79, 104, 228, 178, 211, 32, + 61, 42, 63, 237, 79, 104, 228, 178, 211, 32, 61, 41, 63, 237, 79, 104, + 238, 47, 246, 164, 63, 238, 47, 246, 164, 228, 178, 211, 32, 61, 42, 37, + 104, 228, 178, 211, 32, 61, 41, 37, 104, 237, 110, 231, 223, 230, 176, + 231, 223, 246, 239, 231, 223, 47, 246, 239, 231, 223, 237, 110, 184, 240, + 138, 230, 176, 184, 240, 138, 246, 239, 184, 240, 138, 3, 237, 67, 3, 90, + 237, 67, 3, 246, 162, 240, 121, 3, 230, 140, 3, 237, 66, 3, 233, 82, 76, + 3, 229, 165, 76, 3, 254, 213, 240, 151, 3, 42, 228, 180, 3, 41, 228, 180, + 3, 42, 240, 137, 104, 3, 41, 240, 137, 104, 3, 42, 233, 89, 240, 158, + 104, 3, 41, 233, 89, 240, 158, 104, 3, 65, 53, 3, 230, 142, 3, 231, 198, + 3, 79, 53, 3, 227, 193, 3, 231, 190, 53, 3, 228, 175, 53, 3, 237, 51, 53, + 3, 235, 37, 233, 104, 3, 237, 179, 53, 3, 235, 86, 53, 3, 230, 145, 253, + 113, 10, 233, 150, 44, 15, 10, 236, 254, 2, 233, 150, 46, 10, 233, 196, + 44, 15, 10, 246, 237, 232, 193, 10, 233, 210, 44, 15, 10, 240, 224, 44, + 15, 10, 240, 224, 124, 15, 10, 240, 248, 44, 15, 10, 240, 248, 124, 15, + 10, 241, 0, 44, 15, 10, 241, 0, 124, 15, 10, 237, 96, 44, 15, 10, 237, + 96, 124, 15, 10, 241, 252, 44, 15, 10, 241, 252, 124, 15, 10, 1, 164, 44, + 15, 10, 1, 92, 2, 240, 229, 64, 44, 15, 10, 1, 92, 2, 240, 229, 64, 35, + 15, 10, 1, 92, 2, 164, 64, 44, 15, 10, 1, 92, 2, 164, 64, 35, 15, 10, 1, + 253, 54, 2, 164, 64, 44, 15, 10, 1, 253, 54, 2, 164, 64, 35, 15, 10, 1, + 92, 2, 164, 240, 144, 44, 15, 10, 1, 92, 2, 164, 240, 144, 35, 15, 10, 1, + 62, 2, 164, 64, 44, 15, 10, 1, 62, 2, 164, 64, 35, 15, 10, 1, 62, 2, 164, + 64, 59, 15, 10, 1, 62, 2, 164, 64, 124, 15, 10, 1, 92, 44, 15, 10, 1, 92, + 35, 15, 10, 1, 252, 217, 44, 15, 10, 1, 252, 217, 35, 15, 10, 1, 252, + 217, 59, 15, 10, 1, 252, 217, 124, 15, 10, 1, 252, 210, 235, 129, 44, 15, + 10, 1, 252, 210, 235, 129, 35, 15, 10, 1, 252, 210, 44, 15, 10, 1, 252, + 210, 35, 15, 10, 1, 252, 210, 59, 15, 10, 1, 252, 210, 124, 15, 10, 1, + 246, 205, 44, 15, 10, 1, 246, 205, 35, 15, 10, 1, 246, 205, 59, 15, 10, + 1, 246, 205, 124, 15, 10, 1, 123, 44, 15, 10, 1, 123, 35, 15, 10, 1, 123, + 59, 15, 10, 1, 123, 124, 15, 10, 1, 101, 44, 15, 10, 1, 101, 35, 15, 10, + 1, 101, 59, 15, 10, 1, 101, 124, 15, 10, 1, 202, 44, 15, 10, 1, 202, 35, + 15, 10, 1, 202, 59, 15, 10, 1, 202, 124, 15, 10, 1, 253, 56, 44, 15, 10, + 1, 253, 56, 35, 15, 10, 1, 247, 211, 44, 15, 10, 1, 247, 211, 35, 15, 10, + 1, 252, 225, 44, 15, 10, 1, 252, 225, 35, 15, 10, 1, 246, 250, 44, 15, + 10, 1, 246, 250, 35, 15, 10, 1, 246, 163, 44, 15, 10, 1, 246, 163, 35, + 15, 10, 1, 246, 163, 59, 15, 10, 1, 246, 163, 124, 15, 10, 1, 240, 129, + 44, 15, 10, 1, 240, 129, 35, 15, 10, 1, 240, 129, 59, 15, 10, 1, 240, + 129, 124, 15, 10, 1, 252, 240, 44, 15, 10, 1, 252, 240, 35, 15, 10, 1, + 252, 240, 59, 15, 10, 1, 252, 240, 124, 15, 10, 1, 252, 237, 44, 15, 10, + 1, 252, 237, 35, 15, 10, 1, 252, 237, 59, 15, 10, 1, 252, 237, 124, 15, + 10, 1, 252, 241, 44, 15, 10, 1, 252, 241, 35, 15, 10, 1, 252, 241, 59, + 15, 10, 1, 252, 241, 124, 15, 10, 1, 253, 110, 44, 15, 10, 1, 253, 110, + 35, 15, 10, 1, 253, 110, 59, 15, 10, 1, 253, 110, 124, 15, 10, 1, 252, + 244, 44, 15, 10, 1, 252, 244, 35, 15, 10, 1, 252, 244, 59, 15, 10, 1, + 252, 244, 124, 15, 10, 1, 240, 157, 44, 15, 10, 1, 240, 157, 35, 15, 10, + 1, 240, 157, 59, 15, 10, 1, 240, 157, 124, 15, 10, 1, 252, 235, 44, 15, + 10, 1, 252, 235, 35, 15, 10, 1, 252, 235, 59, 15, 10, 1, 252, 235, 124, + 15, 10, 1, 253, 1, 44, 15, 10, 1, 253, 1, 35, 15, 10, 1, 253, 1, 59, 15, + 10, 1, 253, 1, 124, 15, 10, 1, 252, 214, 44, 15, 10, 1, 252, 214, 35, 15, + 10, 1, 252, 214, 59, 15, 10, 1, 252, 214, 124, 15, 10, 1, 216, 44, 15, + 10, 1, 216, 35, 15, 10, 1, 216, 59, 15, 10, 1, 216, 124, 15, 10, 1, 55, + 44, 15, 10, 1, 55, 35, 15, 10, 1, 55, 59, 15, 10, 1, 55, 124, 15, 10, 1, + 246, 156, 44, 15, 10, 1, 246, 156, 35, 15, 10, 1, 246, 156, 59, 15, 10, + 1, 246, 156, 124, 15, 10, 1, 252, 207, 44, 15, 10, 1, 252, 207, 35, 15, + 10, 1, 252, 207, 59, 15, 10, 1, 252, 207, 124, 15, 10, 1, 253, 54, 44, + 15, 10, 1, 253, 54, 35, 15, 10, 1, 92, 175, 44, 15, 10, 1, 92, 175, 35, + 15, 10, 1, 62, 44, 15, 10, 1, 62, 35, 15, 10, 1, 62, 59, 15, 10, 1, 62, + 124, 15, 10, 20, 216, 2, 92, 2, 240, 229, 64, 44, 15, 10, 20, 216, 2, 92, + 2, 240, 229, 64, 35, 15, 10, 20, 216, 2, 92, 2, 164, 64, 44, 15, 10, 20, + 216, 2, 92, 2, 164, 64, 35, 15, 10, 20, 216, 2, 92, 2, 164, 240, 144, 44, + 15, 10, 20, 216, 2, 92, 2, 164, 240, 144, 35, 15, 10, 20, 216, 2, 92, 44, + 15, 10, 20, 216, 2, 92, 35, 15, 247, 27, 241, 23, 233, 173, 237, 69, 100, + 229, 165, 76, 100, 231, 199, 76, 100, 65, 53, 100, 237, 179, 53, 100, + 235, 86, 53, 100, 230, 142, 100, 229, 172, 100, 42, 228, 180, 100, 41, + 228, 180, 100, 231, 198, 100, 79, 53, 100, 237, 67, 100, 227, 193, 100, + 246, 162, 240, 121, 100, 233, 104, 100, 21, 240, 126, 100, 21, 118, 100, + 21, 113, 100, 21, 166, 100, 21, 158, 100, 21, 173, 100, 21, 183, 100, 21, + 194, 100, 21, 187, 100, 21, 192, 100, 237, 66, 100, 230, 140, 100, 231, + 190, 53, 100, 237, 51, 53, 100, 228, 175, 53, 100, 233, 82, 76, 100, 230, + 145, 253, 113, 100, 7, 6, 1, 57, 100, 7, 6, 1, 254, 185, 100, 7, 6, 1, + 254, 194, 100, 7, 6, 1, 222, 222, 100, 7, 6, 1, 72, 100, 7, 6, 1, 254, + 191, 100, 7, 6, 1, 214, 100, 7, 6, 1, 212, 100, 7, 6, 1, 74, 100, 7, 6, + 1, 254, 192, 100, 7, 6, 1, 254, 186, 100, 7, 6, 1, 149, 100, 7, 6, 1, + 185, 100, 7, 6, 1, 199, 100, 7, 6, 1, 73, 100, 7, 6, 1, 254, 187, 100, 7, + 6, 1, 254, 196, 100, 7, 6, 1, 146, 100, 7, 6, 1, 193, 100, 7, 6, 1, 254, + 183, 100, 7, 6, 1, 66, 100, 7, 6, 1, 196, 100, 7, 6, 1, 254, 195, 100, 7, + 6, 1, 254, 184, 100, 7, 6, 1, 254, 190, 100, 7, 6, 1, 254, 193, 100, 42, + 37, 104, 100, 235, 37, 233, 104, 100, 41, 37, 104, 100, 230, 125, 235, + 24, 100, 184, 240, 138, 100, 240, 163, 235, 24, 100, 7, 3, 1, 57, 100, 7, + 3, 1, 254, 185, 100, 7, 3, 1, 254, 194, 100, 7, 3, 1, 222, 222, 100, 7, + 3, 1, 72, 100, 7, 3, 1, 254, 191, 100, 7, 3, 1, 214, 100, 7, 3, 1, 212, + 100, 7, 3, 1, 74, 100, 7, 3, 1, 254, 192, 100, 7, 3, 1, 254, 186, 100, 7, + 3, 1, 149, 100, 7, 3, 1, 185, 100, 7, 3, 1, 199, 100, 7, 3, 1, 73, 100, + 7, 3, 1, 254, 187, 100, 7, 3, 1, 254, 196, 100, 7, 3, 1, 146, 100, 7, 3, + 1, 193, 100, 7, 3, 1, 254, 183, 100, 7, 3, 1, 66, 100, 7, 3, 1, 196, 100, + 7, 3, 1, 254, 195, 100, 7, 3, 1, 254, 184, 100, 7, 3, 1, 254, 190, 100, + 7, 3, 1, 254, 193, 100, 42, 240, 137, 104, 100, 61, 240, 138, 100, 41, + 240, 137, 104, 100, 205, 100, 42, 63, 228, 180, 100, 41, 63, 228, 180, + 83, 90, 246, 162, 240, 121, 83, 42, 237, 79, 104, 83, 41, 237, 79, 104, + 83, 90, 237, 67, 83, 48, 237, 44, 246, 164, 83, 48, 1, 253, 10, 83, 48, + 1, 3, 57, 83, 48, 1, 3, 74, 83, 48, 1, 3, 66, 83, 48, 1, 3, 72, 83, 48, + 1, 3, 73, 83, 48, 1, 3, 191, 83, 48, 1, 3, 252, 233, 83, 48, 1, 3, 252, + 251, 83, 48, 1, 3, 253, 18, 83, 222, 252, 232, 39, 240, 181, 76, 83, 48, + 1, 57, 83, 48, 1, 74, 83, 48, 1, 66, 83, 48, 1, 72, 83, 48, 1, 73, 83, + 48, 1, 177, 83, 48, 1, 253, 7, 83, 48, 1, 253, 34, 83, 48, 1, 253, 6, 83, + 48, 1, 253, 33, 83, 48, 1, 252, 204, 83, 48, 1, 253, 24, 83, 48, 1, 253, + 26, 83, 48, 1, 253, 52, 83, 48, 1, 253, 25, 83, 48, 1, 252, 202, 83, 48, + 1, 253, 44, 83, 48, 1, 253, 18, 83, 48, 1, 253, 9, 83, 48, 1, 96, 83, 48, + 1, 252, 201, 83, 48, 1, 252, 248, 83, 48, 1, 252, 227, 83, 48, 1, 252, + 247, 83, 48, 1, 253, 8, 83, 48, 1, 154, 83, 48, 1, 253, 41, 83, 48, 1, + 253, 59, 83, 48, 1, 252, 252, 83, 48, 1, 253, 21, 83, 48, 1, 198, 83, 48, + 1, 252, 239, 83, 48, 1, 252, 229, 83, 48, 1, 253, 13, 83, 48, 1, 253, 14, + 83, 48, 1, 191, 83, 48, 1, 252, 233, 83, 48, 1, 252, 251, 83, 48, 1, 208, + 83, 48, 1, 253, 37, 83, 48, 1, 253, 3, 83, 48, 1, 253, 36, 83, 48, 1, + 252, 246, 83, 48, 1, 252, 208, 83, 48, 1, 199, 83, 48, 237, 107, 240, + 181, 76, 83, 48, 229, 189, 240, 181, 76, 83, 26, 235, 92, 83, 26, 1, 235, + 77, 83, 26, 1, 228, 195, 83, 26, 1, 228, 199, 83, 26, 1, 237, 139, 83, + 26, 1, 228, 201, 83, 26, 1, 228, 202, 83, 26, 1, 235, 81, 83, 26, 1, 228, + 209, 83, 26, 1, 237, 142, 83, 26, 1, 227, 197, 83, 26, 1, 228, 204, 83, + 26, 1, 228, 205, 83, 26, 1, 229, 188, 83, 26, 1, 227, 140, 83, 26, 1, + 227, 139, 83, 26, 1, 228, 193, 83, 26, 1, 237, 137, 83, 26, 1, 237, 141, + 83, 26, 1, 229, 193, 83, 26, 1, 229, 180, 83, 26, 1, 240, 213, 83, 26, 1, + 230, 159, 83, 26, 1, 237, 134, 83, 26, 1, 237, 130, 83, 26, 1, 229, 191, + 83, 26, 1, 233, 128, 83, 26, 1, 233, 131, 83, 26, 1, 233, 138, 83, 26, 1, + 233, 133, 83, 26, 1, 237, 133, 83, 26, 1, 57, 83, 26, 1, 253, 4, 83, 26, + 1, 191, 83, 26, 1, 247, 61, 83, 26, 1, 253, 177, 83, 26, 1, 72, 83, 26, + 1, 247, 232, 83, 26, 1, 253, 96, 83, 26, 1, 73, 83, 26, 1, 252, 208, 83, + 26, 1, 247, 223, 83, 26, 1, 253, 15, 83, 26, 1, 252, 251, 83, 26, 1, 66, + 83, 26, 1, 247, 227, 83, 26, 1, 252, 250, 83, 26, 1, 253, 27, 83, 26, 1, + 252, 233, 83, 26, 1, 253, 100, 83, 26, 1, 253, 28, 83, 26, 1, 74, 100, + 248, 7, 53, 100, 241, 215, 53, 100, 190, 53, 100, 235, 16, 100, 237, 150, + 125, 100, 254, 19, 53, 100, 254, 16, 53, 83, 243, 108, 157, 231, 210, 83, + 117, 58, 83, 235, 18, 58, 83, 81, 58, 83, 231, 191, 58, 83, 86, 235, 27, + 83, 63, 235, 20, 229, 185, 230, 129, 235, 145, 229, 185, 230, 129, 230, + 131, 229, 185, 230, 129, 230, 117, 239, 170, 229, 213, 230, 177, 229, + 213, 230, 177, 50, 45, 4, 248, 251, 57, 50, 45, 4, 249, 20, 72, 50, 45, + 4, 249, 12, 74, 50, 45, 4, 249, 40, 73, 50, 45, 4, 248, 253, 66, 50, 45, + 4, 248, 244, 252, 203, 50, 45, 4, 249, 27, 253, 20, 50, 45, 4, 248, 250, + 253, 12, 50, 45, 4, 249, 1, 253, 57, 50, 45, 4, 249, 31, 253, 31, 50, 45, + 4, 249, 36, 252, 213, 50, 45, 4, 249, 28, 253, 117, 50, 45, 4, 249, 18, + 253, 90, 50, 45, 4, 249, 42, 253, 118, 50, 45, 4, 249, 54, 177, 50, 45, + 4, 249, 26, 253, 6, 50, 45, 4, 249, 44, 253, 7, 50, 45, 4, 249, 47, 253, + 33, 50, 45, 4, 249, 57, 253, 34, 50, 45, 4, 249, 56, 198, 50, 45, 4, 249, + 0, 253, 13, 50, 45, 4, 249, 50, 252, 239, 50, 45, 4, 249, 2, 253, 14, 50, + 45, 4, 249, 7, 252, 229, 50, 45, 4, 248, 249, 252, 201, 50, 45, 4, 249, + 8, 252, 247, 50, 45, 4, 249, 14, 252, 248, 50, 45, 4, 249, 32, 253, 8, + 50, 45, 4, 249, 35, 252, 227, 50, 45, 4, 248, 246, 213, 50, 45, 4, 249, + 49, 253, 0, 50, 45, 4, 249, 21, 252, 223, 50, 45, 4, 248, 254, 253, 50, + 50, 45, 4, 249, 30, 253, 82, 50, 45, 4, 249, 3, 253, 35, 50, 45, 4, 249, + 55, 253, 190, 50, 45, 4, 249, 6, 253, 131, 50, 45, 4, 249, 16, 253, 159, + 50, 45, 4, 249, 39, 208, 50, 45, 4, 249, 11, 253, 36, 50, 45, 4, 249, 33, + 253, 37, 50, 45, 4, 248, 245, 252, 246, 50, 45, 4, 249, 10, 253, 3, 50, + 45, 4, 249, 15, 252, 204, 50, 45, 4, 248, 252, 253, 52, 50, 45, 4, 249, + 23, 253, 24, 50, 45, 4, 248, 255, 253, 25, 50, 45, 4, 249, 37, 253, 26, + 50, 45, 4, 249, 38, 252, 202, 50, 45, 4, 248, 247, 253, 9, 50, 45, 4, + 249, 19, 253, 44, 50, 45, 4, 248, 248, 96, 50, 45, 4, 249, 46, 253, 18, + 50, 45, 4, 249, 34, 252, 208, 50, 45, 4, 249, 52, 252, 250, 50, 45, 4, + 249, 22, 253, 27, 50, 45, 4, 249, 24, 253, 10, 50, 45, 4, 249, 4, 252, + 226, 50, 45, 4, 249, 51, 253, 46, 50, 45, 4, 249, 5, 253, 65, 50, 45, 4, + 249, 9, 253, 165, 50, 45, 4, 249, 25, 254, 22, 50, 45, 4, 249, 58, 252, + 222, 50, 45, 4, 249, 48, 247, 134, 50, 45, 4, 249, 60, 249, 218, 50, 45, + 4, 249, 29, 247, 95, 50, 45, 4, 249, 13, 251, 120, 50, 45, 4, 249, 41, + 251, 119, 50, 45, 4, 249, 53, 251, 166, 50, 45, 4, 249, 17, 251, 167, 50, + 45, 4, 249, 45, 251, 186, 50, 45, 4, 249, 43, 252, 3, 50, 45, 4, 249, 59, + 247, 59, 50, 45, 4, 249, 61, 113, 50, 45, 14, 242, 69, 50, 45, 14, 242, + 70, 50, 45, 14, 242, 71, 50, 45, 14, 242, 72, 50, 45, 14, 242, 73, 50, + 45, 14, 242, 74, 50, 45, 14, 242, 75, 50, 45, 14, 242, 76, 50, 45, 14, + 242, 77, 50, 45, 14, 242, 78, 50, 45, 14, 242, 79, 50, 45, 14, 242, 80, + 50, 45, 14, 242, 81, 50, 45, 14, 242, 82, 50, 45, 89, 249, 62, 247, 4, + 50, 45, 89, 249, 63, 237, 225, 50, 45, 89, 249, 64, 241, 119, 50, 45, 89, + 249, 65, 238, 205, 50, 45, 89, 242, 83, 244, 117, 50, 45, 89, 242, 84, + 233, 29, 50, 45, 89, 242, 85, 248, 35, 50, 45, 89, 242, 86, 247, 195, 50, + 45, 89, 242, 87, 233, 24, 50, 45, 89, 242, 88, 234, 119, 50, 45, 89, 242, + 89, 251, 234, 50, 45, 89, 242, 90, 242, 210, 50, 45, 89, 242, 91, 247, + 127, 50, 45, 89, 242, 92, 242, 216, 50, 45, 89, 249, 66, 237, 224, 50, + 45, 89, 249, 67, 236, 8, 50, 45, 89, 249, 68, 239, 173, 50, 45, 89, 249, + 69, 240, 11, 50, 45, 89, 249, 70, 234, 44, 50, 45, 233, 115, 249, 71, + 244, 50, 50, 45, 233, 115, 249, 72, 236, 116, 50, 45, 89, 249, 73, 248, + 121, 50, 45, 89, 249, 74, 241, 84, 50, 45, 89, 242, 93, 50, 45, 233, 115, + 249, 75, 238, 100, 50, 45, 233, 115, 249, 76, 244, 120, 50, 45, 89, 249, + 77, 236, 16, 50, 45, 89, 249, 78, 241, 40, 50, 45, 89, 242, 94, 50, 45, + 89, 249, 79, 242, 26, 50, 45, 89, 242, 95, 50, 45, 89, 242, 96, 50, 45, + 89, 249, 80, 240, 179, 50, 45, 89, 242, 97, 50, 45, 89, 242, 98, 50, 45, + 89, 242, 99, 50, 45, 233, 115, 249, 81, 240, 55, 50, 45, 89, 242, 101, + 50, 45, 89, 242, 102, 50, 45, 89, 249, 82, 237, 199, 50, 45, 89, 242, + 103, 50, 45, 89, 242, 104, 50, 45, 89, 249, 83, 234, 110, 50, 45, 89, + 249, 84, 235, 250, 50, 45, 89, 242, 105, 50, 45, 89, 242, 106, 50, 45, + 89, 242, 107, 50, 45, 89, 242, 108, 50, 45, 89, 242, 109, 50, 45, 89, + 242, 110, 50, 45, 89, 242, 111, 50, 45, 89, 242, 112, 50, 45, 89, 242, + 113, 50, 45, 89, 249, 85, 239, 119, 50, 45, 89, 242, 114, 50, 45, 89, + 249, 86, 241, 81, 50, 45, 89, 242, 115, 50, 45, 89, 242, 116, 50, 45, 89, + 242, 117, 50, 45, 89, 242, 118, 50, 45, 89, 242, 119, 50, 45, 89, 242, + 120, 50, 45, 89, 242, 121, 50, 45, 89, 242, 122, 50, 45, 89, 242, 123, + 50, 45, 89, 242, 124, 50, 45, 89, 242, 125, 50, 45, 89, 249, 87, 235, + 176, 50, 45, 89, 249, 88, 231, 69, 50, 45, 89, 249, 89, 234, 15, 50, 45, + 89, 249, 90, 238, 64, 50, 45, 89, 249, 91, 58, 50, 45, 89, 242, 152, 50, + 45, 89, 249, 92, 240, 25, 50, 45, 89, 242, 153, 50, 45, 89, 242, 154, 50, + 45, 89, 249, 93, 237, 29, 233, 191, 50, 45, 89, 249, 94, 233, 191, 50, + 45, 89, 249, 95, 236, 25, 238, 225, 50, 45, 89, 249, 96, 240, 84, 50, 45, + 89, 242, 155, 50, 45, 89, 242, 156, 50, 45, 233, 115, 249, 97, 238, 187, + 50, 45, 89, 242, 157, 50, 45, 89, 242, 158, 50, 45, 89, 242, 160, 50, 45, + 89, 242, 161, 50, 45, 89, 242, 162, 50, 45, 89, 249, 98, 243, 28, 50, 45, + 89, 242, 163, 50, 45, 89, 242, 164, 50, 45, 89, 242, 165, 50, 45, 89, + 242, 166, 50, 45, 89, 242, 167, 50, 45, 89, 237, 53, 242, 100, 50, 45, + 89, 237, 53, 242, 126, 50, 45, 89, 237, 53, 242, 127, 50, 45, 89, 237, + 53, 242, 128, 50, 45, 89, 237, 53, 242, 129, 50, 45, 89, 237, 53, 242, + 130, 50, 45, 89, 237, 53, 242, 131, 50, 45, 89, 237, 53, 242, 132, 50, + 45, 89, 237, 53, 242, 133, 50, 45, 89, 237, 53, 242, 134, 50, 45, 89, + 237, 53, 242, 135, 50, 45, 89, 237, 53, 242, 136, 50, 45, 89, 237, 53, + 242, 137, 50, 45, 89, 237, 53, 242, 138, 50, 45, 89, 237, 53, 242, 139, + 50, 45, 89, 237, 53, 242, 140, 50, 45, 89, 237, 53, 242, 141, 50, 45, 89, + 237, 53, 242, 142, 50, 45, 89, 237, 53, 242, 143, 50, 45, 89, 237, 53, + 242, 144, 50, 45, 89, 237, 53, 242, 145, 50, 45, 89, 237, 53, 242, 146, + 50, 45, 89, 237, 53, 242, 147, 50, 45, 89, 237, 53, 242, 148, 50, 45, 89, + 237, 53, 242, 149, 50, 45, 89, 237, 53, 242, 150, 50, 45, 89, 237, 53, + 242, 151, 50, 45, 89, 237, 53, 242, 159, 50, 45, 89, 237, 53, 242, 168, + 210, 247, 8, 231, 247, 240, 138, 210, 247, 8, 231, 247, 246, 164, 210, + 240, 245, 76, 210, 65, 118, 210, 65, 113, 210, 65, 166, 210, 65, 158, + 210, 65, 173, 210, 65, 183, 210, 65, 194, 210, 65, 187, 210, 65, 192, + 210, 65, 246, 179, 210, 65, 235, 52, 210, 65, 235, 80, 210, 65, 237, 203, + 210, 65, 237, 100, 210, 65, 238, 62, 210, 65, 233, 235, 210, 65, 235, + 169, 210, 65, 235, 132, 210, 65, 168, 233, 75, 210, 65, 135, 233, 75, + 210, 65, 152, 233, 75, 210, 65, 246, 160, 233, 75, 210, 65, 246, 159, + 233, 75, 210, 65, 253, 17, 233, 75, 210, 65, 240, 155, 233, 75, 210, 65, + 240, 142, 233, 75, 210, 65, 246, 208, 233, 75, 210, 65, 168, 231, 196, + 210, 65, 135, 231, 196, 210, 65, 152, 231, 196, 210, 65, 246, 160, 231, + 196, 210, 65, 246, 159, 231, 196, 210, 65, 253, 17, 231, 196, 210, 65, + 240, 155, 231, 196, 210, 65, 240, 142, 231, 196, 210, 65, 246, 208, 231, + 196, 210, 65, 253, 53, 231, 196, 210, 65, 237, 97, 231, 196, 210, 65, + 237, 106, 231, 196, 210, 65, 240, 184, 231, 196, 210, 65, 240, 189, 231, + 196, 210, 65, 245, 187, 231, 196, 210, 65, 236, 218, 231, 196, 210, 65, + 238, 197, 231, 196, 210, 65, 239, 144, 231, 196, 210, 237, 169, 247, 122, + 246, 34, 210, 237, 169, 240, 225, 233, 122, 210, 237, 169, 237, 145, 233, + 122, 210, 237, 169, 240, 239, 233, 122, 210, 237, 169, 237, 182, 233, + 122, 210, 254, 46, 235, 85, 240, 225, 233, 122, 210, 239, 88, 235, 85, + 240, 225, 233, 122, 210, 235, 85, 237, 145, 233, 122, 210, 235, 85, 240, + 239, 233, 122, 19, 230, 124, 240, 140, 168, 233, 155, 19, 230, 124, 240, + 140, 168, 240, 170, 19, 230, 124, 240, 140, 168, 234, 86, 19, 230, 124, + 240, 140, 173, 19, 230, 124, 240, 140, 237, 100, 19, 230, 124, 240, 140, + 246, 159, 233, 75, 19, 230, 124, 240, 140, 246, 159, 231, 196, 19, 230, + 124, 240, 140, 240, 189, 231, 196, 19, 230, 124, 240, 140, 246, 159, 233, + 126, 19, 230, 124, 240, 140, 253, 53, 233, 126, 19, 230, 124, 240, 140, + 240, 189, 233, 126, 19, 230, 124, 240, 140, 168, 235, 56, 233, 126, 19, + 230, 124, 240, 140, 246, 159, 235, 56, 233, 126, 19, 230, 124, 240, 140, + 168, 233, 117, 233, 126, 19, 230, 124, 240, 140, 246, 159, 233, 117, 233, + 126, 19, 230, 124, 240, 140, 246, 159, 233, 121, 19, 230, 124, 240, 140, + 253, 53, 233, 121, 19, 230, 124, 240, 140, 240, 189, 233, 121, 19, 230, + 124, 240, 140, 168, 235, 56, 233, 121, 19, 230, 124, 240, 140, 246, 159, + 235, 56, 233, 121, 19, 230, 124, 240, 140, 168, 233, 117, 233, 121, 19, + 230, 124, 240, 140, 253, 53, 233, 117, 233, 121, 19, 230, 124, 240, 140, + 240, 189, 233, 117, 233, 121, 19, 230, 124, 240, 140, 253, 53, 241, 51, + 19, 230, 124, 236, 103, 168, 232, 251, 19, 230, 124, 233, 108, 118, 19, + 230, 124, 230, 166, 118, 19, 230, 124, 230, 165, 113, 19, 230, 124, 233, + 108, 113, 19, 230, 124, 234, 45, 135, 232, 21, 19, 230, 124, 230, 165, + 135, 232, 21, 19, 230, 124, 230, 144, 173, 19, 230, 124, 230, 144, 246, + 179, 19, 230, 124, 230, 144, 253, 53, 231, 235, 15, 19, 230, 124, 230, + 166, 246, 179, 19, 230, 124, 232, 230, 246, 179, 19, 230, 124, 233, 108, + 246, 179, 19, 230, 124, 233, 108, 235, 80, 19, 230, 124, 230, 144, 237, + 100, 19, 230, 124, 230, 144, 240, 189, 231, 235, 15, 19, 230, 124, 230, + 166, 237, 100, 19, 230, 124, 233, 108, 237, 100, 19, 230, 124, 233, 108, + 168, 233, 75, 19, 230, 124, 233, 108, 152, 233, 75, 19, 230, 124, 230, + 165, 246, 159, 233, 75, 19, 230, 124, 230, 144, 246, 159, 233, 75, 19, + 230, 124, 233, 108, 246, 159, 233, 75, 19, 230, 124, 232, 93, 246, 159, + 233, 75, 19, 230, 124, 239, 127, 246, 159, 233, 75, 19, 230, 124, 233, + 108, 168, 231, 196, 19, 230, 124, 233, 108, 246, 159, 231, 196, 19, 230, + 124, 236, 45, 246, 159, 241, 51, 19, 230, 124, 234, 233, 240, 189, 241, + 51, 19, 168, 132, 53, 19, 168, 132, 5, 231, 235, 15, 19, 135, 237, 218, + 53, 19, 152, 233, 176, 53, 19, 248, 200, 53, 19, 240, 28, 53, 19, 235, + 167, 53, 19, 251, 96, 53, 19, 135, 241, 8, 53, 19, 152, 241, 8, 53, 19, + 246, 160, 241, 8, 53, 19, 246, 159, 241, 8, 53, 19, 234, 160, 53, 19, + 236, 126, 247, 122, 53, 19, 244, 105, 53, 19, 239, 177, 53, 19, 240, 89, + 53, 19, 238, 107, 53, 19, 238, 105, 53, 19, 238, 253, 53, 19, 234, 252, + 247, 122, 53, 19, 247, 27, 53, 240, 118, 236, 219, 53, 240, 118, 246, 33, + 53, 240, 118, 234, 219, 53, 240, 118, 235, 208, 53, 240, 118, 236, 50, + 235, 208, 53, 240, 118, 236, 231, 53, 240, 118, 234, 48, 53, 240, 118, + 233, 5, 53, 240, 118, 231, 139, 53, 240, 118, 232, 174, 53, 240, 118, + 254, 203, 53, 240, 118, 232, 94, 53, 233, 69, 246, 158, 5, 230, 89, 233, + 69, 246, 158, 5, 239, 199, 240, 228, 233, 69, 246, 158, 5, 234, 240, 240, + 228, 233, 69, 246, 158, 5, 234, 27, 233, 69, 246, 158, 5, 237, 235, 233, + 69, 246, 158, 5, 237, 225, 233, 69, 246, 158, 5, 235, 176, 233, 69, 246, + 158, 5, 232, 197, 233, 69, 246, 158, 5, 240, 42, 233, 69, 246, 158, 5, + 58, 233, 69, 246, 158, 5, 247, 68, 233, 69, 246, 158, 5, 236, 225, 233, + 69, 246, 158, 5, 243, 16, 233, 69, 246, 158, 5, 232, 226, 233, 69, 246, + 158, 5, 234, 155, 233, 69, 246, 158, 5, 251, 212, 233, 69, 246, 158, 5, + 248, 92, 233, 69, 246, 158, 5, 230, 232, 233, 69, 246, 158, 5, 232, 92, + 239, 198, 233, 69, 246, 158, 5, 236, 53, 233, 69, 246, 158, 5, 243, 19, + 233, 69, 246, 158, 5, 240, 3, 233, 69, 246, 158, 5, 236, 35, 233, 69, + 246, 158, 5, 234, 17, 233, 69, 246, 158, 5, 245, 168, 233, 69, 246, 158, + 5, 240, 179, 233, 69, 246, 158, 5, 243, 175, 233, 69, 246, 158, 5, 242, + 217, 247, 3, 233, 69, 246, 158, 5, 248, 5, 233, 69, 246, 158, 5, 247, + 195, 233, 69, 246, 158, 5, 238, 195, 233, 69, 246, 158, 5, 243, 80, 233, + 69, 246, 158, 5, 240, 54, 233, 69, 246, 158, 5, 247, 28, 233, 69, 246, + 158, 5, 245, 77, 241, 81, 233, 69, 246, 158, 5, 246, 48, 233, 69, 246, + 158, 5, 234, 186, 233, 69, 246, 158, 5, 234, 210, 233, 69, 246, 158, 5, + 244, 104, 233, 69, 246, 158, 5, 255, 43, 240, 217, 233, 69, 246, 158, 5, + 237, 250, 233, 69, 246, 158, 5, 236, 96, 233, 69, 246, 158, 5, 233, 32, + 233, 69, 246, 158, 5, 3, 247, 244, 233, 69, 246, 158, 5, 246, 239, 242, + 172, 233, 69, 246, 158, 5, 36, 235, 78, 82, 237, 52, 1, 57, 237, 52, 1, + 72, 237, 52, 1, 254, 185, 237, 52, 1, 254, 33, 237, 52, 1, 214, 237, 52, + 1, 222, 222, 237, 52, 1, 74, 237, 52, 1, 254, 195, 237, 52, 1, 254, 193, + 237, 52, 1, 253, 135, 237, 52, 1, 254, 192, 237, 52, 1, 254, 186, 237, + 52, 1, 254, 196, 237, 52, 1, 149, 237, 52, 1, 185, 237, 52, 1, 199, 237, + 52, 1, 253, 248, 237, 52, 1, 253, 155, 237, 52, 1, 66, 237, 52, 1, 254, + 187, 237, 52, 1, 253, 183, 237, 52, 1, 146, 237, 52, 1, 193, 237, 52, 1, + 254, 183, 237, 52, 1, 253, 196, 237, 52, 1, 253, 5, 237, 52, 1, 252, 232, + 237, 52, 1, 212, 237, 52, 1, 254, 184, 237, 38, 1, 57, 237, 38, 1, 254, + 124, 237, 38, 1, 222, 222, 237, 38, 1, 149, 237, 38, 1, 252, 66, 237, 38, + 1, 146, 237, 38, 1, 254, 92, 237, 38, 1, 253, 165, 237, 38, 1, 254, 196, + 237, 38, 1, 254, 185, 237, 38, 1, 185, 237, 38, 1, 73, 237, 38, 1, 254, + 41, 237, 38, 1, 254, 183, 237, 38, 1, 253, 160, 237, 38, 1, 251, 220, + 237, 38, 1, 193, 237, 38, 1, 242, 227, 237, 38, 1, 66, 237, 38, 1, 253, + 155, 237, 38, 1, 254, 184, 237, 38, 1, 199, 237, 38, 1, 252, 31, 237, 38, + 1, 254, 187, 237, 38, 1, 253, 194, 237, 38, 1, 74, 237, 38, 1, 72, 237, + 38, 1, 246, 43, 237, 38, 1, 254, 186, 237, 38, 1, 254, 76, 237, 38, 1, + 254, 111, 237, 38, 1, 252, 224, 237, 38, 1, 214, 237, 38, 1, 254, 58, + 237, 38, 1, 253, 195, 237, 38, 1, 251, 237, 237, 38, 1, 253, 69, 237, 38, + 1, 252, 216, 237, 38, 1, 242, 228, 237, 38, 1, 253, 196, 237, 38, 1, 246, + 41, 237, 38, 1, 252, 249, 237, 38, 1, 253, 246, 237, 38, 1, 250, 253, + 237, 38, 1, 250, 254, 237, 38, 1, 250, 255, 237, 38, 1, 250, 212, 237, + 38, 1, 253, 218, 237, 38, 1, 246, 42, 84, 27, 1, 57, 84, 27, 1, 253, 73, + 84, 27, 1, 253, 6, 84, 27, 1, 253, 20, 84, 27, 1, 72, 84, 27, 1, 253, 95, + 84, 27, 1, 253, 46, 84, 27, 1, 252, 252, 84, 27, 1, 246, 247, 84, 27, 1, + 74, 84, 27, 1, 177, 84, 27, 1, 253, 58, 84, 27, 1, 253, 87, 84, 27, 1, + 252, 232, 84, 27, 1, 246, 232, 84, 27, 1, 73, 84, 27, 1, 253, 0, 84, 27, + 1, 246, 186, 84, 27, 1, 253, 34, 84, 27, 1, 253, 99, 84, 27, 1, 253, 116, + 84, 27, 1, 253, 9, 84, 27, 1, 66, 84, 27, 1, 249, 227, 84, 27, 1, 248, + 130, 84, 27, 1, 248, 82, 84, 27, 1, 253, 124, 84, 27, 1, 249, 232, 84, + 27, 1, 246, 217, 84, 27, 1, 252, 216, 84, 27, 1, 252, 224, 84, 27, 207, + 118, 84, 27, 207, 173, 84, 27, 207, 246, 179, 84, 27, 207, 237, 100, 237, + 54, 1, 242, 46, 237, 54, 1, 234, 12, 237, 54, 1, 243, 145, 237, 54, 1, + 243, 25, 237, 54, 1, 235, 241, 237, 54, 1, 233, 3, 237, 54, 1, 244, 14, + 237, 54, 1, 243, 168, 237, 54, 1, 237, 5, 237, 54, 1, 249, 226, 237, 54, + 1, 239, 74, 237, 54, 1, 239, 79, 237, 54, 1, 239, 95, 237, 54, 1, 236, + 163, 237, 54, 1, 250, 128, 237, 54, 1, 246, 37, 237, 54, 1, 232, 238, + 237, 54, 1, 235, 132, 237, 54, 1, 239, 213, 237, 54, 1, 239, 238, 237, + 54, 1, 240, 33, 237, 54, 1, 240, 86, 237, 54, 1, 238, 212, 237, 54, 1, + 239, 38, 237, 54, 1, 238, 9, 237, 54, 1, 239, 176, 237, 54, 1, 246, 208, + 233, 75, 233, 72, 1, 242, 55, 233, 72, 1, 240, 160, 233, 72, 1, 238, 232, + 233, 72, 1, 246, 178, 233, 72, 1, 237, 75, 233, 72, 1, 253, 21, 233, 72, + 1, 253, 10, 233, 72, 1, 240, 173, 233, 72, 1, 243, 233, 233, 72, 1, 247, + 210, 233, 72, 1, 247, 63, 233, 72, 1, 247, 1, 233, 72, 1, 240, 203, 233, + 72, 1, 237, 82, 233, 72, 1, 247, 41, 233, 72, 1, 243, 60, 233, 72, 1, + 246, 195, 233, 72, 1, 253, 97, 233, 72, 1, 239, 235, 233, 72, 1, 246, + 224, 233, 72, 1, 253, 82, 233, 72, 1, 241, 229, 233, 72, 1, 245, 100, + 233, 72, 1, 239, 214, 233, 72, 1, 237, 3, 233, 72, 1, 237, 255, 233, 72, + 1, 96, 233, 72, 1, 74, 233, 72, 1, 66, 233, 72, 1, 247, 204, 233, 72, + 247, 8, 233, 140, 84, 235, 15, 5, 57, 84, 235, 15, 5, 74, 84, 235, 15, 5, + 66, 84, 235, 15, 5, 177, 84, 235, 15, 5, 253, 34, 84, 235, 15, 5, 252, + 205, 84, 235, 15, 5, 253, 40, 84, 235, 15, 5, 253, 83, 84, 235, 15, 5, + 252, 215, 84, 235, 15, 5, 252, 213, 84, 235, 15, 5, 253, 104, 84, 235, + 15, 5, 252, 202, 84, 235, 15, 5, 253, 18, 84, 235, 15, 5, 252, 203, 84, + 235, 15, 5, 253, 12, 84, 235, 15, 5, 253, 31, 84, 235, 15, 5, 246, 173, + 84, 235, 15, 5, 213, 84, 235, 15, 5, 252, 211, 84, 235, 15, 5, 252, 234, + 84, 235, 15, 5, 252, 201, 84, 235, 15, 5, 252, 227, 84, 235, 15, 5, 198, + 84, 235, 15, 5, 252, 239, 84, 235, 15, 5, 252, 229, 84, 235, 15, 5, 191, + 84, 235, 15, 5, 252, 243, 84, 235, 15, 5, 253, 138, 84, 235, 15, 5, 208, + 84, 235, 15, 5, 253, 3, 84, 235, 15, 5, 252, 200, 84, 235, 15, 5, 252, + 204, 84, 235, 15, 5, 252, 226, 84, 235, 15, 5, 246, 165, 84, 235, 15, 5, + 246, 190, 84, 235, 15, 5, 154, 84, 235, 15, 5, 229, 232, 84, 235, 15, 5, + 227, 218, 84, 235, 15, 5, 227, 219, 84, 235, 15, 5, 228, 173, 84, 235, + 15, 5, 230, 242, 84, 235, 15, 5, 228, 235, 84, 235, 15, 5, 242, 170, 84, + 235, 15, 5, 234, 24, 84, 235, 15, 247, 8, 233, 140, 84, 235, 15, 65, 118, + 84, 235, 15, 65, 113, 84, 235, 15, 65, 246, 179, 84, 235, 15, 65, 235, + 52, 84, 235, 15, 65, 233, 75, 143, 6, 1, 182, 74, 143, 6, 1, 182, 72, + 143, 6, 1, 182, 57, 143, 6, 1, 182, 253, 111, 143, 6, 1, 182, 73, 143, 6, + 1, 182, 252, 220, 143, 6, 1, 240, 125, 74, 143, 6, 1, 240, 125, 72, 143, + 6, 1, 240, 125, 57, 143, 6, 1, 240, 125, 253, 111, 143, 6, 1, 240, 125, + 73, 143, 6, 1, 240, 125, 252, 220, 143, 6, 1, 253, 114, 143, 6, 1, 254, + 1, 143, 6, 1, 253, 109, 143, 6, 1, 247, 62, 143, 6, 1, 212, 143, 6, 1, + 247, 46, 143, 6, 1, 247, 28, 143, 6, 1, 247, 106, 143, 6, 1, 247, 30, + 143, 6, 1, 240, 246, 143, 6, 1, 247, 38, 143, 6, 1, 248, 79, 143, 6, 1, + 248, 45, 143, 6, 1, 253, 124, 143, 6, 1, 247, 113, 143, 6, 1, 246, 242, + 143, 6, 1, 240, 238, 143, 6, 1, 253, 116, 143, 6, 1, 247, 64, 143, 6, 1, + 246, 232, 143, 6, 1, 241, 25, 143, 6, 1, 253, 99, 143, 6, 1, 253, 58, + 143, 6, 1, 253, 87, 143, 6, 1, 252, 232, 143, 6, 1, 247, 0, 143, 6, 1, + 253, 157, 143, 6, 1, 253, 220, 143, 3, 1, 182, 74, 143, 3, 1, 182, 72, + 143, 3, 1, 182, 57, 143, 3, 1, 182, 253, 111, 143, 3, 1, 182, 73, 143, 3, + 1, 182, 252, 220, 143, 3, 1, 240, 125, 74, 143, 3, 1, 240, 125, 72, 143, + 3, 1, 240, 125, 57, 143, 3, 1, 240, 125, 253, 111, 143, 3, 1, 240, 125, + 73, 143, 3, 1, 240, 125, 252, 220, 143, 3, 1, 253, 114, 143, 3, 1, 254, + 1, 143, 3, 1, 253, 109, 143, 3, 1, 247, 62, 143, 3, 1, 212, 143, 3, 1, + 247, 46, 143, 3, 1, 247, 28, 143, 3, 1, 247, 106, 143, 3, 1, 247, 30, + 143, 3, 1, 240, 246, 143, 3, 1, 247, 38, 143, 3, 1, 248, 79, 143, 3, 1, + 248, 45, 143, 3, 1, 253, 124, 143, 3, 1, 247, 113, 143, 3, 1, 246, 242, + 143, 3, 1, 240, 238, 143, 3, 1, 253, 116, 143, 3, 1, 247, 64, 143, 3, 1, + 246, 232, 143, 3, 1, 241, 25, 143, 3, 1, 253, 99, 143, 3, 1, 253, 58, + 143, 3, 1, 253, 87, 143, 3, 1, 252, 232, 143, 3, 1, 247, 0, 143, 3, 1, + 253, 157, 143, 3, 1, 253, 220, 235, 17, 1, 245, 63, 235, 17, 1, 248, 179, + 235, 17, 1, 244, 57, 235, 17, 1, 247, 140, 235, 17, 1, 240, 36, 235, 17, + 1, 253, 25, 235, 17, 1, 245, 227, 235, 17, 1, 236, 29, 235, 17, 1, 252, + 146, 235, 17, 1, 243, 237, 235, 17, 1, 249, 117, 235, 17, 1, 243, 52, + 235, 17, 1, 250, 11, 235, 17, 1, 252, 83, 235, 17, 1, 245, 245, 235, 17, + 1, 248, 210, 235, 17, 1, 233, 218, 235, 17, 1, 239, 52, 235, 17, 1, 252, + 102, 235, 17, 1, 239, 1, 235, 17, 1, 244, 106, 235, 17, 1, 244, 146, 235, + 17, 1, 254, 67, 235, 17, 1, 249, 225, 235, 17, 1, 246, 177, 235, 17, 1, + 248, 230, 235, 17, 1, 253, 106, 235, 17, 1, 242, 26, 235, 17, 1, 247, + 186, 235, 17, 1, 253, 111, 235, 17, 1, 245, 118, 235, 17, 1, 246, 195, + 235, 17, 1, 247, 136, 235, 17, 1, 248, 231, 235, 17, 1, 248, 66, 235, 17, + 1, 253, 19, 235, 17, 1, 251, 94, 235, 17, 1, 245, 56, 235, 17, 1, 248, + 121, 235, 17, 1, 248, 242, 235, 17, 1, 248, 239, 235, 17, 1, 253, 81, + 235, 17, 1, 248, 232, 235, 17, 1, 248, 34, 235, 17, 1, 238, 106, 235, 17, + 1, 247, 135, 235, 17, 1, 250, 113, 235, 17, 1, 252, 147, 235, 21, 1, 240, + 174, 235, 21, 1, 252, 211, 235, 21, 1, 252, 202, 235, 21, 1, 252, 213, + 235, 21, 1, 253, 83, 235, 21, 1, 246, 178, 235, 21, 1, 243, 54, 235, 21, + 1, 208, 235, 21, 1, 252, 204, 235, 21, 1, 239, 248, 235, 21, 1, 246, 196, + 235, 21, 1, 242, 235, 235, 21, 1, 252, 205, 235, 21, 1, 252, 234, 235, + 21, 1, 245, 89, 235, 21, 1, 244, 43, 235, 21, 1, 244, 84, 235, 21, 1, + 244, 145, 235, 21, 1, 245, 17, 235, 21, 1, 247, 60, 235, 21, 1, 154, 235, + 21, 1, 191, 235, 21, 1, 57, 235, 21, 1, 72, 235, 21, 1, 74, 235, 21, 1, + 73, 235, 21, 1, 66, 235, 21, 1, 252, 212, 235, 21, 1, 252, 231, 235, 21, + 1, 252, 220, 235, 21, 21, 240, 126, 235, 21, 21, 118, 235, 21, 21, 113, + 235, 21, 21, 166, 235, 21, 21, 158, 235, 21, 21, 173, 235, 21, 21, 183, + 235, 21, 21, 194, 235, 21, 21, 187, 235, 21, 21, 192, 218, 4, 57, 218, 4, + 72, 218, 4, 74, 218, 4, 73, 218, 4, 66, 218, 4, 252, 213, 218, 4, 253, + 90, 218, 4, 177, 218, 4, 253, 6, 218, 4, 253, 7, 218, 4, 253, 33, 218, 4, + 253, 34, 218, 4, 252, 200, 218, 4, 253, 80, 218, 4, 253, 42, 218, 4, 253, + 49, 218, 4, 253, 22, 218, 4, 198, 218, 4, 253, 13, 218, 4, 252, 239, 218, + 4, 253, 14, 218, 4, 252, 229, 218, 4, 252, 201, 218, 4, 252, 247, 218, 4, + 252, 248, 218, 4, 253, 8, 218, 4, 252, 227, 218, 4, 213, 218, 4, 253, 0, + 218, 4, 252, 223, 218, 4, 253, 50, 218, 4, 253, 82, 218, 4, 208, 218, 4, + 253, 36, 218, 4, 253, 37, 218, 4, 252, 246, 218, 4, 253, 3, 218, 4, 252, + 204, 218, 4, 253, 52, 218, 4, 253, 24, 218, 4, 253, 25, 218, 4, 253, 26, + 218, 4, 252, 202, 218, 4, 253, 9, 218, 4, 253, 44, 218, 4, 96, 218, 4, + 253, 18, 218, 4, 252, 208, 218, 4, 252, 250, 218, 4, 253, 27, 218, 4, + 253, 10, 218, 4, 253, 83, 218, 4, 254, 17, 218, 4, 252, 226, 218, 4, 253, + 65, 230, 127, 1, 248, 233, 230, 127, 1, 247, 253, 230, 127, 1, 243, 114, + 230, 127, 1, 243, 57, 230, 127, 1, 252, 252, 230, 127, 1, 247, 225, 230, + 127, 1, 252, 168, 230, 127, 1, 248, 60, 230, 127, 1, 247, 210, 230, 127, + 1, 247, 63, 230, 127, 1, 247, 1, 230, 127, 1, 244, 88, 230, 127, 1, 247, + 41, 230, 127, 1, 246, 195, 230, 127, 1, 245, 156, 230, 127, 1, 246, 224, + 230, 127, 1, 253, 0, 230, 127, 1, 241, 229, 230, 127, 1, 248, 142, 230, + 127, 1, 245, 120, 230, 127, 1, 240, 203, 230, 127, 1, 246, 212, 230, 127, + 65, 118, 230, 127, 65, 246, 179, 230, 127, 65, 235, 52, 230, 127, 65, + 168, 233, 75, 230, 127, 247, 8, 230, 131, 237, 55, 1, 57, 237, 55, 1, + 254, 185, 237, 55, 1, 214, 237, 55, 1, 222, 222, 237, 55, 1, 72, 237, 55, + 1, 196, 237, 55, 1, 74, 237, 55, 1, 254, 190, 237, 55, 1, 254, 186, 237, + 55, 1, 149, 237, 55, 1, 185, 237, 55, 1, 199, 237, 55, 1, 73, 237, 55, 1, + 146, 237, 55, 1, 253, 194, 237, 55, 1, 254, 183, 237, 55, 1, 66, 237, 55, + 1, 254, 191, 237, 55, 1, 254, 196, 237, 55, 1, 193, 237, 55, 1, 253, 196, + 237, 55, 1, 253, 5, 237, 55, 1, 252, 232, 237, 55, 1, 253, 186, 237, 55, + 1, 253, 155, 237, 55, 1, 254, 194, 237, 55, 230, 160, 76, 178, 1, 57, + 178, 31, 5, 74, 178, 31, 5, 66, 178, 31, 5, 153, 146, 178, 31, 5, 72, + 178, 31, 5, 73, 178, 31, 237, 101, 76, 178, 5, 47, 246, 174, 51, 178, 5, + 231, 206, 178, 5, 233, 102, 178, 1, 177, 178, 1, 246, 178, 178, 1, 252, + 205, 178, 1, 246, 202, 178, 1, 252, 215, 178, 1, 246, 176, 178, 1, 252, + 213, 178, 1, 246, 181, 178, 1, 246, 191, 178, 1, 240, 150, 178, 1, 246, + 192, 178, 1, 240, 166, 178, 1, 246, 203, 178, 1, 252, 202, 178, 1, 246, + 173, 178, 1, 252, 203, 178, 1, 246, 196, 178, 1, 252, 201, 178, 1, 213, + 178, 1, 246, 182, 178, 1, 252, 211, 178, 1, 246, 199, 178, 1, 198, 178, + 1, 191, 178, 1, 208, 178, 1, 252, 200, 178, 1, 252, 243, 178, 1, 246, + 165, 178, 1, 246, 190, 178, 1, 252, 204, 178, 1, 252, 226, 178, 1, 154, + 178, 1, 247, 161, 178, 1, 240, 52, 178, 5, 252, 219, 46, 178, 5, 238, + 138, 178, 5, 56, 51, 178, 235, 43, 178, 21, 118, 178, 21, 113, 178, 21, + 166, 178, 21, 158, 178, 65, 246, 179, 178, 65, 235, 52, 178, 65, 168, + 233, 75, 178, 65, 168, 231, 196, 178, 229, 161, 246, 164, 178, 229, 161, + 3, 235, 20, 178, 229, 161, 235, 20, 178, 229, 161, 234, 39, 125, 178, + 229, 161, 232, 227, 178, 229, 161, 239, 89, 178, 229, 161, 237, 109, 178, + 229, 161, 47, 237, 109, 178, 229, 161, 239, 87, 13, 5, 57, 13, 5, 102, + 24, 57, 13, 5, 102, 24, 246, 206, 13, 5, 102, 24, 246, 201, 240, 131, 13, + 5, 102, 24, 154, 13, 5, 102, 24, 246, 234, 13, 5, 102, 24, 240, 171, 240, + 130, 13, 5, 102, 24, 240, 230, 13, 5, 102, 24, 247, 200, 13, 5, 253, 165, + 13, 5, 253, 166, 13, 5, 254, 202, 24, 240, 204, 13, 5, 254, 202, 24, 247, + 31, 240, 130, 13, 5, 254, 202, 24, 247, 12, 13, 5, 254, 202, 24, 246, + 201, 240, 131, 13, 5, 254, 202, 24, 154, 13, 5, 254, 202, 24, 253, 32, + 240, 130, 13, 5, 254, 202, 24, 241, 162, 13, 5, 254, 202, 24, 237, 160, + 13, 5, 254, 202, 24, 238, 53, 13, 5, 254, 202, 24, 97, 79, 97, 79, 66, + 13, 5, 254, 202, 240, 130, 13, 5, 248, 227, 13, 5, 253, 11, 24, 237, 172, + 13, 5, 253, 11, 24, 246, 201, 240, 131, 13, 5, 253, 11, 24, 254, 206, 79, + 252, 232, 13, 5, 253, 11, 24, 241, 68, 13, 5, 253, 11, 24, 240, 187, 13, + 5, 253, 206, 13, 5, 254, 25, 13, 5, 255, 1, 24, 237, 181, 13, 5, 255, 1, + 24, 241, 71, 79, 240, 208, 13, 5, 253, 112, 13, 5, 254, 209, 24, 253, + 112, 13, 5, 254, 209, 24, 241, 120, 13, 5, 254, 209, 24, 240, 208, 13, 5, + 254, 209, 24, 154, 13, 5, 254, 209, 24, 240, 254, 13, 5, 254, 209, 24, + 253, 7, 13, 5, 254, 209, 24, 246, 186, 13, 5, 254, 209, 24, 246, 249, 13, + 5, 242, 52, 13, 5, 238, 93, 13, 5, 241, 94, 13, 5, 248, 234, 24, 246, + 186, 13, 5, 253, 5, 13, 5, 254, 216, 107, 253, 5, 13, 5, 254, 216, 152, + 237, 166, 13, 5, 254, 216, 79, 247, 42, 233, 119, 254, 216, 79, 241, 55, + 13, 5, 254, 216, 79, 247, 42, 233, 91, 13, 5, 238, 97, 13, 5, 242, 60, + 13, 5, 242, 62, 13, 5, 248, 237, 24, 246, 220, 13, 5, 238, 103, 13, 5, + 238, 108, 13, 5, 246, 177, 13, 5, 252, 254, 248, 208, 240, 131, 13, 5, + 252, 254, 248, 77, 240, 131, 13, 5, 252, 254, 107, 252, 254, 247, 111, + 107, 247, 111, 247, 111, 107, 247, 111, 247, 45, 13, 5, 252, 254, 107, + 252, 254, 107, 246, 177, 13, 5, 252, 254, 107, 252, 254, 107, 252, 254, + 233, 77, 252, 254, 107, 252, 254, 107, 246, 177, 13, 5, 240, 204, 13, 5, + 235, 108, 13, 5, 252, 211, 13, 5, 246, 206, 13, 5, 242, 169, 13, 5, 236, + 5, 13, 5, 247, 120, 13, 5, 254, 31, 107, 247, 120, 13, 5, 237, 172, 13, + 5, 125, 13, 5, 238, 110, 13, 5, 253, 30, 13, 5, 254, 234, 24, 57, 13, 5, + 254, 234, 24, 246, 197, 13, 5, 254, 234, 24, 253, 32, 240, 130, 13, 5, + 253, 48, 13, 5, 254, 210, 107, 254, 210, 253, 166, 13, 5, 254, 210, 107, + 254, 210, 253, 121, 13, 5, 254, 210, 233, 77, 253, 48, 13, 5, 237, 196, + 13, 5, 242, 218, 107, 237, 196, 13, 5, 247, 11, 13, 5, 242, 223, 13, 5, + 252, 203, 13, 5, 248, 17, 13, 5, 252, 238, 237, 56, 24, 102, 79, 241, 5, + 13, 5, 252, 238, 237, 56, 24, 241, 94, 13, 5, 252, 238, 237, 56, 24, 237, + 172, 13, 5, 252, 238, 237, 56, 24, 253, 30, 13, 5, 252, 238, 237, 56, 24, + 252, 205, 13, 5, 252, 238, 237, 56, 24, 254, 248, 79, 241, 5, 13, 5, 252, + 238, 237, 56, 24, 253, 39, 13, 5, 252, 238, 237, 56, 24, 240, 250, 13, 5, + 252, 238, 237, 56, 24, 246, 233, 13, 5, 252, 238, 237, 56, 24, 154, 13, + 5, 252, 238, 237, 56, 24, 253, 149, 13, 5, 252, 238, 237, 56, 24, 255, + 32, 79, 253, 22, 13, 5, 252, 238, 237, 56, 24, 247, 16, 13, 5, 252, 238, + 237, 56, 24, 252, 200, 13, 5, 252, 238, 237, 56, 24, 253, 22, 13, 5, 252, + 238, 237, 56, 24, 254, 240, 79, 238, 23, 13, 5, 252, 238, 237, 56, 24, + 247, 18, 13, 5, 252, 238, 237, 56, 24, 252, 247, 13, 5, 252, 238, 237, + 56, 24, 254, 125, 79, 247, 45, 13, 5, 252, 238, 237, 56, 24, 253, 24, 13, + 5, 252, 238, 237, 56, 24, 240, 187, 13, 5, 252, 238, 237, 56, 24, 254, + 232, 79, 240, 250, 13, 5, 252, 238, 237, 56, 24, 246, 249, 13, 5, 249, + 177, 13, 5, 248, 19, 13, 5, 238, 170, 13, 5, 238, 171, 13, 5, 253, 12, + 13, 5, 248, 27, 13, 5, 249, 193, 13, 5, 253, 215, 24, 246, 186, 13, 5, + 241, 120, 13, 5, 248, 28, 13, 5, 254, 43, 237, 158, 97, 247, 36, 240, + 156, 13, 5, 240, 156, 13, 5, 253, 31, 13, 5, 254, 247, 107, 253, 31, 13, + 5, 254, 247, 240, 130, 13, 5, 254, 247, 233, 134, 13, 5, 247, 132, 13, 5, + 254, 47, 24, 240, 222, 13, 5, 243, 82, 13, 5, 247, 133, 13, 5, 238, 194, + 13, 5, 249, 209, 13, 5, 248, 33, 13, 5, 243, 83, 13, 5, 247, 31, 240, + 130, 13, 5, 247, 31, 247, 36, 240, 130, 13, 5, 243, 84, 13, 5, 243, 87, + 13, 5, 72, 13, 5, 161, 24, 247, 45, 13, 5, 161, 107, 161, 253, 23, 107, + 246, 195, 13, 5, 253, 218, 13, 5, 254, 219, 24, 102, 79, 254, 204, 79, + 252, 203, 13, 5, 254, 219, 24, 246, 197, 13, 5, 254, 219, 24, 252, 239, + 13, 5, 254, 219, 24, 247, 6, 13, 5, 254, 219, 24, 246, 186, 13, 5, 254, + 219, 24, 66, 13, 5, 243, 93, 13, 5, 243, 94, 13, 5, 253, 58, 13, 5, 252, + 232, 13, 5, 254, 199, 24, 240, 249, 13, 5, 254, 199, 24, 246, 201, 240, + 131, 13, 5, 254, 199, 24, 253, 13, 13, 5, 254, 199, 233, 77, 252, 232, + 13, 5, 254, 199, 233, 119, 252, 232, 13, 5, 254, 199, 233, 91, 13, 5, + 243, 100, 13, 5, 237, 181, 13, 5, 240, 222, 13, 5, 243, 104, 13, 5, 246, + 193, 24, 57, 13, 5, 246, 193, 24, 102, 79, 247, 2, 13, 5, 246, 193, 24, + 102, 79, 253, 184, 24, 247, 2, 13, 5, 246, 193, 24, 253, 5, 13, 5, 246, + 193, 24, 246, 206, 13, 5, 246, 193, 24, 247, 31, 240, 130, 13, 5, 246, + 193, 24, 247, 31, 247, 36, 240, 130, 13, 5, 246, 193, 24, 154, 13, 5, + 246, 193, 24, 254, 204, 240, 130, 13, 5, 246, 193, 24, 253, 32, 240, 130, + 13, 5, 246, 193, 24, 235, 76, 13, 5, 246, 193, 24, 237, 158, 233, 91, 13, + 5, 246, 193, 24, 247, 84, 13, 5, 246, 193, 24, 252, 200, 13, 5, 246, 193, + 24, 253, 184, 24, 247, 2, 13, 5, 246, 193, 24, 253, 42, 13, 5, 246, 193, + 24, 253, 22, 13, 5, 246, 193, 24, 253, 107, 13, 5, 246, 193, 24, 253, 45, + 13, 5, 252, 205, 13, 5, 254, 248, 240, 130, 13, 5, 248, 43, 13, 5, 252, + 199, 24, 102, 79, 254, 218, 79, 154, 13, 5, 252, 199, 24, 102, 79, 154, + 13, 5, 252, 199, 24, 102, 79, 246, 234, 13, 5, 252, 199, 24, 253, 11, + 252, 12, 79, 247, 208, 13, 5, 252, 199, 24, 253, 5, 13, 5, 252, 199, 24, + 246, 177, 13, 5, 252, 199, 24, 247, 243, 79, 247, 12, 13, 5, 252, 199, + 24, 246, 206, 13, 5, 252, 199, 24, 252, 219, 79, 208, 13, 5, 252, 199, + 24, 247, 11, 13, 5, 252, 199, 24, 253, 209, 79, 208, 13, 5, 252, 199, 24, + 252, 203, 13, 5, 252, 199, 24, 253, 12, 13, 5, 252, 199, 24, 253, 215, + 24, 246, 186, 13, 5, 252, 199, 24, 247, 132, 13, 5, 252, 199, 24, 253, + 58, 13, 5, 252, 199, 24, 254, 211, 79, 252, 200, 13, 5, 252, 199, 24, + 252, 232, 13, 5, 252, 199, 24, 254, 199, 24, 246, 201, 240, 131, 13, 5, + 252, 199, 24, 246, 201, 240, 131, 13, 5, 252, 199, 24, 246, 197, 13, 5, + 252, 199, 24, 253, 39, 13, 5, 252, 199, 24, 247, 78, 13, 5, 252, 199, 24, + 253, 180, 79, 57, 13, 5, 252, 199, 24, 248, 54, 79, 253, 26, 13, 5, 252, + 199, 24, 254, 204, 79, 254, 240, 79, 240, 222, 13, 5, 252, 199, 24, 247, + 80, 13, 5, 252, 199, 24, 254, 65, 79, 252, 200, 13, 5, 252, 199, 24, 254, + 201, 79, 253, 42, 13, 5, 252, 199, 24, 241, 158, 13, 5, 252, 199, 24, + 253, 32, 240, 130, 13, 5, 252, 199, 24, 254, 71, 79, 255, 30, 79, 246, + 177, 13, 5, 252, 199, 24, 247, 16, 13, 5, 252, 199, 24, 235, 76, 13, 5, + 252, 199, 24, 247, 159, 13, 5, 252, 199, 24, 254, 81, 79, 247, 2, 13, 5, + 252, 199, 24, 254, 86, 79, 253, 5, 13, 5, 252, 199, 24, 252, 200, 13, 5, + 252, 199, 24, 254, 206, 79, 252, 232, 13, 5, 252, 199, 24, 252, 239, 13, + 5, 252, 199, 24, 246, 195, 13, 5, 252, 199, 24, 253, 23, 107, 246, 195, + 13, 5, 252, 199, 24, 213, 13, 5, 252, 199, 24, 247, 6, 13, 5, 252, 199, + 24, 247, 101, 13, 5, 252, 199, 24, 246, 186, 13, 5, 252, 199, 24, 253, + 64, 79, 247, 112, 13, 5, 252, 199, 24, 241, 15, 13, 5, 252, 199, 24, 247, + 21, 13, 5, 252, 199, 24, 240, 187, 13, 5, 252, 199, 24, 66, 13, 5, 252, + 199, 24, 253, 45, 13, 5, 252, 199, 24, 254, 208, 79, 253, 31, 13, 5, 252, + 199, 107, 248, 43, 13, 5, 241, 136, 13, 5, 250, 9, 233, 77, 241, 136, 13, + 5, 248, 44, 13, 5, 253, 89, 107, 253, 89, 253, 75, 107, 246, 197, 13, 5, + 247, 12, 13, 5, 253, 179, 253, 89, 107, 253, 89, 253, 75, 107, 246, 197, + 13, 5, 238, 230, 13, 5, 250, 12, 13, 5, 247, 32, 13, 5, 240, 249, 13, 5, + 246, 201, 240, 131, 13, 5, 246, 201, 107, 240, 249, 13, 5, 246, 201, 233, + 77, 240, 249, 13, 5, 246, 197, 13, 5, 243, 115, 13, 5, 236, 89, 13, 5, + 234, 111, 13, 5, 236, 93, 24, 246, 220, 13, 5, 253, 39, 13, 5, 254, 228, + 24, 72, 13, 5, 254, 228, 24, 66, 13, 5, 254, 228, 233, 77, 253, 39, 13, + 5, 247, 78, 13, 5, 253, 180, 107, 247, 78, 13, 5, 253, 180, 233, 77, 247, + 78, 13, 5, 238, 246, 13, 5, 240, 250, 13, 5, 248, 54, 240, 130, 13, 5, + 243, 150, 13, 5, 247, 33, 24, 102, 79, 246, 234, 13, 5, 247, 33, 24, 246, + 201, 240, 131, 13, 5, 247, 33, 24, 246, 234, 13, 5, 247, 33, 24, 254, + 240, 79, 246, 234, 13, 5, 247, 33, 24, 213, 13, 5, 238, 249, 13, 5, 240, + 208, 13, 5, 246, 243, 233, 77, 240, 208, 13, 5, 246, 243, 24, 246, 206, + 13, 5, 246, 243, 24, 240, 187, 13, 5, 246, 243, 240, 131, 13, 5, 253, 40, + 13, 5, 255, 28, 233, 77, 253, 40, 13, 5, 250, 43, 13, 5, 253, 126, 24, + 247, 16, 13, 5, 253, 126, 24, 253, 237, 24, 253, 32, 240, 130, 13, 5, + 253, 126, 24, 246, 195, 13, 5, 253, 126, 24, 253, 192, 79, 241, 20, 13, + 5, 253, 126, 240, 130, 13, 5, 246, 233, 13, 5, 253, 127, 24, 102, 79, + 246, 220, 13, 5, 253, 127, 24, 246, 220, 13, 5, 253, 127, 107, 253, 127, + 237, 185, 13, 5, 250, 44, 13, 5, 250, 45, 13, 5, 254, 62, 24, 246, 186, + 13, 5, 248, 57, 13, 5, 241, 147, 13, 5, 238, 255, 13, 5, 236, 100, 13, 5, + 154, 13, 5, 254, 204, 240, 131, 13, 5, 254, 204, 240, 130, 13, 5, 247, + 80, 13, 5, 253, 41, 13, 5, 254, 201, 24, 246, 177, 13, 5, 254, 201, 24, + 240, 204, 13, 5, 254, 201, 24, 246, 206, 13, 5, 254, 201, 24, 240, 156, + 13, 5, 254, 201, 24, 248, 44, 13, 5, 254, 201, 24, 247, 160, 13, 5, 254, + 201, 24, 246, 195, 13, 5, 254, 201, 24, 246, 186, 13, 5, 254, 201, 24, + 66, 13, 5, 253, 59, 13, 5, 241, 158, 13, 5, 247, 37, 24, 253, 5, 13, 5, + 247, 37, 24, 247, 80, 13, 5, 247, 37, 24, 235, 76, 13, 5, 247, 37, 24, + 241, 47, 13, 5, 247, 37, 24, 253, 45, 13, 5, 243, 235, 13, 5, 74, 13, 5, + 255, 55, 57, 13, 5, 253, 229, 13, 5, 244, 2, 13, 5, 247, 82, 107, 247, + 82, 247, 11, 13, 5, 247, 82, 107, 247, 82, 233, 91, 13, 5, 254, 68, 13, + 5, 246, 234, 13, 5, 253, 32, 248, 27, 13, 5, 253, 32, 253, 37, 13, 5, + 253, 32, 107, 253, 32, 247, 52, 107, 247, 52, 254, 208, 107, 253, 45, 13, + 5, 253, 32, 240, 130, 13, 5, 254, 69, 13, 5, 255, 31, 24, 246, 201, 240, + 131, 13, 5, 250, 117, 13, 5, 253, 78, 13, 5, 254, 221, 24, 240, 187, 13, + 5, 254, 221, 233, 77, 253, 78, 13, 5, 254, 221, 233, 119, 253, 78, 13, 5, + 254, 221, 233, 91, 13, 5, 241, 162, 13, 5, 253, 79, 13, 5, 253, 149, 13, + 5, 248, 68, 13, 5, 177, 13, 5, 188, 24, 57, 13, 5, 188, 24, 253, 206, 13, + 5, 188, 24, 255, 18, 79, 247, 84, 13, 5, 188, 24, 240, 204, 13, 5, 188, + 24, 246, 206, 13, 5, 188, 24, 237, 172, 13, 5, 188, 24, 125, 13, 5, 188, + 24, 253, 30, 13, 5, 188, 24, 237, 181, 13, 5, 188, 24, 240, 222, 13, 5, + 188, 24, 252, 205, 13, 5, 188, 24, 247, 12, 13, 5, 188, 24, 246, 201, + 240, 131, 13, 5, 188, 24, 246, 197, 13, 5, 188, 24, 253, 75, 79, 246, + 236, 79, 57, 13, 5, 188, 24, 253, 39, 13, 5, 188, 24, 240, 250, 13, 5, + 188, 24, 246, 243, 79, 247, 101, 13, 5, 188, 24, 246, 243, 233, 77, 240, + 208, 13, 5, 188, 24, 253, 40, 13, 5, 188, 24, 241, 147, 13, 5, 188, 24, + 246, 234, 13, 5, 188, 24, 253, 78, 13, 5, 188, 24, 247, 16, 13, 5, 188, + 24, 253, 7, 13, 5, 188, 24, 247, 159, 13, 5, 188, 24, 253, 42, 13, 5, + 188, 24, 253, 22, 13, 5, 188, 24, 253, 13, 13, 5, 188, 24, 254, 206, 79, + 253, 31, 13, 5, 188, 24, 254, 206, 79, 253, 39, 13, 5, 188, 24, 254, 206, + 79, 253, 9, 13, 5, 188, 24, 252, 239, 13, 5, 188, 24, 255, 11, 79, 238, + 30, 13, 5, 188, 24, 252, 247, 13, 5, 188, 24, 246, 195, 13, 5, 188, 24, + 252, 223, 13, 5, 188, 24, 253, 3, 13, 5, 188, 24, 252, 204, 13, 5, 188, + 24, 247, 101, 13, 5, 188, 24, 246, 165, 13, 5, 188, 24, 246, 186, 13, 5, + 188, 24, 241, 15, 13, 5, 188, 24, 246, 246, 13, 5, 188, 24, 248, 161, 13, + 5, 188, 24, 238, 68, 13, 5, 188, 24, 247, 56, 13, 5, 188, 24, 66, 13, 5, + 188, 24, 253, 107, 13, 5, 188, 24, 253, 45, 13, 5, 188, 24, 247, 220, 24, + 213, 13, 5, 188, 24, 246, 249, 13, 5, 188, 24, 253, 72, 13, 5, 248, 75, + 13, 5, 254, 77, 233, 77, 248, 75, 13, 5, 250, 151, 13, 5, 241, 168, 13, + 5, 240, 254, 13, 5, 244, 45, 13, 5, 241, 169, 13, 5, 250, 153, 107, 241, + 169, 13, 5, 247, 16, 13, 5, 253, 237, 24, 253, 32, 240, 130, 13, 5, 247, + 155, 13, 5, 253, 238, 24, 246, 206, 13, 5, 253, 238, 233, 77, 247, 155, + 13, 5, 244, 46, 13, 5, 244, 47, 13, 5, 235, 76, 13, 5, 237, 158, 215, 24, + 97, 107, 215, 24, 66, 13, 5, 237, 158, 107, 237, 158, 215, 24, 97, 107, + 215, 24, 66, 13, 5, 239, 66, 13, 5, 253, 7, 13, 5, 254, 249, 24, 246, + 206, 13, 5, 254, 249, 24, 66, 13, 5, 254, 249, 24, 253, 45, 13, 5, 247, + 159, 13, 5, 247, 160, 13, 5, 239, 71, 13, 5, 244, 61, 13, 5, 235, 184, + 13, 5, 237, 56, 107, 235, 184, 13, 5, 253, 34, 13, 5, 254, 238, 107, 254, + 201, 24, 247, 243, 254, 238, 107, 254, 201, 24, 240, 204, 13, 5, 247, 84, + 13, 5, 250, 187, 13, 5, 254, 87, 235, 30, 15, 13, 5, 250, 188, 13, 5, + 248, 86, 13, 5, 253, 241, 240, 130, 13, 5, 250, 189, 13, 5, 246, 220, 13, + 5, 253, 242, 233, 119, 246, 220, 13, 5, 235, 127, 13, 5, 236, 125, 13, 5, + 252, 200, 13, 5, 237, 160, 13, 5, 215, 24, 57, 13, 5, 215, 24, 102, 79, + 254, 218, 79, 154, 13, 5, 215, 24, 102, 79, 246, 197, 13, 5, 215, 24, + 102, 79, 247, 2, 13, 5, 215, 24, 253, 112, 13, 5, 215, 24, 253, 5, 13, 5, + 215, 24, 252, 254, 248, 208, 240, 131, 13, 5, 215, 24, 246, 206, 13, 5, + 215, 24, 253, 30, 13, 5, 215, 24, 248, 19, 13, 5, 215, 24, 252, 232, 13, + 5, 215, 24, 252, 205, 13, 5, 215, 24, 246, 197, 13, 5, 215, 24, 246, 233, + 13, 5, 215, 24, 253, 127, 79, 246, 233, 13, 5, 215, 24, 154, 13, 5, 215, + 24, 247, 80, 13, 5, 215, 24, 254, 201, 24, 246, 195, 13, 5, 215, 24, 253, + 32, 240, 130, 13, 5, 215, 24, 253, 78, 13, 5, 215, 24, 254, 221, 79, 154, + 13, 5, 215, 24, 254, 221, 79, 253, 22, 13, 5, 215, 24, 253, 7, 13, 5, + 215, 24, 247, 160, 13, 5, 215, 24, 247, 84, 13, 5, 215, 24, 248, 86, 13, + 5, 215, 24, 253, 241, 79, 254, 201, 79, 57, 13, 5, 215, 24, 237, 160, 13, + 5, 215, 24, 241, 47, 13, 5, 215, 24, 253, 22, 13, 5, 215, 24, 247, 170, + 13, 5, 215, 24, 253, 13, 13, 5, 215, 24, 254, 206, 79, 252, 232, 13, 5, + 215, 24, 240, 230, 13, 5, 215, 24, 252, 247, 13, 5, 215, 24, 253, 64, 79, + 247, 21, 13, 5, 215, 24, 241, 71, 79, 246, 243, 79, 237, 181, 13, 5, 215, + 24, 241, 71, 79, 246, 243, 240, 131, 13, 5, 215, 24, 240, 236, 13, 5, + 215, 24, 251, 221, 79, 240, 236, 13, 5, 215, 24, 247, 21, 13, 5, 215, 24, + 247, 105, 13, 5, 215, 24, 240, 187, 13, 5, 215, 24, 254, 212, 79, 102, + 79, 254, 253, 79, 252, 201, 13, 5, 215, 24, 66, 13, 5, 215, 24, 97, 79, + 57, 13, 5, 215, 24, 97, 79, 97, 79, 66, 13, 5, 215, 24, 254, 232, 79, + 246, 177, 13, 5, 215, 24, 253, 45, 13, 5, 215, 24, 246, 249, 13, 5, 215, + 233, 91, 13, 5, 238, 17, 13, 5, 240, 171, 24, 246, 186, 13, 5, 240, 171, + 24, 253, 64, 79, 247, 21, 13, 5, 240, 171, 240, 130, 13, 5, 240, 171, + 247, 36, 107, 240, 171, 247, 36, 246, 186, 13, 5, 236, 128, 13, 5, 247, + 2, 13, 5, 253, 184, 24, 247, 2, 13, 5, 248, 89, 13, 5, 216, 24, 246, 220, + 13, 5, 216, 24, 253, 242, 79, 253, 3, 13, 5, 253, 42, 13, 5, 250, 221, + 13, 5, 236, 136, 13, 5, 241, 47, 13, 5, 253, 22, 13, 5, 254, 240, 24, + 246, 206, 13, 5, 247, 169, 13, 5, 252, 236, 24, 253, 112, 13, 5, 252, + 236, 24, 246, 206, 13, 5, 252, 236, 24, 240, 222, 13, 5, 252, 236, 24, + 249, 233, 240, 131, 13, 5, 252, 236, 24, 246, 201, 240, 131, 13, 5, 252, + 236, 24, 254, 201, 24, 246, 206, 13, 5, 252, 236, 24, 253, 78, 13, 5, + 252, 236, 24, 241, 168, 13, 5, 252, 236, 24, 240, 254, 13, 5, 252, 236, + 24, 250, 152, 79, 246, 177, 13, 5, 252, 236, 24, 253, 7, 13, 5, 252, 236, + 24, 254, 229, 79, 246, 177, 13, 5, 252, 236, 24, 237, 160, 13, 5, 252, + 236, 24, 254, 206, 79, 252, 232, 13, 5, 252, 236, 24, 252, 247, 13, 5, + 252, 236, 24, 252, 227, 13, 5, 252, 236, 24, 255, 16, 79, 246, 177, 13, + 5, 252, 236, 24, 251, 224, 79, 253, 48, 13, 5, 252, 236, 24, 241, 20, 13, + 5, 252, 236, 240, 131, 13, 5, 252, 236, 233, 77, 247, 169, 13, 5, 252, + 236, 233, 119, 247, 169, 13, 5, 252, 236, 233, 91, 13, 5, 252, 236, 233, + 134, 13, 5, 250, 234, 13, 5, 237, 185, 13, 5, 241, 49, 107, 237, 185, 13, + 5, 241, 49, 233, 119, 237, 185, 13, 5, 241, 49, 233, 134, 13, 5, 250, + 235, 13, 5, 247, 170, 13, 5, 247, 18, 13, 5, 253, 185, 107, 247, 18, 13, + 5, 253, 185, 107, 253, 185, 253, 75, 107, 246, 197, 13, 5, 198, 13, 5, + 255, 10, 24, 240, 187, 13, 5, 255, 10, 240, 130, 13, 5, 250, 245, 13, 5, + 250, 246, 13, 5, 250, 248, 13, 5, 241, 5, 13, 5, 238, 23, 13, 5, 253, 13, + 13, 5, 251, 5, 13, 5, 252, 239, 13, 5, 247, 174, 13, 5, 252, 229, 13, 5, + 254, 207, 107, 252, 229, 13, 5, 248, 103, 13, 5, 254, 105, 240, 130, 13, + 5, 236, 160, 13, 5, 236, 162, 13, 5, 240, 230, 13, 5, 247, 5, 24, 57, 13, + 5, 247, 5, 24, 246, 220, 13, 5, 247, 5, 24, 252, 226, 13, 5, 247, 5, 107, + 240, 230, 13, 5, 247, 5, 107, 247, 5, 24, 102, 79, 252, 201, 13, 5, 247, + 5, 233, 77, 240, 230, 13, 5, 239, 122, 13, 5, 241, 6, 24, 57, 13, 5, 241, + 6, 24, 102, 79, 253, 12, 13, 5, 241, 6, 24, 253, 12, 13, 5, 241, 6, 240, + 130, 13, 5, 252, 201, 13, 5, 251, 36, 13, 5, 241, 55, 13, 5, 247, 42, + 232, 209, 13, 5, 247, 42, 24, 254, 7, 240, 131, 13, 5, 247, 42, 233, 119, + 241, 55, 13, 5, 239, 124, 13, 5, 254, 110, 233, 222, 13, 5, 251, 39, 13, + 5, 244, 164, 13, 5, 252, 247, 13, 5, 254, 251, 24, 57, 13, 5, 254, 251, + 24, 253, 45, 13, 5, 254, 251, 233, 134, 13, 5, 252, 248, 13, 5, 254, 230, + 24, 72, 13, 5, 251, 58, 13, 5, 251, 61, 13, 5, 253, 249, 24, 246, 201, + 240, 131, 13, 5, 253, 249, 24, 253, 75, 79, 246, 201, 240, 131, 13, 5, + 236, 166, 13, 5, 237, 87, 24, 253, 5, 13, 5, 237, 87, 24, 246, 177, 13, + 5, 237, 87, 24, 252, 254, 79, 246, 177, 13, 5, 237, 87, 24, 246, 233, 13, + 5, 237, 87, 24, 254, 206, 79, 246, 201, 240, 131, 13, 5, 237, 87, 24, + 252, 247, 13, 5, 237, 87, 24, 246, 195, 13, 5, 237, 87, 24, 246, 186, 13, + 5, 237, 87, 24, 253, 64, 79, 102, 253, 5, 13, 5, 237, 87, 24, 253, 64, + 79, 246, 177, 13, 5, 237, 87, 24, 253, 64, 79, 252, 254, 79, 246, 177, + 13, 5, 237, 87, 24, 254, 232, 79, 246, 177, 13, 5, 237, 87, 24, 246, 249, + 13, 5, 239, 145, 13, 5, 252, 227, 13, 5, 245, 12, 13, 5, 246, 195, 13, 5, + 253, 23, 240, 171, 24, 246, 197, 13, 5, 253, 23, 240, 171, 24, 241, 5, + 13, 5, 253, 23, 240, 171, 24, 247, 6, 13, 5, 253, 23, 240, 171, 24, 253, + 192, 107, 253, 23, 240, 171, 24, 247, 6, 13, 5, 253, 23, 240, 171, 24, + 246, 249, 13, 5, 253, 23, 240, 131, 13, 5, 253, 23, 107, 246, 195, 13, 5, + 253, 23, 233, 77, 246, 195, 13, 5, 253, 23, 233, 77, 253, 23, 240, 171, + 107, 238, 17, 13, 5, 238, 30, 13, 5, 240, 177, 253, 11, 24, 235, 108, 13, + 5, 240, 177, 253, 11, 24, 253, 30, 13, 5, 240, 177, 253, 11, 24, 247, + 133, 13, 5, 240, 177, 253, 11, 24, 246, 233, 13, 5, 240, 177, 253, 11, + 24, 253, 32, 240, 130, 13, 5, 240, 177, 253, 11, 24, 240, 254, 13, 5, + 240, 177, 253, 11, 24, 252, 200, 13, 5, 240, 177, 253, 11, 24, 252, 247, + 13, 5, 240, 177, 253, 11, 24, 238, 59, 13, 5, 240, 177, 253, 11, 24, 253, + 107, 13, 5, 240, 177, 237, 56, 24, 253, 30, 13, 5, 240, 177, 237, 56, 24, + 254, 234, 66, 13, 5, 213, 13, 5, 251, 101, 13, 5, 251, 103, 13, 5, 247, + 45, 13, 5, 239, 194, 13, 5, 252, 223, 13, 5, 254, 200, 24, 57, 13, 5, + 254, 200, 24, 253, 166, 13, 5, 254, 200, 24, 253, 30, 13, 5, 254, 200, + 24, 253, 48, 13, 5, 254, 200, 24, 72, 13, 5, 254, 200, 24, 74, 13, 5, + 254, 200, 24, 253, 229, 13, 5, 254, 200, 24, 66, 13, 5, 254, 200, 24, + 253, 107, 13, 5, 254, 200, 233, 77, 252, 223, 13, 5, 238, 34, 13, 5, 241, + 10, 24, 247, 155, 13, 5, 241, 10, 24, 253, 45, 13, 5, 241, 10, 24, 252, + 226, 13, 5, 241, 10, 233, 119, 238, 34, 13, 5, 208, 13, 5, 251, 168, 13, + 5, 253, 37, 13, 5, 253, 3, 13, 5, 252, 204, 13, 5, 252, 253, 233, 222, + 13, 5, 247, 200, 13, 5, 252, 253, 24, 57, 13, 5, 252, 253, 24, 253, 31, + 13, 5, 252, 253, 24, 247, 132, 13, 5, 252, 253, 24, 154, 13, 5, 252, 253, + 24, 247, 16, 13, 5, 252, 253, 24, 246, 220, 13, 5, 252, 253, 24, 247, 18, + 13, 5, 252, 253, 24, 252, 239, 13, 5, 252, 253, 24, 246, 195, 13, 5, 252, + 253, 24, 247, 6, 13, 5, 252, 253, 24, 241, 15, 13, 5, 252, 253, 24, 247, + 208, 13, 5, 252, 253, 24, 253, 107, 13, 5, 252, 253, 24, 254, 14, 13, 5, + 252, 253, 24, 253, 199, 13, 5, 252, 253, 24, 253, 161, 13, 5, 252, 253, + 24, 246, 249, 13, 5, 252, 253, 107, 247, 200, 13, 5, 252, 253, 240, 130, + 13, 5, 247, 6, 13, 5, 253, 192, 215, 24, 240, 204, 13, 5, 236, 206, 13, + 5, 247, 101, 13, 5, 246, 165, 13, 5, 241, 68, 13, 5, 246, 236, 24, 57, + 13, 5, 246, 236, 24, 246, 206, 13, 5, 246, 236, 24, 240, 208, 13, 5, 246, + 236, 24, 252, 247, 13, 5, 246, 236, 24, 240, 236, 13, 5, 246, 236, 24, + 247, 112, 13, 5, 246, 236, 24, 66, 13, 5, 246, 236, 24, 97, 79, 57, 13, + 5, 245, 157, 13, 5, 239, 243, 13, 5, 237, 116, 13, 5, 246, 186, 13, 5, + 253, 64, 253, 59, 13, 5, 253, 64, 107, 253, 64, 253, 89, 107, 253, 89, + 253, 75, 107, 246, 197, 13, 5, 253, 64, 107, 253, 64, 253, 134, 107, 253, + 134, 253, 75, 107, 246, 197, 13, 5, 239, 245, 13, 5, 245, 161, 13, 5, + 238, 53, 13, 5, 236, 223, 13, 5, 233, 25, 13, 5, 241, 15, 13, 5, 248, + 158, 24, 57, 13, 5, 248, 158, 24, 253, 78, 13, 5, 245, 166, 13, 5, 246, + 222, 24, 57, 13, 5, 246, 222, 24, 247, 120, 13, 5, 246, 222, 24, 237, + 196, 13, 5, 246, 222, 24, 248, 28, 13, 5, 246, 222, 24, 246, 197, 13, 5, + 246, 222, 24, 246, 234, 13, 5, 246, 222, 24, 253, 32, 240, 130, 13, 5, + 246, 222, 24, 235, 127, 13, 5, 246, 222, 24, 247, 170, 13, 5, 246, 222, + 24, 248, 103, 13, 5, 246, 222, 24, 247, 6, 13, 5, 236, 226, 13, 5, 245, + 169, 13, 5, 247, 52, 240, 131, 13, 5, 247, 52, 107, 247, 52, 253, 209, + 107, 247, 11, 13, 5, 239, 249, 13, 5, 246, 246, 13, 5, 254, 7, 107, 233, + 70, 246, 246, 13, 5, 240, 236, 13, 5, 236, 228, 13, 5, 253, 24, 13, 5, + 255, 16, 240, 130, 13, 5, 248, 161, 13, 5, 241, 245, 13, 5, 248, 162, + 107, 248, 162, 240, 236, 13, 5, 245, 185, 13, 5, 238, 59, 13, 5, 253, 26, + 13, 5, 254, 253, 107, 253, 26, 13, 5, 251, 240, 13, 5, 245, 222, 13, 5, + 238, 68, 13, 5, 247, 21, 13, 5, 236, 247, 13, 5, 247, 205, 13, 5, 245, + 226, 13, 5, 252, 202, 13, 5, 254, 214, 231, 198, 13, 5, 254, 214, 24, + 253, 41, 13, 5, 254, 214, 24, 252, 239, 13, 5, 254, 214, 240, 130, 13, 5, + 247, 208, 13, 5, 253, 134, 107, 253, 134, 254, 230, 107, 254, 230, 249, + 195, 107, 240, 156, 13, 5, 253, 134, 233, 91, 13, 5, 247, 105, 13, 5, + 108, 24, 253, 30, 13, 5, 108, 24, 246, 233, 13, 5, 108, 24, 246, 186, 13, + 5, 108, 24, 246, 246, 13, 5, 108, 24, 241, 20, 13, 5, 108, 24, 253, 45, + 13, 5, 240, 187, 13, 5, 247, 56, 13, 5, 253, 9, 13, 5, 254, 212, 240, + 130, 13, 5, 253, 44, 13, 5, 255, 49, 240, 131, 13, 5, 252, 21, 13, 5, + 248, 172, 13, 5, 253, 136, 24, 240, 187, 13, 5, 253, 136, 107, 248, 172, + 13, 5, 253, 136, 107, 253, 136, 253, 89, 107, 253, 89, 253, 75, 107, 246, + 197, 13, 5, 253, 18, 13, 5, 241, 20, 13, 5, 248, 183, 13, 5, 248, 184, + 13, 5, 247, 112, 13, 5, 254, 12, 107, 254, 12, 254, 255, 107, 252, 226, + 13, 5, 66, 13, 5, 97, 246, 233, 13, 5, 97, 97, 66, 13, 5, 97, 107, 97, + 254, 242, 107, 254, 242, 253, 75, 107, 246, 197, 13, 5, 97, 107, 97, 254, + 152, 107, 247, 205, 13, 5, 97, 107, 97, 97, 200, 107, 97, 232, 5, 13, 5, + 253, 107, 13, 5, 254, 14, 13, 5, 253, 45, 13, 5, 254, 208, 235, 127, 13, + 5, 254, 208, 24, 246, 206, 13, 5, 254, 208, 24, 252, 239, 13, 5, 254, + 208, 24, 97, 79, 97, 79, 66, 13, 5, 254, 208, 24, 97, 79, 97, 79, 97, + 240, 130, 13, 5, 254, 208, 240, 130, 13, 5, 254, 208, 233, 134, 13, 5, + 254, 208, 236, 224, 24, 246, 206, 13, 5, 246, 30, 13, 5, 253, 199, 13, 5, + 254, 243, 24, 237, 160, 13, 5, 254, 243, 24, 254, 206, 79, 252, 203, 13, + 5, 254, 243, 24, 241, 68, 13, 5, 254, 243, 24, 66, 13, 5, 240, 66, 13, 5, + 246, 32, 13, 5, 247, 220, 24, 235, 76, 13, 5, 247, 220, 24, 213, 13, 5, + 253, 121, 13, 5, 255, 51, 240, 130, 13, 5, 253, 161, 13, 5, 254, 244, + 233, 77, 253, 161, 13, 5, 254, 244, 233, 134, 13, 5, 252, 58, 13, 5, 253, + 94, 24, 102, 79, 154, 13, 5, 253, 94, 24, 102, 79, 252, 201, 13, 5, 253, + 94, 24, 253, 112, 13, 5, 253, 94, 24, 154, 13, 5, 253, 94, 24, 246, 195, + 13, 5, 253, 94, 24, 253, 107, 13, 5, 253, 94, 24, 254, 232, 79, 246, 177, + 13, 5, 253, 94, 24, 254, 232, 79, 253, 30, 13, 5, 252, 59, 13, 5, 252, + 61, 13, 5, 246, 35, 13, 5, 252, 63, 13, 5, 252, 242, 24, 57, 13, 5, 252, + 242, 24, 235, 108, 13, 5, 252, 242, 24, 125, 13, 5, 252, 242, 24, 248, + 33, 13, 5, 252, 242, 24, 252, 205, 13, 5, 252, 242, 24, 247, 12, 13, 5, + 252, 242, 24, 246, 201, 240, 131, 13, 5, 252, 242, 24, 246, 197, 13, 5, + 252, 242, 24, 253, 40, 13, 5, 252, 242, 24, 154, 13, 5, 252, 242, 24, + 246, 234, 13, 5, 252, 242, 24, 253, 78, 13, 5, 252, 242, 24, 248, 68, 13, + 5, 252, 242, 24, 253, 7, 13, 5, 252, 242, 24, 247, 18, 13, 5, 252, 242, + 24, 247, 174, 13, 5, 252, 242, 24, 213, 13, 5, 252, 242, 24, 246, 186, + 13, 5, 252, 242, 24, 241, 245, 13, 5, 252, 242, 24, 253, 18, 13, 5, 252, + 242, 24, 97, 79, 246, 233, 13, 5, 252, 242, 24, 253, 45, 13, 5, 252, 242, + 24, 238, 80, 13, 5, 238, 80, 13, 5, 246, 36, 24, 66, 13, 5, 246, 249, 13, + 5, 253, 162, 24, 57, 13, 5, 253, 162, 24, 253, 34, 13, 5, 253, 162, 24, + 246, 220, 13, 5, 253, 162, 24, 240, 187, 13, 5, 246, 39, 13, 5, 246, 38, + 13, 5, 237, 18, 13, 5, 240, 70, 13, 5, 252, 67, 13, 5, 254, 166, 24, 235, + 76, 13, 5, 252, 68, 13, 5, 252, 226, 13, 5, 254, 255, 240, 131, 13, 5, + 254, 255, 235, 51, 24, 246, 220, 13, 5, 252, 166, 13, 5, 246, 106, 13, 5, + 252, 172, 13, 5, 253, 72, 13, 5, 255, 54, 107, 253, 72, 13, 5, 252, 176, + 13, 5, 252, 177, 13, 5, 254, 179, 248, 77, 240, 131, 13, 5, 252, 179, 13, + 5, 246, 131, 13, 5, 253, 97, 13, 5, 252, 188, 13, 5, 254, 181, 24, 57, + 13, 5, 240, 110, 13, 5, 252, 189, 13, 111, 5, 135, 246, 177, 13, 111, 5, + 152, 246, 177, 13, 111, 5, 246, 160, 246, 177, 13, 111, 5, 246, 159, 246, + 177, 13, 111, 5, 253, 17, 246, 177, 13, 111, 5, 240, 155, 246, 177, 13, + 111, 5, 240, 142, 246, 177, 13, 111, 5, 246, 208, 246, 177, 13, 111, 5, + 152, 240, 156, 13, 111, 5, 246, 160, 240, 156, 13, 111, 5, 246, 159, 240, + 156, 13, 111, 5, 253, 17, 240, 156, 13, 111, 5, 240, 155, 240, 156, 13, + 111, 5, 240, 142, 240, 156, 13, 111, 5, 246, 208, 240, 156, 13, 111, 5, + 246, 160, 66, 13, 111, 5, 246, 159, 66, 13, 111, 5, 253, 17, 66, 13, 111, + 5, 240, 155, 66, 13, 111, 5, 240, 142, 66, 13, 111, 5, 246, 208, 66, 13, + 111, 5, 168, 237, 113, 13, 111, 5, 135, 237, 113, 13, 111, 5, 152, 237, + 113, 13, 111, 5, 246, 160, 237, 113, 13, 111, 5, 246, 159, 237, 113, 13, + 111, 5, 253, 17, 237, 113, 13, 111, 5, 240, 155, 237, 113, 13, 111, 5, + 240, 142, 237, 113, 13, 111, 5, 246, 208, 237, 113, 13, 111, 5, 168, 237, + 156, 13, 111, 5, 135, 237, 156, 13, 111, 5, 152, 237, 156, 13, 111, 5, + 246, 160, 237, 156, 13, 111, 5, 246, 159, 237, 156, 13, 111, 5, 135, 237, + 116, 13, 111, 5, 152, 237, 116, 13, 111, 5, 152, 241, 69, 235, 30, 15, + 13, 111, 5, 246, 160, 237, 116, 13, 111, 5, 246, 159, 237, 116, 13, 111, + 5, 253, 17, 237, 116, 13, 111, 5, 240, 155, 237, 116, 13, 111, 5, 240, + 142, 237, 116, 13, 111, 5, 246, 208, 237, 116, 13, 111, 5, 168, 237, 163, + 13, 111, 5, 135, 237, 163, 13, 111, 5, 152, 237, 163, 13, 111, 5, 152, + 245, 159, 235, 30, 15, 13, 111, 5, 246, 160, 237, 163, 13, 111, 5, 246, + 159, 237, 163, 13, 111, 5, 241, 69, 24, 253, 179, 79, 240, 156, 13, 111, + 5, 241, 69, 24, 253, 179, 79, 247, 174, 13, 111, 5, 168, 240, 219, 13, + 111, 5, 135, 240, 219, 13, 111, 5, 152, 240, 219, 13, 111, 5, 152, 249, + 131, 235, 30, 15, 13, 111, 5, 246, 160, 240, 219, 13, 111, 5, 246, 159, + 240, 219, 13, 111, 5, 152, 235, 30, 211, 238, 207, 13, 111, 5, 152, 235, + 30, 211, 238, 208, 13, 111, 5, 246, 160, 235, 30, 211, 239, 86, 13, 111, + 5, 246, 160, 235, 30, 211, 236, 137, 13, 111, 5, 246, 160, 235, 30, 211, + 241, 181, 57, 13, 111, 5, 246, 160, 235, 30, 211, 241, 181, 254, 185, 13, + 111, 5, 253, 17, 235, 30, 211, 242, 65, 13, 111, 5, 240, 155, 235, 30, + 211, 239, 41, 13, 111, 5, 240, 155, 235, 30, 211, 248, 67, 57, 13, 111, + 5, 240, 155, 235, 30, 211, 248, 67, 254, 185, 13, 111, 5, 240, 142, 235, + 30, 211, 246, 40, 13, 111, 5, 240, 142, 235, 30, 211, 240, 69, 13, 111, + 5, 246, 208, 235, 30, 211, 236, 109, 13, 111, 5, 246, 208, 235, 30, 211, + 234, 126, 13, 111, 5, 246, 208, 235, 30, 211, 234, 127, 13, 111, 5, 246, + 208, 235, 30, 211, 239, 40, 57, 13, 111, 5, 135, 252, 254, 240, 131, 13, + 111, 5, 152, 252, 254, 240, 131, 13, 111, 5, 246, 160, 252, 254, 240, + 131, 13, 111, 5, 246, 159, 252, 254, 240, 131, 13, 111, 5, 253, 17, 252, + 254, 240, 131, 13, 111, 5, 168, 240, 218, 13, 111, 5, 135, 240, 218, 13, + 111, 5, 152, 240, 218, 13, 111, 5, 246, 160, 240, 218, 13, 111, 5, 246, + 160, 247, 249, 235, 30, 15, 13, 111, 5, 246, 159, 240, 218, 13, 111, 5, + 246, 159, 247, 249, 235, 30, 15, 13, 111, 5, 231, 109, 13, 111, 5, 231, + 108, 13, 111, 5, 168, 237, 244, 13, 111, 5, 135, 237, 244, 13, 111, 5, + 168, 240, 239, 240, 156, 13, 111, 5, 135, 237, 218, 240, 156, 13, 111, 5, + 246, 159, 240, 0, 240, 156, 13, 111, 5, 168, 240, 239, 235, 30, 211, 57, + 13, 111, 5, 135, 237, 218, 235, 30, 211, 57, 13, 111, 5, 168, 237, 112, + 246, 177, 13, 111, 5, 168, 235, 53, 246, 177, 13, 111, 5, 84, 233, 158, + 168, 238, 61, 13, 111, 5, 84, 233, 158, 168, 233, 155, 13, 229, 161, 5, + 84, 233, 158, 247, 8, 233, 140, 13, 229, 161, 5, 61, 237, 66, 13, 229, + 161, 5, 233, 74, 237, 66, 13, 229, 161, 5, 233, 74, 232, 57, 43, 23, 14, + 237, 77, 43, 23, 14, 236, 42, 43, 23, 14, 228, 179, 43, 23, 14, 241, 58, + 228, 190, 43, 23, 14, 241, 58, 237, 132, 43, 23, 14, 237, 223, 228, 190, + 43, 23, 14, 237, 223, 237, 132, 43, 23, 14, 232, 213, 43, 23, 14, 231, + 174, 43, 23, 14, 229, 46, 43, 23, 14, 231, 188, 43, 23, 14, 233, 66, 237, + 132, 43, 23, 14, 232, 217, 43, 23, 14, 241, 95, 228, 190, 43, 23, 14, + 253, 221, 228, 190, 43, 23, 14, 235, 220, 43, 23, 14, 231, 92, 43, 23, + 14, 229, 230, 43, 23, 14, 230, 173, 237, 132, 43, 23, 14, 234, 237, 43, + 23, 14, 240, 38, 43, 23, 14, 238, 31, 231, 202, 43, 23, 14, 237, 157, + 231, 202, 43, 23, 14, 236, 194, 43, 23, 14, 232, 95, 43, 23, 14, 240, 73, + 43, 23, 14, 248, 69, 231, 202, 43, 23, 14, 235, 96, 231, 202, 43, 23, 14, + 231, 240, 231, 202, 43, 23, 14, 233, 18, 43, 23, 14, 232, 245, 43, 23, + 14, 236, 240, 232, 69, 43, 23, 14, 239, 178, 231, 202, 43, 23, 14, 237, + 21, 231, 202, 43, 23, 14, 233, 185, 231, 202, 43, 23, 14, 232, 70, 43, + 23, 14, 235, 185, 43, 23, 14, 239, 221, 43, 23, 14, 238, 33, 231, 202, + 43, 23, 14, 234, 248, 43, 23, 14, 227, 217, 43, 23, 14, 236, 216, 43, 23, + 14, 235, 139, 231, 202, 43, 23, 14, 235, 139, 251, 6, 234, 232, 43, 23, + 14, 232, 31, 231, 202, 43, 23, 14, 240, 35, 43, 23, 14, 239, 83, 43, 23, + 14, 249, 219, 43, 23, 14, 246, 5, 43, 23, 14, 234, 244, 43, 23, 14, 231, + 94, 43, 23, 14, 241, 95, 253, 221, 246, 194, 43, 23, 14, 237, 72, 231, + 202, 43, 23, 14, 231, 82, 43, 23, 14, 233, 181, 231, 202, 43, 23, 14, + 239, 57, 233, 55, 43, 23, 14, 232, 247, 43, 23, 14, 231, 127, 43, 23, 14, + 232, 215, 43, 23, 14, 233, 192, 231, 202, 43, 23, 14, 234, 202, 43, 23, + 14, 229, 206, 231, 202, 43, 23, 14, 229, 207, 231, 202, 43, 23, 14, 234, + 124, 43, 23, 14, 241, 199, 43, 23, 14, 234, 190, 43, 23, 14, 234, 140, + 241, 26, 43, 23, 14, 233, 181, 241, 26, 43, 23, 14, 228, 165, 43, 23, 14, + 227, 242, 43, 23, 14, 248, 69, 246, 194, 43, 23, 14, 238, 31, 246, 194, + 43, 23, 14, 241, 58, 246, 194, 43, 23, 14, 234, 191, 43, 23, 14, 232, + 216, 43, 23, 14, 225, 98, 43, 23, 14, 225, 94, 43, 23, 14, 234, 189, 246, + 194, 43, 23, 14, 231, 240, 253, 91, 246, 252, 43, 23, 14, 235, 96, 253, + 91, 246, 252, 43, 23, 14, 237, 35, 43, 23, 14, 230, 173, 246, 194, 43, + 23, 14, 230, 172, 233, 50, 246, 194, 43, 23, 14, 235, 13, 43, 23, 14, + 225, 95, 43, 23, 14, 234, 93, 43, 23, 14, 234, 30, 43, 23, 14, 239, 114, + 244, 12, 43, 23, 14, 237, 223, 246, 194, 43, 23, 14, 238, 33, 246, 194, + 43, 23, 14, 233, 2, 246, 194, 43, 23, 14, 236, 174, 43, 23, 14, 229, 228, + 43, 23, 14, 234, 146, 43, 23, 14, 229, 207, 246, 194, 43, 23, 14, 229, + 206, 246, 194, 43, 23, 14, 237, 245, 229, 45, 43, 23, 14, 234, 143, 43, + 23, 14, 223, 59, 43, 23, 14, 233, 181, 246, 194, 43, 23, 14, 230, 53, 43, + 23, 14, 235, 139, 246, 194, 43, 23, 14, 240, 26, 43, 23, 14, 233, 192, + 246, 194, 43, 23, 14, 232, 179, 43, 23, 14, 239, 240, 246, 194, 43, 23, + 14, 246, 66, 235, 185, 43, 23, 14, 223, 55, 43, 23, 14, 225, 100, 43, 23, + 14, 227, 80, 43, 23, 14, 222, 238, 43, 23, 14, 222, 229, 43, 23, 14, 227, + 81, 43, 23, 14, 225, 101, 43, 23, 14, 225, 113, 43, 23, 14, 227, 141, 43, + 23, 14, 237, 245, 227, 141, 43, 23, 14, 232, 31, 246, 194, 43, 23, 14, + 229, 223, 249, 234, 43, 23, 14, 229, 223, 249, 236, 43, 23, 14, 245, 244, + 235, 147, 43, 23, 14, 252, 17, 253, 150, 234, 5, 43, 23, 14, 231, 90, 43, + 23, 14, 231, 65, 43, 23, 14, 248, 201, 240, 201, 43, 23, 14, 248, 201, + 246, 252, 43, 23, 14, 234, 231, 43, 23, 14, 238, 15, 246, 252, 43, 23, + 14, 243, 71, 231, 202, 43, 23, 14, 235, 126, 231, 202, 43, 23, 14, 235, + 126, 241, 26, 43, 23, 14, 235, 126, 246, 194, 43, 23, 14, 233, 185, 246, + 194, 43, 23, 14, 242, 61, 43, 23, 14, 237, 132, 43, 23, 14, 237, 8, 43, + 23, 14, 233, 52, 43, 23, 14, 233, 170, 43, 23, 14, 237, 161, 249, 229, + 233, 193, 43, 23, 14, 237, 161, 253, 174, 233, 160, 43, 23, 14, 237, 161, + 246, 6, 233, 160, 43, 23, 14, 237, 161, 234, 243, 233, 160, 43, 23, 14, + 237, 161, 236, 110, 233, 193, 43, 23, 14, 237, 157, 253, 91, 246, 252, + 43, 23, 14, 237, 157, 227, 190, 232, 76, 43, 23, 14, 237, 157, 227, 190, + 237, 241, 43, 23, 14, 232, 112, 43, 23, 14, 233, 162, 227, 190, 233, 186, + 240, 201, 43, 23, 14, 233, 162, 227, 190, 233, 186, 246, 252, 43, 23, 14, + 233, 162, 227, 190, 237, 241, 43, 23, 14, 231, 182, 43, 23, 14, 238, 101, + 43, 23, 14, 230, 69, 43, 23, 14, 234, 52, 43, 23, 14, 240, 193, 248, 134, + 241, 96, 43, 23, 14, 240, 193, 232, 75, 43, 23, 14, 240, 193, 241, 96, + 43, 23, 14, 240, 193, 236, 154, 43, 23, 14, 240, 193, 244, 122, 43, 23, + 14, 240, 193, 238, 3, 43, 23, 14, 240, 193, 231, 75, 43, 23, 14, 240, + 193, 248, 134, 238, 3, 43, 23, 14, 233, 94, 238, 37, 237, 86, 43, 23, 14, + 233, 94, 247, 242, 238, 37, 237, 86, 43, 23, 14, 233, 94, 233, 200, 237, + 86, 43, 23, 14, 233, 94, 247, 242, 233, 200, 237, 86, 43, 23, 14, 233, + 94, 240, 47, 237, 86, 43, 23, 14, 233, 94, 231, 181, 43, 23, 14, 233, 94, + 233, 180, 237, 86, 43, 23, 14, 233, 94, 233, 180, 235, 188, 237, 86, 43, + 23, 14, 233, 94, 235, 188, 237, 86, 43, 23, 14, 233, 94, 235, 202, 237, + 86, 43, 23, 14, 239, 43, 238, 72, 230, 188, 43, 23, 14, 230, 172, 238, + 72, 230, 188, 43, 23, 14, 231, 250, 229, 152, 43, 23, 14, 231, 250, 229, + 201, 43, 23, 14, 231, 250, 232, 19, 43, 23, 14, 233, 94, 246, 44, 237, + 86, 43, 23, 14, 233, 94, 231, 126, 237, 86, 43, 23, 14, 233, 94, 235, + 202, 233, 180, 237, 86, 43, 23, 14, 230, 187, 255, 60, 235, 147, 43, 23, + 14, 230, 187, 255, 60, 234, 56, 43, 23, 14, 236, 64, 253, 150, 237, 72, + 248, 192, 43, 23, 14, 232, 206, 43, 23, 14, 230, 70, 43, 23, 14, 237, 72, + 234, 8, 234, 49, 239, 37, 43, 23, 14, 237, 72, 231, 221, 213, 43, 23, 14, + 237, 72, 231, 221, 241, 199, 43, 23, 14, 237, 72, 251, 40, 237, 86, 43, + 23, 14, 237, 72, 231, 221, 253, 12, 43, 23, 14, 237, 72, 235, 136, 234, + 53, 253, 12, 43, 23, 14, 237, 72, 231, 221, 253, 6, 43, 23, 14, 237, 72, + 231, 221, 253, 65, 43, 23, 14, 237, 72, 231, 221, 254, 230, 240, 201, 43, + 23, 14, 237, 72, 231, 221, 254, 230, 246, 252, 43, 23, 14, 237, 72, 235, + 189, 237, 175, 232, 19, 43, 23, 14, 237, 72, 235, 189, 237, 175, 229, + 201, 43, 23, 14, 238, 215, 235, 136, 237, 175, 240, 72, 43, 23, 14, 237, + 72, 235, 136, 237, 175, 236, 251, 43, 23, 14, 237, 72, 236, 164, 43, 23, + 14, 241, 33, 240, 111, 43, 23, 14, 241, 33, 236, 123, 43, 23, 14, 241, + 33, 236, 235, 43, 23, 14, 237, 72, 255, 55, 237, 148, 227, 152, 43, 23, + 14, 237, 72, 231, 63, 230, 224, 43, 23, 14, 237, 148, 228, 219, 43, 23, + 14, 237, 131, 228, 219, 43, 23, 14, 237, 131, 227, 152, 43, 23, 14, 237, + 131, 247, 65, 253, 174, 231, 217, 43, 23, 14, 237, 131, 229, 202, 235, + 222, 231, 217, 43, 23, 14, 237, 131, 232, 20, 255, 7, 231, 217, 43, 23, + 14, 237, 131, 230, 217, 248, 122, 231, 217, 43, 23, 14, 237, 148, 247, + 65, 253, 174, 231, 217, 43, 23, 14, 237, 148, 229, 202, 235, 222, 231, + 217, 43, 23, 14, 237, 148, 232, 20, 255, 7, 231, 217, 43, 23, 14, 237, + 148, 230, 217, 248, 122, 231, 217, 43, 23, 14, 237, 254, 236, 49, 43, 23, + 14, 237, 254, 237, 33, 43, 23, 14, 233, 147, 247, 65, 239, 113, 43, 23, + 14, 233, 147, 247, 65, 236, 152, 43, 23, 14, 233, 147, 237, 132, 43, 23, + 14, 233, 147, 233, 245, 43, 23, 14, 233, 120, 233, 245, 43, 23, 14, 233, + 120, 235, 141, 233, 202, 43, 23, 14, 233, 120, 235, 141, 232, 58, 43, 23, + 14, 233, 120, 235, 141, 229, 222, 43, 23, 14, 233, 120, 235, 252, 43, 23, + 14, 233, 120, 237, 195, 233, 202, 43, 23, 14, 233, 120, 237, 195, 232, + 58, 43, 23, 14, 233, 120, 237, 195, 229, 222, 43, 23, 14, 234, 54, 254, + 60, 43, 23, 14, 232, 111, 253, 119, 43, 23, 14, 235, 138, 43, 23, 14, + 235, 67, 213, 43, 23, 14, 235, 67, 248, 192, 43, 23, 14, 235, 67, 252, + 205, 43, 23, 14, 235, 67, 253, 12, 43, 23, 14, 235, 67, 253, 6, 43, 23, + 14, 235, 67, 253, 65, 43, 23, 14, 235, 67, 252, 248, 43, 23, 14, 231, + 240, 253, 91, 241, 192, 43, 23, 14, 235, 96, 253, 91, 241, 192, 43, 23, + 14, 231, 240, 253, 91, 240, 201, 43, 23, 14, 235, 96, 253, 91, 240, 201, + 43, 23, 14, 238, 15, 240, 201, 43, 23, 14, 237, 157, 253, 91, 240, 201, + 23, 14, 237, 62, 233, 127, 23, 14, 47, 233, 127, 23, 14, 35, 233, 127, + 23, 14, 235, 37, 35, 233, 127, 23, 14, 237, 110, 233, 127, 23, 14, 240, + 125, 233, 127, 23, 14, 42, 237, 120, 53, 23, 14, 41, 237, 120, 53, 23, + 14, 237, 120, 240, 169, 23, 14, 253, 56, 238, 45, 23, 14, 254, 218, 242, + 233, 23, 14, 238, 45, 23, 14, 243, 17, 23, 14, 233, 177, 232, 187, 23, + 14, 233, 177, 232, 188, 23, 14, 233, 177, 232, 189, 23, 14, 233, 205, 23, + 14, 236, 77, 51, 23, 14, 238, 130, 76, 23, 14, 234, 25, 23, 14, 238, 128, + 23, 14, 104, 23, 14, 234, 175, 237, 147, 23, 14, 234, 255, 237, 147, 23, + 14, 231, 178, 237, 147, 23, 14, 232, 192, 237, 147, 23, 14, 232, 190, + 237, 147, 23, 14, 234, 224, 237, 147, 23, 14, 231, 145, 230, 185, 23, 14, + 230, 63, 230, 185, 23, 14, 255, 65, 240, 220, 23, 14, 255, 65, 247, 69, + 237, 140, 240, 243, 23, 14, 255, 65, 247, 69, 237, 140, 237, 173, 23, 14, + 255, 62, 240, 220, 23, 14, 255, 72, 240, 220, 23, 14, 255, 72, 247, 69, + 237, 140, 240, 243, 23, 14, 255, 72, 247, 69, 237, 140, 237, 173, 23, 14, + 248, 32, 236, 30, 23, 14, 248, 32, 236, 31, 23, 14, 233, 219, 235, 85, + 240, 148, 23, 14, 47, 238, 49, 23, 14, 47, 241, 132, 23, 14, 247, 141, + 253, 19, 23, 14, 247, 141, 240, 152, 23, 14, 235, 131, 253, 19, 23, 14, + 235, 131, 240, 152, 23, 14, 240, 235, 253, 19, 23, 14, 240, 235, 240, + 152, 23, 14, 235, 53, 206, 238, 49, 23, 14, 235, 53, 206, 241, 132, 23, + 14, 238, 161, 242, 2, 23, 14, 254, 40, 242, 2, 23, 14, 237, 140, 240, + 243, 23, 14, 237, 140, 237, 173, 23, 14, 228, 216, 240, 243, 23, 14, 228, + 216, 237, 173, 23, 14, 244, 155, 240, 148, 23, 14, 242, 24, 240, 148, 23, + 14, 132, 240, 148, 23, 14, 235, 53, 240, 148, 23, 14, 237, 112, 240, 148, + 23, 14, 232, 6, 240, 148, 23, 14, 227, 211, 240, 148, 23, 14, 228, 218, + 240, 148, 23, 14, 168, 235, 56, 227, 212, 240, 148, 23, 14, 255, 74, 231, + 226, 23, 14, 79, 231, 226, 23, 14, 237, 40, 255, 74, 231, 226, 23, 14, + 37, 233, 84, 237, 90, 23, 14, 37, 233, 84, 237, 45, 23, 14, 233, 80, 233, + 84, 99, 237, 90, 23, 14, 233, 80, 233, 84, 99, 237, 45, 23, 14, 233, 80, + 233, 84, 42, 237, 90, 23, 14, 233, 80, 233, 84, 42, 237, 45, 23, 14, 233, + 80, 233, 84, 41, 237, 90, 23, 14, 233, 80, 233, 84, 41, 237, 45, 23, 14, + 233, 80, 233, 84, 103, 237, 90, 23, 14, 233, 80, 233, 84, 103, 237, 45, + 23, 14, 233, 80, 233, 84, 99, 41, 237, 90, 23, 14, 233, 80, 233, 84, 99, + 41, 237, 45, 23, 14, 247, 176, 233, 84, 237, 90, 23, 14, 247, 176, 233, + 84, 237, 45, 23, 14, 227, 154, 233, 84, 103, 237, 90, 23, 14, 227, 154, + 233, 84, 103, 237, 45, 23, 14, 229, 169, 231, 226, 23, 14, 252, 79, 231, + 226, 23, 14, 233, 84, 237, 45, 23, 14, 251, 78, 231, 226, 23, 14, 235, + 159, 233, 84, 237, 90, 23, 14, 235, 159, 233, 84, 237, 45, 23, 14, 237, + 46, 23, 14, 242, 24, 240, 186, 23, 14, 132, 240, 186, 23, 14, 235, 53, + 240, 186, 23, 14, 237, 112, 240, 186, 23, 14, 232, 6, 240, 186, 23, 14, + 227, 211, 240, 186, 23, 14, 228, 218, 240, 186, 23, 14, 168, 235, 56, + 227, 212, 240, 186, 23, 14, 36, 240, 214, 23, 14, 36, 229, 150, 240, 214, + 23, 14, 36, 230, 214, 23, 14, 36, 230, 215, 23, 14, 36, 230, 216, 23, 14, + 233, 164, 230, 214, 23, 14, 233, 164, 230, 215, 23, 14, 233, 164, 230, + 216, 23, 14, 36, 228, 226, 246, 164, 23, 14, 36, 236, 79, 23, 14, 36, + 236, 80, 23, 14, 36, 236, 81, 23, 14, 36, 236, 82, 23, 14, 36, 236, 83, + 23, 14, 240, 205, 241, 99, 23, 14, 252, 255, 241, 99, 23, 14, 240, 205, + 247, 57, 23, 14, 252, 255, 247, 57, 23, 14, 240, 205, 241, 246, 23, 14, + 252, 255, 241, 246, 23, 14, 240, 205, 235, 200, 23, 14, 252, 255, 235, + 200, 23, 14, 36, 235, 24, 23, 14, 36, 233, 28, 23, 14, 36, 237, 0, 23, + 14, 36, 227, 179, 23, 14, 36, 234, 151, 23, 14, 36, 223, 49, 23, 14, 36, + 223, 58, 23, 14, 36, 239, 90, 23, 14, 230, 174, 253, 19, 23, 14, 230, + 174, 240, 152, 23, 14, 36, 243, 76, 23, 14, 36, 251, 183, 23, 14, 36, + 243, 107, 23, 14, 36, 240, 5, 23, 14, 36, 242, 200, 23, 14, 36, 47, 235, + 142, 23, 14, 36, 237, 49, 235, 142, 23, 14, 229, 56, 23, 14, 236, 245, + 23, 14, 254, 193, 23, 14, 239, 197, 23, 14, 239, 106, 23, 14, 238, 224, + 23, 14, 230, 241, 23, 14, 228, 236, 23, 14, 241, 145, 248, 116, 237, 84, + 23, 14, 241, 145, 248, 116, 254, 252, 237, 84, 23, 14, 254, 161, 23, 14, + 242, 13, 23, 14, 233, 70, 242, 13, 23, 14, 248, 185, 237, 84, 23, 14, + 248, 185, 253, 19, 23, 14, 233, 103, 233, 35, 23, 14, 233, 103, 233, 36, + 23, 14, 233, 103, 233, 37, 23, 14, 233, 103, 233, 38, 23, 14, 233, 103, + 233, 39, 23, 14, 233, 103, 233, 40, 23, 14, 233, 103, 233, 41, 23, 14, + 233, 103, 233, 42, 23, 14, 233, 103, 233, 43, 23, 14, 233, 103, 231, 146, + 23, 14, 233, 103, 231, 147, 23, 14, 229, 22, 23, 14, 229, 41, 23, 14, + 252, 255, 106, 236, 241, 23, 14, 237, 177, 237, 84, 23, 14, 36, 103, 247, + 68, 23, 14, 36, 99, 247, 68, 23, 14, 36, 232, 202, 23, 14, 36, 251, 229, + 231, 121, 23, 14, 241, 60, 76, 23, 14, 241, 60, 99, 76, 23, 14, 132, 241, + 60, 76, 23, 14, 232, 25, 253, 19, 23, 14, 232, 25, 240, 152, 23, 14, 2, + 229, 19, 23, 14, 243, 27, 23, 14, 249, 178, 247, 241, 23, 14, 236, 150, + 23, 14, 238, 22, 23, 14, 236, 15, 23, 14, 230, 169, 237, 90, 23, 14, 230, + 169, 237, 45, 23, 14, 236, 157, 23, 14, 238, 25, 237, 45, 23, 14, 230, + 170, 237, 90, 23, 14, 230, 170, 237, 45, 23, 14, 248, 41, 237, 90, 23, + 14, 248, 41, 237, 45, 23, 14, 241, 184, 233, 227, 240, 148, 23, 14, 241, + 184, 230, 155, 240, 148, 23, 14, 238, 131, 240, 148, 23, 14, 230, 169, + 240, 148, 23, 14, 238, 25, 240, 148, 23, 14, 230, 170, 240, 148, 23, 14, + 237, 121, 232, 3, 253, 86, 230, 139, 232, 34, 23, 14, 237, 121, 232, 3, + 253, 86, 230, 139, 229, 199, 23, 14, 237, 121, 232, 3, 253, 86, 230, 139, + 233, 227, 227, 201, 23, 14, 237, 121, 229, 176, 253, 86, 230, 139, 232, + 34, 23, 14, 237, 121, 229, 176, 253, 86, 230, 139, 229, 199, 23, 14, 237, + 121, 229, 176, 253, 86, 230, 139, 230, 155, 227, 201, 23, 14, 237, 121, + 229, 176, 253, 86, 230, 139, 230, 155, 227, 228, 23, 14, 237, 121, 229, + 176, 253, 86, 230, 139, 230, 155, 227, 229, 23, 14, 238, 164, 23, 14, + 232, 26, 255, 62, 240, 220, 23, 14, 232, 26, 255, 72, 240, 220, 23, 14, + 37, 254, 185, 23, 14, 240, 77, 23, 14, 234, 194, 23, 14, 236, 32, 23, 14, + 231, 137, 23, 14, 232, 98, 23, 14, 233, 53, 23, 14, 231, 123, 23, 14, + 232, 253, 235, 172, 23, 14, 233, 19, 235, 172, 23, 14, 234, 250, 231, + 135, 23, 14, 254, 128, 230, 114, 19, 240, 136, 150, 232, 48, 19, 240, + 136, 150, 232, 49, 19, 240, 136, 150, 233, 46, 19, 240, 136, 150, 232, + 50, 19, 240, 136, 150, 232, 51, 19, 240, 136, 150, 233, 47, 19, 240, 136, + 150, 232, 52, 19, 240, 136, 150, 232, 53, 19, 240, 136, 150, 233, 48, 19, + 240, 136, 150, 231, 151, 19, 240, 136, 150, 230, 198, 19, 240, 136, 150, + 230, 199, 19, 240, 136, 150, 230, 200, 19, 240, 136, 150, 230, 201, 19, + 240, 136, 150, 231, 152, 19, 240, 136, 150, 231, 153, 19, 240, 136, 150, + 230, 202, 19, 240, 136, 150, 230, 203, 19, 240, 136, 150, 230, 204, 19, + 240, 136, 150, 231, 154, 19, 240, 136, 150, 231, 155, 19, 240, 136, 150, + 231, 156, 19, 240, 136, 150, 230, 205, 19, 240, 136, 150, 230, 206, 19, + 240, 136, 150, 230, 207, 19, 240, 136, 150, 230, 208, 19, 240, 136, 150, + 230, 209, 19, 240, 136, 150, 230, 210, 19, 240, 136, 150, 230, 211, 19, + 228, 176, 150, 232, 48, 19, 228, 176, 150, 232, 49, 19, 228, 176, 150, + 232, 50, 19, 228, 176, 150, 232, 51, 19, 228, 176, 150, 232, 52, 19, 228, + 176, 150, 232, 53, 19, 228, 176, 150, 230, 198, 19, 228, 176, 150, 230, + 199, 19, 228, 176, 150, 230, 200, 19, 228, 176, 150, 230, 201, 19, 228, + 176, 150, 230, 202, 19, 228, 176, 150, 230, 203, 19, 228, 176, 150, 230, + 204, 19, 228, 176, 150, 230, 205, 19, 228, 176, 150, 230, 206, 19, 228, + 176, 150, 231, 157, 19, 228, 176, 150, 231, 158, 19, 228, 176, 150, 231, + 159, 19, 228, 176, 150, 231, 160, 19, 228, 176, 150, 231, 161, 19, 228, + 176, 150, 231, 162, 19, 228, 176, 150, 231, 163, 19, 228, 176, 150, 231, + 164, 19, 228, 176, 150, 231, 165, 19, 228, 176, 150, 231, 166, 19, 228, + 176, 150, 231, 167, 19, 228, 176, 150, 231, 168, 19, 228, 176, 150, 231, + 169, 19, 228, 176, 150, 231, 170, 19, 228, 176, 150, 231, 171, 19, 228, + 176, 150, 231, 172, 19, 228, 176, 150, 231, 173, 19, 228, 176, 150, 230, + 207, 19, 228, 176, 150, 230, 208, 19, 228, 176, 150, 230, 209, 19, 228, + 176, 150, 230, 210, 19, 228, 176, 150, 230, 211, 36, 19, 23, 233, 247, + 36, 19, 23, 230, 213, 36, 19, 23, 230, 193, 19, 23, 236, 132, 233, 115, + 32, 237, 99, 237, 111, 32, 234, 121, 237, 99, 237, 111, 32, 243, 236, + 237, 99, 237, 111, 32, 235, 168, 235, 123, 237, 111, 32, 235, 168, 239, + 28, 237, 111, 32, 237, 99, 142, 32, 235, 111, 142, 32, 246, 162, 235, 20, + 142, 32, 239, 115, 142, 32, 234, 14, 142, 32, 235, 182, 237, 216, 142, + 32, 228, 231, 142, 32, 235, 254, 142, 32, 229, 187, 142, 32, 232, 88, + 247, 186, 142, 32, 227, 225, 145, 229, 251, 142, 32, 229, 252, 142, 32, + 228, 174, 142, 32, 232, 27, 142, 32, 229, 47, 142, 32, 238, 40, 142, 32, + 234, 35, 142, 32, 235, 177, 240, 217, 142, 32, 233, 249, 142, 32, 230, + 184, 142, 32, 233, 253, 142, 32, 234, 206, 142, 32, 230, 95, 142, 32, + 243, 92, 142, 32, 250, 140, 142, 32, 229, 241, 142, 32, 231, 64, 142, 32, + 236, 62, 142, 32, 236, 24, 142, 32, 227, 224, 142, 32, 18, 230, 96, 142, + 32, 234, 180, 142, 32, 236, 131, 142, 32, 230, 235, 142, 32, 234, 139, + 142, 32, 231, 72, 142, 32, 233, 33, 142, 32, 236, 195, 142, 32, 232, 195, + 142, 32, 231, 134, 142, 32, 254, 89, 145, 239, 117, 142, 32, 232, 43, + 142, 32, 243, 151, 180, 241, 191, 142, 32, 230, 55, 142, 32, 240, 23, + 142, 32, 231, 76, 142, 32, 229, 17, 142, 32, 234, 188, 142, 32, 236, 201, + 142, 32, 236, 84, 142, 32, 235, 4, 145, 235, 10, 142, 32, 230, 238, 142, + 32, 233, 218, 142, 32, 232, 182, 142, 32, 240, 67, 142, 32, 227, 227, + 142, 32, 237, 58, 238, 26, 142, 32, 229, 21, 142, 32, 232, 24, 253, 79, + 142, 32, 234, 154, 142, 32, 227, 214, 142, 32, 227, 163, 142, 32, 238, + 191, 142, 32, 238, 81, 142, 32, 234, 222, 142, 32, 239, 42, 142, 32, 230, + 244, 142, 32, 230, 243, 142, 32, 234, 55, 142, 32, 230, 58, 142, 32, 231, + 140, 142, 32, 233, 30, 142, 32, 232, 201, 142, 32, 229, 183, 142, 32, + 234, 32, 142, 32, 234, 100, 142, 32, 228, 223, 142, 32, 229, 239, 142, + 32, 254, 223, 252, 230, 240, 75, 142, 32, 227, 226, 142, 32, 231, 96, + 142, 32, 231, 70, 233, 85, 253, 2, 246, 229, 21, 118, 233, 85, 253, 2, + 246, 229, 21, 113, 233, 85, 253, 2, 246, 229, 21, 166, 233, 85, 253, 2, + 246, 229, 21, 158, 233, 85, 253, 2, 246, 229, 21, 173, 233, 85, 253, 2, + 246, 229, 21, 183, 233, 85, 253, 2, 246, 229, 21, 194, 233, 85, 253, 2, + 246, 229, 21, 187, 233, 85, 253, 2, 246, 229, 21, 192, 233, 85, 253, 2, + 246, 238, 21, 118, 233, 85, 253, 2, 246, 238, 21, 113, 233, 85, 253, 2, + 246, 238, 21, 166, 233, 85, 253, 2, 246, 238, 21, 158, 233, 85, 253, 2, + 246, 238, 21, 173, 233, 85, 253, 2, 246, 238, 21, 183, 233, 85, 253, 2, + 246, 238, 21, 194, 233, 85, 253, 2, 246, 238, 21, 187, 233, 85, 253, 2, + 246, 238, 21, 192, 12, 18, 6, 57, 12, 18, 6, 254, 185, 12, 18, 6, 254, + 194, 12, 18, 6, 222, 222, 12, 18, 6, 72, 12, 18, 6, 254, 191, 12, 18, 6, + 214, 12, 18, 6, 212, 12, 18, 6, 74, 12, 18, 6, 254, 192, 12, 18, 6, 254, + 186, 12, 18, 6, 149, 12, 18, 6, 185, 12, 18, 6, 199, 12, 18, 6, 73, 12, + 18, 6, 254, 187, 12, 18, 6, 254, 196, 12, 18, 6, 146, 12, 18, 6, 193, 12, + 18, 6, 254, 183, 12, 18, 6, 66, 12, 18, 6, 196, 12, 18, 6, 254, 195, 12, + 18, 6, 254, 184, 12, 18, 6, 254, 190, 12, 18, 6, 254, 193, 12, 18, 3, 57, + 12, 18, 3, 254, 185, 12, 18, 3, 254, 194, 12, 18, 3, 222, 222, 12, 18, 3, + 72, 12, 18, 3, 254, 191, 12, 18, 3, 214, 12, 18, 3, 212, 12, 18, 3, 74, + 12, 18, 3, 254, 192, 12, 18, 3, 254, 186, 12, 18, 3, 149, 12, 18, 3, 185, + 12, 18, 3, 199, 12, 18, 3, 73, 12, 18, 3, 254, 187, 12, 18, 3, 254, 196, + 12, 18, 3, 146, 12, 18, 3, 193, 12, 18, 3, 254, 183, 12, 18, 3, 66, 12, + 18, 3, 196, 12, 18, 3, 254, 195, 12, 18, 3, 254, 184, 12, 18, 3, 254, + 190, 12, 18, 3, 254, 193, 12, 27, 6, 57, 12, 27, 6, 254, 185, 12, 27, 6, + 254, 194, 12, 27, 6, 222, 222, 12, 27, 6, 72, 12, 27, 6, 254, 191, 12, + 27, 6, 214, 12, 27, 6, 212, 12, 27, 6, 74, 12, 27, 6, 254, 192, 12, 27, + 6, 254, 186, 12, 27, 6, 149, 12, 27, 6, 185, 12, 27, 6, 199, 12, 27, 6, + 73, 12, 27, 6, 254, 187, 12, 27, 6, 254, 196, 12, 27, 6, 146, 12, 27, 6, + 193, 12, 27, 6, 254, 183, 12, 27, 6, 66, 12, 27, 6, 196, 12, 27, 6, 254, + 195, 12, 27, 6, 254, 184, 12, 27, 6, 254, 190, 12, 27, 6, 254, 193, 12, + 27, 3, 57, 12, 27, 3, 254, 185, 12, 27, 3, 254, 194, 12, 27, 3, 222, 222, + 12, 27, 3, 72, 12, 27, 3, 254, 191, 12, 27, 3, 214, 12, 27, 3, 74, 12, + 27, 3, 254, 192, 12, 27, 3, 254, 186, 12, 27, 3, 149, 12, 27, 3, 185, 12, + 27, 3, 199, 12, 27, 3, 73, 12, 27, 3, 254, 187, 12, 27, 3, 254, 196, 12, + 27, 3, 146, 12, 27, 3, 193, 12, 27, 3, 254, 183, 12, 27, 3, 66, 12, 27, + 3, 196, 12, 27, 3, 254, 195, 12, 27, 3, 254, 184, 12, 27, 3, 254, 190, + 12, 27, 3, 254, 193, 12, 18, 27, 6, 57, 12, 18, 27, 6, 254, 185, 12, 18, + 27, 6, 254, 194, 12, 18, 27, 6, 222, 222, 12, 18, 27, 6, 72, 12, 18, 27, + 6, 254, 191, 12, 18, 27, 6, 214, 12, 18, 27, 6, 212, 12, 18, 27, 6, 74, + 12, 18, 27, 6, 254, 192, 12, 18, 27, 6, 254, 186, 12, 18, 27, 6, 149, 12, + 18, 27, 6, 185, 12, 18, 27, 6, 199, 12, 18, 27, 6, 73, 12, 18, 27, 6, + 254, 187, 12, 18, 27, 6, 254, 196, 12, 18, 27, 6, 146, 12, 18, 27, 6, + 193, 12, 18, 27, 6, 254, 183, 12, 18, 27, 6, 66, 12, 18, 27, 6, 196, 12, + 18, 27, 6, 254, 195, 12, 18, 27, 6, 254, 184, 12, 18, 27, 6, 254, 190, + 12, 18, 27, 6, 254, 193, 12, 18, 27, 3, 57, 12, 18, 27, 3, 254, 185, 12, + 18, 27, 3, 254, 194, 12, 18, 27, 3, 222, 222, 12, 18, 27, 3, 72, 12, 18, + 27, 3, 254, 191, 12, 18, 27, 3, 214, 12, 18, 27, 3, 212, 12, 18, 27, 3, + 74, 12, 18, 27, 3, 254, 192, 12, 18, 27, 3, 254, 186, 12, 18, 27, 3, 149, + 12, 18, 27, 3, 185, 12, 18, 27, 3, 199, 12, 18, 27, 3, 73, 12, 18, 27, 3, + 254, 187, 12, 18, 27, 3, 254, 196, 12, 18, 27, 3, 146, 12, 18, 27, 3, + 193, 12, 18, 27, 3, 254, 183, 12, 18, 27, 3, 66, 12, 18, 27, 3, 196, 12, + 18, 27, 3, 254, 195, 12, 18, 27, 3, 254, 184, 12, 18, 27, 3, 254, 190, + 12, 18, 27, 3, 254, 193, 12, 95, 6, 57, 12, 95, 6, 254, 194, 12, 95, 6, + 222, 222, 12, 95, 6, 214, 12, 95, 6, 254, 192, 12, 95, 6, 254, 186, 12, + 95, 6, 199, 12, 95, 6, 73, 12, 95, 6, 254, 187, 12, 95, 6, 254, 196, 12, + 95, 6, 193, 12, 95, 6, 254, 183, 12, 95, 6, 66, 12, 95, 6, 196, 12, 95, + 6, 254, 195, 12, 95, 6, 254, 184, 12, 95, 6, 254, 190, 12, 95, 6, 254, + 193, 12, 95, 3, 57, 12, 95, 3, 254, 185, 12, 95, 3, 254, 194, 12, 95, 3, + 222, 222, 12, 95, 3, 254, 191, 12, 95, 3, 212, 12, 95, 3, 74, 12, 95, 3, + 254, 192, 12, 95, 3, 254, 186, 12, 95, 3, 149, 12, 95, 3, 185, 12, 95, 3, + 199, 12, 95, 3, 254, 187, 12, 95, 3, 254, 196, 12, 95, 3, 146, 12, 95, 3, + 193, 12, 95, 3, 254, 183, 12, 95, 3, 66, 12, 95, 3, 196, 12, 95, 3, 254, + 195, 12, 95, 3, 254, 184, 12, 95, 3, 254, 190, 12, 95, 3, 254, 193, 12, + 18, 95, 6, 57, 12, 18, 95, 6, 254, 185, 12, 18, 95, 6, 254, 194, 12, 18, + 95, 6, 222, 222, 12, 18, 95, 6, 72, 12, 18, 95, 6, 254, 191, 12, 18, 95, + 6, 214, 12, 18, 95, 6, 212, 12, 18, 95, 6, 74, 12, 18, 95, 6, 254, 192, + 12, 18, 95, 6, 254, 186, 12, 18, 95, 6, 149, 12, 18, 95, 6, 185, 12, 18, + 95, 6, 199, 12, 18, 95, 6, 73, 12, 18, 95, 6, 254, 187, 12, 18, 95, 6, + 254, 196, 12, 18, 95, 6, 146, 12, 18, 95, 6, 193, 12, 18, 95, 6, 254, + 183, 12, 18, 95, 6, 66, 12, 18, 95, 6, 196, 12, 18, 95, 6, 254, 195, 12, + 18, 95, 6, 254, 184, 12, 18, 95, 6, 254, 190, 12, 18, 95, 6, 254, 193, + 12, 18, 95, 3, 57, 12, 18, 95, 3, 254, 185, 12, 18, 95, 3, 254, 194, 12, + 18, 95, 3, 222, 222, 12, 18, 95, 3, 72, 12, 18, 95, 3, 254, 191, 12, 18, + 95, 3, 214, 12, 18, 95, 3, 212, 12, 18, 95, 3, 74, 12, 18, 95, 3, 254, + 192, 12, 18, 95, 3, 254, 186, 12, 18, 95, 3, 149, 12, 18, 95, 3, 185, 12, + 18, 95, 3, 199, 12, 18, 95, 3, 73, 12, 18, 95, 3, 254, 187, 12, 18, 95, + 3, 254, 196, 12, 18, 95, 3, 146, 12, 18, 95, 3, 193, 12, 18, 95, 3, 254, + 183, 12, 18, 95, 3, 66, 12, 18, 95, 3, 196, 12, 18, 95, 3, 254, 195, 12, + 18, 95, 3, 254, 184, 12, 18, 95, 3, 254, 190, 12, 18, 95, 3, 254, 193, + 12, 110, 6, 57, 12, 110, 6, 254, 185, 12, 110, 6, 222, 222, 12, 110, 6, + 72, 12, 110, 6, 254, 191, 12, 110, 6, 214, 12, 110, 6, 254, 192, 12, 110, + 6, 254, 186, 12, 110, 6, 149, 12, 110, 6, 185, 12, 110, 6, 199, 12, 110, + 6, 73, 12, 110, 6, 254, 187, 12, 110, 6, 254, 196, 12, 110, 6, 193, 12, + 110, 6, 254, 183, 12, 110, 6, 66, 12, 110, 6, 196, 12, 110, 6, 254, 195, + 12, 110, 6, 254, 184, 12, 110, 6, 254, 190, 12, 110, 3, 57, 12, 110, 3, + 254, 185, 12, 110, 3, 254, 194, 12, 110, 3, 222, 222, 12, 110, 3, 72, 12, + 110, 3, 254, 191, 12, 110, 3, 214, 12, 110, 3, 212, 12, 110, 3, 74, 12, + 110, 3, 254, 192, 12, 110, 3, 254, 186, 12, 110, 3, 149, 12, 110, 3, 185, + 12, 110, 3, 199, 12, 110, 3, 73, 12, 110, 3, 254, 187, 12, 110, 3, 254, + 196, 12, 110, 3, 146, 12, 110, 3, 193, 12, 110, 3, 254, 183, 12, 110, 3, + 66, 12, 110, 3, 196, 12, 110, 3, 254, 195, 12, 110, 3, 254, 184, 12, 110, + 3, 254, 190, 12, 110, 3, 254, 193, 12, 159, 6, 57, 12, 159, 6, 254, 185, + 12, 159, 6, 222, 222, 12, 159, 6, 72, 12, 159, 6, 254, 191, 12, 159, 6, + 214, 12, 159, 6, 74, 12, 159, 6, 254, 192, 12, 159, 6, 254, 186, 12, 159, + 6, 149, 12, 159, 6, 185, 12, 159, 6, 73, 12, 159, 6, 193, 12, 159, 6, + 254, 183, 12, 159, 6, 66, 12, 159, 6, 196, 12, 159, 6, 254, 195, 12, 159, + 6, 254, 184, 12, 159, 6, 254, 190, 12, 159, 3, 57, 12, 159, 3, 254, 185, + 12, 159, 3, 254, 194, 12, 159, 3, 222, 222, 12, 159, 3, 72, 12, 159, 3, + 254, 191, 12, 159, 3, 214, 12, 159, 3, 212, 12, 159, 3, 74, 12, 159, 3, + 254, 192, 12, 159, 3, 254, 186, 12, 159, 3, 149, 12, 159, 3, 185, 12, + 159, 3, 199, 12, 159, 3, 73, 12, 159, 3, 254, 187, 12, 159, 3, 254, 196, + 12, 159, 3, 146, 12, 159, 3, 193, 12, 159, 3, 254, 183, 12, 159, 3, 66, + 12, 159, 3, 196, 12, 159, 3, 254, 195, 12, 159, 3, 254, 184, 12, 159, 3, + 254, 190, 12, 159, 3, 254, 193, 12, 18, 110, 6, 57, 12, 18, 110, 6, 254, + 185, 12, 18, 110, 6, 254, 194, 12, 18, 110, 6, 222, 222, 12, 18, 110, 6, + 72, 12, 18, 110, 6, 254, 191, 12, 18, 110, 6, 214, 12, 18, 110, 6, 212, + 12, 18, 110, 6, 74, 12, 18, 110, 6, 254, 192, 12, 18, 110, 6, 254, 186, + 12, 18, 110, 6, 149, 12, 18, 110, 6, 185, 12, 18, 110, 6, 199, 12, 18, + 110, 6, 73, 12, 18, 110, 6, 254, 187, 12, 18, 110, 6, 254, 196, 12, 18, + 110, 6, 146, 12, 18, 110, 6, 193, 12, 18, 110, 6, 254, 183, 12, 18, 110, + 6, 66, 12, 18, 110, 6, 196, 12, 18, 110, 6, 254, 195, 12, 18, 110, 6, + 254, 184, 12, 18, 110, 6, 254, 190, 12, 18, 110, 6, 254, 193, 12, 18, + 110, 3, 57, 12, 18, 110, 3, 254, 185, 12, 18, 110, 3, 254, 194, 12, 18, + 110, 3, 222, 222, 12, 18, 110, 3, 72, 12, 18, 110, 3, 254, 191, 12, 18, + 110, 3, 214, 12, 18, 110, 3, 212, 12, 18, 110, 3, 74, 12, 18, 110, 3, + 254, 192, 12, 18, 110, 3, 254, 186, 12, 18, 110, 3, 149, 12, 18, 110, 3, + 185, 12, 18, 110, 3, 199, 12, 18, 110, 3, 73, 12, 18, 110, 3, 254, 187, + 12, 18, 110, 3, 254, 196, 12, 18, 110, 3, 146, 12, 18, 110, 3, 193, 12, + 18, 110, 3, 254, 183, 12, 18, 110, 3, 66, 12, 18, 110, 3, 196, 12, 18, + 110, 3, 254, 195, 12, 18, 110, 3, 254, 184, 12, 18, 110, 3, 254, 190, 12, + 18, 110, 3, 254, 193, 12, 30, 6, 57, 12, 30, 6, 254, 185, 12, 30, 6, 254, + 194, 12, 30, 6, 222, 222, 12, 30, 6, 72, 12, 30, 6, 254, 191, 12, 30, 6, + 214, 12, 30, 6, 212, 12, 30, 6, 74, 12, 30, 6, 254, 192, 12, 30, 6, 254, + 186, 12, 30, 6, 149, 12, 30, 6, 185, 12, 30, 6, 199, 12, 30, 6, 73, 12, + 30, 6, 254, 187, 12, 30, 6, 254, 196, 12, 30, 6, 146, 12, 30, 6, 193, 12, + 30, 6, 254, 183, 12, 30, 6, 66, 12, 30, 6, 196, 12, 30, 6, 254, 195, 12, + 30, 6, 254, 184, 12, 30, 6, 254, 190, 12, 30, 6, 254, 193, 12, 30, 3, 57, + 12, 30, 3, 254, 185, 12, 30, 3, 254, 194, 12, 30, 3, 222, 222, 12, 30, 3, + 72, 12, 30, 3, 254, 191, 12, 30, 3, 214, 12, 30, 3, 212, 12, 30, 3, 74, + 12, 30, 3, 254, 192, 12, 30, 3, 254, 186, 12, 30, 3, 149, 12, 30, 3, 185, + 12, 30, 3, 199, 12, 30, 3, 73, 12, 30, 3, 254, 187, 12, 30, 3, 254, 196, + 12, 30, 3, 146, 12, 30, 3, 193, 12, 30, 3, 254, 183, 12, 30, 3, 66, 12, + 30, 3, 196, 12, 30, 3, 254, 195, 12, 30, 3, 254, 184, 12, 30, 3, 254, + 190, 12, 30, 3, 254, 193, 12, 30, 18, 6, 57, 12, 30, 18, 6, 254, 185, 12, + 30, 18, 6, 254, 194, 12, 30, 18, 6, 222, 222, 12, 30, 18, 6, 72, 12, 30, + 18, 6, 254, 191, 12, 30, 18, 6, 214, 12, 30, 18, 6, 212, 12, 30, 18, 6, + 74, 12, 30, 18, 6, 254, 192, 12, 30, 18, 6, 254, 186, 12, 30, 18, 6, 149, + 12, 30, 18, 6, 185, 12, 30, 18, 6, 199, 12, 30, 18, 6, 73, 12, 30, 18, 6, + 254, 187, 12, 30, 18, 6, 254, 196, 12, 30, 18, 6, 146, 12, 30, 18, 6, + 193, 12, 30, 18, 6, 254, 183, 12, 30, 18, 6, 66, 12, 30, 18, 6, 196, 12, + 30, 18, 6, 254, 195, 12, 30, 18, 6, 254, 184, 12, 30, 18, 6, 254, 190, + 12, 30, 18, 6, 254, 193, 12, 30, 18, 3, 57, 12, 30, 18, 3, 254, 185, 12, + 30, 18, 3, 254, 194, 12, 30, 18, 3, 222, 222, 12, 30, 18, 3, 72, 12, 30, + 18, 3, 254, 191, 12, 30, 18, 3, 214, 12, 30, 18, 3, 212, 12, 30, 18, 3, + 74, 12, 30, 18, 3, 254, 192, 12, 30, 18, 3, 254, 186, 12, 30, 18, 3, 149, + 12, 30, 18, 3, 185, 12, 30, 18, 3, 199, 12, 30, 18, 3, 73, 12, 30, 18, 3, + 254, 187, 12, 30, 18, 3, 254, 196, 12, 30, 18, 3, 146, 12, 30, 18, 3, + 193, 12, 30, 18, 3, 254, 183, 12, 30, 18, 3, 66, 12, 30, 18, 3, 196, 12, + 30, 18, 3, 254, 195, 12, 30, 18, 3, 254, 184, 12, 30, 18, 3, 254, 190, + 12, 30, 18, 3, 254, 193, 12, 30, 27, 6, 57, 12, 30, 27, 6, 254, 185, 12, + 30, 27, 6, 254, 194, 12, 30, 27, 6, 222, 222, 12, 30, 27, 6, 72, 12, 30, + 27, 6, 254, 191, 12, 30, 27, 6, 214, 12, 30, 27, 6, 212, 12, 30, 27, 6, + 74, 12, 30, 27, 6, 254, 192, 12, 30, 27, 6, 254, 186, 12, 30, 27, 6, 149, + 12, 30, 27, 6, 185, 12, 30, 27, 6, 199, 12, 30, 27, 6, 73, 12, 30, 27, 6, + 254, 187, 12, 30, 27, 6, 254, 196, 12, 30, 27, 6, 146, 12, 30, 27, 6, + 193, 12, 30, 27, 6, 254, 183, 12, 30, 27, 6, 66, 12, 30, 27, 6, 196, 12, + 30, 27, 6, 254, 195, 12, 30, 27, 6, 254, 184, 12, 30, 27, 6, 254, 190, + 12, 30, 27, 6, 254, 193, 12, 30, 27, 3, 57, 12, 30, 27, 3, 254, 185, 12, + 30, 27, 3, 254, 194, 12, 30, 27, 3, 222, 222, 12, 30, 27, 3, 72, 12, 30, + 27, 3, 254, 191, 12, 30, 27, 3, 214, 12, 30, 27, 3, 212, 12, 30, 27, 3, + 74, 12, 30, 27, 3, 254, 192, 12, 30, 27, 3, 254, 186, 12, 30, 27, 3, 149, + 12, 30, 27, 3, 185, 12, 30, 27, 3, 199, 12, 30, 27, 3, 73, 12, 30, 27, 3, + 254, 187, 12, 30, 27, 3, 254, 196, 12, 30, 27, 3, 146, 12, 30, 27, 3, + 193, 12, 30, 27, 3, 254, 183, 12, 30, 27, 3, 66, 12, 30, 27, 3, 196, 12, + 30, 27, 3, 254, 195, 12, 30, 27, 3, 254, 184, 12, 30, 27, 3, 254, 190, + 12, 30, 27, 3, 254, 193, 12, 30, 18, 27, 6, 57, 12, 30, 18, 27, 6, 254, + 185, 12, 30, 18, 27, 6, 254, 194, 12, 30, 18, 27, 6, 222, 222, 12, 30, + 18, 27, 6, 72, 12, 30, 18, 27, 6, 254, 191, 12, 30, 18, 27, 6, 214, 12, + 30, 18, 27, 6, 212, 12, 30, 18, 27, 6, 74, 12, 30, 18, 27, 6, 254, 192, + 12, 30, 18, 27, 6, 254, 186, 12, 30, 18, 27, 6, 149, 12, 30, 18, 27, 6, + 185, 12, 30, 18, 27, 6, 199, 12, 30, 18, 27, 6, 73, 12, 30, 18, 27, 6, + 254, 187, 12, 30, 18, 27, 6, 254, 196, 12, 30, 18, 27, 6, 146, 12, 30, + 18, 27, 6, 193, 12, 30, 18, 27, 6, 254, 183, 12, 30, 18, 27, 6, 66, 12, + 30, 18, 27, 6, 196, 12, 30, 18, 27, 6, 254, 195, 12, 30, 18, 27, 6, 254, + 184, 12, 30, 18, 27, 6, 254, 190, 12, 30, 18, 27, 6, 254, 193, 12, 30, + 18, 27, 3, 57, 12, 30, 18, 27, 3, 254, 185, 12, 30, 18, 27, 3, 254, 194, + 12, 30, 18, 27, 3, 222, 222, 12, 30, 18, 27, 3, 72, 12, 30, 18, 27, 3, + 254, 191, 12, 30, 18, 27, 3, 214, 12, 30, 18, 27, 3, 212, 12, 30, 18, 27, + 3, 74, 12, 30, 18, 27, 3, 254, 192, 12, 30, 18, 27, 3, 254, 186, 12, 30, + 18, 27, 3, 149, 12, 30, 18, 27, 3, 185, 12, 30, 18, 27, 3, 199, 12, 30, + 18, 27, 3, 73, 12, 30, 18, 27, 3, 254, 187, 12, 30, 18, 27, 3, 254, 196, + 12, 30, 18, 27, 3, 146, 12, 30, 18, 27, 3, 193, 12, 30, 18, 27, 3, 254, + 183, 12, 30, 18, 27, 3, 66, 12, 30, 18, 27, 3, 196, 12, 30, 18, 27, 3, + 254, 195, 12, 30, 18, 27, 3, 254, 184, 12, 30, 18, 27, 3, 254, 190, 12, + 30, 18, 27, 3, 254, 193, 12, 189, 6, 57, 12, 189, 6, 254, 185, 12, 189, + 6, 254, 194, 12, 189, 6, 222, 222, 12, 189, 6, 72, 12, 189, 6, 254, 191, + 12, 189, 6, 214, 12, 189, 6, 212, 12, 189, 6, 74, 12, 189, 6, 254, 192, + 12, 189, 6, 254, 186, 12, 189, 6, 149, 12, 189, 6, 185, 12, 189, 6, 199, + 12, 189, 6, 73, 12, 189, 6, 254, 187, 12, 189, 6, 254, 196, 12, 189, 6, + 146, 12, 189, 6, 193, 12, 189, 6, 254, 183, 12, 189, 6, 66, 12, 189, 6, + 196, 12, 189, 6, 254, 195, 12, 189, 6, 254, 184, 12, 189, 6, 254, 190, + 12, 189, 6, 254, 193, 12, 189, 3, 57, 12, 189, 3, 254, 185, 12, 189, 3, + 254, 194, 12, 189, 3, 222, 222, 12, 189, 3, 72, 12, 189, 3, 254, 191, 12, + 189, 3, 214, 12, 189, 3, 212, 12, 189, 3, 74, 12, 189, 3, 254, 192, 12, + 189, 3, 254, 186, 12, 189, 3, 149, 12, 189, 3, 185, 12, 189, 3, 199, 12, + 189, 3, 73, 12, 189, 3, 254, 187, 12, 189, 3, 254, 196, 12, 189, 3, 146, + 12, 189, 3, 193, 12, 189, 3, 254, 183, 12, 189, 3, 66, 12, 189, 3, 196, + 12, 189, 3, 254, 195, 12, 189, 3, 254, 184, 12, 189, 3, 254, 190, 12, + 189, 3, 254, 193, 12, 27, 3, 235, 46, 74, 12, 27, 3, 235, 46, 254, 192, + 12, 18, 6, 237, 71, 12, 18, 6, 240, 160, 12, 18, 6, 237, 61, 12, 18, 6, + 237, 75, 12, 18, 6, 233, 96, 12, 18, 6, 240, 173, 12, 18, 6, 246, 219, + 12, 18, 6, 237, 89, 12, 18, 6, 240, 146, 12, 18, 6, 237, 91, 12, 18, 6, + 237, 82, 12, 18, 6, 252, 229, 12, 18, 6, 252, 227, 12, 18, 6, 253, 38, + 12, 18, 6, 233, 100, 12, 18, 6, 252, 223, 12, 18, 6, 246, 209, 12, 18, 6, + 240, 178, 98, 12, 18, 6, 237, 73, 12, 18, 6, 246, 212, 12, 18, 6, 233, + 92, 12, 18, 6, 246, 198, 12, 18, 6, 246, 200, 12, 18, 6, 246, 204, 12, + 18, 6, 237, 68, 12, 18, 237, 138, 12, 18, 3, 237, 71, 12, 18, 3, 240, + 160, 12, 18, 3, 237, 61, 12, 18, 3, 237, 75, 12, 18, 3, 233, 96, 12, 18, + 3, 240, 173, 12, 18, 3, 246, 219, 12, 18, 3, 237, 89, 12, 18, 3, 240, + 146, 12, 18, 3, 237, 91, 12, 18, 3, 237, 82, 12, 18, 3, 252, 229, 12, 18, + 3, 252, 227, 12, 18, 3, 253, 38, 12, 18, 3, 233, 100, 12, 18, 3, 252, + 223, 12, 18, 3, 246, 209, 12, 18, 3, 35, 237, 73, 12, 18, 3, 237, 73, 12, + 18, 3, 246, 212, 12, 18, 3, 233, 92, 12, 18, 3, 246, 198, 12, 18, 3, 246, + 200, 12, 18, 3, 246, 204, 12, 18, 3, 237, 68, 12, 18, 235, 79, 227, 188, + 12, 18, 235, 28, 98, 12, 18, 240, 178, 98, 12, 18, 240, 210, 98, 12, 18, + 253, 120, 98, 12, 18, 253, 70, 98, 12, 18, 254, 200, 98, 12, 27, 6, 237, + 71, 12, 27, 6, 240, 160, 12, 27, 6, 237, 61, 12, 27, 6, 237, 75, 12, 27, + 6, 233, 96, 12, 27, 6, 240, 173, 12, 27, 6, 246, 219, 12, 27, 6, 237, 89, + 12, 27, 6, 240, 146, 12, 27, 6, 237, 91, 12, 27, 6, 237, 82, 12, 27, 6, + 252, 229, 12, 27, 6, 252, 227, 12, 27, 6, 253, 38, 12, 27, 6, 233, 100, + 12, 27, 6, 252, 223, 12, 27, 6, 246, 209, 12, 27, 6, 240, 178, 98, 12, + 27, 6, 237, 73, 12, 27, 6, 246, 212, 12, 27, 6, 233, 92, 12, 27, 6, 246, + 198, 12, 27, 6, 246, 200, 12, 27, 6, 246, 204, 12, 27, 6, 237, 68, 12, + 27, 237, 138, 12, 27, 3, 237, 71, 12, 27, 3, 240, 160, 12, 27, 3, 237, + 61, 12, 27, 3, 237, 75, 12, 27, 3, 233, 96, 12, 27, 3, 240, 173, 12, 27, + 3, 246, 219, 12, 27, 3, 237, 89, 12, 27, 3, 240, 146, 12, 27, 3, 237, 91, + 12, 27, 3, 237, 82, 12, 27, 3, 252, 229, 12, 27, 3, 252, 227, 12, 27, 3, + 253, 38, 12, 27, 3, 233, 100, 12, 27, 3, 252, 223, 12, 27, 3, 246, 209, + 12, 27, 3, 35, 237, 73, 12, 27, 3, 237, 73, 12, 27, 3, 246, 212, 12, 27, + 3, 233, 92, 12, 27, 3, 246, 198, 12, 27, 3, 246, 200, 12, 27, 3, 246, + 204, 12, 27, 3, 237, 68, 12, 27, 235, 79, 227, 188, 12, 27, 235, 28, 98, + 12, 27, 240, 178, 98, 12, 27, 240, 210, 98, 12, 27, 253, 120, 98, 12, 27, + 253, 70, 98, 12, 27, 254, 200, 98, 12, 18, 27, 6, 237, 71, 12, 18, 27, 6, + 240, 160, 12, 18, 27, 6, 237, 61, 12, 18, 27, 6, 237, 75, 12, 18, 27, 6, + 233, 96, 12, 18, 27, 6, 240, 173, 12, 18, 27, 6, 246, 219, 12, 18, 27, 6, + 237, 89, 12, 18, 27, 6, 240, 146, 12, 18, 27, 6, 237, 91, 12, 18, 27, 6, + 237, 82, 12, 18, 27, 6, 252, 229, 12, 18, 27, 6, 252, 227, 12, 18, 27, 6, + 253, 38, 12, 18, 27, 6, 233, 100, 12, 18, 27, 6, 252, 223, 12, 18, 27, 6, + 246, 209, 12, 18, 27, 6, 240, 178, 98, 12, 18, 27, 6, 237, 73, 12, 18, + 27, 6, 246, 212, 12, 18, 27, 6, 233, 92, 12, 18, 27, 6, 246, 198, 12, 18, + 27, 6, 246, 200, 12, 18, 27, 6, 246, 204, 12, 18, 27, 6, 237, 68, 12, 18, + 27, 237, 138, 12, 18, 27, 3, 237, 71, 12, 18, 27, 3, 240, 160, 12, 18, + 27, 3, 237, 61, 12, 18, 27, 3, 237, 75, 12, 18, 27, 3, 233, 96, 12, 18, + 27, 3, 240, 173, 12, 18, 27, 3, 246, 219, 12, 18, 27, 3, 237, 89, 12, 18, + 27, 3, 240, 146, 12, 18, 27, 3, 237, 91, 12, 18, 27, 3, 237, 82, 12, 18, + 27, 3, 252, 229, 12, 18, 27, 3, 252, 227, 12, 18, 27, 3, 253, 38, 12, 18, + 27, 3, 233, 100, 12, 18, 27, 3, 252, 223, 12, 18, 27, 3, 246, 209, 12, + 18, 27, 3, 35, 237, 73, 12, 18, 27, 3, 237, 73, 12, 18, 27, 3, 246, 212, + 12, 18, 27, 3, 233, 92, 12, 18, 27, 3, 246, 198, 12, 18, 27, 3, 246, 200, + 12, 18, 27, 3, 246, 204, 12, 18, 27, 3, 237, 68, 12, 18, 27, 235, 79, + 227, 188, 12, 18, 27, 235, 28, 98, 12, 18, 27, 240, 178, 98, 12, 18, 27, + 240, 210, 98, 12, 18, 27, 253, 120, 98, 12, 18, 27, 253, 70, 98, 12, 18, + 27, 254, 200, 98, 12, 30, 18, 6, 237, 71, 12, 30, 18, 6, 240, 160, 12, + 30, 18, 6, 237, 61, 12, 30, 18, 6, 237, 75, 12, 30, 18, 6, 233, 96, 12, + 30, 18, 6, 240, 173, 12, 30, 18, 6, 246, 219, 12, 30, 18, 6, 237, 89, 12, + 30, 18, 6, 240, 146, 12, 30, 18, 6, 237, 91, 12, 30, 18, 6, 237, 82, 12, + 30, 18, 6, 252, 229, 12, 30, 18, 6, 252, 227, 12, 30, 18, 6, 253, 38, 12, + 30, 18, 6, 233, 100, 12, 30, 18, 6, 252, 223, 12, 30, 18, 6, 246, 209, + 12, 30, 18, 6, 240, 178, 98, 12, 30, 18, 6, 237, 73, 12, 30, 18, 6, 246, + 212, 12, 30, 18, 6, 233, 92, 12, 30, 18, 6, 246, 198, 12, 30, 18, 6, 246, + 200, 12, 30, 18, 6, 246, 204, 12, 30, 18, 6, 237, 68, 12, 30, 18, 237, + 138, 12, 30, 18, 3, 237, 71, 12, 30, 18, 3, 240, 160, 12, 30, 18, 3, 237, + 61, 12, 30, 18, 3, 237, 75, 12, 30, 18, 3, 233, 96, 12, 30, 18, 3, 240, + 173, 12, 30, 18, 3, 246, 219, 12, 30, 18, 3, 237, 89, 12, 30, 18, 3, 240, + 146, 12, 30, 18, 3, 237, 91, 12, 30, 18, 3, 237, 82, 12, 30, 18, 3, 252, + 229, 12, 30, 18, 3, 252, 227, 12, 30, 18, 3, 253, 38, 12, 30, 18, 3, 233, + 100, 12, 30, 18, 3, 252, 223, 12, 30, 18, 3, 246, 209, 12, 30, 18, 3, 35, + 237, 73, 12, 30, 18, 3, 237, 73, 12, 30, 18, 3, 246, 212, 12, 30, 18, 3, + 233, 92, 12, 30, 18, 3, 246, 198, 12, 30, 18, 3, 246, 200, 12, 30, 18, 3, + 246, 204, 12, 30, 18, 3, 237, 68, 12, 30, 18, 235, 79, 227, 188, 12, 30, + 18, 235, 28, 98, 12, 30, 18, 240, 178, 98, 12, 30, 18, 240, 210, 98, 12, + 30, 18, 253, 120, 98, 12, 30, 18, 253, 70, 98, 12, 30, 18, 254, 200, 98, + 12, 30, 18, 27, 6, 237, 71, 12, 30, 18, 27, 6, 240, 160, 12, 30, 18, 27, + 6, 237, 61, 12, 30, 18, 27, 6, 237, 75, 12, 30, 18, 27, 6, 233, 96, 12, + 30, 18, 27, 6, 240, 173, 12, 30, 18, 27, 6, 246, 219, 12, 30, 18, 27, 6, + 237, 89, 12, 30, 18, 27, 6, 240, 146, 12, 30, 18, 27, 6, 237, 91, 12, 30, + 18, 27, 6, 237, 82, 12, 30, 18, 27, 6, 252, 229, 12, 30, 18, 27, 6, 252, + 227, 12, 30, 18, 27, 6, 253, 38, 12, 30, 18, 27, 6, 233, 100, 12, 30, 18, + 27, 6, 252, 223, 12, 30, 18, 27, 6, 246, 209, 12, 30, 18, 27, 6, 240, + 178, 98, 12, 30, 18, 27, 6, 237, 73, 12, 30, 18, 27, 6, 246, 212, 12, 30, + 18, 27, 6, 233, 92, 12, 30, 18, 27, 6, 246, 198, 12, 30, 18, 27, 6, 246, + 200, 12, 30, 18, 27, 6, 246, 204, 12, 30, 18, 27, 6, 237, 68, 12, 30, 18, + 27, 237, 138, 12, 30, 18, 27, 3, 237, 71, 12, 30, 18, 27, 3, 240, 160, + 12, 30, 18, 27, 3, 237, 61, 12, 30, 18, 27, 3, 237, 75, 12, 30, 18, 27, + 3, 233, 96, 12, 30, 18, 27, 3, 240, 173, 12, 30, 18, 27, 3, 246, 219, 12, + 30, 18, 27, 3, 237, 89, 12, 30, 18, 27, 3, 240, 146, 12, 30, 18, 27, 3, + 237, 91, 12, 30, 18, 27, 3, 237, 82, 12, 30, 18, 27, 3, 252, 229, 12, 30, + 18, 27, 3, 252, 227, 12, 30, 18, 27, 3, 253, 38, 12, 30, 18, 27, 3, 233, + 100, 12, 30, 18, 27, 3, 252, 223, 12, 30, 18, 27, 3, 246, 209, 12, 30, + 18, 27, 3, 35, 237, 73, 12, 30, 18, 27, 3, 237, 73, 12, 30, 18, 27, 3, + 246, 212, 12, 30, 18, 27, 3, 233, 92, 12, 30, 18, 27, 3, 246, 198, 12, + 30, 18, 27, 3, 246, 200, 12, 30, 18, 27, 3, 246, 204, 12, 30, 18, 27, 3, + 237, 68, 12, 30, 18, 27, 235, 79, 227, 188, 12, 30, 18, 27, 235, 28, 98, + 12, 30, 18, 27, 240, 178, 98, 12, 30, 18, 27, 240, 210, 98, 12, 30, 18, + 27, 253, 120, 98, 12, 30, 18, 27, 253, 70, 98, 12, 30, 18, 27, 254, 200, + 98, 12, 18, 6, 233, 129, 12, 18, 3, 233, 129, 12, 18, 21, 240, 126, 12, + 18, 21, 118, 12, 18, 21, 113, 12, 18, 21, 166, 12, 18, 21, 158, 12, 18, + 21, 173, 12, 18, 21, 183, 12, 18, 21, 194, 12, 18, 21, 187, 12, 18, 21, + 192, 12, 159, 21, 240, 126, 12, 159, 21, 118, 12, 159, 21, 113, 12, 159, + 21, 166, 12, 159, 21, 158, 12, 159, 21, 173, 12, 159, 21, 183, 12, 159, + 21, 194, 12, 159, 21, 187, 12, 159, 21, 192, 12, 30, 21, 240, 126, 12, + 30, 21, 118, 12, 30, 21, 113, 12, 30, 21, 166, 12, 30, 21, 158, 12, 30, + 21, 173, 12, 30, 21, 183, 12, 30, 21, 194, 12, 30, 21, 187, 12, 30, 21, + 192, 12, 30, 18, 21, 240, 126, 12, 30, 18, 21, 118, 12, 30, 18, 21, 113, + 12, 30, 18, 21, 166, 12, 30, 18, 21, 158, 12, 30, 18, 21, 173, 12, 30, + 18, 21, 183, 12, 30, 18, 21, 194, 12, 30, 18, 21, 187, 12, 30, 18, 21, + 192, 12, 189, 21, 240, 126, 12, 189, 21, 118, 12, 189, 21, 113, 12, 189, + 21, 166, 12, 189, 21, 158, 12, 189, 21, 173, 12, 189, 21, 183, 12, 189, + 21, 194, 12, 189, 21, 187, 12, 189, 21, 192, 235, 19, 75, 246, 170, 240, + 199, 235, 19, 75, 240, 141, 240, 199, 235, 19, 75, 246, 184, 240, 199, + 235, 19, 75, 240, 134, 240, 199, 235, 19, 75, 254, 142, 235, 74, 235, 19, + 75, 243, 156, 235, 74, 235, 19, 75, 63, 235, 74, 235, 19, 75, 168, 106, + 229, 173, 235, 19, 75, 135, 106, 229, 173, 235, 19, 75, 152, 106, 229, + 173, 235, 19, 75, 246, 160, 106, 229, 173, 235, 19, 75, 246, 159, 106, + 229, 173, 235, 19, 75, 253, 17, 106, 229, 173, 235, 19, 75, 240, 155, + 106, 229, 173, 235, 19, 75, 240, 142, 106, 229, 173, 235, 19, 75, 246, + 208, 106, 229, 173, 235, 19, 75, 168, 106, 233, 109, 235, 19, 75, 135, + 106, 233, 109, 235, 19, 75, 152, 106, 233, 109, 235, 19, 75, 246, 160, + 106, 233, 109, 235, 19, 75, 246, 159, 106, 233, 109, 235, 19, 75, 253, + 17, 106, 233, 109, 235, 19, 75, 240, 155, 106, 233, 109, 235, 19, 75, + 240, 142, 106, 233, 109, 235, 19, 75, 246, 208, 106, 233, 109, 235, 19, + 75, 168, 106, 233, 110, 235, 19, 75, 135, 106, 233, 110, 235, 19, 75, + 152, 106, 233, 110, 235, 19, 75, 246, 160, 106, 233, 110, 235, 19, 75, + 246, 159, 106, 233, 110, 235, 19, 75, 253, 17, 106, 233, 110, 235, 19, + 75, 240, 155, 106, 233, 110, 235, 19, 75, 240, 142, 106, 233, 110, 235, + 19, 75, 246, 208, 106, 233, 110, 235, 19, 75, 245, 80, 235, 19, 75, 236, + 177, 235, 19, 75, 235, 109, 235, 19, 75, 227, 160, 235, 19, 75, 236, 238, + 235, 19, 75, 236, 248, 235, 19, 75, 236, 1, 235, 19, 75, 237, 30, 235, + 19, 75, 239, 50, 235, 19, 75, 240, 217, 109, 75, 169, 240, 217, 109, 75, + 223, 0, 109, 75, 223, 1, 109, 75, 223, 2, 109, 75, 223, 3, 109, 75, 223, + 4, 109, 75, 223, 5, 109, 75, 223, 6, 109, 75, 223, 7, 109, 75, 223, 8, + 109, 75, 223, 9, 109, 75, 223, 10, 109, 75, 223, 11, 109, 75, 223, 12, + 109, 75, 223, 13, 109, 75, 223, 14, 109, 75, 223, 15, 109, 75, 223, 16, + 109, 75, 223, 17, 109, 75, 223, 18, 109, 75, 223, 19, 109, 75, 223, 20, + 109, 75, 223, 21, 109, 75, 223, 22, 109, 75, 223, 23, 109, 75, 223, 24, + 109, 75, 223, 25, 109, 75, 223, 26, 109, 75, 223, 27, 109, 75, 223, 28, + 109, 75, 223, 29, 109, 75, 223, 30, 109, 75, 223, 31, 109, 75, 223, 32, + 109, 75, 223, 33, 109, 75, 223, 34, 109, 75, 223, 35, 109, 75, 223, 36, + 109, 75, 223, 37, 109, 75, 223, 38, 109, 75, 223, 39, 109, 75, 223, 40, + 109, 75, 223, 41, 109, 75, 223, 42, 109, 75, 223, 43, 109, 75, 223, 44, + 109, 75, 223, 45, 109, 75, 223, 46, 109, 75, 223, 47, 109, 75, 223, 48, + 109, 75, 61, 240, 217, 109, 75, 227, 82, 109, 75, 227, 83, 109, 75, 227, + 84, 109, 75, 227, 85, 109, 75, 227, 86, 109, 75, 227, 87, 109, 75, 227, + 88, 109, 75, 227, 89, 109, 75, 227, 90, 109, 75, 227, 91, 109, 75, 227, + 92, 109, 75, 227, 93, 109, 75, 227, 94, 109, 75, 227, 95, 109, 75, 227, + 96, 109, 75, 227, 97, 109, 75, 227, 98, 109, 75, 227, 99, 109, 75, 227, + 100, 109, 75, 227, 101, 109, 75, 227, 102, 109, 75, 227, 103, 109, 75, + 227, 104, 109, 75, 227, 105, 109, 75, 227, 106, 109, 75, 227, 107, 109, + 75, 227, 108, 109, 75, 227, 109, 109, 75, 227, 110, 109, 75, 227, 111, + 109, 75, 227, 112, 109, 75, 227, 113, 109, 75, 227, 114, 109, 75, 227, + 115, 109, 75, 227, 116, 109, 75, 227, 117, 109, 75, 227, 118, 109, 75, + 227, 119, 109, 75, 227, 120, 109, 75, 227, 121, 109, 75, 227, 122, 109, + 75, 227, 123, 109, 75, 227, 124, 109, 75, 227, 125, 109, 75, 227, 126, + 109, 75, 227, 127, 109, 75, 227, 128, 109, 75, 227, 129, 109, 75, 227, + 130, 9, 11, 223, 63, 9, 11, 223, 64, 9, 11, 223, 65, 9, 11, 223, 66, 9, + 11, 223, 67, 9, 11, 223, 68, 9, 11, 223, 69, 9, 11, 223, 70, 9, 11, 223, + 71, 9, 11, 223, 72, 9, 11, 223, 73, 9, 11, 223, 74, 9, 11, 223, 75, 9, + 11, 223, 76, 9, 11, 223, 77, 9, 11, 223, 78, 9, 11, 223, 79, 9, 11, 223, + 80, 9, 11, 223, 81, 9, 11, 223, 82, 9, 11, 223, 83, 9, 11, 223, 84, 9, + 11, 223, 85, 9, 11, 223, 86, 9, 11, 223, 87, 9, 11, 223, 88, 9, 11, 223, + 89, 9, 11, 223, 90, 9, 11, 223, 91, 9, 11, 223, 92, 9, 11, 223, 93, 9, + 11, 223, 94, 9, 11, 223, 95, 9, 11, 223, 96, 9, 11, 223, 97, 9, 11, 223, + 98, 9, 11, 223, 99, 9, 11, 223, 100, 9, 11, 223, 101, 9, 11, 223, 102, 9, + 11, 223, 103, 9, 11, 223, 104, 9, 11, 223, 105, 9, 11, 223, 106, 9, 11, + 223, 107, 9, 11, 223, 108, 9, 11, 223, 109, 9, 11, 223, 110, 9, 11, 223, + 111, 9, 11, 223, 112, 9, 11, 223, 113, 9, 11, 223, 114, 9, 11, 223, 115, + 9, 11, 223, 116, 9, 11, 223, 117, 9, 11, 223, 118, 9, 11, 223, 119, 9, + 11, 223, 120, 9, 11, 223, 121, 9, 11, 223, 122, 9, 11, 223, 123, 9, 11, + 223, 124, 9, 11, 223, 125, 9, 11, 223, 126, 9, 11, 223, 127, 9, 11, 223, + 128, 9, 11, 223, 129, 9, 11, 223, 130, 9, 11, 223, 131, 9, 11, 223, 132, + 9, 11, 223, 133, 9, 11, 223, 134, 9, 11, 223, 135, 9, 11, 223, 136, 9, + 11, 223, 137, 9, 11, 223, 138, 9, 11, 223, 139, 9, 11, 223, 140, 9, 11, + 223, 141, 9, 11, 223, 142, 9, 11, 223, 143, 9, 11, 223, 144, 9, 11, 223, + 145, 9, 11, 223, 146, 9, 11, 223, 147, 9, 11, 223, 148, 9, 11, 223, 149, + 9, 11, 223, 150, 9, 11, 223, 151, 9, 11, 223, 152, 9, 11, 223, 153, 9, + 11, 223, 154, 9, 11, 223, 155, 9, 11, 223, 156, 9, 11, 223, 157, 9, 11, + 223, 158, 9, 11, 223, 159, 9, 11, 223, 160, 9, 11, 223, 161, 9, 11, 223, + 162, 9, 11, 223, 163, 9, 11, 223, 164, 9, 11, 223, 165, 9, 11, 223, 166, + 9, 11, 223, 167, 9, 11, 223, 168, 9, 11, 223, 169, 9, 11, 223, 170, 9, + 11, 223, 171, 9, 11, 223, 172, 9, 11, 223, 173, 9, 11, 223, 174, 9, 11, + 223, 175, 9, 11, 223, 176, 9, 11, 223, 177, 9, 11, 223, 178, 9, 11, 223, + 179, 9, 11, 223, 180, 9, 11, 223, 181, 9, 11, 223, 182, 9, 11, 223, 183, + 9, 11, 223, 184, 9, 11, 223, 185, 9, 11, 223, 186, 9, 11, 223, 187, 9, + 11, 223, 188, 9, 11, 223, 189, 9, 11, 223, 190, 9, 11, 223, 191, 9, 11, + 223, 192, 9, 11, 223, 193, 9, 11, 223, 194, 9, 11, 223, 195, 9, 11, 223, + 196, 9, 11, 223, 197, 9, 11, 223, 198, 9, 11, 223, 199, 9, 11, 223, 200, + 9, 11, 223, 201, 9, 11, 223, 202, 9, 11, 223, 203, 9, 11, 223, 204, 9, + 11, 223, 205, 9, 11, 223, 206, 9, 11, 223, 207, 9, 11, 223, 208, 9, 11, + 223, 209, 9, 11, 223, 210, 9, 11, 223, 211, 9, 11, 223, 212, 9, 11, 223, + 213, 9, 11, 223, 214, 9, 11, 223, 215, 9, 11, 223, 216, 9, 11, 223, 217, + 9, 11, 223, 218, 9, 11, 223, 219, 9, 11, 223, 220, 9, 11, 223, 221, 9, + 11, 223, 222, 9, 11, 223, 223, 9, 11, 223, 224, 9, 11, 223, 225, 9, 11, + 223, 226, 9, 11, 223, 227, 9, 11, 223, 228, 9, 11, 223, 229, 9, 11, 223, + 230, 9, 11, 223, 231, 9, 11, 223, 232, 9, 11, 223, 233, 9, 11, 223, 234, + 9, 11, 223, 235, 9, 11, 223, 236, 9, 11, 223, 237, 9, 11, 223, 238, 9, + 11, 223, 239, 9, 11, 223, 240, 9, 11, 223, 241, 9, 11, 223, 242, 9, 11, + 223, 243, 9, 11, 223, 244, 9, 11, 223, 245, 9, 11, 223, 246, 9, 11, 223, + 247, 9, 11, 223, 248, 9, 11, 223, 249, 9, 11, 223, 250, 9, 11, 223, 251, + 9, 11, 223, 252, 9, 11, 223, 253, 9, 11, 223, 254, 9, 11, 223, 255, 9, + 11, 224, 0, 9, 11, 224, 1, 9, 11, 224, 2, 9, 11, 224, 3, 9, 11, 224, 4, + 9, 11, 224, 5, 9, 11, 224, 6, 9, 11, 224, 7, 9, 11, 224, 8, 9, 11, 224, + 9, 9, 11, 224, 10, 9, 11, 224, 11, 9, 11, 224, 12, 9, 11, 224, 13, 9, 11, + 224, 14, 9, 11, 224, 15, 9, 11, 224, 16, 9, 11, 224, 17, 9, 11, 224, 18, + 9, 11, 224, 19, 9, 11, 224, 20, 9, 11, 224, 21, 9, 11, 224, 22, 9, 11, + 224, 23, 9, 11, 224, 24, 9, 11, 224, 25, 9, 11, 224, 26, 9, 11, 224, 27, + 9, 11, 224, 28, 9, 11, 224, 29, 9, 11, 224, 30, 9, 11, 224, 31, 9, 11, + 224, 32, 9, 11, 224, 33, 9, 11, 224, 34, 9, 11, 224, 35, 9, 11, 224, 36, + 9, 11, 224, 37, 9, 11, 224, 38, 9, 11, 224, 39, 9, 11, 224, 40, 9, 11, + 224, 41, 9, 11, 224, 42, 9, 11, 224, 43, 9, 11, 224, 44, 9, 11, 224, 45, + 9, 11, 224, 46, 9, 11, 224, 47, 9, 11, 224, 48, 9, 11, 224, 49, 9, 11, + 224, 50, 9, 11, 224, 51, 9, 11, 224, 52, 9, 11, 224, 53, 9, 11, 224, 54, + 9, 11, 224, 55, 9, 11, 224, 56, 9, 11, 224, 57, 9, 11, 224, 58, 9, 11, + 224, 59, 9, 11, 224, 60, 9, 11, 224, 61, 9, 11, 224, 62, 9, 11, 224, 63, + 9, 11, 224, 64, 9, 11, 224, 65, 9, 11, 224, 66, 9, 11, 224, 67, 9, 11, + 224, 68, 9, 11, 224, 69, 9, 11, 224, 70, 9, 11, 224, 71, 9, 11, 224, 72, + 9, 11, 224, 73, 9, 11, 224, 74, 9, 11, 224, 75, 9, 11, 224, 76, 9, 11, + 224, 77, 9, 11, 224, 78, 9, 11, 224, 79, 9, 11, 224, 80, 9, 11, 224, 81, + 9, 11, 224, 82, 9, 11, 224, 83, 9, 11, 224, 84, 9, 11, 224, 85, 9, 11, + 224, 86, 9, 11, 224, 87, 9, 11, 224, 88, 9, 11, 224, 89, 9, 11, 224, 90, + 9, 11, 224, 91, 9, 11, 224, 92, 9, 11, 224, 93, 9, 11, 224, 94, 9, 11, + 224, 95, 9, 11, 224, 96, 9, 11, 224, 97, 9, 11, 224, 98, 9, 11, 224, 99, + 9, 11, 224, 100, 9, 11, 224, 101, 9, 11, 224, 102, 9, 11, 224, 103, 9, + 11, 224, 104, 9, 11, 224, 105, 9, 11, 224, 106, 9, 11, 224, 107, 9, 11, + 224, 108, 9, 11, 224, 109, 9, 11, 224, 110, 9, 11, 224, 111, 9, 11, 224, + 112, 9, 11, 224, 113, 9, 11, 224, 114, 9, 11, 224, 115, 9, 11, 224, 116, + 9, 11, 224, 117, 9, 11, 224, 118, 9, 11, 224, 119, 9, 11, 224, 120, 9, + 11, 224, 121, 9, 11, 224, 122, 9, 11, 224, 123, 9, 11, 224, 124, 9, 11, + 224, 125, 9, 11, 224, 126, 9, 11, 224, 127, 9, 11, 224, 128, 9, 11, 224, + 129, 9, 11, 224, 130, 9, 11, 224, 131, 9, 11, 224, 132, 9, 11, 224, 133, + 9, 11, 224, 134, 9, 11, 224, 135, 9, 11, 224, 136, 9, 11, 224, 137, 9, + 11, 224, 138, 9, 11, 224, 139, 9, 11, 224, 140, 9, 11, 224, 141, 9, 11, + 224, 142, 9, 11, 224, 143, 9, 11, 224, 144, 9, 11, 224, 145, 9, 11, 224, + 146, 9, 11, 224, 147, 9, 11, 224, 148, 9, 11, 224, 149, 9, 11, 224, 150, + 9, 11, 224, 151, 9, 11, 224, 152, 9, 11, 224, 153, 9, 11, 224, 154, 9, + 11, 224, 155, 9, 11, 224, 156, 9, 11, 224, 157, 9, 11, 224, 158, 9, 11, + 224, 159, 9, 11, 224, 160, 9, 11, 224, 161, 9, 11, 224, 162, 9, 11, 224, + 163, 9, 11, 224, 164, 9, 11, 224, 165, 9, 11, 224, 166, 9, 11, 224, 167, + 9, 11, 224, 168, 9, 11, 224, 169, 9, 11, 224, 170, 9, 11, 224, 171, 9, + 11, 224, 172, 9, 11, 224, 173, 9, 11, 224, 174, 9, 11, 224, 175, 9, 11, + 224, 176, 9, 11, 224, 177, 9, 11, 224, 178, 9, 11, 224, 179, 9, 11, 224, + 180, 9, 11, 224, 181, 9, 11, 224, 182, 9, 11, 224, 183, 9, 11, 224, 184, + 9, 11, 224, 185, 9, 11, 224, 186, 9, 11, 224, 187, 9, 11, 224, 188, 9, + 11, 224, 189, 9, 11, 224, 190, 9, 11, 224, 191, 9, 11, 224, 192, 9, 11, + 224, 193, 9, 11, 224, 194, 9, 11, 224, 195, 9, 11, 224, 196, 9, 11, 224, + 197, 9, 11, 224, 198, 9, 11, 224, 199, 9, 11, 224, 200, 9, 11, 224, 201, + 9, 11, 224, 202, 9, 11, 224, 203, 9, 11, 224, 204, 9, 11, 224, 205, 9, + 11, 224, 206, 9, 11, 224, 207, 9, 11, 224, 208, 9, 11, 224, 209, 9, 11, + 224, 210, 9, 11, 224, 211, 9, 11, 224, 212, 9, 11, 224, 213, 9, 11, 224, + 214, 9, 11, 224, 215, 9, 11, 224, 216, 9, 11, 224, 217, 9, 11, 224, 218, + 9, 11, 224, 219, 9, 11, 224, 220, 9, 11, 224, 221, 9, 11, 224, 222, 9, + 11, 224, 223, 9, 11, 224, 224, 9, 11, 224, 225, 9, 11, 224, 226, 9, 11, + 224, 227, 9, 11, 224, 228, 9, 11, 224, 229, 9, 11, 224, 230, 9, 11, 224, + 231, 9, 11, 224, 232, 9, 11, 224, 233, 9, 11, 224, 234, 9, 11, 224, 235, + 9, 11, 224, 236, 9, 11, 224, 237, 9, 11, 224, 238, 9, 11, 224, 239, 9, + 11, 224, 240, 9, 11, 224, 241, 9, 11, 224, 242, 9, 11, 224, 243, 9, 11, + 224, 244, 9, 11, 224, 245, 9, 11, 224, 246, 9, 11, 224, 247, 9, 11, 224, + 248, 9, 11, 224, 249, 9, 11, 224, 250, 9, 11, 224, 251, 9, 11, 224, 252, + 9, 11, 224, 253, 9, 11, 224, 254, 9, 11, 224, 255, 9, 11, 225, 0, 9, 11, + 225, 1, 9, 11, 225, 2, 9, 11, 225, 3, 9, 11, 225, 4, 9, 11, 225, 5, 9, + 11, 225, 6, 9, 11, 225, 7, 9, 11, 225, 8, 9, 11, 225, 9, 9, 11, 225, 10, + 9, 11, 225, 11, 9, 11, 225, 12, 9, 11, 225, 13, 9, 11, 225, 14, 9, 11, + 225, 15, 9, 11, 225, 16, 9, 11, 225, 17, 9, 11, 225, 18, 9, 11, 225, 19, + 9, 11, 225, 20, 9, 11, 225, 21, 9, 11, 225, 22, 9, 11, 225, 23, 9, 11, + 225, 24, 9, 11, 225, 25, 9, 11, 225, 26, 9, 11, 225, 27, 9, 11, 225, 28, + 9, 11, 225, 29, 9, 11, 225, 30, 9, 11, 225, 31, 9, 11, 225, 32, 9, 11, + 225, 33, 9, 11, 225, 34, 9, 11, 225, 35, 9, 11, 225, 36, 9, 11, 225, 37, + 9, 11, 225, 38, 9, 11, 225, 39, 9, 11, 225, 40, 9, 11, 225, 41, 9, 11, + 225, 42, 9, 11, 225, 43, 9, 11, 225, 44, 9, 11, 225, 45, 9, 11, 225, 46, + 9, 11, 225, 47, 9, 11, 225, 48, 9, 11, 225, 49, 9, 11, 225, 50, 9, 11, + 225, 51, 9, 11, 225, 52, 9, 11, 225, 53, 9, 11, 225, 54, 9, 11, 225, 55, + 9, 11, 225, 56, 9, 11, 225, 57, 9, 11, 225, 58, 9, 11, 225, 59, 9, 11, + 225, 60, 9, 11, 225, 61, 9, 11, 225, 62, 9, 11, 225, 63, 9, 11, 225, 64, + 9, 11, 225, 65, 9, 11, 225, 66, 9, 11, 225, 67, 9, 11, 225, 68, 9, 11, + 225, 69, 9, 11, 225, 70, 9, 11, 225, 71, 9, 11, 225, 72, 9, 11, 225, 73, + 9, 11, 225, 74, 9, 11, 225, 75, 9, 11, 225, 76, 9, 11, 225, 77, 9, 11, + 225, 78, 9, 11, 225, 79, 9, 11, 225, 80, 9, 11, 225, 81, 9, 11, 225, 82, + 9, 11, 225, 83, 9, 11, 225, 84, 9, 11, 225, 85, 9, 11, 225, 86, 9, 11, + 225, 87, 9, 11, 225, 88, 9, 11, 225, 89, 9, 11, 225, 90, 9, 11, 225, 91, + 9, 11, 225, 92, 234, 144, 247, 105, 108, 237, 69, 108, 229, 165, 76, 108, + 231, 199, 76, 108, 65, 53, 108, 237, 179, 53, 108, 235, 86, 53, 108, 230, + 142, 108, 229, 172, 108, 42, 228, 180, 108, 41, 228, 180, 108, 231, 198, + 108, 79, 53, 108, 237, 67, 108, 227, 193, 108, 246, 162, 240, 121, 108, + 233, 104, 108, 21, 240, 126, 108, 21, 118, 108, 21, 113, 108, 21, 166, + 108, 21, 158, 108, 21, 173, 108, 21, 183, 108, 21, 194, 108, 21, 187, + 108, 21, 192, 108, 237, 66, 108, 230, 140, 108, 231, 190, 53, 108, 237, + 51, 53, 108, 228, 175, 53, 108, 233, 82, 76, 108, 230, 145, 253, 113, + 108, 7, 6, 1, 57, 108, 7, 6, 1, 254, 185, 108, 7, 6, 1, 254, 194, 108, 7, + 6, 1, 222, 222, 108, 7, 6, 1, 72, 108, 7, 6, 1, 254, 191, 108, 7, 6, 1, + 214, 108, 7, 6, 1, 212, 108, 7, 6, 1, 74, 108, 7, 6, 1, 254, 192, 108, 7, + 6, 1, 254, 186, 108, 7, 6, 1, 149, 108, 7, 6, 1, 185, 108, 7, 6, 1, 199, + 108, 7, 6, 1, 73, 108, 7, 6, 1, 254, 187, 108, 7, 6, 1, 254, 196, 108, 7, + 6, 1, 146, 108, 7, 6, 1, 193, 108, 7, 6, 1, 254, 183, 108, 7, 6, 1, 66, + 108, 7, 6, 1, 196, 108, 7, 6, 1, 254, 195, 108, 7, 6, 1, 254, 184, 108, + 7, 6, 1, 254, 190, 108, 7, 6, 1, 254, 193, 108, 42, 37, 104, 108, 235, + 37, 233, 104, 108, 41, 37, 104, 108, 230, 125, 235, 24, 108, 184, 240, + 138, 108, 240, 163, 235, 24, 108, 7, 3, 1, 57, 108, 7, 3, 1, 254, 185, + 108, 7, 3, 1, 254, 194, 108, 7, 3, 1, 222, 222, 108, 7, 3, 1, 72, 108, 7, + 3, 1, 254, 191, 108, 7, 3, 1, 214, 108, 7, 3, 1, 212, 108, 7, 3, 1, 74, + 108, 7, 3, 1, 254, 192, 108, 7, 3, 1, 254, 186, 108, 7, 3, 1, 149, 108, + 7, 3, 1, 185, 108, 7, 3, 1, 199, 108, 7, 3, 1, 73, 108, 7, 3, 1, 254, + 187, 108, 7, 3, 1, 254, 196, 108, 7, 3, 1, 146, 108, 7, 3, 1, 193, 108, + 7, 3, 1, 254, 183, 108, 7, 3, 1, 66, 108, 7, 3, 1, 196, 108, 7, 3, 1, + 254, 195, 108, 7, 3, 1, 254, 184, 108, 7, 3, 1, 254, 190, 108, 7, 3, 1, + 254, 193, 108, 42, 240, 137, 104, 108, 61, 240, 138, 108, 41, 240, 137, + 104, 108, 205, 238, 137, 247, 105, 38, 229, 66, 38, 229, 67, 38, 229, 68, + 38, 229, 69, 38, 229, 70, 38, 229, 71, 38, 229, 72, 38, 229, 73, 38, 229, + 74, 38, 229, 75, 38, 229, 76, 38, 229, 77, 38, 229, 78, 38, 229, 79, 38, + 229, 80, 38, 229, 81, 38, 229, 82, 38, 229, 83, 38, 229, 84, 38, 229, 85, + 38, 229, 86, 38, 229, 87, 38, 229, 88, 38, 229, 89, 38, 229, 90, 38, 229, + 91, 38, 229, 92, 38, 229, 93, 38, 229, 94, 38, 229, 95, 38, 229, 96, 38, + 229, 97, 38, 229, 98, 38, 229, 99, 38, 229, 100, 38, 229, 101, 38, 229, + 102, 38, 229, 103, 38, 229, 104, 38, 229, 105, 38, 229, 106, 38, 229, + 107, 38, 229, 108, 38, 229, 109, 38, 229, 110, 38, 229, 111, 38, 229, + 112, 38, 229, 113, 38, 229, 114, 38, 229, 115, 38, 229, 116, 38, 229, + 117, 38, 229, 118, 38, 229, 119, 38, 229, 120, 38, 229, 121, 38, 229, + 122, 38, 229, 123, 38, 229, 124, 38, 229, 125, 38, 229, 126, 38, 229, + 127, 38, 229, 128, 38, 229, 129, 38, 229, 130, 38, 229, 131, 38, 229, + 132, 38, 229, 133, 38, 229, 134, 38, 229, 135, 38, 229, 136, 38, 229, + 137, 38, 229, 138, 38, 229, 139, 38, 229, 140, 38, 229, 141, 38, 229, + 142, 38, 229, 143, 38, 229, 144, 38, 229, 145, 38, 229, 146, 38, 229, + 147, 38, 229, 148, 38, 228, 3, 38, 228, 4, 38, 228, 5, 38, 228, 6, 38, + 228, 7, 38, 228, 8, 38, 228, 9, 38, 228, 10, 38, 228, 11, 38, 228, 12, + 38, 228, 13, 38, 228, 14, 38, 228, 15, 38, 228, 16, 38, 228, 17, 38, 228, + 18, 38, 228, 19, 38, 228, 20, 38, 228, 21, 38, 228, 22, 38, 228, 23, 38, + 228, 24, 38, 228, 25, 38, 228, 26, 38, 228, 27, 38, 228, 28, 38, 228, 29, + 38, 228, 30, 38, 228, 31, 38, 228, 32, 38, 228, 33, 38, 228, 34, 38, 228, + 35, 38, 228, 36, 38, 228, 37, 38, 228, 38, 38, 228, 39, 38, 228, 40, 38, + 228, 41, 38, 228, 42, 38, 228, 43, 38, 228, 44, 38, 228, 45, 38, 228, 46, + 38, 228, 47, 38, 228, 48, 38, 228, 49, 38, 228, 50, 38, 228, 51, 38, 228, + 52, 38, 228, 53, 38, 228, 54, 38, 228, 55, 38, 228, 56, 38, 228, 57, 38, + 228, 58, 38, 228, 59, 38, 228, 60, 38, 228, 61, 38, 228, 62, 38, 228, 63, + 38, 228, 64, 38, 228, 65, 38, 228, 66, 38, 228, 67, 38, 228, 68, 38, 228, + 69, 38, 228, 70, 38, 228, 71, 38, 228, 72, 38, 228, 73, 38, 228, 74, 38, + 228, 75, 38, 228, 76, 38, 228, 77, 38, 228, 78, 38, 228, 79, 38, 228, 80, + 38, 228, 81, 38, 228, 82, 38, 228, 83, 38, 228, 84, 38, 228, 85, 38, 228, + 86, 38, 228, 87, 38, 228, 88, 38, 228, 89, 38, 228, 90, 38, 228, 91, 38, + 228, 92, 38, 228, 93, 38, 228, 94, 38, 228, 95, 38, 228, 96, 38, 228, 97, + 38, 228, 98, 38, 228, 99, 38, 228, 100, 38, 228, 101, 38, 228, 102, 38, + 228, 103, 38, 228, 104, 38, 228, 105, 38, 228, 106, 38, 228, 107, 38, + 228, 108, 38, 228, 109, 38, 228, 110, 38, 228, 111, 38, 228, 112, 38, + 228, 113, 38, 228, 114, 38, 228, 115, 38, 228, 116, 38, 228, 117, 38, + 228, 118, 38, 228, 119, 38, 228, 120, 38, 228, 121, 38, 228, 122, 38, + 228, 123, 38, 228, 124, 38, 228, 125, 38, 228, 126, 38, 228, 127, 38, + 228, 128, 38, 228, 129, 38, 228, 130, 38, 228, 131, 38, 228, 132, 38, + 228, 133, 38, 228, 134, 38, 228, 135, 38, 228, 136, 38, 228, 137, 38, + 228, 138, 38, 228, 139, 38, 228, 140, 38, 228, 141, 38, 228, 142, 38, + 228, 143, 38, 228, 144, 38, 228, 145, 38, 228, 146, 38, 228, 147, 38, + 228, 148, 38, 228, 149, 38, 228, 150, 38, 228, 151, 38, 228, 152, 38, + 228, 153, 38, 228, 154, 38, 228, 155, 38, 228, 156, 38, 228, 157, 38, + 228, 158, 38, 228, 159, }; static unsigned char phrasebook_offset1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 16, 16, 16, 16, - 16, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 16, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 16, 16, 16, 16, 16, 16, 16, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 16, 52, 53, 54, + 16, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 16, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 97, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 100, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8791,8 +10344,8 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 16, 16, 16, 16, 108, 16, 109, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 16, 120, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8801,11 +10354,12 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 16, 16, 128, - 129, 130, 131, 16, 16, 16, 16, 16, 16, 132, 16, 16, 16, 133, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 16, + 139, 140, 141, 142, 143, 16, 16, 16, 16, 16, 16, 144, 16, 145, 16, 146, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 147, 148, 149, 150, 151, 152, 153, 16, 154, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8825,9 +10379,10 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 134, 135, 136, - 137, 138, 16, 139, 16, 140, 141, 142, 143, 144, 145, 146, 147, 16, 16, + 16, 155, 156, 157, 158, 159, 16, 160, 16, 161, 162, 163, 164, 165, 166, + 167, 168, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 169, 170, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8857,9 +10412,8 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 171, 172, 173, 174, 175, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 148, 149, - 150, 151, 152, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -9171,8 +10725,9 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 176, + 16, 177, 178, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 153, 16, 154, 155, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -9256,3288 +10811,4427 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, + 16, 16, 16, 16, 16, }; static unsigned int phrasebook_offset2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 6, 9, 11, 14, 17, 19, 21, 24, 27, 29, 32, - 34, 36, 39, 41, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 69, 72, - 75, 78, 82, 86, 90, 95, 99, 103, 108, 112, 116, 120, 124, 129, 133, 137, - 141, 145, 149, 154, 158, 162, 166, 170, 174, 179, 183, 188, 193, 196, - 200, 203, 206, 209, 213, 217, 221, 226, 230, 234, 239, 243, 247, 251, - 255, 260, 264, 268, 272, 276, 280, 285, 289, 293, 297, 301, 305, 310, - 314, 319, 324, 328, 331, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 340, 345, - 348, 351, 354, 357, 360, 363, 364, 367, 373, 380, 382, 386, 389, 390, - 393, 396, 399, 402, 406, 409, 412, 416, 418, 421, 427, 434, 442, 450, - 457, 462, 468, 474, 481, 487, 493, 501, 506, 514, 520, 526, 533, 539, - 545, 551, 558, 564, 569, 576, 582, 588, 595, 601, 607, 610, 616, 622, - 628, 635, 641, 648, 653, 659, 665, 671, 678, 684, 690, 698, 703, 711, - 717, 723, 730, 736, 742, 748, 755, 761, 766, 773, 779, 785, 792, 798, - 804, 807, 813, 819, 825, 832, 838, 845, 850, 857, 863, 869, 876, 883, - 890, 897, 904, 911, 919, 927, 935, 943, 951, 959, 967, 975, 982, 989, - 995, 1001, 1008, 1015, 1022, 1029, 1036, 1043, 1050, 1057, 1065, 1073, - 1081, 1089, 1097, 1105, 1113, 1121, 1129, 1137, 1144, 1151, 1157, 1163, - 1169, 1175, 1182, 1189, 1196, 1203, 1210, 1216, 1221, 1226, 1234, 1242, - 1250, 1258, 1263, 1270, 1277, 1285, 1293, 1301, 1309, 1319, 1329, 1336, - 1343, 1350, 1357, 1365, 1373, 1381, 1389, 1400, 1405, 1410, 1416, 1422, - 1429, 1436, 1443, 1450, 1455, 1460, 1467, 1474, 1482, 1490, 1498, 1506, - 1513, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576, 1584, 1592, 1600, - 1607, 1614, 1620, 1626, 1632, 1638, 1645, 1652, 1660, 1668, 1675, 1682, - 1689, 1696, 1704, 1712, 1720, 1728, 1735, 1742, 1749, 1757, 1765, 1773, - 1781, 1786, 1792, 1798, 1805, 1812, 1817, 1822, 1828, 1835, 1842, 1848, - 1855, 1863, 1871, 1877, 1882, 1887, 1893, 1900, 1907, 1914, 1919, 1924, - 1929, 1935, 1942, 1949, 1956, 1963, 1968, 1976, 1986, 1994, 2001, 2008, - 2013, 2018, 2025, 2032, 2036, 2041, 2046, 2051, 2058, 2067, 2074, 2081, - 2090, 2097, 2104, 2109, 2116, 2123, 2130, 2137, 2144, 2149, 2156, 2163, - 2171, 2176, 2181, 2186, 2196, 2200, 2206, 2212, 2218, 2224, 2232, 2245, - 2253, 2258, 2267, 2272, 2277, 2286, 2291, 2298, 2305, 2312, 2319, 2326, - 2333, 2340, 2347, 2356, 2365, 2374, 2383, 2393, 2403, 2412, 2421, 2426, - 2435, 2444, 2453, 2462, 2469, 2476, 2483, 2490, 2498, 2506, 2514, 2522, - 2529, 2536, 2545, 2554, 2562, 2570, 2578, 2583, 2593, 2598, 2605, 2612, - 2617, 2622, 2629, 2636, 2646, 2656, 2663, 2670, 2679, 2688, 2695, 2702, - 2711, 2720, 2727, 2734, 2743, 2752, 2759, 2766, 2775, 2784, 2791, 2798, - 2807, 2816, 2824, 2832, 2842, 2852, 2859, 2866, 2875, 2884, 2893, 2902, - 2911, 2920, 2925, 2930, 2938, 2946, 2956, 2964, 2969, 2974, 2981, 2988, - 2995, 3002, 3009, 3016, 3025, 3034, 3043, 3052, 3059, 3066, 3075, 3084, - 3091, 3098, 3106, 3114, 3122, 3128, 3135, 3142, 3148, 3155, 3162, 3169, - 3178, 3188, 3198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3204, 3209, - 3214, 3220, 3226, 3232, 3240, 3248, 3255, 3260, 3265, 3272, 3278, 3285, - 3294, 3303, 3312, 3319, 3324, 3329, 3334, 3341, 3346, 3353, 3360, 3366, - 3371, 3376, 3385, 3393, 3402, 3407, 3412, 3422, 3429, 3437, 3446, 3451, - 3457, 3463, 3470, 3475, 3480, 3490, 3498, 3507, 3515, 3523, 3532, 3537, - 3544, 3551, 3556, 3568, 3576, 3584, 3589, 3598, 3603, 3608, 3615, 3620, - 3626, 3632, 3638, 3647, 3655, 3660, 3668, 3673, 3681, 3688, 3694, 3700, - 3705, 3713, 3721, 3726, 3734, 3740, 3745, 3752, 3760, 3769, 3776, 3783, - 3793, 3800, 3807, 3817, 3824, 3831, 3838, 3844, 3850, 3859, 3871, 3875, - 3882, 3886, 3890, 3895, 3903, 3910, 3915, 3920, 3924, 3929, 3934, 3938, - 3943, 3949, 3955, 3960, 3966, 3971, 3976, 3981, 3986, 3991, 3993, 3998, - 4001, 4007, 4013, 4019, 4023, 4030, 4037, 4043, 4050, 4058, 4066, 4071, - 4076, 4081, 4086, 4088, 4090, 4093, 4095, 4097, 4102, 4107, 4113, 4118, - 4122, 4126, 4130, 4137, 4143, 4148, 4154, 4159, 4165, 4173, 4181, 4185, - 4189, 4194, 4200, 4206, 4212, 4218, 4223, 4231, 4240, 4249, 4253, 4259, - 4266, 4273, 4280, 4287, 4291, 4297, 4302, 4307, 4312, 4316, 4318, 4320, - 4323, 4326, 4329, 4331, 4335, 4339, 4345, 4348, 4353, 4359, 4365, 4368, - 4373, 4378, 4382, 4387, 4392, 4398, 4404, 4409, 4414, 4418, 4421, 4427, - 4432, 4437, 4442, 4447, 4453, 4459, 4462, 4466, 4470, 4474, 4477, 4480, - 4485, 4489, 4496, 4500, 4505, 4509, 4515, 4519, 4523, 4527, 4532, 4537, - 4544, 4550, 4557, 4563, 4569, 4575, 4578, 4582, 4586, 4589, 4593, 4598, - 4603, 4607, 4611, 4617, 4621, 4625, 4630, 4636, 4640, 4645, 4649, 4655, - 4660, 4665, 4670, 4675, 4681, 4684, 4688, 4693, 4698, 4707, 4713, 4717, - 4721, 4726, 4730, 4735, 4739, 4742, 4747, 4750, 4756, 4761, 4766, 4771, - 4776, 4781, 4786, 4792, 4797, 4802, 4807, 4812, 4817, 4822, 0, 0, 0, 0, - 4827, 4830, 0, 0, 0, 0, 4834, 0, 0, 0, 4837, 0, 0, 0, 0, 0, 4841, 4844, - 4849, 4856, 4861, 4869, 4877, 0, 4885, 0, 4893, 4901, 4908, 4919, 4924, - 4929, 4934, 4939, 4944, 4949, 4954, 4959, 4964, 4969, 4974, 4979, 4984, - 4989, 4994, 4999, 0, 5004, 5009, 5014, 5019, 5024, 5029, 5034, 5039, - 5047, 5055, 5062, 5070, 5078, 5086, 5097, 5102, 5107, 5112, 5117, 5122, - 5127, 5132, 5137, 5142, 5147, 5152, 5157, 5162, 5167, 5172, 5177, 5182, - 5188, 5193, 5198, 5203, 5208, 5213, 5218, 5223, 5231, 5239, 5247, 5255, - 0, 5262, 5266, 5270, 5277, 5287, 5297, 5301, 5305, 5309, 5315, 5322, - 5326, 5331, 5335, 5340, 5344, 5349, 5353, 5358, 5363, 5368, 5373, 5378, - 5383, 5388, 5393, 5398, 5403, 5408, 5413, 5418, 5423, 5428, 5432, 5436, - 5442, 5446, 5451, 5457, 5464, 5469, 5474, 5481, 5486, 5491, 5498, 5506, - 5515, 5525, 5532, 5537, 5542, 5547, 5554, 5559, 5565, 5570, 5575, 5580, - 5585, 5590, 5595, 5601, 5607, 5612, 5616, 5621, 5626, 5631, 5636, 5641, - 5646, 5651, 5655, 5661, 5665, 5670, 5675, 5680, 5684, 5689, 5694, 5699, - 5704, 5708, 5713, 5717, 5722, 5727, 5732, 5737, 5743, 5748, 5754, 5758, - 5763, 5767, 5771, 5776, 5781, 5786, 5791, 5796, 5801, 5806, 5810, 5816, - 5820, 5825, 5830, 5835, 5839, 5844, 5849, 5854, 5859, 5863, 5868, 5872, - 5877, 5882, 5887, 5892, 5898, 5903, 5909, 5913, 5918, 5922, 5929, 5934, - 5939, 5944, 5951, 5956, 5962, 5967, 5972, 5977, 5982, 5987, 5992, 5998, - 6004, 6009, 6014, 6019, 6024, 6029, 6035, 6041, 6048, 6055, 6064, 6073, - 6080, 6087, 6096, 6105, 6110, 6115, 6120, 6125, 6130, 6135, 6140, 6145, - 6156, 6167, 6172, 6177, 6184, 6191, 6198, 6205, 6210, 6215, 6220, 6225, - 6229, 6233, 6237, 6242, 0, 6247, 6254, 6259, 6268, 6277, 6283, 6289, - 6297, 6305, 6313, 6321, 6328, 6335, 6344, 6353, 6361, 6369, 6377, 6385, - 6393, 6401, 6409, 6417, 6424, 6431, 6437, 6443, 6451, 6459, 6466, 6473, - 6482, 6491, 6497, 6503, 6511, 6519, 6527, 6535, 6541, 6547, 6555, 6563, - 6571, 6579, 6586, 6593, 6601, 6609, 6617, 6625, 6630, 6635, 6642, 6649, - 6659, 6669, 6673, 6681, 6689, 6696, 6703, 6711, 6719, 6726, 6733, 6741, - 6749, 6756, 6763, 6771, 0, 6779, 6786, 6793, 6799, 6805, 6811, 6817, - 6825, 6833, 6838, 6843, 6850, 6857, 6864, 6871, 6878, 6885, 6892, 6899, - 6905, 6911, 6917, 6923, 6929, 6935, 6941, 6947, 6955, 6963, 6969, 6975, - 6981, 6987, 6993, 6999, 7006, 7013, 7020, 7027, 7035, 7043, 7050, 0, 0, - 0, 0, 0, 0, 7057, 7064, 7071, 7078, 7085, 7092, 7099, 7106, 7113, 7120, - 7127, 7134, 7141, 7148, 7155, 7162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7169, - 7174, 7179, 7184, 7189, 7194, 7199, 7204, 7209, 7213, 7218, 7223, 7228, - 7233, 7238, 7243, 7248, 7253, 7258, 7263, 7268, 7273, 7278, 7283, 7288, - 7293, 7298, 7303, 7308, 7313, 7318, 7323, 7328, 7333, 7338, 7343, 7348, - 7353, 0, 0, 7358, 7365, 7368, 7372, 7376, 7379, 7383, 0, 7387, 7392, - 7397, 7402, 7407, 7412, 7417, 7422, 7427, 7431, 7436, 7441, 7446, 7451, - 7456, 7461, 7466, 7471, 7476, 7481, 7486, 7491, 7496, 7501, 7506, 7511, - 7516, 7521, 7526, 7531, 7536, 7541, 7546, 7551, 7556, 7561, 7566, 7571, - 7576, 0, 7583, 7587, 0, 0, 0, 0, 0, 0, 7590, 7595, 7600, 7605, 7612, - 7619, 7624, 7629, 7634, 7639, 7644, 7649, 7654, 7661, 7666, 7673, 7680, - 7685, 7692, 7697, 7702, 7707, 7714, 7719, 7724, 7731, 7740, 7745, 7750, - 7755, 7760, 7766, 7771, 7778, 7785, 7792, 7797, 7802, 7807, 7812, 7817, - 0, 7822, 7827, 7835, 7840, 7845, 7850, 7855, 7862, 7869, 7876, 7881, - 7886, 7893, 0, 0, 0, 0, 0, 0, 0, 0, 7900, 7904, 7908, 7912, 7916, 7920, - 7924, 7928, 7932, 7936, 7940, 7945, 7949, 7953, 7958, 7962, 7967, 7971, - 7975, 7979, 7984, 7988, 7993, 7997, 8001, 8005, 8009, 0, 0, 0, 0, 0, - 8013, 8020, 8028, 8035, 8040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8045, - 8048, 8052, 8057, 0, 0, 0, 0, 0, 0, 0, 8061, 8064, 8067, 8072, 8078, - 8082, 8090, 8096, 8102, 8110, 8114, 0, 0, 0, 0, 0, 8119, 0, 0, 8122, - 8129, 0, 8133, 8137, 8144, 8150, 8157, 8163, 8169, 8173, 8177, 8183, - 8187, 8191, 8195, 8199, 8203, 8207, 8211, 8215, 8219, 8223, 8227, 8231, - 8235, 8239, 8243, 8247, 0, 0, 0, 0, 0, 8251, 8254, 8258, 8262, 8266, - 8270, 8274, 8278, 8282, 8286, 8291, 8295, 8298, 8301, 8304, 8307, 8310, - 8313, 8316, 8319, 8323, 8326, 8329, 8334, 8339, 8344, 8347, 8354, 8363, - 8368, 8372, 0, 8379, 8384, 8388, 8392, 8396, 8400, 8404, 8408, 8412, - 8416, 8420, 8424, 8429, 8434, 8441, 8447, 8453, 8459, 8464, 8472, 8480, - 8485, 8491, 8497, 8503, 8509, 8513, 8517, 8521, 8528, 8538, 8542, 8546, - 8550, 8556, 8564, 8568, 8572, 8579, 8583, 8587, 8591, 8598, 8605, 8617, - 8621, 8625, 8629, 8639, 8648, 8652, 8659, 8666, 8673, 8682, 8693, 8701, - 8705, 8714, 8725, 8733, 8746, 8754, 8762, 8770, 8778, 8784, 8793, 8800, - 8804, 8812, 8816, 8823, 8831, 8835, 8841, 8848, 8855, 8859, 8867, 8871, - 8878, 8882, 8890, 8894, 8902, 8908, 8914, 8921, 8928, 8934, 8939, 8943, - 8949, 8956, 8962, 8969, 8976, 8982, 8991, 8999, 9006, 9012, 9016, 9019, - 9023, 9029, 9037, 9041, 9047, 9053, 9059, 9066, 9069, 9076, 9081, 9089, - 9093, 9097, 9109, 9121, 9127, 9133, 9138, 9144, 9149, 9155, 9165, 9172, - 9181, 9191, 9197, 9202, 9207, 9211, 9215, 9220, 9225, 9231, 9238, 9245, - 9256, 9261, 9269, 9277, 9284, 9290, 9296, 9302, 9308, 9314, 9320, 9326, - 9332, 9338, 9345, 9352, 9359, 9365, 9373, 9381, 9387, 9393, 9399, 9404, - 9409, 9413, 9420, 9426, 9435, 9443, 9446, 9451, 9456, 0, 9461, 9465, - 9469, 9475, 9479, 9483, 9489, 9493, 9501, 9505, 9509, 9513, 9517, 9521, - 9527, 9531, 9537, 9541, 9545, 9549, 9553, 9557, 9562, 9565, 9569, 9574, - 9578, 9582, 9586, 9590, 9594, 9599, 9604, 9609, 9613, 9617, 9622, 9626, - 9630, 9635, 9639, 9643, 9650, 9657, 9661, 9665, 9670, 9674, 9678, 9681, - 9686, 9689, 9692, 9697, 9702, 9706, 9710, 9716, 9722, 9725, 0, 0, 9728, - 9734, 9740, 9746, 9756, 9768, 9780, 9797, 9809, 9820, 9827, 9834, 9845, - 9860, 9871, 9877, 9886, 9894, 9906, 9916, 9924, 9936, 9943, 9951, 9963, - 9969, 9975, 9982, 9989, 9995, 10000, 10010, 10017, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10027, 10031, 10035, 10039, 10043, - 10047, 10051, 10055, 10059, 10063, 10067, 10071, 10075, 10079, 10083, - 10087, 10091, 10095, 10099, 10103, 10107, 10111, 10115, 10119, 10123, - 10127, 10131, 10135, 10139, 10143, 10147, 10151, 10155, 10158, 10162, - 10166, 10170, 10174, 10178, 10181, 10184, 10187, 10190, 10193, 10196, - 10199, 10202, 10205, 10208, 10211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10215, 10219, 10223, 10227, 10232, 10235, 10239, 10242, 10246, - 10249, 10253, 10257, 10261, 10266, 10271, 10274, 10278, 10283, 10288, - 10291, 10295, 10298, 10302, 10306, 10310, 10314, 10318, 10322, 10326, - 10330, 10334, 10338, 10342, 10346, 10350, 10354, 10358, 10362, 10366, - 10370, 10374, 10378, 10382, 10386, 10390, 10394, 10397, 10400, 10404, - 10408, 10412, 10416, 10420, 10424, 10428, 10432, 10436, 0, 0, 10439, - 10443, 10447, 10452, 10456, 10461, 10465, 10470, 10475, 10481, 10487, - 10493, 10497, 10502, 10508, 10514, 10518, 10523, 0, 0, 10527, 10530, - 10536, 10542, 10547, 0, 0, 0, 10552, 10556, 10560, 10564, 10568, 10572, - 10576, 10580, 10584, 10589, 10594, 10599, 10605, 10608, 10612, 10616, - 10619, 10622, 10625, 10628, 10631, 10634, 10637, 10640, 10643, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10647, 0, 0, 0, 10652, 10656, 10660, 0, 10664, - 10667, 10671, 10674, 10678, 10681, 10685, 10689, 0, 0, 10693, 10696, 0, - 0, 10700, 10703, 10707, 10710, 10714, 10718, 10722, 10726, 10730, 10734, - 10738, 10742, 10746, 10750, 10754, 10758, 10762, 10766, 10770, 10774, - 10778, 10782, 0, 10786, 10790, 10794, 10798, 10802, 10805, 10808, 0, - 10812, 0, 0, 0, 10816, 10820, 10824, 10828, 0, 0, 10831, 10835, 10839, - 10844, 10848, 10853, 10857, 10862, 10867, 0, 0, 10873, 10877, 0, 0, - 10882, 10886, 10891, 10895, 0, 0, 0, 0, 0, 0, 0, 0, 10901, 0, 0, 0, 0, - 10907, 10911, 0, 10915, 10919, 10924, 10929, 10934, 0, 0, 10940, 10944, - 10947, 10950, 10953, 10956, 10959, 10962, 10965, 10968, 10971, 10980, - 10988, 10992, 10996, 11002, 11008, 11014, 11020, 11035, 11042, 0, 0, 0, - 0, 0, 0, 11045, 11051, 11055, 0, 11059, 11062, 11066, 11069, 11073, - 11076, 0, 0, 0, 0, 11080, 11084, 0, 0, 11088, 11092, 11096, 11099, 11103, - 11107, 11111, 11115, 11119, 11123, 11127, 11131, 11135, 11139, 11143, - 11147, 11151, 11155, 11159, 11163, 11167, 11171, 0, 11175, 11179, 11183, - 11187, 11191, 11194, 11197, 0, 11201, 11205, 0, 11209, 11213, 0, 11217, - 11221, 0, 0, 11224, 0, 11228, 11233, 11237, 11242, 11246, 0, 0, 0, 0, - 11251, 11256, 0, 0, 11261, 11266, 11271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11275, 11279, 11283, 11287, 0, 11291, 0, 0, 0, 0, 0, 0, 0, 11295, 11299, - 11302, 11305, 11308, 11311, 11314, 11317, 11320, 11323, 11326, 11329, - 11332, 11335, 11338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11343, 11347, - 11351, 0, 11355, 11358, 11362, 11365, 11369, 11372, 11376, 11380, 11384, - 0, 11389, 11392, 11396, 0, 11401, 11404, 11408, 11411, 11415, 11419, - 11423, 11427, 11431, 11435, 11439, 11443, 11447, 11451, 11455, 11459, - 11463, 11467, 11471, 11475, 11479, 11483, 0, 11487, 11491, 11495, 11499, - 11503, 11506, 11509, 0, 11513, 11517, 0, 11521, 11525, 11529, 11533, - 11537, 0, 0, 11540, 11544, 11548, 11553, 11557, 11562, 11566, 11571, - 11576, 11582, 0, 11588, 11592, 11597, 0, 11603, 11607, 11612, 0, 0, - 11616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11619, 11624, 11629, - 11634, 0, 0, 11640, 11644, 11647, 11650, 11653, 11656, 11659, 11662, - 11665, 11668, 0, 11671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11675, 11679, 11683, 0, 11687, 11690, 11694, 11697, 11701, 11704, 11708, - 11712, 0, 0, 11716, 11719, 0, 0, 11723, 11726, 11730, 11733, 11737, - 11741, 11745, 11749, 11753, 11757, 11761, 11765, 11769, 11773, 11777, - 11781, 11785, 11789, 11793, 11797, 11801, 11805, 0, 11809, 11813, 11817, - 11821, 11825, 11828, 11831, 0, 11835, 11839, 0, 11843, 11847, 11851, - 11855, 11859, 0, 0, 11862, 11866, 11870, 11875, 11879, 11884, 11888, - 11893, 0, 0, 0, 11898, 11902, 0, 0, 11907, 11911, 11916, 0, 0, 0, 0, 0, - 0, 0, 0, 11920, 11926, 0, 0, 0, 0, 11932, 11936, 0, 11940, 11944, 11949, - 0, 0, 0, 0, 11954, 11958, 11961, 11964, 11967, 11970, 11973, 11976, - 11979, 11982, 11985, 11988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11992, 11996, 0, 12000, 12003, 12007, 12010, 12014, 12017, 0, 0, 0, - 12021, 12024, 12028, 0, 12032, 12035, 12039, 12043, 0, 0, 0, 12046, - 12050, 0, 12054, 0, 12058, 12062, 0, 0, 0, 12066, 12070, 0, 0, 0, 12074, - 12078, 12082, 0, 0, 0, 12086, 12089, 12092, 12096, 12100, 12104, 12108, - 12112, 12116, 12120, 12124, 12128, 0, 0, 0, 0, 12131, 12136, 12140, - 12145, 12149, 0, 0, 0, 12154, 12158, 12163, 0, 12168, 12172, 12177, - 12182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12192, 12196, 12199, 12202, 12205, 12208, 12211, 12214, 12217, - 12220, 12223, 12227, 12233, 12239, 12243, 12247, 12251, 12255, 12259, - 12264, 12268, 0, 0, 0, 0, 0, 0, 12271, 12275, 12279, 0, 12283, 12286, - 12290, 12293, 12297, 12300, 12304, 12308, 0, 12312, 12315, 12319, 0, - 12323, 12326, 12330, 12334, 12337, 12341, 12345, 12349, 12353, 12357, - 12361, 12365, 12369, 12373, 12377, 12381, 12385, 12389, 12393, 12397, - 12401, 12405, 12409, 0, 12413, 12417, 12421, 12425, 12429, 12432, 12435, - 12439, 12443, 12447, 0, 12451, 12455, 12459, 12463, 12467, 0, 0, 0, 0, - 12470, 12475, 12479, 12484, 12488, 12493, 12498, 0, 12504, 12508, 12513, - 0, 12518, 12522, 12527, 12532, 0, 0, 0, 0, 0, 0, 0, 12536, 12540, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12546, 12551, 0, 0, 0, 0, 12556, 12560, 12563, - 12566, 12569, 12572, 12575, 12578, 12581, 12584, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12587, 12591, 0, 12595, 12598, 12602, - 12605, 12609, 12612, 12616, 12620, 0, 12624, 12627, 12631, 0, 12635, - 12638, 12642, 12646, 12649, 12653, 12657, 12661, 12665, 12669, 12673, - 12677, 12681, 12685, 12689, 12693, 12697, 12701, 12705, 12709, 12713, - 12717, 12721, 0, 12725, 12729, 12733, 12737, 12741, 12744, 12747, 12751, - 12755, 12759, 0, 12763, 12767, 12771, 12775, 12779, 0, 0, 12782, 12786, - 12790, 12795, 12799, 12804, 12808, 12813, 12818, 0, 12824, 12828, 12833, - 0, 12838, 12842, 12847, 12852, 0, 0, 0, 0, 0, 0, 0, 12856, 12860, 0, 0, - 0, 0, 0, 0, 0, 12866, 0, 12870, 12875, 0, 0, 0, 0, 12880, 12884, 12887, - 12890, 12893, 12896, 12899, 12902, 12905, 12908, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12911, 12915, 0, 12919, 12922, 12926, - 12929, 12933, 12936, 12940, 12944, 0, 12948, 12951, 12955, 0, 12959, - 12962, 12966, 12970, 12973, 12977, 12981, 12985, 12989, 12993, 12997, - 13001, 13005, 13009, 13013, 13017, 13021, 13025, 13029, 13033, 13037, - 13041, 13045, 0, 13049, 13053, 13057, 13061, 13065, 13068, 13071, 13075, - 13079, 13083, 13087, 13091, 13095, 13099, 13103, 13107, 0, 0, 0, 0, - 13110, 13115, 13119, 13124, 13128, 13133, 0, 0, 13138, 13142, 13147, 0, - 13152, 13156, 13161, 13166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13170, 0, 0, 0, 0, - 0, 0, 0, 0, 13176, 13181, 0, 0, 0, 0, 13186, 13190, 13193, 13196, 13199, - 13202, 13205, 13208, 13211, 13214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13217, 13221, 0, 13225, 13229, 13233, 13237, 13241, 13245, - 13249, 13253, 13257, 13261, 13265, 13269, 13273, 13277, 13281, 13285, - 13289, 13293, 0, 0, 0, 13297, 13303, 13309, 13315, 13321, 13327, 13333, - 13339, 13345, 13351, 13357, 13363, 13371, 13377, 13383, 13389, 13395, - 13401, 13407, 13413, 13419, 13425, 13431, 13437, 0, 13443, 13449, 13455, - 13461, 13467, 13473, 13477, 13483, 13487, 0, 13491, 0, 0, 13497, 13501, - 13507, 13513, 13519, 13523, 13529, 0, 0, 0, 13533, 0, 0, 0, 0, 13537, - 13542, 13549, 13556, 13563, 13570, 0, 13577, 0, 13584, 13589, 13594, - 13601, 13608, 13617, 13628, 13637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13642, 13649, 13656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13661, 13667, 13673, 13679, 13685, 13691, 13697, 13703, 13709, 13715, - 13721, 13727, 13733, 13739, 13745, 13750, 13756, 13762, 13768, 13774, - 13780, 13785, 13791, 13797, 13803, 13809, 13815, 13821, 13827, 13833, - 13839, 13845, 13851, 13856, 13862, 13868, 13872, 13878, 13882, 13888, - 13894, 13900, 13906, 13912, 13918, 13923, 13929, 13933, 13938, 13944, - 13950, 13956, 13961, 13967, 13973, 13979, 13984, 13990, 0, 0, 0, 0, - 13994, 14000, 14005, 14011, 14016, 14024, 14032, 14036, 14040, 14044, - 14050, 14056, 14062, 14068, 14072, 14076, 14080, 14084, 14088, 14091, - 14094, 14097, 14100, 14103, 14106, 14109, 14112, 14115, 14119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14123, 14127, 0, 14133, 0, 0, 14139, 14143, - 0, 14147, 0, 0, 14153, 0, 0, 0, 0, 0, 0, 14157, 14161, 14164, 14170, 0, - 14176, 14180, 14184, 14188, 14194, 14200, 14206, 0, 14212, 14216, 14220, - 0, 14226, 0, 14232, 0, 0, 14236, 14242, 0, 14248, 14251, 14257, 14260, - 14264, 14271, 14276, 14281, 14285, 14290, 14295, 14300, 14304, 0, 14309, - 14316, 14322, 0, 0, 14328, 14332, 14337, 14341, 14346, 0, 14351, 0, - 14356, 14362, 14368, 14374, 14380, 14384, 0, 0, 14387, 14391, 14394, - 14397, 14400, 14403, 14406, 14409, 14412, 14415, 0, 0, 14418, 14423, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14428, 14432, 14443, 14458, 14473, 14483, - 14494, 14507, 14518, 14524, 14532, 14542, 14548, 14556, 14560, 14566, - 14572, 14580, 14590, 14598, 14611, 14617, 14625, 14633, 14645, 14653, - 14661, 14669, 14677, 14685, 14693, 14701, 14711, 14715, 14718, 14721, - 14724, 14727, 14730, 14733, 14736, 14739, 14742, 14746, 14750, 14754, - 14758, 14762, 14766, 14770, 14774, 14778, 14783, 14789, 14799, 14813, - 14823, 14829, 14835, 14843, 14851, 14859, 14867, 14873, 14879, 14882, - 14886, 14890, 14894, 14898, 14902, 14906, 0, 14910, 14914, 14918, 14922, - 14926, 14930, 14934, 14938, 14942, 14946, 14950, 14954, 14958, 14962, - 14966, 14970, 14973, 14977, 14981, 14985, 14989, 14993, 14997, 15001, - 15005, 15008, 15012, 15016, 15020, 15024, 15028, 15031, 15034, 15038, 0, - 0, 0, 0, 0, 0, 15044, 15049, 15053, 15058, 15062, 15067, 15072, 15078, - 15083, 15089, 15093, 15098, 15102, 15107, 15117, 15123, 15128, 15134, - 15144, 15150, 15154, 15158, 15164, 15170, 15178, 15184, 15192, 0, 0, 0, - 0, 15200, 15204, 15209, 15214, 15219, 15224, 15229, 15234, 0, 15239, - 15244, 15249, 15254, 15259, 15264, 15269, 15274, 15279, 15284, 15289, - 15294, 15299, 15304, 15309, 15314, 15318, 15323, 15328, 15333, 15338, - 15343, 15348, 15353, 15358, 15362, 15367, 15372, 15377, 15382, 15387, - 15391, 15395, 15400, 15407, 15413, 0, 15420, 15427, 15440, 15447, 15454, - 15462, 15470, 15476, 15482, 15488, 15498, 15504, 15510, 15520, 15530, 0, - 0, 15540, 15548, 15560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15572, 15575, 15579, 15583, 15587, 15591, 15595, 15599, - 15603, 15607, 15611, 15615, 15619, 15623, 15627, 15631, 15635, 15639, - 15643, 15647, 15651, 15655, 15659, 15663, 15667, 15671, 15674, 15677, - 15681, 15685, 15689, 15693, 15696, 15700, 0, 15703, 15706, 15710, 15713, - 15717, 0, 15720, 15723, 0, 15727, 15732, 15736, 15741, 15745, 15750, - 15754, 0, 0, 0, 15759, 15763, 15767, 15771, 0, 0, 0, 0, 0, 0, 15775, - 15779, 15782, 15785, 15788, 15791, 15794, 15797, 15800, 15803, 15806, - 15812, 15816, 15820, 15824, 15828, 15832, 15836, 15840, 15844, 15849, - 15853, 15858, 15863, 15869, 15874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15880, 15885, 15890, 15895, 15900, 15905, - 15910, 15915, 15920, 15925, 15930, 15935, 15940, 15945, 15950, 15955, - 15960, 15965, 15970, 15975, 15980, 15985, 15990, 15995, 16000, 16005, - 16010, 16015, 16020, 16025, 16030, 16035, 16040, 16045, 16050, 16055, - 16060, 16065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16070, 16074, 16078, 16082, - 16086, 16090, 16094, 16098, 16102, 16106, 16110, 16114, 16118, 16122, - 16126, 16130, 16134, 16138, 16142, 16146, 16150, 16154, 16158, 16162, - 16166, 16170, 16174, 16178, 16182, 16186, 16190, 16194, 16198, 16202, - 16206, 16210, 16214, 16218, 16222, 16226, 16230, 16234, 16239, 16243, - 16248, 0, 0, 0, 16253, 16257, 16261, 16265, 16269, 16273, 16277, 16281, - 16285, 16289, 16293, 16297, 16301, 16305, 16309, 16313, 16317, 16321, - 16325, 16329, 16333, 16337, 16341, 16345, 16349, 16353, 16357, 16361, - 16365, 16369, 16373, 16377, 16381, 16385, 16389, 16393, 16397, 16401, - 16405, 16409, 16413, 16417, 16421, 16425, 16429, 16433, 16437, 16441, - 16445, 16449, 16453, 16457, 16461, 16465, 16469, 16473, 16477, 16481, - 16485, 16489, 16493, 16497, 16501, 16505, 16509, 16513, 16517, 16521, - 16525, 16529, 16533, 16537, 16541, 16545, 16549, 16553, 16557, 16561, - 16565, 16569, 16573, 16577, 16581, 16585, 16589, 16593, 16597, 16601, - 16605, 16609, 0, 0, 0, 0, 0, 16613, 16617, 16621, 16624, 16628, 16631, - 16635, 16639, 16642, 16646, 16650, 16653, 16657, 16661, 16665, 16669, - 16672, 16676, 16680, 16684, 16688, 16692, 16696, 16699, 16703, 16707, - 16711, 16715, 16719, 16723, 16727, 16731, 16735, 16739, 16743, 16747, - 16751, 16755, 16759, 16763, 16767, 16771, 16775, 16779, 16783, 16787, - 16791, 16795, 16799, 16803, 16807, 16811, 16815, 16819, 16823, 16827, - 16831, 16835, 16839, 16843, 16847, 16851, 16855, 16859, 16863, 16867, - 16871, 16875, 0, 0, 0, 0, 0, 16879, 16883, 16887, 16891, 16895, 16899, - 16903, 16907, 16911, 16915, 16919, 16923, 16927, 16931, 16935, 16939, - 16943, 16947, 16951, 16955, 16959, 16963, 16967, 16971, 16975, 16979, - 16983, 16987, 16991, 16995, 16999, 17003, 17007, 17011, 17015, 17019, - 17023, 17027, 17031, 17035, 17039, 17043, 17047, 17051, 17055, 17059, - 17063, 17067, 17071, 17075, 17079, 17083, 17087, 17091, 17095, 17099, - 17103, 17107, 17111, 17115, 17119, 17123, 17127, 17131, 17135, 17139, - 17143, 17147, 17151, 17155, 17159, 17163, 17167, 17171, 17175, 17179, - 17183, 17187, 17191, 17195, 17199, 17203, 0, 0, 0, 0, 0, 0, 17207, 17210, - 17214, 17218, 17222, 17226, 17230, 17234, 17238, 17242, 17246, 17250, - 17254, 17258, 17262, 17266, 17270, 17274, 17278, 17282, 17286, 17290, - 17294, 17298, 17302, 17305, 17309, 17313, 17317, 17321, 17325, 17329, - 17333, 17337, 17341, 17345, 17349, 17353, 17357, 17361, 17365, 17369, - 17373, 17377, 17381, 17385, 17389, 17393, 17397, 17401, 17405, 17409, - 17413, 17417, 17421, 17425, 17429, 17433, 17437, 17441, 17445, 17449, - 17453, 17457, 17461, 17465, 17469, 17473, 17477, 17481, 17485, 17489, - 17493, 0, 17497, 17501, 17505, 17509, 0, 0, 17513, 17517, 17521, 17525, - 17529, 17533, 17537, 0, 17541, 0, 17545, 17549, 17553, 17557, 0, 0, - 17561, 17565, 17569, 17573, 17577, 17581, 17585, 17589, 17593, 17597, - 17601, 17605, 17609, 17613, 17617, 17621, 17625, 17629, 17633, 17637, - 17641, 17645, 17649, 17652, 17656, 17660, 17664, 17668, 17672, 17676, - 17680, 17684, 17688, 17692, 17696, 17700, 17704, 17708, 17712, 17716, - 17720, 0, 17724, 17728, 17732, 17736, 0, 0, 17740, 17744, 17748, 17752, - 17756, 17760, 17764, 17768, 17772, 17776, 17780, 17784, 17788, 17792, - 17796, 17800, 17804, 17809, 17814, 17819, 17825, 17831, 17836, 17841, - 17847, 17850, 17854, 17858, 17862, 17866, 17870, 17874, 17878, 0, 17882, - 17886, 17890, 17894, 0, 0, 17898, 17902, 17906, 17910, 17914, 17918, - 17922, 0, 17926, 0, 17930, 17934, 17938, 17942, 0, 0, 17946, 17950, - 17954, 17958, 17962, 17966, 17970, 17974, 17978, 17983, 17988, 17993, - 17999, 18005, 18010, 0, 18015, 18019, 18023, 18027, 18031, 18035, 18039, - 18043, 18047, 18051, 18055, 18059, 18063, 18067, 18071, 18075, 18079, - 18082, 18086, 18090, 18094, 18098, 18102, 18106, 18110, 18114, 18118, - 18122, 18126, 18130, 18134, 18138, 18142, 18146, 18150, 18154, 18158, - 18162, 18166, 18170, 18174, 18178, 18182, 18186, 18190, 18194, 18198, - 18202, 18206, 18210, 18214, 18218, 18222, 18226, 18230, 18234, 18238, 0, - 18242, 18246, 18250, 18254, 0, 0, 18258, 18262, 18266, 18270, 18274, - 18278, 18282, 18286, 18290, 18294, 18298, 18302, 18306, 18310, 18314, - 18318, 18322, 18326, 18330, 18334, 18338, 18342, 18346, 18350, 18354, - 18358, 18362, 18366, 18370, 18374, 18378, 18382, 18386, 18390, 18394, - 18398, 18402, 18406, 18410, 18414, 18418, 18422, 18426, 18430, 18434, - 18438, 18442, 18446, 18450, 18454, 18458, 18462, 18466, 18470, 18474, - 18478, 18482, 18486, 18490, 18494, 18498, 18502, 18506, 18510, 18514, - 18518, 18522, 0, 0, 0, 0, 18526, 18531, 18535, 18538, 18542, 18545, - 18548, 18551, 18556, 18560, 18565, 18568, 18571, 18574, 18577, 18580, - 18583, 18586, 18589, 18592, 18596, 18600, 18604, 18608, 18612, 18616, - 18620, 18624, 18628, 18632, 0, 0, 0, 18638, 18644, 18648, 18652, 18656, - 18662, 18666, 18670, 18674, 18680, 18684, 18688, 18692, 18698, 18702, - 18706, 18710, 18716, 18722, 18728, 18736, 18742, 18748, 18754, 18760, - 18766, 0, 0, 0, 0, 0, 0, 18772, 18775, 18778, 18781, 18784, 18787, 18790, - 18794, 18797, 18801, 18805, 18809, 18813, 18817, 18820, 18824, 18828, - 18832, 18836, 18840, 18844, 18848, 18852, 18856, 18860, 18864, 18867, - 18871, 18875, 18879, 18883, 18887, 18891, 18895, 18899, 18903, 18907, - 18911, 18915, 18919, 18923, 18927, 18931, 18935, 18939, 18943, 18946, - 18950, 18954, 18958, 18962, 18966, 18970, 18974, 18978, 18982, 18986, - 18990, 18994, 18998, 19002, 19006, 19010, 19014, 19018, 19022, 19026, - 19030, 19034, 19038, 19042, 19046, 19050, 19054, 19058, 19062, 19066, - 19070, 19074, 19078, 19081, 19085, 19089, 19093, 19097, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 19101, 19104, 19108, 19111, 19115, 19118, 19122, 19128, - 19133, 19137, 19140, 19144, 19148, 19153, 19157, 19162, 19166, 19171, - 19175, 19180, 19184, 19189, 19195, 19199, 19204, 19208, 19213, 19219, - 19223, 19229, 19234, 19238, 19242, 19250, 19258, 19265, 19270, 19275, - 19284, 19291, 19298, 19303, 19309, 19313, 19317, 19321, 19325, 19329, - 19333, 19337, 19341, 19345, 19349, 19355, 19360, 19365, 19369, 19373, - 19377, 19382, 19386, 19391, 19395, 19400, 19404, 19409, 19413, 19418, - 19422, 19427, 19431, 19436, 19442, 19445, 19449, 19453, 19457, 19461, - 19465, 19469, 19472, 19476, 19482, 19487, 19492, 19496, 19500, 19504, - 19509, 19513, 19518, 19522, 19527, 19530, 19534, 19538, 19543, 19547, - 19552, 19556, 19561, 19567, 19570, 19574, 19578, 19582, 19586, 19590, - 19594, 19598, 19602, 19606, 19610, 19616, 19619, 19623, 19627, 19632, - 19636, 19641, 19645, 19650, 19654, 19659, 19663, 19668, 19672, 19677, - 19681, 19686, 19692, 19696, 19700, 19706, 19712, 19718, 19724, 19728, - 19732, 19736, 19740, 19744, 19748, 19754, 19758, 19762, 19766, 19771, - 19775, 19780, 19784, 19789, 19793, 19798, 19802, 19807, 19811, 19816, - 19820, 19825, 19831, 19835, 19841, 19845, 19849, 19853, 19857, 19861, - 19865, 19871, 19874, 19878, 19882, 19887, 19891, 19896, 19900, 19905, - 19909, 19914, 19918, 19923, 19927, 19932, 19936, 19941, 19947, 19950, - 19954, 19958, 19963, 19968, 19972, 19976, 19980, 19984, 19988, 19992, - 19998, 20002, 20006, 20010, 20015, 20019, 20024, 20028, 20033, 20039, - 20042, 20047, 20051, 20055, 20059, 20063, 20067, 20071, 20075, 20081, - 20085, 20089, 20093, 20098, 20102, 20107, 20111, 20116, 20120, 20125, - 20129, 20134, 20138, 20143, 20147, 20152, 20155, 20159, 20163, 20167, - 20171, 20175, 20179, 20183, 20187, 20193, 20197, 20201, 20205, 20210, - 20214, 20219, 20223, 20228, 20232, 20237, 20241, 20246, 20250, 20255, - 20259, 20264, 20270, 20273, 20278, 20282, 20287, 20293, 20299, 20305, - 20311, 20317, 20323, 20329, 20333, 20337, 20341, 20345, 20349, 20353, - 20357, 20361, 20366, 20370, 20375, 20379, 20384, 20388, 20393, 20397, - 20402, 20406, 20411, 20415, 20420, 20424, 20428, 20432, 20436, 20440, - 20444, 20448, 20454, 20457, 20461, 20465, 20470, 20474, 20479, 20483, - 20488, 20492, 20497, 20501, 20506, 20510, 20515, 20519, 20524, 20530, - 20534, 20540, 20545, 20551, 20555, 20561, 20566, 20570, 20574, 20578, - 20582, 20586, 20591, 20595, 20599, 20604, 20608, 20613, 20616, 20620, - 20624, 20628, 20632, 20636, 20640, 20644, 20648, 20652, 20656, 20660, - 20665, 20669, 20673, 20679, 20683, 20689, 20693, 20699, 20703, 20707, - 20711, 20715, 20719, 20724, 20728, 20732, 20736, 20740, 20744, 20748, - 20752, 20756, 20760, 20764, 20770, 20776, 20782, 20788, 20794, 20799, - 20805, 20810, 20815, 20819, 20823, 20827, 20831, 20835, 20839, 20843, - 20847, 20851, 20855, 20859, 20863, 20867, 20872, 20877, 20882, 20887, - 20891, 20895, 20899, 20903, 20907, 20911, 20915, 20919, 20923, 20929, - 20935, 20941, 20947, 20953, 20959, 20965, 20971, 20977, 20981, 20985, - 20989, 20993, 20997, 21001, 21005, 21011, 21017, 21023, 21029, 21035, - 21041, 21047, 21053, 21058, 21063, 21068, 21073, 21078, 21084, 21090, - 21096, 21102, 21108, 21114, 21120, 21126, 21132, 21138, 21144, 21149, - 21155, 21161, 21167, 21172, 21177, 21182, 21187, 21192, 21197, 21202, - 21207, 21212, 21217, 21222, 21227, 21232, 21237, 21242, 21247, 21252, - 21257, 21262, 21267, 21272, 21277, 21282, 21287, 21292, 21297, 21302, - 21307, 21312, 21317, 21322, 21327, 21332, 21337, 21342, 21347, 21352, - 21357, 21362, 21367, 21372, 21377, 21382, 21386, 21391, 21396, 21401, - 21406, 21411, 21416, 21421, 21426, 21431, 21436, 21441, 21446, 21451, - 21456, 21461, 21466, 21471, 21476, 21481, 21486, 21491, 21496, 21501, - 21506, 21511, 21516, 21521, 21526, 21531, 21536, 21540, 21545, 21550, - 21555, 21560, 21565, 21569, 21574, 21580, 21585, 21590, 21595, 21600, - 21606, 21611, 21616, 21621, 21626, 21631, 21636, 21641, 21646, 21651, - 21656, 21661, 21666, 21671, 21676, 21681, 21686, 21691, 21696, 21701, - 21706, 21711, 21716, 21721, 21726, 21731, 21736, 21741, 21746, 21751, - 21756, 21761, 21766, 21771, 21776, 21781, 21786, 21791, 21796, 21801, - 21806, 21811, 21816, 21821, 21826, 21832, 21837, 21842, 21847, 21852, - 21857, 21862, 21867, 21872, 21877, 21882, 21887, 21892, 21897, 21902, - 21907, 21912, 21917, 21922, 21927, 21932, 21937, 21942, 21947, 21952, - 21957, 21962, 21967, 21972, 21977, 21982, 21987, 21992, 21997, 22002, - 22007, 22012, 22017, 22022, 22027, 22031, 22035, 22039, 22043, 22047, - 22051, 22055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22059, 22064, 22069, 22074, - 22079, 22084, 22089, 22094, 22099, 22104, 22109, 22114, 22119, 22124, - 22129, 22134, 22139, 22144, 22149, 22154, 22159, 22164, 22169, 22174, - 22179, 22184, 22189, 22194, 22199, 0, 0, 0, 22205, 22215, 22218, 22225, - 22229, 22233, 22237, 22245, 22249, 22254, 22259, 22264, 22268, 22273, - 22278, 22281, 22285, 22289, 22298, 22302, 22306, 22312, 22315, 22319, - 22326, 22330, 22338, 22343, 22348, 22353, 22358, 22367, 22372, 22376, - 22385, 22388, 22393, 22397, 22403, 22408, 22414, 22421, 22427, 22432, - 22439, 22444, 22448, 22452, 22461, 22466, 22469, 22478, 22483, 22487, - 22491, 22498, 22505, 22510, 22515, 22524, 22528, 22532, 22536, 22543, - 22550, 22554, 22558, 22562, 22566, 22570, 22574, 22578, 22582, 22586, - 22590, 22593, 22598, 22603, 22608, 22612, 22616, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 22620, 22624, 22628, 22632, 22636, 22641, 22646, - 22651, 22656, 22661, 22666, 22671, 22675, 0, 22679, 22684, 22689, 22694, - 22698, 22703, 22708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22713, 22717, - 22721, 22725, 22729, 22734, 22739, 22744, 22749, 22754, 22759, 22764, - 22768, 22772, 22777, 22782, 22787, 22792, 22796, 22801, 22806, 22811, - 22817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22822, 22826, 22830, 22834, 22838, - 22843, 22848, 22853, 22858, 22863, 22868, 22873, 22877, 22881, 22886, - 22891, 22896, 22901, 22905, 22910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 22915, 22919, 22923, 22927, 22931, 22936, 22941, 22946, 22951, 22956, - 22961, 22966, 22970, 0, 22974, 22979, 22984, 0, 22989, 22994, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22999, 23002, 23006, 23010, 23014, 23018, 23022, - 23026, 23030, 23034, 23038, 23042, 23046, 23050, 23054, 23058, 23062, - 23066, 23069, 23073, 23077, 23081, 23085, 23089, 23093, 23097, 23101, - 23105, 23109, 23113, 23117, 23121, 23125, 23128, 23132, 23136, 23142, - 23148, 23154, 23160, 23166, 23172, 23178, 23184, 23190, 23196, 23202, - 23208, 23214, 23220, 23229, 23238, 23244, 23250, 23256, 23261, 23265, - 23270, 23275, 23280, 23284, 23289, 23294, 23299, 23303, 23308, 23312, - 23317, 23322, 23327, 23332, 23336, 23340, 23344, 23348, 23352, 23356, - 23360, 23364, 23368, 23372, 23378, 23382, 23386, 23390, 23394, 23398, - 23406, 23412, 23416, 23422, 23426, 23432, 23436, 0, 0, 23440, 23444, - 23447, 23450, 23453, 23456, 23459, 23462, 23465, 23468, 0, 0, 0, 0, 0, 0, - 23471, 23479, 23487, 23495, 23503, 23511, 23519, 23527, 23535, 23543, 0, - 0, 0, 0, 0, 0, 23551, 23554, 23557, 23560, 23564, 23567, 23572, 23579, - 23587, 23592, 23598, 23601, 23608, 23615, 23622, 0, 23626, 23630, 23633, - 23636, 23639, 23642, 23645, 23648, 23651, 23654, 0, 0, 0, 0, 0, 0, 23657, - 23660, 23663, 23666, 23669, 23672, 23676, 23680, 23684, 23688, 23692, - 23696, 23700, 23704, 23708, 23711, 23715, 23719, 23723, 23727, 23731, - 23735, 23739, 23742, 23746, 23750, 23754, 23757, 23761, 23765, 23769, - 23773, 23777, 23781, 23785, 23789, 23796, 23801, 23806, 23811, 23816, - 23822, 23828, 23834, 23840, 23846, 23852, 23858, 23863, 23869, 23875, - 23881, 23887, 23893, 23898, 23904, 23909, 23915, 23921, 23927, 23933, - 23939, 23944, 23949, 23955, 23961, 23966, 23972, 23977, 23983, 23988, - 23994, 24000, 24006, 24012, 24018, 24024, 24030, 24036, 24042, 24048, - 24054, 24060, 24066, 24071, 24076, 24082, 24088, 0, 0, 0, 0, 0, 0, 0, 0, - 24094, 24103, 24112, 24120, 24128, 24138, 24146, 24155, 24162, 24169, - 24176, 24184, 24192, 24200, 24208, 24216, 24224, 24232, 24240, 24248, - 24256, 24264, 24272, 24280, 24288, 24298, 24308, 24318, 24328, 24338, - 24348, 24358, 24368, 24378, 24388, 24398, 24408, 24418, 24428, 24436, - 24444, 24454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24462, 24467, - 24470, 24474, 24478, 24482, 24486, 24490, 24494, 24498, 24502, 24506, - 24510, 24514, 24518, 24522, 24526, 24530, 24534, 24538, 24542, 24545, - 24548, 24552, 24556, 24560, 24564, 24568, 24572, 0, 0, 0, 24575, 24579, - 24583, 24587, 24592, 24597, 24602, 24607, 24611, 24615, 24619, 24624, 0, - 0, 0, 0, 24629, 24633, 24638, 24643, 24648, 24653, 24658, 24662, 24667, - 24672, 24676, 24680, 0, 0, 0, 0, 24684, 0, 0, 0, 24688, 24692, 24696, - 24700, 24703, 24706, 24709, 24712, 24715, 24718, 24721, 24724, 24727, - 24732, 24738, 24744, 24750, 24756, 24761, 24767, 24773, 24779, 24785, - 24791, 24796, 24802, 24808, 24813, 24819, 24825, 24831, 24837, 24842, - 24847, 24853, 24859, 24864, 24870, 24875, 24881, 24886, 24892, 0, 0, - 24898, 24904, 24910, 24916, 24922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24928, 24935, 24942, 24948, 24955, 24962, 24968, 24975, 24982, 24989, - 24996, 25002, 25009, 25016, 25022, 25029, 25036, 25043, 25050, 25057, - 25064, 25071, 25078, 25084, 25091, 25098, 25104, 25111, 25118, 25125, - 25132, 25139, 25146, 25152, 25159, 25166, 25172, 25179, 25186, 25193, - 25200, 25207, 0, 0, 0, 0, 0, 0, 25214, 25222, 25229, 25236, 25242, 25249, - 25255, 25262, 25268, 25275, 25282, 25289, 25296, 25303, 25310, 25317, - 25324, 25331, 25337, 25344, 25350, 25356, 25363, 25369, 25375, 25381, 0, - 0, 0, 0, 0, 0, 25387, 25393, 25398, 25403, 25408, 25413, 25418, 25423, - 25428, 25433, 0, 0, 0, 0, 25438, 25444, 25450, 25454, 25460, 25466, - 25472, 25478, 25484, 25490, 25496, 25502, 25508, 25514, 25520, 25526, - 25532, 25538, 25544, 25548, 25554, 25560, 25566, 25572, 25578, 25584, - 25590, 25596, 25602, 25608, 25614, 25620, 25626, 25632, 25638, 25642, - 25647, 25652, 25657, 25662, 25667, 25671, 25676, 25681, 25686, 25691, - 25696, 25701, 25706, 25711, 25716, 25720, 25725, 25730, 25735, 25740, - 25744, 25748, 25753, 25758, 25763, 25768, 0, 0, 25774, 25778, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25785, 25790, - 25796, 25802, 25809, 25815, 25820, 25826, 25831, 25838, 25843, 25848, - 25854, 25862, 25867, 25873, 25878, 25885, 25891, 25899, 25907, 25913, - 25919, 25926, 25933, 25938, 25944, 25950, 25955, 25960, 25966, 25974, - 25981, 25986, 25992, 25998, 26004, 26012, 26016, 26022, 26028, 26034, - 26040, 26046, 26052, 26056, 26061, 26065, 26071, 26075, 26079, 26084, - 26088, 26092, 26096, 26100, 26105, 26109, 26113, 26117, 26122, 26126, - 26131, 26135, 26139, 26143, 26147, 26152, 26156, 26161, 26166, 26172, - 26176, 26180, 26184, 26189, 26195, 26202, 26206, 26211, 26216, 26220, - 26225, 26229, 26235, 26242, 26249, 26253, 26257, 26261, 26267, 26272, - 26276, 26281, 26286, 26292, 26297, 26303, 26308, 26314, 26320, 26326, - 26332, 26339, 26346, 26353, 26360, 26367, 26372, 26380, 26389, 26398, - 26407, 26416, 26425, 26434, 26446, 26455, 26464, 26473, 26478, 26483, - 26489, 26497, 26504, 26511, 26518, 26525, 26532, 26540, 26549, 26558, - 26567, 26576, 26585, 26594, 26603, 26612, 26621, 26630, 26639, 26648, - 26657, 26666, 26674, 26682, 26693, 26701, 26711, 26722, 26731, 26739, - 26749, 26758, 26766, 26775, 26781, 26786, 26794, 26799, 26806, 26811, - 26820, 26825, 26830, 26836, 26841, 26846, 26853, 26861, 26870, 26879, - 26884, 26891, 26901, 26909, 26918, 26923, 26929, 26934, 26941, 26946, - 26955, 26960, 26965, 26970, 26977, 26982, 26987, 26996, 27004, 27009, - 27014, 27021, 27028, 27032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27036, - 27044, 27052, 27059, 27066, 27073, 27080, 27088, 27096, 27106, 27116, - 27124, 27132, 27140, 27148, 27157, 27166, 27174, 27182, 27190, 27198, - 27207, 27216, 27225, 27234, 27241, 27248, 27256, 27264, 27274, 27284, - 27292, 27300, 27307, 27314, 27322, 27330, 27338, 27346, 27353, 27360, - 27368, 27376, 27385, 27394, 27402, 27410, 27419, 27428, 27435, 27442, - 27450, 27458, 27467, 27476, 27484, 27492, 27503, 27514, 27523, 27532, - 27540, 27548, 27555, 27562, 27570, 27578, 27586, 27594, 27602, 27610, - 27618, 27626, 27635, 27644, 27652, 27660, 27669, 27678, 27687, 27696, - 27705, 27714, 27723, 27732, 27739, 27746, 27754, 27762, 27770, 27778, - 27786, 27794, 27805, 27816, 27825, 27834, 27842, 27850, 27858, 27866, - 27877, 27888, 27899, 27910, 27922, 27934, 27942, 27950, 27958, 27966, - 27975, 27984, 27992, 28000, 28008, 28016, 28024, 28032, 28039, 28046, - 28055, 28064, 28073, 28082, 28089, 28096, 28104, 28112, 28119, 28126, - 28133, 28140, 28147, 28154, 28162, 28170, 28178, 28186, 28194, 28202, - 28209, 28216, 28224, 28232, 28240, 28248, 28256, 28264, 28273, 28282, - 28291, 28298, 28307, 28316, 28325, 0, 0, 0, 0, 28334, 28341, 28348, - 28356, 28364, 28372, 28380, 28388, 28396, 28406, 28416, 28424, 28432, - 28441, 28450, 28459, 28468, 28477, 28486, 28497, 28508, 28517, 28526, - 28536, 28546, 28553, 28560, 28568, 28576, 28582, 28588, 28596, 28604, - 28612, 28620, 28630, 28640, 28648, 28656, 28665, 28674, 28682, 28690, - 28697, 28704, 28711, 28718, 28726, 28734, 28742, 28750, 28758, 28766, - 28776, 28786, 28794, 28802, 28811, 28820, 28829, 28838, 28847, 28856, - 28867, 28878, 28887, 28896, 28906, 28916, 28923, 28930, 28938, 28946, - 28955, 28964, 28973, 28982, 28993, 29004, 29013, 29022, 29032, 29042, - 29049, 29056, 29064, 29072, 29081, 29090, 29097, 0, 0, 0, 0, 0, 0, 29104, - 29111, 29118, 29126, 29134, 29142, 29150, 29159, 29168, 29175, 29182, - 29190, 29198, 29206, 29214, 29223, 29232, 29240, 29248, 29257, 29266, - 29275, 0, 0, 29284, 29292, 29300, 29309, 29318, 29327, 0, 0, 29336, - 29344, 29352, 29361, 29370, 29379, 29388, 29398, 29408, 29416, 29424, - 29433, 29442, 29451, 29460, 29470, 29480, 29488, 29496, 29505, 29514, - 29523, 29532, 29542, 29552, 29560, 29568, 29577, 29586, 29595, 29604, - 29614, 29624, 29632, 29640, 29649, 29658, 29667, 0, 0, 29676, 29684, - 29692, 29701, 29710, 29719, 0, 0, 29728, 29736, 29744, 29753, 29762, - 29771, 29780, 29790, 0, 29800, 0, 29808, 0, 29817, 0, 29826, 29836, - 29843, 29850, 29858, 29866, 29874, 29882, 29891, 29900, 29907, 29914, - 29922, 29930, 29938, 29946, 29955, 29964, 29970, 29976, 29983, 29990, - 29997, 30004, 30011, 30018, 30025, 30032, 30039, 30046, 30052, 0, 0, - 30058, 30067, 30076, 30088, 30100, 30112, 30124, 30136, 30148, 30157, - 30166, 30178, 30190, 30202, 30214, 30226, 30238, 30248, 30258, 30271, - 30284, 30297, 30310, 30323, 30336, 30346, 30356, 30369, 30382, 30395, - 30408, 30421, 30434, 30443, 30452, 30464, 30476, 30488, 30500, 30512, - 30524, 30533, 30542, 30554, 30566, 30578, 30590, 30602, 30614, 30621, - 30627, 30637, 30644, 0, 30654, 30661, 30671, 30678, 30684, 30690, 30696, - 30703, 30706, 30709, 30712, 30715, 30721, 30732, 30740, 0, 30751, 30759, - 30770, 30777, 30784, 30791, 30798, 30806, 30810, 30814, 30819, 30827, - 30834, 30844, 0, 0, 30854, 30862, 30873, 30881, 30888, 30895, 0, 30902, - 30906, 30910, 30915, 30923, 30930, 30940, 30950, 30958, 30966, 30974, - 30985, 30993, 31000, 31007, 31014, 31022, 31027, 31032, 0, 0, 31034, - 31044, 31051, 0, 31061, 31068, 31078, 31085, 31092, 31098, 31104, 31111, - 31113, 0, 31116, 31120, 31124, 31128, 31132, 31136, 31140, 31144, 31148, - 31152, 31156, 31160, 31166, 31172, 31178, 31181, 31184, 31186, 31190, - 31194, 31198, 31202, 31204, 31208, 31212, 31218, 31224, 31231, 31238, - 31243, 31248, 31254, 31260, 31262, 31265, 31267, 31271, 31276, 31280, - 31283, 31287, 31291, 31295, 31299, 31303, 31309, 31313, 31317, 31323, - 31328, 31335, 31337, 31340, 31344, 31347, 31351, 31356, 31358, 31366, - 31374, 31377, 31381, 31383, 31385, 31387, 31390, 31396, 31398, 31402, - 31406, 31413, 31420, 31424, 31429, 31434, 31439, 31443, 31447, 31451, - 31454, 31457, 31461, 31468, 31473, 31477, 31481, 31486, 31490, 31494, - 31499, 31504, 31508, 31512, 31516, 31518, 31523, 31528, 31532, 31536, - 31540, 0, 0, 0, 0, 0, 0, 31544, 31550, 31556, 31563, 31570, 31575, 31580, - 31584, 0, 0, 31590, 31593, 31596, 31599, 31602, 31605, 31608, 31613, - 31617, 31622, 31627, 31632, 31638, 31642, 31645, 31648, 31651, 31654, - 31657, 31660, 31663, 31666, 31669, 31674, 31678, 31683, 31688, 0, 31693, - 31699, 31705, 31711, 31717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31724, - 31727, 31730, 31733, 31738, 31741, 31744, 31747, 31750, 31753, 31756, - 31760, 31763, 31766, 31769, 31772, 31775, 31780, 31783, 31786, 31789, - 31792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31795, 31799, 31803, 31810, 31818, 31823, 31828, 31832, - 31836, 31841, 31848, 31855, 31859, 31864, 31869, 31874, 31879, 31885, - 31890, 31895, 31900, 31909, 31916, 31923, 31927, 31932, 31938, 31943, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31950, 31954, - 31961, 31965, 31969, 31974, 31978, 31982, 31986, 31988, 31992, 31995, - 31998, 32002, 32005, 32009, 32018, 32021, 32025, 32028, 32031, 32037, - 32040, 32043, 32049, 32052, 32055, 32059, 32062, 32066, 32069, 32073, - 32075, 32078, 32081, 32085, 32087, 32091, 32094, 32097, 32102, 32107, - 32113, 32116, 32119, 32122, 32127, 32130, 32133, 32136, 32140, 32144, - 32147, 32150, 32152, 32155, 32158, 32161, 32165, 32170, 32173, 32177, - 32181, 32185, 32189, 32194, 32198, 32202, 32206, 32211, 32215, 32219, - 32223, 32227, 32231, 32235, 32238, 0, 0, 0, 0, 0, 0, 32241, 32249, 32256, - 32264, 32271, 32278, 32286, 32294, 32302, 32310, 32317, 32325, 32333, - 32338, 32342, 32346, 32350, 32354, 32358, 32362, 32366, 32370, 32374, - 32379, 32384, 32389, 32394, 32401, 32408, 32415, 32420, 32425, 32430, - 32435, 32440, 32445, 32450, 32455, 32460, 32466, 32472, 32478, 32484, - 32492, 32500, 32508, 32518, 32525, 32532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32540, 32542, 32545, 32547, 32550, 32553, 32556, 32561, 32566, - 32571, 32576, 32580, 32584, 32588, 32592, 32597, 32603, 32608, 32614, - 32619, 32624, 32629, 32635, 32640, 32646, 32652, 32656, 32660, 32665, - 32670, 32675, 32680, 32685, 32693, 32701, 32709, 32717, 32724, 32732, - 32739, 32746, 32754, 32765, 32771, 32777, 32783, 32789, 32796, 32803, - 32809, 32815, 32822, 32829, 32835, 32843, 32849, 32854, 32860, 32865, - 32871, 32878, 32885, 32890, 32896, 32901, 32904, 32908, 32911, 32915, - 32919, 32923, 32929, 32935, 32941, 32947, 32951, 32955, 32959, 32963, - 32969, 32975, 32979, 32984, 32988, 32993, 32997, 33001, 33004, 33008, - 33011, 33015, 33022, 33030, 33041, 33052, 33057, 33066, 33073, 33081, - 33089, 33093, 33099, 33107, 33111, 33116, 33121, 33127, 33133, 33139, - 33146, 33150, 33154, 33159, 33162, 33164, 33168, 33172, 33179, 33183, - 33185, 33187, 33191, 33198, 33203, 33209, 33218, 33225, 33230, 33234, - 33238, 33242, 33245, 33248, 33251, 33255, 33259, 33263, 33267, 33271, - 33274, 33278, 33282, 33285, 33287, 33290, 33292, 33296, 33300, 33302, - 33307, 33310, 33314, 33318, 33322, 33324, 33326, 33328, 33331, 33335, - 33339, 33343, 33347, 33351, 33357, 33363, 33365, 33367, 33369, 33371, - 33374, 33376, 33380, 33382, 33386, 33388, 33393, 33397, 33401, 33403, - 33406, 33410, 33415, 33419, 33428, 33438, 33442, 33447, 33453, 33456, - 33460, 33463, 33468, 33472, 33478, 33482, 33493, 33501, 33505, 33509, - 33515, 33519, 33522, 33524, 33527, 33531, 33535, 33541, 33545, 33549, - 33552, 33555, 33559, 33564, 33569, 33574, 33580, 33586, 33593, 33600, - 33604, 33608, 33610, 33614, 33617, 33620, 33628, 33636, 33642, 33648, - 33657, 33666, 33671, 33676, 33684, 33692, 33694, 33696, 33701, 33706, - 33712, 33718, 33723, 33728, 33732, 33736, 33742, 33748, 33754, 33760, - 33770, 33780, 33787, 33794, 33796, 33800, 33804, 33809, 33814, 33821, - 33828, 33831, 33834, 33837, 33840, 33843, 33848, 33852, 33857, 33862, - 33865, 33868, 33872, 33876, 33880, 33885, 33888, 33891, 33894, 33897, - 33899, 33901, 33903, 33905, 33913, 33921, 33926, 33929, 33934, 33944, - 33950, 33956, 33962, 33970, 33978, 33989, 33993, 33997, 33999, 34005, - 34007, 34009, 34011, 34013, 34018, 34021, 34027, 34033, 34037, 34041, - 34045, 34048, 34052, 34056, 34058, 34067, 34076, 34081, 34086, 34091, - 34097, 34103, 34106, 34109, 34112, 34115, 34117, 34122, 34127, 34132, - 34138, 34144, 34151, 34158, 34163, 34168, 34173, 34178, 34186, 34194, - 34202, 34210, 34218, 34226, 34234, 34242, 34250, 34258, 34265, 34276, - 34285, 34299, 34302, 34307, 34313, 34319, 34326, 34340, 34355, 34361, - 34367, 34374, 34380, 34388, 34394, 34407, 34421, 34426, 34432, 34439, - 34442, 34445, 34447, 34450, 34453, 34455, 34457, 34461, 34464, 34467, - 34470, 34473, 34478, 34483, 34488, 34493, 34496, 34499, 34501, 34503, - 34505, 34509, 34513, 34517, 34523, 34526, 34528, 34530, 34535, 34540, - 34545, 34550, 34555, 34560, 34562, 34564, 34573, 34577, 34583, 34592, - 34594, 34598, 34602, 34609, 34613, 34615, 34619, 34621, 34625, 34629, - 34633, 34635, 34637, 34639, 34644, 34651, 34658, 34665, 34672, 34679, - 34686, 34692, 34698, 34704, 34710, 34717, 34724, 34731, 34738, 34744, - 34750, 34757, 34764, 34770, 34778, 34785, 34793, 34800, 34808, 34815, - 34823, 34831, 34838, 34846, 34853, 34861, 34868, 34876, 34883, 34890, - 34897, 34904, 34910, 34918, 34925, 34931, 34938, 34945, 34951, 34957, - 34963, 34968, 34976, 34984, 34990, 34996, 35002, 35008, 35013, 35019, - 35026, 35034, 35041, 35048, 35055, 35060, 35065, 35070, 35076, 35083, - 35090, 35096, 35101, 35105, 35113, 35119, 35122, 35130, 35133, 35138, - 35143, 35146, 35149, 35157, 35160, 35165, 35168, 35175, 35180, 35187, - 35190, 35193, 35196, 35201, 35206, 35209, 35212, 35220, 35223, 35228, - 35235, 35239, 35243, 35248, 35253, 35258, 35263, 35268, 35273, 35278, - 35283, 35290, 35296, 35303, 35310, 35316, 35323, 35330, 35339, 35346, - 35352, 35359, 35368, 35375, 35379, 35384, 35395, 35406, 35410, 35414, - 35418, 35422, 35433, 35437, 35442, 35447, 35452, 35457, 35462, 35467, - 35476, 35485, 35493, 35503, 35513, 35521, 35531, 35541, 35549, 35559, - 35569, 35577, 35585, 35595, 35605, 35608, 35611, 35614, 35619, 35623, - 35630, 35638, 35646, 35655, 35662, 35666, 35670, 35674, 35678, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35680, 35684, 35691, 35698, 35705, 35712, - 35716, 35720, 35724, 35728, 35733, 35739, 35744, 35750, 35756, 35762, - 35768, 35776, 35783, 35790, 35797, 35804, 35810, 35816, 35825, 35829, - 35836, 35840, 35844, 35850, 35856, 35862, 35868, 35872, 35876, 35879, - 35883, 35887, 35894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35901, 35904, 35908, 35912, 35918, 35924, 35930, - 35938, 35945, 35949, 35957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35962, 35965, 35968, 35971, 35974, 35977, 35980, 35983, - 35986, 35989, 35993, 35997, 36001, 36005, 36009, 36013, 36017, 36021, - 36025, 36029, 36033, 36036, 36039, 36042, 36045, 36048, 36051, 36054, - 36057, 36060, 36064, 36068, 36072, 36076, 36080, 36084, 36088, 36092, - 36096, 36100, 36104, 36110, 36115, 36120, 36126, 36132, 36138, 36144, - 36150, 36156, 36162, 36168, 36174, 36180, 36186, 36192, 36198, 36204, - 36210, 36216, 36222, 36227, 36232, 36238, 36243, 36248, 36254, 36259, - 36264, 36269, 36274, 36280, 36285, 36290, 36295, 36300, 36305, 36311, - 36316, 36321, 36326, 36331, 36336, 36342, 36347, 36353, 36359, 36364, - 36369, 36375, 36380, 36385, 36391, 36396, 36401, 36406, 36411, 36417, - 36422, 36427, 36432, 36437, 36442, 36448, 36453, 36458, 36463, 36468, - 36473, 36479, 36484, 36490, 36496, 36501, 36506, 36512, 36517, 36522, - 36528, 36533, 36538, 36543, 36548, 36554, 36559, 36564, 36569, 36574, - 36579, 36585, 36590, 36595, 36600, 36605, 36610, 36616, 36621, 36627, - 36633, 36637, 36643, 36649, 36655, 36661, 36667, 36673, 36679, 36685, - 36691, 36697, 36701, 36705, 36709, 36713, 36717, 36721, 36725, 36729, - 36733, 36738, 36744, 36749, 36754, 36759, 36764, 36773, 36782, 36791, - 36800, 36809, 36818, 36827, 36836, 36842, 36850, 36858, 36864, 36871, - 36879, 36887, 36894, 36900, 36908, 36916, 36922, 36929, 36937, 36945, - 36952, 36958, 36966, 36975, 36984, 36992, 37001, 37010, 37016, 37023, - 37031, 37040, 37049, 37057, 37066, 37075, 37082, 37089, 37098, 37107, - 37115, 37123, 37132, 37141, 37148, 37155, 37164, 37173, 37181, 37189, - 37198, 37207, 37214, 37221, 37230, 37239, 37247, 37256, 37265, 37273, - 37283, 37293, 37303, 37313, 37322, 37331, 37340, 37349, 37356, 37364, - 37372, 37380, 37388, 37393, 37398, 37407, 37415, 37421, 37430, 37438, - 37445, 37454, 37462, 37468, 37477, 37485, 37492, 37501, 37509, 37515, - 37524, 37532, 37539, 37548, 37556, 37563, 37572, 37580, 37587, 37596, - 37604, 37611, 37619, 37628, 37637, 37645, 37656, 37666, 37673, 37678, - 37683, 37687, 37692, 37697, 37702, 37706, 37711, 37718, 37726, 37733, - 37741, 37745, 37752, 37759, 37765, 37769, 37776, 37782, 37789, 37793, - 37800, 37806, 37813, 37817, 37823, 37830, 37837, 37841, 37844, 37848, - 37852, 37859, 37866, 37871, 37875, 37880, 37890, 37897, 37908, 37918, - 37922, 37930, 37940, 37943, 37946, 37953, 37961, 37966, 37971, 37979, - 37988, 37997, 38005, 38009, 38013, 38016, 38019, 38023, 38027, 38030, - 38033, 38038, 38043, 38049, 38055, 38060, 38065, 38071, 38077, 38082, - 38087, 38092, 38097, 38103, 38109, 38114, 38119, 38125, 38131, 38136, - 38141, 38144, 38147, 38156, 38158, 38160, 38163, 38167, 38172, 38174, - 38177, 38183, 38189, 38195, 38201, 38209, 38221, 38226, 38231, 38235, - 38240, 38247, 38254, 38262, 38270, 38278, 38286, 38290, 38294, 38299, - 38304, 38309, 38314, 38317, 38323, 38329, 38338, 38347, 38355, 38363, - 38372, 38381, 38385, 38392, 38399, 38406, 38413, 38420, 38427, 38434, - 38441, 38445, 38449, 38453, 38458, 38463, 38469, 38475, 38479, 38485, - 38487, 38489, 38491, 38493, 38496, 38499, 38501, 38503, 38505, 38509, - 38513, 38515, 38517, 38520, 38523, 38527, 38533, 38538, 38540, 38547, - 38551, 38556, 38561, 38563, 38572, 38578, 38584, 38590, 38596, 38602, - 38608, 38613, 38616, 38619, 38622, 38624, 38626, 38630, 38634, 38639, - 38644, 38649, 38652, 38656, 38661, 38664, 38668, 38673, 38678, 38683, - 38688, 38693, 38698, 38703, 38708, 38713, 38718, 38723, 38728, 38734, - 38740, 38746, 38748, 38751, 38753, 38756, 38758, 38760, 38762, 38764, - 38766, 38768, 38770, 38772, 38774, 38776, 38778, 38780, 38782, 38784, - 38786, 38788, 38790, 38795, 38800, 38805, 38810, 38815, 38820, 38825, - 38830, 38835, 38840, 38845, 38850, 38855, 38860, 38865, 38870, 38875, - 38880, 38885, 38890, 38894, 38898, 38902, 38908, 38914, 38919, 38924, - 38929, 38934, 38939, 38944, 38952, 38960, 38968, 38976, 38984, 38992, - 39000, 39008, 39014, 39019, 39024, 39029, 39032, 39036, 39040, 39044, - 39048, 39052, 39056, 39061, 39067, 39073, 39080, 39085, 39090, 39097, - 39104, 39111, 39118, 39121, 39124, 39129, 39131, 39135, 39140, 39142, - 39144, 39146, 39148, 39153, 39156, 0, 0, 0, 39158, 39161, 39165, 39170, - 39175, 39183, 39189, 39195, 39207, 39214, 39221, 39226, 39231, 39237, - 39240, 39243, 39248, 39250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39254, 39259, 39262, - 39267, 0, 39270, 39275, 39279, 39281, 0, 0, 39283, 39287, 39291, 39295, - 39297, 39301, 39304, 39307, 39310, 39314, 39317, 39321, 39324, 39328, - 39333, 39337, 39343, 39350, 39353, 39359, 39364, 39368, 39373, 39379, - 39385, 39392, 39398, 39405, 0, 39412, 39419, 39423, 39430, 39436, 39441, - 39447, 39451, 39456, 39459, 39465, 39471, 39478, 39486, 39493, 39502, - 39512, 39519, 39525, 39529, 39537, 39542, 39551, 39554, 39557, 39566, - 39577, 39584, 39586, 39592, 39597, 39599, 39602, 39606, 39614, 0, 39623, - 0, 39628, 39635, 39642, 39649, 0, 0, 0, 39656, 0, 39663, 39666, 39670, - 39673, 39684, 39694, 39704, 0, 0, 39713, 39722, 39728, 39736, 39740, - 39748, 39752, 39760, 39767, 39774, 39783, 39792, 39801, 39810, 39819, - 39828, 39836, 39844, 39854, 39864, 39873, 39882, 39889, 39896, 39903, - 39910, 39917, 39924, 39931, 39938, 39945, 39953, 39959, 39965, 39971, - 39977, 39983, 39989, 39995, 40001, 40007, 40014, 40022, 40030, 40038, - 40046, 40054, 40062, 40070, 40078, 40086, 40095, 0, 0, 0, 40100, 40106, - 40109, 40115, 40121, 40126, 40130, 40135, 40141, 40148, 40151, 40158, - 40165, 40169, 40178, 40187, 40192, 40198, 40203, 40208, 40215, 40222, - 40229, 40236, 0, 40244, 40252, 40257, 40261, 40268, 40272, 40279, 40287, - 40292, 40300, 40304, 40309, 40313, 40318, 0, 40322, 40327, 40336, 40338, - 40342, 40346, 40353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40360, 40368, 40372, - 40379, 40386, 40393, 40398, 40403, 40409, 40414, 40419, 40425, 40430, - 40433, 40437, 40441, 40447, 40456, 40461, 40470, 40479, 40485, 40491, - 40496, 40501, 40505, 40509, 40514, 0, 0, 0, 0, 40519, 40524, 40529, - 40535, 40541, 40547, 40550, 40553, 40557, 40561, 40565, 40570, 40576, - 40582, 40589, 40596, 40601, 40605, 40609, 40613, 40617, 40621, 40625, - 40629, 40633, 40637, 40641, 40645, 40649, 40653, 40657, 40661, 40665, - 40669, 40673, 40677, 40681, 40685, 40689, 40693, 40697, 40701, 40705, - 40709, 40713, 40717, 40721, 40725, 40729, 40733, 40737, 40741, 40745, - 40749, 40753, 40757, 40761, 40765, 40769, 40773, 40777, 40781, 40785, - 40789, 40793, 40797, 40801, 40805, 40809, 40813, 40817, 40821, 40825, - 40829, 40833, 40837, 40841, 40845, 40849, 40853, 40857, 40861, 40865, - 40869, 40873, 40877, 40881, 40885, 40889, 40893, 40897, 40901, 40905, - 40909, 40913, 40917, 40921, 40925, 40929, 40933, 40937, 40941, 40945, - 40949, 40953, 40957, 40961, 40965, 40969, 40973, 40977, 40981, 40985, - 40989, 40993, 40997, 41001, 41005, 41009, 41013, 41017, 41021, 41025, - 41029, 41033, 41037, 41041, 41045, 41049, 41053, 41057, 41061, 41065, - 41069, 41073, 41077, 41081, 41085, 41089, 41093, 41097, 41101, 41105, - 41109, 41113, 41117, 41121, 41125, 41129, 41133, 41137, 41141, 41145, - 41149, 41153, 41157, 41161, 41165, 41169, 41173, 41177, 41181, 41185, - 41189, 41193, 41197, 41201, 41205, 41209, 41213, 41217, 41221, 41225, - 41229, 41233, 41237, 41241, 41245, 41249, 41253, 41257, 41261, 41265, - 41269, 41273, 41277, 41281, 41285, 41289, 41293, 41297, 41301, 41305, - 41309, 41313, 41317, 41321, 41325, 41329, 41333, 41337, 41341, 41345, - 41349, 41353, 41357, 41361, 41365, 41369, 41373, 41377, 41381, 41385, - 41389, 41393, 41397, 41401, 41405, 41409, 41413, 41417, 41421, 41425, - 41429, 41433, 41437, 41441, 41445, 41449, 41453, 41457, 41461, 41465, - 41469, 41473, 41477, 41481, 41485, 41489, 41493, 41497, 41501, 41505, - 41509, 41513, 41517, 41521, 41525, 41529, 41533, 41537, 41541, 41545, - 41549, 41553, 41557, 41561, 41565, 41569, 41573, 41577, 41581, 41585, - 41589, 41593, 41597, 41601, 41605, 41609, 41613, 41617, 41621, 41625, - 41632, 41640, 41646, 41652, 41659, 41666, 41672, 41678, 41684, 41690, - 41695, 41700, 41705, 41710, 41716, 41722, 41730, 41737, 41742, 41747, - 41755, 41764, 41771, 41781, 41792, 41795, 41798, 41802, 41806, 41812, - 41818, 41828, 41838, 41848, 41858, 41865, 41872, 41879, 41886, 41897, - 41908, 41919, 41930, 41940, 41950, 41962, 41974, 41985, 41996, 42008, - 42020, 42028, 42038, 42048, 42059, 42070, 42077, 42084, 42091, 42098, - 42108, 42118, 42125, 42132, 42138, 42144, 42151, 42158, 42165, 42171, - 42177, 42182, 42190, 42200, 42208, 42216, 42224, 42232, 42240, 42248, - 42256, 42264, 42271, 42278, 42286, 42294, 42301, 42308, 42316, 42324, - 42332, 42340, 42349, 42358, 42366, 42374, 42383, 42392, 42404, 42418, - 42430, 42444, 42456, 42468, 42480, 42492, 42501, 42511, 42520, 42530, - 42544, 42558, 42566, 42572, 42579, 42586, 42593, 42600, 42605, 42611, - 42616, 42621, 42627, 42632, 42637, 42642, 42647, 42652, 42659, 42664, - 42671, 42676, 42681, 42685, 42689, 42696, 42703, 42710, 42717, 42724, - 42731, 42744, 42757, 42770, 42783, 42790, 42797, 42803, 42809, 42816, - 42823, 42830, 42837, 42841, 42846, 42853, 42860, 42867, 42873, 42877, - 42884, 42891, 42894, 42897, 42901, 42906, 42913, 42920, 42938, 42957, - 42975, 42994, 43013, 43032, 43051, 43070, 43075, 43082, 43090, 43098, - 43106, 43110, 43113, 43116, 43121, 43124, 43142, 43147, 43153, 43159, - 43163, 43166, 43169, 43172, 43180, 43190, 43198, 43206, 43210, 43215, - 43219, 43224, 43229, 43234, 43240, 43249, 43256, 43263, 43271, 43278, - 43285, 43288, 43295, 43302, 43305, 43308, 43313, 43318, 43324, 43330, - 43334, 43340, 43347, 43351, 43357, 43361, 43365, 43373, 43385, 43393, - 43397, 43399, 43408, 43417, 43423, 43426, 43431, 43436, 43441, 43446, - 43451, 43456, 43461, 43466, 43468, 43474, 43479, 43486, 43490, 43496, - 43499, 43503, 43509, 43515, 43517, 43519, 43525, 43532, 43539, 43548, - 43557, 43564, 43571, 43577, 43583, 43589, 43594, 43599, 43605, 43611, - 43616, 43623, 43627, 43631, 43644, 43657, 43668, 43677, 43683, 43690, - 43696, 43701, 43706, 43711, 43716, 43718, 43725, 43732, 43739, 43746, - 43753, 43761, 43768, 43774, 43781, 43788, 43795, 43802, 43808, 43816, - 43824, 43833, 43842, 43849, 43855, 43861, 43870, 43874, 43883, 43892, - 43900, 43908, 43912, 43919, 43926, 43933, 43937, 43943, 43950, 43955, - 43960, 43966, 43971, 43976, 43983, 43990, 43995, 44000, 44008, 44016, - 44026, 44036, 44043, 44050, 44054, 44058, 44070, 44076, 44082, 44087, - 44092, 44099, 44106, 44112, 44118, 44127, 44135, 44143, 44150, 44157, - 44164, 44170, 44177, 44183, 44190, 44197, 44204, 44211, 44217, 44222, - 44231, 44241, 44248, 44257, 44263, 44268, 44273, 44281, 44287, 44294, - 44301, 44309, 44314, 44321, 44328, 44339, 44346, 44352, 44358, 44365, - 44372, 44379, 44386, 44397, 44408, 44418, 44428, 44439, 44451, 44456, - 44461, 44469, 44477, 44483, 44489, 44498, 44507, 44515, 44523, 44531, - 44539, 44549, 44559, 44573, 44587, 44594, 44601, 44612, 44623, 44630, - 44637, 44646, 44655, 44660, 44665, 44674, 44683, 44688, 44693, 44701, - 44707, 44713, 44721, 44729, 44742, 44755, 44759, 44763, 44770, 44777, - 44784, 44792, 44800, 44808, 44816, 44822, 44828, 44834, 44840, 44847, - 44854, 44862, 44870, 44873, 44876, 44881, 44886, 44893, 44900, 44907, - 44914, 44923, 44932, 44939, 44946, 44954, 44962, 44970, 44978, 44985, - 44992, 44999, 45006, 45010, 45014, 45021, 45028, 45033, 45038, 45043, - 45048, 45054, 45068, 45075, 45082, 45086, 45088, 45090, 45095, 45100, - 45105, 45109, 45117, 45124, 45131, 45139, 45151, 45159, 45167, 45178, - 45182, 45186, 45191, 45197, 45208, 45214, 45220, 45226, 45231, 45238, - 45247, 45255, 45261, 45267, 45273, 45282, 45291, 45299, 45308, 45313, - 45316, 45321, 45327, 45333, 45339, 45345, 45349, 45352, 45356, 45360, - 45366, 45372, 45378, 45384, 45388, 45392, 45399, 45406, 45413, 45420, - 45427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45434, 45439, 45444, 45449, - 45454, 45459, 45464, 45469, 45474, 45479, 45484, 45490, 45494, 45499, - 45504, 45509, 45514, 45519, 45524, 45529, 45534, 45539, 45544, 45549, - 45554, 45559, 45564, 45569, 45574, 45579, 45584, 45589, 45594, 45599, - 45604, 45610, 45615, 45621, 45630, 45635, 45643, 45650, 45659, 45664, - 45669, 45674, 45680, 0, 45687, 45692, 45697, 45702, 45707, 45712, 45717, - 45722, 45727, 45732, 45737, 45743, 45747, 45752, 45757, 45762, 45767, - 45772, 45777, 45782, 45787, 45792, 45797, 45802, 45807, 45812, 45817, - 45822, 45827, 45832, 45837, 45842, 45847, 45852, 45857, 45863, 45868, - 45874, 45883, 45888, 45896, 45903, 45912, 45917, 45922, 45927, 45933, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45940, 45945, 45950, 45955, 45960, 45965, 45970, - 45975, 45980, 45985, 45990, 45995, 46000, 46005, 46010, 46015, 46020, - 46025, 46030, 46035, 46040, 46045, 46050, 46055, 46060, 46065, 46070, - 46075, 46080, 46085, 46090, 46094, 46098, 46103, 46108, 46113, 46118, - 46123, 46128, 46133, 46138, 46143, 46148, 46153, 46158, 46163, 46168, - 46173, 46178, 46183, 46188, 46195, 46202, 46209, 46216, 46223, 46230, - 46237, 46244, 46251, 46258, 46265, 46272, 46279, 46286, 46291, 46296, - 46303, 46310, 46317, 46324, 46331, 46338, 46345, 46352, 46359, 46366, - 46373, 46380, 46386, 46392, 46398, 46404, 46411, 46418, 46425, 46432, - 46439, 46446, 46453, 46460, 46467, 46474, 46482, 46490, 46498, 46506, - 46514, 46522, 46530, 46538, 46542, 46548, 46554, 46558, 46564, 46570, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46576, 46583, 46592, 46601, 46609, - 46616, 46620, 46625, 46630, 46635, 46640, 46645, 46650, 46655, 46660, - 46665, 46670, 46675, 46680, 46685, 46690, 46695, 46700, 46705, 46710, - 46715, 46720, 46725, 46730, 46735, 46740, 46745, 46750, 46755, 46760, - 46765, 46770, 46775, 46780, 46785, 46790, 46795, 46800, 46805, 46810, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 46815, 46818, 46822, 46826, 46830, 46834, - 46842, 46846, 46850, 46854, 46858, 46862, 46866, 46870, 46874, 46880, - 46884, 46888, 46896, 46902, 46906, 46910, 46914, 46920, 46924, 46930, - 46934, 46938, 46944, 46950, 46954, 46958, 46962, 46968, 46974, 46978, - 46982, 46986, 46990, 46994, 47000, 47006, 47010, 47014, 47018, 47022, - 47026, 47030, 47034, 47038, 47042, 47046, 47050, 47056, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47066, - 47070, 47074, 47078, 47082, 47086, 47090, 47094, 47098, 47102, 47106, - 47112, 47116, 47120, 47124, 47128, 47132, 47136, 47140, 47144, 47148, - 47152, 47156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47160, 47164, 47168, 47172, - 47176, 47180, 47184, 0, 47188, 47192, 47196, 47200, 47204, 47208, 47212, - 0, 47216, 47220, 47224, 47228, 47232, 47236, 47240, 0, 47244, 47248, - 47252, 47256, 47260, 47264, 47268, 0, 47272, 47276, 47280, 47284, 47288, - 47292, 47296, 0, 47300, 47304, 47308, 47312, 47316, 47320, 47324, 0, - 47328, 47332, 47336, 47340, 47344, 47348, 47352, 0, 47356, 47360, 47364, - 47368, 47372, 47376, 47380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47384, 47390, - 47398, 47402, 47406, 47412, 47418, 47424, 47432, 47438, 47442, 47446, - 47450, 47456, 47462, 47466, 47468, 47472, 47477, 47479, 47483, 47487, - 47491, 47497, 0, 0, 0, 0, 47502, 47507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47512, 47516, 47520, 47525, - 47530, 47535, 47539, 47543, 47547, 47552, 47557, 47561, 47565, 47569, - 47573, 47578, 47583, 47588, 47593, 47597, 47601, 47606, 47611, 47616, - 47621, 47625, 0, 47629, 47633, 47637, 47641, 47645, 47649, 47653, 47658, - 47663, 47667, 47672, 47677, 47686, 47690, 47694, 47698, 47705, 47709, - 47714, 47719, 47723, 47727, 47733, 47738, 47743, 47748, 47753, 47757, - 47761, 47765, 47769, 47773, 47778, 47783, 47787, 47791, 47796, 47801, - 47806, 47810, 47814, 47819, 47824, 47830, 47836, 47840, 47846, 47852, - 47856, 47862, 47868, 47873, 47878, 47882, 47888, 47892, 47896, 47902, - 47908, 47913, 47918, 47922, 47926, 47934, 47940, 47946, 47952, 47957, - 47962, 47967, 47973, 47977, 47983, 47987, 47991, 47997, 48003, 48009, - 48015, 48021, 48027, 48033, 48039, 48045, 48051, 48057, 48063, 48067, - 48073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48079, 48082, 48086, 48090, - 48094, 48098, 48101, 48104, 48108, 48112, 48116, 48120, 48123, 48128, - 48132, 48136, 48140, 48146, 48150, 48154, 48158, 48162, 48169, 48175, - 48179, 48183, 48187, 48191, 48195, 48199, 48203, 48207, 48211, 48215, - 48219, 48225, 48229, 48233, 48237, 48241, 48245, 48249, 48253, 48257, - 48261, 48265, 48269, 48273, 48277, 48281, 48285, 48289, 48295, 48301, - 48306, 48311, 48315, 48319, 48323, 48327, 48331, 48335, 48339, 48343, - 48347, 48351, 48355, 48359, 48363, 48367, 48371, 48375, 48379, 48383, - 48387, 48391, 48395, 48398, 48402, 48406, 48412, 48416, 48420, 48424, - 48428, 48432, 48436, 48440, 48444, 48448, 48455, 48459, 48463, 48467, - 48471, 48475, 48479, 48483, 48487, 48491, 48495, 48499, 48503, 48510, - 48514, 48520, 48524, 48528, 48532, 48536, 48540, 48543, 48547, 48551, - 48555, 48559, 48563, 48567, 48571, 48575, 48579, 48583, 48587, 48591, - 48595, 48599, 48603, 48607, 48611, 48615, 48619, 48623, 48627, 48631, - 48635, 48639, 48643, 48647, 48651, 48655, 48659, 48663, 48667, 48671, - 48677, 48681, 48685, 48689, 48693, 48697, 48701, 48705, 48709, 48713, - 48717, 48721, 48725, 48729, 48733, 48737, 48741, 48745, 48749, 48753, - 48757, 48761, 48765, 48769, 48773, 48777, 48781, 48785, 48793, 48797, - 48801, 48805, 48809, 48813, 48819, 48823, 48827, 48831, 48835, 48839, - 48843, 48847, 48851, 48855, 48859, 48863, 48867, 48871, 48877, 48881, - 48885, 48889, 48893, 48897, 48901, 48905, 48909, 48913, 48917, 48921, - 48925, 48929, 48933, 48937, 48941, 48945, 48949, 48953, 48957, 48961, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48965, 48972, 48979, 48989, 48999, 49007, 49016, 49025, 49035, 49046, - 49056, 49067, 0, 0, 0, 0, 49073, 49076, 49079, 49083, 49086, 49093, - 49097, 49101, 49105, 49108, 49111, 49115, 49119, 49123, 49127, 49132, - 49137, 49142, 49147, 49150, 49153, 49159, 49165, 49170, 49175, 49182, - 49189, 49193, 49197, 49201, 49208, 49214, 49221, 49226, 49230, 49234, - 49238, 49242, 49246, 49250, 49254, 49258, 49262, 49267, 49272, 49277, - 49282, 49288, 49293, 49297, 49303, 49314, 49323, 49337, 49346, 49350, - 49359, 49364, 49369, 49374, 49379, 49382, 49387, 49391, 0, 49397, 49401, - 49404, 49408, 49411, 49415, 49418, 49422, 49425, 49429, 49432, 49435, - 49439, 49443, 49447, 49451, 49455, 49459, 49463, 49467, 49471, 49475, - 49479, 49483, 49487, 49491, 49495, 49499, 49503, 49507, 49511, 49515, - 49519, 49523, 49527, 49532, 49536, 49540, 49544, 49548, 49551, 49555, - 49559, 49563, 49567, 49571, 49575, 49578, 49582, 49586, 49590, 49594, - 49598, 49602, 49606, 49610, 49614, 49618, 49622, 49626, 49630, 49634, - 49637, 49641, 49645, 49649, 49653, 49657, 49660, 49665, 49669, 49674, - 49678, 49682, 49686, 49690, 49694, 49698, 49703, 49707, 49711, 49715, - 49719, 49722, 49726, 49730, 0, 0, 49735, 49743, 49751, 49758, 49765, - 49769, 49775, 49780, 49785, 49789, 49792, 49796, 49799, 49803, 49806, - 49810, 49813, 49817, 49820, 49823, 49827, 49831, 49835, 49839, 49843, - 49847, 49851, 49855, 49859, 49863, 49867, 49871, 49875, 49879, 49883, - 49887, 49891, 49895, 49899, 49903, 49907, 49911, 49915, 49920, 49924, - 49928, 49932, 49936, 49939, 49943, 49947, 49951, 49955, 49959, 49963, - 49966, 49970, 49974, 49978, 49982, 49986, 49990, 49994, 49998, 50002, - 50006, 50010, 50014, 50018, 50022, 50025, 50029, 50033, 50037, 50041, - 50045, 50048, 50053, 50057, 50062, 50066, 50070, 50074, 50078, 50082, - 50086, 50091, 50095, 50099, 50103, 50107, 50110, 50114, 50118, 50123, - 50127, 50131, 50135, 50139, 50144, 50151, 50155, 50161, 0, 0, 0, 0, 0, - 50166, 50169, 50172, 50175, 50179, 50182, 50185, 50188, 50191, 50194, - 50198, 50201, 50204, 50208, 50211, 50215, 50219, 50223, 50226, 50230, - 50234, 50237, 50240, 50243, 50246, 50250, 50254, 50258, 50262, 50266, - 50270, 50274, 50278, 50282, 50286, 50289, 50292, 50296, 50299, 50303, 0, - 0, 0, 0, 50307, 50311, 50315, 50319, 50323, 50327, 50331, 50335, 50339, - 50343, 50347, 50351, 50355, 50359, 50363, 50367, 50371, 50375, 50379, - 50383, 50387, 50391, 50395, 50399, 50403, 50407, 50411, 50415, 50419, - 50423, 50427, 50430, 50434, 50437, 50441, 50445, 50448, 50452, 50456, - 50459, 50463, 50467, 50471, 50475, 50478, 50482, 50486, 50490, 50494, - 50498, 50502, 50505, 50508, 50512, 50516, 50520, 50524, 50528, 50532, - 50536, 50540, 50544, 50548, 50552, 50556, 50560, 50564, 50568, 50572, - 50576, 50580, 50584, 50588, 50592, 50596, 50600, 50604, 50608, 50612, - 50616, 50620, 50624, 50628, 50632, 50636, 50640, 50644, 50648, 50652, - 50656, 50660, 50664, 50668, 50672, 0, 50676, 50682, 50688, 50694, 50699, - 50704, 50710, 50716, 50722, 50728, 50734, 50740, 50746, 50752, 50758, - 50764, 50770, 50774, 50778, 50782, 50786, 50790, 50794, 50798, 50802, - 50806, 50810, 50814, 50818, 50822, 50826, 50830, 50834, 50838, 50842, - 50846, 50850, 50854, 50858, 50863, 0, 0, 0, 0, 0, 0, 0, 0, 50867, 50871, - 50876, 50881, 50886, 50891, 50896, 50901, 50906, 50911, 50916, 50921, - 50926, 50931, 50936, 50941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50945, 50950, 50955, - 50960, 50964, 50969, 50973, 50978, 50983, 50988, 50993, 50998, 51003, - 51008, 51013, 51018, 51023, 51027, 51031, 51035, 51039, 51043, 51047, - 51051, 51055, 51059, 51063, 51067, 51071, 51075, 51079, 51084, 51089, - 51094, 51099, 51104, 51109, 51114, 51119, 51124, 51129, 51134, 51139, - 51144, 51149, 51154, 51160, 0, 51167, 51170, 51173, 51176, 51179, 51182, - 51185, 51188, 51191, 51194, 51198, 51202, 51206, 51210, 51214, 51218, - 51222, 51226, 51230, 51234, 51238, 51242, 51246, 51250, 51254, 51258, - 51262, 51266, 51270, 51274, 51278, 51282, 51286, 51290, 51294, 51298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51302, 51305, 51310, 51315, 51320, - 51325, 51330, 51335, 51340, 51345, 51350, 51354, 51359, 51364, 51369, - 51374, 51379, 51383, 51387, 51391, 51395, 51399, 51403, 51407, 51411, - 51415, 51419, 51423, 51427, 51431, 51435, 51440, 51445, 51450, 51455, - 51460, 51465, 51470, 51475, 51480, 51485, 51490, 51495, 51500, 51505, - 51511, 51517, 51522, 51527, 51530, 51533, 51536, 51539, 51542, 51545, - 51548, 51551, 51554, 51558, 51562, 51566, 51570, 51574, 51578, 51582, - 51586, 51590, 51594, 51598, 51602, 51606, 51610, 51614, 51618, 51622, - 51626, 51630, 51634, 51638, 51642, 51646, 51650, 51654, 51658, 51662, - 51666, 51670, 51674, 51678, 51681, 51685, 51689, 51693, 51697, 51701, - 51705, 51709, 51713, 51718, 51723, 51728, 51733, 51737, 51742, 51747, - 51752, 51757, 51762, 51767, 51772, 51777, 51782, 51786, 51792, 51798, - 51804, 51810, 51816, 51822, 51828, 51834, 51840, 51846, 51852, 51858, - 51861, 51864, 51867, 51872, 51875, 51878, 51881, 51884, 51887, 51890, - 51894, 51898, 51902, 51906, 51910, 51914, 51918, 51922, 51926, 51930, - 51934, 51938, 51942, 51945, 51949, 51953, 51957, 51961, 51965, 51968, - 51972, 51976, 51980, 51984, 51987, 51991, 51995, 51999, 52003, 52006, - 52010, 52014, 52018, 52022, 52026, 52030, 52034, 52038, 52042, 52046, 0, - 52050, 52053, 52056, 52059, 52062, 52065, 52068, 52071, 52074, 52077, - 52080, 52083, 52086, 52089, 52092, 52095, 52098, 52101, 52104, 52107, - 52110, 52113, 52116, 52119, 52122, 52125, 52128, 52131, 52134, 52137, - 52140, 52143, 52146, 52149, 52152, 52155, 52158, 52161, 52164, 52167, - 52170, 52173, 52176, 52179, 52182, 52185, 52188, 52191, 52194, 52197, - 52200, 52203, 52206, 52209, 52212, 52215, 52218, 52221, 52224, 52227, - 52230, 52233, 52236, 52239, 52242, 52245, 52248, 52251, 52254, 52257, - 52260, 52263, 52266, 52269, 52272, 52275, 52278, 52281, 52284, 52287, - 52290, 52293, 52296, 52299, 52302, 52305, 52308, 52311, 52314, 52322, - 52329, 52336, 52343, 52350, 52357, 52364, 52371, 52378, 52385, 52393, - 52401, 52409, 52417, 52425, 52433, 52441, 52449, 52457, 52465, 52473, - 52481, 52489, 52497, 52505, 52508, 52511, 52514, 52516, 52519, 52522, - 52525, 52530, 52535, 52538, 52545, 52552, 52559, 52566, 52569, 52574, - 52577, 52581, 52583, 52585, 52588, 52591, 52594, 52597, 52600, 52603, - 52606, 52611, 52615, 52618, 52621, 52624, 52627, 52630, 52633, 52636, - 52640, 52643, 52646, 52649, 52652, 52655, 52659, 52662, 52665, 52668, - 52673, 52678, 52683, 52688, 52693, 52698, 52703, 52708, 52714, 52723, - 52726, 52729, 52732, 52735, 52738, 52744, 52753, 52756, 52759, 52763, - 52766, 52769, 52772, 52776, 52779, 52782, 52787, 52790, 52793, 52798, - 52801, 52804, 52809, 52814, 52819, 52822, 52825, 52828, 52831, 52838, - 52841, 52844, 52847, 52849, 52852, 52855, 52858, 52863, 52866, 52869, - 52872, 52875, 52878, 52883, 52886, 52889, 52892, 52895, 52898, 52901, - 52904, 52907, 52910, 52916, 52921, 52928, 52935, 52942, 52949, 52956, - 52963, 52970, 52977, 52984, 52992, 53000, 53008, 53016, 53024, 53032, - 53040, 53048, 53056, 53064, 53072, 53080, 53088, 53096, 53104, 53112, - 53120, 53128, 53136, 53144, 53152, 53160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53163, 53171, 53179, 53189, 53195, 53199, 53203, 53209, - 53215, 53220, 53224, 53228, 53232, 53236, 53242, 53246, 53250, 53254, - 53264, 53268, 53272, 53278, 53282, 53288, 53292, 53296, 53302, 53308, - 53314, 53322, 53330, 53334, 53338, 53342, 53348, 53352, 53361, 53367, - 53371, 53375, 53379, 53383, 53387, 53391, 53398, 53404, 53410, 53414, - 53420, 53424, 53430, 53438, 53448, 53452, 53460, 53464, 53470, 53478, - 53486, 53490, 53494, 53500, 53505, 53511, 53517, 53521, 53525, 53528, - 53532, 53536, 53540, 53544, 53548, 53552, 53556, 53559, 53563, 53567, - 53571, 53575, 53579, 53583, 53586, 53590, 53594, 53597, 53601, 53605, - 53609, 53613, 53617, 53621, 53625, 53629, 53633, 53637, 53641, 53645, - 53649, 53653, 53657, 53661, 53665, 53669, 53673, 53677, 53681, 53685, - 53689, 53693, 53697, 53701, 53705, 53709, 53713, 53717, 53721, 53725, - 53729, 53733, 53737, 53741, 53745, 53749, 53753, 53757, 53761, 53765, - 53769, 53773, 53777, 53781, 53785, 53789, 53793, 53797, 53801, 53805, - 53809, 53813, 53817, 53821, 53825, 53829, 53833, 53837, 53841, 53845, - 53849, 53853, 53857, 53861, 53865, 53869, 53873, 53877, 53881, 53885, - 53889, 53893, 53897, 53901, 53905, 53909, 53913, 53917, 53921, 53925, - 53929, 53933, 53937, 53941, 53945, 53949, 53953, 53957, 53961, 53965, - 53969, 53973, 53977, 53981, 53985, 53989, 53993, 53997, 54001, 54005, - 54009, 54013, 54017, 54021, 54025, 54029, 54033, 54037, 54041, 54045, - 54049, 54053, 54057, 54061, 54065, 54069, 54073, 54077, 54081, 54085, - 54089, 54093, 54097, 54101, 54105, 54109, 54113, 54117, 54121, 54125, - 54129, 54133, 54137, 54141, 54145, 54149, 54153, 54157, 54161, 54165, - 54169, 54173, 54177, 54181, 54185, 54189, 54193, 54197, 54201, 54205, - 54209, 54213, 54217, 54221, 54225, 54229, 54233, 54237, 54241, 54245, - 54248, 54252, 54256, 54260, 54264, 54268, 54272, 54276, 54280, 54284, - 54288, 54292, 54296, 54300, 54304, 54308, 54312, 54316, 54320, 54324, - 54328, 54332, 54336, 54340, 54344, 54348, 54352, 54356, 54360, 54364, - 54368, 54372, 54376, 54380, 54384, 54388, 54392, 54396, 54400, 54404, - 54408, 54412, 54416, 54420, 54424, 54428, 54432, 54436, 54440, 54444, - 54448, 54452, 54456, 54460, 54464, 54468, 54472, 54476, 54480, 54484, - 54488, 54492, 54496, 54500, 54504, 54508, 54512, 54516, 54520, 54524, - 54528, 54532, 54536, 54540, 54544, 54548, 54552, 54556, 54560, 54564, - 54568, 54572, 54576, 54580, 54584, 54588, 54592, 54596, 54600, 54604, - 54608, 54612, 54616, 54620, 54624, 54628, 54632, 54636, 54640, 54644, - 54648, 54652, 54656, 54660, 54664, 54668, 54672, 54676, 54680, 54684, - 54688, 54692, 54696, 54700, 54704, 54708, 54711, 54715, 54719, 54723, - 54727, 54731, 54735, 54739, 54743, 54747, 54751, 54755, 54759, 54763, - 54767, 54771, 54775, 54779, 54783, 54787, 54791, 54795, 54799, 54803, - 54807, 54811, 54815, 54819, 54823, 54827, 54831, 54835, 54839, 54843, - 54847, 54851, 54855, 54859, 54863, 54867, 54871, 54875, 54879, 54883, - 54887, 54891, 54895, 54899, 54903, 54907, 54911, 54915, 54919, 54923, - 54927, 54931, 54935, 54939, 54943, 54947, 54951, 54955, 54959, 54963, - 54967, 54971, 54975, 54979, 54983, 54987, 54991, 54995, 54999, 55003, - 55007, 55011, 55015, 55019, 55023, 55027, 55031, 55035, 55039, 55043, - 55047, 55051, 55055, 55059, 55063, 55067, 55071, 55075, 55079, 55083, - 55087, 55091, 55095, 55099, 55103, 55107, 55111, 55115, 55119, 55123, - 55127, 55131, 55135, 55139, 55143, 55147, 55151, 55155, 55159, 55163, - 55167, 55171, 55175, 55179, 55183, 55187, 55191, 55195, 55199, 55203, - 55207, 55211, 55215, 55219, 55223, 55227, 55231, 55235, 55239, 55243, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 6, 9, 11, 14, 17, 19, 21, 24, 27, 29, 31, + 33, 35, 39, 41, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 69, 72, + 75, 78, 82, 86, 91, 96, 101, 105, 110, 114, 118, 122, 127, 132, 136, 140, + 144, 148, 153, 158, 162, 166, 171, 175, 179, 184, 189, 194, 199, 202, + 206, 209, 213, 216, 220, 224, 229, 234, 239, 243, 248, 252, 256, 260, + 265, 270, 274, 278, 282, 286, 291, 296, 300, 304, 309, 313, 317, 322, + 327, 332, 337, 341, 344, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 353, 358, + 361, 364, 367, 370, 373, 376, 377, 380, 386, 394, 396, 400, 403, 405, + 408, 411, 414, 417, 421, 424, 427, 431, 433, 436, 442, 450, 457, 464, + 471, 476, 483, 489, 496, 502, 508, 516, 521, 529, 536, 542, 549, 555, + 563, 570, 578, 585, 590, 597, 604, 610, 617, 623, 629, 632, 638, 645, + 651, 658, 664, 671, 676, 682, 689, 695, 702, 708, 714, 722, 727, 735, + 742, 748, 755, 761, 769, 776, 784, 791, 796, 803, 810, 816, 823, 829, + 835, 838, 844, 851, 857, 864, 870, 877, 882, 889, 896, 903, 910, 917, + 924, 931, 938, 945, 953, 961, 969, 977, 985, 993, 1001, 1009, 1016, 1023, + 1030, 1037, 1044, 1051, 1058, 1065, 1072, 1079, 1086, 1093, 1101, 1109, + 1117, 1125, 1133, 1141, 1149, 1157, 1165, 1173, 1180, 1187, 1194, 1201, + 1209, 1217, 1225, 1233, 1241, 1249, 1257, 1263, 1268, 1273, 1281, 1289, + 1297, 1305, 1310, 1317, 1324, 1332, 1340, 1348, 1356, 1366, 1376, 1383, + 1390, 1397, 1404, 1412, 1420, 1428, 1436, 1447, 1452, 1457, 1464, 1471, + 1478, 1485, 1492, 1499, 1504, 1509, 1516, 1523, 1531, 1539, 1547, 1555, + 1562, 1569, 1577, 1585, 1593, 1601, 1609, 1617, 1625, 1633, 1641, 1649, + 1656, 1663, 1669, 1675, 1682, 1689, 1696, 1703, 1711, 1719, 1726, 1733, + 1740, 1747, 1755, 1763, 1771, 1779, 1786, 1793, 1800, 1808, 1816, 1824, + 1832, 1837, 1843, 1849, 1856, 1863, 1868, 1873, 1879, 1886, 1893, 1900, + 1907, 1915, 1923, 1929, 1934, 1939, 1945, 1952, 1959, 1966, 1971, 1976, + 1981, 1988, 1995, 2002, 2009, 2016, 2021, 2029, 2039, 2047, 2054, 2061, + 2066, 2071, 2078, 2085, 2089, 2094, 2099, 2104, 2111, 2120, 2127, 2134, + 2143, 2150, 2157, 2162, 2169, 2176, 2183, 2190, 2197, 2202, 2209, 2216, + 2224, 2229, 2234, 2239, 2249, 2253, 2259, 2265, 2271, 2277, 2285, 2298, + 2306, 2311, 2321, 2326, 2331, 2341, 2346, 2353, 2360, 2368, 2376, 2383, + 2390, 2397, 2404, 2414, 2424, 2433, 2442, 2452, 2462, 2472, 2482, 2487, + 2497, 2507, 2517, 2527, 2535, 2543, 2550, 2557, 2565, 2573, 2581, 2589, + 2596, 2603, 2613, 2623, 2631, 2639, 2647, 2652, 2662, 2667, 2674, 2681, + 2686, 2691, 2699, 2707, 2717, 2727, 2734, 2741, 2749, 2757, 2765, 2773, + 2782, 2791, 2799, 2807, 2816, 2825, 2834, 2843, 2853, 2863, 2871, 2879, + 2888, 2897, 2906, 2915, 2925, 2935, 2943, 2951, 2960, 2969, 2978, 2987, + 2996, 3005, 3010, 3015, 3023, 3031, 3041, 3049, 3054, 3059, 3066, 3073, + 3080, 3087, 3094, 3101, 3111, 3121, 3131, 3141, 3148, 3155, 3165, 3175, + 3183, 3191, 3199, 3207, 3215, 3222, 3229, 3236, 3242, 3249, 3256, 3263, + 3272, 3282, 3292, 3299, 3306, 3312, 3317, 3322, 3328, 3334, 3341, 3348, + 3359, 3369, 3376, 3383, 3390, 3397, 3402, 3407, 3413, 3419, 3425, 3433, + 3441, 3448, 3453, 3458, 3465, 3471, 3478, 3487, 3496, 3505, 3512, 3517, + 3522, 3527, 3534, 3539, 3546, 3553, 3560, 3565, 3570, 3579, 3587, 3596, + 3601, 3606, 3616, 3623, 3631, 3640, 3645, 3651, 3657, 3664, 3669, 3674, + 3684, 3692, 3701, 3709, 3717, 3726, 3731, 3738, 3745, 3750, 3761, 3769, + 3777, 3783, 3792, 3797, 3802, 3809, 3814, 3820, 3826, 3832, 3841, 3849, + 3854, 3862, 3868, 3876, 3884, 3890, 3896, 3902, 3910, 3918, 3923, 3931, + 3937, 3942, 3949, 3957, 3966, 3973, 3980, 3990, 3997, 4004, 4014, 4021, + 4028, 4035, 4041, 4047, 4056, 4068, 4072, 4079, 4084, 4088, 4093, 4101, + 4108, 4113, 4118, 4122, 4127, 4132, 4136, 4141, 4147, 4153, 4159, 4166, + 4171, 4176, 4181, 4186, 4192, 4194, 4199, 4203, 4209, 4215, 4221, 4226, + 4233, 4240, 4246, 4253, 4261, 4269, 4274, 4279, 4283, 4288, 4290, 4292, + 4295, 4297, 4299, 4304, 4309, 4315, 4320, 4324, 4328, 4333, 4341, 4347, + 4352, 4358, 4363, 4369, 4377, 4385, 4389, 4393, 4398, 4404, 4410, 4416, + 4422, 4427, 4435, 4444, 4453, 4457, 4463, 4470, 4477, 4484, 4491, 4495, + 4501, 4506, 4511, 4516, 4521, 4523, 4526, 4529, 4532, 4535, 4537, 4541, + 4545, 4551, 4554, 4559, 4565, 4571, 4574, 4579, 4584, 4588, 4593, 4599, + 4605, 4611, 4616, 4621, 4626, 4629, 4635, 4640, 4645, 4649, 4654, 4660, + 4666, 4669, 4673, 4677, 4681, 4684, 4687, 4692, 4696, 4703, 4707, 4713, + 4717, 4723, 4727, 4731, 4735, 4740, 4745, 4751, 4756, 4763, 4769, 4775, + 4781, 4784, 4788, 4792, 4795, 4799, 4804, 4809, 4813, 4817, 4823, 4827, + 4831, 4836, 4842, 4847, 4852, 4856, 4862, 4867, 4872, 4877, 4882, 4888, + 4891, 4895, 4900, 4905, 4914, 4920, 4925, 4929, 4934, 4938, 4943, 4947, + 4951, 4956, 4959, 4965, 4970, 4975, 4980, 4985, 4990, 4995, 5001, 5007, + 5012, 5017, 5022, 5028, 5033, 5039, 5044, 5049, 5056, 5063, 5066, 5070, + 5077, 0, 0, 5084, 5087, 5095, 5104, 5114, 0, 0, 0, 0, 0, 5118, 5121, + 5126, 5134, 5139, 5147, 5155, 0, 5163, 0, 5171, 5179, 5187, 5198, 5203, + 5208, 5213, 5218, 5223, 5228, 5233, 5238, 5243, 5248, 5253, 5258, 5263, + 5268, 5273, 5278, 0, 5283, 5288, 5293, 5298, 5303, 5308, 5313, 5318, + 5326, 5334, 5342, 5350, 5358, 5366, 5377, 5382, 5387, 5392, 5397, 5402, + 5407, 5412, 5417, 5422, 5427, 5432, 5437, 5442, 5447, 5452, 5457, 5462, + 5468, 5473, 5478, 5483, 5488, 5493, 5498, 5503, 5511, 5519, 5527, 5535, + 5543, 5548, 5552, 5556, 5563, 5573, 5583, 5587, 5591, 5595, 5601, 5608, + 5612, 5617, 5621, 5626, 5630, 5635, 5639, 5644, 5649, 5654, 5659, 5664, + 5669, 5674, 5679, 5684, 5689, 5694, 5699, 5704, 5709, 5714, 5718, 5722, + 5728, 5732, 5737, 5743, 5750, 5755, 5760, 5767, 5772, 5777, 5783, 5791, + 5800, 5810, 5818, 5823, 5828, 5833, 5840, 5845, 5851, 5856, 5861, 5866, + 5871, 5876, 5881, 5889, 5895, 5900, 5904, 5909, 5914, 5919, 5924, 5929, + 5934, 5939, 5943, 5949, 5953, 5958, 5963, 5968, 5972, 5977, 5982, 5987, + 5992, 5996, 6001, 6005, 6010, 6015, 6020, 6025, 6031, 6036, 6042, 6046, + 6051, 6055, 6059, 6064, 6069, 6074, 6079, 6084, 6089, 6094, 6098, 6104, + 6108, 6113, 6118, 6123, 6127, 6132, 6137, 6142, 6147, 6151, 6156, 6160, + 6165, 6170, 6175, 6180, 6186, 6191, 6197, 6201, 6206, 6210, 6218, 6223, + 6228, 6233, 6240, 6245, 6251, 6256, 6261, 6266, 6271, 6276, 6281, 6289, + 6295, 6300, 6305, 6310, 6315, 6320, 6326, 6332, 6339, 6346, 6355, 6364, + 6371, 6378, 6387, 6396, 6401, 6406, 6411, 6416, 6421, 6426, 6431, 6436, + 6447, 6458, 6463, 6468, 6475, 6482, 6490, 6498, 6503, 6508, 6513, 6518, + 6522, 6526, 6530, 6535, 6540, 6544, 6551, 6556, 6566, 6576, 6582, 6588, + 6596, 6604, 6612, 6620, 6627, 6634, 6643, 6652, 6660, 6668, 6676, 6684, + 6691, 6698, 6705, 6712, 6718, 6724, 6730, 6736, 6744, 6752, 6759, 6766, + 6775, 6784, 6790, 6796, 6804, 6812, 6820, 6828, 6834, 6840, 6848, 6856, + 6864, 6872, 6879, 6886, 6894, 6902, 6910, 6918, 6923, 6928, 6935, 6942, + 6952, 6962, 6966, 6974, 6982, 6988, 6994, 7002, 7010, 7017, 7024, 7032, + 7040, 7047, 7054, 7062, 7070, 7075, 7082, 7089, 7095, 7101, 7107, 7113, + 7121, 7129, 7134, 7139, 7146, 7153, 7160, 7167, 7174, 7181, 7188, 7195, + 7203, 7211, 7218, 7225, 7231, 7237, 7243, 7249, 7257, 7265, 7271, 7277, + 7284, 7291, 7297, 7303, 7310, 7317, 7324, 7331, 7339, 7347, 7354, 7361, + 7370, 7379, 7386, 7393, 7400, 7407, 7414, 7421, 7428, 7435, 7442, 7449, + 7456, 7463, 7470, 7477, 7484, 7491, 7498, 7505, 7512, 7519, 7525, 7531, + 7538, 7545, 7550, 7555, 7560, 7565, 7570, 7575, 7580, 7585, 7590, 7595, + 7601, 7607, 7616, 7625, 7634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7643, 7648, 7653, 7658, 7663, 7668, 7673, 7678, 7683, 7687, 7692, 7697, + 7702, 7707, 7712, 7717, 7722, 7727, 7732, 7737, 7742, 7747, 7752, 7757, + 7762, 7767, 7772, 7777, 7781, 7786, 7791, 7796, 7801, 7806, 7811, 7816, + 7821, 7826, 0, 0, 7831, 7838, 7841, 7845, 7849, 7852, 7856, 0, 7860, + 7865, 7870, 7875, 7880, 7885, 7890, 7895, 7900, 7904, 7909, 7914, 7919, + 7924, 7929, 7934, 7939, 7944, 7949, 7954, 7959, 7964, 7969, 7974, 7979, + 7984, 7989, 7994, 7998, 8003, 8008, 8013, 8018, 8023, 8028, 8033, 8038, + 8043, 8048, 0, 8055, 8060, 0, 0, 0, 0, 0, 0, 8063, 8068, 8073, 8078, + 8085, 8092, 8097, 8102, 8107, 8112, 8117, 8122, 8127, 8134, 8139, 8146, + 8153, 8158, 8165, 8170, 8175, 8180, 8187, 8192, 8197, 8204, 8213, 8218, + 8223, 8228, 8233, 8239, 8244, 8251, 8258, 8265, 8270, 8275, 8280, 8285, + 8290, 8295, 8305, 8310, 8318, 8323, 8328, 8333, 8338, 8345, 8352, 8359, + 8365, 8370, 8377, 0, 0, 0, 0, 0, 0, 0, 0, 8384, 8388, 8392, 8396, 8400, + 8404, 8408, 8412, 8416, 8420, 8424, 8429, 8433, 8437, 8442, 8446, 8451, + 8455, 8459, 8463, 8468, 8472, 8477, 8481, 8485, 8489, 8493, 0, 0, 0, 0, + 0, 8497, 8504, 8512, 8519, 8524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8529, + 8532, 8536, 8541, 0, 0, 8545, 8551, 8557, 8560, 8567, 8576, 8579, 8582, + 8587, 8593, 8597, 8605, 8611, 8617, 8625, 8629, 8634, 8644, 8649, 8653, + 8657, 8661, 0, 0, 8664, 8671, 0, 8675, 8679, 8686, 8692, 8699, 8705, + 8711, 8715, 8719, 8725, 8729, 8733, 8737, 8741, 8745, 8749, 8753, 8757, + 8761, 8765, 8769, 8773, 8777, 8781, 8785, 8789, 8793, 8801, 8809, 8818, + 8827, 8836, 8839, 8843, 8847, 8851, 8855, 8859, 8863, 8867, 8871, 8876, + 8880, 8883, 8886, 8889, 8892, 8895, 8898, 8901, 8904, 8908, 8911, 8914, + 8919, 8924, 8930, 8933, 8940, 8949, 8954, 8958, 0, 8965, 8970, 8974, + 8978, 8982, 8986, 8990, 8994, 8998, 9002, 9006, 9010, 9015, 9020, 9027, + 9033, 9039, 9045, 9050, 9058, 9066, 9071, 9077, 9083, 9089, 9095, 9099, + 9103, 9107, 9114, 9124, 9128, 9132, 9136, 9142, 9150, 9154, 9158, 9165, + 9169, 9173, 9177, 9184, 9191, 9203, 9207, 9211, 9215, 9225, 9234, 9238, + 9245, 9252, 9259, 9268, 9279, 9287, 9291, 9300, 9311, 9319, 9332, 9340, + 9348, 9356, 9364, 9370, 9379, 9386, 9390, 9398, 9402, 9409, 9417, 9421, + 9427, 9434, 9441, 9445, 9453, 9457, 9464, 9468, 9476, 9480, 9488, 9494, + 9500, 9507, 9514, 9521, 9527, 9531, 9538, 9546, 9552, 9559, 9566, 9572, + 9581, 9589, 9596, 9602, 9606, 9609, 9613, 9619, 9627, 9631, 9637, 9643, + 9649, 9656, 9659, 9666, 9671, 9679, 9684, 9688, 9700, 9712, 9718, 9724, + 9729, 9735, 9740, 9746, 9756, 9763, 9772, 9782, 9788, 9793, 9798, 9802, + 9806, 9811, 9816, 9822, 9830, 9838, 9849, 9854, 9862, 9870, 9877, 9883, + 9889, 9895, 9901, 9907, 9913, 9919, 9925, 9931, 9938, 9945, 9952, 9958, + 9966, 9974, 9980, 9987, 9994, 9999, 10004, 10008, 10015, 10022, 10031, + 10040, 10043, 10048, 10053, 0, 10058, 10062, 10066, 10072, 10076, 10080, + 10086, 10090, 10098, 10102, 10106, 10110, 10114, 10118, 10124, 10128, + 10134, 10138, 10142, 10146, 10150, 10154, 10159, 10162, 10166, 10171, + 10175, 10179, 10183, 10187, 10191, 10197, 10203, 10209, 10213, 10217, + 10222, 10226, 10230, 10235, 10239, 10243, 10250, 10257, 10261, 10265, + 10270, 10274, 10278, 10281, 10286, 10289, 10292, 10297, 10302, 10306, + 10310, 10316, 10322, 10325, 0, 0, 10328, 10334, 10340, 10346, 10356, + 10368, 10380, 10397, 10409, 10420, 10427, 10434, 10445, 10460, 10471, + 10477, 10486, 10494, 10506, 10516, 10524, 10536, 10543, 10551, 10563, + 10569, 10575, 10583, 10591, 10598, 10603, 10613, 10620, 10630, 10640, + 10653, 10667, 10681, 10691, 10702, 10713, 10726, 10739, 10753, 10765, + 10777, 10790, 10803, 10815, 10828, 10836, 10844, 10849, 10854, 10859, + 10864, 10869, 10874, 10879, 10884, 10889, 10894, 10899, 10904, 10909, + 10914, 10919, 10924, 10929, 10934, 10939, 10944, 10949, 10954, 10959, + 10964, 10969, 10974, 10979, 10984, 10989, 10994, 10999, 11004, 11008, + 11013, 11018, 11023, 11028, 11033, 11037, 11041, 11045, 11049, 11053, + 11057, 11061, 11065, 11069, 11073, 11077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11082, 11086, 11089, 11092, 11095, 11098, 11101, 11104, + 11107, 11110, 11113, 11116, 11120, 11123, 11126, 11129, 11133, 11136, + 11140, 11143, 11147, 11150, 11154, 11158, 11162, 11166, 11169, 11173, + 11177, 11181, 11185, 11188, 11192, 11198, 11201, 11205, 11209, 11212, + 11216, 11219, 11225, 11231, 11237, 11242, 11249, 11256, 11264, 11271, + 11277, 11283, 11290, 11295, 11300, 11305, 11310, 11316, 11320, 11323, + 11327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11330, 11334, 11338, + 11342, 11347, 11350, 11354, 11357, 11361, 11364, 11368, 11372, 11376, + 11381, 11386, 11389, 11393, 11398, 11403, 11406, 11410, 11413, 11417, + 11421, 11425, 11429, 11433, 11437, 11441, 11445, 11449, 11453, 11457, + 11461, 11465, 11469, 11473, 11477, 11481, 11485, 11489, 11493, 11496, + 11500, 11504, 11508, 11511, 11514, 11517, 11521, 11525, 11529, 11533, + 11537, 11541, 11545, 11549, 0, 0, 11552, 11556, 11560, 11565, 11569, + 11574, 11578, 11583, 11588, 11594, 11600, 11606, 11610, 11615, 11621, + 11627, 11631, 11636, 0, 0, 11640, 11643, 11649, 11655, 11660, 0, 0, 0, + 11665, 11669, 11673, 11677, 11681, 11685, 11689, 11693, 11697, 11702, + 11707, 11712, 11718, 11721, 11725, 11729, 11732, 11735, 11738, 11741, + 11744, 11747, 11750, 11753, 11756, 11760, 11767, 0, 0, 0, 0, 0, 0, 0, 0, + 11772, 11776, 11780, 11786, 11790, 0, 11794, 11798, 11802, 0, 11806, + 11809, 11813, 11816, 11820, 11823, 11827, 11831, 0, 0, 11835, 11838, 0, + 0, 11842, 11845, 11849, 11852, 11856, 11860, 11864, 11868, 11872, 11876, + 11880, 11884, 11888, 11892, 11896, 11900, 11904, 11908, 11912, 11916, + 11920, 11924, 0, 11928, 11931, 11935, 11939, 11943, 11946, 11949, 0, + 11952, 0, 0, 0, 11956, 11960, 11964, 11968, 0, 0, 11971, 11975, 11979, + 11984, 11988, 11993, 11997, 12002, 12007, 0, 0, 12013, 12017, 0, 0, + 12022, 12026, 12031, 12035, 0, 0, 0, 0, 0, 0, 0, 0, 12041, 0, 0, 0, 0, + 12047, 12051, 0, 12055, 12059, 12064, 12069, 12074, 0, 0, 12080, 12084, + 12087, 12090, 12093, 12096, 12099, 12102, 12105, 12108, 12111, 12120, + 12128, 12132, 12136, 12142, 12148, 12154, 12160, 12174, 12181, 0, 0, 0, + 0, 0, 0, 12184, 12190, 12194, 0, 12198, 12201, 12205, 12208, 12212, + 12215, 0, 0, 0, 0, 12219, 12223, 0, 0, 12227, 12231, 12235, 12238, 12242, + 12246, 12250, 12254, 12258, 12262, 12266, 12270, 12274, 12278, 12282, + 12286, 12290, 12294, 12298, 12302, 12306, 12310, 0, 12314, 12317, 12321, + 12325, 12329, 12332, 12335, 0, 12338, 12342, 0, 12346, 12350, 0, 12354, + 12358, 0, 0, 12361, 0, 12365, 12370, 12374, 12379, 12383, 0, 0, 0, 0, + 12388, 12393, 0, 0, 12398, 12403, 12408, 0, 0, 0, 12412, 0, 0, 0, 0, 0, + 0, 0, 12416, 12420, 12424, 12428, 0, 12432, 0, 0, 0, 0, 0, 0, 0, 12436, + 12440, 12443, 12446, 12449, 12452, 12455, 12458, 12461, 12464, 12467, + 12470, 12473, 12476, 12479, 12484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12488, 12492, 12496, 0, 12500, 12503, 12507, 12510, 12514, 12517, 12521, + 12525, 12529, 0, 12534, 12537, 12541, 0, 12546, 12549, 12553, 12556, + 12560, 12564, 12568, 12572, 12576, 12580, 12584, 12588, 12592, 12596, + 12600, 12604, 12608, 12612, 12616, 12620, 12624, 12628, 0, 12632, 12635, + 12639, 12643, 12647, 12650, 12653, 0, 12656, 12660, 0, 12664, 12668, + 12672, 12676, 12680, 0, 0, 12683, 12687, 12691, 12696, 12700, 12705, + 12709, 12714, 12719, 12725, 0, 12731, 12735, 12740, 0, 12746, 12750, + 12755, 0, 0, 12759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12762, + 12767, 12772, 12777, 0, 0, 12783, 12787, 12790, 12793, 12796, 12799, + 12802, 12805, 12808, 12811, 0, 12814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12818, 12822, 12826, 0, 12830, 12833, 12837, 12840, 12844, + 12847, 12851, 12855, 0, 0, 12859, 12862, 0, 0, 12866, 12869, 12873, + 12876, 12880, 12884, 12888, 12892, 12896, 12900, 12904, 12908, 12912, + 12916, 12920, 12924, 12928, 12932, 12936, 12940, 12944, 12948, 0, 12952, + 12955, 12959, 12963, 12967, 12970, 12973, 0, 12976, 12980, 0, 12984, + 12988, 12992, 12996, 13000, 0, 0, 13003, 13007, 13011, 13016, 13020, + 13025, 13029, 13034, 13039, 0, 0, 13045, 13049, 0, 0, 13054, 13058, + 13063, 0, 0, 0, 0, 0, 0, 0, 0, 13067, 13073, 0, 0, 0, 0, 13079, 13083, 0, + 13087, 13091, 13096, 13101, 13106, 0, 0, 13112, 13116, 13119, 13122, + 13125, 13128, 13131, 13134, 13137, 13140, 13143, 13146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13150, 13154, 0, 13158, 13161, 13165, + 13168, 13172, 13175, 0, 0, 0, 13179, 13182, 13186, 0, 13190, 13193, + 13197, 13201, 0, 0, 0, 13204, 13208, 0, 13212, 0, 13216, 13220, 0, 0, 0, + 13224, 13228, 0, 0, 0, 13232, 13236, 13240, 0, 0, 0, 13243, 13246, 13249, + 13252, 13256, 13260, 13264, 13268, 13272, 13276, 13280, 13284, 0, 0, 0, + 0, 13287, 13292, 13296, 13301, 13305, 0, 0, 0, 13310, 13314, 13319, 0, + 13324, 13328, 13333, 13338, 0, 0, 13342, 0, 0, 0, 0, 0, 0, 13345, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13351, 13355, 13358, 13361, 13364, + 13367, 13370, 13373, 13376, 13379, 13382, 13386, 13391, 13396, 13400, + 13404, 13408, 13412, 13416, 13421, 13425, 0, 0, 0, 0, 0, 0, 13428, 13432, + 13436, 0, 13440, 13443, 13447, 13450, 13454, 13457, 13461, 13465, 0, + 13469, 13472, 13476, 0, 13480, 13483, 13487, 13491, 13494, 13498, 13502, + 13506, 13510, 13514, 13518, 13522, 13526, 13530, 13534, 13538, 13542, + 13546, 13550, 13554, 13558, 13562, 13566, 0, 13570, 13573, 13577, 13581, + 13585, 13588, 13591, 13594, 13598, 13602, 0, 13606, 13610, 13614, 13618, + 13622, 0, 0, 0, 13625, 13629, 13634, 13638, 13643, 13647, 13652, 13657, + 0, 13663, 13667, 13672, 0, 13677, 13681, 13686, 13691, 0, 0, 0, 0, 0, 0, + 0, 13695, 13699, 0, 13705, 13709, 0, 0, 0, 0, 0, 0, 13713, 13718, 13723, + 13728, 0, 0, 13734, 13738, 13741, 13744, 13747, 13750, 13753, 13756, + 13759, 13762, 0, 0, 0, 0, 0, 0, 0, 0, 13765, 13778, 13790, 13802, 13814, + 13826, 13838, 13850, 0, 0, 13854, 13858, 0, 13862, 13865, 13869, 13872, + 13876, 13879, 13883, 13887, 0, 13891, 13894, 13898, 0, 13902, 13905, + 13909, 13913, 13916, 13920, 13924, 13928, 13932, 13936, 13940, 13944, + 13948, 13952, 13956, 13960, 13964, 13968, 13972, 13976, 13980, 13984, + 13988, 0, 13992, 13995, 13999, 14003, 14007, 14010, 14013, 14016, 14020, + 14024, 0, 14028, 14032, 14036, 14040, 14044, 0, 0, 14047, 14051, 14055, + 14060, 14064, 14069, 14073, 14078, 14083, 0, 14089, 14093, 14098, 0, + 14103, 14107, 14112, 14117, 0, 0, 0, 0, 0, 0, 0, 14121, 14125, 0, 0, 0, + 0, 0, 0, 0, 14131, 0, 14135, 14140, 14145, 14150, 0, 0, 14156, 14160, + 14163, 14166, 14169, 14172, 14175, 14178, 14181, 14184, 0, 14187, 14191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14195, 14199, 0, 14203, + 14206, 14210, 14213, 14217, 14220, 14224, 14228, 0, 14232, 14235, 14239, + 0, 14243, 14246, 14250, 14254, 14257, 14261, 14265, 14269, 14273, 14277, + 14281, 14285, 14289, 14293, 14297, 14301, 14305, 14309, 14313, 14317, + 14321, 14325, 14329, 0, 14333, 14336, 14340, 14344, 14348, 14351, 14354, + 14357, 14361, 14365, 14369, 14373, 14377, 14381, 14385, 14389, 0, 0, 0, + 14392, 14396, 14401, 14405, 14410, 14414, 14419, 14424, 0, 14430, 14434, + 14439, 0, 14444, 14448, 14453, 14458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14462, + 0, 0, 0, 0, 0, 0, 0, 0, 14468, 14473, 14478, 14483, 0, 0, 14489, 14493, + 14496, 14499, 14502, 14505, 14508, 14511, 14514, 14517, 14520, 14524, + 14529, 14534, 14540, 14546, 0, 0, 0, 14552, 14556, 14562, 14567, 14573, + 14578, 14584, 0, 0, 14590, 14594, 0, 14598, 14602, 14606, 14610, 14614, + 14618, 14622, 14626, 14630, 14634, 14638, 14642, 14646, 14650, 14654, + 14658, 14662, 14666, 0, 0, 0, 14670, 14676, 14682, 14688, 14694, 14700, + 14706, 14712, 14718, 14724, 14730, 14736, 14744, 14750, 14756, 14762, + 14768, 14774, 14780, 14786, 14792, 14798, 14804, 14810, 0, 14816, 14822, + 14828, 14834, 14840, 14846, 14850, 14856, 14860, 0, 14864, 0, 0, 14870, + 14874, 14880, 14886, 14892, 14896, 14902, 0, 0, 0, 14906, 0, 0, 0, 0, + 14910, 14915, 14922, 14929, 14936, 14943, 0, 14950, 0, 14957, 14962, + 14967, 14974, 14981, 14990, 15001, 15010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15015, 15022, 15029, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15034, 15040, 15046, 15052, 15058, 15064, 15070, 15076, 15082, + 15088, 15094, 15100, 15106, 15112, 15118, 15123, 15129, 15135, 15141, + 15147, 15153, 15158, 15164, 15170, 15176, 15182, 15188, 15194, 15200, + 15206, 15212, 15218, 15224, 15229, 15235, 15241, 15245, 15251, 15255, + 15261, 15267, 15273, 15279, 15285, 15291, 15296, 15302, 15306, 15311, + 15317, 15323, 15329, 15334, 15340, 15346, 15352, 15357, 15363, 0, 0, 0, + 0, 15367, 15373, 15378, 15384, 15389, 15397, 15405, 15409, 15413, 15417, + 15423, 15429, 15435, 15441, 15445, 15449, 15453, 15457, 15461, 15464, + 15467, 15470, 15473, 15476, 15479, 15482, 15485, 15488, 15492, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15496, 15500, 0, 15506, 0, 0, 15512, 15516, + 0, 15520, 0, 0, 15526, 0, 0, 0, 0, 0, 0, 15530, 15534, 15537, 15543, 0, + 15549, 15553, 15557, 15561, 15567, 15573, 15579, 0, 15585, 15589, 15593, + 0, 15599, 0, 15605, 0, 0, 15609, 15615, 0, 15621, 15624, 15630, 15633, + 15637, 15644, 15649, 15654, 15658, 15663, 15668, 15673, 15677, 0, 15682, + 15689, 15695, 0, 0, 15701, 15705, 15710, 15714, 15719, 0, 15724, 0, + 15729, 15735, 15741, 15747, 15753, 15757, 0, 0, 15760, 15764, 15767, + 15770, 15773, 15776, 15779, 15782, 15785, 15788, 0, 0, 15791, 15796, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15801, 15805, 15816, 15831, 15846, 15856, + 15867, 15880, 15891, 15897, 15905, 15915, 15921, 15929, 15933, 15939, + 15945, 15953, 15963, 15971, 15984, 15990, 15998, 16006, 16018, 16025, + 16033, 16041, 16049, 16057, 16065, 16073, 16083, 16087, 16090, 16093, + 16096, 16099, 16102, 16105, 16108, 16111, 16114, 16118, 16122, 16126, + 16130, 16134, 16138, 16142, 16146, 16150, 16155, 16161, 16171, 16185, + 16195, 16201, 16207, 16215, 16223, 16231, 16239, 16245, 16251, 16254, + 16258, 16262, 16266, 16270, 16274, 16278, 0, 16282, 16286, 16290, 16294, + 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16329, 16333, + 16337, 16341, 16344, 16348, 16352, 16356, 16360, 16364, 16368, 16372, + 16376, 16379, 16382, 16386, 16390, 16394, 16398, 16401, 16404, 16408, + 16413, 16417, 0, 0, 0, 0, 16421, 16426, 16430, 16435, 16439, 16444, + 16449, 16455, 16460, 16466, 16470, 16475, 16479, 16484, 16494, 16500, + 16505, 16511, 16521, 16527, 16531, 16535, 16541, 16547, 16555, 16561, + 16569, 0, 0, 0, 0, 16577, 16582, 16588, 16594, 16600, 16606, 16612, + 16618, 0, 16624, 16630, 16636, 16642, 16648, 16654, 16660, 16666, 16672, + 16678, 16684, 16690, 16695, 16701, 16707, 16713, 16718, 16724, 16730, + 16736, 16742, 16748, 16754, 16760, 16766, 16771, 16776, 16782, 16788, + 16794, 16800, 16805, 16810, 16816, 16824, 16831, 0, 16838, 16845, 16858, + 16865, 16872, 16880, 16888, 16894, 16900, 16906, 16916, 16921, 16927, + 16937, 16947, 0, 16957, 16967, 16975, 16987, 16999, 17005, 17019, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17034, 17037, 17041, + 17045, 17049, 17053, 17057, 17061, 17065, 17069, 17073, 17077, 17081, + 17085, 17089, 17093, 17097, 17101, 17105, 17109, 17113, 17117, 17120, + 17124, 17128, 17132, 17135, 17138, 17141, 17145, 17149, 17153, 17156, + 17160, 17163, 17168, 17171, 17175, 17178, 17182, 17185, 17190, 17193, + 17197, 17204, 17209, 17213, 17218, 17222, 17227, 17231, 17236, 17243, + 17249, 17254, 17258, 17262, 17266, 17270, 17274, 17280, 17286, 17293, + 17299, 17305, 17309, 17312, 17315, 17318, 17321, 17324, 17327, 17330, + 17333, 17336, 17342, 17346, 17350, 17354, 17358, 17362, 17366, 17370, + 17374, 17379, 17383, 17388, 17393, 17399, 17404, 17410, 17416, 17422, + 17428, 17434, 17443, 17451, 17460, 17468, 17477, 17486, 17497, 17507, + 17517, 17528, 17539, 17549, 17559, 17569, 17579, 17589, 17599, 17609, + 17619, 17627, 17634, 17640, 17647, 17652, 17658, 17664, 17670, 17676, + 17682, 17688, 17694, 17700, 17706, 17712, 17718, 17723, 17732, 17739, + 17745, 17752, 17760, 17766, 17772, 17778, 17784, 17792, 17800, 17810, + 17818, 17826, 17832, 17837, 17842, 17847, 17852, 17857, 17862, 17867, + 17872, 0, 0, 0, 0, 17877, 17882, 17888, 17893, 17898, 17903, 17908, + 17913, 17918, 17923, 17928, 17933, 17938, 17943, 17948, 17953, 17958, + 17963, 17968, 17973, 17978, 17983, 17988, 17993, 17998, 18003, 18008, + 18013, 18018, 18023, 18028, 18033, 18038, 18043, 18048, 18053, 18058, + 18063, 18068, 18073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18078, 18082, 18086, + 18090, 18094, 18098, 18102, 18106, 18110, 18114, 18118, 18122, 18126, + 18130, 18134, 18138, 18142, 18146, 18150, 18154, 18158, 18162, 18166, + 18170, 18174, 18178, 18182, 18186, 18190, 18194, 18198, 18202, 18206, + 18210, 18214, 18218, 18222, 18226, 18230, 18234, 18238, 18242, 18247, + 18251, 18256, 0, 0, 0, 18261, 18265, 18269, 18273, 18277, 18281, 18285, + 18289, 18293, 18297, 18301, 18305, 18309, 18313, 18317, 18321, 18325, + 18329, 18333, 18337, 18341, 18345, 18349, 18353, 18357, 18361, 18365, + 18369, 18373, 18377, 18381, 18385, 18389, 18393, 18397, 18401, 18405, + 18409, 18413, 18417, 18421, 18425, 18429, 18433, 18437, 18441, 18445, + 18449, 18453, 18457, 18461, 18465, 18469, 18473, 18477, 18481, 18485, + 18489, 18493, 18497, 18501, 18505, 18509, 18513, 18517, 18521, 18525, + 18529, 18533, 18537, 18541, 18545, 18549, 18553, 18557, 18561, 18565, + 18569, 18573, 18577, 18581, 18585, 18589, 18593, 18597, 18601, 18605, + 18609, 18613, 18617, 0, 0, 0, 0, 0, 18621, 18625, 18629, 18632, 18636, + 18639, 18643, 18647, 18650, 18654, 18658, 18661, 18665, 18669, 18673, + 18677, 18680, 18684, 18688, 18692, 18696, 18700, 18704, 18707, 18711, + 18715, 18719, 18723, 18727, 18731, 18735, 18739, 18743, 18747, 18751, + 18755, 18759, 18763, 18767, 18771, 18775, 18779, 18783, 18787, 18791, + 18795, 18799, 18803, 18807, 18811, 18815, 18819, 18823, 18827, 18831, + 18835, 18839, 18843, 18847, 18851, 18855, 18859, 18863, 18867, 18871, + 18875, 18879, 18883, 0, 0, 0, 0, 0, 18887, 18891, 18895, 18899, 18903, + 18907, 18911, 18915, 18919, 18923, 18927, 18931, 18935, 18939, 18943, + 18947, 18951, 18955, 18959, 18963, 18967, 18971, 18975, 18979, 18983, + 18987, 18991, 18995, 18999, 19003, 19007, 19011, 19015, 19019, 19023, + 19027, 19031, 19035, 19039, 19043, 19047, 19051, 19055, 19059, 19063, + 19067, 19071, 19075, 19079, 19083, 19087, 19091, 19095, 19099, 19103, + 19107, 19111, 19115, 19119, 19123, 19127, 19131, 19135, 19139, 19143, + 19147, 19151, 19155, 19159, 19163, 19167, 19171, 19175, 19179, 19183, + 19187, 19191, 19195, 19199, 19203, 19207, 19211, 0, 0, 0, 0, 0, 0, 19215, + 19218, 19222, 19226, 19230, 19234, 19238, 19242, 19246, 19250, 19254, + 19258, 19262, 19266, 19270, 19274, 19278, 19282, 19286, 19290, 19294, + 19298, 19302, 19306, 19310, 19313, 19317, 19321, 19325, 19329, 19333, + 19337, 19341, 19345, 19349, 19353, 19357, 19361, 19365, 19369, 19373, + 19376, 19380, 19384, 19388, 19392, 19396, 19400, 19404, 19408, 19412, + 19416, 19420, 19424, 19428, 19432, 19436, 19440, 19444, 19448, 19452, + 19456, 19460, 19464, 19468, 19472, 19476, 19480, 19484, 19488, 19492, + 19496, 19500, 0, 19504, 19508, 19512, 19516, 0, 0, 19520, 19524, 19528, + 19532, 19536, 19540, 19544, 0, 19548, 0, 19552, 19556, 19560, 19564, 0, + 0, 19568, 19572, 19576, 19580, 19584, 19588, 19592, 19596, 19600, 19604, + 19608, 19612, 19616, 19620, 19624, 19628, 19632, 19636, 19640, 19644, + 19648, 19652, 19656, 19659, 19663, 19667, 19671, 19675, 19679, 19683, + 19687, 19691, 19695, 19699, 19703, 19707, 19711, 19715, 19719, 19723, + 19727, 0, 19731, 19735, 19739, 19743, 0, 0, 19747, 19751, 19755, 19759, + 19763, 19767, 19771, 19775, 19779, 19783, 19787, 19791, 19795, 19799, + 19803, 19807, 19811, 19816, 19821, 19826, 19832, 19838, 19843, 19848, + 19854, 19857, 19861, 19865, 19869, 19873, 19877, 19881, 19885, 0, 19889, + 19893, 19897, 19901, 0, 0, 19905, 19909, 19913, 19917, 19921, 19925, + 19929, 0, 19933, 0, 19937, 19941, 19945, 19949, 0, 0, 19953, 19957, + 19961, 19965, 19969, 19973, 19977, 19981, 19985, 19990, 19995, 20000, + 20006, 20012, 20017, 0, 20022, 20026, 20030, 20034, 20038, 20042, 20046, + 20050, 20054, 20058, 20062, 20066, 20070, 20074, 20078, 20082, 20086, + 20089, 20093, 20097, 20101, 20105, 20109, 20113, 20117, 20121, 20125, + 20129, 20133, 20137, 20141, 20145, 20149, 20153, 20157, 20161, 20165, + 20169, 20173, 20177, 20181, 20185, 20189, 20193, 20197, 20201, 20205, + 20209, 20213, 20217, 20221, 20225, 20229, 20233, 20237, 20241, 20245, 0, + 20249, 20253, 20257, 20261, 0, 0, 20265, 20269, 20273, 20277, 20281, + 20285, 20289, 20293, 20297, 20301, 20305, 20309, 20313, 20317, 20321, + 20325, 20329, 20333, 20337, 20341, 20345, 20349, 20353, 20357, 20361, + 20365, 20369, 20373, 20377, 20381, 20385, 20389, 20393, 20397, 20401, + 20405, 20409, 20413, 20417, 20421, 20425, 20429, 20433, 20437, 20441, + 20445, 20449, 20453, 20457, 20461, 20465, 20469, 20473, 20477, 20481, + 20485, 20489, 20492, 20496, 20500, 20504, 20508, 20512, 20516, 20520, + 20524, 20528, 0, 0, 0, 0, 20532, 20537, 20541, 20544, 20549, 20552, + 20555, 20558, 20563, 20567, 20572, 20575, 20578, 20581, 20584, 20587, + 20590, 20593, 20596, 20599, 20603, 20607, 20611, 20615, 20619, 20623, + 20627, 20631, 20635, 20639, 0, 0, 0, 20645, 20651, 20655, 20659, 20663, + 20669, 20673, 20677, 20681, 20687, 20691, 20695, 20699, 20705, 20709, + 20713, 20717, 20723, 20729, 20735, 20743, 20749, 20755, 20761, 20767, + 20773, 0, 0, 0, 0, 0, 0, 20779, 20782, 20785, 20788, 20791, 20794, 20797, + 20801, 20804, 20808, 20812, 20816, 20820, 20824, 20827, 20831, 20835, + 20839, 20843, 20847, 20851, 20855, 20859, 20863, 20867, 20871, 20874, + 20878, 20882, 20886, 20890, 20894, 20898, 20902, 20906, 20910, 20914, + 20918, 20922, 20926, 20930, 20934, 20938, 20942, 20946, 20950, 20953, + 20957, 20961, 20965, 20969, 20973, 20977, 20981, 20985, 20989, 20993, + 20997, 21001, 21005, 21009, 21013, 21017, 21021, 21025, 21029, 21033, + 21037, 21041, 21045, 21049, 21053, 21057, 21061, 21065, 21069, 21073, + 21077, 21081, 21085, 21088, 21092, 21096, 21100, 21104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21108, 21111, 21115, 21118, 21122, 21125, 21129, 21135, + 21140, 21144, 21147, 21151, 21155, 21160, 21164, 21169, 21173, 21178, + 21182, 21187, 21191, 21196, 21202, 21206, 21211, 21215, 21220, 21226, + 21230, 21236, 21242, 21246, 21251, 21259, 21267, 21274, 21279, 21284, + 21293, 21300, 21307, 21312, 21318, 21322, 21326, 21330, 21334, 21338, + 21342, 21346, 21350, 21354, 21358, 21364, 21369, 21374, 21377, 21381, + 21385, 21390, 21394, 21399, 21403, 21408, 21412, 21417, 21421, 21426, + 21430, 21435, 21439, 21444, 21450, 21454, 21459, 21463, 21467, 21471, + 21475, 21479, 21482, 21486, 21492, 21497, 21502, 21506, 21510, 21514, + 21519, 21523, 21528, 21532, 21537, 21540, 21544, 21548, 21553, 21557, + 21562, 21566, 21571, 21577, 21581, 21585, 21589, 21593, 21597, 21601, + 21605, 21609, 21613, 21617, 21621, 21627, 21630, 21634, 21638, 21643, + 21647, 21652, 21656, 21661, 21665, 21670, 21674, 21679, 21683, 21688, + 21692, 21697, 21703, 21707, 21711, 21717, 21723, 21729, 21735, 21739, + 21743, 21747, 21751, 21755, 21759, 21765, 21769, 21773, 21777, 21782, + 21786, 21791, 21795, 21800, 21804, 21809, 21813, 21818, 21822, 21827, + 21831, 21836, 21842, 21846, 21852, 21856, 21860, 21864, 21868, 21872, + 21876, 21882, 21885, 21889, 21893, 21898, 21902, 21907, 21911, 21916, + 21920, 21925, 21929, 21934, 21938, 21943, 21947, 21952, 21958, 21961, + 21965, 21969, 21974, 21979, 21983, 21987, 21991, 21995, 21999, 22003, + 22009, 22013, 22017, 22021, 22026, 22030, 22035, 22039, 22044, 22050, + 22053, 22058, 22062, 22066, 22070, 22074, 22078, 22082, 22086, 22092, + 22096, 22100, 22104, 22109, 22113, 22118, 22122, 22127, 22131, 22136, + 22140, 22145, 22149, 22154, 22158, 22163, 22166, 22170, 22174, 22178, + 22182, 22186, 22190, 22194, 22198, 22204, 22208, 22212, 22216, 22221, + 22225, 22230, 22234, 22239, 22243, 22248, 22252, 22257, 22261, 22266, + 22270, 22275, 22281, 22284, 22289, 22293, 22298, 22304, 22310, 22316, + 22322, 22328, 22334, 22340, 22344, 22348, 22352, 22356, 22360, 22364, + 22368, 22372, 22377, 22381, 22386, 22390, 22395, 22399, 22404, 22408, + 22413, 22417, 22422, 22426, 22431, 22435, 22439, 22443, 22447, 22451, + 22455, 22459, 22465, 22468, 22472, 22476, 22481, 22485, 22490, 22494, + 22499, 22503, 22508, 22512, 22517, 22521, 22526, 22530, 22535, 22541, + 22545, 22551, 22556, 22562, 22566, 22572, 22577, 22581, 22585, 22589, + 22593, 22597, 22602, 22605, 22609, 22614, 22618, 22623, 22626, 22630, + 22634, 22638, 22642, 22646, 22650, 22654, 22658, 22662, 22666, 22670, + 22675, 22679, 22683, 22689, 22693, 22699, 22703, 22709, 22713, 22717, + 22721, 22725, 22729, 22734, 22738, 22742, 22746, 22750, 22754, 22758, + 22762, 22766, 22770, 22774, 22780, 22786, 22792, 22798, 22804, 22809, + 22815, 22820, 22825, 22829, 22833, 22837, 22841, 22845, 22849, 22853, + 22857, 22861, 22865, 22869, 22873, 22877, 22882, 22887, 22892, 22896, + 22900, 22904, 22908, 22912, 22916, 22920, 22924, 22928, 22932, 22938, + 22944, 22950, 22956, 22962, 22968, 22974, 22980, 22986, 22990, 22994, + 22998, 23002, 23006, 23010, 23014, 23020, 23026, 23032, 23038, 23044, + 23050, 23056, 23062, 23068, 23073, 23078, 23083, 23088, 23094, 23100, + 23106, 23112, 23118, 23124, 23130, 23136, 23142, 23148, 23154, 23159, + 23165, 23171, 23177, 23182, 23187, 23192, 23197, 23202, 23207, 23212, + 23217, 23222, 23227, 23232, 23237, 23241, 23246, 23251, 23256, 23261, + 23266, 23271, 23276, 23281, 23286, 23291, 23296, 23301, 23306, 23311, + 23316, 23321, 23326, 23331, 23336, 23341, 23346, 23351, 23356, 23361, + 23366, 23371, 23376, 23381, 23386, 23390, 23395, 23400, 23405, 23410, + 23415, 23420, 23425, 23430, 23435, 23440, 23445, 23450, 23455, 23460, + 23465, 23470, 23475, 23480, 23485, 23490, 23495, 23500, 23505, 23510, + 23515, 23520, 23525, 23530, 23535, 23540, 23545, 23549, 23554, 23559, + 23564, 23569, 23574, 23578, 23583, 23589, 23594, 23599, 23604, 23609, + 23615, 23620, 23625, 23630, 23635, 23640, 23645, 23650, 23655, 23660, + 23665, 23670, 23675, 23680, 23685, 23690, 23695, 23700, 23705, 23710, + 23715, 23720, 23725, 23730, 23735, 23740, 23745, 23750, 23755, 23760, + 23765, 23770, 23775, 23780, 23785, 23790, 23795, 23800, 23805, 23810, + 23815, 23820, 23825, 23830, 23835, 23841, 23846, 23851, 23856, 23861, + 23866, 23871, 23876, 23881, 23886, 23891, 23896, 23901, 23906, 23911, + 23916, 23921, 23926, 23931, 23936, 23941, 23946, 23951, 23956, 23961, + 23966, 23971, 23976, 23981, 23986, 23991, 23996, 24001, 24006, 24011, + 24016, 24021, 24026, 24031, 24037, 24041, 24045, 24049, 24053, 24057, + 24061, 24065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24069, 24074, 24079, 24084, + 24089, 24094, 24099, 24104, 24109, 24114, 24119, 24124, 24129, 24134, + 24139, 24144, 24149, 24154, 24159, 24164, 24169, 24174, 24179, 24184, + 24189, 24194, 24199, 24204, 24209, 0, 0, 0, 24215, 24225, 24228, 24235, + 24239, 24243, 24247, 24255, 24259, 24264, 24269, 24274, 24278, 24283, + 24288, 24291, 24295, 24299, 24308, 24312, 24316, 24322, 24325, 24329, + 24336, 24340, 24348, 24353, 24358, 24363, 24368, 24377, 24382, 24386, + 24395, 24398, 24404, 24408, 24414, 24419, 24425, 24433, 24439, 24444, + 24451, 24456, 24460, 24464, 24474, 24480, 24484, 24494, 24500, 24504, + 24508, 24515, 24522, 24527, 24532, 24541, 24545, 24549, 24553, 24561, + 24568, 24572, 24576, 24580, 24584, 24588, 24592, 24596, 24600, 24604, + 24608, 24612, 24617, 24622, 24627, 24631, 24635, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24639, 24643, 24647, 24651, 24655, 24660, 24665, + 24670, 24675, 24680, 24684, 24689, 24693, 0, 24697, 24702, 24707, 24712, + 24716, 24721, 24726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24731, 24735, + 24739, 24743, 24747, 24752, 24757, 24762, 24767, 24772, 24776, 24781, + 24785, 24789, 24793, 24798, 24803, 24808, 24812, 24817, 24822, 24827, + 24833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24838, 24842, 24846, 24850, 24854, + 24859, 24864, 24869, 24874, 24879, 24883, 24888, 24892, 24896, 24900, + 24905, 24910, 24915, 24919, 24924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24929, 24933, 24937, 24941, 24945, 24950, 24955, 24960, 24965, 24970, + 24974, 24979, 24983, 0, 24987, 24992, 24997, 0, 25002, 25007, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25012, 25015, 25019, 25023, 25027, 25031, 25035, + 25039, 25043, 25047, 25051, 25055, 25059, 25063, 25067, 25071, 25075, + 25079, 25082, 25086, 25090, 25094, 25098, 25102, 25106, 25110, 25114, + 25118, 25122, 25126, 25130, 25134, 25138, 25141, 25145, 25149, 25155, + 25161, 25167, 25173, 25179, 25185, 25191, 25197, 25203, 25209, 25215, + 25221, 25227, 25233, 25242, 25251, 25257, 25263, 25269, 25274, 25278, + 25283, 25288, 25293, 25297, 25302, 25307, 25312, 25316, 25321, 25325, + 25330, 25335, 25340, 25345, 25349, 25353, 25357, 25361, 25365, 25369, + 25373, 25377, 25381, 25385, 25391, 25395, 25399, 25403, 25407, 25411, + 25419, 25425, 25429, 25435, 25439, 25445, 25449, 0, 0, 25453, 25457, + 25460, 25463, 25466, 25469, 25472, 25475, 25478, 25481, 0, 0, 0, 0, 0, 0, + 25484, 25492, 25500, 25508, 25516, 25524, 25532, 25540, 25548, 25556, 0, + 0, 0, 0, 0, 0, 25564, 25567, 25570, 25573, 25578, 25581, 25586, 25593, + 25601, 25606, 25613, 25616, 25623, 25630, 25637, 0, 25641, 25645, 25648, + 25651, 25654, 25657, 25660, 25663, 25666, 25669, 0, 0, 0, 0, 0, 0, 25672, + 25675, 25678, 25681, 25684, 25687, 25691, 25695, 25699, 25703, 25707, + 25711, 25714, 25718, 25722, 25725, 25729, 25733, 25737, 25741, 25745, + 25749, 25753, 25756, 25759, 25763, 25767, 25770, 25774, 25778, 25782, + 25786, 25790, 25794, 25798, 25802, 25809, 25814, 25819, 25824, 25829, + 25835, 25841, 25847, 25853, 25858, 25864, 25870, 25875, 25881, 25887, + 25893, 25899, 25905, 25910, 25916, 25921, 25927, 25933, 25939, 25945, + 25951, 25956, 25961, 25967, 25973, 25978, 25984, 25989, 25995, 26000, + 26005, 26011, 26017, 26023, 26029, 26035, 26041, 26047, 26053, 26059, + 26065, 26071, 26077, 26082, 26087, 26092, 26098, 0, 0, 0, 0, 0, 0, 0, 0, + 26104, 26113, 26122, 26130, 26138, 26148, 26156, 26165, 26172, 26179, + 26186, 26194, 26202, 26210, 26218, 26226, 26234, 26242, 26250, 26257, + 26265, 26273, 26281, 26289, 26297, 26307, 26317, 26327, 26337, 26347, + 26357, 26367, 26377, 26387, 26397, 26407, 26417, 26427, 26437, 26445, + 26453, 26463, 26471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26481, 26486, + 26489, 26493, 26497, 26501, 26505, 26509, 26513, 26517, 26521, 26525, + 26529, 26533, 26537, 26541, 26545, 26548, 26552, 26556, 26560, 26563, + 26566, 26569, 26573, 26577, 26581, 26585, 26589, 0, 0, 0, 26592, 26596, + 26600, 26604, 26609, 26614, 26619, 26624, 26628, 26632, 26637, 26642, 0, + 0, 0, 0, 26648, 26652, 26657, 26662, 26667, 26672, 26676, 26680, 26684, + 26689, 26693, 26697, 0, 0, 0, 0, 26701, 0, 0, 0, 26705, 26709, 26713, + 26717, 26720, 26723, 26726, 26729, 26732, 26735, 26738, 26741, 26744, + 26749, 26755, 26761, 26767, 26773, 26778, 26784, 26790, 26796, 26801, + 26807, 26812, 26818, 26824, 26829, 26835, 26841, 26847, 26853, 26858, + 26863, 26869, 26875, 26880, 26886, 26891, 26897, 26902, 26908, 0, 0, + 26914, 26920, 26926, 26932, 26938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26944, 26951, 26958, 26964, 26971, 26978, 26984, 26991, 26998, 27005, + 27012, 27018, 27025, 27032, 27038, 27045, 27052, 27059, 27066, 27073, + 27080, 27086, 27093, 27099, 27105, 27112, 27118, 27125, 27132, 27139, + 27146, 27153, 27160, 27166, 27173, 27180, 27186, 27193, 27200, 27207, + 27214, 27221, 0, 0, 0, 0, 0, 0, 27228, 27236, 27243, 27250, 27256, 27263, + 27269, 27276, 27282, 27289, 27296, 27303, 27310, 27317, 27324, 27331, + 27338, 27345, 27351, 27358, 27364, 27370, 27377, 27384, 27391, 27397, 0, + 0, 0, 0, 0, 0, 27403, 27409, 27414, 27419, 27424, 27429, 27434, 27439, + 27444, 27449, 0, 0, 0, 0, 27454, 27460, 27466, 27470, 27476, 27482, + 27488, 27494, 27500, 27506, 27512, 27518, 27524, 27530, 27536, 27542, + 27548, 27554, 27560, 27564, 27570, 27576, 27582, 27588, 27594, 27600, + 27606, 27612, 27618, 27624, 27630, 27636, 27642, 27648, 27654, 27658, + 27663, 27668, 27673, 27677, 27682, 27686, 27691, 27696, 27701, 27706, + 27711, 27716, 27721, 27726, 27731, 27735, 27739, 27744, 27749, 27754, + 27758, 27762, 27767, 27772, 27777, 27782, 0, 0, 27788, 27792, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27799, 27805, + 27811, 27815, 27819, 27823, 27827, 27833, 27837, 27843, 27847, 27853, + 27859, 27867, 27873, 27881, 27885, 27889, 27893, 27899, 27902, 27907, + 27911, 27917, 27921, 27925, 27931, 27935, 27941, 27945, 27951, 27959, + 27967, 27975, 27981, 27985, 27991, 27995, 28001, 28005, 28008, 28014, + 28018, 28024, 28027, 28030, 28033, 28037, 28041, 28047, 28053, 28057, + 28060, 28064, 28069, 28074, 28081, 28086, 28093, 28100, 28109, 28116, + 28125, 28130, 28137, 28144, 28153, 28158, 28165, 28170, 28176, 28182, + 28188, 28194, 28200, 28206, 0, 0, 0, 0, 28212, 28216, 28219, 28222, + 28225, 28228, 28231, 28234, 28237, 28240, 28243, 28246, 28249, 28252, + 28257, 28262, 28267, 28270, 28275, 28280, 28285, 28290, 28297, 28302, + 28307, 28312, 28317, 28324, 28330, 28336, 28342, 28348, 28354, 28363, + 28372, 28378, 28384, 28393, 28402, 28411, 28420, 28429, 28438, 28447, + 28456, 0, 0, 0, 28465, 28469, 28473, 28477, 28480, 28483, 28486, 28490, + 28493, 28496, 28500, 28503, 28507, 28511, 28515, 28519, 28523, 28527, + 28531, 28535, 28539, 28543, 28546, 28550, 28554, 28558, 28561, 28564, + 28567, 28571, 28575, 28579, 28583, 28586, 28592, 28598, 28604, 28609, + 28614, 28619, 28624, 28629, 28634, 0, 0, 0, 28638, 28642, 28646, 28650, + 28653, 28656, 28659, 28662, 28665, 28668, 28671, 28674, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28677, 28680, 28684, + 28688, 28692, 28696, 28700, 28704, 28708, 28712, 28716, 28720, 28724, + 28728, 28732, 28735, 28739, 28743, 28747, 28751, 28755, 28759, 28762, + 28766, 28770, 28774, 28778, 28781, 28784, 28788, 28791, 28795, 28799, + 28803, 28807, 28811, 28814, 28819, 28824, 28829, 28833, 28837, 28842, + 28846, 28851, 28855, 28861, 28866, 28871, 28876, 28882, 28887, 28893, + 28899, 28905, 28909, 0, 0, 0, 28913, 28918, 28927, 28932, 28939, 28944, + 28948, 28951, 28954, 28957, 28960, 28963, 28966, 28969, 28972, 0, 0, 0, + 28975, 28979, 28983, 28987, 28994, 29000, 29006, 29012, 29018, 29024, + 29030, 29036, 29042, 29048, 29055, 29062, 29069, 29076, 29083, 29090, + 29097, 29104, 29111, 29118, 29125, 29132, 29139, 29146, 29153, 29160, + 29167, 29174, 29181, 29188, 29195, 29202, 29209, 29216, 29223, 29230, + 29237, 29244, 29251, 29258, 29266, 29274, 29282, 29288, 29294, 29300, + 29308, 29317, 29322, 29328, 29334, 29342, 29348, 29354, 29360, 29365, + 29372, 29377, 29383, 29389, 29397, 29402, 29408, 29413, 29420, 29426, + 29434, 29442, 29448, 29454, 29461, 29468, 29474, 29480, 29486, 29492, + 29497, 29503, 29511, 29518, 29523, 29529, 29535, 29541, 29549, 29553, + 29559, 29565, 29571, 29577, 29583, 29589, 29593, 29598, 29603, 29610, + 29615, 29619, 29624, 29628, 29632, 29636, 29641, 29646, 29650, 29654, + 29658, 29663, 29667, 29672, 29677, 29681, 29686, 29690, 29695, 29699, + 29704, 29709, 29715, 29720, 29725, 29729, 29734, 29740, 29747, 29751, + 29756, 29761, 29765, 29770, 29774, 29780, 29787, 29794, 29799, 29804, + 29808, 29814, 29819, 29823, 29828, 29833, 29839, 29844, 29850, 29855, + 29861, 29867, 29873, 29879, 29886, 29893, 29900, 29907, 29914, 29919, + 29927, 29936, 29945, 29954, 29963, 29972, 29981, 29993, 30002, 30011, + 30020, 30025, 30030, 30036, 30044, 30052, 30059, 30066, 30073, 30080, + 30088, 30097, 30106, 30115, 30124, 30133, 30142, 30151, 30160, 30169, + 30178, 30187, 30196, 30205, 30214, 30222, 30231, 30242, 30250, 30260, + 30271, 30280, 30289, 30299, 30308, 30316, 30325, 30331, 30336, 30344, + 30349, 30356, 30361, 30370, 30375, 30380, 30387, 30392, 30397, 30405, + 30413, 30422, 30431, 30436, 30443, 30453, 30461, 30470, 30475, 30481, + 30486, 30493, 30498, 30507, 30512, 30517, 30522, 30529, 30534, 30539, + 30548, 30556, 30561, 30566, 30573, 30580, 30584, 30588, 30591, 30594, + 30597, 30600, 30603, 30606, 30613, 30616, 30619, 30624, 30628, 30632, + 30636, 30640, 30644, 30654, 30660, 30666, 30672, 30680, 30688, 30694, + 30699, 30705, 30711, 30716, 30722, 30728, 30733, 30739, 30745, 30753, + 30758, 30764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 30770, 30775, 30784, 30792, 30800, 30807, 30814, 30821, 30828, + 30836, 30844, 30854, 30864, 30872, 30880, 30888, 30896, 30905, 30914, + 30922, 30930, 30939, 30948, 30958, 30968, 30977, 30986, 30994, 31002, + 31010, 31018, 31028, 31038, 31046, 31054, 31062, 31070, 31078, 31086, + 31094, 31102, 31109, 31116, 31124, 31132, 31141, 31150, 31159, 31168, + 31178, 31188, 31195, 31202, 31210, 31218, 31227, 31236, 31244, 31252, + 31264, 31276, 31285, 31294, 31303, 31312, 31319, 31326, 31334, 31342, + 31350, 31358, 31366, 31374, 31382, 31390, 31399, 31408, 31417, 31426, + 31435, 31444, 31453, 31462, 31472, 31482, 31491, 31500, 31507, 31514, + 31522, 31530, 31538, 31546, 31554, 31562, 31574, 31586, 31595, 31604, + 31612, 31620, 31628, 31636, 31647, 31658, 31669, 31680, 31692, 31704, + 31712, 31720, 31728, 31736, 31745, 31754, 31763, 31772, 31780, 31788, + 31796, 31804, 31812, 31820, 31829, 31838, 31847, 31856, 31863, 31870, + 31878, 31886, 31894, 31902, 31909, 31916, 31923, 31930, 31938, 31946, + 31954, 31962, 31970, 31978, 31985, 31992, 32000, 32008, 32016, 32024, + 32032, 32040, 32049, 32058, 32067, 32074, 32083, 32092, 32101, 32110, + 32120, 32129, 32135, 32140, 32147, 32154, 32162, 32170, 32179, 32188, + 32198, 32208, 32219, 32230, 32239, 32248, 32258, 32268, 32277, 32286, + 32296, 32306, 32317, 32328, 32337, 32346, 32356, 32366, 32373, 32380, + 32388, 32396, 32402, 32408, 32417, 32426, 32436, 32446, 32457, 32468, + 32477, 32486, 32496, 32506, 32515, 32524, 32532, 32540, 32547, 32554, + 32562, 32570, 32579, 32588, 32598, 32608, 32619, 32630, 32639, 32648, + 32658, 32668, 32677, 32686, 32696, 32706, 32717, 32728, 32737, 32746, + 32756, 32766, 32773, 32780, 32788, 32796, 32805, 32814, 32824, 32834, + 32845, 32856, 32865, 32874, 32884, 32894, 32902, 32910, 32918, 32926, + 32935, 32944, 32951, 32958, 32965, 32972, 32978, 32984, 32992, 33000, + 33008, 33016, 33026, 33036, 33046, 33056, 33066, 33076, 33084, 33092, + 33102, 33112, 33122, 33132, 33142, 33152, 33160, 33168, 33178, 33188, + 33198, 0, 0, 33208, 33216, 33224, 33234, 33244, 33254, 0, 0, 33264, + 33272, 33280, 33290, 33300, 33310, 33320, 33330, 33340, 33348, 33356, + 33366, 33376, 33386, 33396, 33406, 33416, 33424, 33432, 33442, 33452, + 33462, 33472, 33482, 33492, 33500, 33508, 33518, 33528, 33538, 33548, + 33558, 33568, 33576, 33584, 33594, 33604, 33614, 0, 0, 33624, 33632, + 33640, 33650, 33660, 33670, 0, 0, 33680, 33688, 33696, 33706, 33716, + 33726, 33736, 33746, 0, 33756, 0, 33764, 0, 33774, 0, 33784, 33794, + 33802, 33810, 33820, 33830, 33840, 33850, 33860, 33870, 33878, 33886, + 33896, 33906, 33916, 33926, 33936, 33946, 33954, 33962, 33970, 33978, + 33986, 33994, 34002, 34010, 34018, 34026, 34034, 34042, 34050, 0, 0, + 34058, 34068, 34078, 34091, 34104, 34117, 34130, 34143, 34156, 34166, + 34176, 34189, 34202, 34215, 34228, 34241, 34254, 34264, 34274, 34287, + 34300, 34313, 34326, 34339, 34352, 34362, 34372, 34385, 34398, 34411, + 34424, 34437, 34450, 34460, 34470, 34483, 34496, 34509, 34522, 34535, + 34548, 34558, 34568, 34581, 34594, 34607, 34620, 34633, 34646, 34654, + 34662, 34673, 34681, 0, 34692, 34700, 34711, 34719, 34727, 34735, 34743, + 34751, 34754, 34757, 34760, 34763, 34769, 34780, 34788, 0, 34799, 34807, + 34818, 34826, 34834, 34842, 34850, 34858, 34863, 34868, 34873, 34881, + 34889, 34900, 0, 0, 34911, 34919, 34930, 34938, 34946, 34954, 0, 34962, + 34967, 34972, 34977, 34985, 34993, 35004, 35015, 35023, 35031, 35039, + 35050, 35058, 35066, 35074, 35082, 35090, 35096, 35102, 0, 0, 35105, + 35116, 35124, 0, 35135, 35143, 35154, 35162, 35170, 35178, 35186, 35194, + 35197, 0, 35200, 35204, 35208, 35212, 35216, 35220, 35224, 35228, 35232, + 35236, 35240, 35244, 35250, 35256, 35262, 35265, 35268, 35270, 35274, + 35278, 35282, 35286, 35288, 35292, 35296, 35302, 35308, 35315, 35322, + 35327, 35332, 35338, 35344, 35346, 35349, 35351, 35355, 35359, 35363, + 35366, 35370, 35374, 35378, 35382, 35386, 35392, 35396, 35400, 35406, + 35411, 35418, 35420, 35423, 35427, 35430, 35434, 35439, 35441, 35450, + 35459, 35462, 35466, 35468, 35470, 35472, 35475, 35481, 35483, 35487, + 35491, 35498, 35505, 35509, 35514, 35519, 35524, 35528, 35532, 35536, + 35539, 35542, 35546, 35553, 35558, 35562, 35566, 35571, 35575, 35579, + 35584, 35589, 35593, 35597, 35601, 35603, 35608, 35613, 35617, 35621, + 35625, 35629, 0, 0, 0, 0, 0, 35633, 35639, 35645, 35651, 35657, 35662, + 35667, 35671, 0, 0, 35677, 35680, 35683, 35686, 35689, 35692, 35695, + 35699, 35703, 35708, 35713, 35718, 35724, 35728, 35731, 35734, 35737, + 35740, 35743, 35746, 35749, 35752, 35755, 35759, 35763, 35768, 35773, 0, + 35778, 35784, 35790, 35796, 35803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35810, 35813, 35816, 35819, 35824, 35827, 35830, 35833, 35836, 35839, + 35842, 35846, 35849, 35852, 35855, 35858, 35861, 35866, 35869, 35872, + 35875, 35878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35881, 35886, 35891, 35898, 35906, 35911, 35916, 35920, + 35924, 35929, 35936, 35943, 35947, 35952, 35957, 35962, 35967, 35974, + 35979, 35984, 35989, 35998, 36005, 36011, 36015, 36020, 36026, 36031, + 36038, 36046, 36054, 36058, 36062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 36066, 36070, 36077, 36081, 36085, 36090, 36094, 36098, 36102, + 36104, 36108, 36111, 36114, 36118, 36121, 36125, 36133, 36136, 36140, + 36143, 36146, 36152, 36155, 36158, 36164, 36168, 36172, 36176, 36179, + 36183, 36186, 36190, 36192, 36195, 36198, 36202, 36204, 36208, 36211, + 36214, 36219, 36224, 36230, 36233, 36236, 36240, 36245, 36248, 36251, + 36254, 36258, 36262, 36265, 36268, 36270, 36273, 36276, 36279, 36283, + 36288, 36291, 36295, 36299, 36303, 36307, 36312, 36316, 36320, 36324, + 36329, 36334, 36339, 36343, 36347, 36352, 36356, 36359, 36362, 36364, + 36368, 0, 0, 0, 36374, 36381, 36388, 36395, 36402, 36409, 36417, 36424, + 36432, 36439, 36446, 36454, 36462, 36467, 36471, 36475, 36479, 36483, + 36487, 36491, 36495, 36499, 36503, 36508, 36513, 36518, 36523, 36529, + 36536, 36542, 36547, 36552, 36557, 36562, 36567, 36572, 36577, 36582, + 36587, 36593, 36599, 36605, 36611, 36618, 36626, 36633, 36643, 36650, + 36657, 36664, 36670, 36678, 36686, 36693, 0, 0, 0, 0, 0, 0, 0, 36701, + 36703, 36706, 36708, 36711, 36714, 36717, 36722, 36727, 36732, 36737, + 36741, 36745, 36749, 36753, 36758, 36764, 36769, 36775, 36780, 36785, + 36790, 36796, 36801, 36807, 36813, 36817, 36821, 36826, 36831, 36836, + 36841, 36846, 36854, 36862, 36870, 36878, 36885, 36893, 36900, 36907, + 36915, 36925, 36932, 36939, 36946, 36953, 36961, 36969, 36976, 36983, + 36991, 36999, 37004, 37012, 37017, 37022, 37028, 37033, 37039, 37046, + 37053, 37058, 37064, 37069, 37072, 37076, 37079, 37083, 37087, 37091, + 37097, 37103, 37109, 37115, 37119, 37123, 37127, 37131, 37137, 37143, + 37147, 37152, 37156, 37161, 37165, 37169, 37172, 37176, 37179, 37183, + 37190, 37198, 37209, 37220, 37225, 37234, 37241, 37249, 37257, 37261, + 37267, 37275, 37279, 37284, 37289, 37295, 37301, 37307, 37314, 37318, + 37322, 37327, 37330, 37332, 37336, 37340, 37347, 37351, 37353, 37355, + 37359, 37366, 37371, 37377, 37386, 37393, 37398, 37402, 37406, 37410, + 37413, 37416, 37419, 37423, 37427, 37431, 37435, 37439, 37442, 37446, + 37450, 37453, 37455, 37458, 37460, 37464, 37468, 37470, 37475, 37478, + 37482, 37486, 37490, 37492, 37494, 37496, 37499, 37503, 37507, 37511, + 37515, 37519, 37525, 37531, 37533, 37535, 37537, 37539, 37542, 37544, + 37548, 37550, 37554, 37556, 37561, 37565, 37569, 37571, 37574, 37578, + 37583, 37587, 37596, 37606, 37610, 37615, 37621, 37624, 37628, 37631, + 37636, 37640, 37646, 37650, 37661, 37669, 37673, 37677, 37683, 37687, + 37690, 37692, 37695, 37699, 37703, 37709, 37713, 37717, 37720, 37723, + 37727, 37732, 37737, 37742, 37747, 37752, 37759, 37766, 37770, 37774, + 37776, 37780, 37783, 37786, 37794, 37802, 37808, 37814, 37823, 37832, + 37837, 37842, 37850, 37858, 37860, 37862, 37867, 37872, 37878, 37884, + 37889, 37894, 37898, 37902, 37908, 37914, 37920, 37926, 37936, 37946, + 37953, 37960, 37962, 37966, 37970, 37975, 37980, 37987, 37994, 37997, + 38000, 38003, 38006, 38009, 38014, 38018, 38023, 38028, 38031, 38034, + 38038, 38042, 38046, 38051, 38054, 38057, 38060, 38063, 38065, 38067, + 38069, 38071, 38079, 38087, 38092, 38095, 38100, 38110, 38116, 38122, + 38128, 38136, 38144, 38155, 38159, 38163, 38165, 38171, 38173, 38175, + 38177, 38179, 38185, 38188, 38194, 38200, 38204, 38208, 38212, 38215, + 38219, 38223, 38225, 38234, 38243, 38248, 38253, 38258, 38264, 38270, + 38273, 38276, 38279, 38282, 38284, 38289, 38294, 38299, 38305, 38311, + 38318, 38325, 38330, 38335, 38340, 38345, 38353, 38361, 38369, 38377, + 38385, 38393, 38401, 38409, 38417, 38425, 38432, 38443, 38452, 38466, + 38469, 38474, 38480, 38486, 38493, 38507, 38522, 38528, 38534, 38541, + 38547, 38555, 38561, 38574, 38588, 38593, 38599, 38606, 38609, 38612, + 38614, 38617, 38620, 38622, 38624, 38628, 38631, 38634, 38637, 38640, + 38645, 38650, 38655, 38660, 38663, 38666, 38668, 38670, 38672, 38676, + 38680, 38684, 38690, 38693, 38695, 38697, 38702, 38707, 38712, 38717, + 38722, 38727, 38729, 38731, 38740, 38744, 38751, 38760, 38762, 38767, + 38772, 38779, 38783, 38785, 38789, 38791, 38795, 38799, 38803, 38805, + 38807, 38809, 38814, 38821, 38828, 38835, 38842, 38849, 38856, 38863, + 38870, 38876, 38882, 38889, 38896, 38903, 38910, 38916, 38922, 38929, + 38936, 38943, 38951, 38958, 38966, 38973, 38981, 38988, 38996, 39004, + 39011, 39019, 39026, 39034, 39041, 39049, 39056, 39063, 39070, 39077, + 39084, 39092, 39099, 39106, 39113, 39120, 39126, 39132, 39138, 39144, + 39152, 39160, 39166, 39172, 39178, 39184, 39189, 39195, 39202, 39210, + 39217, 39224, 39231, 39236, 39241, 39246, 39253, 39260, 39267, 39274, + 39279, 39283, 39292, 39298, 39301, 39309, 39312, 39317, 39322, 39325, + 39328, 39336, 39339, 39344, 39347, 39354, 39359, 39367, 39370, 39373, + 39376, 39381, 39386, 39389, 39392, 39399, 39402, 39407, 39414, 39418, + 39422, 39427, 39432, 39438, 39443, 39448, 39454, 39459, 39464, 39472, + 39478, 39485, 39493, 39499, 39506, 39514, 39523, 39530, 39536, 39544, + 39553, 39560, 39564, 39569, 39581, 39593, 39597, 39601, 39605, 39609, + 39619, 39623, 39628, 39633, 39638, 39643, 39648, 39653, 39663, 39673, + 39681, 39691, 39701, 39709, 39719, 39729, 39737, 39747, 39757, 39765, + 39773, 39783, 39793, 39796, 39799, 39802, 39807, 39811, 39817, 39824, + 39831, 39839, 39846, 39850, 39854, 39858, 39862, 39864, 39868, 39872, + 39877, 39882, 39889, 39896, 39899, 39906, 39908, 39910, 39914, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39918, + 39922, 39929, 39936, 39943, 39950, 39954, 39958, 39962, 39966, 39971, + 39977, 39982, 39987, 39993, 39999, 40005, 40013, 40020, 40027, 40034, + 40041, 40047, 40053, 40062, 40066, 40073, 40077, 40081, 40087, 40093, + 40099, 40105, 40109, 40113, 40116, 40120, 40124, 40130, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40136, 40139, + 40143, 40147, 40153, 40159, 40165, 40173, 40180, 40184, 40192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40197, 40200, + 40203, 40206, 40209, 40212, 40215, 40218, 40221, 40224, 40228, 40232, + 40236, 40240, 40244, 40248, 40252, 40256, 40260, 40264, 40268, 40271, + 40274, 40277, 40280, 40283, 40286, 40289, 40292, 40295, 40299, 40303, + 40307, 40311, 40315, 40319, 40323, 40327, 40331, 40335, 40339, 40345, + 40351, 40357, 40364, 40371, 40378, 40385, 40392, 40399, 40406, 40413, + 40420, 40427, 40434, 40441, 40448, 40455, 40462, 40469, 40476, 40481, + 40487, 40493, 40499, 40504, 40510, 40515, 40520, 40525, 40531, 40537, + 40542, 40547, 40552, 40557, 40563, 40569, 40574, 40579, 40585, 40590, + 40595, 40601, 40607, 40613, 40619, 40624, 40630, 40636, 40642, 40647, + 40653, 40658, 40663, 40668, 40674, 40680, 40685, 40690, 40695, 40700, + 40706, 40712, 40717, 40722, 40728, 40733, 40738, 40744, 40750, 40756, + 40762, 40767, 40773, 40779, 40785, 40790, 40796, 40801, 40806, 40811, + 40817, 40823, 40828, 40833, 40838, 40843, 40849, 40855, 40860, 40865, + 40871, 40876, 40881, 40887, 40893, 40899, 40905, 40909, 40915, 40921, + 40927, 40933, 40939, 40945, 40951, 40957, 40963, 40969, 40973, 40977, + 40981, 40985, 40989, 40993, 40997, 41001, 41005, 41010, 41016, 41021, + 41026, 41031, 41036, 41045, 41054, 41063, 41072, 41081, 41090, 41099, + 41108, 41115, 41123, 41131, 41138, 41145, 41153, 41161, 41168, 41175, + 41183, 41191, 41198, 41205, 41213, 41221, 41228, 41235, 41243, 41252, + 41261, 41269, 41278, 41287, 41294, 41301, 41309, 41318, 41327, 41335, + 41344, 41353, 41360, 41367, 41376, 41385, 41393, 41401, 41410, 41419, + 41426, 41433, 41442, 41451, 41459, 41467, 41476, 41485, 41492, 41499, + 41508, 41517, 41525, 41534, 41543, 41551, 41561, 41571, 41581, 41591, + 41600, 41609, 41618, 41627, 41634, 41642, 41650, 41658, 41666, 41671, + 41676, 41685, 41693, 41700, 41709, 41717, 41724, 41733, 41741, 41748, + 41757, 41765, 41772, 41781, 41789, 41796, 41805, 41813, 41820, 41829, + 41837, 41844, 41853, 41861, 41868, 41877, 41885, 41892, 41901, 41910, + 41919, 41928, 41940, 41952, 41959, 41964, 41969, 41974, 41979, 41984, + 41989, 41994, 41999, 42007, 42015, 42023, 42031, 42036, 42042, 42048, + 42054, 42058, 42065, 42071, 42078, 42082, 42089, 42095, 42102, 42106, + 42112, 42118, 42124, 42128, 42131, 42135, 42139, 42146, 42152, 42157, + 42162, 42168, 42180, 42189, 42202, 42215, 42221, 42230, 42242, 42245, + 42248, 42255, 42263, 42268, 42273, 42281, 42291, 42301, 42309, 42313, + 42317, 42320, 42323, 42327, 42331, 42334, 42337, 42342, 42347, 42353, + 42359, 42364, 42369, 42375, 42381, 42386, 42391, 42396, 42401, 42407, + 42413, 42418, 42423, 42429, 42435, 42440, 42445, 42448, 42451, 42460, + 42462, 42464, 42467, 42471, 42477, 42479, 42482, 42489, 42496, 42503, + 42511, 42521, 42535, 42540, 42545, 42549, 42554, 42562, 42569, 42578, + 42587, 42595, 42603, 42608, 42612, 42617, 42622, 42628, 42634, 42637, + 42643, 42649, 42659, 42668, 42676, 42684, 42693, 42702, 42706, 42714, + 42721, 42728, 42736, 42745, 42753, 42761, 42770, 42775, 42780, 42784, + 42789, 42794, 42800, 42806, 42810, 42816, 42818, 42820, 42822, 42824, + 42827, 42830, 42832, 42834, 42836, 42840, 42844, 42846, 42848, 42851, + 42854, 42858, 42864, 42870, 42872, 42879, 42883, 42888, 42893, 42895, + 42904, 42910, 42916, 42922, 42928, 42934, 42940, 42945, 42948, 42951, + 42954, 42956, 42958, 42962, 42966, 42971, 42976, 42981, 42984, 42988, + 42993, 42996, 43000, 43005, 43010, 43015, 43020, 43025, 43030, 43035, + 43040, 43045, 43050, 43055, 43060, 43066, 43072, 43078, 43080, 43083, + 43085, 43088, 43090, 43092, 43094, 43096, 43098, 43100, 43102, 43104, + 43106, 43108, 43110, 43112, 43114, 43116, 43118, 43120, 43122, 43127, + 43132, 43137, 43142, 43147, 43152, 43157, 43162, 43167, 43172, 43177, + 43182, 43187, 43192, 43197, 43202, 43207, 43212, 43217, 43222, 43226, + 43230, 43234, 43240, 43246, 43251, 43256, 43261, 43266, 43271, 43276, + 43284, 43292, 43300, 43308, 43316, 43324, 43332, 43340, 43346, 43351, + 43356, 43361, 43364, 43368, 43372, 43376, 43380, 43384, 43388, 43395, + 43402, 43410, 43418, 43423, 43428, 43435, 43442, 43449, 43456, 43459, + 43462, 43467, 43469, 43473, 43478, 43480, 43482, 43484, 43486, 43491, + 43494, 43496, 0, 0, 43501, 43504, 43508, 43513, 43518, 43526, 43532, + 43537, 43548, 43554, 43560, 43565, 43570, 43576, 43579, 43582, 43587, + 43589, 43593, 43595, 43597, 43599, 43601, 43603, 43605, 43610, 43612, + 43614, 43616, 0, 0, 0, 43618, 43623, 43628, 43633, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 43638, 43644, 43647, 43652, 0, 43655, 43660, 43664, + 43666, 0, 0, 43668, 43672, 43676, 43680, 43682, 43687, 43690, 43693, + 43696, 43700, 43704, 43709, 43713, 43718, 43723, 43727, 43733, 43740, + 43743, 43749, 43754, 43758, 43763, 43769, 43775, 43782, 43788, 43795, 0, + 43802, 43809, 43813, 43820, 43826, 43831, 43837, 43841, 43846, 43849, + 43855, 43861, 43868, 43876, 43883, 43892, 43902, 43909, 43915, 43919, + 43927, 43932, 43941, 43944, 43947, 43956, 43967, 43974, 43976, 43982, + 43987, 43989, 43992, 43996, 44004, 0, 44013, 0, 44018, 44025, 44033, + 44040, 0, 0, 0, 44048, 0, 44056, 44059, 44063, 44066, 44077, 44087, + 44097, 0, 0, 44106, 44115, 44121, 44129, 44133, 44141, 44145, 44153, + 44160, 44167, 44176, 44185, 44195, 44205, 44215, 44225, 44234, 44243, + 44253, 44263, 44272, 44281, 44288, 44295, 44302, 44309, 44316, 44323, + 44330, 44337, 44344, 44352, 44358, 44364, 44370, 44376, 44382, 44388, + 44394, 44400, 44406, 44413, 44421, 44429, 44437, 44445, 44453, 44461, + 44469, 44477, 44485, 44494, 0, 0, 0, 44499, 44505, 44508, 44514, 44520, + 44525, 44529, 44534, 44540, 44547, 44550, 44557, 44564, 44568, 44577, + 44586, 44591, 44597, 44602, 44607, 44614, 44621, 44628, 44636, 0, 44644, + 44653, 44658, 44662, 44669, 44673, 44680, 44688, 44693, 44701, 44705, + 44710, 44714, 44719, 0, 44723, 44728, 44737, 44739, 44743, 44747, 44754, + 44761, 44766, 44774, 44780, 0, 44786, 0, 0, 0, 44789, 44797, 44801, + 44808, 44815, 44823, 44828, 44833, 44839, 44844, 44849, 44855, 44860, + 44863, 44867, 44871, 44878, 44887, 44892, 44901, 44910, 44916, 44922, + 44927, 44932, 44937, 44942, 44948, 44954, 44962, 44970, 44976, 44982, + 44987, 44992, 44999, 45006, 45012, 45015, 45018, 45022, 45026, 45030, + 45035, 45041, 45047, 45054, 45061, 45066, 45070, 45074, 45078, 45082, + 45086, 45090, 45094, 45098, 45102, 45106, 45110, 45114, 45118, 45122, + 45126, 45130, 45134, 45138, 45142, 45146, 45150, 45154, 45158, 45162, + 45166, 45170, 45174, 45178, 45182, 45186, 45190, 45194, 45198, 45202, + 45206, 45210, 45214, 45218, 45222, 45226, 45230, 45234, 45238, 45242, + 45246, 45250, 45254, 45258, 45262, 45266, 45270, 45274, 45278, 45282, + 45286, 45290, 45294, 45298, 45302, 45306, 45310, 45314, 45318, 45322, + 45326, 45330, 45334, 45338, 45342, 45346, 45350, 45354, 45358, 45362, + 45366, 45370, 45374, 45378, 45382, 45386, 45390, 45394, 45398, 45402, + 45406, 45410, 45414, 45418, 45422, 45426, 45430, 45434, 45438, 45442, + 45446, 45450, 45454, 45458, 45462, 45466, 45470, 45474, 45478, 45482, + 45486, 45490, 45494, 45498, 45502, 45506, 45510, 45514, 45518, 45522, + 45526, 45530, 45534, 45538, 45542, 45546, 45550, 45554, 45558, 45562, + 45566, 45570, 45574, 45578, 45582, 45586, 45590, 45594, 45598, 45602, + 45606, 45610, 45614, 45618, 45622, 45626, 45630, 45634, 45638, 45642, + 45646, 45650, 45654, 45658, 45662, 45666, 45670, 45674, 45678, 45682, + 45686, 45690, 45694, 45698, 45702, 45706, 45710, 45714, 45718, 45722, + 45726, 45730, 45734, 45738, 45742, 45746, 45750, 45754, 45758, 45762, + 45766, 45770, 45774, 45778, 45782, 45786, 45790, 45794, 45798, 45802, + 45806, 45810, 45814, 45818, 45822, 45826, 45830, 45834, 45838, 45842, + 45846, 45850, 45854, 45858, 45862, 45866, 45870, 45874, 45878, 45882, + 45886, 45890, 45894, 45898, 45902, 45906, 45910, 45914, 45918, 45922, + 45926, 45930, 45934, 45938, 45942, 45946, 45950, 45954, 45958, 45962, + 45966, 45970, 45974, 45978, 45982, 45986, 45990, 45994, 45998, 46002, + 46006, 46010, 46014, 46018, 46022, 46026, 46030, 46034, 46038, 46042, + 46046, 46050, 46054, 46058, 46062, 46066, 46070, 46074, 46078, 46082, + 46086, 46090, 46097, 46105, 46111, 46117, 46124, 46131, 46137, 46143, + 46149, 46155, 46160, 46165, 46170, 46175, 46181, 46187, 46195, 46202, + 46207, 46212, 46220, 46229, 46236, 46246, 46257, 46260, 46263, 46267, + 46271, 46277, 46283, 46293, 46303, 46313, 46323, 46330, 46337, 46344, + 46351, 46362, 46373, 46384, 46395, 46405, 46415, 46427, 46439, 46450, + 46461, 46473, 46485, 46494, 46504, 46514, 46525, 46536, 46543, 46550, + 46557, 46564, 46574, 46584, 46591, 46598, 46605, 46612, 46619, 46626, + 46633, 46638, 46643, 46649, 46657, 46667, 46675, 46683, 46691, 46699, + 46707, 46715, 46723, 46731, 46739, 46747, 46756, 46765, 46773, 46781, + 46790, 46799, 46808, 46817, 46827, 46837, 46846, 46855, 46865, 46875, + 46889, 46906, 46920, 46937, 46951, 46965, 46979, 46993, 47003, 47014, + 47024, 47035, 47052, 47069, 47077, 47083, 47090, 47097, 47104, 47111, + 47116, 47122, 47127, 47132, 47138, 47143, 47148, 47153, 47158, 47163, + 47170, 47175, 47182, 47187, 47192, 47196, 47200, 47207, 47214, 47221, + 47228, 47235, 47242, 47255, 47268, 47281, 47294, 47302, 47310, 47316, + 47322, 47329, 47336, 47343, 47350, 47354, 47359, 47367, 47375, 47383, + 47390, 47394, 47402, 47410, 47413, 47416, 47421, 47427, 47435, 47443, + 47463, 47483, 47503, 47523, 47543, 47563, 47583, 47603, 47608, 47615, + 47624, 47632, 47640, 47645, 47648, 47651, 47656, 47659, 47678, 47685, + 47691, 47697, 47701, 47704, 47707, 47710, 47721, 47733, 47741, 47749, + 47753, 47758, 47762, 47767, 47772, 47777, 47783, 47792, 47799, 47806, + 47814, 47821, 47828, 47831, 47837, 47843, 47846, 47849, 47854, 47859, + 47865, 47871, 47875, 47880, 47887, 47891, 47897, 47901, 47905, 47913, + 47925, 47933, 47937, 47939, 47948, 47957, 47963, 47966, 47972, 47978, + 47983, 47988, 47993, 47998, 48003, 48008, 48010, 48016, 48021, 48028, + 48032, 48038, 48041, 48045, 48052, 48059, 48061, 48063, 48069, 48075, + 48081, 48090, 48099, 48106, 48113, 48119, 48125, 48130, 48135, 48140, + 48146, 48152, 48157, 48164, 48168, 48172, 48185, 48198, 48209, 48218, + 48224, 48231, 48236, 48241, 48246, 48251, 48256, 48258, 48265, 48272, + 48279, 48286, 48293, 48301, 48307, 48312, 48318, 48324, 48330, 48337, + 48343, 48351, 48359, 48367, 48375, 48382, 48388, 48394, 48403, 48407, + 48416, 48425, 48434, 48442, 48446, 48452, 48459, 48466, 48470, 48476, + 48483, 48488, 48493, 48499, 48504, 48509, 48516, 48523, 48528, 48533, + 48541, 48549, 48559, 48569, 48576, 48583, 48587, 48591, 48603, 48609, + 48615, 48620, 48625, 48632, 48639, 48645, 48651, 48660, 48668, 48676, + 48683, 48690, 48697, 48703, 48710, 48716, 48723, 48730, 48737, 48744, + 48750, 48755, 48764, 48774, 48781, 48790, 48796, 48801, 48806, 48815, + 48821, 48827, 48833, 48841, 48846, 48853, 48860, 48871, 48878, 48885, + 48892, 48899, 48906, 48913, 48920, 48931, 48942, 48952, 48962, 48974, + 48986, 48991, 48996, 49004, 49012, 49018, 49024, 49033, 49042, 49050, + 49058, 49066, 49074, 49084, 49094, 49108, 49122, 49129, 49136, 49147, + 49158, 49165, 49172, 49181, 49190, 49195, 49200, 49209, 49218, 49223, + 49228, 49236, 49242, 49248, 49256, 49264, 49277, 49290, 49294, 49298, + 49305, 49312, 49319, 49327, 49335, 49343, 49351, 49357, 49363, 49369, + 49375, 49382, 49389, 49397, 49405, 49408, 49411, 49416, 49421, 49427, + 49433, 49440, 49447, 49456, 49465, 49472, 49479, 49487, 49495, 49503, + 49511, 49518, 49525, 49532, 49539, 49543, 49547, 49554, 49561, 49566, + 49571, 49576, 49581, 49587, 49601, 49608, 49615, 49619, 49621, 49623, + 49628, 49633, 49638, 49642, 49650, 49657, 49664, 49672, 49684, 49692, + 49700, 49711, 49715, 49719, 49723, 49728, 49739, 49746, 49753, 49760, + 49765, 49772, 49781, 49789, 49795, 49801, 49807, 49816, 49825, 49833, + 49842, 49847, 49850, 49855, 49861, 49867, 49873, 49879, 49883, 49886, + 49890, 49894, 49900, 49906, 49912, 49918, 49922, 49926, 49933, 49940, + 49947, 49954, 49961, 49968, 49978, 49987, 49994, 50001, 50009, 50017, + 50021, 50026, 50031, 50037, 50043, 50046, 50049, 50052, 50055, 50059, + 50064, 50069, 50074, 50079, 50084, 50088, 50092, 50096, 50100, 50104, + 50108, 50112, 50118, 50122, 50128, 50133, 50140, 50148, 50155, 50163, + 50170, 50178, 50187, 50194, 50204, 50215, 50221, 50230, 50236, 50245, + 50254, 50260, 50266, 50270, 50274, 50283, 50292, 50299, 50306, 50315, 0, + 0, 0, 50324, 50329, 50333, 50337, 50342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50347, 50352, 50357, 50362, 50367, 50372, 50377, + 50382, 50387, 50392, 50397, 50403, 50407, 50412, 50417, 50422, 50427, + 50432, 50437, 50442, 50447, 50452, 50457, 50462, 50467, 50472, 50477, + 50482, 50487, 50492, 50497, 50502, 50507, 50512, 50517, 50523, 50528, + 50534, 50543, 50548, 50556, 50563, 50572, 50577, 50582, 50587, 50593, 0, + 50600, 50605, 50610, 50615, 50620, 50625, 50630, 50635, 50640, 50645, + 50650, 50656, 50660, 50665, 50670, 50675, 50680, 50685, 50690, 50695, + 50700, 50705, 50710, 50715, 50720, 50725, 50730, 50735, 50740, 50745, + 50750, 50755, 50760, 50765, 50770, 50776, 50781, 50787, 50796, 50801, + 50809, 50816, 50825, 50830, 50835, 50840, 50846, 0, 50853, 50861, 50869, + 50878, 50885, 50893, 50899, 50908, 50916, 50924, 50932, 50940, 50948, + 50956, 50961, 50968, 0, 50973, 50981, 50988, 50995, 51003, 51008, 51013, + 51020, 51027, 51036, 51046, 51052, 51059, 0, 0, 51063, 51068, 51073, + 51078, 51083, 51088, 51093, 51098, 51103, 51108, 51113, 51118, 51123, + 51128, 51133, 51138, 51143, 51148, 51153, 51158, 51163, 51168, 51173, + 51178, 51183, 51188, 51193, 51198, 51203, 51208, 51213, 51217, 51221, + 51226, 51231, 51236, 51241, 51246, 51251, 51256, 51261, 51266, 51271, + 51276, 51281, 51286, 51291, 51296, 51301, 51306, 51311, 51318, 51325, + 51332, 51339, 51346, 51353, 51360, 51367, 51374, 51381, 51388, 51395, + 51402, 51409, 51414, 51419, 51426, 51433, 51440, 51447, 51454, 51461, + 51468, 51475, 51482, 51489, 51496, 51503, 51509, 51515, 51521, 51527, + 51534, 51541, 51548, 51555, 51562, 51569, 51576, 51583, 51590, 51597, + 51605, 51613, 51621, 51629, 51637, 51645, 51653, 51661, 51665, 51671, + 51677, 51681, 51687, 51693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51699, 51707, 51716, 51725, 51733, 51739, 51744, 51749, 51754, 51759, + 51764, 51769, 51774, 51779, 51784, 51789, 51794, 51799, 51804, 51809, + 51814, 51819, 51824, 51829, 51834, 51839, 51844, 51849, 51854, 51859, + 51864, 51869, 51874, 51879, 51884, 51889, 51894, 51899, 51904, 51909, + 51914, 51919, 51924, 51929, 51934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51939, + 51942, 51946, 51950, 51954, 51958, 51966, 51970, 51974, 51978, 51982, + 51986, 51990, 51994, 51998, 52004, 52008, 52012, 52020, 52026, 52030, + 52034, 52038, 52044, 52048, 52054, 52058, 52062, 52068, 52074, 52078, + 52082, 52086, 52092, 52098, 52102, 52106, 52110, 52114, 52118, 52124, + 52130, 52134, 52138, 52142, 52146, 52150, 52154, 52158, 52162, 52166, + 52170, 52174, 52180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52184, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52190, 52194, 52198, 52202, 52206, 52210, + 52214, 52218, 52222, 52226, 52230, 52236, 52240, 52244, 52248, 52252, + 52256, 52260, 52264, 52268, 52272, 52276, 52280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52284, 52288, 52292, 52296, 52300, 52304, 52308, 0, 52312, 52316, + 52320, 52324, 52328, 52332, 52336, 0, 52340, 52344, 52348, 52352, 52356, + 52360, 52364, 0, 52368, 52372, 52376, 52380, 52384, 52388, 52392, 0, + 52396, 52400, 52404, 52408, 52412, 52416, 52420, 0, 52424, 52428, 52432, + 52436, 52440, 52444, 52448, 0, 52452, 52456, 52460, 52464, 52468, 52472, + 52476, 0, 52480, 52484, 52488, 52492, 52496, 52500, 52504, 0, 52508, + 52513, 52518, 52523, 52528, 52533, 52538, 52542, 52547, 52552, 52557, + 52561, 52566, 52571, 52576, 52581, 52585, 52590, 52595, 52600, 52605, + 52610, 52615, 52619, 52624, 52629, 52636, 52641, 52646, 52652, 52659, + 52666, 52675, 52682, 52691, 52695, 52699, 52705, 52711, 52717, 52725, + 52731, 52735, 52739, 52743, 52749, 52755, 52759, 52761, 52765, 52770, + 52772, 52776, 52780, 52784, 52790, 52795, 52799, 52803, 52807, 52813, + 52818, 52823, 52828, 52833, 52840, 52847, 52852, 52857, 52862, 52867, + 52872, 52877, 52881, 52885, 52892, 52899, 52906, 52910, 52914, 52916, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52920, 52924, 52928, 52933, 52938, 52943, 52947, 52951, + 52955, 52960, 52965, 52969, 52973, 52977, 52981, 52986, 52991, 52996, + 53001, 53005, 53009, 53014, 53019, 53024, 53029, 53033, 0, 53037, 53041, + 53045, 53049, 53053, 53057, 53061, 53066, 53071, 53075, 53080, 53085, + 53094, 53098, 53102, 53106, 53113, 53117, 53122, 53127, 53131, 53135, + 53141, 53146, 53151, 53156, 53161, 53165, 53169, 53173, 53177, 53181, + 53186, 53191, 53195, 53199, 53204, 53209, 53214, 53218, 53222, 53227, + 53232, 53238, 53244, 53248, 53254, 53260, 53264, 53270, 53276, 53281, + 53286, 53290, 53296, 53300, 53304, 53310, 53316, 53321, 53326, 53330, + 53334, 53342, 53348, 53354, 53360, 53365, 53370, 53375, 53381, 53385, + 53391, 53395, 53399, 53405, 53411, 53417, 53423, 53429, 53435, 53441, + 53447, 53453, 53459, 53465, 53471, 53475, 53481, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53487, 53490, 53494, 53498, 53502, 53506, 53509, 53512, + 53516, 53520, 53524, 53528, 53531, 53536, 53540, 53544, 53548, 53554, + 53558, 53562, 53566, 53570, 53577, 53583, 53587, 53591, 53595, 53599, + 53603, 53607, 53611, 53615, 53619, 53623, 53627, 53633, 53637, 53641, + 53645, 53649, 53653, 53657, 53661, 53665, 53669, 53673, 53677, 53681, + 53685, 53689, 53693, 53697, 53703, 53709, 53714, 53719, 53723, 53727, + 53731, 53735, 53739, 53743, 53747, 53751, 53755, 53759, 53763, 53767, + 53771, 53775, 53779, 53783, 53787, 53791, 53795, 53799, 53803, 53807, + 53811, 53815, 53821, 53825, 53829, 53833, 53837, 53841, 53845, 53849, + 53853, 53858, 53865, 53869, 53873, 53877, 53881, 53885, 53889, 53893, + 53897, 53901, 53905, 53909, 53913, 53920, 53924, 53930, 53934, 53938, + 53942, 53946, 53950, 53953, 53957, 53961, 53965, 53969, 53973, 53977, + 53981, 53985, 53989, 53993, 53997, 54001, 54005, 54009, 54013, 54017, + 54021, 54025, 54029, 54033, 54037, 54041, 54045, 54049, 54053, 54057, + 54061, 54065, 54069, 54073, 54077, 54081, 54087, 54091, 54095, 54099, + 54103, 54107, 54111, 54115, 54119, 54123, 54127, 54131, 54135, 54139, + 54143, 54147, 54151, 54155, 54159, 54163, 54167, 54171, 54175, 54179, + 54183, 54187, 54191, 54195, 54203, 54207, 54211, 54215, 54219, 54223, + 54229, 54233, 54237, 54241, 54245, 54249, 54253, 54257, 54261, 54265, + 54269, 54273, 54277, 54281, 54287, 54291, 54295, 54299, 54303, 54307, + 54311, 54315, 54319, 54323, 54327, 54331, 54335, 54339, 54343, 54347, + 54351, 54355, 54359, 54363, 54367, 54371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54375, 54383, 54390, + 54401, 54411, 54419, 54428, 54437, 54447, 54459, 54471, 54482, 0, 0, 0, + 0, 54488, 54491, 54494, 54499, 54502, 54509, 54513, 54517, 54521, 54525, + 54529, 54534, 54539, 54543, 54547, 54552, 54557, 54562, 54567, 54570, + 54573, 54579, 54585, 54590, 54595, 54602, 54609, 54613, 54617, 54621, + 54628, 54634, 54641, 54646, 54650, 54654, 54658, 54662, 54666, 54670, + 54674, 54678, 54682, 54687, 54692, 54697, 54702, 54708, 54713, 54717, + 54723, 54734, 54744, 54759, 54768, 54772, 54781, 54786, 54791, 54796, + 54801, 54804, 54809, 54813, 0, 54819, 54823, 54826, 54830, 54833, 54837, + 54840, 54844, 54847, 54851, 54854, 54857, 54861, 54865, 54869, 54873, + 54877, 54881, 54885, 54889, 54893, 54897, 54901, 54905, 54909, 54913, + 54917, 54921, 54925, 54929, 54933, 54937, 54941, 54945, 54949, 54954, + 54958, 54962, 54966, 54970, 54973, 54977, 54981, 54985, 54989, 54993, + 54997, 55000, 55004, 55007, 55011, 55015, 55019, 55023, 55027, 55031, + 55035, 55039, 55043, 55047, 55051, 55055, 55058, 55062, 55066, 55070, + 55074, 55078, 55081, 55086, 55090, 55095, 55099, 55102, 55106, 55110, + 55114, 55118, 55123, 55127, 55131, 55135, 55139, 55142, 55146, 55150, 0, + 0, 55155, 55163, 55171, 55178, 55185, 55189, 55195, 55200, 55205, 55209, + 55212, 55216, 55219, 55223, 55226, 55230, 55233, 55237, 55240, 55243, 55247, 55251, 55255, 55259, 55263, 55267, 55271, 55275, 55279, 55283, 55287, 55291, 55295, 55299, 55303, 55307, 55311, 55315, 55319, 55323, - 55327, 55331, 55335, 55339, 55343, 55347, 55351, 55355, 55359, 55363, - 55367, 55371, 55375, 55379, 55383, 55387, 55391, 55395, 55399, 55403, - 55407, 55411, 55415, 55419, 55423, 55427, 55431, 55435, 55439, 55443, - 55447, 55451, 55455, 55459, 55463, 55467, 55471, 55475, 55479, 55483, - 55487, 55491, 55495, 55499, 55503, 55507, 55511, 55515, 55519, 55523, - 55527, 55531, 55535, 55539, 55543, 55547, 55551, 55555, 55559, 55563, - 55566, 55570, 55574, 55578, 55582, 55586, 55590, 55594, 55598, 55602, - 55606, 55610, 55614, 55618, 55622, 55626, 55630, 55634, 55638, 55642, - 55646, 55650, 55654, 55658, 55662, 55666, 55670, 55674, 55678, 55682, - 55686, 55690, 55694, 55698, 55702, 55706, 55710, 55714, 55718, 55722, - 55726, 55730, 55734, 55738, 55742, 55746, 55750, 55754, 55758, 55762, - 55766, 55770, 55774, 55778, 55782, 55786, 55790, 55794, 55798, 55802, - 55806, 55810, 55814, 55818, 55822, 55826, 55830, 55834, 55838, 55842, - 55846, 55850, 55854, 55858, 55862, 55866, 55870, 55874, 55878, 55882, - 55886, 55890, 55894, 55898, 55902, 55906, 55910, 55914, 55918, 55922, - 55926, 55930, 55934, 55938, 55942, 55946, 55950, 55954, 55958, 55962, - 55966, 55970, 55974, 55978, 55982, 55986, 55990, 55994, 55998, 56002, - 56006, 56010, 56014, 56018, 56021, 56025, 56029, 56033, 56037, 56041, - 56045, 56049, 56053, 56057, 56061, 56065, 56069, 56073, 56077, 56081, - 56085, 56089, 56093, 56097, 56101, 56105, 56109, 56113, 56117, 56121, - 56125, 56129, 56133, 56137, 56141, 56145, 56149, 56153, 56157, 56161, - 56165, 56169, 56173, 56177, 56181, 56185, 56189, 56193, 56197, 56201, - 56205, 56209, 56213, 56217, 56221, 56225, 56229, 56233, 56237, 56241, - 56245, 56249, 56253, 56257, 56261, 56265, 56269, 56273, 56277, 56281, - 56285, 56289, 56293, 56297, 56301, 56305, 56309, 56313, 56317, 56321, - 56325, 56329, 56333, 56337, 56341, 56345, 56349, 56353, 56357, 56361, - 56365, 56369, 56373, 56377, 56381, 56385, 56389, 56393, 56397, 56401, - 56405, 56409, 56413, 56417, 56421, 56425, 56429, 56433, 56437, 56441, - 56445, 56449, 56453, 56457, 56461, 56465, 56469, 56473, 56477, 56481, - 56485, 56489, 56493, 56497, 56501, 56505, 56509, 56513, 56517, 56521, - 56525, 56529, 56533, 56537, 56541, 56545, 56549, 56553, 56557, 56561, - 56565, 56569, 56573, 56577, 56581, 56585, 56589, 56593, 56597, 56601, - 56605, 56609, 56613, 56617, 56621, 56624, 56628, 56632, 56636, 56640, - 56644, 56648, 56652, 56656, 56660, 56664, 56668, 56672, 56676, 56680, - 56684, 56688, 56692, 56696, 56700, 56704, 56708, 56712, 56716, 56720, - 56724, 56728, 56732, 56736, 56740, 56744, 56748, 56752, 56756, 56760, - 56764, 56768, 56772, 56776, 56780, 56784, 56788, 56792, 56796, 56800, - 56804, 56808, 56812, 56816, 56820, 56824, 56828, 56832, 56836, 56840, - 56844, 56848, 56852, 56856, 56860, 56864, 56868, 56872, 56876, 56880, - 56884, 56888, 56892, 56896, 56900, 56904, 56908, 56912, 56916, 56920, - 56924, 56928, 56932, 56936, 56940, 56944, 56948, 56952, 56956, 56960, - 56964, 56968, 56972, 56976, 56980, 56984, 56988, 56992, 56996, 57000, - 57004, 57008, 57012, 57016, 57020, 57024, 57028, 57032, 57036, 57040, - 57044, 57048, 57052, 57056, 57060, 57064, 57068, 57072, 57076, 57080, - 57084, 57088, 57092, 57096, 57100, 57104, 57108, 57112, 57116, 57120, - 57124, 57128, 57132, 57136, 57140, 57144, 57148, 57152, 57156, 57160, - 57164, 57168, 57172, 57176, 57180, 57184, 57188, 57192, 57196, 57200, - 57204, 57208, 57212, 57216, 57220, 57224, 57228, 57232, 57236, 57240, - 57244, 57248, 57252, 57256, 57260, 57264, 57268, 57272, 57276, 57280, - 57284, 57288, 57292, 57296, 57300, 57304, 57308, 57312, 57316, 57320, - 57324, 57328, 57332, 57336, 57340, 57344, 57348, 57352, 57356, 57360, - 57364, 57368, 57372, 57376, 57380, 57384, 57388, 57392, 57396, 57400, - 57404, 57408, 57412, 57416, 57420, 57424, 57428, 57432, 57436, 57440, - 57444, 57448, 57452, 57456, 57460, 57464, 57468, 57472, 57476, 57480, - 57484, 57488, 57492, 57496, 57500, 57504, 57508, 57512, 57516, 57520, - 57524, 57528, 57532, 57536, 57540, 57544, 57548, 57552, 57556, 57560, - 57564, 57568, 57572, 57576, 57580, 57584, 57588, 57592, 57596, 57600, - 57604, 57608, 57612, 57616, 57620, 57624, 57628, 57632, 57636, 57640, - 57644, 57648, 57652, 57656, 57660, 57664, 57668, 57672, 57676, 57680, - 57684, 57688, 57692, 57696, 57700, 57704, 57708, 57712, 57716, 57720, - 57724, 57728, 57732, 57736, 57740, 57744, 57748, 57752, 57756, 57760, - 57764, 57768, 57772, 57776, 57780, 57784, 57788, 57792, 57796, 57800, - 57804, 57808, 57812, 57816, 57820, 57824, 57828, 57832, 57836, 57840, - 57844, 57848, 57852, 57856, 57860, 57864, 57868, 57872, 57876, 57880, - 57884, 57888, 57892, 57896, 57900, 57904, 57908, 57912, 57916, 57920, - 57924, 57928, 57932, 57936, 57940, 57944, 57948, 57952, 57956, 57960, - 57964, 57968, 57972, 57976, 57980, 57984, 57988, 57992, 57996, 58000, - 58004, 58008, 58012, 58016, 58020, 58024, 58028, 58032, 58036, 58040, - 58044, 58048, 58052, 58056, 58060, 58064, 58068, 58072, 58076, 58080, - 58084, 58088, 58092, 58096, 58100, 58104, 58108, 58112, 58116, 58120, - 58124, 58128, 58132, 58136, 58140, 58144, 58148, 58152, 58156, 58160, - 58164, 0, 0, 0, 58168, 58172, 58176, 58180, 58184, 58188, 58192, 58196, - 58200, 58204, 58208, 58212, 58216, 58220, 58224, 58228, 58232, 58236, - 58240, 58244, 58248, 58252, 58256, 58260, 58264, 58268, 58272, 58276, - 58280, 58284, 58288, 58292, 58296, 58300, 58304, 58308, 58312, 58316, - 58320, 58324, 58328, 58332, 58336, 58340, 58344, 58348, 58352, 58356, - 58360, 58364, 58368, 58372, 58376, 58380, 58384, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58388, 58397, 58406, 58415, 58424, 58433, 58442, 58451, 58460, 58468, - 58475, 58483, 58490, 58498, 58508, 58517, 58527, 58536, 58546, 58554, - 58561, 58569, 58576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58584, 58590, 58596, - 58603, 58609, 58615, 58621, 58628, 58635, 58642, 58649, 58656, 58663, - 58670, 58677, 58684, 58691, 58698, 58705, 58712, 58719, 58725, 58732, - 58739, 58746, 58753, 58760, 58767, 58774, 58781, 58788, 58795, 58802, - 58809, 58816, 58823, 58830, 58837, 58844, 58851, 58859, 58867, 58875, - 58883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58891, 58895, 58899, 58903, - 58907, 58911, 58915, 58919, 58923, 58927, 58931, 58935, 58939, 58943, - 58947, 58951, 58955, 58959, 58963, 58967, 58971, 58975, 58979, 58983, - 58987, 58991, 58995, 58999, 59003, 59007, 59011, 59015, 59019, 59023, - 59027, 59031, 59035, 59039, 59043, 59047, 59051, 59055, 59059, 59063, - 59067, 59071, 59075, 59079, 59083, 59087, 59091, 59095, 59099, 59103, - 59107, 59111, 59115, 59119, 59123, 59127, 59131, 59135, 59139, 59143, - 59147, 59151, 59155, 59159, 59163, 59167, 59171, 59175, 59179, 59183, - 59187, 59191, 59195, 59199, 59203, 59207, 59211, 59215, 59219, 59223, - 59227, 59231, 59235, 59239, 59243, 59247, 59251, 59255, 59259, 59263, - 59267, 59271, 59275, 59279, 59283, 59287, 59291, 59295, 59299, 59303, - 59307, 59311, 59315, 59319, 59323, 59327, 59331, 59335, 59339, 59343, - 59347, 59351, 59355, 59359, 59363, 59367, 59371, 59375, 59379, 59383, - 59387, 59391, 59395, 59399, 59403, 59407, 59411, 59415, 59419, 59423, - 59427, 59431, 59435, 59439, 59443, 59447, 59451, 59455, 59459, 59463, - 59467, 59471, 59475, 59479, 59483, 59487, 59491, 59495, 59499, 59503, - 59507, 59511, 59515, 59519, 59523, 59527, 59531, 59535, 59539, 59543, - 59547, 59551, 59555, 59559, 59563, 59567, 59571, 59575, 59579, 59583, - 59587, 59591, 59595, 59599, 59603, 59607, 59611, 59615, 59619, 59623, - 59627, 59631, 59635, 59639, 59643, 59647, 59651, 59655, 59659, 59663, - 59667, 59671, 59675, 59679, 59683, 59687, 59691, 59695, 59699, 59703, - 59707, 59711, 59715, 59719, 59723, 59727, 59731, 59735, 59739, 59743, - 59747, 59751, 59755, 59759, 59763, 59767, 59771, 59775, 59779, 59783, - 59787, 59791, 59795, 59799, 59803, 59807, 59811, 59815, 59819, 59823, - 59827, 59831, 59835, 59839, 59843, 59847, 59851, 59855, 59859, 59863, - 59867, 59871, 59875, 59879, 59883, 59887, 59891, 59895, 59899, 59903, - 59907, 59911, 59915, 59919, 59923, 59927, 59931, 59935, 59939, 59943, - 59947, 59951, 59955, 59959, 59963, 59967, 59971, 59975, 59979, 59983, - 59987, 59991, 59995, 59999, 60003, 60007, 60011, 60015, 60019, 60023, - 60027, 60031, 60035, 60039, 60043, 60047, 60051, 60055, 60059, 60063, - 60067, 60071, 60075, 60079, 60083, 60087, 60091, 60095, 0, 0, 60099, - 60103, 60107, 60111, 60115, 60119, 60123, 60127, 60131, 60135, 60139, - 60143, 60147, 60151, 60155, 60159, 60163, 60167, 60171, 60175, 60179, - 60183, 60187, 60191, 60195, 60199, 60203, 60207, 60211, 60215, 60219, - 60223, 60227, 60231, 60235, 60239, 60243, 60247, 60251, 60255, 60259, - 60263, 60267, 60271, 60275, 60279, 60283, 60287, 60291, 60295, 60299, - 60303, 60307, 60311, 60315, 60319, 60323, 60327, 60331, 0, 0, 0, 0, 0, - 60335, 60339, 60343, 60347, 60351, 60355, 60359, 60363, 60367, 60371, - 60375, 60379, 60383, 60387, 60391, 60395, 60399, 60403, 60407, 60411, - 60415, 60419, 60423, 60427, 60431, 60435, 60439, 60443, 60447, 60451, - 60455, 60459, 60463, 60467, 60471, 60475, 60479, 60483, 60487, 60491, - 60495, 60499, 60503, 60507, 60511, 60515, 60519, 60523, 60527, 60531, - 60535, 60539, 60543, 60547, 60551, 60555, 60559, 60563, 60567, 60571, - 60575, 60579, 60583, 60587, 60591, 60595, 60599, 60603, 60607, 60611, - 60615, 60619, 60623, 60627, 60631, 60635, 60639, 60643, 60647, 60651, - 60655, 60659, 60663, 60667, 60671, 60675, 60679, 60683, 60687, 60691, - 60695, 60699, 60703, 60707, 60711, 60715, 60719, 60723, 60727, 60731, - 60735, 60739, 60743, 60747, 60751, 60755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 60759, 60764, 60769, 60774, 60779, 60784, 60791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60796, 60803, 60810, 60817, 60824, 0, 0, 0, 0, 0, - 60831, 60838, 60845, 60855, 60861, 60867, 60873, 60879, 60885, 60891, - 60898, 60904, 60910, 60917, 60926, 60935, 60947, 60959, 60965, 60971, - 60977, 60984, 60991, 60998, 61005, 61012, 0, 61019, 61026, 61033, 61041, - 61048, 0, 61055, 0, 61062, 61069, 0, 61076, 61084, 0, 61091, 61098, - 61105, 61112, 61119, 61126, 61133, 61140, 61147, 61154, 61159, 61166, - 61173, 61179, 61185, 61191, 61197, 61203, 61209, 61215, 61221, 61227, - 61233, 61239, 61245, 61251, 61257, 61263, 61269, 61275, 61281, 61287, - 61293, 61299, 61305, 61311, 61317, 61323, 61329, 61335, 61341, 61347, - 61353, 61359, 61365, 61371, 61377, 61383, 61389, 61395, 61401, 61407, - 61413, 61419, 61425, 61431, 61437, 61443, 61449, 61455, 61461, 61467, - 61473, 61479, 61485, 61491, 61497, 61503, 61509, 61515, 61521, 61527, - 61533, 61539, 61545, 61551, 61557, 61563, 61569, 61575, 61581, 61587, - 61593, 61599, 61605, 61611, 61617, 61623, 61629, 61636, 61643, 61649, - 61655, 61661, 61667, 61676, 61685, 61693, 61701, 61709, 61717, 61725, - 61733, 61741, 61749, 61756, 61763, 61773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61783, 61789, 61795, 61801, 61807, 61812, 61817, 61823, 61829, 61835, - 61841, 61849, 61855, 61861, 61869, 61877, 61885, 61893, 61898, 61903, - 61908, 61913, 61925, 61937, 61947, 61957, 61968, 61979, 61990, 62001, - 62011, 62021, 62032, 62043, 62054, 62065, 62075, 62085, 62095, 62110, - 62125, 62140, 62147, 62154, 62161, 62168, 62178, 62188, 62198, 62209, - 62219, 62227, 62235, 62243, 62251, 62260, 62268, 62276, 62284, 62292, - 62300, 62309, 62317, 62325, 62333, 62342, 62350, 62357, 62364, 62371, - 62378, 62385, 62392, 62399, 62407, 62415, 62423, 62431, 62439, 62447, - 62455, 62463, 62471, 62479, 62487, 62495, 62503, 62511, 62519, 62527, - 62535, 62543, 62551, 62559, 62567, 62576, 62584, 62592, 62600, 62609, - 62617, 62625, 62633, 62641, 62649, 62657, 62665, 62674, 62682, 62689, - 62696, 62703, 62710, 62718, 62725, 62732, 62739, 62746, 62753, 62761, - 62768, 62775, 62782, 62789, 62796, 62804, 62811, 62819, 62827, 62836, - 62844, 62851, 62858, 62865, 62872, 62880, 62887, 62897, 62907, 62917, - 62926, 62935, 62944, 62953, 62962, 62972, 62983, 62994, 63004, 63014, - 63025, 63035, 63044, 63053, 63061, 63069, 63078, 63086, 63095, 63104, - 63112, 63120, 63129, 63137, 63146, 63155, 63163, 63171, 63180, 63188, - 63197, 63205, 63214, 63222, 63230, 63238, 63246, 63255, 63263, 63270, - 63278, 63285, 63292, 63299, 63307, 63315, 63322, 63329, 63337, 63344, - 63354, 63362, 63370, 63377, 63384, 63392, 63399, 63409, 63419, 63429, - 63439, 63450, 63458, 63466, 63474, 63482, 63491, 63499, 63507, 63515, - 63523, 63532, 63540, 63547, 63554, 63561, 63568, 63575, 63582, 63590, - 63598, 63606, 63614, 63622, 63630, 63638, 63646, 63654, 63662, 63670, - 63678, 63686, 63694, 63702, 63710, 63718, 63726, 63734, 63742, 63750, - 63758, 63766, 63774, 63782, 63790, 63798, 63806, 63813, 63820, 63827, - 63834, 63842, 63849, 63856, 63863, 63870, 63877, 63884, 63891, 63898, - 63906, 63914, 63922, 63932, 63939, 63946, 63953, 63960, 63968, 63978, - 63989, 63997, 64006, 64014, 64023, 64031, 64040, 64048, 64057, 64065, - 64074, 64082, 64090, 64097, 64104, 64112, 64119, 64127, 64136, 64145, - 64154, 64163, 64171, 64180, 64188, 64197, 64205, 64214, 64222, 64231, - 64239, 64247, 64254, 64262, 64269, 64277, 64284, 64293, 64301, 64310, - 64318, 64326, 64334, 64342, 64350, 64359, 64368, 64377, 64386, 64395, - 64403, 64412, 64420, 64429, 64437, 64446, 64454, 64463, 64471, 64479, - 64486, 64494, 64501, 64509, 64516, 64525, 64533, 64542, 64550, 64558, - 64566, 64574, 64582, 64591, 64600, 64609, 64618, 64626, 64634, 64642, - 64650, 64659, 64668, 64676, 64684, 64692, 64700, 64708, 64716, 64724, - 64732, 64740, 64748, 64756, 64761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64766, 64776, 64786, 64796, 64806, 64816, 64826, 64836, 64846, - 64855, 64864, 64873, 64883, 64893, 64903, 64914, 64924, 64934, 64944, - 64954, 64964, 64974, 64984, 64994, 65004, 65014, 65024, 65034, 65044, - 65054, 65064, 65075, 65085, 65095, 65105, 65115, 65125, 65135, 65145, - 65155, 65165, 65176, 65186, 65196, 65207, 65217, 65227, 65237, 65247, - 65256, 65265, 65275, 65284, 65293, 65302, 65311, 65320, 65329, 65338, - 65347, 65356, 65365, 65374, 65383, 0, 0, 65392, 65401, 65411, 65421, - 65430, 65440, 65449, 65458, 65468, 65477, 65487, 65496, 65505, 65515, - 65525, 65536, 65546, 65557, 65567, 65578, 65587, 65597, 65607, 65618, - 65628, 65638, 65648, 65657, 65666, 65675, 65684, 65693, 65702, 65712, - 65721, 65731, 65740, 65750, 65760, 65769, 65778, 65787, 65797, 65806, - 65815, 65824, 65833, 65842, 65852, 65862, 65872, 65882, 65892, 65902, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65911, 65926, 65941, 65947, - 65953, 65959, 65965, 65971, 65977, 65983, 65989, 65997, 66001, 66004, 0, - 0, 66012, 66015, 66018, 66021, 66024, 66027, 66030, 66033, 66036, 66039, - 66042, 66045, 66048, 66051, 66054, 66057, 66060, 66068, 66077, 66087, - 66095, 66103, 66112, 66121, 66132, 66144, 0, 0, 0, 0, 0, 0, 66153, 66158, - 66163, 66170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66177, 66187, 66197, - 66207, 66216, 66227, 66236, 66245, 66255, 66265, 66277, 66289, 66300, - 66311, 66321, 66331, 66340, 66349, 66359, 66369, 66380, 66391, 66395, - 66400, 66409, 66418, 66422, 66426, 66430, 66435, 66440, 66445, 66450, - 66453, 66457, 0, 66461, 66464, 66467, 66471, 66475, 66480, 66484, 66488, - 66493, 66498, 66505, 66512, 66515, 66518, 66521, 66525, 66528, 66532, - 66536, 0, 66540, 66545, 66549, 66553, 0, 0, 0, 0, 66558, 66563, 66570, - 66575, 66580, 0, 66585, 66590, 66595, 66600, 66605, 66610, 66615, 66620, - 66625, 66630, 66635, 66640, 66649, 66658, 66666, 66674, 66683, 66692, - 66701, 66710, 66718, 66726, 66734, 66742, 66747, 66752, 66758, 66764, - 66770, 66776, 66784, 66792, 66798, 66804, 66810, 66816, 66822, 66828, - 66834, 66840, 66845, 66850, 66855, 66860, 66865, 66870, 66875, 66880, - 66885, 66890, 66895, 66900, 66906, 66912, 66918, 66924, 66930, 66936, - 66942, 66948, 66954, 66960, 66966, 66972, 66978, 66984, 66990, 66996, - 67002, 67008, 67014, 67020, 67026, 67032, 67038, 67044, 67050, 67056, - 67062, 67068, 67074, 67080, 67086, 67092, 67098, 67104, 67110, 67116, - 67122, 67128, 67134, 67140, 67146, 67152, 67158, 67164, 67170, 67176, - 67182, 67188, 67194, 67200, 67206, 67212, 67217, 67222, 67227, 67232, - 67237, 67242, 67247, 67252, 67257, 67262, 67267, 67272, 67278, 67284, - 67290, 67296, 67302, 67308, 67314, 67320, 67325, 67330, 67335, 67340, - 67351, 67362, 67372, 67382, 67393, 67404, 67411, 0, 0, 67418, 0, 67426, - 67430, 67434, 67437, 67441, 67445, 67448, 67451, 67455, 67459, 67462, - 67466, 67469, 67472, 67476, 67479, 67483, 67486, 67489, 67492, 67495, - 67498, 67501, 67504, 67507, 67510, 67513, 67516, 67520, 67524, 67528, - 67532, 67537, 67542, 67547, 67553, 67558, 67563, 67569, 67574, 67579, - 67584, 67589, 67595, 67600, 67605, 67610, 67615, 67620, 67626, 67631, - 67636, 67641, 67646, 67651, 67657, 67662, 67668, 67674, 67678, 67683, - 67687, 67691, 67695, 67700, 67705, 67710, 67716, 67721, 67726, 67732, - 67737, 67742, 67747, 67752, 67758, 67763, 67768, 67773, 67778, 67783, - 67789, 67794, 67799, 67804, 67809, 67814, 67820, 67825, 67831, 67837, - 67842, 67846, 67851, 67853, 67858, 67863, 67868, 67873, 67878, 67882, - 67888, 67893, 67898, 67903, 67908, 67913, 67918, 67923, 67929, 67935, - 67941, 67949, 67953, 67957, 67961, 67965, 67969, 67973, 67978, 67983, - 67988, 67993, 67998, 68003, 68008, 68013, 68018, 68023, 68028, 68033, - 68038, 68042, 68047, 68052, 68057, 68062, 68067, 68071, 68076, 68081, - 68086, 68091, 68095, 68100, 68105, 68110, 68115, 68119, 68124, 68129, - 68134, 68139, 68144, 68149, 68154, 68159, 68163, 68170, 68177, 68181, - 68186, 68191, 68196, 68201, 68206, 68211, 68216, 68221, 68226, 68231, - 68236, 68241, 68246, 68251, 68256, 68261, 68266, 68271, 68276, 68281, - 68286, 68291, 68296, 68301, 68306, 68311, 68316, 68321, 68326, 0, 0, 0, - 68331, 68335, 68340, 68344, 68349, 68354, 0, 0, 68358, 68363, 68368, - 68372, 68377, 68382, 0, 0, 68387, 68392, 68396, 68401, 68406, 68411, 0, - 0, 68416, 68421, 68426, 0, 0, 0, 68430, 68434, 68438, 68441, 68443, - 68447, 68451, 0, 68455, 68461, 68464, 68468, 68471, 68475, 68479, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68483, 68489, 68495, 68501, 68507, 0, 0, 68511, - 68517, 68523, 68529, 68535, 68541, 68548, 68555, 68562, 68569, 68576, - 68583, 0, 68590, 68597, 68604, 68610, 68617, 68624, 68631, 68638, 68644, - 68651, 68658, 68665, 68672, 68679, 68686, 68693, 68700, 68707, 68714, - 68721, 68728, 68735, 68742, 68749, 68756, 68763, 0, 68770, 68777, 68784, - 68791, 68798, 68805, 68812, 68819, 68826, 68833, 68840, 68847, 68854, - 68861, 68867, 68874, 68881, 68888, 68895, 0, 68902, 68909, 0, 68916, - 68923, 68930, 68937, 68944, 68951, 68958, 68965, 68972, 68979, 68986, - 68993, 69000, 69007, 69014, 0, 0, 69020, 69025, 69030, 69035, 69040, - 69045, 69050, 69055, 69060, 69065, 69070, 69075, 69080, 69085, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69090, 69097, 69104, 69111, 69118, 69125, 69132, - 69139, 69146, 69153, 69160, 69167, 69174, 69181, 69188, 69195, 69202, - 69209, 69216, 69223, 69231, 69239, 69246, 69253, 69258, 69266, 69274, - 69281, 69288, 69293, 69300, 69305, 69310, 69317, 69322, 69327, 69332, - 69340, 69345, 69350, 69357, 69362, 69367, 69374, 69381, 69386, 69391, - 69396, 69401, 69406, 69411, 69416, 69421, 69426, 69433, 69438, 69445, - 69450, 69455, 69460, 69465, 69470, 69475, 69480, 69485, 69490, 69495, - 69500, 69507, 69514, 69521, 69528, 69534, 69539, 69546, 69551, 69556, - 69565, 69572, 69581, 69588, 69593, 69598, 69606, 69611, 69616, 69621, - 69626, 69631, 69638, 69643, 69648, 69653, 69658, 69663, 69670, 69677, - 69684, 69691, 69698, 69705, 69712, 69719, 69726, 69733, 69740, 69747, - 69754, 69761, 69768, 69775, 69782, 69789, 69796, 69803, 69810, 69817, - 69824, 69831, 69838, 69845, 69852, 69859, 0, 0, 0, 0, 0, 69866, 69873, - 69880, 0, 0, 0, 0, 69884, 69887, 69890, 69893, 69896, 69899, 69902, - 69905, 69908, 69911, 69915, 69919, 69923, 69927, 69931, 69935, 69939, - 69943, 69947, 69953, 69958, 69963, 69969, 69975, 69981, 69987, 69993, - 69999, 70005, 70010, 70015, 70021, 70027, 70033, 70039, 70045, 70051, - 70057, 70063, 70069, 70075, 70081, 70087, 70093, 70099, 0, 0, 0, 70105, - 70112, 70119, 70126, 70133, 70140, 70149, 70158, 70165, 70172, 70180, - 70188, 70196, 70201, 70207, 70215, 70223, 70231, 70239, 70247, 70255, - 70265, 70275, 70285, 70295, 70303, 70311, 70319, 70329, 70339, 70349, - 70359, 70369, 70377, 70385, 70390, 70395, 70400, 70405, 70412, 70419, - 70424, 70430, 70439, 70445, 70451, 70457, 70463, 70469, 70478, 70484, - 70490, 70498, 70505, 70513, 70521, 70529, 70537, 70545, 70553, 70561, - 70569, 70577, 70582, 70590, 70595, 70600, 70604, 70608, 70612, 70616, - 70621, 70626, 70632, 70638, 70642, 70648, 70652, 70656, 70660, 70664, - 70668, 70672, 70678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70682, 70686, 70691, 70696, 70701, 70705, 70710, 70715, - 70720, 70725, 70729, 70733, 70738, 70743, 70748, 70753, 70757, 70762, - 70767, 70772, 70777, 70782, 70787, 70791, 70796, 70801, 70806, 70811, - 70816, 70821, 70826, 0, 70831, 70835, 70839, 70844, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 70849, 70854, 70859, 70864, 70869, 70874, 70879, 70884, - 70889, 70894, 70899, 70904, 70909, 70914, 70919, 70924, 70929, 70934, - 70939, 70944, 70949, 70954, 70959, 70964, 70969, 70974, 70979, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70986, 70991, 70996, 71001, 71006, 71011, 71016, 71021, 71026, - 71031, 71036, 71041, 71046, 71051, 71056, 71061, 71066, 71071, 71076, - 71081, 71086, 71091, 71096, 71101, 71106, 71111, 71116, 71120, 71124, - 71128, 0, 71133, 71139, 71143, 71147, 71151, 71155, 71160, 71165, 71170, - 71175, 71180, 71185, 71190, 71195, 71200, 71205, 71210, 71215, 71220, - 71225, 71230, 71235, 71240, 71245, 71249, 71254, 71259, 71263, 71268, - 71273, 71278, 71283, 71288, 71293, 71298, 71303, 71308, 0, 0, 0, 0, - 71312, 71317, 71322, 71327, 71332, 71337, 71342, 71347, 71352, 71358, - 71362, 71366, 71371, 71376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 71381, 71386, 71391, 71396, 71402, 71407, 71413, 71419, 71425, - 71431, 71438, 71444, 71451, 71456, 71461, 71466, 71471, 71475, 71480, - 71485, 71490, 71495, 71500, 71505, 71510, 71515, 71520, 71525, 71530, - 71535, 71540, 71545, 71550, 71555, 71560, 71565, 71570, 71575, 71580, - 71585, 71590, 71595, 71600, 71605, 71611, 71616, 71622, 71628, 71634, - 71640, 71647, 71653, 71660, 71665, 71670, 71675, 71680, 71684, 71689, - 71694, 71699, 71704, 71709, 71714, 71719, 71724, 71729, 71734, 71739, - 71744, 71749, 71754, 71759, 71764, 71769, 71774, 71779, 71784, 71789, - 71794, 71799, 71803, 71807, 71811, 71815, 71819, 71823, 71827, 71831, - 71835, 71839, 71843, 71847, 71851, 71855, 71859, 71863, 71867, 71871, - 71875, 71879, 71883, 71887, 71891, 71895, 71899, 71903, 71907, 71911, - 71915, 71919, 71923, 71927, 71931, 71935, 71939, 71943, 71947, 71951, - 71955, 71959, 71963, 71967, 71971, 71975, 71979, 71983, 71987, 71991, - 71996, 72001, 72006, 72011, 72016, 72021, 72026, 72031, 72036, 72041, - 72046, 72051, 72056, 72061, 72066, 72071, 72076, 72081, 72086, 72091, - 72095, 72099, 72103, 72107, 72111, 72115, 72119, 72124, 72129, 0, 0, - 72134, 72139, 72143, 72147, 72151, 72155, 72159, 72163, 72167, 72171, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72175, 72178, 72181, 72184, 72187, - 72190, 0, 0, 72194, 0, 72198, 72201, 72205, 72209, 72213, 72217, 72221, - 72225, 72229, 72233, 72237, 72240, 72244, 72248, 72252, 72256, 72260, - 72264, 72268, 72272, 72276, 72280, 72284, 72288, 72292, 72296, 72300, - 72304, 72308, 72312, 72316, 72320, 72324, 72328, 72332, 72336, 72340, - 72344, 72348, 72351, 72355, 72359, 72363, 72367, 0, 72371, 72375, 0, 0, - 0, 72379, 0, 0, 72383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55327, 55331, 55335, 55340, 55344, 55348, 55352, 55356, 55359, 55363, + 55367, 55371, 55375, 55379, 55383, 55386, 55390, 55393, 55397, 55401, + 55405, 55409, 55413, 55417, 55421, 55425, 55429, 55433, 55437, 55441, + 55444, 55448, 55452, 55456, 55460, 55464, 55467, 55472, 55476, 55481, + 55485, 55488, 55492, 55496, 55500, 55504, 55509, 55513, 55517, 55521, + 55525, 55528, 55532, 55536, 55541, 55545, 55549, 55553, 55557, 55562, + 55569, 55573, 55579, 0, 0, 0, 0, 0, 55584, 55588, 55592, 55595, 55599, + 55603, 55607, 55610, 55613, 55616, 55620, 55623, 55627, 55631, 55635, + 55639, 55643, 55647, 55650, 55654, 55658, 55661, 55664, 55667, 55670, + 55674, 55678, 55682, 55686, 55690, 55694, 55698, 55702, 55706, 55710, + 55713, 55716, 55720, 55723, 55727, 55731, 0, 0, 0, 55735, 55739, 55743, + 55747, 55751, 55755, 55759, 55763, 55767, 55771, 55775, 55779, 55783, + 55787, 55791, 55795, 55799, 55803, 55807, 55811, 55815, 55819, 55823, + 55827, 55831, 55835, 55839, 55843, 55847, 55851, 55855, 55858, 55862, + 55865, 55869, 55873, 55876, 55880, 55884, 55887, 55891, 55895, 55899, + 55903, 55906, 55910, 55914, 55918, 55922, 55926, 55930, 55933, 55936, + 55940, 55944, 55948, 55952, 55956, 55960, 55964, 55968, 55972, 55976, + 55980, 55984, 55988, 55992, 55996, 56000, 56004, 56008, 56012, 56016, + 56020, 56024, 56028, 56032, 56036, 56040, 56044, 56048, 56052, 56056, + 56060, 56064, 56068, 56072, 56076, 56080, 56084, 56088, 56092, 56096, + 56100, 0, 56104, 56110, 56116, 56121, 56126, 56131, 56137, 56143, 56149, + 56155, 56161, 56167, 56173, 56179, 56185, 56191, 56197, 56201, 56205, + 56209, 56213, 56217, 56221, 56225, 56229, 56233, 56237, 56241, 56245, + 56249, 56253, 56257, 56261, 56265, 56269, 56273, 56277, 56282, 56287, + 56292, 0, 0, 0, 0, 0, 0, 0, 0, 56296, 56300, 56304, 56308, 56312, 56316, + 56320, 56324, 56328, 56332, 56336, 56340, 56344, 56348, 56352, 56356, + 56359, 56362, 56365, 56369, 56373, 56377, 56381, 56385, 56389, 56393, + 56397, 56401, 56405, 56409, 56413, 56417, 56421, 56425, 56429, 56433, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56437, 56442, 56447, 56452, 56456, + 56461, 56465, 56470, 56475, 56480, 56485, 56490, 56494, 56499, 56504, + 56509, 56514, 56518, 56522, 56526, 56530, 56534, 56538, 56542, 56546, + 56550, 56554, 56558, 56562, 56566, 56570, 56575, 56580, 56585, 56590, + 56595, 56600, 56605, 56610, 56615, 56620, 56625, 56630, 56635, 56640, + 56645, 56651, 0, 56658, 56661, 56664, 56667, 56670, 56673, 56676, 56679, + 56682, 56685, 56689, 56693, 56697, 56701, 56705, 56709, 56713, 56717, + 56721, 56725, 56729, 56733, 56737, 56741, 56745, 56749, 56753, 56757, + 56761, 56765, 56769, 56773, 56777, 56781, 56785, 56789, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56793, 56796, 56801, 56806, 56811, 56816, 56821, 56826, + 56831, 56836, 56841, 56845, 56850, 56855, 56860, 56865, 56870, 56874, + 56878, 56882, 56886, 56890, 56894, 56898, 56902, 56906, 56910, 56914, + 56918, 56922, 56926, 56931, 56936, 56941, 56946, 56951, 56956, 56961, + 56966, 56971, 56976, 56981, 56986, 56991, 56996, 57002, 57008, 57013, + 57018, 57021, 57024, 57027, 57030, 57033, 57036, 57039, 57042, 57045, + 57049, 57053, 57057, 57061, 57065, 57069, 57073, 57077, 57081, 57085, + 57089, 57093, 57097, 57101, 57105, 57109, 57113, 57117, 57121, 57125, + 57129, 57133, 57137, 57141, 57145, 57149, 57153, 57157, 57161, 57165, + 57169, 57173, 57177, 57181, 57185, 57189, 57193, 57197, 57201, 57205, + 57210, 57215, 57220, 57225, 57229, 57234, 57239, 57244, 57249, 57254, + 57259, 57264, 57269, 57274, 57278, 57284, 57290, 57296, 57302, 57308, + 57314, 57320, 57326, 57332, 57338, 57344, 57350, 57353, 57356, 57359, + 57364, 57367, 57370, 57373, 57376, 57379, 57382, 57386, 57390, 57394, + 57398, 57402, 57406, 57410, 57414, 57418, 57422, 57426, 57430, 57434, + 57437, 57441, 57445, 57449, 57453, 57457, 57460, 57464, 57468, 57472, + 57476, 57479, 57483, 57487, 57491, 57495, 57498, 57502, 57506, 57509, + 57513, 57517, 57521, 57525, 57529, 57533, 57537, 0, 57541, 57544, 57547, + 57550, 57553, 57556, 57559, 57562, 57565, 57568, 57571, 57574, 57577, + 57580, 57583, 57586, 57589, 57592, 57595, 57598, 57601, 57604, 57607, + 57610, 57613, 57616, 57619, 57622, 57625, 57628, 57631, 57634, 57637, + 57640, 57643, 57646, 57649, 57652, 57655, 57658, 57661, 57664, 57667, + 57670, 57673, 57676, 57679, 57682, 57685, 57688, 57691, 57694, 57697, + 57700, 57703, 57706, 57709, 57712, 57715, 57718, 57721, 57724, 57727, + 57730, 57733, 57736, 57739, 57742, 57745, 57748, 57751, 57754, 57757, + 57760, 57763, 57766, 57769, 57772, 57775, 57778, 57781, 57784, 57787, + 57790, 57793, 57796, 57799, 57802, 57805, 57813, 57820, 57827, 57834, + 57841, 57848, 57855, 57862, 57869, 57876, 57884, 57892, 57900, 57908, + 57916, 57924, 57932, 57940, 57948, 57956, 57964, 57972, 57980, 57988, + 57996, 57999, 58002, 58005, 58007, 58010, 58013, 58016, 58021, 58026, + 58029, 58036, 58043, 58050, 58057, 58060, 58065, 58068, 58072, 58074, + 58076, 58079, 58082, 58085, 58088, 58091, 58094, 58097, 58102, 58106, + 58109, 58112, 58115, 58118, 58121, 58124, 58127, 58131, 58134, 58137, + 58140, 58143, 58146, 58150, 58153, 58156, 58159, 58164, 58169, 58174, + 58179, 58184, 58189, 58194, 58199, 58204, 58212, 58214, 58217, 58220, + 58223, 58226, 58231, 58239, 58242, 58245, 58249, 58252, 58255, 58258, + 58262, 58265, 58268, 58273, 58276, 58279, 58284, 58287, 58290, 58295, + 58300, 58305, 58308, 58311, 58314, 58317, 58323, 58326, 58329, 58332, + 58334, 58337, 58340, 58343, 58348, 58351, 58354, 58357, 58360, 58363, + 58368, 58371, 58374, 58377, 58380, 58383, 58386, 58389, 58392, 58395, + 58400, 58404, 58411, 58418, 58425, 58432, 58439, 58446, 58453, 58460, + 58467, 58475, 58483, 58491, 58499, 58507, 58515, 58523, 58531, 58539, + 58547, 58555, 58563, 58571, 58579, 58587, 58595, 58603, 58611, 58619, + 58627, 58635, 58643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72387, 72390, 72394, 72398, 0, 72403, 72407, 0, 0, 0, 0, 0, 72411, 72416, - 72422, 72426, 72430, 72433, 72437, 72441, 0, 72445, 72449, 72453, 0, - 72457, 72461, 72465, 72469, 72473, 72477, 72481, 72485, 72489, 72493, - 72497, 72501, 72505, 72509, 72513, 72517, 72520, 72523, 72527, 72531, - 72535, 72539, 72543, 72547, 72551, 72554, 72558, 0, 0, 0, 0, 72562, - 72567, 72571, 0, 0, 0, 0, 72575, 72578, 72581, 72584, 72587, 72590, - 72594, 72598, 72604, 0, 0, 0, 0, 0, 0, 0, 0, 72610, 72615, 72621, 72626, - 72632, 72637, 72642, 72647, 72653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72658, 72663, 72668, 72673, 72680, 72687, 72694, 72701, 72706, - 72711, 72716, 72721, 72728, 72733, 72740, 72747, 72752, 72757, 72762, - 72769, 72774, 72779, 72786, 72793, 72798, 72803, 72808, 72815, 72822, - 72829, 72834, 72839, 72846, 72853, 72860, 72867, 72872, 72877, 72882, - 72889, 72894, 72899, 72904, 72911, 72920, 72927, 72932, 72937, 72942, - 72947, 72952, 72957, 72966, 72973, 72978, 72985, 72992, 72997, 73002, - 73007, 73014, 73019, 73026, 73033, 73038, 73043, 73048, 73055, 73062, - 73067, 73072, 73079, 73086, 73093, 73098, 73103, 73108, 73113, 73120, - 73129, 73138, 73143, 73150, 73159, 73164, 73169, 73174, 73179, 73186, - 73193, 73200, 73207, 73212, 73217, 73222, 73229, 73236, 73243, 73248, - 73253, 73260, 73265, 73272, 73277, 73284, 73289, 73296, 73303, 73308, - 73313, 73318, 73323, 73328, 73333, 73338, 73343, 73348, 73355, 73362, - 73369, 73376, 73383, 73392, 73397, 73402, 73409, 73416, 73421, 73428, - 73435, 73442, 73449, 73456, 73463, 73468, 73473, 73478, 73483, 73488, - 73497, 73506, 73515, 73524, 73533, 73542, 73551, 73560, 73565, 73576, - 73587, 73596, 73601, 73606, 73611, 73616, 73625, 73632, 73639, 73646, - 73653, 73660, 73667, 73676, 73685, 73696, 73705, 73716, 73725, 73732, - 73741, 73752, 73761, 73770, 73779, 73788, 73795, 73802, 73809, 73818, - 73827, 73838, 73847, 73856, 73867, 73872, 73877, 73888, 73897, 73906, - 73915, 73924, 73935, 73944, 73953, 73964, 73975, 73986, 73997, 74008, - 74019, 74026, 74033, 74040, 74047, 74057, 74066, 74073, 74080, 74087, - 74098, 74109, 74120, 74131, 74142, 74153, 74164, 74175, 74182, 74189, - 74198, 74207, 74214, 74221, 74228, 74237, 74246, 74255, 74262, 74271, - 74280, 74289, 74296, 74303, 74308, 74315, 74322, 74329, 74336, 74343, - 74350, 74357, 74366, 74375, 74384, 74393, 74400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74409, 74415, 74420, 74425, 74432, 74438, 74444, 74450, 74456, - 74462, 74468, 74474, 74478, 74482, 74488, 74494, 74500, 74504, 74509, - 74514, 74518, 74522, 74525, 74531, 74537, 74543, 74549, 74555, 74561, - 74567, 74573, 74579, 74589, 74599, 74605, 74611, 74621, 74631, 74637, 0, - 0, 0, 74643, 74648, 74653, 74659, 74665, 74671, 74677, 74683, 74689, - 74696, 74703, 74709, 74715, 74721, 74727, 74733, 74739, 74745, 74751, - 74756, 74762, 74768, 74774, 74780, 74786, 74796, 74802, 74808, 74815, - 74822, 74829, 74838, 74847, 74856, 74865, 74874, 74883, 74892, 74901, - 74911, 74921, 74929, 74937, 74946, 74955, 74961, 74967, 74973, 74979, - 74987, 74995, 74999, 75005, 75010, 75016, 75022, 75028, 75034, 75040, - 75050, 75055, 75062, 75067, 75072, 75077, 75083, 75089, 75095, 75102, - 75107, 75112, 75117, 75122, 75127, 75133, 75139, 75145, 75151, 75157, - 75163, 75169, 75175, 75180, 75185, 75190, 75195, 75200, 75205, 75210, - 75215, 75221, 75227, 75232, 75237, 75242, 75247, 75252, 75258, 75265, - 75269, 75273, 75277, 75281, 75285, 75289, 75293, 75297, 75305, 75315, - 75319, 75323, 75329, 75335, 75341, 75347, 75353, 75359, 75365, 75371, - 75377, 75383, 75389, 75395, 75401, 75407, 75411, 75415, 75422, 75428, - 75434, 75440, 75445, 75452, 75457, 75463, 75469, 75475, 75481, 75486, - 75490, 75496, 75500, 75504, 75508, 75514, 75520, 75524, 75530, 75536, - 75542, 75548, 75554, 75562, 75570, 75576, 75582, 75588, 75594, 75606, - 75618, 75632, 75644, 75656, 75670, 75684, 75698, 75702, 75710, 75718, - 75722, 75726, 75730, 75734, 75738, 75742, 75746, 75750, 75756, 75762, - 75768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75774, 75780, 75786, 75792, 75798, - 75804, 75810, 75816, 75822, 75828, 75834, 75840, 75846, 75852, 75858, - 75864, 75870, 75876, 75882, 75888, 75894, 75900, 75906, 75912, 75918, - 75924, 75930, 75936, 75942, 75948, 75954, 75960, 75966, 75972, 75978, - 75984, 75990, 75996, 76002, 76008, 76014, 76020, 76026, 76032, 76038, - 76044, 76050, 76056, 76062, 76068, 76074, 76080, 76086, 76092, 76098, - 76104, 76110, 76116, 76122, 76128, 76134, 76140, 76146, 76152, 76158, - 76164, 76170, 76175, 76180, 76185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76189, - 76194, 76201, 76208, 76215, 76222, 76227, 76231, 76237, 76241, 76245, - 76251, 76255, 76259, 76263, 76269, 76276, 76280, 76284, 76288, 76292, - 76296, 76300, 76306, 76310, 76314, 76318, 76322, 76326, 76330, 76334, - 76338, 76342, 76346, 76350, 76354, 76359, 76363, 76367, 76371, 76375, - 76379, 76383, 76387, 76391, 76395, 76402, 76406, 76413, 76417, 76421, - 76425, 76429, 76433, 76437, 76441, 76448, 76452, 76456, 76460, 76464, - 76468, 76474, 76478, 76484, 76488, 76492, 76496, 76500, 76504, 76508, - 76512, 76516, 76520, 76524, 76528, 76532, 76536, 76540, 76544, 76548, - 76552, 76556, 76560, 76568, 76572, 76576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76580, 76584, 76588, 76593, 76597, 76601, 76606, - 76610, 76614, 76618, 76622, 76627, 76631, 76635, 76639, 76643, 76647, - 76652, 76656, 76660, 76664, 76668, 76672, 76677, 76681, 76686, 76691, - 76695, 76699, 76704, 76708, 76712, 76717, 76721, 76725, 76729, 76733, - 76738, 76742, 76746, 76750, 76754, 76758, 76763, 76767, 76771, 76775, - 76779, 76783, 76788, 76792, 76797, 76802, 76806, 76810, 76815, 76819, - 76823, 76828, 76832, 76836, 76840, 76844, 76849, 76853, 76857, 76861, - 76865, 76869, 76874, 76878, 76882, 76886, 76890, 76894, 76899, 76903, - 76908, 76913, 76917, 76921, 76926, 76930, 76934, 76939, 0, 76943, 76947, - 76951, 76956, 76960, 76964, 76968, 76972, 76976, 76981, 76985, 76989, - 76993, 76997, 77001, 77006, 77010, 77015, 77020, 77025, 77030, 77036, - 77041, 77046, 77052, 77057, 77062, 77067, 77072, 77078, 77083, 77088, - 77093, 77098, 77103, 77109, 77114, 77119, 77124, 77129, 77134, 77140, - 77145, 77151, 77157, 77162, 77167, 77173, 77178, 77183, 77189, 77194, - 77199, 77204, 77209, 77215, 77220, 77225, 77230, 77235, 77240, 77246, - 77251, 77256, 77261, 77266, 77271, 77277, 77282, 77288, 77294, 0, 77298, - 77303, 0, 0, 77307, 0, 0, 77311, 77315, 0, 0, 77320, 77324, 77328, 77332, - 0, 77337, 77341, 77345, 77349, 77353, 77358, 77362, 77367, 77372, 77376, - 77380, 77385, 0, 77389, 0, 77394, 77398, 77402, 77406, 77411, 77415, - 77419, 0, 77423, 77427, 77432, 77436, 77440, 77444, 77448, 77452, 77457, - 77461, 77466, 77471, 77476, 77481, 77487, 77492, 77497, 77503, 77508, - 77513, 77518, 77523, 77529, 77534, 77539, 77544, 77549, 77554, 77560, - 77565, 77570, 77575, 77580, 77585, 77591, 77596, 77602, 77608, 77613, - 77618, 77624, 77629, 77634, 77640, 77645, 77650, 77655, 77660, 77666, - 77671, 77676, 77681, 77686, 77691, 77697, 77702, 77707, 77712, 77717, - 77722, 77728, 77733, 77739, 77745, 77749, 0, 77753, 77757, 77761, 77766, - 0, 0, 77770, 77774, 77779, 77783, 77787, 77791, 77795, 77799, 0, 77804, - 77808, 77812, 77816, 77820, 77825, 77829, 0, 77834, 77838, 77842, 77847, - 77851, 77855, 77860, 77864, 77868, 77872, 77876, 77881, 77885, 77889, - 77893, 77897, 77901, 77906, 77910, 77914, 77918, 77922, 77926, 77931, - 77935, 77940, 77945, 77949, 0, 77953, 77957, 77961, 77966, 0, 77970, - 77974, 77978, 77983, 77987, 0, 77991, 0, 0, 0, 77995, 77999, 78003, - 78007, 78011, 78016, 78020, 0, 78025, 78029, 78033, 78038, 78042, 78046, - 78051, 78055, 78059, 78063, 78067, 78072, 78076, 78080, 78084, 78088, - 78092, 78097, 78101, 78105, 78109, 78113, 78117, 78122, 78126, 78131, - 78136, 78141, 78146, 78152, 78157, 78162, 78168, 78173, 78178, 78183, - 78188, 78194, 78199, 78204, 78209, 78214, 78219, 78225, 78230, 78235, - 78240, 78245, 78250, 78256, 78261, 78267, 78273, 78278, 78283, 78289, - 78294, 78299, 78305, 78310, 78315, 78320, 78325, 78331, 78336, 78341, - 78346, 78351, 78356, 78362, 78367, 78372, 78377, 78382, 78387, 78393, - 78398, 78404, 78410, 78414, 78418, 78423, 78427, 78431, 78436, 78440, - 78444, 78448, 78452, 78457, 78461, 78465, 78469, 78473, 78477, 78482, - 78486, 78490, 78494, 78498, 78502, 78507, 78511, 78516, 78521, 78525, - 78529, 78534, 78538, 78542, 78547, 78551, 78555, 78559, 78563, 78568, - 78572, 78576, 78580, 78584, 78588, 78593, 78597, 78601, 78605, 78609, - 78613, 78618, 78622, 78627, 78632, 78637, 78642, 78648, 78653, 78658, - 78664, 78669, 78674, 78679, 78684, 78690, 78695, 78700, 78705, 78710, - 78715, 78721, 78726, 78731, 78736, 78741, 78746, 78752, 78757, 78763, - 78769, 78774, 78779, 78785, 78790, 78795, 78801, 78806, 78811, 78816, - 78821, 78827, 78832, 78837, 78842, 78847, 78852, 78858, 78863, 78868, - 78873, 78878, 78883, 78889, 78894, 78900, 78906, 78911, 78916, 78922, - 78927, 78932, 78938, 78943, 78948, 78953, 78958, 78964, 78969, 78974, - 78979, 78984, 78989, 78995, 79000, 79005, 79010, 79015, 79020, 79026, - 79031, 79037, 79043, 79048, 79053, 79059, 79064, 79069, 79075, 79080, - 79085, 79090, 79095, 79101, 79106, 79111, 79116, 79121, 79126, 79132, - 79137, 79142, 79147, 79152, 79157, 79163, 79168, 79174, 79180, 79186, - 79192, 79199, 79205, 79211, 79218, 79224, 79230, 79236, 79242, 79249, - 79255, 79261, 79267, 79273, 79279, 79286, 79292, 79298, 79304, 79310, - 79316, 79323, 79329, 79336, 79343, 79349, 79355, 79362, 79368, 79374, - 79381, 79387, 79393, 79399, 79405, 79412, 79418, 79424, 79430, 79436, - 79442, 79449, 79455, 79461, 79467, 79473, 79479, 79486, 79492, 79499, - 79506, 79510, 79514, 79519, 79523, 79527, 79532, 79536, 79540, 79544, - 79548, 79553, 79557, 79561, 79565, 79569, 79573, 79578, 79582, 79586, - 79590, 79594, 79598, 79603, 79607, 79612, 79617, 79621, 79625, 79630, - 79634, 79638, 79643, 79647, 79651, 79655, 79659, 79664, 79668, 79672, - 79676, 79680, 79684, 79689, 79693, 79697, 79701, 79705, 79709, 79714, - 79718, 79723, 79728, 79734, 0, 0, 79740, 79745, 79750, 79755, 79760, - 79765, 79770, 79775, 79780, 79785, 79790, 79795, 79800, 79805, 79810, - 79815, 79820, 79825, 79831, 79836, 79841, 79846, 79851, 79856, 79861, - 79866, 79870, 79875, 79880, 79885, 79890, 79895, 79900, 79905, 79910, - 79915, 79920, 79925, 79930, 79935, 79940, 79945, 79950, 79955, 79961, - 79966, 79971, 79976, 79981, 79986, 79991, 79996, 80002, 80007, 80012, - 80017, 80022, 80027, 80032, 80037, 80042, 80047, 80052, 80057, 80062, - 80067, 80072, 80077, 80082, 80087, 80092, 80097, 80102, 80107, 80112, - 80117, 80123, 80128, 80133, 80138, 80143, 80148, 80153, 80158, 80162, - 80167, 80172, 80177, 80182, 80187, 80192, 80197, 80202, 80207, 80212, - 80217, 80222, 80227, 80232, 80237, 80242, 80247, 80253, 80258, 80263, - 80268, 80273, 80278, 80283, 80288, 80294, 80299, 80304, 80309, 80314, - 80319, 80324, 80330, 80336, 80342, 80348, 80354, 80360, 80366, 80372, - 80378, 80384, 80390, 80396, 80402, 80408, 80414, 80420, 80426, 80433, - 80439, 80445, 80451, 80457, 80463, 80469, 80475, 80480, 80486, 80492, - 80498, 80504, 80510, 80516, 80522, 80528, 80534, 80540, 80546, 80552, - 80558, 80564, 80570, 80576, 80582, 80589, 80595, 80601, 80607, 80613, - 80619, 80625, 80631, 80638, 80644, 80650, 80656, 80662, 80668, 80674, - 80680, 80686, 80692, 80698, 80704, 80710, 80716, 80722, 80728, 80734, - 80740, 80746, 80752, 80758, 80764, 80770, 80776, 80783, 80789, 80795, - 80801, 80807, 80813, 80819, 80825, 80830, 80836, 80842, 80848, 80854, - 80860, 80866, 80872, 80878, 80884, 80890, 80896, 80902, 80908, 80914, - 80920, 80926, 80932, 80939, 80945, 80951, 80957, 80963, 80969, 80975, - 80981, 80988, 80994, 81000, 81006, 81012, 81018, 81024, 81031, 81038, - 81045, 81052, 81059, 81066, 81073, 81080, 81087, 81094, 81101, 81108, - 81115, 81122, 81129, 81136, 81143, 81151, 81158, 81165, 81172, 81179, - 81186, 81193, 81200, 81206, 81213, 81220, 81227, 81234, 81241, 81248, - 81255, 81262, 81269, 81276, 81283, 81290, 81297, 81304, 81311, 81318, - 81325, 81333, 81340, 81347, 81354, 81361, 81368, 81375, 81382, 81390, - 81397, 81404, 81411, 81418, 81425, 0, 0, 0, 0, 81432, 81437, 81441, - 81445, 81449, 81453, 81457, 81461, 81465, 81469, 81473, 81478, 81482, - 81486, 81490, 81494, 81498, 81502, 81506, 81510, 81514, 81519, 81523, - 81527, 81531, 81535, 81539, 81543, 81547, 81551, 81555, 81561, 81566, - 81571, 81576, 81581, 81586, 81591, 81596, 81601, 81606, 81611, 81615, - 81619, 81623, 81627, 81631, 81635, 81639, 81643, 81647, 81651, 81655, - 81659, 81663, 81667, 81671, 81675, 81679, 81683, 81687, 81691, 81695, - 81699, 81703, 81707, 81711, 81715, 81719, 81723, 81727, 81731, 81735, - 81739, 81743, 81747, 81751, 81755, 81759, 81763, 81767, 81771, 81775, - 81779, 81783, 81787, 81791, 81795, 81799, 81803, 81807, 81811, 81815, - 81819, 81823, 81827, 81831, 81835, 81839, 81843, 81847, 81851, 81855, - 81859, 81863, 81867, 81871, 81875, 81879, 81883, 81887, 81891, 81895, - 81899, 81903, 81907, 81911, 81915, 81919, 81923, 81927, 81931, 81935, - 81939, 81943, 81947, 81951, 81955, 81959, 81963, 81967, 81971, 81975, - 81979, 81983, 81987, 81991, 81995, 81999, 82003, 82007, 82011, 82015, - 82019, 82023, 82027, 82031, 82035, 82039, 82043, 82047, 82051, 82055, - 82059, 82063, 82067, 82071, 82075, 82079, 82083, 82087, 82091, 82095, - 82099, 82103, 82107, 82111, 82115, 82119, 82123, 82127, 82131, 82135, - 82139, 82143, 82147, 82151, 82155, 82159, 82163, 82167, 82171, 82175, - 82179, 82183, 82187, 82191, 82195, 82199, 82203, 82207, 82211, 82215, - 82219, 82223, 82227, 82231, 82235, 82239, 82243, 82247, 82251, 82255, - 82259, 82263, 82267, 82271, 82275, 82279, 82283, 82287, 82291, 82295, - 82299, 82303, 82307, 82311, 82315, 82319, 82323, 82327, 82331, 82335, - 82339, 82343, 82347, 82351, 82355, 82359, 82363, 82367, 82371, 82375, - 82379, 82383, 82387, 82391, 82395, 82399, 82403, 82407, 82411, 82415, - 82419, 82423, 82427, 82431, 82435, 82439, 82443, 82447, 82451, 82455, - 82459, 82463, 82467, 82471, 82475, 82479, 82483, 82487, 82491, 82495, - 82499, 82503, 82507, 82511, 82515, 82519, 82523, 82527, 82531, 82535, - 82539, 82543, 82547, 82551, 82555, 82559, 82563, 82567, 82571, 82575, - 82579, 82583, 82587, 82591, 82595, 82599, 82603, 82607, 82611, 82615, - 82619, 82623, 82627, 82631, 82635, 82639, 82643, 82647, 82651, 82655, - 82659, 82663, 82667, 82671, 82675, 82679, 82683, 82687, 82691, 82695, - 82699, 82703, 82707, 82711, 82715, 82719, 82723, 82727, 82731, 82735, - 82739, 82743, 82747, 82751, 82755, 82759, 82763, 82767, 82771, 82775, - 82779, 82783, 82787, 82791, 82795, 82799, 82803, 82807, 82811, 82815, - 82819, 82823, 82827, 82831, 82835, 82839, 82843, 82847, 82851, 82855, - 82859, 82863, 82867, 82871, 82875, 82879, 82883, 82887, 82891, 82895, - 82899, 82903, 82907, 82911, 82915, 82919, 82923, 82927, 82931, 82935, - 82939, 82943, 82947, 82951, 82955, 82959, 82963, 82967, 82971, 82975, - 82979, 82983, 82987, 82991, 82995, 82999, 83003, 83007, 83011, 83015, - 83019, 83023, 83027, 83031, 83035, 83039, 83043, 83047, 83051, 83055, - 83059, 83063, 83067, 83071, 83075, 83079, 83083, 83087, 83091, 83095, - 83099, 83103, 83107, 83111, 83115, 83119, 83123, 83127, 83131, 83135, - 83139, 83143, 83147, 83151, 83155, 83159, 83163, 83167, 83171, 83175, - 83179, 83183, 83187, 83191, 83195, 83199, 83203, 83207, 83211, 83215, - 83219, 83223, 83227, 83231, 83235, 83239, 83243, 83247, 83251, 83255, - 83259, 83263, 83267, 83271, 83275, 83279, 83283, 83287, 83291, 83295, - 83299, 83303, 83307, 83311, 83315, 83319, 83323, 83327, 83331, 83335, - 83339, 83343, 83347, 83351, 83355, 83359, 83363, 83367, 83371, 83375, - 83379, 83383, 83387, 83391, 83395, 83399, 83403, 83407, 83411, 83415, - 83419, 83423, 83427, 83431, 83435, 83439, 83443, 83447, 83451, 83455, - 83459, 83463, 83467, 83471, 83475, 83479, 83483, 83487, 83491, 83495, - 83499, 83503, 83507, 83511, 83515, 83519, 83523, 83527, 83531, 83535, - 83539, 83543, 83547, 83551, 83555, 83559, 83563, 83567, 83571, 83575, - 83579, 83583, 83587, 83591, 83595, 83599, 83603, 83607, 83611, 83615, - 83619, 83623, 83627, 83631, 83635, 83639, 83643, 83647, 83651, 83655, - 83659, 83663, 83667, 83671, 83675, 83679, 83683, 83687, 83691, 83695, - 83699, 83703, 83707, 83711, 83715, 83719, 83723, 83727, 83731, 83735, - 83739, 83743, 83747, 83751, 83755, 83759, 83763, 83767, 83771, 83775, - 83779, 83783, 83787, 83791, 83795, 83799, 83803, 83807, 83811, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83819, 83822, 83826, 83830, 83833, 83837, 83841, - 83844, 83847, 83851, 83855, 83858, 83862, 83865, 83868, 83872, 83875, - 83879, 83882, 83885, 83888, 83891, 83894, 83897, 83900, 83903, 83906, - 83909, 83912, 83916, 83920, 83924, 83928, 83933, 83938, 83943, 83949, - 83954, 83959, 83965, 83970, 83975, 83980, 83985, 83991, 83996, 84001, - 84006, 84011, 84016, 84022, 84027, 84032, 84037, 84042, 84047, 84053, - 84058, 84064, 84070, 84074, 84079, 84083, 84087, 84091, 84096, 84101, - 84106, 84112, 84117, 84122, 84128, 84133, 84138, 84143, 84148, 84154, - 84159, 84164, 84169, 84174, 84179, 84185, 84190, 84195, 84200, 84205, - 84210, 84216, 84221, 84227, 84233, 84238, 84242, 84247, 84249, 84253, - 84256, 84259, 84262, 84265, 84268, 84271, 84274, 84277, 84280, 84283, - 84286, 84289, 84292, 84295, 84298, 84301, 84304, 84307, 84310, 84313, - 84316, 84319, 84322, 84325, 84328, 84331, 84334, 84337, 84340, 84343, - 84346, 84349, 84352, 84355, 84358, 84361, 84364, 84367, 84370, 84373, - 84376, 84379, 84382, 84385, 84388, 84391, 84394, 84397, 84400, 84403, - 84406, 84409, 84412, 84415, 84418, 84421, 84424, 84427, 84430, 84433, - 84436, 84439, 84442, 84445, 84448, 84451, 84454, 84457, 84460, 84463, - 84466, 84469, 84472, 84475, 84478, 84481, 84484, 84487, 84490, 84493, - 84496, 84499, 84502, 84505, 84508, 84511, 84514, 84517, 84520, 84523, - 84526, 84529, 84532, 84535, 84538, 84541, 84544, 84547, 84550, 84553, - 84556, 84559, 84562, 84565, 84568, 84571, 84574, 84577, 84580, 84583, - 84586, 84589, 84592, 84595, 84598, 84601, 84604, 84607, 84610, 84613, - 84616, 84619, 84622, 84625, 84628, 84631, 84634, 84637, 84640, 84643, - 84646, 84649, 84652, 84655, 84658, 84661, 84664, 84667, 84670, 84673, - 84676, 84679, 84682, 84685, 84688, 84691, 84694, 84697, 84700, 84703, - 84706, 84709, 84712, 84715, 84718, 84721, 84724, 84727, 84730, 84733, - 84736, 84739, 84742, 84745, 84748, 84751, 84754, 84757, 84760, 84763, - 84766, 84769, 84772, 84775, 84778, 84781, 84784, 84787, 84790, 84793, - 84796, 84799, 84802, 84805, 84808, 84811, 84814, 84817, 84820, 84823, - 84826, 84829, 84832, 84835, 84838, 84841, 84844, 84847, 84850, 84853, - 84856, 84859, 84862, 84865, 84868, 84871, 84874, 84877, 84880, 84883, - 84886, 84889, 84892, 84895, 84898, 84901, 84904, 84907, 84910, 84913, - 84916, 84919, 84922, 84925, 84928, 84931, 84934, 84937, 84940, 84943, - 84946, 84949, 84952, 84955, 84958, 84961, 84964, 84967, 84970, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 58646, 58654, 58662, 58672, 58678, 58682, 58686, 58692, 58698, 58703, + 58707, 58711, 58715, 58719, 58725, 58729, 58733, 58737, 58747, 58751, + 58755, 58761, 58765, 58771, 58775, 58779, 58785, 58791, 58797, 58805, + 58813, 58817, 58821, 58825, 58831, 58835, 58844, 58850, 58854, 58858, + 58862, 58866, 58870, 58874, 58881, 58887, 58893, 58897, 58903, 58907, + 58913, 58921, 58931, 58935, 58943, 58947, 58953, 58961, 58969, 58973, + 58977, 58983, 58988, 58994, 59000, 59004, 59008, 59011, 59015, 59019, + 59023, 59027, 59031, 59035, 59039, 59042, 59046, 59050, 59054, 59058, + 59062, 59066, 59069, 59073, 59077, 59080, 59084, 59088, 59092, 59096, + 59100, 59104, 59108, 59112, 59116, 59120, 59124, 59128, 59132, 59136, + 59140, 59144, 59148, 59152, 59156, 59160, 59164, 59168, 59172, 59176, + 59180, 59184, 59188, 59192, 59196, 59200, 59204, 59208, 59212, 59216, + 59220, 59224, 59228, 59232, 59236, 59240, 59244, 59248, 59252, 59256, + 59259, 59263, 59267, 59271, 59275, 59279, 59283, 59287, 59291, 59295, + 59299, 59303, 59307, 59311, 59315, 59319, 59323, 59327, 59331, 59335, + 59339, 59343, 59347, 59351, 59355, 59359, 59363, 59367, 59371, 59375, + 59379, 59383, 59387, 59391, 59395, 59399, 59403, 59407, 59411, 59415, + 59419, 59423, 59427, 59431, 59435, 59439, 59443, 59447, 59451, 59455, + 59459, 59463, 59467, 59471, 59475, 59479, 59483, 59487, 59491, 59495, + 59499, 59503, 59507, 59511, 59515, 59519, 59523, 59527, 59531, 59535, + 59539, 59543, 59547, 59551, 59555, 59559, 59563, 59567, 59571, 59575, + 59579, 59583, 59587, 59591, 59595, 59599, 59603, 59607, 59611, 59615, + 59619, 59623, 59627, 59631, 59635, 59639, 59643, 59647, 59651, 59655, + 59659, 59663, 59667, 59671, 59675, 59679, 59683, 59687, 59691, 59695, + 59699, 59703, 59707, 59711, 59715, 59719, 59723, 59727, 59730, 59734, + 59738, 59742, 59746, 59750, 59754, 59758, 59762, 59766, 59770, 59774, + 59778, 59782, 59786, 59790, 59794, 59798, 59802, 59806, 59810, 59814, + 59818, 59822, 59826, 59830, 59834, 59838, 59842, 59846, 59850, 59854, + 59858, 59862, 59866, 59870, 59874, 59878, 59882, 59886, 59890, 59894, + 59898, 59902, 59906, 59910, 59914, 59918, 59922, 59926, 59930, 59934, + 59938, 59942, 59946, 59950, 59954, 59958, 59962, 59966, 59970, 59974, + 59978, 59982, 59986, 59990, 59994, 59998, 60002, 60006, 60010, 60014, + 60018, 60022, 60026, 60030, 60034, 60038, 60042, 60046, 60050, 60054, + 60058, 60062, 60066, 60070, 60074, 60078, 60082, 60086, 60090, 60094, + 60098, 60102, 60106, 60110, 60114, 60118, 60122, 60126, 60130, 60134, + 60138, 60142, 60146, 60150, 60154, 60158, 60162, 60166, 60170, 60174, + 60178, 60182, 60186, 60190, 60193, 60197, 60201, 60205, 60209, 60213, + 60217, 60221, 60225, 60229, 60233, 60237, 60241, 60245, 60249, 60253, + 60257, 60261, 60265, 60269, 60273, 60277, 60281, 60285, 60289, 60293, + 60297, 60301, 60305, 60309, 60313, 60317, 60321, 60325, 60329, 60333, + 60337, 60341, 60345, 60349, 60353, 60357, 60361, 60365, 60369, 60373, + 60377, 60381, 60385, 60389, 60393, 60397, 60401, 60405, 60409, 60413, + 60417, 60421, 60425, 60429, 60433, 60437, 60441, 60445, 60449, 60453, + 60457, 60461, 60465, 60469, 60473, 60477, 60481, 60485, 60489, 60493, + 60497, 60501, 60505, 60509, 60513, 60517, 60521, 60525, 60529, 60533, + 60537, 60541, 60545, 60549, 60553, 60557, 60561, 60565, 60569, 60573, + 60577, 60581, 60585, 60589, 60593, 60597, 60601, 60605, 60609, 60613, + 60617, 60621, 60625, 60629, 60633, 60637, 60641, 60645, 60649, 60653, + 60657, 60661, 60665, 60669, 60673, 60677, 60681, 60685, 60689, 60693, + 60697, 60701, 60705, 60709, 60713, 60717, 60721, 60725, 60729, 60733, + 60737, 60741, 60745, 60749, 60753, 60757, 60761, 60765, 60769, 60773, + 60777, 60781, 60785, 60789, 60793, 60797, 60801, 60805, 60809, 60813, + 60817, 60821, 60825, 60829, 60833, 60837, 60841, 60845, 60849, 60853, + 60857, 60861, 60865, 60869, 60873, 60877, 60881, 60885, 60889, 60893, + 60897, 60901, 60905, 60909, 60913, 60917, 60921, 60925, 60929, 60933, + 60937, 60941, 60945, 60949, 60953, 60957, 60961, 60965, 60969, 60973, + 60977, 60981, 60985, 60989, 60993, 60997, 61001, 61005, 61009, 61013, + 61017, 61021, 61025, 61029, 61033, 61037, 61041, 61045, 61048, 61052, + 61056, 61060, 61064, 61068, 61072, 61076, 61080, 61084, 61088, 61092, + 61096, 61100, 61104, 61108, 61112, 61116, 61120, 61124, 61128, 61132, + 61136, 61140, 61144, 61148, 61152, 61156, 61160, 61164, 61168, 61172, + 61176, 61180, 61184, 61188, 61192, 61196, 61200, 61204, 61208, 61212, + 61216, 61220, 61224, 61228, 61232, 61236, 61240, 61244, 61248, 61252, + 61256, 61260, 61264, 61268, 61272, 61276, 61280, 61284, 61288, 61292, + 61296, 61300, 61304, 61308, 61312, 61316, 61320, 61324, 61328, 61332, + 61336, 61340, 61344, 61348, 61352, 61356, 61360, 61364, 61368, 61372, + 61376, 61380, 61384, 61388, 61392, 61396, 61400, 61404, 61408, 61412, + 61416, 61420, 61424, 61428, 61432, 61436, 61440, 61444, 61448, 61452, + 61456, 61460, 61464, 61468, 61472, 61476, 61480, 61484, 61488, 61492, + 61496, 61500, 61503, 61507, 61511, 61515, 61519, 61523, 61527, 61531, + 61535, 61539, 61543, 61547, 61551, 61555, 61559, 61563, 61567, 61571, + 61575, 61579, 61583, 61587, 61591, 61595, 61599, 61603, 61607, 61611, + 61615, 61619, 61623, 61627, 61631, 61635, 61639, 61643, 61647, 61651, + 61655, 61659, 61663, 61667, 61671, 61675, 61679, 61683, 61687, 61691, + 61695, 61699, 61703, 61707, 61711, 61715, 61719, 61723, 61727, 61731, + 61735, 61739, 61743, 61747, 61751, 61755, 61759, 61763, 61767, 61771, + 61775, 61779, 61783, 61787, 61791, 61795, 61799, 61803, 61807, 61811, + 61815, 61819, 61823, 61827, 61831, 61835, 61839, 61843, 61847, 61851, + 61855, 61859, 61863, 61867, 61871, 61875, 61879, 61883, 61887, 61891, + 61895, 61899, 61903, 61907, 61911, 61915, 61919, 61923, 61927, 61931, + 61935, 61939, 61943, 61947, 61951, 61955, 61959, 61963, 61967, 61971, + 61975, 61979, 61983, 61987, 61991, 61995, 61999, 62003, 62007, 62011, + 62015, 62019, 62023, 62027, 62031, 62035, 62039, 62043, 62047, 62051, + 62055, 62059, 62063, 62067, 62071, 62075, 62079, 62083, 62087, 62091, + 62095, 62099, 62103, 62106, 62110, 62114, 62118, 62122, 62126, 62130, + 62134, 62138, 62142, 62146, 62150, 62154, 62158, 62162, 62166, 62170, + 62174, 62178, 62182, 62186, 62190, 62194, 62198, 62202, 62206, 62210, + 62214, 62218, 62222, 62226, 62230, 62234, 62238, 62242, 62246, 62250, + 62254, 62258, 62262, 62266, 62270, 62274, 62278, 62282, 62286, 62290, + 62294, 62298, 62302, 62306, 62310, 62314, 62318, 62322, 62326, 62330, + 62334, 62338, 62342, 62346, 62350, 62354, 62358, 62362, 62366, 62370, + 62374, 62378, 62382, 62386, 62390, 62394, 62398, 62402, 62406, 62410, + 62414, 62418, 62422, 62426, 62430, 62434, 62438, 62442, 62446, 62450, + 62454, 62458, 62462, 62466, 62470, 62474, 62478, 62482, 62486, 62490, + 62494, 62498, 62502, 62506, 62510, 62514, 62518, 62522, 62526, 62530, + 62534, 62538, 62542, 62546, 62550, 62554, 62558, 62562, 62566, 62570, + 62574, 62578, 62582, 62586, 62590, 62594, 62598, 62602, 62606, 62610, + 62614, 62618, 62622, 62626, 62630, 62634, 62638, 62642, 62646, 62650, + 62654, 62658, 62662, 62666, 62670, 62674, 62678, 62682, 62686, 62690, + 62694, 62698, 62702, 62706, 62710, 62714, 62718, 62722, 62726, 62730, + 62734, 62738, 62742, 62746, 62750, 62754, 62758, 62762, 62766, 62770, + 62774, 62778, 62782, 62786, 62790, 62794, 62798, 62802, 62806, 62810, + 62814, 62818, 62822, 62826, 62830, 62834, 62838, 62842, 62846, 62850, + 62854, 62858, 62862, 62865, 62869, 62873, 62877, 62881, 62885, 62889, + 62893, 62897, 62901, 62905, 62909, 62913, 62917, 62921, 62925, 62929, + 62933, 62937, 62941, 62945, 62949, 62953, 62957, 62961, 62965, 62969, + 62973, 62977, 62981, 62985, 62989, 62993, 62997, 63001, 63005, 63009, + 63013, 63017, 63021, 63025, 63029, 63033, 63037, 63041, 63045, 63049, + 63053, 63057, 63061, 63065, 63069, 63073, 63077, 63081, 63085, 63089, + 63093, 63097, 63101, 63105, 63109, 63113, 63117, 63121, 63125, 63129, + 63133, 63137, 63141, 63145, 63149, 63153, 63157, 63161, 63165, 63169, + 63173, 63177, 63181, 63185, 63189, 63193, 63197, 63201, 63205, 63209, + 63213, 63217, 63221, 63225, 63229, 63233, 63237, 63241, 63245, 63249, + 63253, 63257, 63261, 63265, 63269, 63273, 63277, 63281, 63285, 63289, + 63293, 63297, 63301, 63305, 63309, 63313, 63317, 63321, 63325, 63329, + 63333, 63337, 63341, 63345, 63349, 63353, 63357, 63361, 63365, 63369, + 63373, 63377, 63381, 63385, 63389, 63393, 63397, 63401, 63405, 63409, + 63413, 63417, 63421, 63425, 63429, 63433, 63437, 63441, 63445, 63449, + 63453, 63457, 63461, 63465, 63469, 63473, 63477, 63481, 63485, 63489, + 63493, 63497, 63501, 63505, 63509, 63513, 63517, 63521, 63525, 63529, + 63533, 63537, 63541, 63545, 63549, 63553, 63557, 63561, 63565, 63569, + 63573, 63577, 63581, 63585, 63589, 63593, 63597, 63601, 63605, 63609, + 63613, 63617, 63621, 63625, 63629, 63633, 63637, 63641, 63645, 0, 0, 0, + 63649, 63653, 63657, 63661, 63665, 63669, 63673, 63677, 63681, 63685, + 63689, 63693, 63697, 63701, 63705, 63709, 63713, 63717, 63721, 63725, + 63729, 63733, 63737, 63741, 63745, 63749, 63753, 63757, 63761, 63765, + 63769, 63773, 63777, 63781, 63785, 63789, 63793, 63797, 63801, 63805, + 63809, 63813, 63817, 63821, 63825, 63829, 63833, 63837, 63841, 63845, + 63849, 63853, 63857, 63861, 63865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63869, 63873, + 63877, 63881, 63885, 63889, 63893, 63897, 63901, 63905, 63909, 63913, + 63917, 63921, 63925, 63929, 63933, 63937, 63941, 63945, 63949, 63953, + 63957, 63961, 63965, 63969, 63973, 63977, 63981, 63985, 63989, 63993, + 63997, 64001, 64005, 64009, 64013, 64016, 64020, 64024, 64028, 64032, + 64036, 64040, 64044, 64048, 64052, 64056, 64060, 64064, 64068, 64072, + 64076, 64080, 64084, 64088, 64092, 64096, 64100, 64104, 64108, 64112, + 64116, 64120, 64124, 64128, 64132, 64136, 64140, 64144, 64148, 64152, + 64156, 64160, 64163, 64167, 64171, 64174, 64178, 64182, 64186, 64189, + 64193, 64197, 64201, 64205, 64209, 64213, 64217, 64221, 64225, 64229, + 64233, 64237, 64241, 64245, 64248, 64252, 64256, 64260, 64264, 64268, + 64272, 64276, 64280, 64284, 64287, 64290, 64294, 64298, 64302, 64305, + 64309, 64313, 64317, 64321, 64325, 64329, 64333, 64337, 64341, 64345, + 64349, 64353, 64357, 64361, 64365, 64369, 64373, 64377, 64381, 64385, + 64389, 64393, 64397, 64401, 64405, 64409, 64413, 64417, 64421, 64425, + 64429, 64433, 64437, 64441, 64445, 64449, 64453, 64457, 64460, 64464, + 64468, 64472, 64476, 64480, 64484, 64488, 64492, 64496, 64500, 64504, + 64508, 64512, 64516, 64520, 64524, 64528, 64532, 64536, 64540, 64544, + 64548, 64552, 64556, 64560, 64564, 64568, 64572, 64576, 64580, 64584, + 64588, 64592, 64596, 64600, 64604, 64607, 64611, 64615, 64619, 64623, + 64627, 64631, 64635, 64639, 64643, 64647, 64651, 64655, 64659, 64663, + 64667, 64671, 64674, 64678, 64682, 64686, 64690, 64694, 64698, 64702, + 64706, 64710, 64714, 64718, 64722, 64726, 64730, 64734, 64738, 64742, + 64746, 64750, 64754, 64758, 64761, 64765, 64769, 64773, 64777, 64781, + 64785, 64789, 64793, 64797, 64801, 64805, 64809, 64813, 64817, 64821, + 64825, 64829, 64833, 64837, 64841, 64845, 64849, 64853, 64857, 64861, + 64865, 64869, 64873, 64877, 64881, 64885, 64889, 64893, 64897, 64901, + 64905, 64909, 64913, 64917, 64921, 64925, 64929, 64933, 64936, 64941, + 64945, 64951, 64956, 64962, 64966, 64970, 64974, 64978, 64982, 64986, + 64990, 64994, 64998, 65002, 65006, 65010, 65014, 65018, 65021, 65024, + 65027, 65030, 65033, 65036, 65039, 65042, 65045, 65050, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65056, 65061, 65066, 65071, + 65076, 65082, 65088, 65093, 65098, 65103, 65108, 65115, 65122, 65129, + 65136, 65143, 65150, 65160, 65170, 65177, 65184, 65190, 65196, 65202, + 65208, 65217, 65226, 65233, 65240, 65251, 65262, 65267, 0, 0, 65272, + 65279, 65286, 65293, 65300, 65307, 65314, 65320, 65326, 65332, 65338, + 65345, 65352, 65357, 65361, 65368, 65375, 65382, 0, 0, 0, 0, 0, 0, 0, 0, + 65386, 65390, 65394, 65397, 65400, 65405, 65410, 65415, 65420, 65425, + 65430, 65435, 65440, 65445, 65450, 65459, 65468, 65473, 65478, 65483, + 65488, 65493, 65498, 65503, 65508, 65513, 65518, 65523, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65528, 65537, 65546, 65555, 65564, 65573, 65582, 65591, 65600, + 65608, 65615, 65623, 65630, 65638, 65648, 65657, 65667, 65676, 65686, + 65694, 65701, 65709, 65716, 65724, 65729, 65734, 65739, 65747, 65753, + 65759, 65766, 65775, 65783, 65791, 65799, 65806, 65813, 65820, 65827, + 65832, 65837, 65842, 65847, 65852, 65857, 65862, 65867, 65875, 65883, + 65889, 65894, 65899, 65904, 65909, 65914, 65919, 65924, 65929, 65934, + 65942, 65950, 65955, 65960, 65969, 65978, 65985, 65992, 66001, 66010, + 66021, 66032, 66038, 66044, 66052, 66060, 66069, 66078, 66085, 66092, + 66097, 66102, 66113, 66124, 66132, 66140, 66150, 66160, 66171, 66182, + 66191, 66200, 66207, 66214, 66221, 66228, 66237, 66246, 66251, 66256, + 66263, 66270, 66277, 66284, 66295, 66306, 66311, 66316, 66321, 66326, + 66331, 66336, 66341, 66346, 66350, 66355, 66360, 66365, 66370, 66375, + 66381, 66386, 66391, 66398, 66405, 66412, 66419, 66425, 66432, 66439, + 66444, 66449, 66455, 66461, 66467, 66473, 66480, 66487, 66494, 66498, + 66505, 66510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66515, 66522, + 66529, 66536, 66544, 66551, 66557, 66563, 66570, 66576, 66582, 66588, + 66595, 66602, 66609, 66616, 66623, 66630, 66637, 66644, 66651, 66658, + 66665, 66672, 66679, 66686, 66692, 66699, 66706, 66713, 66720, 66727, + 66734, 66741, 66748, 66755, 66762, 66769, 66776, 66783, 66790, 66797, + 66804, 66811, 66818, 66826, 66834, 66842, 66850, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66858, 66861, 66865, 66869, 66873, + 66877, 66881, 66885, 66889, 66893, 66897, 66901, 66905, 66908, 66912, + 66916, 66919, 66923, 66927, 66931, 66935, 66939, 66943, 66947, 66950, + 66953, 66957, 66961, 66965, 66968, 66971, 66974, 66977, 66980, 66983, + 66987, 66991, 66995, 66999, 67003, 67009, 67014, 67018, 67022, 67026, + 67030, 67035, 67041, 67046, 67052, 67057, 67062, 67066, 67072, 67077, + 67081, 0, 0, 0, 0, 0, 0, 0, 0, 67086, 67090, 67094, 67097, 67101, 67104, + 67108, 67111, 67115, 67119, 67124, 67128, 67133, 67136, 67140, 67144, + 67147, 67151, 67155, 67158, 67162, 67166, 67170, 67174, 67178, 67182, + 67186, 67190, 67194, 67198, 67202, 67206, 67210, 67214, 67218, 67222, + 67226, 67230, 67234, 67237, 67241, 67245, 67249, 67252, 67255, 67258, + 67262, 67266, 67270, 67274, 67278, 67281, 67285, 67291, 67296, 67300, + 67305, 67309, 67314, 67319, 67325, 67330, 67336, 67340, 67345, 67350, + 67354, 67359, 67364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67368, 67371, 67375, + 67379, 67382, 67385, 67388, 67391, 67394, 67397, 67400, 67403, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67406, 67413, 67419, 67425, 67431, + 67437, 67443, 67449, 67455, 67461, 67467, 67473, 67480, 67487, 67494, + 67501, 67508, 67515, 67522, 67529, 67536, 67543, 67549, 67556, 67562, + 67569, 67576, 67582, 67588, 67595, 67602, 67609, 67615, 67622, 67629, + 67635, 67642, 67648, 67655, 67662, 67668, 67674, 67681, 67687, 67694, + 67701, 67710, 67717, 67724, 67728, 67733, 67738, 67743, 67748, 67753, + 67757, 67762, 67766, 67771, 67776, 67781, 67786, 67790, 67795, 67799, + 67804, 67808, 67813, 67818, 67823, 67828, 67832, 67837, 67842, 67847, + 67853, 67858, 67864, 67870, 67876, 67883, 67889, 67895, 67901, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67910, 67913, + 67916, 67919, 67922, 67926, 67929, 67932, 67936, 67940, 67944, 67948, + 67952, 67956, 67960, 67964, 67968, 67972, 67976, 67980, 67984, 67988, + 67992, 67996, 68000, 68004, 68008, 68011, 68015, 68019, 68023, 68027, + 68031, 68034, 68038, 68041, 68044, 68048, 68052, 68056, 68060, 68063, + 68068, 68072, 68077, 68082, 68086, 68091, 68095, 68100, 68105, 68110, + 68115, 68120, 68126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68132, 68137, 68141, + 68146, 68153, 68158, 68163, 68167, 68172, 68177, 68181, 68185, 68190, + 68196, 0, 0, 68202, 68206, 68209, 68212, 68215, 68218, 68221, 68224, + 68227, 68230, 0, 0, 68233, 68238, 68243, 68249, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68256, 68260, 68264, 68268, 68272, 68276, 68280, 68284, 68288, 68292, + 68296, 68300, 68304, 68308, 68312, 68316, 68320, 68324, 68328, 68332, + 68336, 68340, 68344, 68348, 68352, 68356, 68360, 68364, 68368, 68372, + 68376, 68380, 68384, 68388, 68392, 68396, 68400, 68404, 68408, 68412, + 68416, 68420, 68424, 68428, 68432, 68436, 68440, 68444, 68448, 68452, + 68456, 68460, 68464, 68468, 68472, 68476, 68480, 68484, 68488, 68492, + 68496, 68500, 68504, 68508, 68512, 68516, 68520, 68524, 68528, 68532, + 68536, 68540, 68544, 68548, 68552, 68556, 68560, 68564, 68568, 68572, + 68576, 68580, 68584, 68588, 68592, 68596, 68600, 68604, 68608, 68612, + 68616, 68620, 68624, 68628, 68632, 68636, 68640, 68644, 68648, 68652, + 68656, 68660, 68664, 68668, 68672, 68676, 68680, 68684, 68688, 68692, + 68696, 68700, 68704, 68708, 68712, 68716, 68720, 68724, 68728, 68732, + 68736, 68740, 68744, 68748, 68752, 68756, 68760, 68764, 68768, 68772, + 68776, 68780, 68784, 68788, 68792, 68796, 68800, 68804, 68808, 68812, + 68816, 68820, 68824, 68828, 68832, 68836, 68840, 68844, 68848, 68852, + 68856, 68860, 68864, 68868, 68872, 68876, 68880, 68884, 68888, 68892, + 68896, 68900, 68904, 68908, 68912, 68916, 68920, 68924, 68928, 68932, + 68936, 68940, 68944, 68948, 68952, 68956, 68960, 68964, 68968, 68972, + 68976, 68980, 68984, 68988, 68992, 68996, 69000, 69004, 69008, 69012, + 69016, 69020, 69024, 69028, 69032, 69036, 69040, 69044, 69048, 69052, + 69056, 69060, 69064, 69068, 69072, 69076, 69080, 69084, 69088, 69092, + 69096, 69100, 69104, 69108, 69112, 69116, 69120, 69124, 69128, 69132, + 69136, 69140, 69144, 69148, 69152, 69156, 69160, 69164, 69168, 69172, + 69176, 69180, 69184, 69188, 69192, 69196, 69200, 69204, 69208, 69212, + 69216, 69220, 69224, 69228, 69232, 69236, 69240, 69244, 69248, 69252, + 69256, 69260, 69264, 69268, 69272, 69276, 69280, 69284, 69288, 69292, + 69296, 69300, 69304, 69308, 69312, 69316, 69320, 69324, 69328, 69332, + 69336, 69340, 69344, 69348, 69352, 69356, 69360, 69364, 69368, 69372, + 69376, 69380, 69384, 69388, 69392, 69396, 69400, 69404, 69408, 69412, + 69416, 69420, 69424, 69428, 69432, 69436, 69440, 69444, 69448, 69452, + 69456, 69460, 0, 0, 69464, 69468, 69472, 69476, 69480, 69484, 69488, + 69492, 69496, 69500, 69504, 69508, 69512, 69516, 69520, 69524, 69528, + 69532, 69536, 69540, 69544, 69548, 69552, 69556, 69560, 69564, 69568, + 69572, 69576, 69580, 69584, 69588, 69592, 69596, 69600, 69604, 69608, + 69612, 69616, 69620, 69624, 69628, 69632, 69636, 69640, 69644, 69648, + 69652, 69656, 69660, 69664, 69668, 69672, 69676, 69680, 69684, 69688, + 69692, 69696, 0, 0, 0, 0, 0, 69700, 69704, 69708, 69712, 69716, 69720, + 69724, 69728, 69732, 69736, 69740, 69744, 69748, 69752, 69756, 69760, + 69764, 69768, 69772, 69776, 69780, 69784, 69788, 69792, 69796, 69800, + 69804, 69808, 69812, 69816, 69820, 69824, 69828, 69832, 69836, 69840, + 69844, 69848, 69852, 69856, 69860, 69864, 69868, 69872, 69876, 69880, + 69884, 69888, 69892, 69896, 69900, 69904, 69908, 69912, 69916, 69920, + 69924, 69928, 69932, 69936, 69940, 69944, 69948, 69952, 69956, 69960, + 69964, 69968, 69972, 69976, 69980, 69984, 69988, 69992, 69996, 70000, + 70004, 70008, 70012, 70016, 70020, 70024, 70028, 70032, 70036, 70040, + 70044, 70048, 70052, 70056, 70060, 70064, 70068, 70072, 70076, 70080, + 70084, 70088, 70092, 70096, 70100, 70104, 70108, 70112, 70116, 70120, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70124, 70129, 70134, 70139, 70144, + 70149, 70157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70162, 70169, 70176, + 70183, 70190, 0, 0, 0, 0, 0, 70197, 70204, 70211, 70221, 70227, 70233, + 70239, 70245, 70251, 70257, 70264, 70270, 70276, 70282, 70291, 70300, + 70312, 70324, 70330, 70336, 70342, 70349, 70356, 70363, 70370, 70377, 0, + 70384, 70391, 70398, 70406, 70413, 0, 70420, 0, 70427, 70434, 0, 70441, + 70449, 0, 70456, 70463, 70470, 70477, 70484, 70491, 70498, 70505, 70512, + 70519, 70524, 70531, 70538, 70544, 70550, 70556, 70562, 70568, 70574, + 70580, 70586, 70592, 70598, 70604, 70610, 70616, 70622, 70628, 70634, + 70640, 70646, 70652, 70658, 70664, 70670, 70676, 70682, 70688, 70694, + 70700, 70706, 70712, 70718, 70724, 70730, 70736, 70742, 70748, 70754, + 70760, 70766, 70772, 70778, 70784, 70790, 70796, 70802, 70808, 70814, + 70820, 70826, 70832, 70838, 70844, 70850, 70856, 70862, 70868, 70874, + 70880, 70886, 70892, 70898, 70904, 70910, 70916, 70922, 70928, 70934, + 70940, 70946, 70952, 70958, 70964, 70970, 70976, 70982, 70988, 70994, + 71002, 71010, 71016, 71022, 71028, 71034, 71043, 71052, 71060, 71068, + 71076, 71084, 71092, 71100, 71108, 71116, 71123, 71130, 71140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71150, 71156, 71162, 71168, 71174, 71179, 71184, 71190, + 71196, 71202, 71208, 71216, 71222, 71228, 71236, 71244, 71252, 71260, + 71265, 71270, 71275, 71280, 71292, 71304, 71314, 71324, 71335, 71346, + 71357, 71368, 71378, 71388, 71399, 71410, 71421, 71432, 71442, 71452, + 71462, 71477, 71492, 71507, 71514, 71521, 71528, 71535, 71545, 71555, + 71565, 71576, 71586, 71594, 71602, 71610, 71618, 71627, 71635, 71643, + 71651, 71659, 71667, 71676, 71684, 71692, 71700, 71709, 71717, 71724, + 71731, 71738, 71745, 71752, 71759, 71766, 71774, 71782, 71790, 71798, + 71806, 71814, 71822, 71830, 71838, 71846, 71854, 71862, 71870, 71878, + 71886, 71894, 71902, 71910, 71918, 71926, 71934, 71943, 71951, 71959, + 71967, 71976, 71984, 71992, 72000, 72008, 72016, 72024, 72032, 72041, + 72049, 72056, 72063, 72070, 72077, 72085, 72092, 72099, 72106, 72113, + 72120, 72128, 72135, 72143, 72151, 72159, 72167, 72176, 72184, 72192, + 72200, 72209, 72217, 72224, 72231, 72238, 72245, 72253, 72260, 72270, + 72280, 72290, 72299, 72308, 72317, 72326, 72335, 72345, 72356, 72367, + 72377, 72388, 72399, 72409, 72418, 72427, 72435, 72444, 72453, 72461, + 72470, 72479, 72487, 72496, 72505, 72513, 72522, 72531, 72539, 72548, + 72557, 72565, 72574, 72582, 72591, 72599, 72607, 72615, 72623, 72632, + 72640, 72647, 72655, 72662, 72669, 72676, 72685, 72694, 72702, 72711, + 72720, 72728, 72738, 72746, 72754, 72761, 72769, 72777, 72784, 72794, + 72804, 72814, 72824, 72835, 72843, 72851, 72859, 72867, 72876, 72884, + 72892, 72900, 72908, 72917, 72925, 72932, 72939, 72946, 72953, 72960, + 72967, 72975, 72983, 72991, 72999, 73007, 73015, 73023, 73031, 73039, + 73047, 73055, 73063, 73071, 73079, 73087, 73095, 73103, 73111, 73119, + 73127, 73135, 73143, 73151, 73159, 73167, 73175, 73183, 73191, 73198, + 73205, 73212, 73219, 73227, 73234, 73241, 73248, 73255, 73263, 73271, + 73279, 73287, 73296, 73304, 73312, 73322, 73329, 73336, 73343, 73350, + 73358, 73368, 73379, 73387, 73396, 73404, 73413, 73421, 73430, 73438, + 73447, 73455, 73464, 73472, 73480, 73487, 73495, 73504, 73511, 73519, + 73528, 73537, 73546, 73555, 73563, 73572, 73580, 73589, 73597, 73606, + 73614, 73623, 73631, 73639, 73646, 73654, 73661, 73669, 73676, 73685, + 73693, 73702, 73710, 73718, 73726, 73734, 73742, 73751, 73760, 73769, + 73778, 73787, 73795, 73804, 73812, 73821, 73829, 73838, 73846, 73855, + 73863, 73871, 73878, 73886, 73893, 73901, 73908, 73917, 73925, 73934, + 73942, 73950, 73958, 73966, 73974, 73983, 73992, 74001, 74010, 74018, + 74026, 74034, 74042, 74051, 74060, 74068, 74076, 74084, 74092, 74100, + 74108, 74116, 74124, 74132, 74140, 74148, 74153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74158, 74168, 74178, 74188, 74198, 74208, 74218, + 74228, 74238, 74247, 74256, 74265, 74275, 74285, 74295, 74306, 74316, + 74326, 74336, 74346, 74356, 74366, 74376, 74386, 74396, 74406, 74416, + 74426, 74436, 74446, 74456, 74467, 74477, 74487, 74497, 74507, 74517, + 74527, 74537, 74547, 74557, 74568, 74578, 74588, 74599, 74609, 74619, + 74629, 74639, 74648, 74657, 74667, 74676, 74685, 74694, 74703, 74712, + 74721, 74730, 74739, 74748, 74757, 74766, 74775, 0, 0, 74784, 74793, + 74803, 74813, 74823, 74834, 74844, 74854, 74865, 74875, 74886, 74895, + 74904, 74914, 74924, 74935, 74945, 74956, 74966, 74977, 74986, 74996, + 75006, 75017, 75027, 75037, 75047, 75056, 75065, 75074, 75083, 75092, + 75101, 75111, 75121, 75131, 75140, 75150, 75160, 75170, 75179, 75188, + 75198, 75207, 75217, 75226, 75235, 75244, 75254, 75264, 75274, 75284, + 75294, 75304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75314, 75329, + 75344, 75350, 75356, 75362, 75368, 75374, 75380, 75386, 75392, 75400, + 75404, 75407, 0, 0, 75415, 75418, 75421, 75424, 75427, 75430, 75433, + 75436, 75439, 75442, 75445, 75448, 75451, 75454, 75457, 75460, 75463, + 75470, 75478, 75488, 75495, 75502, 75510, 75518, 75528, 75539, 0, 0, 0, + 0, 0, 0, 75547, 75552, 75557, 75564, 75571, 75577, 75583, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75588, 75597, 75606, 75615, 75623, 75633, 75641, 75649, + 75658, 75667, 75678, 75689, 75699, 75709, 75719, 75729, 75738, 75747, + 75756, 75765, 75775, 75785, 75789, 75794, 75802, 75810, 75814, 75818, + 75822, 75827, 75832, 75837, 75842, 75845, 75849, 0, 75854, 75857, 75860, + 75864, 75868, 75873, 75877, 75881, 75886, 75891, 75898, 75905, 75908, + 75911, 75914, 75917, 75920, 75924, 75928, 0, 75932, 75937, 75941, 75945, + 0, 0, 0, 0, 75950, 75955, 75962, 75967, 75972, 0, 75977, 75982, 75987, + 75992, 75997, 76002, 76007, 76012, 76017, 76022, 76027, 76032, 76041, + 76050, 76058, 76066, 76075, 76084, 76093, 76102, 76110, 76118, 76126, + 76134, 76139, 76144, 76150, 76156, 76162, 76168, 76176, 76184, 76190, + 76196, 76202, 76208, 76214, 76220, 76226, 76232, 76237, 76242, 76247, + 76252, 76257, 76262, 76267, 76272, 76277, 76282, 76287, 76292, 76298, + 76304, 76310, 76316, 76322, 76328, 76334, 76340, 76346, 76352, 76358, + 76364, 76370, 76376, 76382, 76388, 76394, 76400, 76406, 76412, 76418, + 76424, 76430, 76436, 76442, 76448, 76454, 76460, 76466, 76472, 76478, + 76484, 76490, 76496, 76502, 76508, 76514, 76520, 76526, 76532, 76538, + 76544, 76550, 76556, 76562, 76568, 76574, 76580, 76586, 76592, 76598, + 76604, 76609, 76614, 76619, 76624, 76629, 76634, 76639, 76644, 76650, + 76656, 76662, 76668, 76674, 76680, 76686, 76692, 76698, 76704, 76710, + 76716, 76721, 76726, 76731, 76736, 76747, 76758, 76768, 76778, 76789, + 76800, 76807, 0, 0, 76814, 0, 76822, 76826, 76830, 76833, 76837, 76841, + 76844, 76847, 76851, 76855, 76858, 76861, 76864, 76867, 76872, 76875, + 76879, 76882, 76885, 76888, 76891, 76894, 76897, 76900, 76903, 76906, + 76909, 76912, 76916, 76920, 76924, 76928, 76933, 76938, 76944, 76950, + 76956, 76961, 76967, 76972, 76977, 76982, 76988, 76994, 76999, 77004, + 77009, 77014, 77020, 77026, 77031, 77036, 77042, 77047, 77052, 77058, + 77064, 77070, 77076, 77080, 77085, 77089, 77094, 77098, 77103, 77108, + 77114, 77120, 77126, 77131, 77137, 77142, 77147, 77152, 77158, 77164, + 77169, 77174, 77179, 77184, 77190, 77196, 77201, 77206, 77212, 77217, + 77222, 77228, 77234, 77240, 77246, 77251, 77255, 77260, 77262, 77267, + 77272, 77278, 77283, 77288, 77292, 77298, 77303, 77308, 77313, 77318, + 77323, 77328, 77333, 77339, 77345, 77351, 77359, 77363, 77367, 77371, + 77375, 77379, 77383, 77388, 77393, 77398, 77403, 77408, 77413, 77418, + 77423, 77428, 77433, 77438, 77443, 77448, 77452, 77457, 77462, 77467, + 77472, 77477, 77481, 77486, 77491, 77496, 77501, 77505, 77510, 77515, + 77520, 77525, 77529, 77534, 77539, 77543, 77548, 77553, 77558, 77563, + 77568, 77572, 77579, 77586, 77590, 77595, 77600, 77605, 77610, 77615, + 77620, 77625, 77630, 77635, 77640, 77645, 77650, 77655, 77660, 77665, + 77670, 77675, 77680, 77685, 77690, 77695, 77700, 77705, 77710, 77715, + 77720, 77725, 77730, 77735, 0, 0, 0, 77740, 77744, 77749, 77753, 77758, + 77763, 0, 0, 77767, 77772, 77777, 77781, 77786, 77791, 0, 0, 77796, + 77801, 77805, 77810, 77815, 77820, 0, 0, 77825, 77830, 77835, 0, 0, 0, + 77839, 77843, 77847, 77850, 77853, 77857, 77861, 0, 77865, 77871, 77874, + 77878, 77881, 77885, 77889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77893, 77899, + 77905, 77911, 77917, 0, 0, 77921, 77927, 77933, 77939, 77945, 77951, + 77958, 77965, 77972, 77979, 77986, 77993, 0, 78000, 78007, 78014, 78020, + 78027, 78034, 78041, 78048, 78054, 78061, 78068, 78075, 78082, 78089, + 78096, 78103, 78110, 78117, 78123, 78130, 78137, 78144, 78151, 78158, + 78165, 78172, 0, 78179, 78185, 78192, 78199, 78206, 78213, 78220, 78227, + 78234, 78241, 78248, 78255, 78262, 78269, 78275, 78282, 78289, 78296, + 78303, 0, 78310, 78317, 0, 78324, 78331, 78338, 78345, 78352, 78359, + 78366, 78373, 78380, 78387, 78394, 78401, 78408, 78415, 78422, 0, 0, + 78428, 78433, 78438, 78443, 78448, 78453, 78458, 78463, 78468, 78473, + 78478, 78483, 78488, 78493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78498, 78505, + 78512, 78519, 78526, 78533, 78540, 78547, 78554, 78561, 78568, 78575, + 78582, 78589, 78596, 78603, 78610, 78617, 78624, 78631, 78639, 78647, + 78654, 78661, 78666, 78674, 78682, 78689, 78696, 78701, 78708, 78713, + 78718, 78725, 78730, 78735, 78740, 78748, 78753, 78758, 78765, 78770, + 78775, 78782, 78789, 78794, 78799, 78804, 78809, 78814, 78819, 78824, + 78829, 78834, 78841, 78846, 78853, 78858, 78863, 78868, 78873, 78878, + 78883, 78888, 78893, 78898, 78903, 78908, 78915, 78922, 78929, 78936, + 78942, 78947, 78954, 78959, 78964, 78973, 78980, 78989, 78996, 79001, + 79006, 79014, 79019, 79024, 79029, 79034, 79039, 79046, 79051, 79056, + 79061, 79066, 79071, 79078, 79085, 79092, 79099, 79106, 79113, 79120, + 79127, 79134, 79141, 79148, 79155, 79162, 79169, 79176, 79183, 79190, + 79197, 79204, 79211, 79218, 79225, 79232, 79239, 79246, 79253, 79260, + 79267, 0, 0, 0, 0, 0, 79274, 79281, 79288, 0, 0, 0, 0, 79292, 79295, + 79298, 79301, 79304, 79307, 79310, 79313, 79316, 79319, 79323, 79327, + 79331, 79335, 79339, 79343, 79347, 79351, 79355, 79360, 79365, 79370, + 79376, 79382, 79388, 79394, 79400, 79406, 79411, 79416, 79421, 79427, + 79433, 79439, 79445, 79451, 79457, 79463, 79469, 79475, 79481, 79487, + 79493, 79499, 79505, 0, 0, 0, 79511, 79518, 79525, 79532, 79539, 79546, + 79555, 79564, 79571, 79578, 79586, 79594, 79602, 79608, 79615, 79624, + 79633, 79642, 79651, 79660, 79669, 79679, 79690, 79700, 79711, 79720, + 79729, 79738, 79748, 79759, 79769, 79780, 79791, 79800, 79808, 79814, + 79820, 79826, 79832, 79840, 79848, 79854, 79861, 79871, 79878, 79885, + 79892, 79899, 79906, 79916, 79923, 79930, 79938, 79946, 79955, 79964, + 79973, 79982, 79991, 79999, 80008, 80017, 80026, 80030, 80037, 80042, + 80047, 80051, 80055, 80059, 80063, 80068, 80073, 80079, 80085, 80089, + 80095, 80099, 80103, 80107, 80111, 80115, 80119, 80125, 0, 0, 0, 0, 0, + 80129, 80134, 80139, 80144, 80149, 80156, 80161, 80166, 80171, 80176, + 80181, 80186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80191, 80198, 80207, 80216, 80223, 80230, 80237, + 80244, 80251, 80258, 80264, 80271, 80278, 80285, 80292, 80299, 80306, + 80313, 80320, 80329, 80336, 80343, 80350, 80357, 80364, 80371, 80378, + 80385, 80394, 80401, 80408, 80415, 80422, 80429, 80436, 80445, 80452, + 80459, 80466, 80473, 80482, 80489, 80496, 80503, 80511, 80520, 0, 0, + 80529, 80533, 80537, 80542, 80547, 80551, 80556, 80560, 80565, 80570, + 80575, 80580, 80585, 80590, 80594, 80598, 80602, 80607, 80612, 80616, + 80621, 80626, 80630, 80634, 80639, 80644, 80649, 80654, 80658, 0, 0, 0, + 80663, 80667, 80672, 80677, 80681, 80686, 80690, 80695, 80700, 80705, + 80710, 80714, 80718, 80723, 80728, 80733, 80738, 80742, 80747, 80751, + 80756, 80761, 80765, 80770, 80775, 80780, 80784, 80788, 80793, 80798, + 80803, 80808, 80813, 80817, 80822, 80827, 80832, 80837, 80842, 80847, + 80852, 80857, 80862, 80867, 80872, 80877, 80882, 80887, 80892, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80897, 80901, + 80906, 80911, 80916, 80920, 80925, 80930, 80935, 80940, 80944, 80948, + 80953, 80958, 80963, 80968, 80972, 80977, 80982, 80987, 80992, 80997, + 81002, 81006, 81011, 81016, 81021, 81026, 81031, 81036, 81041, 0, 81046, + 81050, 81054, 81059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81064, 81069, + 81074, 81079, 81084, 81089, 81094, 81099, 81104, 81109, 81114, 81119, + 81124, 81129, 81134, 81139, 81144, 81149, 81154, 81159, 81164, 81169, + 81174, 81179, 81184, 81189, 81194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81201, 81206, 81211, + 81216, 81221, 81226, 81231, 81236, 81241, 81246, 81251, 81256, 81261, + 81266, 81271, 81276, 81281, 81286, 81291, 81296, 81301, 81306, 81311, + 81316, 81321, 81326, 81331, 81335, 81339, 81343, 0, 81348, 81354, 81359, + 81364, 81369, 81374, 81380, 81386, 81392, 81398, 81404, 81410, 81416, + 81422, 81428, 81434, 81440, 81446, 81452, 81457, 81463, 81469, 81475, + 81481, 81486, 81492, 81498, 81503, 81509, 81515, 81520, 81526, 81532, + 81538, 81544, 81550, 81556, 0, 0, 0, 0, 81561, 81567, 81573, 81579, + 81585, 81591, 81597, 81603, 81609, 81616, 81621, 81626, 81632, 81638, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81644, 81649, 81654, + 81659, 81665, 81670, 81676, 81682, 81688, 81694, 81701, 81707, 81714, + 81719, 81724, 81729, 81734, 81738, 81743, 81748, 81753, 81758, 81763, + 81768, 81773, 81778, 81783, 81788, 81793, 81798, 81803, 81808, 81813, + 81818, 81823, 81828, 81833, 81838, 81843, 81848, 81853, 81858, 81863, + 81868, 81874, 81879, 81885, 81891, 81897, 81903, 81910, 81916, 81923, + 81928, 81933, 81938, 81943, 81947, 81952, 81957, 81962, 81967, 81972, + 81977, 81982, 81987, 81992, 81997, 82002, 82007, 82012, 82017, 82022, + 82027, 82032, 82037, 82042, 82047, 82052, 82057, 82062, 82067, 82072, + 82077, 82082, 82087, 82092, 82097, 82102, 82107, 82112, 82117, 82122, + 82127, 82132, 82137, 82142, 82147, 82152, 82157, 82162, 82167, 82172, + 82177, 82182, 82187, 82192, 82197, 82202, 82207, 82212, 82217, 82222, + 82227, 82232, 82237, 82242, 82247, 82252, 82257, 82262, 82267, 82272, + 82277, 82282, 82287, 82292, 82297, 82302, 82307, 82312, 82317, 82322, + 82327, 82332, 82337, 82341, 82346, 82351, 82356, 82361, 82366, 82371, + 82376, 82381, 82386, 82391, 82396, 82401, 82405, 82409, 82413, 82417, + 82421, 82425, 82429, 82434, 82439, 0, 0, 82444, 82449, 82453, 82457, + 82461, 82465, 82469, 82473, 82477, 82481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82485, 82488, 82491, 82494, 82497, 82500, 0, 0, 82504, 0, + 82508, 82511, 82515, 82519, 82523, 82527, 82531, 82535, 82539, 82543, + 82547, 82550, 82554, 82558, 82562, 82566, 82570, 82574, 82578, 82582, + 82586, 82589, 82593, 82597, 82601, 82605, 82608, 82612, 82616, 82620, + 82624, 82628, 82632, 82636, 82640, 82644, 82648, 82652, 82656, 82659, + 82663, 82667, 82671, 82675, 0, 82679, 82683, 0, 0, 0, 82687, 0, 0, 82691, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82695, 82700, 82705, + 82710, 82715, 82720, 82725, 82730, 82735, 82740, 82745, 82750, 82755, + 82760, 82765, 82770, 82775, 82780, 82785, 82790, 82795, 82800, 82805, + 82809, 82814, 82819, 0, 0, 0, 0, 0, 82825, 82831, 82835, 82840, 82844, + 82849, 82853, 82857, 82861, 82866, 82871, 82875, 82879, 82883, 82887, + 82891, 82896, 82901, 82905, 82910, 82915, 82919, 82924, 82929, 82934, + 82939, 82944, 0, 0, 0, 0, 0, 82949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82954, 82957, 82961, 82965, 0, 82970, 82974, 0, 0, 0, 0, 0, + 82978, 82983, 82989, 82993, 82997, 83000, 83004, 83008, 0, 83012, 83016, + 83020, 0, 83024, 83028, 83032, 83036, 83040, 83044, 83048, 83052, 83056, + 83060, 83064, 83068, 83071, 83075, 83079, 83083, 83086, 83089, 83092, + 83096, 83100, 83104, 83108, 83112, 83116, 83119, 83123, 0, 0, 0, 0, + 83127, 83132, 83136, 0, 0, 0, 0, 83140, 83143, 83146, 83149, 83152, + 83155, 83159, 83163, 83168, 0, 0, 0, 0, 0, 0, 0, 0, 83173, 83178, 83184, + 83189, 83195, 83200, 83205, 83210, 83216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83221, 83224, 83229, 83235, 83243, 83248, 83254, 83262, + 83268, 83274, 83278, 83282, 83289, 83298, 83305, 83314, 83320, 83329, + 83336, 83343, 83350, 83360, 83366, 83370, 83377, 83386, 83396, 83403, + 83410, 83414, 83418, 83425, 83435, 83439, 83446, 83453, 83460, 83466, + 83473, 83480, 83487, 83494, 83498, 83502, 83506, 83513, 83517, 83524, + 83531, 83545, 83554, 83558, 83562, 83566, 83573, 83577, 83581, 83585, + 83593, 83601, 83620, 83630, 83650, 83654, 83658, 83662, 83666, 83670, + 83674, 83678, 83685, 83689, 83692, 83696, 83700, 83706, 83713, 83722, + 83726, 83735, 83744, 83752, 83756, 83763, 83767, 83771, 83775, 83779, + 83790, 83799, 83808, 83817, 83826, 83838, 83847, 83856, 83865, 83873, + 83882, 83894, 83903, 83912, 83921, 83933, 83942, 83951, 83963, 83972, + 83981, 83993, 84002, 84006, 84010, 84014, 84018, 84022, 84026, 84030, + 84037, 84041, 84045, 84056, 84060, 84064, 84071, 84077, 84083, 84087, + 84094, 84098, 84102, 84106, 84110, 84114, 84118, 84124, 84132, 84136, + 84140, 84143, 84149, 84159, 84163, 84175, 84182, 84189, 84196, 84203, + 84209, 84213, 84217, 84221, 84225, 84232, 84241, 84248, 84256, 84264, + 84270, 84274, 84278, 84282, 84286, 84292, 84301, 84313, 84320, 84327, + 84336, 84347, 84353, 84362, 84371, 84378, 84387, 84394, 84401, 84411, + 84418, 84425, 84432, 84439, 84443, 84449, 84453, 84464, 84472, 84481, + 84493, 84500, 84507, 84517, 84524, 84533, 84540, 84549, 84556, 84563, + 84573, 84580, 84587, 84597, 84604, 84616, 84625, 84632, 84639, 84646, + 84655, 84665, 84678, 84685, 84695, 84705, 84712, 84721, 84734, 84741, + 84748, 84755, 84765, 84775, 84782, 84792, 84799, 84806, 84816, 84822, + 84829, 84836, 84843, 84853, 84860, 84867, 84874, 84880, 84887, 84897, + 84904, 84908, 84916, 84920, 84932, 84936, 84950, 84954, 84958, 84962, + 84966, 84972, 84979, 84987, 84991, 84995, 84999, 85003, 85010, 85014, + 85020, 85026, 85034, 85038, 85045, 85053, 85057, 85061, 85067, 85071, + 85080, 85089, 85096, 85106, 85112, 85116, 85120, 85128, 85135, 85142, + 85148, 85152, 85160, 85164, 85171, 85183, 85190, 85200, 85206, 85210, + 85219, 85226, 85235, 85239, 85243, 85250, 85254, 85258, 85262, 85266, + 85269, 85275, 85281, 85285, 85289, 85296, 85303, 85310, 85317, 85324, + 85331, 85338, 85345, 85351, 85355, 85359, 85366, 85373, 85380, 85387, + 85394, 85398, 85401, 85406, 85410, 85414, 85423, 85432, 85436, 85440, + 85446, 85452, 85469, 85475, 85479, 85488, 85492, 85496, 85503, 85511, + 85519, 85525, 85529, 85533, 85537, 85541, 85544, 85549, 85555, 85564, + 85570, 85576, 85582, 85587, 85593, 85599, 85605, 85611, 85617, 85625, + 85631, 85642, 85648, 85654, 85663, 85673, 85679, 85685, 85691, 85697, + 85703, 85709, 85715, 85721, 85727, 85733, 85742, 85751, 85760, 85766, + 85775, 85781, 85787, 85793, 85799, 85805, 85811, 85817, 85823, 85829, + 85835, 85841, 85847, 85853, 85858, 85864, 85870, 85878, 85884, 85890, + 85894, 85902, 85906, 85910, 85914, 85918, 85922, 85929, 85933, 85942, + 85946, 85953, 85961, 85965, 85969, 85973, 85984, 85998, 86002, 86006, + 86013, 86019, 86026, 86030, 86034, 86038, 86042, 86046, 86053, 86057, + 86075, 86079, 86083, 86090, 86094, 86098, 86104, 86108, 86112, 86120, + 86124, 86128, 86132, 86136, 86141, 86151, 86159, 86167, 86173, 86179, + 86189, 86195, 86201, 86207, 86213, 86219, 86225, 86231, 86240, 86245, + 86251, 86260, 86268, 86274, 86282, 86291, 86297, 86303, 86309, 86315, + 86326, 86332, 86338, 86344, 86350, 86356, 86365, 86371, 86377, 86386, + 86398, 86409, 86415, 86424, 86430, 86436, 86442, 86456, 86461, 86468, + 86477, 86486, 86492, 86498, 86503, 86507, 86514, 86524, 86530, 86543, + 86547, 86551, 86558, 86562, 86568, 86577, 86581, 86585, 86589, 86593, + 86597, 86604, 86608, 86615, 86622, 86629, 86638, 86647, 86657, 86664, + 86671, 86678, 86688, 86695, 86705, 86712, 86722, 86729, 86736, 86746, + 86756, 86763, 86769, 86777, 86785, 86791, 86797, 86801, 86805, 86812, + 86820, 86826, 86830, 86834, 86838, 86845, 86857, 86860, 86867, 86873, + 86877, 86881, 86885, 86889, 86893, 86897, 86901, 86905, 86909, 86913, + 86920, 86924, 86930, 86934, 86938, 86942, 86948, 86955, 86962, 86969, + 86981, 86989, 86993, 86999, 87008, 87015, 87021, 87025, 87029, 87033, + 87039, 87048, 87056, 87060, 87066, 87070, 87074, 87078, 87084, 87091, + 87097, 87101, 87107, 87111, 87115, 87124, 87136, 87140, 87147, 87154, + 87164, 87171, 87183, 87190, 87197, 87204, 87215, 87225, 87238, 87248, + 87255, 87259, 87263, 87267, 87271, 87280, 87289, 87298, 87315, 87324, + 87330, 87337, 87345, 87358, 87362, 87371, 87380, 87389, 87398, 87409, + 87418, 87427, 87436, 87445, 87454, 87463, 87473, 87476, 87480, 87484, + 87488, 87492, 87496, 87502, 87509, 87516, 87523, 87529, 87535, 87542, + 87548, 87555, 87563, 87567, 87574, 87581, 87588, 87596, 87599, 87603, + 87607, 87611, 87615, 87621, 87625, 87631, 87638, 87645, 87651, 87658, + 87665, 87672, 87679, 87686, 87693, 87700, 87707, 87714, 87721, 87728, + 87735, 87742, 87749, 87755, 87759, 87767, 87771, 87775, 87779, 87783, + 87789, 87796, 87803, 87810, 87817, 87824, 87830, 87838, 87842, 87846, + 87850, 87854, 87860, 87877, 87894, 87898, 87902, 87906, 87910, 87914, + 87918, 87924, 87931, 87935, 87941, 87948, 87955, 87962, 87969, 87976, + 87985, 87992, 87999, 88006, 88013, 88017, 88021, 88027, 88039, 88043, + 88047, 88056, 88060, 88064, 88068, 88074, 88078, 88082, 88091, 88095, + 88099, 88103, 88110, 88114, 88118, 88122, 88126, 88130, 88134, 88138, + 88142, 88148, 88155, 88162, 88168, 88172, 88189, 88195, 88199, 88205, + 88211, 88217, 88223, 88229, 88235, 88239, 88243, 88247, 88253, 88257, + 88263, 88267, 88271, 88278, 88285, 88302, 88306, 88310, 88314, 88318, + 88322, 88334, 88337, 88342, 88347, 88362, 88372, 88383, 88387, 88391, + 88395, 88401, 88408, 88415, 88425, 88437, 88443, 88449, 88458, 88462, + 88466, 88473, 88483, 88490, 88496, 88500, 88504, 88511, 88517, 88521, + 88527, 88531, 88539, 88545, 88549, 88557, 88566, 88573, 88579, 88586, + 88593, 88603, 88613, 88617, 88621, 88625, 88629, 88635, 88642, 88648, + 88655, 88662, 88669, 88678, 88685, 88692, 88698, 88705, 88712, 88719, + 88726, 88733, 88740, 88746, 88753, 88760, 88767, 88776, 88783, 88790, + 88794, 88800, 88804, 88810, 88817, 88824, 88831, 88835, 88839, 88843, + 88847, 88851, 88858, 88862, 88866, 88872, 88881, 88885, 88889, 88893, + 88897, 88904, 88908, 88912, 88920, 88924, 88928, 88932, 88936, 88942, + 88946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88950, 88956, + 88962, 88969, 88976, 88983, 88990, 88997, 89004, 89010, 89017, 89024, + 89031, 89038, 89045, 89052, 89058, 89064, 89070, 89076, 89082, 89088, + 89094, 89100, 89106, 89113, 89120, 89127, 89134, 89141, 89148, 89154, + 89160, 89166, 89173, 89180, 89186, 89192, 89201, 89208, 89215, 89222, + 89229, 89236, 89243, 89249, 89255, 89261, 89270, 89277, 89284, 89295, + 89306, 89312, 89318, 89324, 89333, 89340, 89347, 89356, 89365, 89375, + 89385, 89396, 89408, 89418, 89428, 89439, 89451, 89461, 89471, 89481, + 89491, 89501, 89512, 89520, 89528, 89537, 89546, 89555, 89561, 89567, + 89573, 89580, 89590, 89597, 89607, 89612, 89617, 89623, 89629, 89637, + 89645, 89654, 89664, 89674, 89682, 89690, 89699, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89708, 89719, 89726, 89734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89742, 89747, 89752, 89757, 89764, 89771, 89778, 89785, 89790, + 89795, 89800, 89805, 89812, 89817, 89824, 89831, 89836, 89841, 89846, + 89853, 89858, 89863, 89870, 89877, 89882, 89887, 89892, 89899, 89906, + 89913, 89918, 89923, 89930, 89937, 89944, 89951, 89956, 89961, 89966, + 89973, 89978, 89983, 89988, 89995, 90004, 90011, 90016, 90021, 90026, + 90031, 90036, 90041, 90050, 90057, 90062, 90069, 90076, 90081, 90086, + 90091, 90098, 90103, 90110, 90117, 90122, 90127, 90132, 90139, 90146, + 90151, 90156, 90163, 90170, 90177, 90182, 90187, 90192, 90197, 90204, + 90213, 90222, 90227, 90234, 90243, 90248, 90253, 90258, 90263, 90270, + 90277, 90284, 90291, 90296, 90301, 90306, 90313, 90320, 90327, 90332, + 90337, 90344, 90349, 90356, 90361, 90368, 90373, 90380, 90387, 90392, + 90397, 90402, 90407, 90412, 90417, 90422, 90427, 90432, 90439, 90446, + 90453, 90460, 90467, 90476, 90481, 90486, 90493, 90500, 90505, 90512, + 90519, 90526, 90533, 90540, 90547, 90552, 90557, 90562, 90567, 90572, + 90581, 90590, 90599, 90608, 90617, 90626, 90635, 90644, 90649, 90660, + 90671, 90680, 90685, 90690, 90695, 90700, 90709, 90716, 90723, 90730, + 90737, 90744, 90751, 90760, 90769, 90780, 90789, 90800, 90809, 90816, + 90825, 90836, 90845, 90854, 90863, 90872, 90879, 90886, 90893, 90902, + 90911, 90922, 90931, 90940, 90951, 90956, 90961, 90972, 90980, 90989, + 90998, 91007, 91018, 91027, 91036, 91047, 91058, 91069, 91080, 91091, + 91102, 91109, 91116, 91123, 91130, 91141, 91150, 91157, 91164, 91171, + 91182, 91193, 91204, 91215, 91226, 91237, 91248, 91259, 91266, 91273, + 91282, 91291, 91298, 91305, 91312, 91321, 91330, 91339, 91346, 91355, + 91364, 91373, 91380, 91387, 91392, 91398, 91405, 91412, 91419, 91426, + 91433, 91440, 91449, 91458, 91467, 91476, 91483, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 91492, 91498, 91503, 91508, 91515, 91521, 91527, 91533, 91539, + 91545, 91551, 91557, 91561, 91565, 91571, 91577, 91583, 91587, 91592, + 91597, 91601, 91605, 91608, 91614, 91620, 91626, 91632, 91638, 91644, + 91650, 91656, 91662, 91672, 91682, 91688, 91694, 91704, 91714, 91720, 0, + 0, 91726, 91734, 91739, 91744, 91750, 91756, 91762, 91768, 91774, 91780, + 91787, 91794, 91800, 91806, 91812, 91818, 91824, 91830, 91836, 91842, + 91847, 91853, 91859, 91865, 91871, 91877, 91886, 91892, 91897, 91905, + 91912, 91919, 91928, 91937, 91946, 91955, 91964, 91973, 91982, 91991, + 92001, 92011, 92019, 92027, 92036, 92045, 92051, 92057, 92063, 92069, + 92077, 92085, 92089, 92095, 92100, 92106, 92112, 92118, 92124, 92130, + 92139, 92144, 92151, 92156, 92161, 92166, 92172, 92178, 92184, 92191, + 92196, 92201, 92206, 92211, 92216, 92222, 92228, 92234, 92240, 92246, + 92252, 92258, 92264, 92269, 92274, 92279, 92284, 92289, 92294, 92299, + 92304, 92310, 92316, 92321, 92326, 92331, 92336, 92341, 92347, 92354, + 92358, 92362, 92366, 92370, 92374, 92378, 92382, 92386, 92394, 92404, + 92408, 92412, 92418, 92424, 92430, 92436, 92442, 92448, 92454, 92460, + 92466, 92472, 92478, 92484, 92490, 92496, 92500, 92504, 92511, 92517, + 92523, 92529, 92534, 92541, 92546, 92552, 92558, 92564, 92570, 92575, + 92579, 92585, 92589, 92593, 92597, 92603, 92609, 92613, 92619, 92625, + 92631, 92637, 92643, 92651, 92659, 92665, 92671, 92677, 92683, 92695, + 92707, 92721, 92733, 92745, 92759, 92773, 92787, 92791, 92799, 92807, + 92812, 92816, 92820, 92824, 92828, 92832, 92836, 92840, 92846, 92852, + 92858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92864, 92870, 92876, 92882, 92888, + 92894, 92900, 92906, 92912, 92918, 92924, 92930, 92936, 92942, 92948, + 92954, 92960, 92966, 92972, 92978, 92984, 92990, 92996, 93002, 93008, + 93014, 93020, 93026, 93032, 93038, 93044, 93050, 93056, 93062, 93068, + 93074, 93080, 93086, 93092, 93098, 93104, 93110, 93116, 93122, 93128, + 93134, 93140, 93146, 93152, 93158, 93164, 93170, 93176, 93182, 93188, + 93194, 93200, 93206, 93212, 93218, 93224, 93230, 93236, 93242, 93248, + 93254, 93260, 93265, 93270, 93275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93279, + 93284, 93291, 93298, 93305, 93312, 93317, 93321, 93327, 93331, 93335, + 93341, 93345, 93349, 93353, 93359, 93366, 93370, 93374, 93378, 93382, + 93386, 93390, 93396, 93400, 93404, 93408, 93412, 93416, 93420, 93424, + 93428, 93432, 93436, 93440, 93444, 93449, 93453, 93457, 93461, 93465, + 93469, 93473, 93477, 93481, 93485, 93492, 93496, 93503, 93507, 93511, + 93515, 93519, 93523, 93527, 93531, 93538, 93542, 93546, 93550, 93554, + 93558, 93564, 93568, 93574, 93578, 93582, 93586, 93590, 93594, 93598, + 93602, 93606, 93610, 93614, 93618, 93622, 93626, 93630, 93634, 93638, + 93642, 93646, 93650, 93658, 93662, 93666, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93670, 93678, 93686, 93694, 93702, 93710, 93718, 93726, 93734, 93742, + 93750, 93758, 93766, 93774, 93782, 93790, 93798, 93806, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93814, 93818, 93823, 93828, 93833, 93837, 93842, + 93846, 93850, 93854, 93859, 93864, 93868, 93872, 93876, 93880, 93885, + 93890, 93894, 93898, 93903, 93907, 93911, 93916, 93921, 93926, 93931, + 93935, 93940, 93945, 93950, 93954, 93959, 93963, 93967, 93971, 93976, + 93981, 93985, 93989, 93993, 93997, 94002, 94007, 94011, 94015, 94020, + 94024, 94028, 94033, 94038, 94043, 94048, 94052, 94057, 94062, 94067, + 94071, 94076, 94080, 94084, 94088, 94093, 94098, 94102, 94106, 94110, + 94114, 94119, 94124, 94128, 94132, 94137, 94141, 94145, 94150, 94155, + 94160, 94165, 94169, 94174, 94179, 94184, 94188, 94193, 0, 94197, 94201, + 94206, 94211, 94215, 94219, 94223, 94227, 94232, 94237, 94241, 94245, + 94250, 94254, 94258, 94263, 94268, 94273, 94278, 94283, 94289, 94295, + 94301, 94306, 94312, 94317, 94322, 94327, 94333, 94339, 94344, 94349, + 94354, 94359, 94365, 94371, 94376, 94381, 94387, 94392, 94397, 94403, + 94409, 94415, 94421, 94426, 94432, 94438, 94444, 94449, 94455, 94460, + 94465, 94470, 94476, 94482, 94487, 94492, 94497, 94502, 94508, 94514, + 94519, 94524, 94530, 94535, 94540, 94546, 94552, 94558, 94564, 0, 94568, + 94573, 0, 0, 94578, 0, 0, 94582, 94587, 0, 0, 94592, 94596, 94600, 94605, + 0, 94610, 94614, 94619, 94623, 94627, 94632, 94637, 94642, 94647, 94651, + 94656, 94661, 0, 94666, 0, 94671, 94675, 94679, 94684, 94689, 94693, + 94697, 0, 94701, 94706, 94711, 94715, 94719, 94724, 94728, 94732, 94737, + 94742, 94747, 94752, 94757, 94763, 94769, 94775, 94780, 94786, 94791, + 94796, 94801, 94807, 94813, 94818, 94823, 94828, 94833, 94839, 94845, + 94850, 94855, 94861, 94866, 94871, 94877, 94883, 94889, 94895, 94900, + 94906, 94912, 94918, 94923, 94929, 94934, 94939, 94944, 94950, 94956, + 94961, 94966, 94971, 94976, 94982, 94988, 94993, 94998, 95004, 95009, + 95014, 95020, 95026, 95032, 95038, 95042, 0, 95047, 95052, 95056, 95061, + 0, 0, 95065, 95070, 95075, 95079, 95083, 95087, 95091, 95096, 0, 95101, + 95105, 95110, 95114, 95118, 95123, 95128, 0, 95133, 95137, 95142, 95147, + 95152, 95156, 95161, 95165, 95169, 95173, 95178, 95183, 95187, 95191, + 95195, 95199, 95204, 95209, 95213, 95217, 95222, 95226, 95230, 95235, + 95240, 95245, 95250, 95254, 0, 95259, 95264, 95268, 95273, 0, 95277, + 95281, 95286, 95291, 95295, 0, 95299, 0, 0, 0, 95303, 95307, 95312, + 95316, 95320, 95325, 95330, 0, 95335, 95339, 95344, 95349, 95354, 95358, + 95363, 95367, 95371, 95375, 95380, 95385, 95389, 95393, 95397, 95401, + 95406, 95411, 95415, 95419, 95424, 95428, 95432, 95437, 95442, 95447, + 95452, 95457, 95463, 95469, 95475, 95480, 95486, 95491, 95496, 95501, + 95507, 95513, 95518, 95523, 95528, 95533, 95539, 95545, 95550, 95555, + 95561, 95566, 95571, 95577, 95583, 95589, 95595, 95600, 95606, 95612, + 95618, 95623, 95629, 95634, 95639, 95644, 95650, 95656, 95661, 95666, + 95671, 95676, 95682, 95688, 95693, 95698, 95704, 95709, 95714, 95720, + 95726, 95732, 95738, 95742, 95747, 95752, 95757, 95761, 95766, 95770, + 95774, 95778, 95783, 95788, 95792, 95796, 95800, 95804, 95809, 95814, + 95818, 95822, 95827, 95831, 95835, 95840, 95845, 95850, 95855, 95859, + 95864, 95869, 95874, 95878, 95883, 95887, 95891, 95895, 95900, 95905, + 95909, 95913, 95917, 95921, 95926, 95931, 95935, 95939, 95944, 95948, + 95952, 95957, 95962, 95967, 95972, 95977, 95983, 95989, 95995, 96000, + 96006, 96011, 96016, 96021, 96027, 96033, 96038, 96043, 96048, 96053, + 96059, 96065, 96070, 96075, 96081, 96086, 96091, 96097, 96103, 96109, + 96115, 96120, 96126, 96132, 96138, 96143, 96149, 96154, 96159, 96164, + 96170, 96176, 96181, 96186, 96191, 96196, 96202, 96208, 96213, 96218, + 96224, 96229, 96234, 96240, 96246, 96252, 96258, 96263, 96269, 96275, + 96281, 96286, 96292, 96297, 96302, 96307, 96313, 96319, 96324, 96329, + 96334, 96339, 96345, 96351, 96356, 96361, 96367, 96372, 96377, 96383, + 96389, 96395, 96401, 96406, 96412, 96418, 96424, 96429, 96435, 96440, + 96445, 96450, 96456, 96462, 96467, 96472, 96477, 96482, 96488, 96494, + 96499, 96504, 96510, 96515, 96520, 96526, 96532, 96538, 96544, 96550, + 96557, 96564, 96571, 96577, 96584, 96590, 96596, 96602, 96609, 96616, + 96622, 96628, 96634, 96640, 96647, 96654, 96660, 96666, 96673, 96679, + 96685, 96692, 96699, 96706, 96713, 96719, 96726, 96733, 96740, 96746, + 96753, 96759, 96765, 96771, 96778, 96785, 96791, 96797, 96803, 96809, + 96816, 96823, 96829, 96835, 96842, 96848, 96854, 96861, 96868, 96875, + 96882, 96886, 96891, 96896, 96901, 96905, 96910, 96914, 96918, 96922, + 96927, 96932, 96936, 96940, 96944, 96948, 96953, 96958, 96962, 96966, + 96971, 96975, 96979, 96984, 96989, 96994, 96999, 97003, 97008, 97013, + 97018, 97022, 97027, 97031, 97035, 97039, 97044, 97049, 97053, 97057, + 97061, 97065, 97070, 97075, 97079, 97083, 97088, 97092, 97096, 97101, + 97106, 97111, 97116, 97122, 0, 0, 97129, 97134, 97139, 97144, 97149, + 97154, 97159, 97164, 97169, 97174, 97179, 97184, 97189, 97194, 97199, + 97204, 97209, 97214, 97220, 97225, 97230, 97235, 97240, 97245, 97250, + 97255, 97259, 97264, 97269, 97274, 97279, 97284, 97289, 97294, 97299, + 97304, 97309, 97314, 97319, 97324, 97329, 97334, 97339, 97344, 97350, + 97355, 97360, 97365, 97370, 97375, 97380, 97385, 97391, 97396, 97401, + 97406, 97411, 97416, 97421, 97426, 97431, 97436, 97441, 97446, 97451, + 97456, 97461, 97466, 97471, 97476, 97481, 97486, 97491, 97496, 97501, + 97506, 97512, 97517, 97522, 97527, 97532, 97537, 97542, 97547, 97551, + 97556, 97561, 97566, 97571, 97576, 97581, 97586, 97591, 97596, 97601, + 97606, 97611, 97616, 97621, 97626, 97631, 97636, 97642, 97647, 97652, + 97657, 97662, 97667, 97672, 97677, 97683, 97688, 97693, 97698, 97703, + 97708, 97713, 97719, 97725, 97731, 97737, 97743, 97749, 97755, 97761, + 97767, 97773, 97779, 97785, 97791, 97797, 97803, 97809, 97815, 97822, + 97828, 97834, 97840, 97846, 97852, 97858, 97864, 97869, 97875, 97881, + 97887, 97893, 97899, 97905, 97911, 97917, 97923, 97929, 97935, 97941, + 97947, 97953, 97959, 97965, 97971, 97978, 97984, 97990, 97996, 98002, + 98008, 98014, 98020, 98027, 98033, 98039, 98045, 98051, 98057, 98063, + 98069, 98075, 98081, 98087, 98093, 98099, 98105, 98111, 98117, 98123, + 98129, 98135, 98141, 98147, 98153, 98159, 98165, 98172, 98178, 98184, + 98190, 98196, 98202, 98208, 98214, 98219, 98225, 98231, 98237, 98243, + 98249, 98255, 98261, 98267, 98273, 98279, 98285, 98291, 98297, 98303, + 98309, 98315, 98321, 98328, 98334, 98340, 98346, 98352, 98358, 98364, + 98370, 98377, 98383, 98389, 98395, 98401, 98407, 98413, 98420, 98427, + 98434, 98441, 98448, 98455, 98462, 98469, 98476, 98483, 98490, 98497, + 98504, 98511, 98518, 98525, 98532, 98540, 98547, 98554, 98561, 98568, + 98575, 98582, 98589, 98595, 98602, 98609, 98616, 98623, 98630, 98637, + 98644, 98651, 98658, 98665, 98672, 98679, 98686, 98693, 98700, 98707, + 98714, 98722, 98729, 98736, 98743, 98750, 98757, 98764, 98771, 98779, + 98786, 98793, 98800, 98807, 98814, 98821, 98826, 0, 0, 98831, 98836, + 98840, 98844, 98848, 98852, 98856, 98860, 98864, 98868, 98872, 98877, + 98881, 98885, 98889, 98893, 98897, 98901, 98905, 98909, 98913, 98918, + 98922, 98926, 98930, 98934, 98938, 98942, 98946, 98950, 98954, 98960, + 98965, 98970, 98975, 98980, 98985, 98990, 98995, 99000, 99005, 99010, + 99014, 99018, 99022, 99026, 99030, 99034, 99038, 99042, 99046, 99053, + 99060, 99067, 99074, 99081, 99088, 99094, 99101, 99108, 99115, 99123, + 99131, 99139, 99147, 99155, 99163, 99170, 99177, 99184, 99192, 99200, + 99208, 99216, 99224, 99232, 99239, 99246, 99253, 99261, 99269, 99277, + 99285, 99293, 99301, 99306, 99311, 99316, 99321, 99326, 99331, 99336, + 99341, 99346, 0, 0, 0, 0, 99351, 99356, 99360, 99364, 99368, 99372, + 99376, 99380, 99384, 99388, 99392, 99396, 99400, 99404, 99408, 99412, + 99416, 99420, 99424, 99428, 99432, 99436, 99440, 99444, 99448, 99452, + 99456, 99460, 99464, 99468, 99472, 99476, 99480, 99484, 99488, 99492, + 99496, 99500, 99504, 99508, 99512, 99516, 99520, 99524, 99528, 99532, + 99536, 99540, 99544, 99548, 99552, 99557, 99561, 99565, 99569, 99573, + 99577, 99581, 99585, 99589, 99593, 99597, 99601, 99605, 99609, 99613, + 99617, 99621, 99625, 99629, 99633, 99637, 99641, 99645, 99649, 99653, + 99657, 99661, 99665, 99669, 99673, 99677, 99681, 99685, 99689, 99693, + 99697, 99701, 99705, 99709, 99713, 99717, 99721, 99725, 99729, 99733, + 99737, 99741, 99745, 99749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99753, + 99757, 99761, 99765, 99769, 99773, 99777, 99781, 99785, 99789, 99793, + 99797, 99801, 99805, 99809, 99813, 99817, 99821, 99825, 99829, 99833, + 99837, 99841, 99845, 99849, 99853, 99857, 99861, 99865, 99869, 99873, + 99877, 99881, 99885, 99889, 99893, 99897, 99901, 99905, 99909, 99913, + 99917, 99921, 99925, 99929, 99933, 99937, 99941, 99945, 99949, 99953, + 99957, 99961, 99965, 99969, 99973, 99977, 99981, 99985, 99989, 99993, + 99997, 100001, 100005, 100009, 100013, 100017, 100021, 100025, 100029, + 100033, 100037, 100041, 100045, 100049, 100053, 100057, 100061, 100065, + 100069, 100073, 100077, 100081, 100085, 100089, 100093, 100097, 100101, + 100105, 100109, 100113, 100117, 100121, 100125, 100129, 100133, 100137, + 100141, 100145, 100149, 100153, 100157, 100161, 100165, 100169, 100173, + 100177, 100181, 100185, 100189, 100193, 100197, 100201, 100205, 100209, + 100213, 100217, 100221, 100225, 100229, 100233, 100237, 100241, 100245, + 100249, 100253, 100257, 100261, 100265, 100269, 100273, 100277, 100281, + 100285, 100289, 100293, 100297, 100301, 100305, 100309, 100313, 100317, + 100321, 100325, 100329, 100333, 100337, 100341, 100345, 100349, 100353, + 100357, 100361, 100365, 100369, 100373, 100377, 100381, 100385, 100389, + 100393, 100397, 100401, 100405, 100409, 100413, 100417, 100421, 100425, + 100429, 100433, 100437, 100441, 100445, 100449, 100453, 100457, 100461, + 100465, 100469, 100473, 100477, 100481, 100485, 100489, 100493, 100497, + 100501, 100505, 100509, 100513, 100517, 100521, 100525, 100529, 100533, + 100537, 100541, 100545, 100549, 100553, 100557, 100561, 100565, 100569, + 100573, 100577, 100581, 100585, 100589, 100593, 100597, 100601, 100605, + 100609, 100613, 100617, 100621, 100625, 100629, 100633, 100637, 100641, + 100645, 100649, 100653, 100657, 100661, 100665, 100669, 100673, 100677, + 100681, 100685, 100689, 100693, 100697, 100701, 100705, 100709, 100713, + 100717, 100721, 100725, 100729, 100733, 100737, 100741, 100745, 100749, + 100753, 100757, 100761, 100765, 100769, 100773, 100777, 100781, 100785, + 100789, 100793, 100797, 100801, 100805, 100809, 100813, 100817, 100821, + 100825, 100829, 100833, 100837, 100841, 100845, 100849, 100853, 100857, + 100861, 100865, 100869, 100873, 100877, 100881, 100885, 100889, 100893, + 100897, 100901, 100905, 100909, 100913, 100917, 100921, 100925, 100929, + 100933, 100937, 100941, 100945, 100949, 100953, 100957, 100961, 100965, + 100969, 100973, 100977, 100981, 100985, 100989, 100993, 100997, 101001, + 101005, 101009, 101013, 101017, 101021, 101025, 101029, 101033, 101037, + 101041, 101045, 101049, 101053, 101057, 101061, 101065, 101069, 101073, + 101077, 101081, 101085, 101089, 101093, 101097, 101101, 101105, 101109, + 101113, 101117, 101121, 101125, 101129, 101133, 101137, 101141, 101145, + 101149, 101153, 101157, 101161, 101165, 101169, 101173, 101177, 101181, + 101185, 101189, 101193, 101197, 101201, 101205, 101209, 101213, 101217, + 101221, 101225, 101229, 101233, 101237, 101241, 101245, 101249, 101253, + 101257, 101261, 101265, 101269, 101273, 101277, 101281, 101285, 101289, + 101293, 101297, 101301, 101305, 101309, 101313, 101317, 101321, 101325, + 101329, 101333, 101337, 101341, 101345, 101349, 101353, 101357, 101361, + 101365, 101369, 101373, 101377, 101381, 101385, 101389, 101393, 101397, + 101401, 101405, 101409, 101413, 101417, 101421, 101425, 101429, 101433, + 101437, 101441, 101445, 101449, 101453, 101457, 101461, 101465, 101469, + 101473, 101477, 101481, 101485, 101489, 101493, 101497, 101501, 101505, + 101509, 101513, 101517, 101521, 101525, 101529, 101533, 101537, 101541, + 101545, 101549, 101553, 101557, 101561, 101565, 101569, 101573, 101577, + 101581, 101585, 101589, 101593, 101597, 101601, 101605, 101609, 101613, + 101617, 101621, 101625, 101629, 101633, 101637, 101641, 101645, 101649, + 101653, 101657, 101661, 101665, 101669, 101673, 101677, 101681, 101685, + 101689, 101693, 101697, 101701, 101705, 101709, 101713, 101717, 101721, + 101725, 101729, 101733, 101737, 101741, 101745, 101749, 101753, 101757, + 101761, 101765, 101769, 101773, 101777, 101781, 101785, 101789, 101793, + 101797, 101801, 101805, 101809, 101813, 101817, 101821, 101825, 101829, + 101833, 101837, 101841, 101845, 101849, 101853, 101857, 101861, 101865, + 101869, 101873, 101877, 101881, 101885, 101889, 101893, 101897, 101901, + 101905, 101909, 101913, 101917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101921, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101925, + 101928, 101932, 101936, 101939, 101943, 101947, 101950, 101953, 101957, + 101961, 101964, 101967, 101970, 101973, 101978, 101981, 101985, 101988, + 101991, 101994, 101997, 102000, 102003, 102006, 102009, 102012, 102015, + 102018, 102022, 102026, 102030, 102034, 102039, 102044, 102050, 102056, + 102062, 102067, 102073, 102078, 102083, 102088, 102094, 102100, 102105, + 102110, 102115, 102120, 102126, 102132, 102137, 102142, 102148, 102153, + 102158, 102164, 102170, 102176, 102182, 102186, 102191, 102195, 102200, + 102204, 102209, 102214, 102220, 102226, 102232, 102237, 102243, 102248, + 102253, 102258, 102264, 102270, 102275, 102280, 102285, 102290, 102296, + 102302, 102307, 102312, 102318, 102323, 102328, 102334, 102340, 102346, + 102352, 102357, 102361, 102366, 102368, 102372, 102375, 102378, 102381, + 102384, 102387, 102390, 102393, 102396, 102399, 102402, 102405, 102408, + 102411, 102414, 102417, 102420, 102423, 102426, 102429, 102432, 102435, + 102438, 102441, 102444, 102447, 102450, 102453, 102456, 102459, 102462, + 102465, 102468, 102471, 102474, 102477, 102480, 102483, 102486, 102489, + 102492, 102495, 102498, 102501, 102504, 102507, 102510, 102513, 102516, + 102519, 102522, 102525, 102528, 102531, 102534, 102537, 102540, 102543, + 102546, 102549, 102552, 102555, 102558, 102561, 102564, 102567, 102570, + 102573, 102576, 102579, 102582, 102585, 102588, 102591, 102594, 102597, + 102600, 102603, 102606, 102609, 102612, 102615, 102618, 102621, 102624, + 102627, 102630, 102633, 102636, 102639, 102642, 102645, 102648, 102651, + 102654, 102657, 102660, 102663, 102666, 102669, 102672, 102675, 102678, + 102681, 102684, 102687, 102690, 102693, 102696, 102699, 102702, 102705, + 102708, 102711, 102714, 102717, 102720, 102723, 102726, 102729, 102732, + 102735, 102738, 102741, 102744, 102747, 102750, 102753, 102756, 102759, + 102762, 102765, 102768, 102771, 102774, 102777, 102780, 102783, 102786, + 102789, 102792, 102795, 102798, 102801, 102804, 102807, 102810, 102813, + 102816, 102819, 102822, 102825, 102828, 102831, 102834, 102837, 102840, + 102843, 102846, 102849, 102852, 102855, 102858, 102861, 102864, 102867, + 102870, 102873, 102876, 102879, 102882, 102885, 102888, 102891, 102894, + 102897, 102900, 102903, 102906, 102909, 102912, 102915, 102918, 102921, + 102924, 102927, 102930, 102933, 102936, 102939, 102942, 102945, 102948, + 102951, 102954, 102957, 102960, 102963, 102966, 102969, 102972, 102975, + 102978, 102981, 102984, 102987, 102990, 102993, 102996, 102999, 103002, + 103005, 103008, 103011, 103014, 103017, 103020, 103023, 103026, 103029, + 103032, 103035, 103038, 103041, 103044, 103047, 103050, 103053, 103056, + 103059, 103062, 103065, 103068, 103071, 103074, 103077, 103080, 103083, + 103086, 103089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /* name->code dictionary */ static unsigned int code_hash[] = { - 120470, 4851, 118860, 43024, 0, 66306, 7929, 64584, 9518, 6609, 120203, - 42166, 11319, 1097, 917856, 12064, 41730, 596, 8570, 66517, 12650, 8651, - 41728, 12738, 41835, 12995, 41202, 1373, 0, 11403, 5816, 119067, 64810, - 1000, 120676, 11951, 41140, 1209, 9717, 195073, 118972, 1073, 194579, - 65470, 41138, 8851, 917962, 64500, 12167, 1115, 8874, 9794, 194660, - 917846, 120753, 12237, 3966, 41603, 6587, 9290, 65222, 41600, 9231, - 120183, 2959, 1457, 3535, 195021, 42179, 63860, 41538, 6671, 8618, 42175, - 3404, 64661, 5148, 41737, 1759, 917565, 119974, 65257, 118949, 12290, - 66577, 120019, 9386, 12312, 10151, 8205, 118818, 5131, 917899, 9627, - 65930, 9834, 3055, 9852, 1944, 1248, 10148, 11398, 119990, 64543, 12701, - 119204, 9348, 603, 917851, 65327, 119998, 63781, 65111, 3350, 66576, - 64318, 917828, 8154, 3390, 119985, 41817, 119956, 64603, 66328, 65668, - 120013, 3400, 120015, 6041, 65020, 41899, 66446, 8002, 8562, 4364, 63991, - 4043, 8712, 64134, 7813, 11297, 120759, 10124, 7526, 8601, 6069, 10143, - 4814, 12041, 1418, 10885, 12673, 118961, 65307, 9660, 2764, 13012, 4571, - 5704, 120483, 119946, 12078, 2970, 5457, 5440, 8857, 917898, 118803, - 2843, 5355, 41599, 118883, 119004, 5194, 11657, 119362, 3486, 65324, - 12472, 10123, 65167, 194738, 10717, 8714, 2637, 64629, 8460, 10682, 8476, - 10602, 800, 917613, 66506, 65673, 1019, 64335, 11631, 8465, 12289, 64144, - 762, 13172, 10681, 8488, 5412, 10906, 1353, 194636, 41351, 41823, 5828, - 8206, 120166, 8933, 1601, 9072, 858, 13302, 12458, 120774, 8090, 5418, - 12452, 120081, 9483, 3351, 120602, 64510, 10817, 917939, 41539, 2750, - 11570, 556, 41855, 41246, 65564, 11277, 65892, 2760, 10620, 12195, 7608, - 65809, 64156, 5498, 9998, 41536, 64151, 63876, 9242, 3459, 8997, 11787, - 64153, 64152, 65734, 120184, 4839, 6615, 68115, 1874, 119016, 4975, 4635, - 295, 64124, 64123, 6050, 64898, 917804, 7600, 7590, 63903, 9036, 63901, - 19941, 3971, 66609, 119195, 2952, 64116, 6287, 8031, 2725, 63899, 63898, - 5482, 667, 12332, 1177, 6086, 12322, 11027, 5172, 41617, 64102, 7859, - 1945, 64099, 9815, 10453, 19934, 63882, 7997, 8555, 63878, 63877, 8705, - 64097, 64096, 9571, 528, 9172, 120170, 9828, 41723, 63875, 41578, 11460, - 7432, 63854, 41913, 9056, 195005, 6188, 64593, 6155, 10806, 446, 6494, - 64065, 41318, 63850, 63, 41878, 63846, 2972, 9455, 6639, 64064, 63849, - 63848, 63847, 1176, 120649, 8302, 8276, 63842, 4178, 13208, 13188, 10948, - 10041, 8105, 4333, 9855, 64112, 1105, 4180, 5388, 12094, 65879, 65197, - 7714, 63890, 5443, 7768, 5538, 9987, 194803, 118932, 1678, 917611, 552, - 9560, 64077, 10785, 8996, 4992, 4471, 12080, 9159, 10171, 63861, 10486, - 5540, 63858, 41781, 281, 63863, 12075, 42041, 64646, 5174, 120337, 3589, - 1388, 3123, 43018, 1077, 13272, 8408, 11531, 120387, 43042, 9223, 195029, - 65318, 42773, 119117, 42105, 1116, 13274, 43049, 3663, 43050, 1112, - 119122, 8686, 8881, 5334, 42108, 119937, 13087, 64091, 9322, 194701, - 6509, 64095, 5327, 8111, 19907, 41877, 3478, 7583, 6199, 2903, 195093, - 3001, 1158, 8745, 11329, 4741, 63866, 4737, 4370, 4846, 41616, 4742, - 41335, 4118, 1797, 64600, 805, 65691, 46, 12070, 8760, 298, 65452, 12212, - 120123, 65174, 63836, 32, 5965, 65469, 11495, 12225, 3665, 63837, 64793, - 65330, 41336, 4305, 66360, 8083, 917590, 119333, 63821, 4412, 63819, - 63818, 12244, 5227, 9047, 12283, 4181, 4752, 9029, 4634, 560, 5643, 8226, - 6181, 63812, 13247, 63810, 63790, 3639, 63815, 10122, 63813, 6047, 7937, - 63961, 780, 206, 42008, 4936, 7498, 1098, 19923, 120205, 1093, 9882, - 3016, 4869, 63932, 917554, 63929, 3546, 1605, 65058, 6182, 65566, 13176, - 8400, 11343, 63920, 917550, 5471, 2984, 5314, 9287, 5473, 44, 194667, - 194682, 13169, 5290, 5283, 1695, 63827, 1088, 5961, 1900, 1084, 1085, - 63829, 1083, 6581, 5576, 917793, 64184, 4263, 1092, 4754, 8947, 5252, - 120431, 65253, 64183, 917819, 7908, 11011, 120390, 6579, 194878, 2965, - 119177, 8808, 64710, 1089, 7761, 41641, 42119, 12355, 63889, 940, 5787, - 9992, 63938, 5057, 64679, 12463, 2994, 5054, 41694, 65794, 9664, 41026, - 1437, 9399, 658, 3497, 12920, 7486, 660, 5060, 666, 9022, 5532, 118941, - 5533, 5059, 4727, 6118, 222, 979, 3884, 12459, 7488, 5773, 978, 120163, - 7489, 41619, 10239, 12465, 917761, 118902, 64411, 13271, 1707, 120319, - 12461, 63895, 63949, 63948, 63947, 3376, 6038, 63943, 63942, 63894, - 65323, 194944, 65508, 7776, 64278, 2379, 8703, 63893, 64668, 801, 8125, - 1690, 63919, 63918, 63917, 2369, 65042, 12844, 65800, 119235, 5486, 2334, - 64893, 4463, 5483, 10207, 917608, 2367, 5484, 63909, 264, 2375, 8060, - 6194, 5485, 1844, 64035, 9061, 5534, 10672, 4502, 13178, 253, 118819, - 1823, 8800, 10746, 7912, 0, 10256, 6192, 194946, 42771, 11576, 119616, - 725, 4550, 13257, 120800, 118944, 12892, 917868, 64087, 41775, 8413, - 194805, 120146, 5693, 10397, 120440, 13209, 5074, 5073, 120438, 8983, - 120525, 41132, 66586, 5072, 19964, 6198, 11614, 65731, 196, 13206, 3111, - 64725, 4929, 12445, 0, 119074, 194646, 66606, 6628, 1076, 11294, 1436, - 4934, 64415, 41323, 7543, 195098, 12807, 63907, 63906, 4548, 4329, 6113, - 4979, 3048, 4423, 41320, 194963, 10515, 6218, 8971, 5071, 65583, 3642, - 1430, 5070, 10042, 118835, 3987, 5068, 7619, 3255, 3493, 917952, 8905, - 10735, 120134, 41635, 3378, 4531, 1245, 9105, 66311, 4921, 4481, 3771, - 65544, 2710, 41693, 64084, 41724, 64709, 41682, 41690, 120120, 4922, 325, - 992, 120305, 4925, 1628, 0, 9526, 4920, 65262, 948, 10783, 120208, 4930, - 917570, 4462, 194855, 4933, 5339, 6115, 65359, 4928, 917603, 4457, - 120506, 65290, 42163, 722, 5684, 8678, 12637, 65624, 5689, 8753, 1509, - 120180, 5468, 9511, 194968, 65183, 1672, 6205, 5832, 6310, 5686, 194931, - 64800, 64536, 120713, 41475, 50, 917926, 9871, 120115, 1679, 11982, - 10759, 41883, 66468, 3183, 13259, 4448, 119225, 401, 6427, 64930, 64763, - 5761, 342, 8553, 1151, 8143, 67589, 11983, 64384, 624, 65443, 42014, - 119630, 5078, 12501, 5656, 120168, 5076, 118870, 8812, 119170, 11538, - 685, 9025, 1524, 8003, 66467, 5539, 8087, 12971, 120101, 9894, 1252, - 12925, 194611, 4636, 194615, 118985, 8053, 9732, 917983, 5080, 13121, - 5036, 5035, 118968, 12277, 65904, 194780, 8074, 275, 12158, 194594, 8741, - 4432, 120610, 5033, 120668, 64605, 4836, 3888, 473, 65584, 8502, 120250, - 1873, 1087, 12499, 917808, 63844, 12345, 3601, 1922, 6409, 64965, 65422, - 12502, 120683, 12505, 66321, 66477, 9489, 119140, 3432, 4384, 63964, - 6094, 41530, 8815, 12851, 64753, 119950, 1676, 1154, 3857, 1205, 5030, - 917917, 13100, 12958, 10519, 9622, 194674, 64723, 4421, 10592, 0, 495, - 119007, 10544, 7983, 118882, 10749, 64186, 8494, 11980, 10979, 41710, - 947, 64187, 437, 41709, 10969, 65894, 7613, 9465, 13290, 4795, 4997, - 64306, 8826, 11486, 4999, 120611, 8626, 4590, 4711, 120255, 65037, 2739, - 19942, 8044, 40964, 251, 12686, 7895, 4395, 119927, 119926, 119929, 1779, - 6600, 6601, 41543, 5325, 642, 65830, 8880, 7685, 120071, 66729, 6234, - 13229, 625, 8187, 9990, 1113, 194643, 7915, 1104, 120176, 8179, 10655, - 195043, 9316, 10980, 2489, 1082, 8150, 1359, 194645, 194726, 119304, - 119555, 5042, 5041, 42769, 12084, 8049, 7509, 194806, 6458, 120182, - 119575, 4761, 10506, 4766, 1616, 1273, 120187, 8795, 118876, 194835, - 63957, 9232, 1138, 10483, 12677, 41545, 12881, 3239, 65517, 119558, - 66614, 119111, 42128, 3484, 64545, 11778, 11572, 8503, 5122, 41527, 5040, - 4924, 119014, 119085, 120201, 120748, 5039, 41926, 8303, 8282, 5038, - 65736, 10003, 7427, 65611, 120586, 1686, 120190, 9359, 11467, 3664, - 65921, 8238, 6662, 66472, 119329, 3863, 126, 4835, 68119, 120605, 13245, - 4309, 7744, 63867, 119846, 119023, 13184, 63870, 65431, 569, 8136, - 119010, 711, 1633, 120583, 63869, 4762, 1103, 194560, 12281, 4765, 41331, - 1006, 13040, 4760, 1550, 8201, 10871, 917990, 1102, 5031, 118904, 66671, - 64499, 11546, 13042, 337, 194781, 65781, 65678, 12279, 1111, 65780, - 119900, 4707, 194635, 5008, 7883, 8822, 7880, 4522, 8255, 5512, 13010, - 119232, 8304, 64313, 11611, 5906, 1119, 13039, 13038, 64910, 2455, 64734, - 13008, 41652, 4385, 12492, 11020, 6499, 64775, 119161, 13009, 160, 68110, - 120679, 64262, 5052, 64031, 5821, 6186, 41792, 42770, 5051, 65773, 1429, - 64573, 5050, 302, 388, 12058, 735, 6637, 1079, 3867, 5708, 12726, 119879, - 9117, 5706, 10679, 5513, 6666, 4005, 0, 5510, 10991, 120454, 65458, 2470, - 917581, 13305, 1925, 65760, 194914, 41924, 10092, 5048, 5047, 41532, - 10058, 917559, 119999, 9070, 12049, 3339, 8089, 1106, 639, 65764, 63967, - 3340, 3109, 3653, 4599, 10799, 6674, 10605, 917585, 1476, 648, 1754, - 11001, 3233, 864, 41782, 10164, 8972, 41865, 3530, 9750, 120690, 11024, - 6656, 5192, 4338, 5046, 8512, 63770, 13199, 8967, 1236, 5045, 12012, - 13189, 7986, 5044, 120102, 7440, 13128, 5043, 9553, 1590, 63777, 63776, - 9669, 12341, 8654, 8402, 63779, 1583, 4740, 13260, 3586, 13276, 11444, - 120306, 67634, 119606, 41523, 13296, 517, 12922, 11354, 11700, 41528, - 123, 65454, 12393, 11394, 41997, 10531, 7784, 13194, 1334, 11978, 4479, - 1126, 65586, 120663, 195061, 8520, 3925, 917621, 8069, 4357, 42154, 489, - 120450, 119836, 8848, 6476, 8450, 43044, 11926, 41557, 1145, 63788, 7910, - 63785, 63784, 754, 8711, 6183, 8183, 120741, 8928, 65166, 7952, 10747, - 125, 9235, 64861, 64207, 12689, 66445, 10779, 10990, 3523, 1074, 13258, - 9536, 8477, 11014, 4427, 10517, 63757, 7726, 11325, 19922, 267, 1349, - 10713, 1371, 12149, 195003, 2458, 63753, 6201, 41084, 41074, 4266, 10652, - 6483, 41077, 3402, 9050, 3398, 8140, 42084, 6260, 3391, 41075, 2476, - 41956, 11988, 3898, 10625, 10201, 10988, 11524, 63794, 10367, 12521, - 10431, 13014, 6289, 1068, 6673, 12523, 12945, 12524, 12438, 7950, 10804, - 13233, 12082, 4386, 9053, 12473, 2793, 12475, 704, 195020, 6195, 9530, - 6660, 12232, 194892, 64159, 5681, 12629, 4595, 63760, 792, 65538, 13004, - 9897, 8742, 195013, 64947, 65448, 63744, 12948, 64787, 7588, 63748, 1693, - 63746, 63745, 5055, 9883, 4287, 1090, 4902, 1131, 11665, 194602, 4558, - 1816, 9523, 41712, 168, 194897, 4898, 63857, 6157, 12960, 4901, 1821, - 13191, 12170, 3500, 3139, 791, 9162, 12485, 10306, 119001, 64200, 13006, - 64433, 8354, 10033, 941, 12037, 7557, 65570, 10565, 8234, 64559, 8228, - 8424, 10246, 64193, 12811, 65925, 3946, 42764, 8057, 41990, 673, 194853, - 64357, 917971, 194799, 9547, 288, 8752, 120820, 2448, 10025, 10267, 2918, - 2452, 65300, 41529, 8729, 64726, 2790, 7845, 3793, 194715, 4408, 4122, - 11568, 41535, 8723, 10709, 10087, 119302, 731, 42109, 11548, 2438, 64587, - 65396, 119169, 1175, 13256, 1282, 373, 119172, 5396, 8653, 8557, 7723, 0, - 3330, 120278, 41952, 917566, 5273, 8248, 5269, 3304, 5202, 2404, 5267, - 119357, 1627, 65549, 5277, 12963, 5371, 6189, 4125, 1826, 12133, 65241, - 8260, 1271, 917589, 195006, 64643, 9035, 3864, 12707, 4631, 3879, 118785, - 68125, 4166, 164, 9331, 7567, 7459, 119568, 10212, 5384, 41882, 67647, - 64346, 0, 68159, 917822, 41388, 120518, 12005, 12666, 13175, 13207, 8706, - 5552, 10172, 700, 5929, 5553, 12978, 120384, 5356, 7499, 8563, 41888, - 3180, 917818, 917960, 5554, 971, 12344, 8724, 194608, 6665, 63874, - 120275, 2866, 8517, 11455, 13190, 64632, 120227, 5555, 10045, 12882, - 13275, 120672, 41522, 11480, 9143, 6668, 41525, 120539, 195035, 656, - 118808, 43034, 4577, 12229, 8715, 68133, 194613, 120261, 4269, 64813, - 119163, 41609, 10476, 950, 118980, 3932, 41450, 68140, 66683, 68130, - 120014, 11974, 118884, 369, 119096, 41784, 66459, 5097, 4935, 9848, - 64216, 10293, 4796, 10317, 3651, 10127, 120603, 10269, 5102, 5101, 66628, - 9064, 8138, 120455, 404, 5100, 1439, 12093, 1247, 8092, 119330, 5099, - 1831, 1441, 4793, 3063, 650, 12292, 746, 120165, 120769, 7461, 12018, - 9031, 12182, 10115, 9078, 8545, 4422, 4708, 3799, 3268, 64556, 9118, - 119127, 2676, 7750, 4374, 64398, 6190, 1364, 64589, 8038, 68121, 9857, - 120638, 9858, 195033, 64170, 12129, 13174, 8481, 12412, 6202, 64380, - 10920, 10872, 2365, 7841, 120059, 5108, 5107, 11010, 13210, 6176, 65561, - 5541, 41785, 41171, 11291, 5284, 4372, 207, 194904, 4275, 119930, 854, - 68147, 120189, 12965, 384, 5103, 10404, 10340, 10702, 1556, 488, 13236, - 12937, 10017, 9733, 13187, 10014, 7844, 41373, 13198, 5203, 120517, - 13232, 5106, 349, 4863, 41371, 10965, 41367, 5105, 11721, 12861, 4398, - 5104, 5672, 304, 1096, 120557, 0, 932, 12441, 6567, 238, 65681, 4318, - 10452, 19905, 8032, 13243, 13237, 12719, 67640, 66570, 64814, 64884, - 119872, 10670, 8597, 1178, 64017, 9864, 13195, 8803, 309, 6622, 8151, - 10858, 64961, 7722, 12553, 10459, 12568, 12066, 12549, 66590, 12570, - 9712, 41417, 41496, 194943, 9805, 4965, 13150, 10538, 19944, 41401, - 120252, 120164, 6191, 6261, 119342, 119341, 11965, 1957, 10420, 982, - 2756, 9370, 2720, 12357, 41455, 2925, 118817, 13056, 3222, 13212, 10116, - 41644, 10105, 10378, 41581, 10834, 118793, 64407, 5242, 41963, 64476, - 1694, 8216, 10814, 67598, 7781, 6306, 64568, 917916, 120738, 11793, - 42057, 7594, 64598, 120325, 64799, 3475, 64206, 2479, 9709, 3632, 120322, - 10698, 65616, 3648, 3907, 10297, 67639, 3636, 19928, 2979, 8837, 8286, - 1843, 3936, 119052, 11699, 41347, 65119, 13235, 3640, 41248, 120579, - 4379, 13239, 12692, 7969, 12927, 66353, 194951, 12703, 120509, 41846, - 2529, 734, 10808, 65146, 42083, 9872, 957, 42055, 1846, 66367, 12181, - 9634, 120310, 9988, 12991, 1670, 5740, 119597, 10072, 5379, 120318, - 41163, 41157, 785, 8236, 194812, 9027, 63897, 13267, 64383, 64688, 925, - 41955, 120541, 41773, 41071, 9586, 120312, 41984, 9217, 6151, 12110, - 120689, 65572, 64580, 4016, 13265, 13264, 381, 12386, 6100, 42077, - 120768, 5808, 5184, 8200, 12967, 10810, 5612, 4583, 19943, 5860, 67633, - 64575, 194842, 812, 3615, 65284, 5178, 194929, 119015, 9825, 5188, 9698, - 7814, 120063, 10692, 1166, 64429, 41921, 924, 9756, 12359, 119258, - 194843, 2442, 10703, 120696, 67632, 8012, 5674, 12353, 119561, 12361, - 5677, 67626, 66657, 40972, 12453, 41920, 5673, 12751, 5676, 8542, 12694, - 118978, 2468, 1294, 41294, 3336, 3883, 64388, 1727, 194680, 64054, 3605, - 119632, 195015, 12034, 8718, 3550, 736, 7806, 4505, 2715, 806, 5826, - 41884, 5813, 64279, 65391, 5841, 5837, 64731, 12702, 3105, 2405, 5838, - 5796, 120604, 65259, 5793, 5735, 5866, 5797, 1432, 5865, 12143, 7956, - 598, 66448, 41886, 2480, 120152, 19952, 9037, 5671, 5537, 12749, 67601, - 10932, 41359, 1211, 847, 65690, 9529, 11799, 12318, 120766, 43026, 5645, - 10622, 41391, 194967, 64378, 6566, 917913, 5650, 11358, 119102, 13110, - 194834, 9624, 194928, 8284, 65896, 2748, 1554, 194733, 4035, 6492, 66504, - 4265, 2929, 3977, 65344, 12051, 836, 5698, 2488, 194634, 4582, 66514, - 5644, 10292, 12926, 8046, 7528, 8372, 11707, 65116, 119206, 11439, 13201, - 1374, 64878, 12742, 41013, 10568, 41374, 4030, 2869, 120776, 41015, - 65897, 2785, 400, 12597, 42051, 120540, 64477, 6661, 5659, 9884, 4759, - 118906, 390, 10266, 41349, 1170, 3473, 7718, 118962, 1609, 902, 917855, - 120062, 66352, 11661, 8122, 5712, 66308, 8004, 1887, 9540, 10278, 2554, - 5158, 5714, 41136, 194970, 64351, 807, 66652, 120793, 64677, 976, 5511, - 6146, 65518, 771, 10954, 41356, 9673, 11412, 11026, 41143, 8676, 7904, - 5579, 953, 451, 119560, 5578, 12635, 11491, 9724, 194697, 118881, 9524, - 7490, 118789, 1440, 3379, 10310, 7487, 12561, 471, 7484, 7482, 3795, - 7480, 7479, 7478, 7477, 6501, 7475, 64900, 7473, 7472, 2474, 7470, 6546, - 93, 10615, 10213, 8128, 12551, 10049, 8171, 3544, 194628, 6017, 65311, - 383, 120216, 13306, 10533, 7870, 63884, 5187, 119991, 1456, 120217, - 42164, 64217, 194702, 5232, 917994, 19961, 2472, 41005, 120699, 8710, - 6019, 4256, 119959, 4980, 8860, 9640, 10028, 12845, 66607, 13182, 65121, - 120685, 120308, 10631, 65126, 7972, 118928, 8066, 119623, 7900, 8316, - 11309, 11273, 119040, 64211, 120309, 64212, 10347, 445, 119029, 195074, - 12931, 64927, 8330, 65783, 66597, 64213, 64366, 64369, 8814, 3902, 64607, - 1770, 194723, 12836, 64208, 64552, 65821, 4584, 9684, 120714, 917944, - 10866, 65792, 1118, 7464, 194989, 8964, 1081, 7436, 64565, 8162, 9342, - 5996, 119245, 4903, 64332, 41386, 5162, 41007, 1330, 64486, 40995, 12209, - 12047, 41384, 194789, 195067, 1848, 4334, 65352, 9880, 64066, 10674, - 5522, 195014, 61, 120157, 195065, 3633, 41980, 65162, 41234, 12089, - 65871, 9771, 66685, 13251, 41959, 64749, 6262, 2784, 195040, 9334, 8126, - 66483, 64967, 7975, 441, 194591, 917599, 11608, 4884, 40999, 120269, - 120334, 10495, 6313, 10890, 119354, 65834, 8324, 7855, 2345, 67599, 463, - 64737, 194821, 119607, 3117, 5460, 119356, 1193, 10056, 1148, 12396, - 13252, 7829, 42173, 118994, 7743, 917981, 13248, 5499, 63763, 118960, - 9034, 6039, 120544, 5663, 119182, 41018, 65683, 10338, 2482, 1471, - 120086, 120077, 66370, 12378, 41966, 41970, 3084, 12374, 10903, 6638, - 10422, 911, 2460, 120499, 11944, 12376, 41032, 40996, 120614, 12380, - 5520, 64473, 10869, 5870, 64670, 13310, 2603, 12326, 539, 10826, 65105, - 917932, 3853, 11949, 64901, 120260, 64883, 10722, 41810, 8659, 120090, - 12474, 66721, 5857, 65342, 2478, 119120, 4162, 7942, 4260, 12953, 42028, - 120089, 12470, 64941, 11798, 2742, 12476, 1891, 10946, 9101, 5000, 66647, - 12302, 3018, 12942, 5748, 194584, 7771, 6161, 917934, 8796, 0, 6412, - 118986, 8519, 13146, 41973, 12906, 9422, 10333, 2882, 4366, 119123, - 12843, 4520, 917810, 65626, 10648, 118898, 4014, 12842, 194724, 12015, - 13117, 8275, 3893, 66362, 5810, 12210, 195071, 42147, 11536, 13292, - 65685, 12938, 10427, 9154, 3844, 63934, 9755, 1110, 6612, 10892, 8231, - 10775, 6473, 41968, 783, 10219, 3591, 41969, 917997, 2453, 8518, 3620, - 11466, 12443, 4556, 10349, 10413, 194569, 41159, 3202, 8599, 10510, 4382, - 66482, 195002, 10842, 687, 9177, 8902, 63950, 1840, 41751, 12400, 120177, - 4883, 285, 4723, 41917, 9788, 4459, 64158, 1634, 41958, 9155, 240, 9786, - 65082, 41919, 8579, 9743, 7981, 13134, 118878, 4508, 64178, 41999, 11328, - 119817, 65589, 63887, 3081, 11463, 120080, 119051, 119353, 10445, 41720, - 194662, 120229, 2614, 9024, 64620, 1729, 119840, 64289, 65221, 63883, - 65466, 64852, 64509, 41447, 63916, 64855, 41203, 5001, 41879, 11355, - 4121, 5003, 884, 41214, 63879, 4943, 5150, 7500, 5278, 7773, 643, 3086, - 118912, 64652, 120068, 58, 194621, 6167, 66656, 63872, 6594, 66366, - 11295, 41495, 3624, 43036, 118901, 64655, 2721, 9616, 63988, 19929, - 11296, 10500, 10440, 9611, 4264, 119303, 194657, 7738, 41857, 11446, - 12638, 64522, 3435, 3094, 12916, 9754, 66314, 4437, 41292, 8899, 12748, - 42058, 9517, 11518, 917889, 65360, 120700, 119047, 63956, 4306, 41380, - 11995, 63960, 9591, 8323, 10217, 67602, 11469, 120578, 12456, 2723, - 120061, 5088, 5086, 917783, 8524, 7752, 11397, 2880, 0, 194669, 2872, - 1386, 65034, 3498, 4378, 65039, 4270, 12392, 65036, 7853, 6633, 12101, - 5822, 5230, 194573, 710, 917790, 11663, 1666, 8161, 371, 12013, 63891, - 42092, 119103, 415, 63851, 63892, 11708, 42096, 5183, 1877, 7538, 7924, - 2927, 4324, 6608, 4472, 1244, 331, 194858, 12683, 10662, 64678, 4756, - 63831, 65852, 10730, 7691, 10331, 65320, 41964, 6238, 8938, 8628, 6043, - 118801, 64895, 1604, 9565, 10539, 120814, 41220, 13032, 120519, 120193, - 10032, 8750, 12373, 63828, 11992, 1351, 194868, 8698, 12190, 3622, 1930, - 65237, 9621, 10463, 63981, 4967, 13031, 1966, 2330, 195099, 3657, 120498, - 65202, 6000, 4347, 4416, 42098, 11009, 10694, 8099, 402, 41916, 13147, - 41912, 42100, 12217, 9695, 1897, 7562, 3515, 5170, 11805, 11796, 676, - 6259, 41742, 65558, 41870, 65553, 3536, 65093, 9752, 63902, 6162, 10532, - 66490, 10113, 41829, 65886, 5159, 12422, 41832, 439, 66640, 119611, - 11280, 12481, 2325, 40970, 41830, 120647, 917799, 5145, 12486, 65018, - 66516, 5409, 8976, 120051, 12336, 4135, 9685, 341, 2727, 4129, 3539, - 66616, 11530, 41736, 7913, 5405, 63859, 4131, 41267, 64721, 63865, 4133, - 63864, 210, 4600, 8082, 3254, 4137, 119205, 119853, 119062, 194577, - 120534, 4591, 65077, 64671, 194671, 3355, 9508, 3393, 561, 5723, 195, - 64261, 3377, 12497, 41269, 917545, 13135, 917993, 8368, 119224, 41499, - 917798, 11435, 917920, 41498, 120628, 1379, 246, 12603, 9680, 3788, 2924, - 42168, 12812, 8728, 64906, 119213, 8917, 120645, 301, 64765, 3969, 64964, - 9575, 64562, 40966, 9652, 64919, 42064, 42086, 120542, 194728, 8491, - 194962, 41876, 63772, 3182, 327, 120323, 9042, 118827, 917776, 42169, - 4755, 194684, 64660, 11443, 12431, 8668, 12434, 608, 600, 5999, 1219, - 3934, 9494, 11483, 917919, 1726, 1015, 64686, 8212, 11395, 64202, 13160, - 7759, 65363, 485, 43037, 65291, 8811, 927, 42102, 194979, 12436, 9351, - 7778, 64379, 7496, 65335, 7491, 1208, 7495, 64757, 9337, 64362, 917778, - 11348, 12235, 9021, 194949, 917830, 120066, 19914, 3742, 8758, 9648, - 64617, 63834, 9150, 63835, 1117, 13037, 2594, 63809, 10691, 12052, 6550, - 10469, 65212, 11265, 2546, 119216, 213, 65309, 10554, 3972, 917972, - 194678, 64194, 6554, 12416, 11914, 5452, 8230, 64197, 41951, 12418, - 42049, 3882, 8532, 2713, 1573, 9650, 42136, 4596, 66339, 1406, 120041, - 40990, 194593, 12414, 8287, 4143, 120378, 10489, 1143, 4141, 9682, 12415, - 1508, 42763, 8779, 10569, 8725, 120783, 65045, 11724, 119064, 4145, - 64872, 65751, 66613, 119576, 8027, 41505, 9171, 9550, 11400, 12518, - 65178, 65397, 6528, 10740, 65753, 64816, 10998, 66333, 12955, 10596, - 2888, 119572, 65033, 7715, 3881, 41487, 12118, 67622, 2878, 5390, 64167, - 3009, 41476, 41489, 63765, 3007, 1448, 2975, 10429, 3889, 8521, 5083, - 5082, 7503, 5235, 803, 194590, 3014, 5081, 8986, 11002, 10632, 11934, - 11452, 1332, 64802, 3929, 4597, 65532, 64767, 1791, 5191, 9288, 9657, - 2892, 10577, 6031, 555, 64173, 0, 194927, 12367, 42170, 11540, 63930, - 629, 1924, 119880, 11270, 64162, 5858, 8462, 8005, 12365, 1784, 1361, - 118939, 12369, 7905, 67644, 5077, 194668, 10880, 63927, 5075, 120065, - 9371, 65075, 41193, 11007, 1625, 10997, 917907, 1342, 66684, 64171, 3434, - 4843, 4506, 195060, 5266, 120521, 5272, 4482, 4507, 9578, 63923, 66319, - 7979, 64381, 9831, 64417, 65529, 461, 7984, 41972, 4504, 444, 42145, - 9127, 5276, 43021, 118922, 120179, 119638, 11349, 12848, 5177, 41324, - 12055, 8722, 120805, 1197, 65512, 1149, 4114, 409, 4383, 8900, 8948, - 7684, 3492, 721, 10182, 9108, 119005, 195041, 11954, 119191, 12993, - 40963, 3099, 917979, 65088, 41087, 119834, 12587, 66643, 120374, 12036, - 194736, 65123, 41576, 8152, 120721, 64428, 12227, 8578, 5995, 7573, - 41575, 2922, 63946, 63944, 11493, 194883, 2670, 4167, 194873, 11723, - 120025, 65173, 68154, 13023, 938, 917954, 195044, 11737, 9721, 118937, - 41017, 9606, 8504, 4024, 41063, 11411, 12334, 65231, 4153, 11911, 10793, - 5250, 12407, 3395, 4404, 6056, 12401, 11490, 5775, 42005, 41607, 68183, - 41091, 12205, 1344, 8870, 194744, 4940, 4735, 7683, 1167, 12822, 4983, - 120554, 861, 64907, 120045, 120458, 65149, 63896, 120651, 12039, 10559, - 11956, 119841, 118892, 9472, 4282, 6631, 120188, 12816, 9596, 7618, - 12710, 64147, 11579, 4101, 0, 64704, 5992, 7616, 65828, 64422, 1004, - 9632, 120185, 853, 0, 12627, 10953, 194681, 5016, 65619, 120441, 11300, - 9491, 9686, 5890, 917914, 7558, 12712, 195077, 65627, 10718, 13154, 3461, - 9139, 64756, 194990, 119151, 65628, 0, 13227, 12585, 6669, 119152, 12177, - 41708, 12860, 41098, 10015, 10838, 4900, 10352, 120742, 10061, 5903, - 4119, 5140, 209, 64002, 11520, 9702, 11702, 8277, 9245, 13048, 4927, - 4138, 41093, 65286, 64412, 2410, 993, 41025, 13054, 12394, 120020, - 917579, 68162, 12685, 64938, 65475, 10781, 41230, 64299, 5010, 1680, - 9107, 118809, 10659, 3600, 10968, 120027, 1336, 41518, 194796, 5896, - 119838, 5993, 2819, 12950, 12706, 12966, 1893, 120462, 63915, 917768, - 8184, 272, 1363, 8793, 8411, 63908, 41502, 3077, 983, 68118, 1512, - 119941, 1190, 4109, 1335, 841, 5888, 41358, 9836, 9544, 120021, 41481, - 8313, 7832, 65515, 3090, 2409, 817, 1664, 1850, 66690, 3079, 4731, 10118, - 66629, 64541, 12033, 1255, 11689, 9247, 64350, 66633, 12389, 66610, - 195078, 41996, 11526, 63985, 5864, 1147, 11690, 5835, 1551, 66625, 5480, - 7858, 11653, 4116, 11688, 66634, 1094, 194, 12384, 118987, 8180, 41686, - 12313, 41531, 63904, 13273, 6114, 10898, 195082, 64578, 8247, 507, 91, - 7545, 10695, 10952, 7534, 10896, 10036, 7857, 6067, 774, 65915, 2744, - 119815, 5994, 12539, 41420, 41601, 8359, 65264, 6028, 66511, 13167, - 120277, 7719, 119875, 2486, 7893, 41059, 162, 5436, 917583, 119809, 9687, - 64956, 6304, 65457, 6051, 120495, 5262, 5904, 66658, 12681, 194710, - 194616, 12406, 12219, 3652, 10537, 917946, 10492, 64550, 6549, 279, - 195030, 119978, 64619, 12403, 1489, 120771, 4132, 4899, 3899, 1007, - 42124, 4976, 2343, 4103, 19946, 120806, 10750, 1345, 120355, 120801, - 12859, 8956, 4098, 65267, 5861, 65559, 11999, 12151, 64804, 194856, - 12645, 5146, 11320, 64730, 64174, 41094, 492, 8685, 12974, 41060, 67613, - 41551, 5147, 2582, 11470, 64538, 7444, 1928, 118998, 9594, 5991, 10862, - 67609, 2527, 194809, 197, 2799, 8241, 64181, 65348, 65874, 194840, 64179, - 767, 4127, 120464, 10138, 119808, 0, 8897, 63911, 41553, 8357, 4124, - 1799, 65371, 42148, 194663, 12954, 120231, 65340, 1123, 963, 2434, 10120, - 12405, 41339, 2493, 398, 392, 9723, 6407, 119011, 7945, 64935, 4402, - 7570, 12402, 65926, 41392, 8414, 12408, 41265, 65713, 406, 120326, 9164, - 12411, 0, 4560, 6623, 4961, 64494, 1575, 64682, 5438, 165, 9993, 41467, - 63953, 8064, 9093, 9599, 9147, 118831, 63958, 4987, 9148, 2399, 4096, 53, - 10944, 12368, 65435, 119192, 8178, 64149, 3367, 12910, 10884, 727, 65272, - 119238, 5805, 1947, 11527, 194589, 42176, 12370, 11655, 1705, 5411, 8898, - 118810, 12372, 120642, 195023, 8017, 65287, 8813, 12366, 10963, 6066, - 1329, 4909, 3052, 9220, 66464, 4904, 66666, 10803, 1365, 9253, 42757, - 41264, 7462, 120712, 119350, 119814, 1499, 66727, 8055, 120803, 8740, - 5398, 63962, 13120, 8924, 917764, 5988, 3660, 12017, 11781, 9476, 8788, - 1357, 42113, 65743, 3629, 8774, 13005, 119082, 3628, 120172, 64394, 1933, - 3469, 1567, 42116, 11969, 64809, 2928, 4905, 2487, 851, 3121, 1804, 3311, - 67615, 9114, 194880, 12083, 9315, 4822, 4906, 3852, 2847, 6675, 3236, - 11317, 1251, 7777, 41852, 7951, 1198, 9132, 120767, 12274, 510, 10259, - 9865, 65686, 4561, 6018, 1398, 917869, 12276, 66487, 19931, 119061, - 11406, 8167, 12127, 41932, 840, 120300, 2443, 10918, 10410, 120338, 1001, - 9241, 1927, 333, 41930, 120272, 8144, 8034, 10680, 119598, 66663, 64199, - 12867, 64198, 6678, 7769, 7519, 12621, 65150, 8904, 518, 4764, 65165, - 41168, 13204, 4387, 857, 10530, 65369, 12736, 120724, 41044, 66458, - 11543, 9358, 67594, 42078, 5136, 1968, 19937, 66605, 1337, 10581, 1629, - 4533, 796, 66494, 6490, 194921, 12038, 119338, 12664, 195037, 65461, - 9798, 6120, 478, 1948, 68128, 10962, 952, 6016, 195055, 195088, 9512, - 4276, 1206, 3619, 41638, 13263, 3843, 8142, 8853, 3361, 41795, 490, - 10715, 3436, 65011, 63841, 12817, 9847, 6676, 3930, 12854, 13240, 6154, - 9551, 65354, 65346, 784, 65357, 334, 64797, 1453, 7541, 8940, 120329, - 8500, 10428, 10364, 64715, 778, 4317, 10004, 7989, 64676, 3227, 119583, - 67606, 120514, 120684, 10855, 13102, 41702, 10309, 6672, 10277, 194958, - 66691, 41624, 5415, 9613, 9001, 4526, 3462, 65215, 64520, 41020, 6664, - 66701, 42056, 9759, 64957, 3963, 120304, 8114, 1469, 65244, 65381, 41744, - 4988, 66453, 118956, 9598, 904, 352, 194760, 1451, 1356, 8453, 4134, - 120377, 917802, 1619, 9703, 41745, 3955, 8575, 119180, 1201, 64732, - 12846, 917980, 41860, 11919, 64962, 41550, 5289, 13144, 8511, 9460, 823, - 9675, 12305, 5940, 226, 2649, 12387, 1253, 13183, 65766, 500, 64521, - 9081, 1658, 11936, 64735, 65761, 8702, 11606, 64784, 9785, 42123, 64783, - 194619, 917779, 5152, 8935, 7533, 119101, 5304, 119820, 616, 4323, 64666, - 4684, 65103, 120613, 65735, 65339, 10560, 6048, 4763, 4112, 118935, - 10870, 5260, 5328, 65129, 326, 9681, 4475, 917933, 10771, 2876, 194915, - 119935, 6035, 41398, 41192, 9802, 13261, 120532, 453, 41396, 917564, - 6481, 12140, 9572, 41937, 10392, 10328, 40998, 7704, 66432, 120317, 9800, - 4123, 917900, 42103, 41000, 7854, 119239, 6487, 8334, 64061, 10344, 9808, - 11271, 5394, 4126, 12800, 9521, 9589, 41200, 41306, 4425, 119856, 10464, - 63802, 64769, 1288, 64514, 11528, 63984, 12173, 679, 64012, 41914, 5850, - 758, 7536, 10796, 4474, 10742, 10693, 64006, 1587, 64005, 10541, 64581, - 65490, 1369, 12134, 119050, 7927, 64009, 1139, 64030, 64026, 64029, 8970, - 64948, 4430, 195016, 10774, 4514, 66434, 12421, 8194, 194765, 1852, 3057, - 65483, 8893, 64032, 12542, 12973, 65341, 120497, 41206, 7925, 12423, - 10475, 917572, 3496, 1352, 10933, 7707, 9102, 627, 42034, 6158, 8327, - 64497, 65605, 6040, 917592, 10129, 64863, 9336, 11696, 5730, 1018, 7798, - 64474, 64259, 1682, 64290, 7820, 42756, 12951, 119873, 7746, 1492, 0, - 8288, 12563, 10728, 5127, 11285, 65509, 5495, 4273, 11577, 9644, 10849, - 1833, 2999, 120612, 64373, 120471, 185, 65085, 6023, 169, 5497, 7535, - 8085, 917909, 65717, 9749, 8224, 6131, 1949, 4117, 7847, 120489, 119982, - 5321, 66355, 65765, 9313, 2589, 64408, 1689, 7802, 4683, 120167, 12303, - 64667, 66704, 1184, 0, 815, 8273, 120807, 6049, 120530, 4027, 834, - 119833, 1803, 64683, 1503, 8995, 120653, 917924, 5731, 1381, 2387, 64511, - 12430, 8289, 10981, 12654, 2881, 65514, 917600, 9601, 332, 9668, 9766, - 5142, 2407, 65618, 66601, 6036, 64881, 4026, 8645, 64789, 2887, 6489, - 3526, 6298, 119136, 64475, 4833, 1834, 65621, 8572, 6021, 10940, 65249, - 119848, 8662, 65739, 119604, 2652, 7463, 11539, 10784, 120720, 64391, - 166, 19913, 8635, 9706, 10623, 408, 1828, 195084, 13298, 194889, 7426, - 8168, 6280, 12324, 7607, 10639, 66713, 4832, 64557, 41643, 6279, 12508, - 8713, 10690, 9161, 41645, 1620, 6645, 646, 66726, 66711, 42129, 609, - 11555, 3472, 8697, 41086, 119594, 4343, 6212, 917557, 11413, 5809, 1950, - 239, 119021, 637, 65785, 41592, 43029, 917539, 120285, 194837, 3247, - 120754, 12985, 12696, 65213, 66668, 65260, 12929, 10983, 712, 120291, - 119337, 41567, 65592, 194969, 120171, 119852, 120178, 119137, 1506, 8285, - 65617, 4509, 65608, 12651, 12216, 64628, 40988, 11961, 6204, 41727, 7494, - 64341, 2396, 41703, 41493, 13062, 41757, 355, 9719, 3886, 9814, 63912, - 68123, 65444, 996, 42075, 64880, 43045, 65199, 194810, 8655, 8222, - 194839, 7939, 10342, 64720, 3178, 68184, 120552, 5907, 19932, 3976, - 917849, 42161, 9471, 5833, 11966, 12555, 5969, 5699, 12562, 12550, 9488, - 40982, 8489, 0, 1488, 194829, 13149, 119997, 9799, 5265, 66612, 1563, - 11487, 9619, 12464, 119210, 120758, 118952, 41704, 5803, 7797, 6070, - 10006, 41181, 465, 6082, 13078, 9692, 194745, 12567, 8116, 795, 66480, - 7843, 12462, 3607, 10831, 10046, 9612, 42153, 8218, 9485, 66714, 120301, - 12468, 8607, 1008, 65322, 3306, 66485, 65138, 6057, 508, 120264, 1766, - 11282, 11996, 1820, 4547, 0, 638, 6083, 120160, 12308, 0, 2305, 917595, - 64777, 9470, 4345, 6659, 65236, 4818, 6085, 9899, 65207, 3915, 41634, - 5382, 41639, 119591, 6235, 119060, 4028, 1787, 19920, 41979, 120786, - 3249, 1768, 1130, 12328, 501, 42016, 10601, 43023, 6503, 65294, 7742, - 63992, 13280, 41922, 6505, 118925, 5310, 9475, 66716, 120810, 6500, 5526, - 65049, 11408, 65889, 8568, 119818, 11449, 9678, 5403, 120311, 9869, - 63780, 1771, 12460, 8936, 120631, 118832, 64903, 10760, 119115, 9158, - 66567, 120259, 119025, 120582, 5410, 5783, 10365, 8403, 5400, 11594, - 120295, 5027, 9326, 10491, 119348, 4831, 120698, 5028, 5587, 66492, 7540, - 5026, 4923, 65086, 8981, 12382, 8931, 120755, 1415, 8866, 917785, 65513, - 10461, 12103, 119602, 8642, 5029, 42766, 1580, 3598, 120067, 41070, - 10053, 120819, 6663, 119325, 6026, 41515, 118796, 64592, 1716, 1461, 910, - 11907, 620, 41001, 3658, 41541, 119980, 66728, 7617, 5024, 12888, 41003, - 68180, 5025, 11529, 41514, 64561, 5703, 119124, 41517, 41504, 41519, - 66473, 9726, 119160, 5849, 623, 781, 670, 10660, 5769, 613, 6105, 11584, - 477, 1268, 65275, 8906, 592, 1578, 2636, 64404, 10815, 11619, 8225, - 119578, 654, 6451, 653, 652, 7721, 647, 7869, 633, 120224, 42152, 64361, - 12480, 6119, 829, 39, 12487, 19950, 120399, 65865, 6616, 65672, 12489, - 9667, 391, 5550, 194870, 482, 917886, 1203, 120345, 1813, 64544, 41311, - 9503, 120623, 2877, 120249, 64135, 1675, 4939, 5315, 194801, 64128, - 10070, 10595, 13293, 4576, 42094, 12808, 119569, 4277, 40997, 4039, - 120429, 64472, 368, 13036, 3960, 65460, 8406, 68176, 120121, 66679, 3958, - 12132, 1849, 194564, 270, 13086, 10714, 194617, 11929, 11959, 917824, - 64657, 41608, 3618, 65009, 9069, 6273, 5156, 364, 9595, 929, 67616, - 42035, 707, 1555, 41725, 8691, 66435, 224, 41662, 68164, 9332, 4966, - 194977, 917538, 4578, 64513, 3841, 194647, 65922, 10732, 13074, 850, - 4972, 9356, 12820, 2909, 63968, 1286, 10166, 8682, 11544, 10203, 9608, - 12815, 7730, 11962, 41540, 12507, 1196, 0, 66471, 777, 10020, 4375, - 41372, 6641, 525, 12198, 120443, 8763, 120526, 41628, 533, 11931, 8658, - 120743, 41520, 2705, 65010, 13126, 9838, 4377, 8559, 7765, 119925, 8280, - 13193, 2701, 11666, 8679, 5767, 1576, 7735, 9809, 8353, 11513, 41960, - 42007, 66452, 10889, 1748, 7757, 65265, 120226, 12803, 66493, 2718, 4168, - 3061, 13308, 63764, 6596, 1179, 4440, 194759, 7694, 363, 8896, 63768, - 3485, 12987, 41586, 64908, 120332, 41149, 1591, 6593, 64625, 10192, - 64143, 66455, 13053, 10013, 5630, 194622, 120686, 9492, 10390, 13083, - 12833, 5543, 41327, 1640, 12495, 630, 120091, 3138, 10996, 41127, 1043, - 120674, 12498, 10090, 917568, 917609, 313, 65543, 8615, 119144, 12540, - 493, 41426, 5750, 1717, 9417, 479, 9405, 11268, 0, 9398, 9403, 3520, - 8426, 12490, 63855, 65185, 12586, 12493, 5815, 10707, 1002, 12491, - 194884, 12934, 631, 66474, 64922, 13161, 41303, 917957, 10546, 67635, - 65711, 11600, 65786, 2797, 13107, 65599, 306, 714, 3058, 8507, 65576, - 66700, 119961, 120731, 120694, 11607, 65591, 64711, 68166, 7909, 9157, - 4569, 63758, 63805, 13297, 7603, 40986, 180, 244, 11542, 12898, 12494, - 12674, 8244, 362, 65776, 64145, 8037, 194830, 11535, 120680, 4882, 5185, - 64866, 5521, 4885, 5519, 42155, 10302, 4880, 10104, 1027, 1360, 248, - 12424, 10523, 1446, 4319, 41646, 991, 5189, 63754, 10494, 65777, 1722, - 1870, 120151, 470, 9427, 65271, 5523, 194716, 64527, 4579, 120446, 9549, - 12511, 10549, 12514, 9661, 66486, 12000, 9602, 8623, 65172, 120042, - 119855, 13095, 12512, 11615, 13041, 6150, 9846, 659, 6098, 0, 1174, - 10334, 194592, 8311, 12510, 63856, 12107, 120341, 12513, 9284, 12471, - 120733, 12330, 917571, 63853, 119854, 2323, 65288, 2319, 6293, 12477, - 118807, 2311, 194661, 4415, 237, 6281, 917902, 0, 9010, 2309, 7897, 8173, - 64894, 12469, 7483, 118979, 1736, 10609, 3894, 12228, 9397, 10987, 3383, - 9396, 9393, 693, 9130, 314, 9389, 6209, 9387, 9388, 4932, 3842, 9383, - 5332, 12204, 9285, 10436, 8185, 41808, 1751, 273, 8165, 13166, 2313, - 65449, 7948, 9236, 8544, 4528, 2584, 6301, 41880, 6133, 10484, 9463, - 917823, 9339, 7943, 3757, 3147, 195092, 12420, 10421, 120488, 2310, - 41112, 2326, 9382, 2565, 9380, 7596, 7921, 9375, 9376, 1683, 9374, 2567, - 8596, 12444, 4044, 41274, 12527, 8210, 120756, 1023, 474, 12331, 0, - 42032, 8744, 726, 9839, 120313, 5005, 120383, 41276, 42030, 5007, 12522, - 9835, 65442, 4951, 634, 12213, 10895, 65492, 274, 120236, 1858, 4744, - 4746, 917852, 9548, 65899, 403, 120117, 12503, 9610, 8068, 8197, 63996, - 699, 42000, 41665, 1819, 10496, 13007, 42182, 7581, 13262, 194649, 41667, - 12506, 10840, 1923, 13084, 12500, 64507, 12509, 64393, 10507, 120692, - 10589, 6464, 41047, 2996, 1937, 41931, 12990, 8084, 4047, 3608, 8281, - 65016, 1107, 68101, 9076, 8862, 120636, 293, 9369, 64766, 64791, 7803, - 13222, 65416, 10579, 8560, 8546, 11553, 12678, 4803, 9043, 1739, 1941, - 498, 64471, 1713, 119091, 12529, 8042, 11407, 2344, 12528, 6297, 2414, - 64139, 66710, 3231, 11716, 6422, 9902, 65156, 12530, 2537, 969, 41429, - 12658, 13034, 6165, 13035, 917620, 6632, 4719, 469, 119240, 4363, 5211, - 8914, 119299, 119334, 1772, 1435, 64876, 2969, 6046, 64812, 6208, 64101, - 5746, 12215, 119332, 4931, 1951, 8612, 119363, 9607, 917904, 338, 118797, - 5061, 10675, 41106, 10767, 1491, 8115, 65459, 11941, 10139, 8227, 8270, - 1218, 12126, 41993, 12168, 6642, 63808, 12889, 1622, 41108, 4486, 41995, - 1075, 1958, 10925, 41992, 41506, 118975, 10249, 64122, 10257, 41569, - 10273, 120327, 7692, 12669, 8008, 120320, 330, 8566, 65083, 9046, 41117, - 41126, 12532, 120648, 64131, 3508, 7794, 119943, 64129, 9645, 64662, - 10770, 3669, 3968, 64115, 66644, 13028, 120302, 12537, 194802, 64120, - 65720, 12536, 2350, 13029, 6583, 120072, 12116, 13030, 66678, 4527, 1588, - 12538, 8409, 65718, 10683, 41670, 787, 9502, 4948, 12484, 4032, 118940, - 7449, 65399, 6207, 120536, 6117, 65401, 8412, 65247, 7438, 8734, 644, - 9769, 41657, 10149, 3659, 9533, 184, 1553, 10827, 12488, 65382, 10502, - 41556, 12623, 65474, 2354, 120214, 8220, 118856, 6295, 901, 41510, 7953, - 118826, 5157, 4020, 63811, 11927, 66584, 13079, 194959, 41687, 64303, - 120735, 7520, 848, 9868, 65620, 6424, 194714, 65916, 66495, 64094, - 118926, 7877, 2352, 41826, 120726, 64576, 11289, 1407, 10911, 65607, - 13026, 120503, 7941, 11715, 8362, 8903, 9777, 66715, 1871, 5869, 8636, - 120290, 1343, 65160, 12649, 9325, 13025, 6283, 11738, 12643, 194623, - 65181, 11741, 8543, 10051, 9216, 8263, 11279, 41258, 8625, 118840, 11290, - 10477, 3136, 8733, 11582, 8315, 13022, 8772, 64588, 0, 6152, 41456, 5477, - 6629, 10112, 19916, 13020, 66723, 8675, 120324, 194766, 67600, 120351, - 10978, 8029, 6091, 120350, 4485, 3335, 64591, 3590, 9776, 41397, 66578, - 5215, 194750, 3333, 1632, 63900, 3588, 3342, 9341, 5363, 12957, 12725, - 68113, 63852, 64076, 223, 64079, 1611, 13246, 13018, 65835, 63792, 65245, - 3337, 1171, 11275, 11736, 41097, 1805, 6482, 41423, 64113, 11945, 8708, - 13046, 8838, 425, 4025, 5013, 41868, 120235, 2392, 13047, 4530, 120105, - 10617, 1213, 119233, 120103, 797, 118814, 7888, 13050, 120349, 64387, - 4115, 65557, 65862, 65587, 3277, 8929, 4947, 41055, 195072, 64276, 426, - 66497, 13045, 8251, 10136, 7751, 120109, 8371, 119253, 1224, 12806, 8768, - 13044, 10701, 1764, 3101, 64469, 8480, 1078, 9757, 65223, 41057, 65567, - 120572, 8663, 9312, 4413, 4539, 3787, 42160, 9222, 67617, 9165, 1572, - 9092, 12593, 41961, 2346, 12724, 8958, 66653, 9646, 3773, 41825, 1293, - 7947, 12003, 120228, 13043, 8056, 2454, 5349, 208, 194718, 65869, 64849, - 65888, 8816, 10699, 6408, 0, 7825, 5661, 917587, 12595, 3603, 41109, - 2398, 3548, 1157, 64291, 8638, 68167, 917821, 3115, 194771, 11321, - 118787, 8235, 4405, 10086, 4876, 194808, 195085, 119256, 65430, 10624, - 6079, 12646, 10764, 8158, 41561, 41472, 998, 13051, 13105, 3143, 120156, - 194673, 41559, 1896, 7882, 13052, 118948, 5665, 530, 65814, 11269, - 120566, 12002, 64526, 5742, 5664, 4692, 8979, 12310, 4007, 5004, 11330, - 7896, 751, 6595, 3382, 63959, 66373, 13231, 11533, 64874, 4732, 6311, - 194936, 11596, 63976, 1626, 63977, 10110, 64056, 41705, 6420, 6598, - 64327, 6599, 2795, 4910, 65308, 118825, 119328, 6275, 6597, 41699, 8340, - 119335, 3229, 6423, 42774, 11019, 65390, 5407, 12823, 2331, 41678, 42026, - 6137, 2336, 7524, 194816, 66720, 42759, 8339, 1921, 120003, 19927, - 195038, 822, 64870, 9903, 4284, 119593, 194648, 43010, 12841, 9229, - 10956, 41255, 12607, 5311, 1795, 965, 3521, 10587, 5774, 8325, 917931, - 65403, 917915, 1854, 10794, 119250, 10057, 6294, 3144, 64780, 5280, - 65019, 4344, 12905, 41610, 6076, 748, 12385, 768, 535, 442, 9507, 194641, - 119346, 10556, 2475, 12388, 4889, 8968, 6071, 3593, 64093, 4804, 2342, - 917797, 1800, 120098, 4894, 467, 4890, 120342, 64644, 120707, 4893, 8421, - 12433, 10666, 4888, 502, 64080, 64615, 41490, 120142, 12043, 10119, 316, - 65878, 10230, 65191, 41297, 64924, 64086, 64746, 2332, 4860, 412, 65728, - 11997, 12432, 9583, 8058, 5546, 8019, 194597, 66561, 63750, 12203, 5544, - 2355, 8913, 65725, 4875, 10613, 66692, 12137, 5548, 9344, 6250, 7944, - 65582, 13104, 6077, 12383, 64519, 119132, 11301, 3134, 119339, 65696, - 4669, 917812, 917789, 194894, 3050, 63839, 10319, 119075, 10383, 118842, - 4592, 11008, 10809, 194800, 4691, 6543, 9345, 621, 917597, 120055, 4328, - 10734, 120032, 64631, 917906, 7804, 19904, 10811, 8457, 10545, 4914, - 10271, 3786, 8886, 4917, 66461, 64914, 7923, 3716, 5464, 9996, 8508, - 2361, 7971, 8195, 194706, 9566, 7682, 3722, 8086, 41707, 10845, 545, - 2312, 40977, 10050, 10874, 8305, 8859, 41458, 40980, 65110, 13202, - 195028, 12582, 9119, 2787, 7920, 41521, 4021, 6288, 7985, 119349, 5653, - 65802, 10891, 7698, 5658, 410, 41552, 1802, 12220, 4913, 120466, 41659, - 41671, 1827, 917894, 64396, 41668, 9077, 2327, 8810, 11422, 120372, - 12705, 3860, 10756, 9239, 8821, 6153, 2867, 119118, 42158, 698, 120359, - 8749, 10356, 12698, 64858, 361, 12641, 845, 194599, 41560, 11970, 4562, - 63756, 2926, 119566, 4099, 66439, 194695, 7936, 120303, 611, 68124, 4716, - 118891, 41382, 119207, 7686, 120568, 194595, 68178, 120543, 118875, - 119612, 6291, 5462, 10823, 41669, 9734, 65455, 9071, 4655, 4151, 13295, - 0, 66632, 839, 42162, 7695, 8769, 65246, 10737, 119194, 4859, 64467, - 65504, 4826, 64157, 41090, 917837, 6647, 64727, 66447, 63845, 2700, - 12576, 7842, 12839, 120825, 804, 2699, 66596, 10542, 2985, 119222, 64806, - 8271, 10091, 11915, 9468, 119312, 9827, 64106, 119311, 286, 12323, - 118830, 11481, 118942, 119305, 1425, 35, 119229, 65084, 66694, 41210, - 64432, 8482, 119113, 6090, 5032, 7812, 10534, 7894, 664, 119588, 5034, - 4272, 65211, 40967, 40965, 42024, 12704, 13294, 66589, 64869, 6032, - 120367, 9129, 7430, 917922, 119609, 68112, 194813, 5244, 6130, 65714, - 41161, 5518, 4174, 1879, 8189, 968, 12222, 1169, 434, 11541, 66573, 6034, - 9739, 64744, 12574, 118867, 194995, 524, 118990, 118934, 788, 120433, - 12679, 64506, 64150, 1663, 10419, 8574, 41227, 118805, 12346, 12855, - 64848, 41030, 10415, 41562, 120599, 65623, 118850, 64571, 0, 19939, - 67614, 959, 8885, 12564, 64333, 118855, 9469, 5195, 5445, 9355, 64323, - 42151, 4644, 8989, 221, 310, 41253, 41564, 8010, 119301, 4962, 63766, - 8855, 10054, 6497, 9091, 917544, 9012, 19958, 12088, 41002, 13215, 65047, - 10451, 64260, 374, 120153, 816, 64634, 120148, 120054, 41934, 3873, 8367, - 917784, 64608, 4715, 6101, 11987, 41936, 194572, 4879, 12723, 65089, - 11683, 307, 120416, 9585, 5374, 64286, 1462, 10235, 41390, 8627, 65579, - 12119, 65028, 13024, 1929, 120426, 12142, 8611, 12236, 41419, 194618, - 66507, 12982, 64374, 5378, 194666, 64295, 41421, 917838, 741, 10083, - 119309, 65026, 821, 65350, 2498, 5800, 10755, 2992, 1760, 8124, 4469, - 2324, 828, 3611, 119084, 757, 1185, 120271, 531, 120728, 10628, 119020, - 120437, 7999, 8204, 3614, 2827, 9696, 10942, 7713, 2348, 4354, 10904, - 4380, 19936, 7833, 10573, 5320, 41240, 862, 3000, 10301, 1810, 3673, - 5137, 9525, 64569, 9354, 65622, 0, 7566, 10121, 64940, 120716, 66693, - 12824, 13066, 3062, 7970, 64741, 12608, 194600, 5871, 41160, 9700, 12580, - 917591, 65748, 119811, 3967, 7898, 13137, 8775, 64560, 12713, 2963, 9090, - 8410, 4454, 723, 1734, 966, 4449, 917815, 64594, 2456, 231, 2320, 120225, - 339, 4968, 120535, 40989, 8075, 1230, 120795, 8047, 3597, 9761, 10584, - 41542, 65404, 1290, 66358, 8352, 917874, 5687, 66698, 3840, 1584, 119963, - 6045, 0, 10498, 9704, 64136, 64138, 10992, 7537, 12311, 8660, 120357, - 8365, 8643, 65029, 119049, 4483, 1709, 64399, 7466, 6080, 13092, 64140, - 1746, 6072, 8667, 12121, 65604, 13140, 11414, 65031, 2531, 4480, 120765, - 64141, 1226, 1259, 7517, 10394, 41231, 10897, 120257, 605, 67619, 641, - 5219, 12342, 64100, 41500, 41129, 311, 11453, 6221, 9075, 120358, 5466, - 10877, 118868, 11451, 120737, 4535, 2667, 4271, 65406, 64188, 345, 41410, - 10829, 41198, 195027, 41407, 64104, 5037, 41131, 1776, 8422, 11266, - 64103, 41508, 4660, 323, 65305, 917813, 6649, 1295, 120010, 4625, 2563, - 4630, 247, 119135, 119870, 12338, 4651, 2668, 6657, 194941, 13223, 11933, - 2519, 119973, 41903, 41079, 5053, 194787, 5049, 119924, 11335, 706, 7754, - 7727, 8738, 4031, 6278, 5009, 9672, 649, 5514, 118920, 66702, 10280, - 12670, 1013, 41218, 3877, 705, 41591, 8755, 194900, 1183, 4184, 8268, - 65918, 65301, 8157, 9736, 64503, 65418, 118921, 4747, 4712, 43013, 11913, - 4718, 194632, 10837, 5141, 10614, 65733, 7962, 12211, 9837, 65831, 64722, - 119008, 5719, 65706, 9773, 119068, 119147, 1857, 65547, 4626, 8464, 859, - 194795, 4629, 8499, 6059, 41134, 4624, 7818, 8535, 119914, 65179, 7805, - 64805, 11488, 12242, 41011, 120220, 64119, 10558, 917955, 917918, 118950, - 8492, 8250, 8459, 120597, 1788, 1579, 10766, 64117, 195050, 8048, 9543, - 9028, 120522, 64516, 65849, 13185, 1285, 64114, 120777, 8240, 8684, 8170, - 6102, 41762, 5298, 12625, 5294, 65204, 42013, 3940, 41597, 119917, - 917873, 9816, 8665, 65851, 11436, 12630, 1653, 64669, 10153, 120601, - 6166, 118791, 118989, 41377, 5292, 66673, 65046, 1939, 913, 3970, 64599, - 12455, 1793, 66637, 120162, 118837, 6643, 8211, 65263, 0, 194703, 64127, - 64081, 119125, 3514, 13219, 9569, 10865, 11958, 5263, 13286, 64126, 5500, - 10022, 65387, 65500, 65384, 5322, 980, 66354, 10008, 5324, 66600, 3784, - 41614, 64751, 6230, 194767, 63885, 10085, 3360, 8098, 11523, 6634, 41734, - 10096, 41613, 8072, 119321, 119322, 41821, 1249, 7783, 41731, 12032, - 8237, 63840, 64899, 12395, 7425, 12818, 120565, 10462, 41150, 194574, - 9795, 66680, 64664, 13213, 194601, 120222, 41152, 194679, 9249, 6565, - 7808, 1829, 120479, 11670, 4358, 65315, 6670, 11426, 194865, 120223, - 12391, 1710, 12160, 10168, 8777, 9781, 49, 6627, 66708, 6258, 8269, - 120594, 9741, 194923, 5649, 119100, 315, 12813, 1643, 119988, 12397, - 3470, 8884, 65175, 41099, 65314, 13299, 1378, 65163, 1072, 120607, - 118802, 3066, 6576, 119300, 120002, 65675, 1080, 41293, 8787, 194828, - 1101, 41618, 120001, 8405, 0, 12632, 1086, 1869, 42088, 7680, 8847, - 10805, 65884, 12639, 3380, 8123, 1091, 6121, 7977, 4501, 12665, 8119, - 12998, 66309, 917927, 1494, 11693, 3127, 194567, 64945, 12930, 1394, - 119230, 65872, 12363, 5345, 9789, 2998, 9527, 120659, 64582, 12977, - 12309, 42090, 3861, 10635, 12939, 12404, 12413, 42003, 2495, 5848, 8726, - 5570, 1881, 12410, 41722, 1012, 8100, 7890, 120296, 11298, 10649, 5569, - 6229, 1593, 65319, 6063, 619, 65128, 65080, 6053, 65602, 4120, 65337, - 64372, 9160, 917928, 119214, 11776, 9366, 9016, 42006, 6055, 3870, 4279, - 2500, 10757, 1507, 8497, 8602, 65316, 13021, 65334, 65333, 11694, 65331, - 42059, 42061, 9080, 120099, 9128, 64480, 5571, 3674, 9740, 9121, 4371, - 5798, 10408, 42085, 10107, 4106, 41989, 65313, 42074, 63999, 11326, 0, - 10233, 13098, 65813, 41239, 10094, 195026, 8182, 0, 119831, 68152, 11947, - 9803, 5847, 1505, 9131, 65161, 4615, 12695, 41988, 41250, 12175, 917864, - 19966, 119582, 7809, 120626, 120445, 562, 8120, 6590, 194565, 13033, - 64738, 3219, 68097, 10664, 1366, 1037, 67623, 4551, 65545, 68131, 66334, - 10637, 4568, 549, 1570, 10478, 2835, 12517, 557, 9457, 5952, 64649, - 41056, 12519, 41004, 119307, 2825, 66636, 10825, 8079, 2821, 41046, 0, - 42071, 12111, 3927, 13071, 12515, 452, 5271, 5492, 64718, 2831, 10604, - 10144, 11465, 5212, 5493, 41120, 8916, 13027, 9747, 12019, 41332, 1618, - 12069, 917584, 1668, 10430, 917766, 5853, 1187, 10363, 1121, 12956, - 120656, 119107, 11314, 3240, 12060, 12194, 65180, 41631, 11591, 5323, - 8166, 4557, 6415, 2707, 8309, 1623, 65297, 41052, 571, 2697, 4918, 11339, - 4912, 2695, 11598, 65048, 66438, 8864, 64755, 64798, 10736, 2693, 12125, - 7615, 12826, 1164, 194583, 6411, 1035, 41067, 119142, 7881, 701, 9758, - 3489, 119296, 7469, 11569, 5248, 12218, 120538, 6303, 3796, 41123, 65688, - 3994, 11421, 10457, 9991, 41128, 64485, 5792, 12347, 9873, 42171, 2855, - 7994, 64762, 6104, 65351, 6591, 9340, 9532, 1589, 119226, 296, 3246, - 7906, 2879, 41981, 41620, 64942, 7815, 65855, 120482, 917817, 66457, - 10585, 12579, 1496, 747, 6416, 942, 2378, 10960, 11618, 5299, 0, 9320, - 5449, 1232, 8139, 6216, 41431, 917970, 11409, 5295, 66624, 64392, 1223, - 1642, 174, 120824, 11612, 4161, 2374, 120546, 8475, 3212, 66313, 3211, - 194576, 5286, 119297, 0, 64142, 9728, 3846, 8070, 5536, 6636, 7705, - 11942, 11305, 12136, 3309, 67612, 66377, 41491, 66325, 4986, 12189, - 41653, 1280, 1241, 917537, 4257, 8496, 67608, 6220, 9004, 65411, 65203, - 41513, 41650, 120791, 194578, 120608, 12914, 12884, 194575, 9890, 6078, - 10237, 917943, 1475, 64917, 11979, 6084, 118900, 41064, 41061, 9635, - 12600, 3256, 41236, 42039, 0, 6469, 65377, 8727, 10654, 4679, 41237, - 64073, 64867, 6531, 65285, 65329, 64069, 10640, 3248, 2613, 3261, 9015, - 119829, 66568, 3635, 64337, 41651, 41241, 64944, 3494, 6449, 6555, 10588, - 66588, 120581, 194783, 67597, 635, 13139, 65898, 65613, 65312, 5447, - 68108, 194826, 64382, 4010, 7445, 8600, 41915, 65804, 4176, 41105, 5812, - 65820, 6232, 65891, 68142, 194588, 318, 5302, 195022, 6538, 4335, 3649, - 3941, 41122, 41110, 3634, 64892, 9113, 1954, 12155, 7866, 120297, 11402, - 11733, 64296, 120138, 66470, 2849, 66375, 66697, 7938, 11728, 1761, 4586, - 65379, 350, 10930, 119090, 509, 194792, 119603, 9365, 66687, 542, 5133, - 41680, 64551, 9500, 11534, 1514, 11668, 65823, 5453, 65533, 64921, - 119967, 2496, 8493, 944, 9368, 3890, 1624, 1438, 8817, 120592, 10818, - 41947, 1220, 120828, 63931, 1194, 3242, 1571, 9555, 8598, 11457, 6169, - 943, 564, 2798, 312, 194999, 11532, 66363, 120161, 8877, 269, 3495, 6272, - 9617, 1460, 8988, 120660, 4891, 195031, 10641, 0, 41119, 41416, 917602, - 4173, 120289, 63786, 120574, 12895, 64955, 41418, 11357, 119022, 120286, - 41415, 6296, 9582, 193, 12188, 917835, 64680, 11428, 1730, 2457, 4493, - 2314, 8427, 1362, 9822, 7703, 8840, 5807, 119054, 120451, 8534, 6658, - 4426, 917796, 41612, 42758, 11497, 7874, 8681, 5220, 120281, 13136, - 119825, 2416, 3310, 10972, 63886, 379, 119215, 13220, 63787, 120449, - 3223, 5517, 1284, 8041, 4549, 120475, 5240, 9811, 10012, 3096, 65239, - 42768, 43040, 8515, 8688, 12866, 64146, 3294, 9501, 119631, 1272, 65485, - 7564, 64654, 7467, 65210, 1467, 10158, 10040, 5288, 9519, 41861, 8132, - 64090, 118899, 12193, 66615, 65493, 3215, 917863, 7710, 1610, 65114, - 12307, 63881, 65682, 66465, 5181, 5275, 120195, 228, 8637, 1501, 66676, - 3789, 5179, 11471, 6225, 10765, 11474, 1725, 66603, 8196, 9352, 12042, - 42752, 917543, 9537, 3961, 5762, 1967, 2605, 4500, 63873, 8104, 4981, - 7474, 3405, 64862, 11667, 10414, 9821, 8141, 9559, 2600, 1557, 7589, - 64851, 64549, 3237, 8631, 2545, 10466, 8541, 917616, 194747, 41866, - 917973, 120430, 42762, 7481, 0, 1650, 262, 1637, 10958, 7901, 3238, - 41945, 65556, 41941, 3308, 65158, 10860, 8614, 65220, 7527, 120624, - 41943, 6419, 120244, 45, 6401, 120022, 8106, 4128, 10065, 64083, 4494, - 9590, 4012, 10395, 917762, 9084, 4537, 8737, 64089, 11004, 695, 739, 696, - 7611, 2620, 42755, 194913, 9227, 7506, 179, 5098, 691, 738, 2853, 7512, - 7515, 3868, 688, 119009, 690, 2548, 737, 974, 2801, 119837, 10854, - 119012, 10034, 3985, 8783, 65860, 9362, 10177, 120247, 4682, 118869, - 12809, 6406, 4685, 3158, 10879, 4389, 4680, 923, 41863, 3851, 292, 13002, - 119845, 119844, 3221, 1763, 64468, 4612, 119851, 119850, 12999, 41219, - 11718, 41314, 10782, 3637, 12996, 119141, 11717, 63922, 10594, 3228, - 11712, 64624, 120405, 10967, 2731, 194721, 9651, 651, 3891, 7696, 66706, - 2337, 1735, 120630, 917891, 4177, 11283, 9089, 66312, 64695, 120580, - 11438, 1860, 2654, 7580, 1856, 7497, 7584, 194722, 66356, 10914, 3458, - 3208, 12975, 8498, 119121, 8949, 3065, 9450, 120472, 1569, 63888, 12534, - 12124, 7690, 119254, 12533, 120251, 6418, 4543, 41471, 917629, 64674, - 42180, 194881, 0, 10859, 917615, 41544, 41689, 63789, 12282, 64909, 6646, - 11790, 8108, 8850, 9238, 5066, 8561, 4573, 13108, 6421, 12791, 119849, 0, - 8257, 12891, 8778, 10630, 12900, 917992, 10950, 8314, 6459, 12790, 8804, - 65092, 41153, 12792, 11342, 42018, 1744, 12789, 10366, 12317, 10137, - 67610, 13164, 10723, 967, 120253, 64546, 12690, 41307, 3257, 65550, 9862, - 1845, 2974, 10446, 11315, 0, 278, 10580, 10089, 870, 66569, 3499, 8609, - 42149, 876, 871, 877, 6002, 878, 42015, 879, 120336, 4563, 65176, 41308, - 7591, 65306, 867, 9520, 872, 8646, 868, 873, 119868, 11514, 869, 874, - 63989, 1940, 875, 790, 220, 65193, 194845, 10678, 10044, 41589, 5429, - 13082, 194585, 6403, 5707, 10393, 120005, 120267, 42067, 41890, 5433, - 10657, 7911, 120266, 1547, 9775, 3959, 119316, 5425, 4977, 2467, 5317, - 5423, 4611, 63843, 8040, 5069, 9679, 4182, 119244, 4676, 120501, 41073, - 4418, 2510, 4628, 10208, 12989, 118784, 10399, 1851, 12186, 119574, - 11908, 120254, 9360, 9083, 13180, 41764, 11601, 12837, 8829, 7711, 64423, - 12115, 67636, 12377, 41281, 8809, 41647, 365, 12056, 10857, 917831, - 41716, 65395, 41228, 119865, 5516, 2845, 7717, 4588, 41717, 63830, 544, - 12045, 2433, 917897, 5515, 3352, 65373, 64377, 65437, 793, 65194, 194740, - 305, 567, 119002, 842, 66627, 8208, 917556, 41695, 1647, 118877, 5608, - 63824, 65407, 818, 5337, 119143, 13278, 65597, 9638, 8061, 8735, 12483, - 120468, 13003, 6667, 10973, 66359, 1372, 118858, 7556, 4969, 1254, 11264, - 989, 64257, 118862, 65228, 6060, 65266, 4326, 2840, 64601, 13068, 194985, - 65242, 3245, 5768, 65601, 949, 119351, 194893, 6148, 8605, 2651, 119634, - 64570, 917912, 119563, 194888, 65106, 120418, 41451, 63871, 41796, 1269, - 6530, 63868, 41777, 6414, 5144, 3226, 655, 752, 4431, 4331, 7452, 3285, - 41834, 5279, 12908, 10336, 8312, 41754, 12091, 671, 250, 7434, 618, 668, - 610, 6428, 7431, 1152, 5256, 640, 41229, 7448, 1067, 255, 3905, 65196, - 9493, 65588, 41014, 10795, 194791, 194741, 120421, 917772, 10653, 41272, - 195001, 13287, 917805, 6560, 9019, 118943, 195052, 65409, 987, 64410, - 5527, 2768, 10684, 3365, 5135, 118924, 12796, 11953, 120412, 65732, 5139, - 346, 11334, 6305, 12609, 4675, 5168, 5530, 5210, 917774, 4627, 8253, - 5208, 1136, 65433, 120587, 5218, 7976, 118864, 11963, 3244, 5529, 0, - 194742, 917794, 5432, 64258, 4041, 8784, 2357, 11521, 5528, 229, 42140, - 65876, 12350, 65848, 119881, 12241, 119197, 4000, 7429, 7428, 665, 7424, - 3206, 7770, 7884, 64853, 0, 65838, 194779, 211, 2509, 7790, 10470, 7861, - 3220, 9156, 64050, 450, 8951, 5214, 10432, 8118, 5450, 10768, 1233, 4661, - 5852, 8984, 66338, 41802, 1708, 1839, 40985, 2623, 10927, 1701, 195064, - 2388, 4698, 41761, 1066, 8361, 4701, 41758, 5444, 2617, 64889, 8267, - 66645, 65610, 194642, 7516, 118958, 2625, 8801, 3053, 4340, 120139, 3631, - 10955, 7850, 120292, 8416, 119977, 4008, 65507, 12644, 12660, 8232, - 12156, 194807, 194624, 41069, 41719, 65812, 12099, 4310, 4336, 6252, 713, - 41068, 7990, 3990, 119203, 65113, 64638, 5017, 13145, 4489, 118959, - 42138, 1030, 5358, 64577, 9513, 10196, 9357, 194764, 1773, 10250, 10258, - 2712, 1635, 7745, 1410, 12077, 64650, 94, 1880, 120149, 194731, 8908, - 559, 118879, 12862, 194984, 10752, 4892, 10876, 64537, 6542, 8732, 8472, - 5777, 1757, 759, 4696, 2586, 65248, 8945, 8466, 3641, 5419, 41803, 42062, - 67596, 118806, 120344, 3668, 65754, 8610, 12226, 7592, 856, 2340, 936, - 13289, 64478, 66631, 1459, 65747, 10499, 2962, 19953, 2321, 1504, 10465, - 41312, 8921, 120548, 7529, 65154, 64525, 41901, 63814, 4113, 2949, 2372, - 336, 194774, 2958, 12152, 5348, 682, 2395, 65252, 13291, 7513, 10593, - 1703, 4013, 64764, 8033, 120064, 65152, 9810, 6534, 4150, 12970, 8318, - 41790, 10109, 41893, 2360, 41794, 12858, 120493, 3999, 3777, 65629, 1965, - 9796, 2411, 11336, 799, 195097, 10276, 10308, 10372, 41714, 8501, 63833, - 2317, 10260, 41317, 65767, 5417, 917969, 10384, 120073, 9353, 917546, - 7753, 2351, 6655, 64489, 6569, 13119, 119812, 41287, 119236, 230, 11293, - 12009, 119813, 4855, 4165, 8746, 5441, 9654, 10288, 10320, 65665, 855, - 120396, 6109, 4784, 12337, 13270, 7786, 10098, 41147, 194570, 63769, 680, - 6274, 10312, 1181, 19915, 3174, 13127, 120011, 64822, 41887, 41444, 4862, - 9735, 6537, 119237, 66650, 3914, 41037, 10828, 9007, 12961, 41039, - 118861, 9033, 6231, 289, 65302, 4694, 11420, 4690, 120654, 42760, 194898, - 4693, 63816, 40987, 4667, 4688, 120591, 8828, 194637, 65763, 1246, 3110, - 19940, 12197, 11021, 4749, 917895, 43035, 921, 218, 64868, 1520, 242, - 4786, 1566, 8217, 8932, 64653, 7834, 10088, 6548, 118908, 64681, 5313, - 951, 8888, 64534, 4816, 7604, 43032, 4009, 194694, 194717, 65440, 41549, - 119069, 12340, 119138, 119887, 4689, 119888, 4048, 120158, 119209, 6507, - 1646, 41755, 119891, 4040, 194734, 65118, 68134, 2579, 119905, 3177, - 8207, 9099, 4107, 120130, 119894, 662, 120706, 9244, 66623, 13059, 10084, - 120339, 65669, 65836, 10179, 41929, 3399, 9851, 40991, 8739, 9059, 0, - 7687, 64637, 8854, 40993, 52, 13241, 6475, 917901, 120444, 1777, 9151, - 1137, 118914, 749, 65169, 120584, 5385, 3978, 65842, 120283, 11592, 5989, - 65827, 10170, 65013, 6544, 41685, 64702, 119365, 8425, 41684, 917780, - 519, 10369, 11740, 1585, 194987, 9888, 422, 1500, 10305, 986, 41170, - 3666, 5781, 5599, 3098, 2494, 120202, 4861, 0, 64334, 63986, 6558, 64818, - 41221, 42165, 8961, 252, 10243, 10245, 63936, 917505, 120398, 194707, - 63751, 9478, 2508, 9060, 119587, 202, 10761, 119114, 1242, 12899, 120447, - 11734, 63940, 11730, 917937, 9593, 10543, 2403, 12979, 64609, 0, 9787, - 2504, 9784, 41024, 7764, 42076, 9514, 64132, 5859, 119259, 2858, 8298, - 12333, 65040, 65478, 9691, 4971, 12992, 2753, 1936, 917877, 8456, 2751, - 12662, 2763, 8953, 42104, 10731, 7774, 4780, 9792, 63990, 194753, 194871, - 194693, 118927, 2856, 10019, 47, 10482, 2823, 4365, 120629, 917551, 3647, - 7899, 2602, 8417, 65903, 917558, 41135, 118824, 4033, 118854, 194761, - 172, 194720, 212, 41137, 1889, 12320, 6545, 64623, 917859, 7597, 8915, - 2759, 945, 3732, 120230, 917567, 5344, 194851, 1291, 11485, 9062, 119252, - 9531, 13155, 8505, 64479, 12062, 119018, 64703, 65487, 42065, 10900, - 10370, 1263, 3720, 12048, 63935, 64292, 41524, 64692, 12652, 6099, 41534, - 64133, 63933, 64426, 299, 65540, 118859, 63951, 3524, 12933, 8831, 65752, - 8674, 3075, 119890, 8245, 917867, 12624, 120559, 1673, 4811, 63928, 5845, - 9338, 3046, 65414, 2581, 4001, 41811, 9820, 64098, 12187, 5551, 68114, - 5984, 63791, 120687, 4393, 10566, 68182, 8680, 65555, 118851, 2588, 5422, - 65900, 43028, 3491, 2471, 917626, 2883, 2749, 63921, 195054, 7492, 7740, - 119355, 119134, 675, 120551, 63924, 194568, 7502, 6219, 63926, 65726, - 41232, 9329, 63925, 7610, 219, 63945, 41330, 692, 65200, 120775, 9240, - 3181, 9688, 119816, 1222, 65775, 8262, 11785, 64530, 0, 64610, 3092, - 12092, 9615, 7453, 120128, 8013, 119857, 120456, 195019, 8895, 5253, - 65774, 5458, 917816, 922, 65923, 119318, 11338, 194930, 3218, 12618, - 63997, 120469, 11664, 8962, 8569, 9641, 11932, 12202, 3214, 120461, 9604, - 12053, 3207, 120465, 63826, 1901, 63939, 120141, 63825, 2844, 3205, - 41974, 41286, 12139, 65666, 64708, 119580, 3358, 2606, 119364, 3104, - 2608, 11496, 1173, 10901, 5308, 120079, 290, 917988, 11779, 2862, 2792, - 64498, 66371, 378, 2610, 66591, 65079, 6552, 65372, 66707, 37, 64195, - 120154, 1814, 64860, 3209, 118843, 120804, 10638, 9768, 64648, 917984, - 66372, 7606, 2591, 2837, 4341, 41403, 64105, 42159, 5233, 65270, 64792, - 120794, 3570, 9112, 119948, 863, 9490, 63761, 1685, 595, 12715, 118871, - 1292, 6222, 65705, 3654, 66638, 9637, 120268, 2535, 6541, 119181, 10656, - 120246, 3243, 9014, 5606, 63762, 538, 11006, 5602, 7807, 8073, 6547, - 10629, 8203, 63994, 3056, 8458, 41778, 8495, 8762, 10508, 917552, 779, - 9818, 64367, 2465, 3463, 8193, 65721, 9730, 8695, 4738, 11322, 5811, - 4346, 64904, 194735, 504, 64321, 10899, 8982, 119954, 0, 0, 782, 4867, - 10883, 1262, 64771, 732, 3737, 194954, 1548, 13151, 120589, 1832, 5604, - 5611, 41141, 7460, 4376, 64612, 11991, 3745, 41738, 10011, 1502, 65712, - 194670, 3869, 11937, 5702, 3655, 1783, 119899, 5728, 120564, 13285, - 42174, 11918, 9603, 5724, 5254, 5727, 7724, 119573, 119901, 764, 5129, - 120655, 120460, 10597, 7579, 5614, 5893, 6223, 11720, 42073, 11423, - 119863, 64409, 119862, 4792, 917770, 1964, 6559, 11726, 12146, 65378, - 10687, 43019, 119629, 894, 300, 65744, 10037, 12223, 118936, 1478, 9783, - 2562, 2607, 64740, 64830, 0, 11652, 917627, 11777, 41780, 6132, 64946, - 5096, 5095, 2863, 3424, 0, 10454, 68146, 5094, 10093, 4369, 13156, 12306, - 5401, 5093, 119909, 12004, 65251, 5092, 526, 11327, 41295, 5091, 176, - 41691, 8985, 4104, 119911, 6285, 1215, 11985, 5744, 12272, 9832, 65590, - 3713, 13218, 41191, 119343, 8980, 118988, 12293, 8844, 7433, 11794, - 42036, 4278, 1737, 8987, 12917, 195068, 9074, 4348, 9335, 7760, 118991, - 6553, 10339, 5255, 1786, 661, 120126, 5475, 917876, 41854, 68102, 194754, - 12419, 1160, 1267, 68143, 41217, 65858, 10018, 360, 67586, 3621, 64635, - 5863, 3137, 11345, 6562, 12928, 41216, 1228, 2616, 119190, 64401, 65234, - 10745, 1714, 3135, 120637, 120143, 0, 3142, 119186, 119995, 10819, 64163, - 6577, 65772, 64, 1470, 194566, 10291, 6227, 2826, 41749, 66433, 119864, - 6163, 9708, 13250, 0, 42011, 41224, 8603, 12206, 5839, 1702, 1240, 41461, - 6286, 119882, 5834, 66451, 3858, 119089, 1765, 12086, 42001, 1600, 13228, - 64729, 0, 8401, 120520, 11310, 9282, 8882, 118929, 10479, 2570, 2852, - 5367, 4601, 120818, 64075, 1234, 6540, 13115, 66310, 12667, 194686, 5002, - 10147, 12935, 917601, 194965, 118829, 194672, 8163, 6551, 12727, 120744, - 120533, 41289, 0, 13129, 2864, 8977, 602, 10435, 9395, 41675, 119554, - 2765, 64540, 41279, 120414, 65924, 0, 119922, 66662, 119220, 10887, - 65206, 118963, 64920, 66593, 63914, 12150, 263, 120012, 41288, 917982, - 9633, 10886, 119042, 7831, 12067, 10381, 917978, 11484, 8076, 43048, - 8290, 8291, 43051, 65833, 11616, 2596, 10852, 10285, 13113, 120711, - 42019, 2393, 8766, 9087, 750, 65232, 41574, 10163, 11015, 63913, 10441, - 5954, 10225, 4314, 65856, 198, 917956, 730, 41441, 7819, 120199, 917555, - 13165, 1720, 63905, 8619, 678, 6529, 68122, 41654, 3751, 917769, 119923, - 4262, 1798, 709, 917841, 1354, 1876, 13152, 6557, 3892, 8137, 10449, - 120035, 120428, 41470, 245, 41045, 11456, 41233, 64801, 120315, 497, - 6136, 5953, 65677, 7796, 41235, 65434, 42045, 9804, 8449, 432, 1281, - 64355, 65393, 64339, 10677, 604, 7511, 9120, 1859, 65541, 10460, 3425, - 917870, 65782, 2836, 8797, 8490, 9052, 64888, 120206, 2356, 95, 64786, - 1738, 120415, 194654, 2832, 64640, 9670, 6096, 917871, 64918, 65151, - 10063, 2822, 12199, 4436, 194852, 2566, 11971, 12090, 13064, 1065, 1331, - 119097, 0, 2576, 12708, 41142, 5090, 5089, 120263, 9505, 67595, 514, - 41692, 319, 2921, 11659, 9477, 5772, 12968, 5087, 118822, 41310, 96, - 2580, 0, 10522, 41223, 5085, 1463, 41342, 11346, 5293, 10550, 64389, - 3733, 3772, 13090, 12054, 4748, 12482, 64300, 12575, 13091, 63982, - 194794, 6677, 7601, 119078, 41413, 64419, 118953, 195086, 195100, 66648, - 118945, 64597, 10939, 6106, 65757, 1270, 1132, 120746, 4534, 41270, - 66655, 9224, 65574, 66331, 64761, 917881, 3671, 8510, 120695, 65770, - 41275, 120823, 917935, 10807, 7963, 42012, 119877, 568, 65227, 6187, - 13109, 3854, 41479, 13141, 9715, 66696, 8258, 13253, 4185, 41334, 65148, - 8871, 42, 8509, 0, 4102, 120258, 7458, 118995, 65863, 2353, 6308, 41604, - 7457, 2611, 7456, 41021, 120563, 194631, 66336, 8045, 11550, 12946, 4484, - 8747, 118976, 11789, 41065, 5557, 11990, 9737, 13216, 3747, 9467, 5291, - 8878, 1691, 41226, 7451, 7435, 10146, 10905, 9086, 64566, 697, 194675, - 628, 7454, 12594, 65261, 10468, 4546, 7731, 65256, 12010, 0, 120598, - 3805, 64304, 64293, 120284, 9844, 68111, 6307, 19949, 0, 7544, 12166, - 64697, 10516, 120074, 10152, 12648, 10354, 0, 7602, 5785, 41309, 9764, - 41316, 65877, 194640, 13230, 41299, 5559, 119835, 8704, 2397, 5556, 9877, - 66368, 13122, 9011, 191, 9630, 41837, 42040, 5506, 119842, 120697, 64850, - 41072, 12598, 8845, 41577, 194790, 10002, 8889, 6533, 11620, 41570, - 41838, 683, 396, 41580, 12526, 917610, 12901, 12351, 65115, 343, 7552, - 120553, 41360, 9898, 10481, 4559, 0, 1956, 118857, 917836, 64048, 1724, - 1210, 119323, 9412, 3739, 6263, 1886, 194869, 3964, 6592, 38, 8533, 9234, - 10947, 65073, 13063, 194752, 1778, 3956, 65091, 42070, 6563, 119324, - 8743, 8369, 11739, 10941, 12467, 65722, 5547, 66618, 120432, 120513, - 8175, 8843, 284, 2429, 934, 5696, 917996, 173, 65560, 8652, 12699, 11650, - 1750, 120709, 4394, 65056, 1807, 6613, 12606, 64528, 5889, 63783, 917949, - 64714, 41848, 11516, 12162, 12120, 12478, 1721, 7767, 7891, 65864, 10563, - 2583, 4512, 63973, 2462, 7693, 1837, 10434, 3855, 8107, 41337, 63972, - 4952, 65413, 64405, 5504, 41340, 3975, 65715, 65716, 65420, 12672, 3798, - 2703, 194709, 64347, 9349, 9774, 41847, 1127, 455, 41095, 3962, 10100, - 3483, 41101, 3954, 6457, 4513, 9104, 3503, 7688, 41298, 1468, 65386, - 1864, 41851, 63970, 41446, 2540, 7736, 41080, 41849, 917619, 4320, 3224, - 12909, 9705, 41565, 8604, 118903, 1510, 11306, 6149, 3887, 11393, 1411, - 2824, 194708, 10106, 8770, 1403, 120811, 1347, 9631, 8671, 65737, 4283, - 64074, 119936, 8640, 13124, 258, 1654, 41408, 8858, 65738, 42139, 3741, - 42761, 4042, 4581, 2873, 11617, 11522, 120114, 8549, 10861, 194784, - 41673, 64829, 1733, 4392, 2568, 10786, 63983, 67629, 376, 41486, 9221, - 64871, 119907, 8823, 41222, 12857, 6217, 7965, 4896, 64911, 10154, - 119108, 41350, 8301, 118823, 7446, 1684, 64501, 10974, 458, 41199, - 917562, 917576, 194798, 11916, 340, 119000, 12298, 10864, 119918, 12288, - 120287, 4388, 1493, 10521, 7553, 4097, 194971, 13080, 11656, 65808, 6610, - 6030, 8059, 3210, 13131, 119073, 194827, 13301, 8794, 41278, 41629, - 12154, 119131, 9461, 64658, 1186, 41571, 6625, 617, 9464, 12691, 3675, - 5207, 63955, 5213, 118896, 833, 41348, 41568, 917775, 3253, 63954, 41088, - 8630, 6062, 41440, 5596, 5545, 119313, 933, 1341, 9842, 5217, 194886, - 8942, 40962, 194730, 68126, 9905, 2635, 64504, 65130, 12620, 7493, - 917577, 7835, 41434, 9002, 19918, 194770, 64558, 194974, 9716, 19954, - 5651, 5990, 900, 5784, 194775, 9317, 119057, 3612, 4011, 64376, 41953, - 5389, 7864, 917548, 65336, 2839, 5600, 3903, 65609, 10447, 3749, 1207, - 7569, 194980, 3501, 194685, 64705, 4403, 19962, 1124, 5597, 195009, - 119921, 9321, 4429, 65810, 120515, 119072, 1719, 7598, 546, 9671, 1125, - 4399, 9542, 472, 7716, 8452, 5488, 41946, 42025, 194903, 5491, 3602, - 8328, 41182, 2604, 41949, 5490, 41183, 5489, 8522, 10287, 684, 6300, - 194777, 2854, 119586, 4390, 454, 7823, 65750, 9875, 7593, 65338, 119310, - 120625, 64487, 8478, 9881, 2394, 2575, 3415, 3746, 11016, 8648, 66515, - 65421, 43047, 119092, 11989, 65142, 418, 65025, 66378, 10295, 8249, - 10391, 41752, 4565, 6640, 41449, 2598, 513, 120763, 6586, 8656, 65826, - 1024, 11621, 7961, 120809, 8941, 917563, 4554, 11681, 9023, 11682, - 120788, 10176, 10964, 119315, 11437, 9509, 0, 1036, 12850, 917787, 1723, - 120577, 9049, 41185, 41579, 2444, 11680, 10705, 11686, 118792, 65224, - 63804, 740, 63963, 120113, 118874, 120681, 5300, 10407, 9459, 194739, - 1875, 66466, 7856, 8121, 10438, 5524, 41698, 2860, 12157, 5238, 120797, - 5690, 5743, 10424, 12065, 65805, 7578, 65859, 195051, 8875, 8694, 9506, - 13254, 5575, 12847, 2413, 68099, 119340, 962, 12176, 1122, 317, 9040, - 119116, 1582, 119251, 1920, 41477, 10173, 827, 10801, 195096, 118798, - 120401, 5223, 496, 10439, 4313, 5226, 12602, 7860, 120627, 906, 7758, - 2842, 6405, 5224, 5487, 798, 5692, 12801, 7791, 1153, 5695, 12100, 64627, - 8054, 9174, 120131, 5691, 287, 866, 233, 4642, 66574, 11556, 7514, 66436, - 65140, 42089, 8830, 9008, 120417, 10524, 41175, 42079, 7587, 65709, 5296, - 120505, 10688, 10663, 917814, 3302, 66478, 6437, 6516, 6515, 6514, 6513, - 6512, 41798, 3920, 8690, 119590, 41201, 12122, 4580, 6568, 6116, 1785, - 41965, 120635, 3021, 42004, 5138, 120129, 194587, 41998, 41867, 4540, - 41179, 194804, 6200, 11462, 5134, 42021, 322, 4643, 5132, 42010, 194988, - 43008, 5143, 64875, 8790, 917807, 65594, 64604, 6626, 8869, 66510, 64400, - 42060, 19908, 9878, 194814, 41133, 10270, 10286, 10318, 10382, 65671, - 4110, 120507, 11286, 10929, 64277, 3234, 66703, 13058, 8617, 41982, 6025, - 120736, 12805, 8767, 194580, 194690, 9597, 41283, 5201, 120293, 6215, - 12714, 6214, 13101, 65282, 120490, 65268, 120504, 64524, 120215, 187, 0, - 10059, 10511, 4963, 9767, 789, 1749, 7441, 64574, 9901, 320, 41948, - 41833, 194831, 3049, 41139, 6471, 9449, 10081, 10528, 42121, 118894, - 120562, 4960, 5549, 119359, 65882, 8485, 4671, 1189, 905, 480, 10985, - 10240, 10610, 5414, 3064, 1745, 4286, 5421, 5427, 9554, 119077, 66357, - 65465, 6653, 8806, 42047, 9442, 6213, 9443, 9436, 7867, 11613, 6236, - 42052, 195070, 2406, 119858, 11430, 4566, 348, 5474, 3801, 3103, 10406, - 5246, 5236, 64395, 195059, 5200, 64305, 41739, 41733, 64518, 10931, - 13181, 41402, 395, 5391, 5198, 8786, 9428, 41259, 5196, 120037, 2691, - 42009, 5205, 41244, 5562, 917578, 118973, 41262, 66364, 64421, 119615, - 41251, 9126, 435, 3979, 12014, 12893, 8093, 9079, 3203, 192, 119912, - 3385, 41266, 64430, 5383, 10294, 10326, 65741, 5738, 9574, 2666, 119861, - 5361, 831, 419, 8256, 10716, 7872, 64583, 66688, 1260, 3149, 5359, 7766, - 6432, 7914, 5357, 916, 769, 2624, 5364, 64739, 6433, 5563, 547, 1943, - 6439, 5560, 4994, 487, 119553, 4497, 3754, 120082, 120615, 9039, 10619, - 41776, 194797, 8716, 41622, 40983, 64072, 41516, 0, 9319, 195024, 41376, - 11610, 3232, 12185, 119928, 119331, 65905, 119347, 41889, 64071, 8634, - 1161, 41895, 118804, 9701, 8622, 41385, 120403, 65612, 120588, 669, 5679, - 41362, 43011, 64210, 11921, 42087, 5678, 120750, 66489, 41364, 460, - 64636, 41352, 41361, 194824, 41366, 0, 3356, 6178, 917, 7799, 118812, - 64068, 7782, 9044, 4974, 677, 119916, 7577, 64189, 41507, 1216, 12504, - 11952, 3349, 194683, 12296, 8927, 4739, 3738, 5802, 120474, 5683, 10368, - 120661, 491, 1549, 119621, 194659, 0, 5682, 6206, 8670, 9891, 5680, - 64297, 10001, 7586, 65580, 1449, 10241, 3768, 65255, 3776, 9095, 7741, - 12684, 41885, 1046, 120547, 5567, 2717, 4620, 5171, 5564, 41967, 41908, - 41786, 5565, 12819, 12578, 64743, 65708, 5169, 5566, 3465, 64694, 3175, - 11904, 1537, 119155, 5176, 5942, 8468, 4871, 10361, 10425, 65697, 65698, - 41991, 1128, 65920, 10548, 9711, 10647, 9408, 9409, 9410, 457, 3662, - 9413, 1934, 9415, 9416, 8802, 9418, 8909, 9420, 9421, 5897, 9423, 5165, - 5126, 9889, 8043, 8950, 65694, 8955, 3374, 9400, 9401, 9402, 8939, 9404, - 3507, 9406, 9407, 119241, 19925, 9499, 10035, 183, 65078, 2631, 119308, - 10636, 41130, 64958, 3996, 120650, 64675, 1667, 41584, 65486, 41582, - 6580, 4332, 64825, 10741, 10726, 12912, 11281, 5899, 8101, 3610, 12085, - 41748, 574, 955, 120092, 5340, 5350, 41058, 5446, 63799, 10875, 64796, - 5442, 65692, 12437, 9782, 5451, 12896, 3616, 64857, 917959, 3874, 7708, - 64370, 5505, 65867, 10345, 10409, 65603, 11909, 65687, 43015, 41038, - 120719, 120561, 4447, 8536, 64701, 65143, 66661, 120194, 724, 42048, - 1455, 205, 917593, 10351, 64618, 8571, 4175, 6588, 119059, 120380, 939, - 41355, 4743, 119154, 5503, 8021, 64622, 119150, 9819, 41357, 8011, 6088, - 5507, 12044, 190, 120282, 10026, 4356, 8188, 1191, 13106, 4417, 10329, - 5476, 8991, 195008, 7827, 120361, 5829, 8550, 67627, 5592, 2919, 64925, - 2675, 5595, 917967, 7918, 4367, 194626, 65554, 5478, 1728, 5594, 120710, - 178, 12972, 5590, 10727, 13067, 118909, 65254, 917941, 9731, 120600, - 64633, 917987, 12113, 13065, 118863, 9252, 12278, 4652, 119041, 12349, - 65907, 194704, 120688, 12887, 10551, 10710, 194833, 195017, 64663, - 120570, 41804, 5199, 9497, 1120, 11429, 8333, 1444, 9486, 7554, 13142, - 4538, 65096, 1442, 6177, 5894, 917833, 11910, 13224, 8278, 5591, 4034, - 9452, 65389, 3334, 64003, 41747, 10708, 194571, 8677, 118828, 1651, 9350, - 8861, 120040, 8836, 1142, 12747, 4396, 10928, 66705, 8922, 8856, 66611, - 4002, 119188, 10442, 10676, 3344, 11012, 64963, 10813, 2592, 12853, - 120242, 66642, 3438, 6536, 7871, 120239, 65516, 12321, 68141, 118890, - 120389, 10007, 11784, 9588, 10126, 4700, 11308, 41994, 65801, 8661, - 41721, 66572, 12240, 119876, 4973, 5573, 12588, 9629, 40981, 119176, - 118981, 5006, 64328, 42002, 64754, 41766, 8825, 13016, 195062, 0, 10346, - 6107, 42093, 9243, 2464, 194677, 6108, 3372, 335, 6247, 64689, 438, 4510, - 5765, 8721, 119878, 4036, 6092, 11654, 65914, 8876, 10303, 8096, 10284, - 3354, 10268, 119830, 9289, 8689, 10316, 3876, 10335, 9725, 42044, 11783, - 917893, 119581, 8050, 120030, 195025, 11603, 194820, 120053, 6589, 843, - 120419, 119260, 120770, 195053, 10117, 66560, 41902, 12829, 6312, 215, - 1963, 13225, 13192, 1953, 9579, 7550, 1256, 3910, 13015, 6242, 41329, - 9662, 41257, 41900, 3366, 10700, 8805, 1742, 5542, 9333, 8202, 120459, - 120232, 41611, 65895, 120159, 120385, 499, 118846, 8593, 119627, 917974, - 41169, 1712, 5932, 8097, 41642, 11519, 119562, 11967, 1775, 65296, 41243, - 118957, 5662, 416, 9458, 64687, 6470, 195081, 66675, 10984, 64386, 64672, - 65274, 12880, 195083, 41172, 41254, 64758, 120669, 41062, 194825, 9006, - 65446, 565, 41760, 5794, 201, 2662, 9419, 11332, 8254, 41726, 10975, - 120173, 1021, 65131, 1022, 4108, 3880, 8023, 1200, 12243, 194991, 5282, - 7507, 41881, 11545, 5891, 64406, 3343, 1636, 67587, 1885, 65024, 3896, - 195056, 9674, 2947, 99, 98, 97, 120571, 64414, 4049, 8221, 64085, 3381, - 194978, 7892, 120705, 10777, 194687, 5867, 3913, 66376, 66722, 64315, - 8039, 1265, 4316, 6309, 118815, 12969, 12596, 66595, 11791, 12541, 5593, - 67585, 5998, 9163, 12300, 6061, 64854, 119, 118, 117, 116, 8930, 122, - 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, 102, 101, 100, - 107, 106, 105, 104, 6436, 194788, 534, 41212, 119599, 1536, 12114, - 120381, 64287, 64936, 64324, 6020, 12716, 10561, 10075, 475, 118888, - 13266, 9144, 64590, 917580, 118887, 65749, 10645, 1212, 5079, 119619, - 8134, 8483, 2913, 6624, 4908, 1866, 1639, 119189, 194762, 8923, 1645, - 12059, 64505, 917977, 194664, 41503, 4817, 5935, 1250, 194727, 8174, - 9600, 9856, 9859, 7916, 9861, 5343, 5258, 1882, 1892, 11304, 10882, 405, - 11454, 4659, 12343, 657, 12610, 4970, 4461, 1134, 1838, 1454, 41242, - 6477, 4468, 5987, 65803, 9762, 4456, 5206, 10720, 194625, 10480, 41718, - 5818, 194773, 8264, 10229, 260, 645, 119827, 7609, 40973, 4821, 4466, - 120500, 5824, 984, 119027, 8791, 5851, 5705, 7729, 41166, 10591, 41797, - 119983, 65438, 66580, 119984, 42101, 41404, 1165, 7879, 4451, 11401, - 194849, 11284, 119987, 66566, 41909, 43014, 2791, 9363, 9552, 3375, 8641, - 5900, 7539, 7889, 2722, 194854, 13173, 2381, 11602, 10994, 10529, 10773, - 11574, 8644, 11581, 12425, 10661, 10856, 9614, 194917, 41478, 11571, - 10064, 8308, 10748, 66695, 11005, 4868, 119162, 1952, 41406, 8455, 10082, - 11575, 8467, 12577, 12721, 5182, 12183, 6145, 41759, 64929, 4465, 42120, - 12135, 5732, 4464, 7728, 3922, 977, 4458, 120043, 120545, 64770, 119556, - 3353, 344, 917963, 41626, 1395, 41939, 65832, 5776, 8558, 786, 65153, - 120191, 64340, 119352, 10202, 120084, 41027, 7612, 10132, 64413, 120087, - 12840, 119119, 119913, 119314, 119139, 63862, 41896, 8657, 194996, 8594, - 10204, 195049, 120477, 120069, 65819, 1399, 41375, 120056, 917938, 8852, - 64492, 241, 68135, 4907, 194757, 9738, 194975, 9727, 7851, 119196, 10951, - 4439, 11588, 119199, 65008, 9085, 65853, 41911, 9327, 6160, 917594, 8650, - 64865, 8088, 64933, 41910, 118872, 65217, 3965, 120050, 194713, 0, 13300, - 65902, 66654, 65491, 65145, 9041, 65847, 65017, 7504, 4420, 9900, 6410, - 7501, 11278, 65825, 9577, 120047, 13217, 8748, 65415, 0, 9867, 9066, - 12924, 11993, 917829, 2626, 7762, 10902, 7510, 119577, 41526, 64285, - 10472, 2995, 120704, 12907, 41184, 2371, 194994, 10038, 259, 1009, - 118838, 2402, 2333, 6440, 194768, 12050, 65125, 0, 12417, 65380, 9103, - 10181, 3148, 65873, 6434, 7779, 10198, 194952, 9479, 6029, 65325, 65157, - 9689, 41261, 119175, 8993, 8613, 0, 41167, 3368, 606, 41492, 7697, 10228, - 41596, 1890, 194769, 6027, 8370, 4322, 41661, 7991, 66512, 10578, 119168, - 41465, 41054, 2735, 41664, 120330, 63778, 65273, 1287, 65408, 6635, - 66659, 6164, 194563, 41273, 917951, 65027, 41271, 9576, 65043, 3347, - 4160, 5154, 917541, 3794, 66564, 9175, 11925, 7709, 9088, 3743, 65099, - 1396, 4572, 7546, 3847, 66327, 65081, 4985, 1615, 672, 809, 12980, 63806, - 0, 65218, 5799, 41615, 65072, 1577, 194934, 65875, 5928, 4525, 10658, - 65911, 1266, 10180, 120702, 6129, 12622, 9347, 917986, 6532, 64424, - 41048, 7789, 773, 19933, 1539, 283, 64416, 66374, 532, 917800, 120049, - 41115, 3051, 5862, 3370, 120789, 43033, 5439, 3250, 8153, 0, 66649, 9510, - 120279, 64647, 9541, 118916, 41066, 64706, 194612, 43038, 3505, 8707, - 9466, 11479, 8537, 120802, 3626, 3471, 194860, 915, 194689, 6686, 119584, - 120238, 5011, 42754, 120723, 41906, 65569, 119128, 119552, 64365, 119886, - 3225, 68161, 4433, 5186, 194957, 41933, 1443, 4381, 9829, 65124, 10926, - 194746, 195076, 64879, 10562, 194751, 65476, 64579, 66456, 10021, 5160, - 1387, 65495, 6103, 118923, 41480, 12786, 195000, 217, 119898, 11714, - 12466, 10443, 10789, 41158, 41460, 1630, 120782, 41483, 65818, 12565, - 41700, 10077, 12890, 5931, 194732, 9283, 7700, 41252, 6042, 65499, - 119637, 41249, 512, 2990, 917786, 120240, 6413, 917985, 632, 12940, - 194875, 41296, 9545, 41291, 5957, 120353, 8926, 3511, 41282, 5923, 10400, - 10174, 12073, 760, 5386, 4274, 5786, 10633, 120531, 5056, 119860, 417, - 41474, 120773, 11022, 9812, 5934, 4460, 66583, 119231, 64877, 65410, - 64481, 194692, 194705, 10937, 194748, 120218, 10509, 65829, 917540, 2953, - 5819, 1801, 12835, 194942, 120484, 194743, 65910, 41985, 8867, 702, - 120410, 1237, 10274, 4552, 65447, 119966, 194961, 1375, 12106, 120815, - 10264, 1755, 9065, 9228, 10376, 1163, 2951, 7840, 64336, 13282, 10252, - 120033, 3384, 120703, 10167, 830, 194656, 65425, 10769, 8451, 41368, - 12520, 9753, 120147, 8944, 194882, 120248, 10473, 2908, 119614, 19965, - 43025, 10299, 65041, 12097, 64733, 12952, 4441, 10503, 917839, 41430, - 9330, 194859, 6614, 411, 10315, 9676, 4996, 120213, 13281, 10009, 7865, - 2730, 10388, 9677, 5428, 118993, 3364, 7565, 12828, 41711, 118816, 65463, - 9535, 216, 10332, 1401, 119895, 622, 65095, 885, 64772, 1602, 4467, - 41405, 852, 119635, 12108, 41328, 484, 65187, 41051, 12071, 9609, 9806, - 41008, 3338, 120796, 572, 10411, 2736, 10255, 10263, 10279, 2794, 8807, - 64491, 10330, 4315, 5222, 5381, 119058, 917995, 5193, 5125, 5456, 5509, - 41177, 917832, 9534, 195042, 64431, 1603, 3430, 118982, 10298, 120407, - 917885, 981, 41176, 4330, 994, 65841, 1824, 10908, 917879, 41681, 41683, - 5921, 65600, 2597, 3957, 5922, 64547, 65784, 674, 119839, 194945, 2946, - 5354, 5251, 4406, 5307, 3759, 10131, 8364, 5123, 1433, 5281, 5469, 5121, - 5924, 5920, 65758, 5130, 64606, 66481, 119624, 8418, 7576, 1221, 2733, 0, - 742, 5216, 2893, 10772, 65276, 5937, 3468, 2553, 9230, 5939, 3997, - 195091, 8363, 120677, 2993, 7772, 3916, 10289, 64613, 1141, 41706, 8159, - 718, 7572, 973, 9666, 120718, 3235, 2415, 5938, 119620, 8018, 12448, - 120556, 9592, 10337, 194918, 917622, 11729, 120727, 8719, 1202, 195080, - 64651, 12983, 118970, 12165, 119095, 63747, 9067, 3260, 8077, 65388, - 68179, 8419, 63773, 65419, 63774, 194986, 63775, 10725, 10433, 64496, - 194861, 1431, 41843, 66565, 10821, 4359, 12804, 12192, 8229, 1235, 3307, - 11472, 120617, 3146, 4544, 9009, 8551, 118820, 1740, 194749, 7575, 985, - 2724, 13076, 65233, 12068, 119949, 515, 10141, 119944, 9539, 8785, 4476, - 119146, 10959, 12655, 8907, 13226, 4589, 4521, 64205, 9141, 64645, 10665, - 2741, 41572, 6197, 1370, 10101, 41573, 64294, 3931, 194924, 120585, 6184, - 8606, 3303, 11968, 11786, 9473, 13103, 63771, 8879, 11593, 66508, 4478, - 917588, 41735, 65837, 717, 10754, 4477, 120376, 814, 42066, 119962, - 63767, 1780, 41031, 119958, 41387, 819, 10611, 9694, 11955, 65919, - 119953, 41111, 9462, 119071, 7788, 4847, 65542, 6578, 8338, 7523, 120666, - 1581, 6535, 7525, 3346, 430, 64698, 66699, 575, 268, 194940, 4945, 66463, - 4950, 12918, 9456, 8336, 5936, 43017, 5964, 8337, 13081, 308, 917964, - 7522, 64309, 41746, 4949, 118946, 443, 11658, 4944, 5467, 65885, 5926, - 1862, 6044, 65392, 8820, 4946, 119247, 9038, 7887, 65667, 7830, 11651, - 13093, 2698, 41144, 65742, 12072, 41753, 11590, 41304, 824, 120095, 8595, - 65225, 42141, 11415, 4673, 41354, 4678, 13283, 12697, 65059, 12381, 3488, - 5933, 5481, 3490, 1199, 65014, 8356, 12297, 119153, 1955, 12375, 3102, - 10474, 4672, 118849, 119821, 5531, 119823, 119826, 66332, 8835, 4674, - 119006, 5831, 194932, 64896, 12379, 8025, 119947, 64542, 1855, 11957, - 5472, 64425, 7852, 119867, 64951, 120467, 11445, 2745, 5470, 65171, 9124, - 119110, 4654, 65289, 291, 120762, 12688, 10525, 4649, 65209, 11797, - 12647, 4648, 4640, 64713, 10224, 64902, 6246, 64950, 7828, 4650, 41464, - 917624, 119086, 4653, 7822, 120331, 12923, 65674, 8669, 194655, 10729, - 43031, 5778, 6302, 2716, 194606, 12680, 119130, 1417, 10916, 917569, - 6441, 8547, 2711, 11552, 120798, 64953, 7992, 12429, 41907, 4662, 65453, - 120408, 9149, 9146, 599, 4641, 9179, 64819, 63782, 4656, 10130, 41469, - 7811, 40994, 12426, 4646, 5967, 865, 3725, 5713, 5814, 4645, 42033, - 120422, 41756, 13132, 64728, 9026, 10833, 64673, 1659, 919, 41935, 1671, - 11459, 3054, 9219, 9744, 1661, 7605, 4622, 119087, 10140, 9713, 12427, - 41938, 66674, 9045, 2306, 10485, 19926, 6068, 10612, 10401, 4617, 119596, - 120463, 41462, 4616, 10518, 10423, 10359, 66491, 5958, 917842, 9564, - 4618, 826, 65577, 4321, 4621, 195048, 41313, 522, 5368, 1808, 7848, - 194992, 5366, 12201, 5372, 10913, 12668, 917781, 4391, 64331, 2696, - 120155, 11003, 4638, 64490, 1790, 66304, 167, 10921, 9791, 917631, 9840, - 5376, 1835, 5335, 10313, 41370, 4633, 64320, 10265, 1180, 4632, 43009, - 5387, 5333, 64256, 12903, 41, 5331, 1792, 11928, 41548, 5338, 4637, - 120373, 5971, 4289, 120393, 385, 4152, 2585, 194605, 10909, 3126, 1427, - 65551, 10957, 5970, 3431, 64890, 10358, 7531, 4758, 917573, 1608, 2738, - 7443, 10455, 4753, 917854, 11344, 65729, 6240, 5231, 119013, 12147, - 65216, 6248, 0, 2593, 8463, 7810, 65807, 5229, 4757, 65192, 66581, 2728, - 4411, 64563, 65235, 5234, 41124, 120424, 9580, 10066, 9746, 119559, 2622, - 6033, 13061, 8016, 41196, 8954, 64831, 65189, 2632, 12390, 10108, 1011, - 5574, 1853, 2709, 65139, 5577, 42091, 41165, 393, 12450, 8965, 11458, - 42177, 5316, 917940, 171, 5941, 5572, 68127, 5312, 12531, 5525, 5330, - 5319, 10043, 65710, 42080, 8937, 63798, 12454, 7548, 42132, 12063, - 917991, 64343, 3230, 0, 10350, 10644, 5209, 297, 5721, 12109, 8415, 8632, - 10102, 11267, 120219, 2497, 5720, 960, 1692, 42146, 4610, 8696, 4292, - 64760, 4609, 10512, 4614, 541, 194890, 5287, 5309, 2503, 119243, 1762, - 4647, 56, 10743, 5844, 41381, 601, 4613, 10194, 4663, 1899, 4608, 2507, - 11025, 5190, 67628, 63759, 68145, 11405, 8892, 120348, 67620, 66639, - 2734, 5782, 420, 64368, 63795, 41649, 10797, 5960, 63797, 8992, 65293, - 41238, 1782, 12814, 8959, 12525, 10686, 41383, 5501, 41842, 3650, 7442, - 120749, 359, 4183, 119957, 6239, 12787, 41256, 329, 66582, 12573, 120452, - 7437, 9346, 41188, 13196, 7439, 42167, 3767, 5737, 5380, 4865, 195047, - 1155, 120434, 5736, 4368, 64724, 63749, 68137, 5601, 5739, 41023, 4866, - 9985, 7987, 41928, 1172, 64572, 917596, 6253, 120365, 6650, 5603, 41666, - 4473, 64148, 4870, 65901, 65347, 41799, 65345, 8199, 195007, 5347, - 119063, 9280, 4864, 10398, 4144, 119633, 120567, 6245, 120478, 2732, - 5598, 745, 4555, 5341, 119847, 4777, 7821, 5351, 120747, 119589, 41950, - 120729, 120210, 3097, 63817, 5966, 120363, 4778, 120596, 10863, 1660, - 4781, 66460, 271, 41940, 65370, 8577, 65368, 12653, 65366, 10216, 4782, - 10000, 65362, 65361, 11912, 12325, 11323, 8717, 41583, 65355, 4776, - 65353, 11492, 8700, 761, 13168, 10575, 10426, 917905, 120150, 10362, - 11272, 1715, 4849, 8242, 9561, 194982, 195090, 10607, 120511, 120675, - 5963, 66563, 41509, 4916, 4850, 380, 1607, 466, 4853, 194905, 4854, - 917625, 5164, 41096, 1350, 5124, 64420, 120354, 5362, 8471, 2708, 64716, - 7946, 3785, 234, 19963, 120481, 41268, 4848, 2530, 41636, 4798, 1225, - 6630, 65684, 10458, 120595, 8576, 5197, 195087, 2704, 4794, 8329, 63823, - 8322, 4797, 66326, 5725, 2694, 2595, 3363, 2439, 65104, 5607, 41089, 303, - 41162, 119044, 2665, 2437, 917791, 9817, 4844, 8764, 13013, 8934, 65398, - 917929, 4492, 120347, 9843, 2441, 10739, 65090, 1188, 119327, 1100, 2451, - 2714, 41081, 2912, 194817, 4937, 65746, 753, 3572, 10023, 4959, 11722, - 9248, 65815, 9729, 11725, 65190, 119094, 2726, 3107, 194658, 4941, 7996, - 10995, 9140, 1408, 5261, 41412, 9068, 181, 119819, 4942, 43043, 4938, - 41341, 972, 5259, 4004, 64185, 4142, 5257, 194712, 120529, 4964, 5264, - 9538, 64177, 64176, 41225, 64182, 63800, 64180, 11396, 9482, 4873, 3265, - 1822, 194867, 12601, 41078, 3865, 261, 5927, 7568, 118931, 118930, - 917858, 10696, 9830, 6073, 389, 10467, 6255, 6075, 4872, 282, 194633, - 3125, 9567, 195012, 4878, 5459, 4874, 119046, 9557, 3474, 64774, 120356, - 11494, 6081, 9563, 9411, 11017, 13017, 11940, 41033, 65928, 10788, 64190, - 8751, 10385, 120273, 7816, 9414, 4665, 12628, 4670, 119871, 41555, - 120485, 9642, 10912, 958, 12959, 3082, 119112, 4666, 0, 4915, 917896, - 2891, 5856, 12096, 5163, 4664, 10836, 1817, 66724, 12231, 41554, 10564, - 7450, 13077, 42099, 4400, 9697, 3606, 10275, 8925, 10371, 10307, 1063, - 10227, 11410, 9772, 4541, 6299, 1389, 64203, 64201, 9823, 42081, 12941, - 19906, 10520, 118839, 119557, 12301, 64192, 10505, 10878, 42772, 64196, - 12172, 41814, 1017, 64175, 523, 505, 1447, 846, 0, 41813, 917827, 8608, - 120537, 65482, 2543, 12163, 3108, 9745, 4529, 64166, 64165, 64164, 7919, - 120639, 1641, 64168, 64949, 8966, 10251, 10247, 5908, 715, 64161, 64160, - 7542, 1699, 10943, 10763, 120379, 11352, 550, 10169, 11515, 64385, 66579, - 3766, 64856, 5780, 9504, 6611, 257, 10373, 13153, 12061, 10261, 10253, - 6404, 2599, 9433, 6496, 1552, 5930, 66664, 11476, 11447, 3128, 4789, - 5067, 4911, 3760, 1718, 9438, 8827, 1146, 5065, 41435, 4352, 68136, 2435, - 41839, 5064, 5326, 120453, 3778, 1809, 8873, 7824, 19919, 5062, 1264, - 64817, 765, 11697, 3764, 8473, 64092, 8469, 3933, 12947, 4564, 7954, - 917908, 10375, 917872, 119902, 64768, 194983, 41012, 5225, 63910, 42130, - 7903, 5151, 194862, 64121, 64685, 5626, 2569, 66498, 3800, 65424, 119859, - 917575, 5353, 5625, 10894, 954, 8022, 1010, 41043, 65456, 41438, 41439, - 9904, 10711, 4593, 119564, 119003, 2590, 5629, 13309, 7551, 10325, 5632, - 10471, 120038, 64759, 42054, 5166, 5628, 120031, 970, 120029, 4772, 2400, - 5627, 64130, 120018, 12885, 3119, 63998, 10961, 3060, 203, 9986, 917574, - 64344, 636, 11698, 120652, 63832, 42111, 11701, 120448, 554, 64137, 8320, - 64275, 8863, 120442, 42042, 1477, 63803, 194864, 120792, 5694, 7689, - 42142, 9323, 4325, 3047, 3937, 175, 194815, 3169, 64016, 64781, 912, - 1243, 4536, 5431, 6652, 120058, 6244, 65839, 120480, 3935, 120665, 1129, - 917936, 11950, 5392, 68177, 7846, 64024, 5397, 120008, 12046, 12599, - 3845, 4490, 5395, 6556, 5393, 354, 7530, 11977, 41029, 8366, 119183, - 7756, 3901, 65484, 51, 626, 41602, 5895, 9568, 64057, 456, 120333, 8145, - 1168, 9251, 9082, 119964, 9854, 4311, 3866, 8818, 41512, 119952, 118865, - 10324, 3918, 5377, 3797, 1644, 10405, 9658, 4140, 13057, 42029, 42037, - 9030, 813, 119945, 41454, 4146, 195036, 5360, 2466, 236, 195032, 119942, - 6249, 42117, 5898, 120670, 41457, 119148, 5855, 1969, 2384, 988, 119106, - 12838, 64483, 917834, 10341, 10552, 65479, 5854, 120397, 10583, 118933, - 119989, 119940, 10416, 11981, 3872, 119361, 64014, 120725, 6093, 9748, - 2838, 119939, 65843, 170, 120516, 13143, 4169, 118847, 13311, 6058, 6448, - 10553, 1662, 65295, 917782, 64342, 5892, 120822, 10178, 42106, 66, 65, - 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, - 86, 85, 88, 87, 90, 89, 4736, 10357, 64155, 849, 1704, 8556, 120402, - 9659, 64926, 1743, 120512, 9556, 9496, 4503, 11353, 9647, 7876, 68132, - 120575, 3928, 11948, 65283, 10706, 63975, 65427, 4842, 6438, 66509, 9109, - 4841, 1289, 4171, 12008, 6251, 3923, 1490, 2447, 65539, 119187, 10907, - 5245, 119218, 10114, 64000, 9790, 4845, 8332, 10582, 119622, 4840, 5675, - 254, 1747, 65429, 4825, 10626, 8918, 10281, 5716, 64004, 65799, 120576, - 19955, 917989, 8080, 118895, 367, 1472, 120386, 6687, 4829, 64693, 5905, - 12339, 8919, 9515, 4435, 118992, 11023, 119109, 4830, 9134, 41365, 64125, - 41978, 1412, 4594, 1391, 10536, 7720, 4824, 7775, 120425, 120392, 1888, - 1960, 3140, 66449, 7960, 41836, 41844, 6052, 6064, 54, 1428, 12214, - 68098, 6211, 7699, 358, 66592, 10557, 11442, 10758, 8223, 65759, 4261, - 12642, 194844, 120343, 120400, 120496, 119053, 41858, 119055, 64118, - 194902, 64554, 10574, 3878, 4017, 12827, 1752, 65195, 12962, 41118, 3924, - 10199, 118965, 64966, 119019, 120107, 65664, 41116, 720, 324, 194964, - 41977, 12057, 11917, 1464, 41343, 4721, 7974, 64353, 8957, 66484, 64488, - 120371, 9853, 64041, 195058, 12740, 12640, 4722, 917617, 917820, 0, 4725, - 9690, 4726, 194756, 41173, 119843, 118969, 5204, 119248, 67588, 67605, - 4015, 3995, 8052, 476, 3714, 10073, 3595, 10232, 10999, 1382, 64209, - 12636, 64215, 64214, 1656, 41831, 8130, 8672, 8832, 8720, 3908, 1452, - 13111, 64523, 64067, 194926, 8552, 12398, 41845, 3849, 120657, 195063, - 9778, 468, 612, 42150, 55, 65546, 917911, 64515, 1674, 118951, 5823, - 120276, 1114, 42110, 540, 120052, 119017, 12516, 41743, 3938, 120057, - 65417, 64316, 120060, 11340, 820, 41741, 6292, 65303, 7955, 6452, 4713, - 3359, 7800, 41566, 65177, 6226, 353, 719, 9656, 9474, 64742, 41986, 4532, - 65412, 42114, 10868, 4717, 2349, 5902, 66450, 1884, 9481, 64070, 65400, - 3623, 8155, 1195, 3942, 4714, 9625, 41151, 194653, 5012, 12006, 917604, - 12074, 12409, 42027, 4360, 12964, 6454, 1229, 63793, 66437, 41344, - 917880, 8539, 65100, 120508, 4809, 9623, 4788, 120299, 64885, 64745, - 120207, 65405, 65032, 13075, 194866, 5365, 4545, 8901, 8000, 2492, 4813, - 65432, 917999, 5925, 4808, 64330, 9649, 41154, 65030, 5128, 4038, 12718, - 4810, 64859, 12794, 64928, 1648, 5435, 3522, 11303, 414, 10236, 65439, - 12709, 6456, 120494, 65120, 11905, 41082, 65243, 12581, 10374, 5175, - 63796, 68181, 10254, 63820, 9751, 10262, 64088, 41363, 3919, 607, 194698, - 120288, 9018, 5270, 10314, 10282, 65477, 6564, 64310, 40976, 8265, 7737, - 120752, 40975, 5840, 65436, 10162, 40978, 41632, 8454, 42072, 42038, 387, - 119098, 12737, 120294, 2550, 917910, 42069, 118971, 6442, 3525, 66617, - 9860, 64641, 41590, 5619, 41346, 13157, 375, 7455, 66444, 5616, 8531, - 11473, 42753, 119202, 9454, 5615, 194652, 2315, 120830, 1938, 5455, - 64752, 808, 5568, 11347, 119198, 1026, 5620, 65593, 120787, 11350, 5617, - 10893, 9225, 64639, 12902, 9145, 64595, 1338, 120352, 119178, 9863, - 12161, 2587, 64553, 120274, 6455, 6037, 12834, 3974, 7998, 10290, 10888, - 3083, 10322, 2316, 12348, 64027, 41036, 120369, 66442, 12552, 65606, - 119822, 12739, 5373, 120784, 64700, 3762, 1445, 40961, 65304, 11986, - 120708, 40960, 917923, 3780, 7485, 5779, 64952, 10402, 12011, 3906, 9707, - 10603, 8326, 0, 65498, 3763, 11468, 5618, 194688, 3779, 120078, 9324, - 118852, 63822, 9073, 66585, 64302, 10704, 280, 4787, 917861, 68138, - 13072, 1894, 41180, 120111, 9570, 64020, 8699, 2689, 7878, 65426, 65793, - 42135, 41824, 2551, 10456, 6453, 10200, 3998, 65229, 66562, 503, 194691, - 4470, 2690, 118853, 7780, 5369, 41954, 5249, 1652, 772, 8756, 8310, - 65428, 3487, 64873, 3585, 1688, 194956, 119159, 41822, 194874, 6468, - 41904, 9720, 41697, 41319, 13125, 10650, 5836, 12358, 4668, 4355, 9048, - 1465, 10850, 3943, 19947, 41205, 41315, 41488, 120827, 119613, 5352, - 12362, 12435, 8839, 41053, 3266, 7785, 12356, 8616, 12104, 917875, 65625, - 11450, 194755, 3638, 5420, 3897, 3216, 195011, 2358, 4018, 8633, 2850, - 13304, 9639, 65445, 0, 41263, 2561, 63807, 3542, 120023, 12076, 5303, - 8078, 12676, 64418, 6276, 1706, 194785, 41819, 41422, 12943, 11464, - 10792, 41484, 194607, 10847, 41050, 8872, 860, 13099, 118844, 194819, - 118886, 6435, 10830, 194935, 615, 10668, 7574, 917582, 10504, 9779, 3625, - 43016, 41409, 66651, 41425, 65087, 9178, 8789, 41427, 4022, 64531, 11804, - 118889, 11288, 41424, 917598, 118811, 41820, 195010, 65292, 4812, 1261, - 120340, 3911, 12102, 119179, 1033, 64939, 64642, 917921, 3904, 65822, - 10514, 3275, 65226, 917961, 13123, 10846, 11392, 41321, 66513, 12138, - 10989, 119048, 6233, 10598, 449, 2669, 903, 118997, 2920, 9636, 65240, - 10738, 118897, 9367, 593, 41085, 3917, 64172, 11732, 64307, 120457, - 41448, 3596, 119832, 0, 9763, 64082, 8819, 8113, 124, 12981, 41113, 232, - 12234, 120646, 9168, 65811, 10820, 194895, 64053, 9094, 1769, 41715, - 2463, 119065, 1064, 13307, 41976, 1538, 19924, 0, 120476, 7862, 7795, - 1474, 8516, 4828, 1258, 7561, 12744, 11585, 1878, 9498, 0, 2911, 120094, - 41178, 3939, 64823, 8846, 8943, 12617, 41174, 2650, 4491, 1961, 41463, - 11525, 11292, 1959, 775, 66488, 41732, 41016, 6074, 9618, 64827, 1511, - 3613, 66440, 4259, 41436, 3656, 19930, 64533, 41019, 12428, 68160, 11333, - 6243, 8514, 8513, 9054, 1613, 41828, 119360, 65531, 194879, 68139, - 194877, 67604, 5741, 10145, 8865, 6402, 119099, 5788, 7917, 64808, 65730, - 7733, 64359, 4998, 120375, 119904, 65494, 917968, 4268, 41247, 120524, - 120370, 3871, 8036, 10881, 9111, 10621, 41696, 65462, 67584, 10993, - 120745, 9765, 120368, 195089, 11648, 42118, 10321, 65281, 41587, 10949, - 194644, 42107, 917607, 917860, 5416, 10802, 41164, 66318, 65298, 65723, - 5685, 118845, 12633, 7928, 10848, 8094, 41595, 118821, 6474, 794, 65909, - 12656, 10355, 64665, 5274, 1665, 41598, 3993, 119165, 64512, 40971, 536, - 189, 12611, 119234, 194651, 2859, 4838, 63838, 4834, 2338, 195075, - 119145, 4837, 41944, 770, 41452, 811, 1687, 41042, 66620, 120730, 64427, - 64326, 40969, 10526, 3895, 5406, 40968, 1339, 11731, 120473, 10193, 3116, - 7747, 119185, 8020, 10843, 11554, 12825, 0, 8266, 41006, 12371, 2871, - 64614, 41245, 999, 119129, 64567, 12745, 2663, 64586, 119636, 64191, - 68096, 10150, 65367, 64308, 1522, 597, 4775, 10917, 12571, 10448, 12583, - 12560, 12558, 12556, 12584, 1741, 65097, 1227, 4783, 12566, 11013, 12554, - 120558, 10812, 1586, 4978, 195046, 3078, 1402, 5285, 9391, 40984, 9379, - 9372, 394, 3088, 6284, 917966, 41663, 3991, 9377, 120785, 9237, 424, - 41648, 41208, 120366, 9384, 41076, 1830, 120816, 8647, 41656, 8246, - 120307, 917948, 195039, 41840, 119605, 2377, 41676, 64864, 12572, 11318, - 12557, 12559, 5479, 2796, 1003, 2373, 9446, 9447, 9448, 48, 194920, 9480, - 481, 2359, 9125, 9439, 9440, 9441, 548, 9153, 9444, 9445, 9430, 9431, - 9432, 397, 9434, 9435, 3984, 9437, 195057, 1614, 9424, 9425, 9426, 6651, - 1358, 9429, 428, 9620, 9655, 917760, 10982, 9096, 1333, 65170, 407, 6425, - 917630, 917763, 5955, 66320, 1108, 5804, 11976, 8554, 41466, 64782, 3926, - 9057, 11434, 8798, 120734, 917857, 1392, 1883, 7476, 5986, 5985, 8065, - 41326, 10353, 7468, 0, 917866, 4407, 6502, 4019, 119595, 118919, 8448, - 8219, 41688, 1812, 12675, 12659, 41793, 194823, 119167, 42172, 42068, - 6054, 10697, 2386, 119810, 9170, 10642, 3909, 64585, 10296, 41763, - 119171, 10977, 42082, 4164, 1049, 195045, 65707, 11943, 41806, 8709, - 10606, 3921, 12275, 64691, 12936, 8994, 1038, 118966, 8470, 65695, 0, - 577, 119585, 8773, 10733, 36, 194793, 5153, 41805, 13097, 194782, 763, - 8736, 1414, 64495, 9683, 194841, 66681, 120831, 2536, 119951, 66330, - 119625, 8621, 8963, 12852, 3031, 120034, 41345, 66317, 182, 66315, 64402, - 65562, 10210, 120492, 9058, 366, 120764, 9892, 961, 63755, 6426, 4570, - 11478, 3106, 65917, 41284, 1696, 41189, 4003, 12105, 68109, 5766, 12802, - 3264, 8824, 13268, 917801, 10936, 63980, 11287, 6128, 119083, 19956, - 10923, 2322, 12797, 65506, 8300, 65861, 917536, 41285, 3547, 120144, - 8112, 119600, 41459, 41369, 6089, 13000, 43027, 12117, 4170, 1029, 10540, - 12315, 9063, 65101, 119979, 744, 120821, 12897, 3792, 4926, 917623, 6065, - 3551, 194598, 118800, 4623, 41186, 41816, 4598, 41818, 12795, 5968, 7922, - 12614, 10851, 8523, 6179, 119066, 6180, 1863, 4710, 194981, 5956, 11972, - 41290, 65552, 4705, 716, 177, 120739, 4704, 12360, 120270, 64719, 161, - 9020, 3362, 119931, 4706, 10646, 66594, 64788, 4709, 7518, 8754, 19909, - 120237, 120245, 119164, 68144, 7508, 9136, 1700, 4401, 41280, 194711, - 8974, 2308, 119910, 10634, 41791, 2318, 8506, 66361, 8198, 42022, 1005, - 937, 118996, 4734, 2870, 41277, 12319, 66619, 5404, 4729, 3667, 235, - 1384, 4728, 41049, 120420, 120644, 120017, 8109, 65505, 119920, 4730, - 447, 13186, 1513, 4733, 8664, 63978, 65219, 119221, 12911, 9665, 1383, - 8565, 2469, 119866, 12663, 6156, 68117, 917586, 7993, 4288, 119828, 2674, - 13238, 11922, 41145, 41468, 3510, 13234, 41148, 8683, 5605, 42095, 10497, - 12221, 1380, 12314, 41146, 118964, 11441, 13197, 3512, 120682, 9495, - 8103, 194596, 5959, 65184, 11780, 41563, 11586, 120028, 41925, 13205, - 13211, 5801, 41923, 119344, 120316, 1283, 11924, 4779, 7988, 3719, 4006, - 3271, 19957, 64038, 8355, 118799, 8842, 64747, 3804, 13070, 11557, 3875, - 5962, 1095, 64371, 3599, 65880, 5827, 120411, 7787, 120140, 41378, 7465, - 64493, 12207, 4773, 11684, 64034, 119565, 917865, 12785, 42043, 64943, - 66677, 917965, 42046, 9742, 521, 65136, 10800, 41473, 8404, 66725, 483, - 0, 1450, 12986, 928, 11605, 65441, 917882, 10599, 120435, 3989, 10971, - 120016, 5771, 9841, 6539, 12145, 118983, 10074, 194778, 9807, 3769, - 41190, 3973, 12821, 4575, 9573, 7982, 429, 8849, 118967, 65573, 41771, - 1796, 118918, 64887, 6417, 8164, 41301, 3502, 120382, 194912, 64959, - 4919, 10590, 5825, 7755, 68165, 0, 64548, 12661, 1621, 10214, 10418, - 41962, 65868, 41971, 1409, 11551, 1617, 3112, 10824, 5015, 1390, 64403, - 194976, 421, 1756, 5846, 66476, 8666, 120132, 7595, 120360, 7555, 3630, - 5408, 2817, 1214, 12883, 120124, 10218, 41769, 3168, 194916, 42134, 7957, - 2370, 2846, 1056, 119070, 12798, 118910, 120314, 1836, 8757, 65850, - 12327, 3740, 119028, 5622, 65374, 41765, 2341, 3944, 8484, 8474, 120817, - 6135, 3118, 8461, 41942, 12153, 5621, 12799, 8127, 8975, 9451, 7571, - 13073, 12169, 10618, 681, 194562, 703, 120812, 3272, 8781, 12894, 120527, - 11709, 119601, 4815, 42053, 6561, 8279, 8776, 64954, 3276, 917976, 6290, - 4267, 120104, 41325, 65021, 11706, 917825, 12171, 10047, 9710, 3262, - 194604, 194939, 119200, 42020, 118788, 163, 576, 9895, 1655, 5842, 12479, - 3122, 10417, 7793, 65581, 9328, 64352, 10039, 6003, 12569, 5623, 120026, - 5717, 3986, 120634, 42023, 8912, 64555, 12604, 64078, 65700, 3627, 4523, - 64934, 11595, 8540, 11498, 8887, 4574, 41040, 2459, 64886, 13060, 41041, - 8946, 10348, 10412, 5718, 120088, 10450, 8147, 13221, 66329, 9999, 3765, - 119885, 68153, 1606, 12178, 686, 3093, 119126, 4619, 10600, 6654, 7712, - 64826, 4312, 41918, 65689, 10128, 11923, 4023, 41892, 5763, 120335, 4827, - 2401, 12810, 8792, 120346, 4455, 7826, 433, 64824, 66660, 2499, 41812, - 12886, 65375, 11973, 13089, 4293, 10300, 10161, 10396, 12196, 66322, - 66630, 194901, 119319, 3010, 5817, 65719, 1458, 3120, 9797, 9643, 119317, - 4984, 10389, 66682, 9100, 9017, 120364, 120243, 1061, 4699, 9115, 3509, - 0, 486, 4290, 9896, 12291, 120620, 194887, 1045, 120204, 5631, 10380, - 9626, 2380, 0, 194863, 120678, 2376, 8486, 120618, 9824, 2335, 4362, - 12174, 194909, 2366, 1025, 195101, 12634, 120760, 65423, 41443, 120732, - 917847, 11713, 1774, 1523, 917561, 5058, 41445, 65762, 65310, 8567, - 41442, 3988, 0, 64882, 1847, 917947, 10403, 8564, 65385, 65076, 65117, - 120413, 194811, 65908, 12616, 65887, 6256, 119628, 12671, 194933, 10206, - 118974, 917792, 2673, 11960, 5820, 9318, 4488, 119567, 7926, 65358, - 10444, 42137, 9893, 2754, 9850, 41437, 4487, 12722, 41957, 1032, 65530, - 1711, 12984, 43039, 3114, 614, 120691, 13116, 64923, 120790, 926, 120640, - 65670, 64204, 194848, 194676, 10832, 120362, 1050, 7549, 41035, 11583, - 9314, 41801, 119088, 120616, 520, 10437, 9558, 8331, 917806, 3091, 41034, - 917887, 2307, 8360, 10097, 65768, 321, 41028, 12750, 917903, 65563, - 120241, 120262, 2861, 10360, 10095, 0, 66307, 440, 1861, 13085, 9233, - 120265, 64532, 43041, 119158, 12123, 13133, 3859, 10570, 41660, 8209, - 65778, 118841, 10910, 120423, 1521, 7875, 41658, 10487, 120606, 5760, - 13011, 743, 4414, 119571, 118873, 65769, 5243, 9849, 5239, 65771, 10778, - 1405, 5237, 917878, 65112, 10103, 5247, 4769, 42063, 5508, 120829, 5764, - 11792, 3513, 3008, 9378, 120395, 194960, 10125, 65364, 41103, 9394, 6485, - 1397, 64795, 65365, 119093, 4770, 120590, 9392, 8731, 7471, 12079, - 120619, 11316, 9122, 194725, 4774, 3019, 9997, 11549, 194919, 1099, - 10215, 65565, 1340, 9390, 66717, 41453, 464, 4281, 4768, 9385, 64470, - 1346, 4995, 65679, 12087, 9780, 423, 1818, 65144, 66665, 8272, 917844, - 66324, 12904, 3087, 64960, 10111, 19967, 64707, 0, 9584, 8214, 194998, - 12159, 12626, 9106, 118907, 40979, 5806, 64750, 64517, 8243, 9123, 5709, - 0, 265, 10922, 13255, 12605, 917628, 2752, 64626, 120256, 1434, 59, 5637, - 11573, 0, 64897, 68129, 19951, 10379, 66305, 119345, 41809, 10283, 41983, - 7547, 64684, 1156, 8009, 3305, 3782, 511, 12496, 63752, 1014, 64360, - 11906, 120125, 10835, 10157, 65536, 1400, 10323, 10685, 7702, 41211, - 10387, 4453, 2440, 3758, 1150, 10547, 5700, 19910, 65349, 65383, 2339, - 64019, 5697, 41156, 6617, 9116, 119227, 0, 462, 41841, 10493, 3862, 8129, - 917958, 120404, 12864, 6644, 9845, 64794, 8261, 5701, 9722, 9581, 1385, - 1426, 119992, 41125, 41872, 194620, 11404, 6493, 119896, 13288, 120108, - 5167, 120717, 1681, 12184, 1204, 3755, 11935, 7748, 8213, 3286, 8911, - 64712, 10744, 65356, 990, 5647, 5726, 64915, 10377, 118947, 11477, 5646, - 65044, 11018, 2851, 3945, 120096, 120119, 4373, 194948, 12997, 9587, - 1789, 1020, 120097, 3100, 41497, 5648, 64748, 13162, 119336, 10205, 3545, - 8190, 10016, 64616, 917890, 6506, 64312, 66669, 2368, 63993, 4419, 65727, - 66469, 3439, 1825, 1192, 119166, 8891, 3080, 118836, 2347, 5430, 1140, - 8990, 2848, 10159, 41859, 120212, 249, 917777, 9173, 12191, 1815, 194832, - 890, 8883, 3267, 728, 42144, 995, 120633, 4410, 1041, 10576, 8102, 10099, - 10343, 19945, 8091, 558, 120110, 12273, 13163, 19938, 12112, 12446, - 41389, 64482, 65214, 5375, 10142, 8548, 8215, 3129, 6134, 12913, 9005, - 41856, 13242, 64891, 7725, 11938, 11662, 119326, 8624, 5173, 19959, 527, - 120701, 41894, 10327, 6277, 10608, 10010, 9879, 917612, 3540, 41672, 835, - 2329, 120813, 12238, 13001, 7849, 12245, 5426, 4258, 63987, 41787, 5424, - 12016, 8283, 120808, 5434, 194561, 194937, 8067, 6144, 194758, 10311, - 118977, 1404, 3095, 11432, 120211, 3464, 494, 4819, 119608, 65098, 570, - 956, 3672, 13112, 1498, 120100, 65857, 119184, 431, 10029, 65159, 195066, - 8761, 41537, 13171, 13096, 194953, 65108, 118911, 9516, 1044, 5268, 0, - 4954, 194972, 4450, 11795, 11547, 64358, 11946, 356, 3477, 227, 10488, - 13214, 382, 11418, 12295, 120641, 11475, 917845, 3020, 11537, 6484, 2541, - 917998, 12364, 11337, 65568, 1057, 566, 9110, 119104, 2743, 64931, 63965, - 64338, 9097, 66571, 41305, 8782, 3006, 776, 2524, 1592, 8573, 917843, - 10924, 65164, 63941, 41593, 4397, 8952, 3856, 66505, 119892, 5872, 6495, - 120510, 6486, 41155, 1698, 13177, 12830, 5413, 3953, 1053, 19917, 65094, - 11448, 4339, 1052, 1051, 459, 1060, 917853, 66479, 65299, 65703, 5228, - 119955, 7868, 689, 6508, 4163, 120757, 8639, 66641, 43022, 65510, 1162, - 12130, 2671, 65806, 8095, 64375, 7521, 42178, 4553, 195034, 0, 12299, - 41433, 195004, 19921, 64298, 11424, 64169, 4567, 41891, 1926, 66646, - 119056, 4820, 8110, 10935, 64690, 194665, 5830, 119212, 1377, 119889, - 4897, 12932, 9250, 8693, 4438, 194947, 917560, 1753, 11331, 6147, 11431, - 64621, 8833, 120671, 0, 6504, 41428, 64596, 10719, 43012, 1898, 1413, - 194763, 65394, 802, 12141, 917953, 5561, 6648, 10671, 2528, 41774, 41379, - 9169, 838, 5669, 64484, 844, 5014, 65854, 256, 0, 5583, 41987, 120280, - 41399, 5580, 65464, 2923, 10853, 5582, 10048, 65699, 13069, 5795, 13158, - 66598, 65702, 6087, 65701, 41322, 12180, 65704, 120662, 194850, 194582, - 8894, 5370, 64055, 118917, 1638, 10966, 12200, 194630, 118848, 5733, - 67631, 64288, 194966, 8172, 42017, 5729, 10844, 8319, 6498, 9760, 0, - 120106, 1238, 200, 120555, 1062, 119993, 118893, 118905, 917606, 195069, - 1070, 9361, 917942, 6095, 3394, 120664, 3015, 120609, 41827, 4037, 7763, - 6400, 65186, 66626, 7817, 1841, 11276, 12976, 65724, 372, 1669, 10776, - 63937, 7701, 41585, 64397, 119211, 1732, 276, 41862, 2828, 33, 65326, - 41768, 6491, 65332, 41588, 914, 427, 8071, 3538, 3900, 65321, 41864, - 1031, 6257, 7614, 41869, 120826, 120573, 2328, 12399, 1071, 41400, 65537, - 13249, 10841, 41627, 5301, 1047, 195094, 5734, 8960, 11312, 8001, 10651, - 119970, 65012, 9663, 66441, 12304, 41621, 5711, 12921, 12098, 65571, - 9166, 12164, 5710, 64363, 65585, 65168, 12447, 10571, 917975, 119617, - 119246, 64611, 5558, 917888, 5715, 10915, 120118, 12007, 3670, 2761, - 11975, 64811, 3074, 5722, 194876, 8629, 120632, 11307, 4499, 2757, 4496, - 9718, 120116, 8910, 10689, 120391, 12717, 65451, 11782, 194822, 66316, - 194729, 41630, 41640, 65596, 917840, 11416, 4280, 13118, 8765, 12784, - 7792, 1393, 917542, 8701, 6585, 8487, 8233, 917788, 119874, 6683, 120009, - 4495, 12144, 2841, 12543, 119320, 1473, 10490, 64329, 118984, 65467, - 120006, 6488, 357, 1048, 41100, 917809, 41104, 65122, 8035, 1054, 917950, - 1040, 65450, 5454, 4434, 1069, 195095, 13019, 194906, 119261, 5084, - 65402, 119133, 9693, 12354, 733, 10762, 41677, 41102, 4353, 41674, 1059, - 9218, 1731, 917883, 120528, 120000, 120643, 41679, 8299, 11994, 118833, - 64390, 194922, 5155, 11599, 12743, 42122, 6480, 65740, 41779, 0, 3587, - 12131, 41432, 10986, 66602, 9605, 64807, 12788, 43020, 41767, 3371, - 917549, 13114, 8771, 1479, 41022, 194950, 1109, 11000, 120740, 64508, - 9770, 9246, 12230, 63801, 8868, 399, 65137, 41783, 41772, 64045, 11742, - 2755, 551, 917803, 10156, 4857, 9874, 4428, 2544, 65074, 194614, 120209, - 917811, 194786, 351, 5747, 12179, 194603, 7978, 41092, 118954, 120502, - 10791, 19935, 10712, 65015, 120667, 563, 64815, 120722, 9013, 5588, 57, - 0, 10386, 65269, 119043, 5585, 65881, 2549, 694, 66712, 9876, 5584, 8358, - 64717, 10238, 65279, 10919, 277, 7980, 119298, 41815, 120233, 41800, - 5589, 41807, 2664, 12793, 5586, 1574, 10513, 11356, 2525, 4852, 5749, - 917765, 41605, 64696, 119306, 1039, 9801, 10155, 5745, 188, 8135, 6450, - 10055, 66604, 9055, 41853, 4858, 5657, 194700, 436, 4771, 194639, 2786, - 5654, 4856, 8051, 120799, 119026, 194891, 5652, 10945, 194581, 120761, - 12280, 3661, 7863, 118834, 119933, 41302, 66608, 64699, 5402, 10234, - 5843, 11939, 5655, 42157, 195079, 3157, 1055, 194955, 917553, 3504, - 64785, 118790, 10822, 5149, 41927, 10226, 41871, 13159, 3594, 10272, - 10304, 40, 12657, 594, 10244, 386, 9453, 8834, 10816, 118866, 3467, - 41010, 119579, 3331, 946, 10231, 1495, 8131, 13179, 119045, 9562, 4304, - 65927, 8160, 120234, 63974, 64529, 64656, 63995, 1348, 12239, 64013, - 5666, 13303, 10555, 120751, 119919, 7599, 10798, 65230, 13269, 10195, - 119932, 7732, 41905, 9793, 0, 6097, 5668, 8780, 4982, 119883, 5670, - 63969, 120298, 12741, 2672, 3735, 5667, 13138, 119915, 9484, 10724, - 13203, 119024, 65258, 66496, 4361, 9487, 64314, 9286, 1497, 120169, 1932, - 12442, 6193, 3571, 11984, 917945, 7973, 119157, 64821, 11964, 12613, - 7873, 11399, 119219, 553, 13049, 41533, 194857, 3604, 65912, 4587, 66709, - 120048, 66667, 12746, 1962, 120083, 194696, 5633, 11660, 66337, 7559, - 120593, 64905, 12856, 5437, 65208, 10669, 6443, 7964, 63971, 9135, 199, - 10976, 4105, 63880, 120622, 120181, 65816, 12148, 13148, 7560, 66686, - 9226, 120439, 11669, 6472, 5634, 4524, 12720, 4724, 67625, 8407, 66323, - 12224, 119201, 194938, 5221, 64348, 328, 7886, 41701, 5448, 5636, 6680, - 5329, 194650, 5638, 6679, 7940, 119076, 118938, 65182, 5635, 3373, 2986, - 118880, 194629, 3437, 119358, 6203, 9833, 12693, 11920, 8274, 194838, - 11685, 1657, 41558, 119610, 7585, 5639, 2954, 5660, 5640, 65376, 194818, - 65102, 19960, 66475, 5297, 41637, 13284, 6112, 7968, 41625, 194737, - 194699, 118955, 11705, 5642, 0, 64630, 42181, 4342, 11710, 67630, 1677, - 64803, 4585, 5641, 8259, 10643, 1058, 2719, 119570, 194638, 194993, 1144, - 5868, 120436, 10867, 11302, 13277, 4308, 2539, 917848, 7505, 543, 64916, - 64736, 2547, 10209, 66670, 65317, 5399, 19911, 917850, 41633, 7902, - 64932, 9000, 12233, 11299, 66499, 1865, 119618, 5613, 194772, 12994, - 65057, 5610, 0, 6228, 4307, 3482, 42133, 10787, 194609, 2997, 506, 5609, - 41194, 12863, 194776, 12316, 41195, 2412, 8169, 8186, 8841, 9522, 516, - 13130, 41197, 917795, 34, 64007, 10030, 5306, 1612, 66622, 42765, 11704, - 65756, 12001, 10211, 119869, 64564, 66365, 65147, 6584, 7749, 120175, - 65693, 1758, 413, 10667, 4677, 120197, 9133, 1935, 11517, 1042, 120196, - 64779, 1931, 10248, 6185, 64776, 1217, 10242, 708, 825, 118913, 65680, - 12294, 41207, 119903, 9138, 2534, 810, 12631, 194911, 120491, 4424, - 119255, 4895, 1239, 2364, 11313, 119149, 3403, 119193, 194610, 64364, - 63952, 65250, 10027, 8998, 194627, 917771, 9152, 194896, 67592, 2980, - 755, 41850, 931, 3433, 13170, 12615, 1594, 42767, 11274, 67603, 12944, - 41623, 8730, 41353, 11587, 67611, 4337, 65188, 41394, 918, 119223, 935, - 7681, 65676, 377, 41393, 11649, 120621, 2477, 64301, 66454, 917826, - 194899, 65201, 9528, 65155, 573, 19912, 7907, 11417, 120186, 194885, - 65328, 10673, 119217, 119938, 67607, 11482, 1781, 5496, 3357, 62, 1649, - 120549, 964, 119242, 64535, 41009, 917773, 11589, 65035, 194872, 65038, - 917605, 64602, 67618, 65840, 11580, 12711, 66575, 4542, 65779, 8423, - 3348, 448, 119173, 2991, 9364, 120036, 997, 7949, 120772, 12849, 11341, - 11440, 3073, 9866, 9714, 11692, 4657, 12988, 4658, 6478, 12335, 119228, - 41975, 6241, 2818, 4877, 2385, 5463, 41897, 4172, 10052, 4409, 8373, - 10873, 12095, 65745, 5346, 120328, 194925, 6237, 5461, 64058, 9176, - 11597, 40974, 64937, 64828, 11419, 120406, 766, 1257, 917547, 10970, - 2408, 3251, 64154, 3274, 5465, 41501, 2461, 120523, 120321, 5342, 8317, - 120394, 68163, 3263, 120046, 8673, 194719, 3270, 64539, 11489, 118999, - 120388, 66672, 120560, 5535, 9142, 195018, 756, 8687, 10938, 120658, - 66443, 1182, 2542, 186, 917862, 119156, 5770, 529, 42115, 12612, 12949, - 10586, 10790, 10839, 8920, 5241, 6479, 41713, 120427, 41594, 225, 11578, - 5688, 41300, 41204, 119105, 118794, 10721, 41209, 9254, 42097, 1794, - 41875, 65238, 5624, 266, 120221, 67637, 41873, 3617, 11324, 41494, - 119824, 8420, 13088, 65755, 1872, 41338, 3734, 7734, 120174, 5502, 65890, - 4452, 41260, 917767, 0, 4511, 5161, 10572, 917614, 11425, 42050, 64349, - 41083, 917884, 917925, 63979, 9003, 8192, 120039, 5305, 9653, 10616, - 1697, 9546, 917930, 194847, 119174, 41482, 65205, 10031, 64063, 9870, - 12535, 8620, 65824, 5581, 8799, 42131, 42031, 64062, 1028, 64060, 64059, - 837, 10567, 119960, 41606, 3176, 64773, 11427, 2902, 64043, 64042, 41740, - 3609, 120550, 13200, 832, 64044, 42156, 10076, 64040, 64039, 12919, 1034, - 3392, 10753, 5180, 64033, 41395, 65468, 11691, 64037, 64036, 41898, 4291, - 63966, 64015, 41114, 243, 8479, 64354, 6024, 11351, 12128, 194908, 3476, - 8973, 8538, 64011, 64010, 64008, 4285, 4800, 7706, 41750, 11604, 2538, - 11609, 204, 7563, 4802, 4111, 8239, 9098, 4805, 64001, 214, 7885, 42143, - 8321, 65893, 12208, 4767, 9343, 64049, 41729, 119986, 1133, 19948, 64052, - 64051, 41187, 8692, 6022, 11788, 10005, 12329, 41333, 120569, 43, 1942, - 12682, 1016, 41107, 12619, 41121, 3885, 92, 64023, 64022, 64021, 6582, - 43030, 12451, 64025, 9167, 41485, 12035, 119208, 6254, 10501, 64018, - 8890, 12457, 66587, 194836, 7582, 64778, 118915, 118813, 66635, 120044, - 66621, 7995, 8759, 41411, 13094, 12449, 7532, 41414, 65109, 3179, 13279, - 4720, 10165, 917618, 119249, 120673, 10751, 9051, 12915, 65913, 10535, - 917892, 4993, 194586, 6168, 10934, 1946, 294, 41874, 5494, 4639, 65929, - 12040, 6196, 4498, 194907, 64028, 8146, 41789, 41788, 2960, 118786, - 118795, 8969, 119884, 10197, 66599, 67621, 2950, 11998, 6210, 11433, 370, - 3549, 64790, 7801, 4953, 11461, 64356, 194973, 3297, 9699, 120693, 1135, - 12700, 7447, 5063, 3517, 2964, 119257, 0, 2552, 41546, 60, 10627, 8649, - 8252, 729, 67624, 119934, 6682, 120007, 43046, 41770, 41547, 9032, 64820, - 65906, 65817, 41215, 119897, 65883, 12832, 119592, 8081, 3761, 3537, - 119908, 9137, 119906, 8999, 65343, 3850, 3466, 4327, 120112, 9373, 66369, - 908, 6282, 6681, 9813, 194997, 41655, 537, 41511, 4179, 8978, 41213, - 65866, 1842, 10527, 120409, 9628, 3848, 12081, 9826, 64502, 1767, 5336, - 120200, 64659, 663, 194846, 10780, 0, 3059, 120024, 119626, 120198, - 66689, 347, 42112, 40992, 4100, 920, 1811, 1355, 7739, 65198, 3592, - 10078, 5318, 194910, 65578, 8592, 65870, 6224, 120192, 9381, 13244, - 64345, 118885, 9281, 3296, 12865, 120715, 1895, + 74224, 4851, 0, 0, 0, 0, 7929, 0, 194682, 0, 0, 66480, 0, 42833, 74529, + 12064, 0, 596, 0, 0, 65842, 8651, 0, 0, 120218, 12995, 64865, 1373, 0, 0, + 5816, 119067, 64810, 4231, 917833, 0, 4233, 4234, 4232, 917836, 0, + 120210, 917841, 917840, 0, 8851, 0, 0, 0, 41601, 8874, 0, 7748, 0, 0, 0, + 0, 41603, 9784, 0, 9188, 41600, 0, 0, 0, 1457, 3535, 0, 0, 0, 0, 65240, + 11951, 0, 3404, 0, 0, 0, 1759, 0, 194964, 0, 0, 0, 66577, 0, 0, 65859, 0, + 0, 0, 0, 0, 0, 65930, 9834, 3055, 9852, 0, 65288, 0, 11398, 0, 0, 119255, + 0, 0, 603, 0, 43548, 0, 0, 917824, 3350, 120817, 64318, 917828, 127089, + 3390, 74483, 43265, 120599, 917830, 917829, 0, 1919, 3400, 0, 917813, 0, + 917540, 66446, 64141, 8562, 64139, 64138, 4043, 8712, 64134, 64133, + 11297, 0, 0, 11966, 64128, 0, 0, 0, 64132, 10867, 64130, 64129, 0, 0, + 9779, 2764, 66002, 0, 9471, 0, 66021, 0, 0, 5457, 5440, 8857, 0, 65282, + 2843, 5355, 0, 0, 0, 5194, 11657, 0, 0, 0, 0, 0, 0, 127027, 10717, 64570, + 5630, 74350, 64143, 10682, 0, 10602, 800, 42499, 66186, 0, 0, 64930, + 11631, 64146, 64145, 64144, 762, 13172, 118859, 0, 0, 10906, 1353, 6960, + 0, 0, 5828, 8724, 917806, 8933, 1601, 42244, 858, 7080, 917808, 917807, + 8090, 0, 74401, 917811, 587, 0, 0, 0, 0, 0, 0, 2750, 0, 556, 64158, + 64157, 0, 12213, 0, 2760, 0, 0, 0, 0, 64156, 64155, 42496, 0, 64151, + 64150, 12679, 10053, 10421, 11787, 64153, 64152, 0, 0, 4839, 0, 0, 1874, + 120352, 0, 6577, 64125, 64124, 64123, 0, 0, 0, 7007, 7590, 65443, 9036, + 0, 64122, 74422, 66609, 0, 64117, 64116, 6287, 64114, 2725, 64120, 64119, + 64118, 42128, 0, 1177, 65601, 12322, 64106, 0, 0, 64102, 7859, 1945, + 64099, 0, 10453, 64104, 7188, 7997, 0, 0, 0, 8705, 64097, 64096, 9571, + 528, 917989, 0, 11429, 0, 0, 0, 0, 73841, 0, 0, 9056, 0, 6188, 120019, + 6155, 64068, 1823, 64066, 64065, 64072, 64071, 63, 7233, 0, 0, 41904, + 6639, 64064, 0, 0, 0, 1176, 118959, 0, 8162, 0, 0, 0, 120519, 66376, + 66242, 11415, 4333, 9855, 64112, 64642, 0, 5388, 0, 0, 0, 7714, 66222, 0, + 7768, 0, 4199, 64708, 0, 0, 0, 8708, 9560, 64077, 64076, 8996, 4992, + 4471, 42622, 64079, 64078, 0, 0, 0, 0, 64615, 0, 0, 12075, 0, 0, 5174, 0, + 0, 0, 3123, 0, 12685, 0, 8408, 64704, 0, 0, 9223, 0, 41616, 0, 73797, 0, + 1116, 0, 43049, 0, 43050, 8548, 0, 0, 119061, 0, 0, 13115, 64092, 64091, + 9322, 0, 120595, 64095, 64094, 8111, 66247, 42332, 64089, 64088, 6199, 0, + 0, 11434, 64083, 64082, 11329, 7737, 64087, 64086, 64085, 64084, 0, 0, + 41335, 4118, 1797, 0, 41334, 0, 46, 0, 0, 298, 0, 0, 0, 42627, 0, 32, + 6187, 119052, 11495, 11459, 3665, 0, 42871, 0, 19923, 74335, 0, 0, 66239, + 0, 64403, 4412, 7240, 0, 0, 0, 65758, 12750, 4181, 8544, 0, 120199, 0, + 120198, 120203, 6181, 65014, 0, 0, 0, 3639, 119588, 0, 0, 0, 10073, + 120206, 0, 0, 0, 42844, 7498, 1098, 0, 0, 0, 0, 10207, 8789, 0, 0, 0, 0, + 9234, 0, 6182, 0, 65058, 0, 0, 0, 0, 5471, 9461, 5573, 118936, 5473, 44, + 0, 66244, 118907, 0, 66238, 12844, 0, 1622, 7767, 1900, 41339, 11458, 0, + 0, 6581, 5576, 0, 64405, 41337, 0, 0, 8947, 0, 0, 41694, 0, 0, 7908, 0, + 10408, 6579, 0, 194829, 0, 0, 0, 6583, 7761, 127010, 120504, 194828, 0, + 5058, 41010, 9992, 0, 5057, 0, 0, 74538, 5054, 118951, 194971, 0, 0, + 1437, 41617, 658, 3497, 0, 7486, 5061, 5060, 4235, 0, 0, 0, 12113, 4236, + 4727, 0, 0, 7693, 10749, 0, 7488, 5773, 978, 0, 0, 41619, 10239, 0, 0, + 66209, 0, 0, 9748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9341, + 119596, 2379, 11325, 0, 64668, 67854, 8125, 120545, 0, 119175, 917940, + 2369, 0, 0, 0, 119235, 74092, 73936, 7008, 0, 0, 0, 0, 2367, 0, 0, 264, + 2375, 8060, 6194, 119858, 1844, 119084, 0, 12858, 0, 0, 6961, 0, 0, 0, + 8800, 0, 42862, 4463, 65581, 6192, 194676, 42771, 0, 0, 725, 65042, + 118797, 120800, 0, 12892, 0, 0, 0, 0, 0, 0, 0, 120707, 0, 0, 5074, 5073, + 0, 8983, 0, 917939, 0, 5072, 0, 6198, 11614, 0, 196, 0, 0, 0, 4929, + 120342, 0, 0, 0, 0, 42847, 0, 0, 0, 4934, 0, 41323, 9758, 0, 120341, 0, + 42584, 0, 4329, 41321, 4979, 3048, 7752, 41320, 0, 74418, 12819, 0, 5071, + 0, 3642, 0, 5070, 10042, 0, 3987, 5068, 0, 0, 120216, 0, 0, 10636, 73981, + 11806, 43167, 4531, 1245, 9105, 66463, 4921, 120219, 4926, 65544, 73884, + 194619, 0, 0, 64709, 0, 194620, 120790, 4922, 325, 992, 119568, 4925, 0, + 0, 9526, 4920, 0, 948, 0, 120208, 4930, 0, 0, 120275, 4933, 0, 0, 0, + 4928, 0, 0, 74770, 0, 0, 722, 0, 19908, 12637, 0, 119855, 8753, 1509, 0, + 5468, 9511, 0, 0, 1672, 6205, 10864, 74586, 0, 0, 0, 0, 0, 73863, 0, 0, + 41607, 120115, 1679, 120116, 194932, 120113, 0, 7005, 41609, 9580, 0, + 401, 0, 120109, 6968, 5761, 342, 8553, 0, 8143, 127115, 11983, 127113, + 624, 74508, 0, 119630, 5078, 74258, 12478, 0, 5076, 0, 194609, 0, 120097, + 685, 9025, 1524, 12618, 0, 5539, 0, 120095, 120102, 120094, 120552, 0, + 194611, 0, 0, 12520, 8058, 9732, 0, 5080, 64775, 5036, 5035, 120590, + 42604, 0, 0, 8074, 275, 13291, 1907, 0, 4432, 0, 5033, 0, 0, 4836, 3888, + 73792, 10729, 64546, 194600, 120681, 194937, 0, 67588, 119000, 0, 0, + 8858, 6409, 0, 120252, 0, 0, 0, 66321, 0, 12814, 0, 3432, 10218, 0, 6094, + 7641, 42445, 0, 0, 42406, 1676, 74320, 194607, 0, 5030, 0, 0, 0, 0, 9622, + 0, 0, 0, 0, 0, 0, 0, 10544, 12919, 0, 0, 0, 0, 0, 0, 0, 947, 119835, + 194586, 194585, 10969, 119935, 7613, 119937, 119936, 4795, 119930, 7018, + 64914, 0, 120192, 120268, 0, 43567, 74056, 917910, 0, 119919, 7216, + 65232, 7217, 251, 7218, 7895, 4395, 43538, 119926, 119929, 119928, 7213, + 119922, 7214, 7215, 0, 74141, 8880, 7685, 0, 120173, 65540, 119618, 625, + 8187, 42861, 1113, 7236, 7915, 3630, 120176, 8179, 74264, 67886, 9316, + 10980, 2489, 65624, 8150, 1359, 0, 0, 0, 73756, 5042, 5041, 42769, 12084, + 0, 0, 0, 0, 0, 0, 0, 0, 12283, 1616, 3795, 0, 8795, 66245, 0, 0, 0, 1138, + 73905, 12677, 0, 0, 3239, 0, 0, 0, 8431, 0, 42164, 0, 11778, 12620, 0, + 73773, 119073, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 5038, 0, 0, 13184, + 74293, 0, 64648, 0, 9359, 0, 0, 0, 65157, 6662, 0, 0, 3863, 73909, 4835, + 0, 0, 0, 4309, 0, 194569, 0, 194568, 1301, 0, 119595, 569, 0, 0, 711, + 119085, 0, 0, 73880, 11610, 11368, 0, 194571, 41331, 1006, 74240, 0, + 1550, 8201, 73737, 7627, 5499, 5031, 0, 0, 65784, 0, 65267, 3758, 0, + 65781, 64734, 0, 2440, 65780, 0, 8449, 0, 5008, 0, 8822, 0, 12121, 8255, + 5512, 73875, 119560, 0, 64313, 2641, 5906, 1119, 127068, 13038, 0, 2455, + 0, 118809, 0, 0, 0, 0, 8714, 0, 4211, 0, 0, 0, 0, 0, 5052, 66220, 5821, + 6186, 65778, 65775, 5051, 65773, 1429, 42647, 5050, 302, 388, 41115, 735, + 6637, 5907, 120670, 0, 12726, 74594, 9117, 0, 0, 5513, 6666, 5053, 74230, + 5510, 0, 0, 0, 2470, 0, 0, 1925, 0, 0, 0, 0, 5048, 5047, 0, 0, 0, 194863, + 0, 74497, 0, 8089, 6929, 639, 0, 68179, 0, 0, 0, 4599, 41402, 6674, + 120631, 43294, 1476, 648, 0, 65819, 3233, 0, 0, 10164, 0, 0, 3530, 9750, + 0, 0, 6656, 194858, 0, 5046, 8512, 65856, 74261, 8967, 0, 5045, 0, 1916, + 7986, 5044, 120556, 9006, 13128, 5043, 0, 7853, 74068, 74004, 9669, + 12341, 12703, 8402, 0, 119070, 0, 41750, 3586, 64508, 43148, 0, 0, + 119606, 0, 13296, 517, 0, 0, 0, 41528, 123, 65454, 0, 0, 74478, 10531, + 7784, 41526, 10829, 73991, 8057, 1126, 73895, 0, 194591, 0, 3925, 0, + 8069, 43142, 120439, 489, 0, 0, 120441, 120452, 43151, 0, 0, 66200, 0, 0, + 0, 0, 0, 0, 8711, 6183, 0, 0, 0, 120448, 7623, 118925, 194853, 9235, + 12760, 74176, 0, 66445, 43540, 120437, 3743, 11514, 11078, 0, 12136, 0, + 0, 120435, 0, 7726, 0, 19922, 267, 3393, 0, 1371, 194849, 0, 2458, 0, + 6201, 0, 41074, 4266, 10652, 41612, 41077, 3402, 9050, 3398, 0, 0, 0, + 3391, 41075, 2476, 0, 917550, 0, 10625, 0, 12767, 13017, 0, 64261, 64934, + 0, 13014, 13013, 0, 6673, 0, 0, 0, 12438, 0, 0, 0, 0, 0, 9053, 13015, + 74523, 0, 704, 66215, 6195, 0, 6660, 194941, 917760, 917793, 0, 12629, + 11435, 0, 0, 65538, 0, 0, 0, 74547, 0, 65448, 0, 12948, 195003, 195002, + 119238, 195004, 195007, 195006, 0, 0, 4287, 8276, 4902, 1131, 0, 0, + 66728, 1816, 0, 42533, 168, 0, 4898, 64298, 0, 0, 4901, 1821, 0, 578, + 3653, 0, 791, 9162, 6977, 0, 119298, 74561, 0, 73731, 8354, 43590, 0, 0, + 7557, 0, 119301, 8234, 7241, 0, 194994, 119167, 194996, 12811, 65925, + 3946, 195000, 10998, 0, 673, 194867, 64397, 0, 74599, 0, 0, 194977, + 194976, 2448, 194978, 10267, 8424, 2452, 120760, 194864, 8729, 0, 0, + 7845, 0, 0, 4408, 4122, 0, 11039, 8723, 194990, 194989, 119302, 731, + 119304, 119303, 2438, 64855, 119300, 119299, 1175, 0, 42135, 373, 119172, + 5396, 11457, 11521, 7723, 0, 0, 0, 41952, 0, 5273, 8248, 5269, 0, 5202, + 2404, 5267, 42823, 11291, 19915, 5277, 12963, 0, 6189, 4125, 1314, 12133, + 0, 118873, 1271, 0, 0, 66024, 41482, 3864, 74539, 0, 3879, 0, 12978, + 4166, 4574, 0, 7567, 7459, 0, 41390, 5384, 41882, 67647, 0, 0, 0, 0, + 41388, 0, 41392, 64288, 41387, 0, 8706, 5552, 0, 700, 0, 5553, 0, 7088, + 5356, 7499, 0, 66596, 0, 0, 0, 5554, 0, 12344, 10311, 0, 6665, 0, 0, + 7618, 8517, 11455, 0, 64632, 66017, 5555, 0, 0, 0, 0, 119204, 65033, + 9143, 6668, 195067, 195066, 195069, 656, 195071, 65037, 4577, 64624, 0, + 0, 0, 0, 4269, 73885, 917775, 42846, 917774, 950, 0, 0, 66580, 118895, + 66683, 10554, 917778, 119121, 0, 5098, 917770, 0, 119099, 5097, 4935, + 9848, 10381, 0, 0, 0, 3651, 0, 0, 0, 5102, 5101, 10269, 12983, 8138, 0, + 1932, 5100, 1439, 12093, 1247, 10034, 195064, 5099, 0, 1441, 42087, 3063, + 650, 0, 7838, 0, 195041, 195040, 119142, 9031, 195045, 195044, 9078, + 8545, 66356, 195048, 0, 9154, 9118, 0, 0, 2676, 7750, 0, 73812, 6190, + 8599, 195053, 0, 10795, 9857, 7014, 9858, 195033, 0, 12129, 0, 8481, 0, + 6202, 195035, 10920, 195037, 5203, 195039, 195038, 5108, 5107, 65818, + 66019, 9762, 0, 5541, 74772, 0, 12613, 5284, 6657, 207, 0, 4275, 74819, + 854, 68147, 74381, 0, 0, 5103, 0, 64348, 41368, 0, 488, 0, 0, 0, 10157, + 0, 43034, 11438, 0, 0, 0, 118839, 41771, 5106, 6669, 8504, 65154, 195025, + 41367, 5105, 195030, 195029, 6476, 5104, 0, 304, 3176, 0, 0, 932, 0, + 6567, 238, 74522, 195011, 195010, 19905, 120577, 195015, 120187, 41044, + 67640, 0, 64814, 9912, 65939, 10670, 74093, 13273, 0, 12552, 195019, + 8803, 309, 6622, 8151, 10858, 194596, 67636, 0, 12568, 0, 12553, 0, + 43275, 6950, 9712, 0, 0, 0, 65165, 0, 0, 66466, 0, 0, 0, 66725, 6191, + 11351, 10437, 11316, 67634, 0, 0, 41754, 67635, 9370, 2720, 194975, 0, + 8232, 118817, 0, 3222, 0, 0, 0, 66663, 0, 0, 10834, 0, 0, 65732, 0, 0, + 119579, 0, 195020, 0, 7781, 41383, 64568, 0, 120738, 12077, 0, 0, 0, + 42396, 0, 3475, 0, 2479, 0, 3632, 0, 10698, 0, 3648, 194960, 74844, + 67639, 3636, 67894, 3650, 8837, 65229, 1843, 42283, 0, 41562, 0, 74548, + 0, 3640, 0, 42321, 7284, 194974, 194973, 194950, 194949, 194952, 194951, + 0, 194953, 42080, 2529, 0, 0, 0, 42083, 194955, 194606, 194957, 67619, + 66367, 194958, 9634, 0, 9988, 0, 41068, 0, 0, 65264, 0, 0, 917923, 0, + 785, 8236, 194942, 9027, 68160, 67623, 64383, 0, 925, 0, 0, 41985, 41071, + 9586, 0, 41984, 9217, 0, 0, 0, 9186, 64580, 4016, 0, 0, 381, 0, 0, 42077, + 0, 194946, 5184, 42078, 194947, 10810, 0, 4585, 19943, 5860, 67633, 0, 0, + 812, 3615, 0, 5178, 194929, 120548, 120506, 5188, 74287, 67629, 3605, + 10692, 1166, 64429, 42639, 924, 0, 67631, 0, 0, 2442, 10703, 194940, + 67632, 0, 12771, 12736, 12753, 0, 73933, 67626, 42401, 0, 0, 0, 42288, + 12751, 0, 8542, 13145, 0, 2468, 66706, 41294, 3626, 3883, 64388, 42479, + 0, 41117, 0, 0, 0, 0, 67624, 0, 1290, 0, 65585, 2715, 806, 0, 41884, 0, + 7027, 64731, 0, 0, 0, 66325, 3465, 2405, 9240, 0, 12756, 65259, 0, 0, + 12752, 5833, 1432, 0, 41883, 73912, 9799, 0, 41886, 2480, 0, 43219, 0, + 6494, 5537, 0, 0, 0, 0, 1211, 0, 0, 0, 118832, 12318, 0, 0, 0, 10622, 0, + 0, 0, 6566, 0, 0, 73780, 0, 64864, 0, 194588, 0, 8284, 0, 0, 3589, 0, + 4035, 6492, 0, 4265, 6642, 3977, 74186, 41778, 836, 119216, 2488, 0, + 4582, 0, 0, 41777, 12926, 0, 7528, 10550, 0, 0, 0, 0, 0, 1374, 64878, + 119014, 0, 42389, 41374, 0, 0, 0, 41377, 0, 0, 400, 12597, 0, 0, 0, 6661, + 0, 64827, 0, 73817, 390, 0, 74755, 0, 3473, 7718, 0, 0, 0, 0, 0, 0, 0, + 11969, 0, 0, 8004, 1887, 0, 0, 8080, 7006, 0, 0, 0, 0, 1544, 0, 0, 64677, + 120716, 0, 6146, 0, 771, 0, 0, 12812, 13168, 42272, 12200, 917927, 7904, + 0, 953, 12917, 0, 12300, 0, 11491, 9724, 10341, 0, 9524, 7490, 11389, + 7489, 3379, 0, 7487, 0, 471, 7484, 7482, 7481, 7480, 7479, 7478, 7477, + 6501, 7475, 6918, 7473, 7472, 2474, 7470, 7468, 10232, 10615, 10213, 0, + 120222, 10049, 0, 3544, 0, 6017, 65311, 0, 0, 13306, 10533, 7870, 73949, + 7625, 0, 120544, 0, 0, 0, 0, 0, 0, 19961, 2472, 0, 120699, 0, 6019, 4256, + 120776, 74380, 0, 73847, 73844, 12845, 0, 0, 65138, 119355, 67862, 0, 0, + 120000, 120008, 8066, 7678, 74865, 0, 0, 0, 0, 7186, 0, 120555, 0, 445, + 120566, 0, 0, 0, 8330, 0, 0, 42797, 0, 120215, 0, 3902, 0, 1770, 0, 0, + 1560, 120209, 0, 4584, 73843, 0, 11712, 10866, 0, 1118, 0, 0, 0, 1081, + 7436, 0, 7252, 0, 5996, 0, 4903, 0, 41386, 5162, 119189, 1330, 0, 64530, + 0, 12047, 41384, 0, 0, 1848, 4334, 0, 41975, 64777, 10674, 12308, 0, 0, + 0, 0, 12715, 0, 0, 0, 2018, 66672, 41979, 66685, 119157, 0, 0, 0, 126984, + 0, 9334, 0, 0, 0, 7975, 0, 0, 0, 66621, 4884, 66597, 0, 0, 0, 6313, + 65513, 0, 0, 0, 0, 2345, 0, 463, 0, 0, 119607, 3117, 5460, 0, 0, 0, 0, + 42279, 194577, 0, 0, 0, 0, 0, 13248, 0, 0, 0, 0, 0, 0, 5663, 0, 0, 0, 0, + 2482, 1471, 0, 0, 42247, 12378, 73925, 0, 0, 12374, 0, 0, 0, 0, 2460, 0, + 11944, 12376, 0, 64679, 0, 12380, 10557, 64473, 5870, 0, 2024, 0, 0, 0, + 539, 0, 0, 0, 3853, 65180, 0, 120796, 120245, 0, 0, 8659, 0, 12474, 0, + 9503, 194969, 2478, 0, 4162, 0, 4260, 12953, 0, 120089, 12470, 0, 74189, + 2742, 12476, 11798, 10946, 0, 5000, 0, 0, 0, 0, 8213, 74017, 7771, 6161, + 0, 0, 0, 0, 0, 0, 120582, 0, 0, 10301, 10333, 10397, 0, 0, 73791, 0, 0, + 0, 0, 0, 4014, 12842, 73952, 12015, 0, 8275, 3893, 0, 0, 0, 7221, 42147, + 0, 74550, 74465, 64747, 118841, 0, 12516, 0, 0, 119017, 74537, 10892, + 8231, 0, 6473, 41968, 0, 41973, 3591, 41969, 0, 2453, 0, 0, 0, 0, 0, + 10349, 10413, 43591, 41962, 3202, 74353, 0, 8316, 0, 0, 0, 687, 0, 0, 0, + 1840, 0, 0, 119809, 4883, 285, 4723, 0, 0, 4459, 74577, 0, 41720, 11089, + 240, 19906, 0, 119248, 0, 9743, 120232, 13134, 0, 0, 0, 0, 0, 42634, 0, + 0, 3081, 11463, 120230, 0, 0, 10445, 0, 0, 66717, 2614, 9125, 119023, + 1729, 0, 120236, 65221, 63883, 43334, 64852, 0, 120235, 66201, 0, 66578, + 5001, 41879, 0, 4121, 5003, 884, 66700, 63879, 4943, 5150, 73889, 74182, + 0, 643, 3086, 0, 42448, 42299, 58, 0, 0, 120083, 63873, 8491, 0, 0, 0, + 4530, 42409, 0, 0, 2721, 120074, 119096, 19929, 0, 194574, 0, 4242, 4264, + 0, 0, 66179, 42412, 65941, 13114, 64522, 10740, 3094, 0, 9754, 119102, + 4437, 73948, 0, 0, 65179, 42174, 194925, 42430, 0, 0, 42355, 66026, 4306, + 41380, 0, 0, 0, 66667, 0, 0, 0, 120578, 42566, 0, 0, 5088, 6948, 0, 8524, + 0, 0, 12385, 0, 0, 0, 1386, 65034, 11480, 6116, 65039, 65038, 12392, + 65036, 8064, 0, 12101, 5822, 119004, 0, 710, 0, 11663, 1666, 42091, + 119657, 12383, 0, 42092, 0, 4289, 0, 63896, 12061, 42096, 0, 3362, 12377, + 0, 0, 0, 7461, 73901, 1244, 331, 73786, 12683, 10662, 0, 8112, 0, 65852, + 0, 12379, 0, 120818, 41964, 0, 63843, 12381, 41965, 0, 65866, 4327, 0, + 63840, 0, 41220, 13032, 0, 584, 12933, 43177, 12373, 0, 13000, 1351, 0, + 8698, 12665, 0, 1930, 0, 0, 12427, 0, 0, 13031, 0, 0, 0, 3657, 0, 65202, + 6000, 0, 12426, 0, 0, 41740, 12428, 41283, 41916, 119210, 0, 0, 12429, + 9695, 0, 7562, 0, 5170, 0, 41755, 676, 0, 0, 66664, 74427, 0, 3536, 0, + 9752, 0, 6162, 0, 0, 10113, 41829, 65886, 5159, 12422, 41832, 439, 43077, + 0, 120532, 74549, 11796, 40970, 41830, 0, 917799, 8308, 917797, 917796, + 0, 67864, 917801, 917800, 12336, 4135, 0, 341, 2727, 4129, 3539, 0, + 63861, 0, 7913, 0, 63859, 4131, 63868, 0, 63867, 4133, 11371, 210, 4600, + 0, 74560, 4137, 8082, 0, 119062, 0, 0, 4591, 0, 0, 0, 9680, 0, 120623, + 561, 12159, 195, 0, 41501, 0, 42031, 5719, 7172, 0, 8368, 0, 41499, 0, 0, + 42242, 41498, 917794, 42025, 0, 65805, 42463, 0, 2924, 0, 120510, 0, 0, + 119213, 73941, 0, 42330, 917784, 3969, 0, 0, 7169, 1992, 9652, 73977, + 7246, 42086, 917790, 917789, 0, 0, 0, 0, 0, 327, 0, 9042, 917777, 917776, + 65148, 12433, 917781, 917780, 917779, 12431, 8668, 12434, 0, 917782, + 5999, 0, 7712, 12432, 0, 0, 1726, 1015, 0, 8212, 0, 0, 42423, 119066, 0, + 0, 66709, 0, 8811, 927, 0, 0, 12436, 0, 42021, 0, 0, 1299, 12240, 42350, + 65143, 0, 195016, 0, 0, 11348, 0, 0, 0, 0, 0, 19914, 12179, 0, 9648, 0, + 63836, 63832, 917773, 10967, 63816, 2594, 3444, 63817, 64651, 0, 41503, + 0, 11265, 0, 0, 0, 0, 5664, 3972, 0, 0, 0, 917766, 12416, 917764, 119608, + 10816, 917769, 917768, 12418, 74111, 3882, 8532, 917771, 1573, 0, 119847, + 4596, 66339, 12417, 66001, 65343, 194782, 12414, 8287, 0, 0, 68108, 1143, + 119169, 0, 12415, 6626, 42763, 0, 118884, 9021, 120783, 0, 11724, 0, 0, + 127104, 194794, 0, 0, 8027, 10997, 9171, 12741, 11400, 74197, 194799, 0, + 0, 0, 0, 0, 0, 120190, 194773, 0, 194772, 42368, 0, 7715, 3881, 41487, + 12118, 42514, 0, 0, 0, 3009, 41476, 41489, 0, 3007, 1448, 3018, 0, 3889, + 8521, 5083, 5082, 119859, 120184, 8519, 0, 3014, 5081, 65853, 0, 0, + 120183, 0, 5079, 64802, 65095, 4597, 65532, 0, 0, 12371, 0, 8407, 0, + 10805, 8518, 10779, 120188, 0, 0, 12367, 42170, 0, 0, 629, 1924, 0, + 12037, 74366, 5987, 8462, 8005, 12365, 66689, 0, 120815, 12369, 10649, 0, + 5077, 127108, 10880, 63927, 5075, 0, 0, 65075, 0, 11007, 0, 66659, 0, 0, + 66684, 0, 3434, 4954, 1904, 0, 5266, 126980, 5272, 10499, 4507, 9578, + 63923, 120177, 7979, 0, 9831, 0, 194926, 461, 9803, 0, 4504, 1505, 0, 0, + 5276, 43021, 0, 0, 0, 0, 66461, 5177, 41324, 12055, 8722, 0, 41327, 0, + 66695, 4114, 409, 4383, 8900, 8948, 41325, 0, 721, 10182, 9108, 0, 0, + 119185, 0, 0, 0, 5998, 0, 42353, 74825, 0, 12587, 0, 0, 0, 0, 0, 41576, + 74121, 0, 119207, 0, 8578, 5995, 7573, 41575, 74789, 74752, 63944, 63949, + 0, 2670, 4167, 0, 11723, 0, 74120, 0, 65076, 938, 73857, 73854, 11737, + 9721, 0, 0, 0, 11742, 0, 0, 11493, 12334, 0, 4153, 12302, 10793, 5250, + 12407, 11978, 4404, 9189, 12401, 42007, 5775, 42005, 65806, 0, 0, 42002, + 12404, 0, 0, 4940, 12410, 7683, 1167, 0, 4983, 0, 861, 0, 0, 0, 0, 65577, + 0, 0, 0, 11956, 0, 0, 0, 9616, 6631, 0, 12816, 74583, 0, 12710, 0, 12721, + 4101, 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 0, 0, 0, 0, 5016, + 43535, 0, 42835, 9491, 917913, 0, 917914, 0, 12712, 917919, 0, 65060, + 120797, 9900, 0, 0, 194919, 0, 0, 0, 64778, 12585, 10565, 0, 12177, 0, 0, + 0, 0, 0, 4900, 0, 0, 0, 8984, 4119, 0, 8971, 0, 43113, 9702, 0, 11025, + 9245, 13048, 4927, 4138, 0, 194921, 0, 12397, 0, 0, 13054, 12394, 0, 0, + 0, 13053, 0, 3948, 10781, 1546, 0, 5010, 1680, 10507, 0, 0, 0, 0, 0, 0, + 7267, 0, 74833, 0, 5993, 2819, 0, 12706, 0, 1893, 7266, 63915, 7264, + 7265, 0, 1363, 0, 63997, 63910, 63996, 3077, 0, 0, 1512, 0, 12589, 41479, + 0, 0, 43339, 0, 9836, 120727, 0, 41481, 43335, 7832, 42343, 3090, 43337, + 817, 1664, 1850, 0, 3079, 11340, 42408, 42447, 0, 120020, 42307, 12386, + 42304, 0, 0, 12389, 0, 0, 41996, 11526, 63985, 5864, 1147, 66688, 42887, + 1987, 0, 5480, 7858, 11653, 4116, 12391, 66193, 0, 4939, 12384, 0, 0, + 41686, 63905, 119601, 0, 0, 0, 0, 0, 0, 8247, 507, 91, 2042, 120775, 0, + 0, 66028, 10036, 41844, 119830, 774, 119831, 0, 119815, 5994, 12539, 0, + 119817, 120597, 119833, 0, 0, 0, 0, 7719, 6026, 2486, 0, 0, 162, 0, + 65219, 41073, 9687, 41681, 6304, 119812, 66196, 0, 5262, 0, 66658, 12681, + 42379, 0, 7534, 12219, 0, 0, 42810, 10492, 0, 0, 0, 43119, 0, 120753, + 12403, 2500, 195013, 0, 4899, 0, 0, 0, 74113, 2343, 4103, 19946, 74112, + 0, 13112, 0, 0, 12859, 0, 0, 66369, 5861, 0, 11999, 12400, 0, 0, 12645, + 5146, 11320, 0, 67612, 65040, 0, 64184, 12974, 64183, 67613, 120645, + 5147, 0, 0, 74524, 0, 1928, 0, 0, 5991, 3445, 67609, 4976, 64176, 0, + 67610, 8241, 0, 0, 4206, 0, 0, 0, 0, 0, 10138, 0, 0, 8897, 0, 0, 8357, + 4124, 0, 65836, 120641, 0, 0, 0, 0, 1123, 963, 41553, 10120, 12405, 0, 0, + 398, 13278, 9723, 41551, 120311, 7945, 0, 4402, 10896, 12402, 0, 42392, + 1305, 12408, 0, 0, 0, 0, 41464, 12411, 12969, 120824, 41465, 0, 195017, + 1575, 0, 63955, 165, 3024, 41467, 119163, 0, 9093, 0, 9147, 0, 0, 0, + 9148, 9692, 4096, 53, 73776, 12368, 195018, 0, 9594, 0, 0, 43527, 0, 727, + 0, 0, 5805, 0, 0, 0, 42176, 12370, 11655, 119095, 10591, 12364, 0, 12372, + 120642, 0, 0, 0, 0, 12366, 10963, 6066, 1329, 0, 3052, 9220, 0, 64478, 0, + 10803, 4132, 0, 0, 0, 0, 0, 74837, 0, 1499, 0, 8055, 0, 63965, 0, 63962, + 74042, 8924, 43123, 5988, 3660, 63969, 11781, 63968, 8788, 1357, 64851, + 65743, 0, 8774, 0, 127086, 67618, 120172, 0, 1933, 0, 9564, 0, 0, 73866, + 0, 0, 2487, 67614, 3121, 1804, 3311, 67615, 0, 0, 12220, 67616, 120598, + 0, 0, 0, 6675, 0, 0, 67592, 120685, 0, 64771, 1198, 9132, 0, 64619, 510, + 64663, 0, 0, 4561, 7711, 1398, 0, 0, 74034, 41569, 0, 11406, 8167, 12127, + 0, 840, 0, 0, 0, 6967, 0, 0, 9796, 0, 333, 0, 0, 8144, 0, 0, 0, 12406, 0, + 0, 0, 6678, 7769, 0, 12621, 0, 0, 10227, 4764, 43101, 0, 0, 40986, 4127, + 66487, 0, 0, 12754, 195022, 0, 0, 0, 67594, 65609, 12944, 4050, 67595, 0, + 43102, 10581, 12985, 4533, 0, 0, 6490, 0, 12038, 0, 0, 120704, 65461, + 9798, 0, 0, 1948, 119007, 0, 952, 0, 0, 0, 120802, 6449, 9494, 0, 0, + 43098, 4843, 8142, 64160, 4098, 64170, 0, 0, 3436, 0, 0, 12817, 67597, + 6676, 3930, 66708, 0, 0, 67598, 0, 0, 0, 65591, 41581, 65916, 1453, 0, 0, + 0, 8500, 0, 120142, 73743, 120400, 4317, 120140, 0, 64676, 0, 0, 67606, + 119083, 0, 0, 13102, 0, 66003, 6672, 0, 0, 0, 0, 63841, 9613, 9001, 4526, + 11274, 67601, 64520, 64210, 6664, 0, 42056, 10228, 64957, 11281, 0, + 64213, 1469, 66640, 65381, 0, 4988, 42372, 0, 9598, 904, 352, 0, 1451, + 8061, 8453, 4134, 0, 74847, 67600, 0, 0, 10520, 8575, 0, 1201, 0, 12846, + 0, 0, 11919, 64962, 0, 74864, 0, 8511, 9460, 823, 11587, 12305, 0, 64695, + 0, 12387, 1253, 13183, 65766, 500, 42783, 65765, 64208, 64369, 65760, + 65761, 119585, 11606, 64784, 11702, 66498, 9821, 0, 0, 5152, 11048, 7533, + 120121, 64410, 0, 0, 4323, 120062, 0, 0, 0, 42587, 65339, 41394, 0, 4763, + 4112, 118935, 0, 5260, 43143, 0, 326, 120131, 0, 0, 10771, 2876, 194915, + 194835, 194924, 41398, 127079, 9802, 127077, 127076, 453, 41396, 120524, + 0, 12140, 9572, 0, 7003, 194883, 42334, 7704, 0, 0, 43144, 4123, 0, + 43146, 0, 0, 0, 65759, 10765, 64061, 4465, 9808, 64056, 65582, 4126, 0, + 9521, 9589, 64755, 0, 64020, 0, 10464, 0, 0, 194869, 64514, 11528, 64024, + 0, 679, 64013, 0, 5850, 758, 7536, 0, 0, 41441, 10693, 64006, 0, 64005, + 10541, 119019, 0, 64660, 0, 119050, 0, 0, 1139, 43298, 64027, 64029, + 8970, 0, 64000, 0, 10774, 0, 42522, 12421, 194876, 0, 1852, 3057, 0, + 73744, 64034, 64041, 0, 0, 0, 0, 0, 7645, 12854, 74338, 3496, 0, 0, 0, + 9102, 627, 0, 6158, 8327, 74553, 66632, 12419, 0, 11570, 0, 19960, 11696, + 0, 1018, 0, 194909, 0, 1682, 194896, 0, 42756, 12951, 194906, 0, 0, + 73814, 11412, 12563, 10728, 194830, 0, 118863, 43311, 64966, 11577, 0, + 43040, 1833, 11576, 0, 74779, 0, 185, 65085, 74533, 64754, 194848, 7535, + 8085, 42525, 120387, 9749, 41701, 6131, 1949, 4117, 7847, 120489, 0, + 64483, 65693, 0, 0, 0, 0, 42240, 0, 0, 42864, 0, 64667, 41868, 1184, 0, + 815, 11484, 0, 67840, 0, 0, 0, 0, 0, 64683, 0, 0, 0, 0, 0, 9879, 0, 0, + 4158, 0, 68166, 0, 0, 0, 0, 0, 332, 118808, 0, 5142, 2407, 0, 0, 0, 0, + 74373, 0, 0, 0, 63870, 43163, 0, 0, 119081, 42867, 1834, 0, 0, 0, 10940, + 65249, 119040, 8662, 0, 0, 2652, 120527, 11539, 10784, 195093, 0, 0, 0, + 0, 0, 118858, 917505, 1828, 74474, 120327, 0, 8531, 12499, 6280, 12324, + 118854, 65238, 0, 4832, 65573, 0, 6279, 12508, 12904, 12502, 9161, 0, + 1620, 0, 3601, 0, 0, 0, 609, 11555, 0, 12496, 0, 74181, 4343, 12505, 0, + 0, 0, 11377, 239, 0, 637, 0, 0, 43029, 0, 0, 0, 43565, 127082, 0, 12696, + 0, 0, 0, 12929, 0, 712, 0, 4197, 0, 42818, 0, 0, 120490, 0, 0, 1506, + 43562, 0, 0, 0, 12651, 0, 64628, 74517, 12058, 74084, 917838, 7494, 0, + 4924, 65592, 118844, 0, 127088, 355, 9719, 127087, 13066, 64796, 0, 0, + 12033, 42178, 0, 0, 42571, 0, 0, 0, 0, 0, 0, 0, 3178, 0, 0, 0, 0, 9080, + 127000, 0, 0, 0, 0, 11082, 0, 5699, 195100, 0, 9488, 65166, 119112, 0, 0, + 0, 0, 0, 0, 5265, 0, 0, 11487, 67858, 12464, 0, 43045, 0, 0, 43345, 0, + 10770, 118994, 43344, 465, 9829, 0, 74348, 0, 43346, 8116, 795, 0, 0, + 12462, 10930, 10831, 0, 118952, 64362, 0, 0, 120811, 0, 12468, 8607, + 1008, 0, 10092, 0, 917842, 67855, 0, 73771, 1766, 11282, 11996, 1820, + 4547, 0, 0, 0, 0, 13223, 0, 64595, 0, 0, 0, 4345, 12616, 0, 0, 0, 74467, + 0, 0, 0, 5382, 0, 0, 0, 119060, 64953, 5406, 19920, 0, 66510, 3590, 0, + 1130, 0, 0, 42016, 11823, 43023, 0, 118896, 7742, 0, 13280, 0, 9326, + 73826, 5310, 74812, 0, 119962, 8959, 43589, 74334, 66723, 0, 8568, 0, + 120496, 73816, 120803, 0, 0, 0, 11621, 12460, 0, 0, 0, 0, 74519, 0, 0, 0, + 0, 0, 11689, 5410, 5783, 10468, 8403, 5400, 11594, 0, 0, 118990, 10491, + 0, 64412, 0, 0, 5587, 42865, 64404, 8268, 4923, 65086, 8981, 12382, + 42133, 120755, 9706, 0, 0, 66610, 10461, 12103, 0, 8642, 0, 42766, 0, 0, + 0, 0, 119105, 0, 0, 0, 8816, 41515, 0, 11802, 8041, 1461, 910, 119133, 0, + 0, 3658, 0, 120525, 0, 7617, 0, 12888, 0, 0, 13143, 0, 41514, 0, 5703, 0, + 41517, 41504, 41519, 10016, 64305, 0, 65864, 623, 781, 670, 10660, 5769, + 613, 7543, 120774, 477, 41083, 0, 0, 592, 1578, 12459, 0, 0, 0, 8225, 0, + 654, 11345, 653, 652, 0, 647, 0, 633, 120744, 0, 0, 12480, 74354, 0, 39, + 12487, 0, 120529, 74199, 12482, 0, 12489, 0, 3195, 5550, 0, 7897, 0, + 1203, 74396, 1813, 64544, 41311, 12090, 0, 2877, 0, 0, 1675, 0, 0, 0, 0, + 10070, 10595, 0, 119077, 0, 0, 0, 0, 0, 118827, 0, 0, 0, 119561, 0, 0, 0, + 0, 0, 0, 0, 120692, 0, 0, 270, 0, 10714, 0, 0, 0, 0, 0, 65372, 0, 74038, + 119558, 6273, 66679, 364, 9595, 0, 0, 0, 707, 0, 0, 9282, 66489, 224, 0, + 0, 9332, 4966, 0, 0, 0, 0, 3841, 0, 0, 10732, 0, 850, 4972, 0, 64699, + 2909, 0, 65309, 0, 0, 11544, 10203, 9608, 0, 0, 11962, 0, 12507, 1196, 0, + 0, 777, 0, 4375, 65271, 0, 0, 12198, 0, 64824, 0, 0, 9454, 63778, 8658, + 42528, 0, 2705, 917975, 41520, 0, 0, 11986, 7765, 42502, 8280, 0, 2701, + 0, 0, 5767, 0, 0, 9809, 8353, 63747, 66701, 63772, 0, 63745, 1748, 63770, + 0, 0, 0, 65542, 63766, 0, 3061, 0, 63764, 63789, 9067, 6096, 0, 7694, 0, + 7257, 63768, 3485, 12987, 0, 0, 0, 63807, 1591, 0, 0, 63783, 0, 0, 0, 0, + 0, 0, 74575, 0, 65719, 13083, 64574, 65012, 0, 1640, 12495, 66691, 7624, + 3138, 10996, 0, 1922, 0, 12498, 10987, 0, 0, 3894, 65543, 0, 194842, 0, + 493, 0, 43197, 1717, 4228, 479, 10303, 917934, 0, 917935, 10335, 3520, + 917932, 12490, 64315, 0, 127039, 12493, 6233, 64636, 1002, 12491, 0, + 64911, 127040, 0, 65120, 0, 0, 0, 11611, 66228, 127041, 66213, 63864, + 66221, 66226, 66229, 13218, 66231, 66216, 8507, 66236, 66211, 66218, 0, + 66240, 0, 66233, 8928, 0, 7909, 66234, 11605, 63759, 0, 66208, 73999, + 63799, 0, 244, 11542, 12898, 12494, 73761, 12492, 12669, 0, 0, 74153, 0, + 0, 120680, 4882, 13040, 0, 8612, 4885, 74053, 0, 13042, 4880, 64662, + 2429, 1360, 248, 0, 63797, 0, 63792, 0, 7292, 0, 63756, 42786, 66693, 0, + 1870, 917916, 470, 0, 0, 120306, 0, 0, 4579, 0, 0, 12511, 74453, 12514, + 0, 74579, 7239, 7001, 8623, 0, 0, 0, 0, 12512, 11615, 13041, 0, 0, 659, + 6098, 0, 12234, 0, 127067, 8311, 12510, 41803, 13039, 127072, 12513, + 10202, 12471, 0, 8747, 0, 0, 0, 2323, 0, 2319, 0, 12477, 0, 2311, 0, + 4415, 237, 6281, 0, 0, 0, 2309, 1312, 8173, 0, 12469, 0, 0, 64335, 10609, + 0, 0, 9397, 11524, 9395, 9396, 9393, 9394, 9391, 9392, 9389, 6209, 9387, + 9388, 4932, 9386, 9383, 9384, 0, 0, 65451, 8185, 0, 917832, 43024, 43336, + 74375, 2313, 0, 7948, 9236, 0, 0, 0, 10570, 0, 6289, 10484, 0, 0, 11998, + 12082, 10924, 3147, 0, 0, 12524, 0, 2310, 11818, 9381, 9382, 9379, 9380, + 9377, 9378, 9375, 9376, 1683, 9374, 0, 9372, 12444, 0, 0, 13016, 8210, 0, + 42029, 11079, 12331, 0, 42032, 8744, 726, 0, 0, 4155, 0, 0, 42030, 5007, + 12522, 43088, 0, 4951, 0, 0, 0, 9922, 43309, 0, 12525, 0, 12016, 65770, + 9548, 0, 403, 0, 12503, 0, 0, 11030, 0, 0, 65691, 63998, 1819, 10496, 0, + 0, 119920, 0, 0, 0, 12506, 0, 12231, 0, 12500, 67605, 12509, 64393, 0, + 3389, 10589, 6608, 41047, 120321, 0, 0, 74069, 0, 0, 3608, 8281, 917839, + 1107, 0, 9076, 8862, 0, 41052, 13084, 64766, 43217, 7803, 13222, 118963, + 74782, 0, 8546, 11553, 63995, 13177, 9043, 6303, 0, 498, 64471, 120324, + 0, 12529, 8042, 0, 2344, 12528, 8031, 2414, 0, 0, 3231, 0, 6422, 66512, + 0, 12530, 2537, 0, 41429, 12658, 13036, 65772, 0, 0, 41433, 4719, 469, 0, + 4363, 3313, 41428, 0, 2023, 1772, 0, 0, 65706, 10051, 64812, 0, 0, 9920, + 12215, 0, 4931, 1951, 12497, 119363, 9607, 0, 9663, 0, 119634, 6503, + 41110, 0, 1491, 0, 0, 0, 41061, 0, 0, 0, 65026, 41993, 41509, 11045, + 65028, 0, 66476, 41108, 9738, 41995, 1075, 1958, 12535, 41992, 41506, 0, + 41687, 0, 120717, 0, 917816, 0, 7692, 0, 8008, 0, 330, 8566, 65083, + 41133, 9816, 0, 12532, 127055, 127056, 3508, 127058, 127059, 0, 917542, + 917815, 0, 6411, 12910, 120505, 66644, 13028, 0, 12537, 0, 0, 64136, + 12536, 2350, 13029, 0, 0, 0, 13030, 0, 4527, 0, 12538, 0, 0, 65599, + 65717, 12607, 0, 4948, 12484, 4032, 0, 42803, 0, 6207, 0, 6117, 66000, + 8412, 0, 7438, 1296, 2325, 41511, 0, 10149, 74118, 0, 0, 12481, 0, 12488, + 0, 0, 41556, 64414, 118802, 2354, 0, 73766, 0, 6295, 901, 41510, 7953, 0, + 65032, 41513, 0, 11927, 66584, 0, 0, 119010, 0, 0, 0, 848, 9868, 0, 6424, + 0, 119338, 0, 74031, 0, 0, 2352, 0, 893, 64576, 11289, 1407, 0, 0, 13026, + 0, 0, 0, 13023, 8903, 9777, 66715, 1871, 8099, 0, 0, 1343, 0, 0, 9325, + 13025, 6283, 11738, 0, 0, 0, 11741, 0, 0, 9216, 8263, 11279, 194752, 0, + 194754, 13021, 64494, 3136, 194758, 194757, 194760, 13022, 0, 64588, 0, + 0, 74552, 10014, 0, 41260, 119340, 13020, 118993, 194764, 194767, 74340, + 0, 0, 64945, 8029, 0, 0, 0, 3335, 0, 0, 9776, 120526, 194748, 5215, + 42644, 3333, 1632, 194751, 64849, 3342, 0, 5363, 12957, 0, 4156, 0, 0, + 6421, 0, 1611, 0, 13018, 74257, 0, 0, 3337, 4537, 67895, 11736, 0, 0, + 6482, 4214, 73790, 11945, 0, 13046, 8838, 425, 4025, 10709, 0, 73927, + 2392, 13047, 0, 0, 10617, 13049, 6499, 194739, 12424, 194741, 73944, + 13050, 194742, 194745, 6507, 0, 0, 0, 3277, 8929, 4947, 41055, 0, 194722, + 194721, 194724, 13045, 64626, 66034, 7751, 194727, 8371, 194729, 3997, + 12806, 8768, 13044, 0, 12420, 4024, 194730, 41054, 1078, 9757, 194734, + 41057, 0, 0, 0, 0, 0, 0, 0, 0, 41496, 0, 9165, 1572, 11911, 0, 118842, + 2346, 13270, 8958, 0, 9646, 3773, 43183, 6401, 42536, 0, 0, 13043, 8056, + 0, 65681, 208, 0, 0, 0, 0, 0, 10699, 6408, 0, 7825, 5661, 0, 120630, + 3603, 41109, 2398, 3548, 0, 0, 0, 0, 3115, 0, 0, 11321, 0, 0, 0, 194726, + 4876, 74286, 0, 0, 0, 0, 41558, 41471, 73950, 8158, 41561, 41472, 0, + 13051, 194672, 3143, 194674, 194673, 41559, 1896, 66256, 13052, 194680, + 5665, 0, 119071, 41986, 63974, 0, 74352, 74161, 4154, 9863, 43550, 12310, + 5662, 42382, 194686, 73924, 1121, 194665, 63959, 0, 74378, 13231, 0, + 64752, 4732, 194666, 11596, 194668, 65187, 1626, 63983, 10110, 194671, + 42024, 6420, 42028, 0, 10509, 2795, 4910, 194728, 0, 64753, 6275, 0, + 118830, 63978, 11044, 3229, 6423, 42774, 0, 0, 0, 12823, 2331, 917810, + 42026, 6137, 0, 7524, 0, 0, 119343, 0, 8338, 0, 65043, 0, 822, 0, 9903, + 64721, 194657, 194656, 194659, 194658, 194661, 194660, 0, 41265, 5311, + 1795, 965, 118791, 10587, 0, 11278, 0, 194640, 0, 12946, 194641, 120705, + 194643, 6294, 3144, 194648, 194647, 65019, 194649, 73990, 0, 0, 748, + 41067, 2330, 535, 3148, 12375, 194652, 194629, 10556, 2475, 12388, 4889, + 8968, 67863, 3593, 0, 0, 2342, 0, 194634, 65206, 4894, 194635, 4890, + 194637, 0, 581, 4893, 0, 0, 65545, 4888, 4157, 917805, 0, 0, 0, 0, 10119, + 6415, 0, 0, 0, 0, 0, 11375, 64746, 2332, 0, 412, 0, 64932, 42880, 43587, + 0, 0, 0, 0, 65197, 0, 12203, 0, 0, 8913, 65854, 4875, 65811, 120381, + 194624, 120397, 9344, 8826, 120386, 120395, 13104, 74781, 11997, 120393, + 0, 0, 3134, 0, 65696, 0, 0, 66217, 0, 8334, 119344, 0, 3449, 0, 0, 0, 0, + 118950, 74011, 0, 0, 0, 0, 1908, 0, 4328, 10734, 127014, 0, 0, 7804, 0, + 10811, 6250, 11339, 4914, 11367, 0, 118971, 4917, 74516, 0, 64285, 4912, + 5464, 0, 118893, 2361, 7971, 0, 0, 0, 118986, 0, 8086, 74317, 0, 8319, + 2312, 40977, 10960, 40962, 8305, 12573, 0, 40980, 0, 13202, 0, 12582, 0, + 0, 0, 42438, 0, 6288, 0, 0, 5653, 42400, 10891, 7698, 5658, 74045, 0, 0, + 0, 4913, 0, 0, 0, 42326, 0, 0, 0, 42478, 2327, 0, 12959, 42287, 12705, 0, + 0, 12588, 8821, 6153, 2867, 194708, 66312, 698, 194709, 194712, 10356, + 74075, 194713, 651, 12641, 0, 0, 0, 0, 41552, 65115, 194691, 194690, + 194693, 194692, 194695, 194694, 194697, 74356, 0, 4716, 43277, 0, 0, + 12340, 120568, 0, 194700, 194699, 194702, 120676, 8703, 5462, 917629, 0, + 10101, 0, 0, 8479, 4151, 41933, 0, 0, 66254, 120821, 0, 0, 0, 0, 119194, + 74050, 0, 0, 0, 0, 0, 0, 12278, 0, 0, 0, 2700, 12576, 7842, 12899, 0, 0, + 2699, 0, 0, 2985, 119222, 0, 0, 12192, 119314, 0, 119312, 9827, 119310, + 119311, 119308, 119309, 119306, 11481, 41210, 119305, 0, 35, 0, 0, 66694, + 74357, 0, 0, 43596, 6090, 64257, 7812, 10534, 0, 0, 73848, 0, 4272, 0, + 40967, 40964, 917825, 12704, 0, 43306, 0, 64497, 12138, 7930, 0, 43303, + 0, 0, 917826, 5244, 4189, 127098, 67596, 0, 4188, 1879, 0, 968, 0, 0, 0, + 8873, 0, 0, 0, 65555, 12574, 0, 0, 0, 74490, 0, 0, 0, 0, 0, 0, 12578, + 12720, 0, 41227, 0, 12346, 0, 64848, 0, 0, 7251, 0, 0, 118850, 119141, 0, + 66015, 0, 959, 8885, 12564, 66457, 0, 9469, 9632, 0, 74761, 64323, 0, 0, + 0, 0, 310, 0, 41564, 10976, 0, 0, 0, 0, 10054, 6497, 8574, 0, 9012, + 19958, 74420, 65089, 13215, 65047, 65163, 74044, 374, 43195, 816, 0, 0, + 0, 41934, 7465, 0, 0, 0, 4715, 6101, 0, 41936, 0, 4879, 0, 65446, 0, 307, + 0, 9585, 5374, 0, 0, 0, 0, 0, 0, 0, 65567, 120614, 1929, 0, 12142, 0, + 12236, 41419, 194618, 194621, 12982, 194623, 5378, 0, 0, 41421, 0, 4462, + 0, 0, 0, 821, 0, 2498, 5800, 120157, 0, 1760, 0, 4469, 2324, 828, 3611, + 0, 757, 1185, 0, 0, 43597, 10628, 74808, 194572, 7999, 0, 0, 0, 10634, + 10942, 7713, 2348, 0, 64374, 4380, 194608, 119044, 194610, 64324, 41240, + 862, 65626, 194613, 1810, 3673, 5137, 194617, 0, 7277, 65622, 0, 7566, + 64688, 194593, 194592, 194595, 120812, 194597, 4748, 194599, 194598, + 194601, 42260, 5871, 119075, 0, 74576, 0, 0, 194602, 3967, 194604, 13137, + 8775, 194605, 0, 2963, 0, 8410, 4454, 723, 0, 966, 4449, 0, 127060, 0, + 7819, 2320, 194589, 339, 4968, 194590, 120399, 8075, 0, 0, 8047, 0, 0, + 12634, 41542, 0, 7466, 118822, 12174, 42610, 0, 74452, 0, 1584, 66645, + 6045, 0, 120640, 65218, 0, 0, 0, 7537, 0, 11370, 0, 10330, 0, 10394, 0, + 194783, 0, 0, 9780, 0, 13092, 194576, 119605, 194578, 7074, 120396, + 194579, 194582, 11414, 194584, 2531, 13034, 0, 0, 0, 1259, 7517, 0, 0, + 194561, 40996, 13037, 7092, 641, 5219, 194567, 194566, 11064, 41129, 0, + 42850, 13035, 9075, 0, 5466, 194570, 0, 64098, 65793, 4535, 194573, 4271, + 194575, 0, 0, 41410, 0, 64262, 0, 41407, 0, 0, 41131, 118864, 9046, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64338, 2563, 13033, 247, 917787, 0, 12338, 4651, + 0, 11270, 0, 0, 11933, 0, 0, 41903, 67892, 11001, 0, 42255, 0, 0, 0, + 41905, 0, 0, 10775, 9793, 5009, 0, 42269, 64587, 0, 42535, 0, 64529, + 41408, 42853, 3877, 0, 0, 8147, 43566, 119021, 0, 10236, 65918, 0, 0, 0, + 64506, 0, 118921, 4747, 0, 0, 43200, 5832, 0, 0, 5141, 42600, 0, 43203, + 0, 0, 43286, 0, 0, 0, 0, 0, 0, 74137, 11303, 65547, 0, 7031, 859, 0, 0, + 0, 6059, 126985, 0, 0, 8535, 0, 0, 194787, 66032, 11488, 0, 120786, 0, 0, + 10558, 63885, 0, 11822, 0, 43189, 0, 0, 1788, 1579, 120482, 917817, 0, 0, + 0, 9028, 119571, 0, 0, 0, 1285, 64882, 41242, 0, 0, 12640, 0, 66642, 0, + 12625, 0, 0, 0, 3940, 41597, 0, 3396, 12642, 8665, 0, 0, 12630, 1653, 0, + 10153, 0, 6166, 120516, 120523, 0, 8815, 66673, 65046, 9285, 913, 42259, + 119317, 119318, 119315, 119316, 42485, 118837, 7878, 8211, 42293, 64377, + 0, 0, 0, 0, 12032, 0, 9725, 0, 0, 5263, 12818, 0, 41939, 10022, 65387, + 118831, 42777, 10139, 980, 0, 65386, 0, 0, 0, 43198, 7184, 0, 194797, + 917819, 10085, 119992, 0, 119999, 6634, 0, 0, 119323, 8072, 119321, + 119322, 0, 8872, 7783, 917992, 12398, 8237, 0, 0, 12395, 0, 0, 120565, + 9914, 127011, 917854, 73975, 74281, 0, 0, 0, 917853, 0, 64735, 41243, 0, + 7808, 1829, 0, 41937, 4358, 43272, 0, 0, 0, 0, 0, 1710, 0, 0, 0, 0, 49, + 6627, 0, 6258, 10683, 0, 9741, 120423, 5649, 917986, 0, 64418, 1643, + 74104, 8405, 3470, 0, 13213, 42452, 917987, 0, 120009, 0, 1072, 0, + 917990, 0, 6576, 41988, 41132, 65675, 1080, 120002, 74100, 0, 1101, + 120001, 12309, 0, 0, 12632, 1086, 1869, 0, 7680, 0, 65458, 120714, 12639, + 3380, 8123, 1091, 12638, 7977, 4501, 0, 0, 66309, 0, 0, 1494, 0, 0, 0, + 11693, 0, 10494, 119230, 65872, 12363, 11386, 0, 0, 0, 0, 64582, 0, + 73794, 0, 8022, 0, 0, 74106, 12413, 0, 0, 0, 0, 5570, 1881, 7210, 0, + 1012, 66630, 0, 120709, 7208, 66442, 5569, 0, 42339, 0, 6063, 0, 0, 0, + 6053, 65602, 0, 0, 64727, 9160, 194827, 0, 0, 0, 10503, 118810, 6055, + 3870, 4279, 8490, 120114, 4319, 64786, 8602, 120110, 11326, 0, 0, 0, + 120119, 120413, 120117, 120118, 120099, 120100, 65087, 5571, 3674, 9740, + 9121, 5568, 120107, 120108, 42085, 10107, 64567, 42870, 120101, 589, + 7050, 0, 43281, 10233, 41263, 66251, 65729, 66253, 0, 74099, 42645, 0, + 194815, 8583, 0, 5847, 6928, 0, 0, 0, 0, 0, 66592, 12204, 0, 19966, 0, + 42561, 120626, 0, 0, 8120, 120701, 0, 0, 0, 41063, 0, 10664, 0, 8369, 0, + 4551, 0, 74759, 0, 0, 9673, 66334, 65580, 10478, 127002, 12517, 557, + 9457, 12034, 0, 41056, 12519, 41004, 0, 0, 74094, 0, 0, 119001, 0, 0, 0, + 12111, 3927, 0, 12515, 1474, 67893, 5492, 6923, 0, 10441, 73836, 0, 0, + 5493, 0, 74319, 0, 66635, 12019, 0, 1618, 0, 0, 9645, 10430, 0, 5853, + 13063, 10363, 0, 12956, 0, 0, 11314, 0, 12060, 0, 0, 12826, 0, 0, 10514, + 65517, 74395, 2707, 8309, 0, 127054, 0, 43570, 2697, 0, 0, 127057, 2695, + 42171, 0, 0, 0, 67617, 194814, 0, 2693, 12125, 12766, 0, 1164, 0, 0, + 41918, 0, 0, 8687, 66009, 12178, 7053, 0, 7469, 0, 5248, 12218, 120538, + 6427, 42884, 41123, 0, 0, 42873, 41126, 9991, 41128, 74371, 127031, 0, + 9873, 0, 42877, 7994, 64762, 6104, 42843, 6591, 9340, 0, 1589, 0, 296, + 74438, 0, 0, 67841, 74370, 0, 8922, 0, 74600, 74435, 74836, 0, 12579, 0, + 12575, 6416, 5656, 2891, 13262, 65590, 5299, 0, 11473, 5449, 1252, 0, 0, + 41431, 74369, 65373, 5295, 0, 74114, 1223, 1642, 174, 0, 883, 4161, + 12691, 42603, 41413, 3212, 127025, 3211, 74810, 41425, 127029, 0, 74450, + 9728, 3846, 8070, 6150, 6636, 4370, 0, 0, 74178, 74587, 74117, 0, 0, 0, + 4986, 12189, 0, 0, 120499, 917553, 4257, 12104, 119182, 6220, 9004, + 65561, 0, 0, 0, 68135, 917576, 0, 0, 0, 0, 9890, 0, 12971, 0, 0, 73898, + 11979, 0, 118900, 0, 0, 9635, 12600, 8871, 0, 0, 0, 6469, 74227, 0, + 65304, 4679, 10230, 64300, 64867, 3427, 4240, 0, 0, 0, 0, 917952, 0, 0, + 0, 7282, 0, 65733, 64618, 0, 0, 3494, 74606, 6555, 0, 0, 0, 0, 0, 0, 0, + 65898, 0, 65312, 5447, 0, 12895, 65593, 4010, 0, 41106, 0, 65804, 0, + 41105, 0, 65820, 6232, 0, 0, 0, 43608, 119091, 0, 6538, 4335, 0, 3941, + 41122, 11061, 0, 64892, 9113, 1954, 12155, 0, 42878, 0, 0, 0, 74578, 0, + 65832, 0, 0, 0, 0, 0, 4586, 0, 350, 10951, 0, 509, 0, 0, 0, 0, 0, 5133, + 0, 0, 9500, 0, 12162, 64741, 0, 9354, 0, 0, 0, 2496, 11516, 944, 118851, + 3890, 12168, 1438, 0, 0, 0, 41947, 1220, 120828, 0, 0, 0, 1571, 42630, + 41949, 42805, 8270, 943, 564, 0, 312, 41980, 0, 0, 0, 8877, 269, 4429, + 6272, 9617, 1460, 6954, 0, 41120, 65121, 10862, 6060, 41119, 41416, + 74355, 4173, 0, 0, 0, 1906, 0, 11532, 74073, 0, 0, 1985, 6296, 9582, + 917895, 64287, 0, 0, 11428, 1730, 2457, 0, 19918, 10469, 0, 0, 7703, + 8840, 8035, 0, 0, 0, 0, 6129, 0, 0, 0, 0, 7874, 8681, 0, 0, 13136, 0, 0, + 74278, 63886, 118881, 9605, 73892, 13220, 0, 0, 5514, 0, 9228, 0, 0, 0, + 5240, 9811, 10012, 3096, 0, 0, 0, 66676, 65873, 0, 0, 0, 9501, 0, 1272, + 64536, 65465, 64654, 7467, 0, 1467, 10158, 10040, 0, 9519, 0, 0, 0, + 118899, 12193, 0, 0, 0, 0, 0, 19935, 0, 0, 0, 0, 0, 0, 5275, 0, 0, 8637, + 0, 0, 3789, 63880, 11471, 43554, 65862, 11474, 66332, 66603, 0, 0, 12042, + 0, 0, 9537, 3961, 12115, 0, 2605, 4500, 64561, 0, 4981, 0, 0, 63876, + 11667, 0, 0, 42362, 64686, 4499, 41649, 7589, 0, 0, 3237, 0, 120194, 0, + 8541, 0, 0, 41866, 0, 0, 0, 0, 0, 43555, 2823, 9559, 0, 41940, 8299, + 41945, 0, 41941, 3308, 7190, 64880, 8614, 65220, 41493, 0, 41699, 10762, + 0, 12999, 0, 0, 8106, 4128, 0, 0, 4494, 0, 4012, 10395, 0, 119567, 65447, + 0, 0, 11004, 695, 739, 696, 7611, 0, 42755, 74802, 9227, 7506, 7510, 0, + 691, 738, 7511, 7512, 7515, 3868, 688, 41847, 690, 2548, 737, 974, 8003, + 0, 0, 0, 0, 3985, 0, 65860, 63921, 7051, 74208, 4682, 0, 12809, 6406, + 4685, 0, 10879, 10347, 4680, 9055, 0, 3851, 8132, 74325, 0, 917907, 0, + 41958, 119176, 917908, 0, 0, 0, 0, 7643, 42373, 11714, 67587, 43568, 0, + 11717, 7650, 10594, 64951, 7647, 7649, 0, 7646, 0, 0, 9651, 0, 3891, 0, + 0, 2337, 1735, 74324, 67860, 5452, 0, 0, 43561, 0, 0, 74146, 1860, 7495, + 7580, 5812, 7497, 7584, 0, 0, 0, 0, 7727, 0, 8498, 0, 8949, 3065, 0, 0, + 1569, 0, 12534, 12124, 7690, 0, 12533, 0, 6418, 4543, 0, 6969, 0, 74800, + 0, 0, 11980, 0, 0, 63894, 0, 12282, 66192, 0, 0, 8850, 74275, 9238, 0, 0, + 0, 0, 0, 12791, 0, 0, 0, 0, 73732, 12793, 12900, 0, 10950, 0, 0, 12790, + 41400, 119128, 0, 12792, 0, 0, 1744, 12789, 10366, 12317, 41310, 0, + 41399, 0, 0, 0, 0, 12690, 0, 0, 0, 0, 41652, 2974, 0, 11315, 0, 278, 0, + 41405, 119254, 0, 10077, 63853, 74557, 42586, 0, 0, 6002, 0, 43553, 0, + 67903, 0, 12787, 41308, 7934, 65306, 0, 0, 0, 8646, 0, 0, 0, 0, 6413, + 6550, 0, 1940, 0, 66223, 220, 65193, 43551, 10678, 10044, 0, 0, 0, 0, + 6403, 5707, 10393, 0, 0, 66614, 0, 0, 0, 10297, 0, 3742, 0, 3959, 0, 0, + 0, 2467, 0, 6003, 63844, 6663, 8040, 0, 63845, 4182, 0, 4676, 120501, 0, + 0, 2510, 0, 10208, 0, 0, 11540, 43546, 12186, 0, 41060, 0, 0, 9083, 0, 0, + 0, 1559, 63831, 9677, 120260, 0, 65256, 0, 74070, 0, 0, 365, 12056, + 43027, 0, 41716, 0, 0, 0, 5516, 2845, 7717, 8036, 41717, 73827, 544, + 12045, 6278, 0, 5515, 0, 0, 0, 0, 43221, 65194, 0, 5517, 0, 0, 0, 67884, + 0, 67890, 67885, 67880, 67881, 67882, 67883, 0, 0, 67879, 0, 1902, 67887, + 9638, 12976, 0, 12483, 67872, 41769, 0, 41765, 0, 6667, 67874, 7556, + 67878, 74351, 11264, 989, 67876, 67889, 0, 1311, 0, 4326, 11000, 63824, + 13068, 10932, 0, 6917, 0, 0, 949, 917595, 0, 6148, 8605, 42253, 917967, + 0, 0, 0, 0, 0, 0, 63871, 0, 41796, 1269, 6530, 0, 65057, 0, 5144, 12221, + 0, 0, 4431, 4331, 0, 0, 41834, 5279, 0, 10336, 8312, 0, 118861, 0, 0, + 119654, 66036, 0, 0, 6428, 42270, 0, 0, 118866, 0, 5256, 1067, 255, + 12131, 0, 9493, 0, 41014, 11793, 0, 0, 74394, 43594, 10653, 0, 0, 119632, + 0, 6560, 7016, 74274, 0, 43556, 3929, 0, 6614, 2768, 0, 9746, 5135, + 11811, 12796, 11953, 0, 0, 5139, 346, 74303, 6305, 12795, 4675, 5168, 0, + 0, 74315, 74361, 8253, 8817, 1136, 0, 43563, 0, 0, 0, 65285, 8230, 9365, + 0, 0, 0, 0, 0, 4041, 0, 2357, 0, 12786, 229, 119885, 119884, 0, 43552, + 119881, 12350, 65554, 119882, 119877, 119876, 12785, 63863, 119873, 7770, + 10712, 64853, 12686, 118916, 42375, 0, 0, 66352, 10470, 0, 11059, 10791, + 0, 450, 0, 0, 10432, 12097, 5450, 64691, 1233, 0, 63856, 0, 66338, 0, 0, + 1839, 118799, 0, 10927, 1701, 0, 2388, 41749, 41761, 5453, 8361, 119865, + 41758, 5444, 41763, 64889, 119860, 119863, 119862, 0, 0, 0, 66432, 8801, + 3053, 4340, 0, 0, 65812, 0, 0, 41824, 0, 194801, 194800, 194803, 118997, + 194805, 194804, 194807, 194806, 194809, 194808, 0, 0, 4493, 4336, 0, + 2314, 43602, 0, 119325, 194811, 42439, 64638, 42327, 43528, 4489, 194791, + 0, 194793, 1912, 42385, 10306, 10370, 0, 0, 8867, 10250, 10258, 2712, + 1635, 194798, 1410, 0, 0, 118878, 0, 0, 0, 0, 559, 0, 41825, 0, 0, 4892, + 74016, 194781, 6542, 41957, 0, 5777, 0, 759, 65749, 65750, 65248, 12788, + 64487, 64552, 0, 10223, 42062, 0, 0, 0, 3668, 65754, 43560, 12226, 0, + 65149, 2340, 41959, 194786, 194785, 194788, 120154, 65747, 10937, 2962, + 0, 2321, 3587, 65745, 0, 8921, 66013, 0, 0, 194769, 194768, 194771, + 194770, 2949, 66012, 194775, 194774, 2958, 194776, 41820, 43038, 2395, 0, + 0, 120043, 194778, 120058, 194780, 194779, 42809, 42807, 0, 120047, + 10198, 4150, 64371, 8318, 41790, 0, 41898, 2360, 41794, 917942, 0, 0, 0, + 0, 2418, 0, 2411, 11336, 799, 63823, 10276, 10308, 10372, 917541, 41772, + 42813, 2317, 10260, 118980, 119576, 0, 0, 10384, 0, 0, 0, 7753, 2351, + 6655, 64489, 0, 0, 0, 0, 42779, 230, 0, 0, 43549, 4855, 42150, 65739, + 5441, 41896, 10288, 10320, 0, 855, 7046, 6109, 65045, 63839, 119116, 0, + 10098, 0, 74145, 0, 10264, 10280, 9184, 10376, 7013, 4467, 0, 0, 0, + 41887, 0, 4862, 9735, 6537, 120591, 0, 3914, 119604, 0, 9065, 12961, 0, + 0, 0, 0, 289, 0, 4694, 11420, 4690, 0, 120514, 0, 4693, 0, 73919, 0, + 4688, 120454, 0, 0, 119629, 8238, 3110, 120162, 0, 120163, 6528, 0, + 43035, 120161, 218, 0, 1520, 0, 4786, 0, 43225, 0, 0, 120158, 10088, + 6548, 0, 120156, 0, 8988, 8888, 0, 0, 0, 0, 10666, 0, 73902, 0, 0, 0, 0, + 0, 0, 4689, 8932, 0, 65560, 119209, 74441, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10065, 8207, 0, 0, 0, 0, 662, 0, 9244, 0, 0, 119261, 0, 0, 0, 0, 41929, + 0, 0, 0, 41926, 0, 120443, 10513, 64637, 0, 0, 52, 13118, 6475, 0, 0, + 12095, 10225, 4812, 0, 0, 0, 74085, 0, 3978, 0, 0, 0, 11582, 120761, + 12281, 0, 6544, 13241, 0, 0, 0, 194860, 11765, 65258, 10369, 0, 1585, + 7192, 10249, 422, 1500, 2036, 986, 194859, 64394, 5781, 5599, 64294, + 2494, 120450, 4861, 74021, 64334, 0, 0, 0, 0, 65102, 8961, 0, 10243, + 10245, 0, 0, 0, 120453, 64821, 9478, 2508, 0, 0, 202, 0, 74131, 1242, 0, + 0, 63940, 0, 64533, 0, 0, 67842, 11990, 0, 63939, 0, 65440, 2504, 0, 0, + 64829, 0, 6943, 0, 5859, 0, 2858, 0, 74294, 0, 74305, 0, 119027, 12992, + 2753, 1936, 74491, 0, 2751, 12662, 2763, 8953, 64701, 10731, 12922, 0, 0, + 0, 0, 0, 0, 74128, 2856, 119910, 47, 119911, 126986, 65858, 0, 0, 0, + 7899, 0, 8417, 65903, 7072, 0, 0, 4033, 0, 66474, 0, 0, 212, 64600, 1903, + 12320, 0, 0, 0, 0, 8915, 2759, 945, 0, 0, 0, 0, 0, 1291, 74828, 0, 0, + 9531, 13155, 8505, 0, 12062, 0, 0, 65487, 0, 41837, 120611, 120432, 0, 0, + 0, 120433, 0, 63935, 73962, 0, 64787, 43524, 0, 64426, 0, 0, 0, 0, 65664, + 64785, 9843, 0, 8674, 0, 0, 0, 0, 12624, 0, 1673, 4811, 0, 5986, 9338, + 3046, 74480, 5985, 917928, 119598, 9820, 0, 12187, 0, 0, 5984, 0, 43308, + 4393, 0, 0, 0, 0, 0, 74826, 64733, 0, 0, 3491, 0, 0, 0, 3514, 65485, 0, + 7492, 0, 0, 0, 7514, 0, 0, 194731, 7502, 7587, 0, 0, 0, 63925, 0, 7610, + 219, 0, 0, 692, 43588, 74433, 41635, 0, 9688, 0, 9535, 0, 0, 0, 0, 0, + 64610, 11804, 0, 0, 7453, 0, 8013, 0, 0, 0, 8895, 5253, 0, 5458, 0, 2866, + 0, 0, 65111, 0, 12018, 120484, 0, 0, 0, 8962, 0, 9641, 66653, 7059, 0, 0, + 9604, 0, 7441, 63826, 0, 118941, 64392, 0, 0, 2844, 0, 41974, 0, 12139, + 0, 0, 0, 3358, 65295, 0, 3104, 0, 0, 0, 0, 5308, 0, 290, 0, 0, 2862, + 2792, 195088, 0, 0, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, + 1814, 0, 10240, 0, 195092, 0, 119020, 0, 0, 42646, 7606, 2591, 2837, + 4341, 0, 64482, 0, 8163, 65270, 0, 0, 0, 9112, 74431, 863, 9490, 0, 0, + 43323, 120513, 0, 9071, 0, 0, 3654, 0, 9637, 0, 2535, 65504, 7653, 40993, + 0, 66587, 195098, 0, 0, 0, 11006, 12927, 7807, 8073, 0, 10629, 0, 74088, + 3056, 10823, 0, 0, 8762, 10508, 74506, 73770, 63994, 43193, 10737, 3463, + 0, 0, 66633, 8695, 4815, 11322, 5811, 12345, 7049, 0, 5195, 0, 0, 66639, + 0, 0, 0, 0, 0, 120561, 1262, 0, 6561, 19939, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 119907, 64612, 11991, 0, 0, 0, 1502, 0, 0, 9107, 0, 5702, 3655, 0, 8430, + 0, 74132, 0, 0, 74057, 9603, 0, 5254, 120742, 7724, 74388, 74838, 10796, + 5129, 0, 0, 590, 7579, 5614, 5893, 194744, 11720, 0, 11721, 0, 0, 0, + 120541, 66038, 4793, 67851, 11726, 0, 74204, 0, 0, 917600, 894, 300, 0, + 12306, 66235, 0, 0, 0, 2562, 0, 0, 42503, 0, 11652, 0, 0, 119241, 0, 0, + 5096, 5095, 2863, 3424, 0, 10454, 42530, 5094, 119638, 0, 13156, 0, + 10832, 5093, 0, 0, 0, 5092, 10708, 11327, 0, 5091, 176, 0, 9153, 4104, 0, + 0, 1215, 0, 5744, 12272, 9832, 11777, 0, 0, 42881, 0, 8980, 118988, + 67861, 8844, 7433, 0, 0, 4278, 0, 0, 0, 0, 9074, 4348, 0, 65558, 65946, + 8113, 7087, 5255, 1786, 661, 0, 0, 0, 74423, 0, 586, 74414, 64359, 1267, + 0, 0, 0, 65731, 0, 0, 3621, 0, 66666, 0, 0, 6562, 12928, 0, 1228, 65490, + 11383, 0, 0, 0, 1714, 74406, 0, 0, 0, 0, 66225, 0, 0, 0, 11436, 119615, + 64, 0, 0, 10291, 10323, 2826, 0, 0, 0, 42008, 9708, 0, 0, 42011, 41999, + 0, 12206, 5839, 1702, 1240, 74065, 6286, 0, 0, 65833, 0, 0, 1765, 0, 0, + 65588, 0, 0, 0, 8401, 0, 42014, 0, 7030, 0, 10479, 64959, 2852, 0, 0, 0, + 0, 0, 0, 6963, 0, 12667, 0, 74786, 10147, 12935, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64947, 12467, 2864, 64719, 1148, 10435, 11462, 41675, 0, 2765, 0, + 0, 0, 0, 0, 0, 66662, 0, 0, 9364, 194685, 74416, 0, 0, 119244, 263, + 10449, 41288, 0, 41839, 0, 0, 0, 0, 6931, 0, 64355, 7177, 120530, 0, 0, + 0, 4262, 10285, 10722, 42020, 0, 0, 6992, 42019, 0, 41290, 0, 750, 0, 0, + 10163, 0, 74066, 7032, 5954, 64931, 4314, 0, 198, 0, 730, 0, 0, 0, 0, + 13165, 10814, 74171, 42804, 678, 8240, 118960, 0, 41378, 11008, 6938, 0, + 0, 42812, 66246, 120560, 0, 0, 0, 3892, 0, 0, 0, 66045, 41470, 64805, 0, + 0, 0, 118982, 0, 497, 12100, 5953, 0, 7796, 0, 0, 73831, 0, 10293, 5952, + 1281, 0, 0, 0, 10677, 604, 41097, 9182, 1859, 0, 0, 3425, 0, 0, 2836, 0, + 0, 9707, 0, 43202, 0, 0, 65199, 1738, 0, 0, 2832, 0, 9670, 12937, 0, 0, + 0, 0, 2822, 0, 4436, 0, 0, 73752, 0, 64872, 0, 1331, 0, 0, 0, 12708, 0, + 5090, 5089, 0, 0, 119109, 0, 0, 319, 118931, 0, 9477, 0, 0, 5087, 0, + 7640, 96, 5086, 0, 0, 0, 5085, 64286, 0, 0, 41422, 0, 119901, 42356, + 3772, 0, 0, 5011, 0, 0, 0, 0, 0, 0, 6677, 7601, 0, 591, 64419, 118953, 0, + 0, 118923, 0, 0, 10939, 6106, 6933, 41271, 0, 119903, 4534, 41270, 0, 0, + 65574, 0, 9224, 0, 3671, 8976, 0, 0, 41275, 0, 0, 0, 7963, 42013, 0, 568, + 0, 41273, 0, 0, 0, 0, 9715, 0, 8258, 11753, 74820, 0, 9602, 118919, 42, + 0, 0, 0, 0, 7458, 0, 0, 65385, 0, 0, 11958, 0, 0, 0, 6254, 0, 66336, + 8045, 11550, 0, 0, 0, 42858, 11789, 65868, 5557, 917946, 9737, 13109, 0, + 9467, 5558, 8878, 0, 195036, 7451, 7435, 10146, 0, 9086, 64566, 0, 64584, + 7437, 7454, 12594, 0, 0, 4546, 7731, 0, 917948, 74243, 0, 3805, 0, 0, 0, + 41008, 0, 6307, 19949, 0, 7544, 0, 43525, 0, 0, 10152, 64422, 65091, + 119113, 7602, 64729, 0, 43521, 0, 42302, 0, 43523, 41447, 5559, 0, 8704, + 2397, 5556, 0, 0, 0, 9011, 9630, 0, 0, 0, 5506, 0, 1911, 66652, 0, 12598, + 8845, 66698, 0, 10792, 8889, 0, 6951, 0, 64751, 0, 66622, 0, 0, 74364, 0, + 0, 0, 74365, 7552, 0, 0, 65384, 7223, 4559, 0, 1956, 43138, 7024, 65728, + 64501, 1210, 0, 65175, 10184, 43140, 65727, 0, 0, 0, 38, 8533, 66669, 0, + 0, 0, 0, 4357, 0, 0, 0, 74233, 119846, 119852, 42860, 119838, 10941, + 65721, 6962, 0, 0, 0, 0, 11014, 0, 8942, 12000, 0, 0, 0, 11974, 0, 42772, + 0, 11650, 5013, 0, 0, 66210, 118914, 6613, 0, 0, 0, 0, 0, 64714, 0, 0, 0, + 12120, 0, 0, 11024, 74811, 0, 10563, 0, 0, 43522, 2462, 0, 1837, 0, + 63972, 6957, 0, 120559, 4952, 65718, 65827, 5504, 65720, 65714, 65715, + 65716, 0, 127005, 127119, 3109, 63975, 74028, 0, 8107, 119234, 1127, 455, + 0, 0, 0, 3483, 127122, 1989, 0, 0, 9104, 3503, 65375, 0, 0, 42633, 1864, + 0, 74306, 41446, 2540, 7736, 0, 74064, 0, 10521, 0, 42173, 9705, 74124, + 8604, 6955, 10916, 0, 6149, 3887, 19956, 1411, 2824, 0, 10106, 0, 1403, + 0, 1347, 9631, 74444, 0, 0, 0, 0, 8640, 0, 258, 1654, 0, 0, 0, 43314, 0, + 0, 4042, 11478, 2873, 63977, 11522, 41668, 8549, 10861, 0, 0, 0, 0, 0, + 74585, 41391, 0, 917903, 376, 6987, 9221, 0, 0, 8823, 0, 12943, 65185, + 41869, 12619, 0, 10154, 0, 74439, 2039, 0, 7446, 1684, 63979, 10974, 458, + 120620, 0, 0, 0, 11916, 65016, 0, 0, 42115, 0, 12288, 0, 0, 1493, 42111, + 7553, 4097, 0, 13080, 0, 65808, 6610, 6030, 8059, 7508, 41636, 0, 0, 0, + 8794, 41278, 41629, 12154, 0, 41277, 64658, 0, 64380, 6625, 0, 19904, 0, + 0, 0, 65371, 7078, 0, 833, 0, 74592, 0, 10979, 41953, 0, 41434, 6062, 0, + 0, 19916, 6913, 933, 1341, 9842, 0, 65744, 0, 0, 0, 0, 41615, 10105, + 65810, 0, 41632, 7493, 0, 0, 41622, 0, 0, 119556, 74584, 7632, 9716, + 19954, 9805, 5990, 900, 0, 63957, 0, 0, 3612, 0, 64376, 0, 5389, 0, 0, + 65938, 2839, 9621, 582, 0, 74368, 3749, 6949, 7569, 74061, 0, 0, 6956, + 4403, 19962, 65559, 3299, 0, 0, 119127, 9002, 0, 74372, 74236, 8478, + 7598, 546, 42469, 65569, 1918, 9542, 472, 7716, 10319, 10383, 6996, 0, + 63952, 8425, 3602, 8328, 11764, 118894, 0, 0, 41183, 12907, 10271, 10287, + 684, 74185, 0, 2854, 119586, 4592, 65755, 0, 0, 11963, 65753, 0, 0, 0, 0, + 0, 9881, 0, 65757, 3415, 0, 0, 8648, 0, 118886, 43047, 0, 13180, 0, 418, + 0, 0, 10295, 10327, 10391, 41752, 74339, 8641, 41449, 0, 0, 0, 10911, + 6942, 0, 1024, 42849, 41751, 0, 8941, 0, 4554, 0, 9023, 11685, 0, 0, 0, + 0, 11437, 0, 0, 120700, 63967, 0, 41206, 120724, 9049, 41185, 43166, 0, + 11680, 0, 11686, 0, 65224, 4565, 4655, 119553, 0, 0, 64523, 10343, 10407, + 0, 66671, 11466, 0, 0, 42890, 0, 12050, 194750, 2860, 0, 0, 0, 42792, + 5743, 10424, 12065, 42872, 0, 0, 0, 8875, 0, 0, 917991, 7531, 12847, + 2413, 0, 0, 962, 0, 12855, 41196, 42564, 0, 1582, 0, 5508, 0, 0, 0, + 10801, 0, 118798, 0, 7173, 496, 10439, 4313, 64607, 119557, 7860, 0, 906, + 42793, 2842, 6405, 64722, 13132, 798, 64694, 12801, 8406, 1153, 0, 64788, + 0, 8054, 9174, 194749, 917976, 0, 0, 41611, 4642, 66574, 11556, 0, 0, 0, + 42089, 0, 9008, 0, 0, 195096, 42079, 917981, 917996, 42513, 0, 42842, + 73985, 0, 118974, 127003, 0, 0, 0, 0, 11335, 64069, 42093, 3920, 0, 0, 0, + 0, 4580, 41967, 0, 64384, 0, 119158, 3021, 42004, 0, 0, 42317, 41998, 0, + 6946, 0, 0, 0, 0, 65204, 0, 68113, 65196, 9880, 42010, 0, 64589, 10111, + 64875, 0, 0, 0, 11360, 0, 0, 0, 0, 42149, 0, 0, 0, 64941, 0, 0, 0, 0, + 65671, 4110, 66005, 6959, 10929, 119110, 0, 66703, 0, 8617, 41982, 6025, + 0, 0, 0, 0, 0, 9597, 42099, 43172, 0, 10117, 0, 0, 41642, 0, 0, 0, 8301, + 0, 0, 187, 0, 65669, 0, 4963, 0, 0, 0, 8964, 65676, 65785, 0, 41948, 0, + 0, 0, 41942, 65449, 3160, 10081, 13226, 42121, 42475, 0, 0, 41766, 0, + 65882, 0, 41760, 1189, 905, 480, 10985, 41733, 67859, 9629, 42436, 1745, + 0, 73835, 7888, 0, 0, 0, 0, 41507, 8806, 7023, 0, 74279, 64540, 0, 7867, + 0, 6236, 0, 0, 10505, 0, 12851, 118948, 348, 5474, 0, 3103, 0, 41753, 0, + 0, 0, 0, 0, 41739, 0, 42515, 10931, 41756, 43347, 42560, 5391, 41746, + 119147, 0, 41259, 5561, 74360, 2691, 0, 65553, 7933, 5562, 0, 0, 41262, + 0, 64421, 74846, 41251, 0, 0, 3979, 0, 0, 74813, 0, 0, 0, 0, 118847, + 41266, 0, 0, 917630, 10585, 65741, 41737, 9574, 2666, 0, 41738, 831, 419, + 13126, 10716, 0, 42822, 0, 6434, 0, 6939, 7766, 6432, 0, 0, 916, 769, + 41742, 11968, 120557, 6433, 5563, 547, 1943, 6439, 5560, 4994, 487, 0, + 4497, 3754, 0, 120424, 9039, 0, 41776, 0, 8716, 1595, 119206, 0, 0, + 74260, 0, 43267, 0, 0, 0, 12185, 0, 0, 0, 0, 0, 42856, 8634, 0, 0, 4209, + 120702, 0, 65879, 41538, 65612, 0, 669, 5679, 0, 0, 118961, 0, 0, 5678, + 11821, 0, 0, 460, 0, 0, 0, 0, 120747, 0, 0, 0, 119022, 0, 0, 0, 7782, + 9044, 4974, 11760, 917547, 7577, 65711, 41912, 1216, 0, 0, 5792, 0, 0, 0, + 0, 42264, 12244, 0, 5683, 0, 0, 0, 1549, 0, 0, 120398, 5682, 6206, 8670, + 74520, 5680, 917568, 10001, 0, 0, 1449, 10241, 0, 0, 0, 10552, 64342, + 41922, 0, 8584, 0, 5567, 2717, 0, 0, 5564, 42886, 41908, 42882, 5565, 0, + 0, 0, 65708, 65709, 5566, 0, 65704, 65705, 11904, 42875, 0, 42539, 5942, + 8468, 0, 10361, 10425, 65697, 65698, 65699, 0, 66598, 0, 64664, 10647, 0, + 0, 0, 457, 0, 65701, 1934, 43006, 0, 8802, 0, 65130, 0, 0, 6087, 0, 0, + 41757, 0, 8043, 8950, 65694, 64485, 43534, 10457, 0, 11961, 119006, 0, 0, + 0, 0, 0, 65515, 9499, 10035, 13069, 0, 0, 9889, 68184, 42806, 0, 7256, 0, + 0, 1667, 42161, 0, 42428, 0, 6934, 0, 10802, 64861, 6556, 0, 0, 8101, + 3610, 0, 41748, 4995, 955, 65907, 119208, 5350, 64339, 0, 64549, 10875, + 917956, 5477, 65692, 0, 0, 0, 12896, 10456, 917954, 0, 3874, 0, 0, 0, 0, + 0, 0, 65603, 0, 65687, 0, 41038, 74009, 119570, 67857, 8536, 0, 0, 0, + 74432, 724, 0, 1455, 0, 7183, 64583, 119233, 0, 4175, 917962, 0, 0, 939, + 0, 43520, 0, 74569, 917958, 0, 917959, 917945, 194704, 10788, 6088, 0, 0, + 190, 0, 12593, 0, 8188, 64408, 0, 4417, 0, 0, 41744, 0, 7827, 0, 6965, 0, + 0, 13201, 0, 0, 0, 74382, 73781, 7918, 73988, 0, 0, 917884, 1728, 0, + 120710, 178, 12972, 0, 0, 0, 120671, 0, 0, 0, 120405, 65690, 0, 0, + 119054, 0, 9252, 917889, 4652, 74259, 0, 0, 0, 13065, 9923, 10806, 0, + 11763, 0, 120688, 0, 119098, 0, 6993, 0, 0, 8333, 0, 0, 0, 0, 74464, 0, + 0, 74080, 0, 0, 11910, 0, 8278, 8963, 4034, 0, 0, 65344, 120517, 41747, + 0, 0, 8677, 0, 12707, 9350, 66037, 0, 8836, 12315, 12747, 8300, 0, 0, + 7491, 8856, 0, 0, 43150, 0, 120404, 65389, 120402, 120403, 10813, 2592, + 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, 12321, 120391, + 120388, 120389, 10007, 120246, 9588, 120248, 1596, 120383, 41994, 65801, + 0, 0, 66572, 0, 0, 10613, 8092, 12805, 41928, 40981, 0, 0, 5006, 64328, + 0, 65298, 0, 8825, 74555, 65940, 0, 0, 6107, 0, 119177, 0, 0, 0, 11783, + 335, 120227, 64689, 438, 4510, 5765, 8721, 120233, 119227, 6092, 12840, + 43112, 8876, 120231, 8096, 10284, 0, 0, 0, 10380, 8733, 0, 0, 41602, 0, + 0, 74831, 917901, 0, 73747, 65399, 0, 64591, 42405, 0, 917897, 843, + 11541, 0, 0, 0, 41935, 74496, 41902, 0, 0, 215, 41258, 0, 43159, 1953, + 9579, 41938, 1256, 3910, 9407, 6242, 0, 0, 41257, 41900, 8675, 10700, + 8805, 1742, 0, 9333, 8202, 0, 0, 0, 0, 0, 73882, 499, 0, 0, 0, 126983, 0, + 1712, 5932, 0, 41762, 0, 0, 11967, 1775, 0, 0, 0, 0, 0, 9458, 0, 6470, + 9180, 120380, 43176, 0, 0, 42782, 0, 0, 0, 917912, 74777, 120669, 9414, + 120382, 73782, 73969, 565, 42484, 5794, 201, 2662, 42292, 0, 8254, 0, + 10975, 0, 120625, 74763, 1022, 4108, 3880, 74247, 0, 0, 0, 917980, 7507, + 0, 43149, 0, 65031, 7961, 1636, 0, 65029, 65024, 0, 12473, 6534, 0, 99, + 98, 97, 120571, 67584, 4049, 0, 0, 7090, 0, 7892, 917969, 10777, 0, + 65310, 65562, 66599, 0, 0, 8039, 3363, 66594, 0, 0, 0, 12596, 66595, + 42258, 42570, 5593, 119148, 120711, 0, 10100, 6061, 64854, 119, 118, 117, + 116, 12998, 122, 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, + 102, 101, 100, 107, 106, 105, 104, 6436, 73974, 534, 41212, 0, 1536, + 64093, 73970, 0, 0, 0, 6020, 12716, 127112, 12744, 475, 120394, 13266, 0, + 127111, 0, 73926, 0, 10645, 1212, 6543, 0, 8134, 0, 2913, 73870, 0, 1866, + 0, 195095, 0, 8923, 1645, 12059, 66585, 0, 3196, 0, 0, 5935, 1250, 0, + 8174, 9787, 9856, 9859, 7916, 9861, 9860, 5258, 1882, 1892, 0, 10882, + 405, 11454, 73911, 0, 0, 41169, 8939, 41245, 0, 41170, 1454, 11369, 6477, + 12157, 0, 0, 0, 41172, 7855, 0, 0, 10480, 0, 0, 0, 8264, 12610, 0, 645, + 0, 7609, 40973, 0, 0, 0, 5824, 984, 0, 10688, 5851, 0, 7729, 73982, + 120518, 0, 195086, 66722, 0, 0, 0, 0, 4538, 120406, 43141, 0, 0, 74214, + 0, 0, 0, 118902, 43005, 0, 9552, 0, 0, 0, 12997, 0, 0, 0, 0, 2381, 12883, + 10994, 10529, 41906, 0, 0, 0, 12425, 10661, 10856, 9614, 2428, 41478, + 8582, 10064, 73930, 0, 0, 0, 64896, 119162, 1952, 0, 8455, 10082, 11575, + 0, 119566, 0, 12808, 12183, 6145, 0, 64929, 0, 0, 0, 43186, 42509, 0, + 3922, 9187, 0, 0, 0, 119057, 11752, 3353, 9358, 0, 0, 66680, 120090, + 11747, 7931, 8558, 9795, 0, 0, 0, 120082, 120081, 120084, 41027, 120086, + 0, 120088, 120087, 7019, 120073, 0, 11751, 120078, 120077, 64657, 8657, + 120048, 8594, 120068, 0, 0, 120069, 120072, 120071, 0, 0, 43154, 41029, + 0, 11332, 65380, 7728, 0, 11294, 0, 66665, 7851, 0, 0, 8699, 0, 42524, 0, + 9085, 0, 7504, 9327, 6160, 0, 0, 0, 8088, 0, 74012, 0, 0, 4439, 6926, 0, + 12924, 0, 42369, 0, 65491, 65145, 9041, 43559, 64577, 10826, 0, 11296, 0, + 0, 0, 65825, 9577, 120494, 0, 64670, 0, 0, 42159, 11295, 0, 0, 120779, 0, + 0, 10902, 0, 0, 0, 0, 10472, 2995, 0, 0, 0, 2371, 0, 120808, 259, 1009, + 0, 2402, 2333, 6440, 0, 0, 65125, 41244, 0, 13271, 9103, 41180, 0, 0, 0, + 0, 10219, 0, 0, 0, 0, 43178, 127070, 41261, 119362, 917974, 8613, 0, + 118989, 917978, 917979, 41492, 12005, 917982, 0, 1890, 120056, 0, 0, 0, + 7293, 7991, 0, 10578, 0, 118840, 0, 0, 0, 0, 0, 0, 120054, 118815, 6635, + 0, 6164, 65170, 0, 0, 0, 11664, 0, 0, 0, 0, 118812, 0, 0, 0, 9175, 11925, + 0, 9088, 0, 64545, 1396, 0, 7546, 3847, 0, 0, 4985, 13288, 672, 8098, + 43196, 194746, 0, 0, 0, 74043, 65072, 1577, 11772, 0, 5928, 4525, 10658, + 65911, 1266, 10180, 0, 0, 12622, 0, 0, 0, 194714, 0, 13310, 773, 19933, + 1539, 0, 0, 66374, 0, 0, 0, 0, 3051, 5862, 7823, 0, 0, 120411, 3250, + 74020, 0, 66649, 9510, 66237, 0, 0, 41066, 64673, 917963, 917964, 0, + 3505, 8707, 917968, 917965, 917966, 917971, 917972, 3471, 917970, 5479, + 882, 6686, 119584, 11613, 120772, 42754, 0, 0, 0, 0, 0, 0, 0, 3225, 0, + 4433, 41156, 73745, 43173, 1443, 4381, 0, 0, 10926, 11756, 11757, 64879, + 917949, 917950, 917947, 13227, 0, 10021, 5160, 1387, 0, 917953, 41418, 0, + 65914, 917957, 217, 917955, 917960, 917961, 10443, 10789, 41158, 119257, + 4274, 0, 41483, 0, 41250, 0, 42179, 0, 5931, 11744, 0, 0, 41252, 66682, + 0, 119637, 41249, 1366, 64635, 0, 12466, 0, 0, 4397, 0, 0, 41296, 9545, + 41291, 0, 0, 41485, 3511, 41282, 5923, 10400, 0, 0, 760, 0, 12088, 5786, + 0, 42256, 119869, 119861, 417, 41474, 119562, 41565, 0, 5934, 119867, + 66583, 119231, 64877, 0, 64481, 0, 0, 41956, 0, 126995, 0, 0, 0, 42273, + 5819, 0, 917556, 0, 0, 0, 65910, 0, 10246, 0, 0, 1237, 10274, 4552, 0, 0, + 0, 1375, 66705, 43573, 65260, 42063, 0, 42811, 10312, 74192, 120794, + 7840, 0, 64890, 10252, 0, 0, 43185, 0, 4396, 0, 119880, 10769, 10331, + 119041, 0, 9753, 0, 8944, 0, 0, 10473, 0, 0, 6072, 43025, 10299, 0, 0, + 120608, 119874, 0, 0, 0, 0, 9330, 0, 7222, 10283, 10315, 10379, 4996, 0, + 13281, 66517, 7865, 10087, 0, 0, 119092, 0, 0, 7565, 66363, 12952, 64806, + 43180, 0, 68096, 0, 0, 74288, 622, 74023, 885, 64772, 1602, 0, 0, 852, 0, + 12160, 0, 10212, 65435, 0, 12071, 9609, 12156, 917983, 917984, 43586, + 11035, 10411, 917988, 10255, 10263, 10279, 4194, 10375, 917993, 0, 4315, + 12644, 917997, 917994, 917995, 43343, 0, 917998, 917999, 41177, 0, 0, + 917792, 0, 0, 8715, 0, 41179, 0, 43313, 0, 41176, 0, 994, 0, 8452, + 127103, 73966, 0, 0, 5921, 0, 2597, 0, 5922, 118903, 127109, 4186, + 127107, 127106, 127105, 73973, 0, 4406, 74601, 8480, 0, 9747, 0, 4413, 0, + 42268, 3198, 5924, 5920, 0, 6921, 0, 74007, 42869, 8418, 11681, 43169, + 10176, 0, 742, 0, 2893, 10772, 65276, 5937, 1914, 2553, 11682, 0, 0, 0, + 8363, 0, 2993, 7772, 3916, 0, 0, 1141, 42407, 8159, 718, 7572, 973, 0, + 120718, 3235, 2415, 43164, 0, 8018, 42333, 74756, 10675, 6937, 42486, 0, + 65390, 0, 0, 1202, 0, 0, 127037, 0, 0, 0, 0, 64542, 3260, 73829, 65388, + 0, 8419, 0, 127036, 0, 0, 74193, 0, 0, 0, 0, 1431, 0, 66565, 10821, 0, + 12804, 0, 8229, 1235, 3307, 11472, 0, 0, 4544, 0, 0, 0, 1740, 0, 8758, + 985, 12882, 64511, 0, 12068, 0, 0, 10141, 0, 63761, 8785, 4476, 0, 63763, + 12655, 8907, 0, 0, 0, 0, 0, 119572, 10665, 64616, 41572, 0, 0, 0, 41573, + 0, 3931, 0, 74143, 0, 0, 0, 0, 11982, 0, 0, 0, 0, 64484, 0, 41167, 0, + 41735, 0, 717, 10754, 0, 0, 0, 0, 63767, 0, 1780, 6936, 0, 0, 819, 10611, + 9694, 126978, 0, 0, 0, 0, 0, 0, 12820, 0, 6578, 7009, 7523, 6922, 74218, + 67848, 7525, 3346, 8339, 0, 0, 575, 268, 0, 8563, 0, 120343, 41541, + 65565, 8336, 5936, 7290, 0, 8337, 13081, 308, 11388, 7522, 120721, 0, + 65466, 11090, 6953, 0, 120346, 0, 120345, 5926, 0, 0, 0, 0, 0, 0, 9038, + 7887, 0, 7830, 11651, 13093, 64002, 0, 65742, 0, 119597, 11590, 0, 74048, + 0, 8595, 0, 0, 0, 13097, 0, 64643, 13283, 12697, 0, 120621, 3488, 5933, + 10033, 73738, 66241, 65570, 0, 12297, 119153, 1955, 0, 5349, 42538, 0, 0, + 65308, 9462, 0, 0, 0, 0, 0, 0, 5831, 0, 7638, 0, 42764, 0, 43109, 7637, + 11957, 120600, 0, 0, 0, 0, 0, 0, 0, 7636, 65171, 9124, 0, 120331, 0, 291, + 0, 0, 2027, 66230, 0, 0, 10403, 0, 4640, 64713, 10224, 120429, 42512, + 120431, 120430, 0, 0, 0, 0, 0, 0, 0, 119094, 74213, 7824, 0, 0, 41274, + 5778, 6302, 0, 0, 12680, 119130, 1417, 0, 194914, 9452, 0, 0, 11552, 0, + 0, 0, 65391, 0, 10172, 65453, 120408, 41264, 120410, 6426, 4641, 9179, + 64819, 64906, 41255, 42036, 41469, 41269, 120412, 41267, 4646, 120425, + 865, 42034, 120426, 120421, 4645, 42033, 120422, 0, 0, 64728, 0, 0, 0, + 1659, 919, 42784, 1671, 195089, 6069, 9219, 195090, 1661, 13120, 63784, + 195094, 10140, 9713, 119143, 0, 0, 0, 2306, 10485, 118943, 6068, 10612, + 195099, 0, 195101, 195078, 41462, 195080, 195079, 5422, 195081, 0, 0, 0, + 10229, 10635, 826, 195083, 195082, 195085, 195084, 195087, 6483, 0, 1808, + 7848, 0, 8100, 0, 0, 0, 13301, 0, 9667, 0, 0, 0, 11003, 9904, 0, 0, + 120690, 9144, 10921, 0, 0, 9840, 65131, 917560, 0, 10313, 0, 0, 64320, + 10265, 0, 10962, 118970, 43008, 8945, 0, 0, 41, 195072, 1792, 120515, + 195073, 8655, 195075, 0, 0, 12066, 0, 385, 4152, 2585, 0, 0, 3126, 0, + 74136, 10957, 0, 0, 0, 0, 13157, 0, 0, 3570, 0, 7443, 0, 0, 6997, 0, 0, + 7879, 8739, 11075, 0, 65216, 0, 0, 2593, 8463, 7810, 917862, 7839, + 119913, 0, 917860, 9691, 4411, 917847, 0, 0, 0, 0, 65254, 10066, 0, 0, 0, + 0, 13061, 8016, 0, 19932, 64831, 0, 0, 12390, 119171, 1634, 68115, 0, + 11056, 0, 119925, 0, 41165, 11328, 12450, 0, 41166, 0, 12456, 119914, + 171, 5941, 12452, 917544, 12458, 12531, 0, 43013, 63800, 74162, 0, + 120483, 194920, 0, 12454, 63806, 42132, 12063, 195077, 0, 3230, 0, 0, 0, + 5209, 297, 5810, 8522, 8415, 0, 0, 0, 7077, 2497, 0, 960, 74156, 6981, 0, + 12938, 4292, 0, 74815, 10512, 0, 74814, 0, 0, 0, 2503, 73778, 1762, + 73833, 2495, 0, 5844, 119124, 118838, 0, 12654, 4663, 1899, 0, 2507, 0, + 8726, 65594, 0, 0, 0, 8892, 0, 0, 0, 0, 5782, 420, 0, 0, 120462, 10797, + 63794, 0, 0, 0, 63796, 118965, 0, 66581, 119205, 41608, 0, 0, 0, 4659, + 120788, 0, 0, 0, 0, 0, 0, 0, 329, 120472, 0, 917548, 0, 0, 41188, 13244, + 120466, 42167, 0, 0, 5380, 0, 0, 1155, 11365, 43126, 0, 0, 65684, 0, + 5601, 65192, 42765, 63752, 0, 7987, 0, 1172, 0, 0, 43601, 120476, 74126, + 5603, 0, 4473, 0, 194823, 0, 65347, 65346, 65345, 0, 0, 5347, 0, 0, + 73868, 118944, 10588, 0, 0, 63755, 0, 5343, 120473, 0, 4555, 5341, 0, 0, + 0, 5351, 0, 43104, 65244, 917892, 64541, 42519, 74472, 0, 0, 74765, + 917888, 0, 6638, 0, 65113, 271, 74180, 65370, 8835, 65368, 12653, 65366, + 42172, 41086, 65363, 65362, 65361, 11912, 65359, 11323, 65357, 11800, + 65355, 5345, 65353, 65352, 65351, 761, 65349, 19959, 0, 0, 0, 0, 0, + 64647, 0, 0, 4699, 0, 0, 0, 0, 64605, 0, 0, 0, 4916, 0, 380, 10958, + 66563, 917906, 0, 9773, 13167, 12918, 41096, 73980, 0, 917898, 917893, + 10684, 0, 917896, 0, 7946, 12541, 8182, 0, 0, 0, 0, 0, 0, 9005, 1225, + 6630, 0, 0, 0, 0, 8847, 0, 65876, 5535, 8329, 74590, 0, 0, 0, 0, 3127, + 2595, 65713, 0, 0, 5607, 41089, 0, 0, 74256, 2665, 11304, 0, 74200, 4970, + 8764, 120459, 8934, 0, 41566, 4492, 0, 65011, 41090, 0, 0, 1188, 7254, + 1100, 0, 0, 41081, 2912, 11749, 0, 0, 0, 3572, 10023, 4959, 13079, 0, 0, + 9729, 0, 0, 0, 0, 0, 0, 11803, 7996, 9907, 41450, 13304, 0, 0, 41451, 0, + 0, 8273, 0, 3451, 0, 972, 41453, 0, 0, 73883, 0, 73945, 0, 3455, 19955, + 9538, 0, 0, 0, 0, 0, 0, 11396, 0, 11019, 0, 0, 0, 120507, 41078, 0, 261, + 5927, 7791, 0, 0, 0, 10696, 0, 6073, 9838, 118920, 0, 6075, 0, 282, 0, + 6437, 74078, 0, 65861, 0, 0, 0, 0, 3474, 118787, 0, 120655, 6081, 0, 0, + 74076, 0, 0, 0, 0, 0, 0, 8751, 12623, 120273, 7816, 12636, 4665, 12628, + 4670, 120271, 120272, 0, 9642, 10912, 958, 0, 11387, 0, 4666, 0, 4915, 0, + 4669, 0, 68099, 13287, 4664, 10836, 120550, 0, 0, 0, 43595, 7450, 0, + 917875, 8664, 9697, 3606, 917873, 0, 0, 64815, 1063, 120250, 120251, + 9772, 7255, 8886, 1389, 0, 120257, 120258, 120259, 12941, 120253, 120254, + 120255, 120256, 12301, 120266, 120267, 41102, 66604, 120262, 120263, + 120264, 1017, 66600, 523, 505, 1447, 74436, 0, 0, 0, 8608, 42789, 0, 0, + 0, 119196, 11307, 66707, 917871, 0, 11745, 7919, 0, 1641, 0, 0, 8966, 0, + 0, 5908, 0, 0, 74562, 0, 1699, 74191, 74843, 0, 0, 6306, 10169, 0, + 119251, 0, 3766, 120457, 120456, 120455, 6611, 257, 43170, 13153, 0, + 42386, 0, 9436, 2599, 0, 6496, 9449, 5930, 11476, 11033, 11447, 0, 5622, + 120436, 8477, 3760, 1718, 9442, 66433, 3776, 0, 41435, 4352, 0, 2435, + 120809, 5621, 0, 4201, 3778, 4203, 4202, 4205, 4204, 120447, 3768, 68142, + 765, 41440, 3764, 8473, 120440, 8469, 120438, 12947, 4564, 0, 0, 74271, + 73753, 0, 0, 0, 0, 5225, 0, 0, 0, 0, 0, 0, 74793, 5626, 73807, 11771, 0, + 0, 0, 0, 5353, 5625, 74179, 0, 0, 1010, 64572, 0, 42623, 64277, 0, 6952, + 0, 120752, 119003, 2590, 5629, 65552, 7551, 10325, 5632, 10471, 120038, + 120027, 120028, 120025, 5628, 120031, 970, 120029, 4772, 2400, 5627, + 120017, 120018, 120023, 64275, 120021, 10961, 0, 203, 0, 0, 0, 0, 0, 0, + 64378, 42054, 0, 0, 554, 119649, 11358, 0, 12182, 42048, 11065, 0, 73891, + 0, 0, 5694, 7689, 74528, 9323, 4325, 3047, 10317, 175, 0, 0, 74605, 0, 0, + 1243, 42154, 5431, 6652, 0, 0, 0, 0, 68118, 0, 1129, 0, 0, 65900, 1986, + 7846, 0, 8661, 0, 65255, 0, 3845, 4490, 0, 6649, 74400, 1456, 7530, + 11977, 7249, 8366, 0, 7756, 12342, 0, 51, 41516, 0, 8570, 9568, 0, 456, + 7026, 8145, 1168, 9251, 9082, 0, 64055, 42781, 3866, 12323, 41512, 73805, + 68121, 0, 41494, 0, 4660, 0, 10405, 0, 0, 0, 0, 42040, 73918, 119627, + 7944, 41454, 12605, 0, 0, 41455, 236, 0, 0, 8214, 0, 0, 0, 41457, 0, + 119589, 1969, 2384, 8097, 0, 0, 0, 0, 8766, 0, 917863, 5854, 0, 10583, 0, + 119989, 0, 10416, 917869, 3872, 0, 0, 8429, 0, 0, 2838, 917867, 0, 0, 0, + 0, 0, 0, 0, 917864, 120813, 10553, 1662, 8483, 0, 43605, 5892, 917868, 0, + 73742, 66, 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79, + 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, 0, 10357, 0, 8170, 1704, 8556, 0, + 9659, 0, 0, 0, 9556, 0, 4503, 11353, 9647, 0, 0, 0, 0, 0, 0, 0, 0, 74229, + 66593, 6438, 0, 9109, 119565, 1289, 64599, 0, 0, 0, 65507, 2447, 0, 0, 0, + 0, 0, 0, 73750, 0, 0, 19937, 0, 0, 0, 5675, 254, 0, 0, 0, 42425, 8918, + 64003, 5716, 42312, 0, 0, 6972, 42826, 0, 42464, 120567, 0, 0, 74796, + 64400, 64693, 0, 0, 65429, 9515, 4435, 0, 0, 0, 0, 11785, 0, 64671, + 41978, 1412, 4594, 1391, 10536, 8067, 9901, 7775, 0, 0, 74588, 120748, + 3140, 0, 7960, 43271, 0, 12518, 10909, 0, 1428, 12472, 0, 0, 7699, 12393, + 0, 0, 0, 74518, 9063, 0, 4261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64554, + 10574, 3878, 0, 42352, 1752, 73785, 0, 42506, 0, 10199, 0, 0, 0, 65919, + 0, 0, 720, 324, 0, 0, 0, 0, 1464, 40985, 0, 7974, 0, 68123, 0, 64488, 0, + 0, 0, 74787, 0, 0, 0, 65597, 0, 0, 0, 1302, 0, 0, 0, 0, 0, 5204, 74774, + 0, 0, 0, 3995, 0, 65608, 3714, 0, 0, 0, 10999, 11750, 0, 127004, 0, 0, 0, + 0, 8130, 8672, 10845, 11964, 0, 0, 0, 0, 0, 42863, 73839, 0, 0, 0, 0, 0, + 0, 468, 612, 0, 64401, 66448, 0, 0, 1674, 0, 5823, 0, 12280, 0, 540, + 74564, 0, 0, 8432, 0, 11073, 0, 64316, 0, 0, 820, 41741, 0, 120667, 0, + 64684, 126992, 3359, 7800, 0, 65177, 6226, 353, 12396, 0, 119612, 64742, + 0, 0, 0, 0, 12412, 19941, 0, 120277, 0, 1884, 9481, 42418, 0, 41157, 0, + 1195, 64898, 7924, 0, 41151, 2010, 0, 41328, 42344, 0, 12409, 0, 4360, + 127009, 9739, 0, 74392, 73921, 0, 42521, 8539, 0, 0, 0, 0, 4788, 0, 0, + 65734, 0, 64353, 0, 13075, 74429, 0, 64569, 43532, 10837, 2492, 0, + 118901, 0, 41136, 64351, 11813, 9649, 41154, 119617, 5128, 4038, 41143, + 65604, 64859, 41592, 0, 1648, 5435, 0, 0, 41343, 119848, 65439, 12709, + 6986, 0, 0, 0, 41349, 0, 12581, 10374, 5175, 0, 73806, 10254, 0, 10278, + 10262, 120295, 41346, 0, 607, 0, 0, 0, 12923, 10314, 10282, 65477, 10378, + 120297, 40976, 8265, 0, 119834, 40975, 5840, 42838, 0, 40978, 0, 119840, + 0, 0, 0, 66444, 10538, 0, 2550, 119836, 0, 0, 0, 3525, 0, 0, 0, 0, 5619, + 65822, 0, 194882, 7455, 0, 5616, 11486, 9656, 0, 0, 10727, 5615, 0, + 120551, 42380, 64895, 0, 66451, 808, 5455, 11347, 0, 1026, 5620, 194887, + 0, 11350, 5617, 0, 9225, 64639, 127073, 9145, 0, 1338, 120581, 0, 12739, + 0, 3084, 0, 0, 41025, 6037, 0, 3974, 0, 10290, 0, 3083, 10322, 0, 0, 0, + 41036, 0, 0, 43321, 65606, 0, 41032, 42388, 0, 64700, 10011, 1445, 40961, + 0, 194893, 0, 40960, 0, 0, 0, 40963, 0, 10402, 0, 0, 0, 10603, 0, 0, 0, + 0, 194923, 10083, 127069, 0, 194922, 0, 0, 0, 9073, 42585, 64302, 10704, + 65030, 4787, 0, 74829, 0, 65423, 0, 0, 9570, 0, 9525, 2689, 917626, + 65426, 0, 917624, 0, 0, 40966, 917623, 13286, 3998, 42598, 42596, 503, 0, + 8735, 2690, 66488, 42836, 194913, 41954, 917617, 1652, 772, 194877, 8310, + 65428, 3487, 0, 3585, 10194, 43320, 119159, 0, 194874, 6468, 41976, 9720, + 917606, 11767, 41970, 0, 5836, 12358, 0, 4355, 9048, 12180, 65027, 64680, + 65025, 64757, 0, 41488, 0, 8527, 194917, 12362, 12435, 12360, 41053, + 3266, 0, 12356, 8616, 41466, 0, 0, 11450, 0, 3638, 12354, 0, 3216, 0, + 2358, 0, 8633, 0, 0, 0, 0, 0, 0, 11759, 0, 0, 74823, 0, 41423, 8078, + 10504, 0, 0, 0, 0, 7002, 0, 41430, 42267, 41051, 41484, 0, 0, 41050, + 41473, 10466, 13099, 0, 0, 0, 6435, 0, 11362, 0, 0, 65382, 0, 41420, 0, + 3625, 0, 41409, 0, 0, 2041, 9178, 9672, 41427, 43541, 43317, 0, 0, 0, + 41424, 917598, 120546, 0, 0, 0, 41417, 1261, 0, 0, 12102, 119662, 41401, + 0, 0, 0, 0, 0, 42290, 3275, 0, 42329, 0, 0, 0, 0, 0, 0, 10989, 74234, 0, + 10598, 0, 2669, 903, 0, 2920, 0, 0, 74603, 64504, 19928, 0, 0, 3917, 0, + 11732, 0, 0, 41448, 41461, 0, 0, 917558, 0, 8819, 12663, 0, 41184, 74014, + 232, 74835, 120646, 9168, 65786, 0, 0, 0, 9094, 0, 11758, 0, 0, 1064, + 42467, 0, 10115, 19924, 0, 0, 7862, 64551, 13224, 8516, 41862, 66650, + 7561, 0, 74018, 1878, 0, 0, 2911, 0, 41178, 5427, 64823, 0, 0, 12617, + 41174, 0, 41458, 0, 41463, 42413, 11292, 2406, 775, 0, 65584, 0, 6074, + 9618, 194903, 0, 0, 0, 194901, 41436, 3656, 0, 194899, 41456, 0, 1599, + 11333, 0, 8514, 8513, 0, 1613, 0, 0, 0, 0, 0, 0, 74500, 41460, 10145, + 10542, 0, 120379, 0, 9905, 0, 65730, 0, 120374, 8427, 120375, 0, 120376, + 0, 11497, 64687, 74008, 120371, 3871, 0, 0, 9111, 5741, 0, 194846, + 120366, 119111, 120745, 0, 120369, 0, 11648, 0, 0, 120364, 41587, 120365, + 0, 74322, 42113, 0, 0, 12172, 0, 74530, 0, 65723, 0, 73871, 65724, 7928, + 120354, 0, 41595, 73730, 0, 42118, 73830, 66042, 10355, 0, 7875, 0, + 41598, 3993, 0, 1545, 40971, 536, 0, 119959, 0, 0, 65173, 65286, 0, 0, 0, + 0, 0, 0, 41375, 5402, 0, 0, 1687, 120503, 0, 0, 0, 64326, 40969, 10526, + 0, 8323, 40968, 1339, 11731, 0, 0, 65460, 12242, 0, 8020, 10843, 11554, + 0, 0, 8266, 41006, 65722, 0, 10710, 0, 118942, 0, 0, 119155, 195091, 0, + 119636, 0, 120687, 0, 0, 11755, 66305, 0, 0, 10917, 120767, 0, 11272, + 2040, 41247, 41326, 0, 1741, 42370, 1227, 0, 0, 11413, 0, 0, 0, 1586, + 4978, 0, 1984, 0, 0, 120651, 40984, 0, 9373, 0, 12916, 6284, 0, 41663, 0, + 0, 0, 9237, 9385, 41648, 0, 0, 0, 41666, 1830, 73783, 41076, 41287, 0, 0, + 0, 0, 0, 0, 41987, 41676, 0, 120823, 0, 41670, 0, 0, 2796, 65167, 11683, + 9902, 74521, 0, 11451, 0, 0, 42631, 2359, 0, 67844, 74164, 41238, 548, + 11405, 13133, 64368, 0, 0, 0, 397, 64678, 42139, 9547, 9590, 0, 1614, 0, + 64356, 66307, 6651, 1358, 0, 428, 9620, 1466, 0, 10982, 0, 1333, 0, 407, + 6425, 0, 74253, 0, 0, 0, 5804, 11976, 8554, 0, 0, 0, 9057, 42294, 41218, + 0, 0, 0, 1883, 10952, 8048, 0, 41225, 0, 118955, 0, 0, 0, 4407, 0, 65809, + 119074, 194821, 8448, 68122, 74183, 0, 12675, 12659, 0, 42363, 120624, + 194824, 119058, 10766, 12012, 2386, 64732, 9170, 917821, 9123, 64585, + 120500, 0, 0, 42051, 0, 4164, 9081, 0, 120569, 42049, 42042, 8709, 0, 0, + 120637, 42419, 0, 42047, 0, 0, 8470, 11807, 65897, 577, 0, 0, 74300, 0, + 0, 74840, 0, 0, 0, 0, 8736, 1414, 42643, 9683, 0, 74344, 0, 2536, 0, + 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 0, 66315, 66316, 0, 11273, 0, 43004, + 7541, 0, 0, 961, 64307, 66324, 0, 0, 3106, 65917, 41284, 1696, 0, 891, + 12105, 0, 42624, 12802, 3264, 8824, 13268, 43003, 10936, 0, 0, 0, 0, 0, + 0, 2322, 0, 0, 11449, 0, 42868, 41285, 3547, 0, 0, 0, 0, 43216, 6089, 0, + 0, 0, 4170, 1029, 0, 0, 119224, 42374, 0, 744, 0, 0, 0, 65823, 0, 0, + 3551, 0, 0, 4623, 0, 0, 4598, 0, 65136, 0, 0, 0, 10851, 0, 6179, 0, 6180, + 0, 11952, 120778, 0, 11972, 0, 0, 0, 0, 177, 0, 6176, 120580, 0, 0, 6177, + 9020, 0, 0, 6178, 120249, 120242, 0, 120243, 7518, 8754, 0, 120237, + 74551, 43081, 0, 0, 9136, 120240, 4401, 41280, 0, 8974, 2308, 0, 74149, + 0, 2318, 0, 66361, 8198, 0, 64360, 12601, 0, 65266, 120827, 74307, 0, + 6970, 5404, 43332, 3667, 7936, 12925, 126989, 42055, 0, 0, 118949, 10874, + 65505, 0, 0, 42053, 0, 42057, 11083, 42052, 0, 0, 73845, 0, 9665, 0, 0, + 13181, 0, 0, 0, 0, 74148, 0, 0, 120225, 120229, 120224, 74172, 41145, 0, + 0, 0, 41148, 8683, 7594, 0, 0, 119090, 10869, 0, 41146, 0, 11441, 0, + 3512, 917612, 0, 8103, 0, 0, 65184, 11780, 41563, 42796, 0, 119106, + 41544, 65146, 0, 0, 0, 0, 19942, 0, 118908, 7988, 10436, 74273, 3271, + 73804, 64711, 0, 0, 0, 0, 3804, 13070, 11557, 42044, 0, 1095, 0, 3599, 0, + 0, 0, 0, 0, 0, 0, 74346, 66697, 0, 11684, 0, 0, 0, 0, 42043, 0, 66677, 0, + 42046, 120751, 4036, 0, 0, 0, 194862, 0, 11954, 0, 1450, 12986, 1340, 0, + 65441, 0, 0, 0, 0, 0, 0, 0, 0, 6539, 0, 0, 0, 0, 0, 0, 41190, 3973, + 194852, 4575, 41193, 7982, 429, 0, 0, 0, 194854, 65792, 0, 118968, 6417, + 118918, 0, 0, 194850, 0, 0, 4919, 10590, 0, 7755, 0, 0, 64548, 0, 1621, + 10214, 65126, 0, 0, 0, 12188, 0, 1617, 8050, 0, 5015, 0, 119174, 42590, + 194871, 1756, 0, 0, 65768, 120694, 41892, 0, 7555, 13103, 5408, 2817, + 1214, 0, 0, 0, 0, 0, 0, 0, 7957, 8689, 64723, 1056, 0, 74147, 0, 0, 0, + 7073, 65850, 12327, 0, 119028, 0, 0, 0, 2341, 8450, 8484, 8474, 0, 0, 0, + 8461, 0, 12153, 12799, 0, 120654, 120684, 9451, 7571, 13073, 0, 0, 681, + 0, 703, 0, 3272, 8781, 12894, 0, 11709, 0, 74446, 0, 0, 0, 11338, 120768, + 3276, 0, 0, 65928, 0, 0, 65021, 64795, 74574, 0, 10047, 0, 3262, 0, 0, 0, + 0, 74329, 163, 576, 9895, 1655, 0, 74591, 0, 0, 0, 0, 0, 0, 10039, 0, 0, + 5623, 5717, 5776, 0, 0, 0, 41591, 120586, 65252, 120795, 0, 0, 0, 0, 0, + 0, 0, 8887, 0, 7295, 11031, 0, 43157, 0, 8946, 10348, 10412, 8755, 0, 0, + 5718, 13221, 0, 0, 0, 0, 0, 8810, 74499, 686, 0, 0, 4619, 118954, 6654, + 73769, 0, 0, 12040, 65689, 10128, 65118, 0, 119151, 118891, 0, 0, 2401, + 68144, 8792, 0, 0, 65455, 0, 0, 0, 119129, 0, 12886, 0, 66624, 0, 43557, + 10300, 10161, 10396, 74135, 0, 0, 0, 73851, 3010, 6441, 0, 1458, 41475, + 0, 0, 0, 11479, 0, 0, 9100, 12864, 0, 0, 1061, 64780, 2001, 43111, 0, 0, + 4052, 0, 7626, 0, 0, 1045, 0, 5631, 0, 0, 0, 0, 74127, 0, 0, 8486, 0, + 73758, 2335, 4362, 0, 0, 73867, 1025, 0, 42625, 0, 0, 41443, 0, 0, 0, + 1774, 1523, 0, 0, 41445, 0, 0, 8567, 41442, 3988, 0, 0, 118910, 0, 65274, + 8564, 0, 0, 0, 0, 0, 65908, 0, 66513, 6256, 0, 579, 0, 10206, 0, 0, 2673, + 0, 11814, 0, 4488, 0, 0, 0, 10444, 120820, 0, 11799, 74407, 0, 4487, 0, + 42832, 1032, 0, 120736, 0, 7203, 0, 614, 0, 0, 120615, 0, 0, 0, 0, 0, + 43121, 0, 0, 0, 1050, 7549, 0, 0, 9314, 0, 0, 120616, 0, 10057, 0, 0, 0, + 66504, 0, 0, 2307, 0, 64333, 0, 0, 73873, 0, 0, 0, 0, 0, 0, 10360, 0, 0, + 0, 440, 0, 13085, 9233, 74216, 0, 0, 0, 0, 66447, 8046, 64963, 65777, + 10125, 74212, 42819, 10910, 0, 1521, 9896, 0, 10487, 0, 12527, 0, 7970, + 0, 0, 0, 65769, 5243, 9849, 5239, 65771, 0, 0, 5237, 0, 0, 10103, 5247, + 4769, 0, 118977, 0, 5764, 0, 0, 3008, 4896, 0, 12087, 0, 0, 41103, 0, + 64565, 4773, 0, 0, 0, 4770, 0, 917567, 8731, 65378, 0, 120619, 9122, 0, + 0, 4774, 3019, 9997, 12834, 0, 9456, 10215, 0, 0, 0, 0, 0, 74776, 4281, + 4768, 0, 41535, 4099, 9017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42814, 880, 0, + 0, 0, 0, 0, 10116, 9877, 0, 0, 0, 7095, 0, 0, 120632, 0, 0, 8243, 2427, + 0, 7093, 0, 11585, 0, 0, 0, 12223, 0, 0, 1434, 0, 5637, 11573, 0, 0, 0, + 19951, 0, 0, 0, 0, 64432, 0, 0, 118888, 1156, 8740, 0, 3782, 64331, 0, + 41370, 1014, 8261, 0, 0, 10835, 0, 65536, 0, 120463, 0, 7702, 118824, 0, + 43010, 65779, 65783, 1150, 10547, 5700, 0, 120603, 65383, 2339, 42594, + 5697, 118788, 0, 0, 0, 42257, 5696, 120470, 120465, 3862, 9643, 0, 0, + 7634, 0, 9845, 0, 0, 5701, 9722, 41490, 0, 1426, 120474, 0, 0, 0, 74345, + 8571, 194991, 0, 0, 0, 0, 43182, 12184, 0, 42022, 0, 10281, 0, 5650, + 43194, 64712, 0, 0, 990, 5647, 0, 0, 0, 41114, 11477, 5646, 0, 11018, 0, + 3945, 0, 0, 0, 0, 0, 0, 0, 1020, 73763, 0, 0, 5648, 64748, 0, 0, 10205, + 3545, 0, 6984, 0, 74051, 0, 118868, 120458, 2667, 0, 0, 0, 9911, 0, + 65020, 10097, 119166, 0, 0, 118836, 0, 0, 1140, 0, 0, 10159, 0, 0, 8128, + 0, 0, 0, 1815, 19910, 890, 0, 3267, 0, 0, 10123, 0, 4410, 1041, 10576, + 8102, 0, 580, 74232, 0, 0, 0, 0, 0, 19938, 65906, 0, 0, 0, 3298, 5375, + 10142, 0, 8215, 0, 6134, 41246, 64402, 0, 0, 0, 0, 0, 41382, 0, 0, 5173, + 65348, 527, 0, 0, 0, 0, 0, 11915, 0, 0, 10072, 0, 66434, 2329, 42250, 0, + 0, 0, 12245, 119237, 0, 0, 0, 0, 0, 74328, 0, 74769, 0, 0, 9069, 6144, 0, + 0, 73822, 0, 0, 64917, 41521, 118934, 494, 13250, 0, 65098, 0, 956, 0, + 12830, 10462, 73740, 0, 0, 0, 0, 66449, 13263, 0, 0, 13171, 0, 0, 0, 0, + 0, 1044, 41276, 0, 0, 0, 42068, 11795, 0, 0, 0, 0, 42450, 3907, 0, 64526, + 0, 0, 12295, 0, 11475, 0, 3020, 11537, 0, 66441, 0, 0, 0, 0, 1057, 566, + 0, 0, 3016, 42274, 0, 66490, 12921, 66571, 0, 0, 3006, 4620, 0, 0, 0, 0, + 64659, 0, 0, 0, 43333, 68129, 8626, 0, 0, 9090, 65377, 41596, 0, 0, 1698, + 0, 64477, 0, 0, 1053, 0, 0, 0, 0, 1052, 1051, 459, 1060, 74349, 66479, 0, + 0, 0, 0, 42490, 689, 6508, 4163, 42298, 8639, 66641, 4246, 0, 0, 12130, + 0, 42337, 64596, 64375, 66481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1926, 0, 0, 7898, 8110, 10935, 0, 0, 5830, 0, 64594, 0, 0, 0, 0, 8693, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119187, 11439, 0, 0, 0, 0, 42313, + 5579, 0, 0, 0, 0, 0, 5578, 41774, 0, 42023, 6234, 5669, 0, 0, 0, 0, 0, 0, + 5583, 0, 0, 42426, 5580, 42276, 2923, 892, 5582, 42465, 41330, 0, 5795, + 65512, 0, 65702, 0, 120801, 65251, 0, 65710, 0, 0, 0, 0, 5370, 0, 0, + 1638, 10966, 10188, 65878, 118848, 0, 0, 0, 0, 8172, 42017, 0, 10844, 0, + 0, 0, 0, 0, 0, 286, 0, 1062, 0, 0, 0, 0, 0, 1070, 64900, 0, 6095, 41865, + 0, 3015, 0, 917763, 5211, 0, 6400, 0, 194983, 0, 8189, 11276, 0, 0, 372, + 0, 0, 118874, 42102, 41585, 0, 0, 42101, 276, 0, 0, 33, 74226, 0, 9007, + 118796, 41588, 66033, 427, 10763, 0, 0, 0, 0, 1031, 6257, 0, 42104, 0, 0, + 2328, 0, 1071, 0, 0, 74848, 0, 0, 0, 1047, 0, 0, 64790, 0, 0, 10651, 0, + 0, 0, 0, 0, 119181, 5711, 41633, 12098, 65571, 9166, 0, 5710, 0, 0, + 65213, 13216, 0, 0, 0, 0, 64611, 41623, 0, 5715, 0, 0, 0, 5712, 2761, + 41620, 68124, 3074, 5722, 0, 8643, 73768, 0, 118906, 2757, 11067, 9718, + 74498, 8910, 10689, 6479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118911, 0, 0, 0, + 0, 0, 120010, 0, 8701, 68130, 119616, 120522, 0, 42477, 0, 12123, 4495, + 43569, 0, 0, 0, 64946, 10992, 0, 0, 0, 0, 9318, 120661, 13249, 65679, + 73808, 0, 65457, 42249, 7639, 0, 67845, 42641, 5454, 0, 0, 194997, + 120005, 0, 0, 5084, 0, 0, 119173, 0, 733, 0, 0, 0, 0, 41677, 0, 9218, + 1731, 0, 0, 0, 0, 0, 0, 0, 0, 127018, 0, 5155, 0, 5358, 0, 0, 917767, + 64424, 0, 3840, 64314, 41432, 0, 0, 0, 0, 0, 65943, 0, 3371, 10988, 0, + 8771, 1479, 0, 0, 1109, 11580, 0, 64601, 12205, 0, 0, 64507, 8868, 399, + 0, 74842, 0, 0, 12149, 13088, 551, 0, 10156, 12119, 0, 0, 2544, 65074, 0, + 0, 0, 0, 351, 119149, 0, 0, 0, 0, 74268, 0, 0, 0, 42377, 0, 0, 0, 0, 0, + 9013, 5588, 0, 0, 0, 0, 73960, 5585, 65881, 2549, 74469, 0, 0, 5584, + 8358, 0, 74411, 0, 10919, 0, 7980, 0, 0, 0, 41800, 5589, 0, 2664, 41613, + 5586, 118890, 0, 11356, 0, 0, 0, 0, 0, 42573, 67856, 0, 0, 0, 0, 0, 8135, + 6450, 10055, 0, 0, 0, 0, 5657, 0, 9626, 0, 0, 10179, 5654, 12939, 0, + 120799, 0, 0, 5652, 10945, 0, 0, 0, 3661, 7863, 0, 0, 0, 0, 0, 5659, 0, + 0, 66729, 5655, 0, 42168, 0, 1055, 917628, 0, 66310, 74030, 0, 12146, + 73955, 73956, 11618, 0, 126990, 0, 10272, 10304, 10368, 42518, 594, + 10244, 10248, 10256, 0, 64870, 0, 3467, 0, 0, 3331, 946, 10231, 1495, + 8131, 74330, 0, 9562, 0, 65927, 0, 0, 120155, 0, 64656, 0, 0, 194837, 0, + 5666, 65227, 5318, 0, 0, 9091, 10798, 0, 0, 10186, 0, 7732, 0, 64556, 0, + 0, 5668, 74445, 0, 0, 5670, 0, 0, 11820, 2992, 7826, 5667, 19952, 120807, + 0, 12749, 0, 0, 0, 66496, 4361, 119260, 1306, 9286, 1497, 0, 0, 0, 0, + 3571, 13247, 0, 7973, 66353, 0, 0, 67896, 43192, 0, 0, 553, 120653, 0, 0, + 5829, 0, 4587, 0, 65912, 0, 12746, 0, 0, 119924, 5633, 119927, 0, 0, 0, + 64905, 0, 9512, 0, 12742, 6443, 0, 0, 9135, 0, 0, 0, 0, 0, 0, 0, 12148, + 0, 0, 0, 64256, 0, 11669, 0, 5634, 4524, 0, 0, 0, 118880, 74266, 65182, + 0, 0, 5221, 0, 328, 0, 0, 0, 5636, 0, 5329, 0, 5638, 119918, 7940, 64938, + 43223, 0, 5635, 3373, 2986, 0, 74223, 3437, 0, 6203, 4247, 0, 11920, + 8274, 0, 0, 1657, 119921, 0, 0, 5639, 2954, 5660, 5640, 0, 0, 0, 0, 0, 0, + 41637, 0, 0, 0, 41625, 0, 0, 120713, 11705, 5642, 0, 0, 0, 4356, 11710, + 0, 12051, 0, 0, 5641, 8259, 0, 1058, 0, 67630, 0, 0, 1144, 0, 0, 0, 0, + 73890, 118972, 0, 73734, 0, 5645, 64964, 8652, 2547, 66484, 0, 0, 5608, + 65890, 0, 0, 67621, 119934, 9000, 0, 0, 0, 1865, 0, 5613, 74267, 0, 0, + 5610, 0, 0, 65826, 5612, 0, 10787, 917551, 2997, 0, 5609, 0, 65319, + 119933, 12316, 65376, 2412, 0, 8186, 9807, 74269, 0, 13130, 65874, 0, + 5807, 0, 10030, 5306, 12936, 0, 0, 11704, 0, 0, 10211, 0, 0, 0, 0, 11706, + 9710, 0, 0, 0, 413, 65623, 74237, 0, 9133, 74262, 0, 1042, 0, 64779, + 12171, 119240, 6185, 64776, 4984, 0, 708, 0, 0, 12241, 0, 0, 1308, 0, + 2534, 810, 0, 0, 0, 0, 0, 1917, 3000, 0, 0, 120739, 2364, 0, 74470, + 66618, 65680, 0, 10027, 0, 0, 12337, 120722, 0, 0, 2980, 755, 0, 931, + 13124, 68182, 0, 2748, 0, 0, 65041, 0, 73998, 8730, 0, 0, 119009, 7274, + 119250, 0, 7275, 0, 935, 0, 65840, 377, 42325, 11649, 0, 65253, 64301, 0, + 0, 42341, 65284, 2417, 0, 12884, 19912, 7907, 10768, 0, 194998, 0, 10673, + 119217, 7248, 0, 0, 1781, 5496, 3627, 62, 1649, 0, 964, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13142, 0, 42415, 66575, 4542, 74037, 43547, 0, 0, 0, 2991, + 4946, 42454, 0, 7949, 0, 0, 11341, 42494, 3073, 65625, 9714, 11692, 0, 0, + 0, 6478, 9898, 0, 65237, 6241, 0, 4877, 0, 6238, 0, 10548, 127049, 4409, + 0, 0, 64798, 0, 5346, 0, 120528, 6237, 5461, 0, 9176, 0, 0, 65231, 65884, + 12678, 0, 0, 11378, 0, 42785, 2408, 3251, 0, 0, 5685, 0, 2461, 11052, + 7091, 5342, 8317, 0, 68163, 5340, 0, 0, 0, 73928, 0, 0, 0, 0, 0, 65482, + 0, 9142, 0, 0, 0, 10938, 0, 118790, 1182, 2542, 4826, 0, 0, 0, 529, 8580, + 0, 0, 10586, 10790, 11987, 66023, 41593, 41207, 0, 0, 41594, 225, 42828, + 0, 0, 0, 64705, 74379, 10721, 0, 3438, 42097, 0, 11084, 3194, 41870, 266, + 0, 0, 41873, 120575, 11324, 0, 0, 8420, 64918, 0, 41871, 41338, 3734, + 7734, 0, 8750, 66605, 66011, 0, 40965, 0, 0, 5161, 10572, 0, 0, 0, 64349, + 7287, 42162, 0, 0, 0, 11948, 0, 12359, 66674, 41369, 1697, 12191, 0, 0, + 7286, 0, 0, 10031, 0, 9870, 0, 8620, 65824, 0, 11938, 0, 7285, 0, 119577, + 0, 0, 0, 41583, 0, 65799, 0, 0, 0, 0, 0, 66199, 0, 3609, 0, 0, 832, + 120693, 120770, 0, 66007, 0, 65703, 0, 0, 0, 5180, 0, 41395, 41530, + 11691, 64773, 0, 74002, 0, 0, 0, 11036, 243, 13200, 0, 6024, 0, 74398, + 10037, 41529, 10648, 8538, 0, 0, 0, 4285, 66195, 0, 4230, 0, 13307, 0, 0, + 7563, 42376, 0, 0, 120512, 0, 0, 214, 0, 0, 0, 65893, 12208, 120488, 0, + 66311, 65589, 0, 2603, 0, 0, 0, 0, 0, 6022, 0, 2884, 0, 11620, 0, 43, 0, + 66453, 1016, 41107, 0, 41121, 3885, 92, 65456, 64608, 0, 74801, 0, 12451, + 0, 0, 0, 12453, 0, 0, 74241, 0, 8890, 12457, 0, 0, 0, 0, 118819, 0, 0, 0, + 66637, 7995, 8759, 0, 0, 12449, 0, 0, 0, 8752, 3197, 4720, 10165, 0, + 119249, 0, 11595, 64893, 0, 120180, 0, 0, 4993, 0, 6168, 10934, 1946, + 741, 0, 5494, 4639, 0, 1990, 66589, 4498, 0, 0, 0, 0, 0, 2960, 73779, 0, + 8969, 0, 0, 0, 0, 2950, 0, 6210, 0, 370, 0, 0, 0, 4953, 0, 0, 0, 0, 0, 0, + 0, 65688, 0, 5063, 3517, 2964, 0, 0, 65094, 74791, 10566, 10144, 66333, + 8252, 729, 66016, 0, 0, 0, 64923, 0, 65208, 9032, 0, 0, 0, 41215, 0, + 65883, 0, 0, 120602, 3761, 0, 0, 0, 0, 12912, 119012, 3850, 0, 0, 0, 0, + 0, 908, 0, 8611, 0, 0, 0, 0, 0, 0, 8978, 120540, 119135, 41586, 10527, 0, + 917848, 3848, 0, 0, 0, 65241, 5336, 0, 0, 663, 0, 10780, 0, 0, 0, 0, 0, + 0, 347, 0, 0, 0, 64675, 41582, 119126, 0, 65579, 12980, 0, 12143, 73733, + 0, 0, 0, 41804, 0, 0, 0, 0, 0, 41584, 10681, 0, 0, 73938, 0, 0, 4800, + 66661, 0, 66306, 64715, 0, 9518, 6609, 10434, 0, 11319, 1097, 0, 917850, + 41730, 0, 0, 0, 0, 65172, 41728, 41721, 0, 0, 0, 41203, 0, 13110, 41726, + 0, 0, 1000, 0, 0, 41140, 1209, 0, 0, 0, 1073, 0, 0, 41138, 0, 0, 0, + 12167, 1115, 41605, 9794, 127062, 127063, 127064, 12237, 127066, 66314, + 6587, 9290, 0, 0, 9231, 0, 2959, 7926, 0, 0, 0, 64398, 0, 119970, 12311, + 0, 0, 118846, 0, 0, 0, 119973, 0, 0, 0, 12290, 0, 0, 0, 42142, 10151, + 8205, 0, 5131, 0, 9627, 0, 0, 0, 0, 1944, 1248, 10148, 0, 119990, 119991, + 12701, 119993, 11308, 119995, 0, 119997, 119998, 65305, 74263, 4031, + 42794, 120003, 7075, 8154, 120006, 120007, 41817, 73934, 42275, 120011, + 120012, 120013, 120014, 120015, 6041, 0, 41899, 0, 8002, 0, 4364, 0, 0, + 64332, 0, 7813, 9064, 119986, 10124, 7526, 8601, 7281, 0, 7279, 12041, + 1418, 10885, 12673, 0, 0, 9660, 0, 13012, 4571, 0, 0, 0, 12078, 2970, 0, + 10933, 0, 0, 0, 0, 0, 41599, 0, 0, 0, 12950, 0, 3486, 0, 0, 4239, 0, 0, + 66511, 0, 2637, 64629, 8460, 127053, 8476, 0, 0, 0, 0, 65673, 1019, 0, + 4148, 0, 12289, 0, 4316, 0, 13119, 0, 5412, 66243, 10744, 0, 73864, 0, + 41734, 8206, 74081, 9163, 3286, 9072, 5867, 13302, 7622, 0, 41736, 0, + 41731, 0, 9483, 5416, 0, 119593, 10817, 0, 41539, 0, 0, 73963, 41855, + 41867, 65564, 11277, 65892, 11536, 10620, 0, 12210, 0, 73932, 5498, + 73942, 41536, 0, 0, 0, 3459, 8997, 0, 0, 0, 0, 0, 0, 66377, 0, 0, 0, 0, + 3161, 295, 0, 0, 0, 0, 0, 9016, 0, 63903, 63902, 63901, 0, 3971, 0, + 73972, 2952, 0, 11038, 10901, 63900, 63899, 63898, 0, 667, 12332, 63887, + 6086, 41722, 0, 5172, 0, 0, 4159, 0, 0, 9815, 63884, 19934, 63882, 41198, + 8555, 63878, 63877, 42460, 6050, 0, 63881, 63872, 0, 42421, 0, 41723, + 63875, 63874, 11460, 7432, 1913, 41913, 63852, 0, 0, 42348, 0, 74841, + 446, 41911, 0, 63851, 63850, 41910, 0, 63846, 2972, 12932, 7262, 0, + 63849, 63848, 63847, 0, 0, 8302, 7259, 63842, 4178, 10746, 7250, 13214, + 10041, 8105, 63892, 0, 118983, 1105, 4180, 0, 12094, 9497, 0, 63891, + 63890, 63889, 63888, 5538, 9987, 0, 118932, 1678, 13274, 552, 0, 0, + 10785, 0, 119170, 4557, 0, 9159, 10171, 13125, 63860, 5540, 63858, 63865, + 281, 13242, 63862, 74154, 0, 5536, 65568, 63857, 1388, 74169, 0, 1077, 0, + 65099, 11531, 0, 0, 0, 0, 0, 42773, 0, 0, 0, 119220, 0, 3663, 0, 1112, + 119122, 8686, 0, 5334, 65081, 0, 74778, 0, 11077, 0, 6509, 0, 5327, 0, + 19907, 63869, 3478, 7583, 7679, 2903, 0, 3001, 1158, 8745, 0, 73748, + 63866, 0, 1915, 4846, 0, 66371, 118984, 42105, 2990, 120128, 805, 120130, + 120125, 12070, 8760, 1117, 118987, 12212, 120123, 65174, 42357, 63835, + 63834, 0, 0, 12225, 63838, 63837, 0, 0, 63833, 6042, 66360, 8083, 0, 0, + 63821, 63820, 63819, 63818, 0, 5227, 9047, 63822, 0, 6091, 0, 10691, 560, + 5643, 8226, 119578, 63812, 63811, 63810, 63809, 5542, 63815, 63814, + 63813, 6047, 1597, 120143, 780, 206, 0, 4936, 65147, 8168, 63930, 0, + 1093, 9882, 63934, 63933, 63932, 917554, 63929, 3546, 1605, 0, 9806, + 65566, 0, 8400, 11343, 63920, 0, 63926, 2984, 5968, 9287, 0, 4618, 0, 0, + 13169, 5290, 5283, 1695, 10743, 1088, 63825, 7268, 1084, 1085, 63829, + 1083, 10131, 7283, 0, 63970, 0, 1092, 4754, 7273, 5252, 0, 0, 0, 0, 0, + 11809, 0, 0, 0, 2965, 7258, 8808, 0, 1089, 4187, 63937, 42119, 42120, 0, + 940, 5787, 10099, 63938, 0, 74494, 12463, 2994, 0, 0, 0, 9664, 0, 0, 0, + 0, 74343, 0, 0, 660, 10127, 666, 9022, 5532, 0, 5533, 0, 0, 6118, 222, + 979, 3884, 0, 74151, 120445, 6502, 0, 127118, 0, 63951, 12465, 0, 0, 0, + 63946, 1707, 63924, 12461, 63950, 63897, 63948, 63947, 63945, 6038, + 63943, 63942, 64685, 63895, 65838, 0, 7776, 0, 0, 0, 120444, 0, 801, + 43165, 1690, 63919, 63918, 63917, 13277, 63893, 0, 120638, 9906, 5486, + 2334, 0, 63916, 5483, 63914, 120610, 63911, 5484, 63909, 63908, 2539, 0, + 63913, 5485, 0, 195060, 9061, 5534, 10672, 4502, 0, 253, 0, 0, 0, 42854, + 0, 0, 11530, 0, 0, 0, 0, 0, 10474, 0, 13257, 42354, 0, 0, 0, 195065, 0, + 8413, 0, 0, 5693, 7272, 0, 13209, 64470, 65831, 0, 195063, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66608, 3111, 41863, 8804, 66607, 0, 7270, 0, 66606, 6628, + 1076, 41305, 1436, 0, 0, 0, 63982, 10221, 12807, 63907, 63906, 1598, + 63904, 0, 0, 41729, 4423, 1307, 0, 10515, 41589, 0, 0, 6218, 0, 1430, 0, + 0, 120606, 119365, 5413, 7619, 3255, 3493, 74032, 11549, 10735, 0, 73937, + 10517, 0, 0, 10990, 65073, 5167, 4481, 3771, 0, 2710, 0, 0, 41724, 0, + 43073, 41690, 12479, 0, 0, 0, 0, 119659, 1628, 0, 0, 0, 65262, 63854, + 10783, 42315, 0, 63855, 120683, 0, 0, 5339, 74323, 0, 13004, 0, 4457, 0, + 0, 0, 0, 5684, 8678, 10914, 0, 5689, 65807, 0, 120617, 12633, 0, 0, + 65183, 5688, 11926, 6033, 6310, 5686, 0, 0, 0, 120647, 0, 50, 0, 9871, 0, + 0, 0, 0, 0, 66468, 0, 13259, 4448, 0, 0, 0, 0, 67853, 0, 10640, 0, 1151, + 0, 0, 0, 0, 195050, 0, 0, 0, 0, 12501, 64604, 0, 11527, 118870, 8812, 0, + 11538, 8673, 12650, 11020, 0, 66467, 10839, 8087, 0, 0, 9894, 0, 0, 0, + 4636, 0, 118985, 8053, 0, 0, 0, 0, 120495, 0, 0, 12277, 194627, 11995, + 194626, 0, 12158, 0, 8741, 10197, 0, 0, 0, 6531, 0, 0, 473, 0, 0, 0, + 1873, 1087, 0, 0, 0, 0, 66439, 43218, 0, 194716, 7237, 12504, 74282, 0, + 0, 0, 9489, 0, 0, 4384, 74220, 195055, 0, 917561, 13295, 43191, 0, 0, + 1154, 3857, 1205, 0, 0, 13100, 12958, 120706, 74168, 0, 0, 4421, 10592, + 0, 495, 0, 41712, 7983, 0, 0, 0, 8494, 0, 7654, 41710, 4196, 0, 437, + 41709, 73772, 0, 0, 9465, 13290, 119180, 4997, 64306, 0, 0, 4999, 194642, + 0, 0, 4711, 120769, 0, 2739, 0, 8044, 74834, 0, 41789, 0, 10809, 0, 0, 0, + 1779, 6600, 6601, 41543, 5325, 642, 64187, 13058, 0, 0, 0, 0, 13229, 0, + 10575, 0, 0, 0, 41791, 1104, 0, 0, 10655, 0, 0, 0, 0, 1082, 195049, 8428, + 0, 0, 0, 0, 0, 10167, 0, 12993, 8049, 41548, 0, 6458, 0, 0, 4761, 63828, + 4766, 64623, 1273, 194653, 0, 118876, 0, 6912, 1313, 7033, 10483, 0, + 41545, 0, 0, 0, 0, 0, 0, 0, 3484, 74337, 0, 0, 8503, 5122, 41527, 0, + 66320, 0, 0, 0, 0, 41537, 0, 8303, 8282, 11817, 0, 10003, 73859, 65904, + 194663, 1686, 0, 0, 11467, 3664, 65921, 64299, 194664, 0, 0, 4324, 126, + 42246, 119152, 0, 0, 65926, 7744, 194636, 74277, 74302, 0, 0, 6966, 0, + 8136, 0, 65600, 1633, 0, 0, 4762, 1103, 0, 0, 4765, 0, 13078, 0, 4760, + 63827, 0, 10871, 43199, 1102, 0, 0, 0, 0, 11546, 74794, 337, 0, 42591, + 8627, 12279, 1111, 0, 0, 4707, 0, 10143, 7883, 127081, 7880, 4522, 8645, + 5704, 13010, 0, 8304, 0, 0, 119575, 0, 0, 66654, 0, 0, 0, 13008, 0, 4385, + 0, 13011, 0, 0, 119161, 13009, 160, 2677, 0, 0, 41793, 65763, 74221, + 120141, 41792, 42770, 0, 65762, 118829, 64573, 5709, 0, 194638, 0, 0, 0, + 1079, 3867, 5708, 0, 0, 0, 5706, 64768, 5705, 8791, 4005, 0, 10237, + 10991, 0, 917579, 9173, 917581, 917580, 13170, 65942, 917577, 42605, + 120765, 917570, 917573, 917572, 10058, 0, 74867, 194654, 127078, 3339, + 11448, 1106, 917591, 917590, 917593, 3340, 917587, 917586, 917589, + 917588, 917583, 10605, 1309, 63966, 120743, 1754, 127075, 13246, 864, 0, + 118926, 8972, 0, 7849, 120092, 0, 13240, 195068, 5192, 4338, 0, 10948, + 917601, 13199, 120169, 1236, 13208, 13261, 13189, 13188, 120164, 0, 7440, + 0, 120153, 9553, 1590, 63777, 63776, 13178, 63782, 63781, 63780, 63779, + 1583, 0, 13260, 4550, 0, 64205, 0, 0, 41522, 0, 0, 0, 0, 11354, 0, 0, + 42795, 0, 119195, 11394, 194646, 13236, 13272, 13194, 1334, 0, 4479, + 1178, 65586, 120663, 66681, 119193, 4601, 0, 0, 0, 0, 0, 0, 0, 63787, + 63786, 6031, 0, 63791, 63790, 1145, 63788, 7910, 63785, 43153, 754, + 10192, 13105, 8183, 120741, 2037, 0, 0, 10747, 125, 0, 0, 0, 0, 0, 41719, + 63758, 3523, 1074, 13258, 9536, 74077, 0, 4427, 74242, 63757, 43145, + 12217, 63754, 41532, 1349, 63750, 63749, 0, 0, 0, 63753, 63802, 41084, + 120622, 0, 41930, 63805, 63804, 63803, 63801, 41082, 8140, 63798, 6260, + 0, 0, 119225, 63793, 11988, 3898, 0, 10201, 12238, 63795, 42358, 10367, + 12521, 10431, 42114, 41932, 1068, 0, 12523, 12945, 0, 0, 7950, 10804, + 63771, 42787, 4386, 12224, 6973, 2793, 12475, 0, 0, 63769, 9530, 0, + 12232, 13135, 8596, 5681, 63762, 4595, 63760, 792, 0, 64803, 0, 8742, 0, + 11053, 0, 63744, 0, 0, 7588, 63748, 1693, 63746, 43204, 5055, 0, 0, 1090, + 120679, 0, 11665, 74133, 4558, 65685, 9523, 0, 0, 0, 11513, 0, 6157, + 63775, 63774, 63773, 13191, 12170, 3500, 3139, 0, 3170, 12485, 0, 10872, + 0, 13006, 64433, 0, 0, 941, 0, 0, 0, 65541, 11063, 0, 8228, 0, 42065, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 43603, 0, 65397, 288, 0, 0, 0, 10025, 0, 2918, + 0, 65300, 119871, 9883, 64726, 2790, 65395, 3793, 0, 0, 65393, 0, 74138, + 0, 0, 0, 74139, 120613, 65394, 11548, 5270, 0, 65396, 0, 65813, 13256, + 1282, 120771, 0, 0, 10888, 0, 65242, 0, 3330, 0, 0, 0, 0, 0, 0, 3304, + 42753, 0, 0, 0, 1627, 0, 0, 0, 5371, 13116, 0, 1826, 0, 0, 43094, 0, 0, + 0, 0, 9035, 0, 0, 0, 0, 0, 68125, 0, 164, 0, 0, 0, 6958, 0, 43116, 0, 0, + 13245, 0, 0, 0, 0, 73893, 0, 12666, 13175, 13207, 120414, 66014, 120428, + 7447, 5929, 0, 65509, 0, 7449, 11306, 0, 73920, 3180, 0, 63808, 9054, + 971, 13062, 0, 0, 65195, 64767, 0, 74428, 0, 0, 0, 0, 0, 0, 10045, 64303, + 13275, 0, 11057, 0, 13276, 0, 41525, 0, 7271, 11444, 0, 0, 0, 12229, + 41523, 0, 0, 73751, 0, 64813, 0, 0, 10476, 3858, 0, 3932, 64958, 0, 0, + 73989, 0, 0, 0, 369, 0, 41784, 0, 64163, 0, 0, 0, 65474, 4796, 41782, 0, + 65479, 0, 41781, 10486, 41480, 120511, 9899, 0, 0, 404, 12821, 3741, 0, + 5788, 0, 0, 41222, 1831, 66020, 0, 0, 4388, 0, 746, 120784, 0, 0, 13131, + 65294, 0, 0, 0, 0, 4422, 4708, 3799, 74292, 119357, 0, 74430, 0, 11700, + 4374, 0, 0, 1364, 0, 8038, 0, 917597, 0, 0, 0, 0, 73979, 13174, 73968, + 13225, 0, 0, 65835, 0, 2365, 7841, 0, 42855, 118856, 42866, 0, 0, 0, + 66438, 41785, 41171, 64172, 13173, 4372, 119354, 0, 0, 0, 0, 0, 0, 12965, + 384, 64512, 10404, 10340, 119352, 1556, 5274, 13210, 0, 10017, 9733, + 41787, 0, 0, 41373, 0, 12303, 0, 13232, 13233, 349, 4863, 41371, 11656, + 0, 120703, 119883, 12861, 4398, 8543, 65618, 0, 1096, 0, 0, 0, 12441, + 12355, 119348, 119347, 4318, 10452, 0, 8032, 13243, 13237, 12719, 0, + 119101, 0, 64884, 119872, 119345, 8597, 0, 0, 9864, 0, 120785, 0, 0, + 13195, 41452, 64961, 7722, 0, 10459, 119878, 0, 119879, 66590, 0, 41533, + 66337, 0, 0, 0, 4965, 0, 917536, 73849, 0, 0, 0, 0, 6261, 119342, 43147, + 66570, 1957, 10420, 982, 2756, 13292, 13206, 0, 0, 2925, 73809, 13056, 0, + 13212, 65110, 0, 13190, 13187, 0, 13198, 118793, 0, 5242, 119179, 64476, + 1694, 8216, 0, 0, 43331, 0, 65620, 0, 43544, 0, 0, 41444, 65621, 120325, + 64799, 5246, 120326, 13185, 9709, 120323, 120322, 12314, 65616, 5238, + 119333, 0, 119337, 5236, 40979, 0, 74201, 8286, 0, 3936, 119331, 11699, + 41347, 0, 13235, 8842, 41248, 0, 4379, 13239, 12692, 7969, 0, 7219, 0, 0, + 120509, 0, 66224, 734, 2979, 120303, 65619, 9872, 957, 64921, 1846, + 66631, 41477, 119256, 120310, 74511, 41770, 1670, 6442, 120317, 42446, + 5379, 120318, 41163, 74832, 120315, 120314, 0, 0, 42841, 13267, 0, 0, + 41775, 0, 0, 41773, 0, 10663, 0, 0, 0, 6151, 12110, 0, 65572, 119602, + 65250, 13265, 13264, 64518, 0, 6100, 0, 0, 5808, 65922, 0, 12967, 66041, + 9676, 4583, 0, 0, 68097, 64575, 0, 11965, 0, 119211, 0, 0, 0, 0, 68102, + 9698, 7814, 74476, 119651, 0, 0, 41921, 0, 9756, 6985, 119258, 0, 74219, + 0, 0, 0, 8012, 5674, 12353, 0, 12361, 5677, 42323, 0, 41925, 0, 41920, + 5673, 120534, 5676, 41923, 12694, 118978, 5672, 1294, 0, 0, 0, 42511, + 1727, 0, 0, 0, 0, 0, 74222, 8718, 3550, 736, 10268, 4505, 10316, 74090, + 5826, 74270, 5813, 0, 120712, 5841, 5837, 0, 0, 3105, 12829, 5838, 5796, + 0, 119592, 5793, 0, 5866, 5797, 41011, 5865, 120091, 7956, 598, 0, 64649, + 5806, 42398, 0, 9037, 5671, 120041, 0, 0, 0, 0, 0, 847, 0, 9529, 0, + 66657, 6980, 0, 120035, 0, 0, 0, 120033, 0, 0, 0, 120039, 0, 0, 0, 9624, + 0, 0, 43190, 65463, 1554, 0, 42611, 42563, 0, 5651, 2929, 0, 43201, 0, + 19963, 5698, 0, 0, 0, 0, 5644, 10292, 65546, 120492, 68141, 8372, 0, + 65116, 0, 120022, 0, 10388, 42799, 0, 41013, 10568, 0, 0, 2869, 0, 41015, + 0, 2785, 4366, 0, 10954, 41802, 0, 42608, 194688, 9884, 4759, 0, 0, + 10266, 41359, 1170, 127017, 0, 73908, 1609, 902, 0, 63936, 0, 11661, + 8122, 5818, 0, 0, 3861, 9540, 11028, 2554, 5158, 5714, 127015, 0, 0, 807, + 43079, 0, 0, 976, 5511, 64553, 0, 42155, 0, 41356, 74110, 118801, 0, 0, + 8676, 0, 0, 11066, 451, 63941, 5798, 9349, 42018, 0, 0, 0, 43609, 194703, + 120553, 1440, 0, 0, 120016, 74283, 11005, 0, 66656, 66044, 0, 194698, 0, + 0, 0, 10094, 0, 11529, 10857, 120643, 66436, 6546, 93, 0, 0, 74440, 0, 0, + 8171, 0, 119097, 127065, 917543, 383, 10377, 41656, 0, 0, 0, 5187, 0, 0, + 11286, 0, 64217, 0, 5232, 0, 41009, 0, 41005, 0, 0, 0, 8292, 195074, + 4980, 8860, 73947, 10028, 66478, 7076, 13182, 194705, 0, 0, 10631, 66031, + 7972, 0, 0, 0, 7900, 0, 11309, 194711, 4198, 64211, 0, 0, 0, 0, 0, 0, + 12931, 0, 0, 74285, 10185, 0, 64366, 65156, 8814, 0, 74771, 0, 0, 12836, + 0, 0, 74342, 8593, 0, 0, 0, 13255, 0, 0, 7464, 0, 65865, 0, 194650, 0, 0, + 9342, 120464, 0, 64516, 0, 0, 10129, 41007, 0, 0, 40995, 12209, 41012, + 119136, 0, 0, 120633, 40992, 0, 0, 0, 43558, 5522, 0, 61, 0, 74105, 3633, + 0, 65162, 41234, 12089, 0, 9771, 0, 13251, 0, 0, 6262, 2784, 0, 0, 8126, + 66483, 0, 0, 441, 42621, 0, 0, 41002, 40999, 119623, 43266, 0, 0, 10890, + 74481, 65834, 8324, 119103, 64417, 74817, 0, 64737, 0, 0, 8930, 0, 74249, + 1193, 10056, 1800, 13253, 13252, 7829, 0, 0, 7743, 0, 0, 0, 0, 0, 9034, + 6039, 0, 10075, 0, 41018, 65683, 10338, 66469, 0, 0, 0, 42815, 0, 41966, + 0, 0, 0, 11792, 0, 0, 911, 7539, 0, 0, 120339, 65159, 64390, 0, 0, 5520, + 11662, 0, 65330, 73886, 0, 0, 12326, 0, 0, 42808, 0, 9348, 64901, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5857, 65342, 0, 119120, 0, 8644, 0, 0, 0, 74296, + 41909, 0, 120332, 2791, 0, 1891, 0, 0, 41907, 66647, 0, 8761, 12942, + 5748, 0, 10773, 0, 0, 8796, 0, 6412, 120347, 8520, 13146, 0, 63931, 0, + 65902, 2882, 0, 0, 12843, 4520, 0, 0, 0, 0, 0, 73860, 0, 0, 64345, 0, 0, + 0, 0, 0, 0, 0, 917585, 65117, 0, 0, 10427, 0, 3844, 0, 9755, 1110, 6612, + 12222, 0, 0, 0, 0, 783, 194935, 0, 0, 0, 0, 65056, 3620, 0, 118945, 4556, + 0, 0, 194933, 74250, 0, 0, 10510, 4382, 66482, 0, 0, 0, 9177, 8902, 0, + 9839, 0, 12891, 0, 0, 63999, 2016, 41917, 9788, 63928, 0, 1862, 65800, + 9155, 66623, 9786, 65082, 41919, 8579, 41914, 7981, 0, 0, 4508, 64883, 0, + 0, 0, 0, 64592, 74276, 120080, 41780, 120079, 68181, 0, 0, 0, 0, 12147, + 9024, 66378, 66472, 0, 64289, 65289, 0, 0, 0, 64509, 0, 0, 0, 11051, 0, + 0, 11355, 65885, 0, 0, 41214, 0, 12299, 0, 7500, 4506, 7773, 0, 0, + 118912, 0, 0, 4040, 0, 6167, 0, 63922, 6594, 0, 0, 0, 3624, 43036, 0, + 64655, 63990, 19947, 63988, 41955, 0, 63993, 63992, 9611, 0, 0, 0, 7738, + 63986, 11446, 63984, 0, 3435, 119652, 0, 119108, 7029, 64258, 41292, + 118898, 12748, 43115, 9517, 11518, 0, 0, 0, 194777, 63956, 42458, 63954, + 63953, 63960, 9591, 63958, 10217, 118845, 11469, 0, 42306, 2723, 118947, + 0, 0, 0, 0, 0, 11397, 2880, 0, 0, 2872, 0, 0, 3498, 4378, 917539, 4270, + 0, 65551, 118928, 6633, 0, 0, 5230, 0, 0, 0, 0, 0, 8161, 393, 12013, 0, + 0, 0, 415, 63964, 63963, 42345, 0, 5183, 1877, 42498, 0, 2927, 0, 63961, + 4472, 0, 0, 0, 0, 917936, 42340, 4756, 0, 7081, 10730, 7691, 0, 63830, + 119625, 194945, 42103, 8628, 9813, 0, 42453, 1604, 9565, 10539, 0, 65764, + 41415, 65767, 0, 8457, 42301, 11372, 64873, 11992, 0, 0, 63980, 11801, + 3622, 0, 64336, 12017, 10463, 63981, 4967, 64189, 1966, 63976, 0, 0, 0, + 0, 63971, 4347, 4416, 42098, 11009, 10694, 63973, 402, 0, 13147, 0, + 42100, 64646, 13228, 0, 41875, 3515, 74252, 11805, 0, 11302, 6259, 0, 0, + 0, 0, 0, 0, 0, 74425, 11299, 1561, 0, 0, 64942, 0, 194733, 0, 194732, 0, + 74301, 0, 11280, 0, 0, 74060, 0, 0, 119664, 5145, 12486, 65018, 66516, + 5409, 0, 194669, 64347, 5399, 9685, 74089, 7952, 5401, 0, 66616, 0, 0, 0, + 5405, 917555, 64866, 0, 0, 0, 0, 74248, 11330, 194723, 64690, 3254, 0, 0, + 0, 42390, 0, 194725, 0, 65077, 0, 0, 3355, 9508, 9867, 5723, 11520, 5611, + 0, 3377, 0, 0, 0, 0, 0, 0, 0, 119119, 0, 0, 119068, 0, 0, 1379, 246, 0, + 0, 3788, 0, 11041, 0, 66304, 0, 0, 8917, 42403, 301, 0, 0, 0, 0, 0, 0, + 10656, 0, 65214, 119242, 42567, 0, 13163, 0, 120831, 74597, 3182, 0, 0, + 0, 0, 65889, 42169, 4755, 74244, 0, 11443, 0, 66326, 74598, 608, 600, 0, + 1219, 3934, 64206, 11483, 74510, 0, 74485, 42442, 65470, 0, 64202, 13160, + 7759, 42482, 485, 0, 0, 9828, 0, 0, 42280, 0, 9351, 7778, 64379, 7496, + 42431, 6916, 1208, 0, 119631, 11002, 42470, 0, 0, 0, 0, 74041, 0, 0, + 43539, 5411, 0, 0, 0, 0, 9150, 0, 42393, 13086, 1310, 194687, 9337, + 12052, 10643, 64586, 0, 194684, 2546, 194683, 213, 118852, 65611, 0, 0, + 194756, 74310, 6554, 0, 11914, 0, 0, 0, 0, 0, 0, 194681, 118826, 2713, 0, + 9650, 43330, 0, 194675, 1406, 0, 0, 0, 0, 194678, 4143, 194677, 0, 65748, + 4141, 9682, 65287, 1508, 0, 8779, 10569, 8725, 13299, 66638, 0, 42263, + 4145, 0, 65751, 66613, 0, 65738, 73729, 9185, 9550, 0, 0, 0, 0, 0, 65736, + 41951, 64816, 65756, 0, 12955, 10596, 2888, 0, 0, 0, 9657, 9019, 194766, + 0, 2878, 5390, 0, 194961, 0, 0, 0, 7501, 13203, 0, 10429, 10365, 0, 0, + 41946, 7503, 5235, 803, 0, 0, 0, 8986, 0, 10632, 11934, 11452, 1332, 0, + 0, 0, 0, 917545, 1791, 5191, 9288, 64822, 2892, 0, 67849, 555, 0, 0, + 66646, 0, 119002, 13151, 74512, 7289, 74055, 0, 0, 64162, 5858, 41927, + 10582, 0, 1784, 1361, 195047, 0, 7905, 0, 64868, 0, 13158, 0, 7211, 0, + 9371, 0, 0, 0, 1625, 0, 0, 1342, 0, 64171, 0, 10903, 0, 0, 0, 0, 0, 4482, + 41606, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, 0, 41972, 0, 444, 0, 9127, + 66687, 66619, 0, 194972, 0, 11349, 40991, 0, 0, 119599, 120830, 0, 1197, + 0, 1149, 194970, 0, 0, 40990, 0, 0, 3492, 0, 0, 0, 0, 0, 12838, 0, 19948, + 0, 3099, 0, 0, 41087, 0, 0, 0, 119059, 12036, 0, 0, 0, 8152, 0, 64428, + 12227, 0, 0, 12828, 0, 0, 0, 0, 0, 0, 10386, 119574, 0, 0, 0, 0, 68154, + 0, 1743, 0, 0, 0, 65186, 0, 0, 9606, 0, 0, 0, 0, 0, 0, 0, 0, 194967, 0, + 0, 3395, 9362, 10878, 0, 0, 0, 64830, 0, 0, 41091, 3426, 1344, 8870, 0, + 0, 4735, 0, 6119, 12822, 0, 0, 0, 74818, 0, 0, 42637, 41080, 0, 12039, + 10559, 0, 118892, 0, 9472, 0, 11929, 0, 7170, 9596, 6130, 0, 0, 11579, 0, + 0, 194740, 0, 0, 66699, 0, 1004, 0, 194737, 0, 66008, 12627, 0, 0, 0, 0, + 0, 11300, 43304, 9686, 5890, 11776, 7558, 0, 65627, 0, 10718, 13154, + 3461, 9139, 0, 0, 0, 0, 0, 73877, 65628, 0, 0, 0, 41708, 12860, 41703, + 12069, 10838, 5403, 10352, 73917, 10061, 0, 0, 5140, 209, 0, 41704, 0, + 43078, 0, 0, 0, 10899, 65469, 0, 0, 0, 2410, 993, 0, 120589, 120689, 0, + 0, 0, 7232, 0, 119253, 0, 0, 74462, 0, 10489, 42166, 0, 10659, 3600, 0, + 4224, 1336, 41518, 0, 0, 0, 0, 41139, 64820, 0, 12966, 41134, 0, 0, 0, 0, + 272, 4263, 8793, 0, 0, 41502, 0, 983, 12549, 0, 0, 1190, 4109, 1335, 841, + 5888, 41358, 64863, 9544, 0, 0, 0, 0, 7209, 8223, 2409, 7799, 0, 74424, + 0, 0, 4731, 0, 66629, 0, 0, 1255, 4149, 9247, 0, 9913, 0, 0, 0, 0, 65101, + 0, 11694, 0, 11690, 5835, 0, 66625, 10842, 41354, 42123, 43097, 11688, + 66634, 1094, 194, 64692, 0, 8180, 0, 0, 73872, 73865, 0, 6114, 10898, + 43072, 0, 0, 0, 0, 0, 10695, 0, 7540, 0, 881, 7857, 6067, 65164, 0, 0, 0, + 13311, 0, 41857, 64321, 8359, 0, 12689, 0, 194594, 0, 0, 0, 68183, 0, 0, + 1287, 5436, 0, 0, 74142, 127013, 74152, 119078, 6051, 10497, 0, 8985, + 12109, 0, 0, 0, 0, 0, 3652, 10537, 0, 1276, 0, 6549, 279, 0, 0, 0, 0, + 1489, 0, 0, 0, 3899, 1007, 42124, 0, 42122, 0, 0, 0, 11985, 1345, 127006, + 0, 0, 8956, 43083, 0, 42138, 0, 0, 12151, 0, 0, 0, 6285, 0, 0, 0, 74194, + 492, 8685, 0, 0, 0, 0, 0, 2582, 11470, 64538, 7444, 0, 0, 41550, 0, + 73837, 0, 2527, 119824, 197, 2799, 0, 0, 120276, 0, 0, 66515, 767, 5524, + 7028, 0, 0, 119827, 0, 0, 0, 0, 0, 1799, 120497, 6971, 74336, 0, 0, + 65340, 118979, 0, 2434, 0, 0, 120579, 0, 4631, 0, 0, 6407, 0, 19931, + 43214, 0, 7570, 0, 3192, 0, 8414, 0, 0, 0, 0, 0, 9164, 66612, 0, 3171, + 6623, 4961, 0, 886, 0, 8654, 0, 9993, 74390, 64603, 0, 0, 9599, 0, 43084, + 0, 0, 0, 2399, 0, 8994, 10944, 41208, 0, 41168, 8178, 0, 3367, 195008, + 42510, 0, 0, 7789, 0, 1947, 0, 0, 0, 42759, 11068, 1705, 9331, 0, 74798, + 9181, 0, 0, 8017, 0, 65096, 66720, 0, 0, 0, 4909, 12126, 0, 120696, 4904, + 0, 195012, 1365, 9253, 42757, 0, 7462, 0, 0, 0, 0, 119587, 64415, 0, 0, + 5398, 0, 195014, 0, 0, 0, 0, 0, 0, 9476, 0, 0, 12763, 0, 3629, 0, 13005, + 0, 3628, 0, 0, 0, 3469, 42107, 42116, 917578, 64809, 2928, 4905, 9853, + 851, 9040, 0, 64665, 43086, 9114, 0, 42583, 9315, 4822, 4906, 3852, 2847, + 0, 3236, 11317, 1251, 7777, 41852, 11410, 10964, 0, 43222, 12646, 120269, + 10259, 9865, 65821, 0, 6018, 0, 0, 12276, 0, 0, 0, 0, 119613, 0, 0, + 10467, 0, 2443, 10918, 0, 0, 1001, 9241, 1927, 0, 0, 73987, 0, 0, 0, + 118828, 0, 65678, 12867, 0, 8260, 0, 7519, 118794, 12274, 8904, 518, + 65857, 0, 0, 13204, 4387, 857, 0, 65369, 0, 119583, 43125, 120592, 0, 0, + 0, 0, 5136, 1968, 0, 195023, 1337, 64967, 1629, 0, 796, 66506, 0, 74123, + 0, 0, 42314, 195021, 0, 74403, 6120, 478, 65151, 68128, 0, 43082, 6016, + 0, 42284, 0, 4276, 1206, 3619, 41638, 0, 3843, 12011, 8853, 3361, 0, 490, + 10715, 7578, 0, 0, 65350, 10530, 12348, 8653, 74314, 42435, 6154, 9551, + 65354, 0, 784, 42397, 334, 0, 42416, 65356, 65273, 0, 0, 7025, 10364, 0, + 778, 41626, 42455, 7989, 74063, 3227, 0, 0, 73983, 2915, 41698, 41022, + 41702, 10309, 127035, 0, 0, 6975, 0, 5415, 12176, 0, 0, 3462, 65215, + 42629, 0, 73784, 0, 0, 9759, 0, 0, 0, 8114, 0, 0, 0, 0, 8710, 42495, + 118956, 0, 4051, 10460, 74097, 118917, 1356, 12161, 0, 0, 0, 1619, 9703, + 43152, 42489, 42112, 0, 1875, 10808, 42109, 120284, 41860, 64862, 13305, + 64907, 5289, 13144, 0, 0, 5575, 9675, 0, 5940, 226, 2649, 74493, 0, 0, 0, + 3382, 42449, 6498, 1658, 11936, 0, 0, 11269, 0, 73759, 43100, 74449, + 65508, 0, 0, 0, 8935, 917985, 0, 0, 0, 616, 0, 65178, 4684, 0, 119653, 0, + 0, 0, 6048, 74460, 42110, 73965, 10870, 8557, 11054, 0, 0, 9681, 4475, 0, + 0, 0, 0, 120731, 6035, 0, 7651, 10296, 0, 0, 0, 0, 0, 118966, 74144, + 40997, 0, 10392, 10328, 40998, 0, 74488, 0, 9800, 8979, 0, 119131, 41000, + 0, 119239, 6487, 10977, 0, 10344, 0, 65299, 5394, 0, 0, 10220, 66505, + 41200, 0, 4425, 0, 0, 0, 43074, 73799, 0, 0, 0, 12173, 0, 0, 0, 65338, 0, + 0, 119582, 4474, 0, 43093, 0, 1587, 0, 0, 64475, 0, 1369, 0, 0, 0, 0, + 4560, 0, 0, 0, 0, 64948, 4430, 74347, 42601, 4514, 0, 0, 8194, 65462, + 10626, 10965, 0, 8893, 0, 12542, 0, 65341, 0, 65829, 7925, 0, 10475, 0, + 0, 1352, 11069, 7707, 0, 0, 65279, 127102, 127101, 127100, 65605, 6040, + 127097, 10440, 0, 9336, 0, 0, 8899, 7798, 64474, 64259, 0, 65188, 7820, + 43018, 0, 0, 7746, 1492, 0, 10884, 0, 0, 5127, 11285, 42501, 5495, 4273, + 43095, 41426, 10849, 5730, 2999, 0, 120720, 74304, 371, 64373, 6023, 169, + 5497, 11708, 0, 0, 0, 0, 8224, 0, 8938, 6043, 12738, 0, 0, 5321, 0, 0, 0, + 2589, 74332, 1689, 7802, 4683, 74318, 0, 120296, 66704, 0, 0, 0, 0, + 74513, 6049, 0, 4027, 834, 118962, 1803, 0, 1503, 0, 0, 0, 5731, 1381, + 2387, 0, 0, 8289, 64525, 65817, 2881, 65514, 0, 9601, 2879, 9668, 9766, + 0, 5729, 0, 74410, 6036, 64881, 4026, 9361, 127091, 2887, 0, 3526, 6298, + 0, 0, 0, 0, 0, 8572, 6021, 0, 0, 0, 43155, 0, 0, 3146, 10959, 0, 0, 0, + 10981, 166, 0, 8635, 0, 10623, 408, 0, 0, 13298, 0, 7426, 41641, 12717, + 0, 7607, 10639, 66713, 0, 0, 41643, 74134, 0, 8713, 41640, 0, 41645, + 66712, 6645, 646, 66726, 66711, 42129, 0, 0, 3472, 8697, 0, 0, 0, 0, 0, + 0, 5809, 1950, 119356, 0, 74572, 0, 42136, 0, 0, 0, 0, 3247, 119854, + 65017, 0, 0, 66668, 0, 0, 10983, 0, 0, 0, 41567, 0, 0, 0, 0, 0, 0, 0, + 8285, 0, 4509, 0, 66471, 12216, 0, 40988, 0, 0, 41727, 0, 0, 2396, 0, 0, + 0, 0, 64940, 0, 3886, 0, 42457, 0, 0, 996, 0, 917571, 4249, 0, 917594, + 11707, 8222, 0, 7939, 0, 917574, 917582, 917592, 917569, 8534, 0, 40983, + 0, 0, 0, 7201, 12561, 0, 42371, 12558, 0, 0, 10052, 40982, 0, 0, 1488, 0, + 0, 0, 917559, 0, 0, 1563, 0, 9619, 0, 0, 0, 0, 0, 5803, 7797, 6070, + 10006, 0, 2922, 6082, 0, 65009, 0, 12567, 0, 0, 0, 0, 0, 3607, 65863, + 10046, 9612, 42153, 8218, 9485, 0, 2032, 0, 0, 0, 0, 0, 0, 43085, 6057, + 508, 0, 0, 120265, 0, 0, 0, 0, 638, 6083, 119072, 0, 0, 2305, 0, 0, 0, + 6056, 6659, 0, 0, 6085, 0, 0, 3915, 41634, 0, 41639, 63912, 11941, 0, + 4028, 1787, 42180, 43096, 0, 3249, 1768, 0, 12328, 501, 127074, 10601, 0, + 583, 0, 41977, 0, 66004, 119350, 6505, 74010, 0, 13064, 0, 120810, 6500, + 5526, 65049, 0, 74531, 0, 0, 12745, 9678, 0, 120587, 9869, 0, 1771, 0, + 8936, 0, 0, 4208, 0, 119115, 0, 0, 0, 74101, 0, 11762, 0, 0, 0, 0, 66475, + 0, 5027, 0, 0, 0, 5069, 73862, 5028, 9897, 0, 73739, 5026, 0, 0, 0, 0, + 8931, 0, 1415, 8866, 41901, 74790, 0, 119361, 0, 43106, 5029, 119360, + 1580, 3598, 0, 41070, 0, 0, 3440, 119359, 1562, 0, 917827, 119358, 1716, + 0, 10600, 0, 620, 41001, 6028, 0, 42892, 0, 74822, 5024, 120829, 41003, + 0, 5025, 0, 0, 0, 119328, 0, 65557, 0, 0, 0, 11599, 0, 11602, 6243, + 11574, 11581, 11597, 11598, 6253, 6105, 11584, 74195, 11569, 65275, 8906, + 127096, 66491, 2636, 0, 10815, 11619, 0, 41540, 7815, 11616, 6979, 12080, + 7721, 11604, 7869, 1592, 0, 42152, 0, 41048, 0, 829, 0, 0, 19950, 0, 0, + 6616, 0, 118875, 10953, 391, 0, 0, 482, 42296, 11588, 0, 43606, 0, 0, + 66370, 0, 42335, 0, 0, 0, 7538, 5315, 0, 42491, 0, 42061, 0, 4576, 0, 0, + 120241, 4277, 0, 4039, 64472, 42338, 368, 42058, 3960, 11043, 11337, + 120247, 917820, 63989, 3958, 12132, 1849, 0, 9921, 42451, 917818, 41147, + 42064, 11959, 42404, 41160, 0, 3618, 0, 0, 43300, 5156, 0, 0, 929, 0, + 917822, 42437, 1555, 0, 8691, 66435, 0, 41662, 0, 0, 0, 0, 0, 4578, + 64513, 41664, 0, 42578, 0, 41661, 0, 43305, 9356, 0, 0, 0, 1286, 10166, + 0, 0, 64707, 0, 42476, 7730, 0, 0, 42483, 0, 0, 42324, 42291, 10020, + 43359, 0, 6641, 525, 41627, 0, 8763, 0, 41628, 533, 11931, 65225, 8321, + 42504, 42581, 0, 6915, 42310, 4377, 8559, 0, 120234, 0, 13193, 64350, + 11666, 8679, 41924, 1576, 7735, 0, 0, 73840, 0, 11374, 0, 10889, 917909, + 7757, 42462, 120226, 126994, 66493, 2718, 4168, 73842, 13308, 120112, 0, + 1179, 4440, 0, 0, 363, 11015, 0, 0, 64296, 127090, 66692, 120826, 0, + 66492, 6593, 64625, 41963, 0, 119329, 0, 10013, 0, 0, 127095, 9492, + 11782, 64382, 12833, 0, 0, 1297, 41630, 630, 127094, 0, 0, 0, 1043, 0, 0, + 10090, 0, 0, 313, 917563, 41881, 0, 42311, 7445, 0, 5750, 10759, 9419, 0, + 9405, 11268, 0, 9398, 8526, 9399, 9422, 0, 66495, 0, 0, 0, 41718, 10707, + 1603, 0, 0, 0, 631, 0, 0, 13161, 65272, 0, 10546, 74210, 0, 11600, 0, + 2797, 73821, 42427, 306, 714, 3058, 42381, 120036, 127080, 12351, 42395, + 0, 11607, 0, 42282, 0, 0, 9157, 73765, 66364, 42433, 0, 7603, 12803, 180, + 42141, 0, 120612, 66494, 12674, 8244, 362, 0, 0, 8037, 917804, 11535, 0, + 74845, 5185, 66696, 5521, 10334, 5519, 0, 10302, 0, 10104, 1027, 5181, 0, + 0, 10523, 1446, 42320, 41646, 991, 5189, 42472, 41647, 120105, 1722, + 5581, 0, 3405, 0, 194644, 5523, 0, 42620, 0, 0, 9549, 0, 10549, 0, 9661, + 66486, 0, 120537, 120026, 0, 0, 0, 0, 41991, 0, 0, 7630, 9846, 7684, + 10350, 0, 1174, 0, 0, 0, 0, 66485, 0, 42277, 0, 42456, 65667, 0, 12330, + 0, 0, 42417, 42383, 0, 41344, 6293, 0, 66252, 0, 74443, 0, 10209, 8313, + 4195, 0, 9010, 66690, 0, 0, 64894, 0, 65871, 0, 1736, 0, 3901, 12228, + 120151, 65200, 3383, 10446, 0, 693, 9130, 314, 64149, 42420, 11949, 0, 0, + 11026, 0, 5332, 6940, 64154, 12635, 127007, 120628, 1751, 273, 8165, + 13166, 120763, 0, 0, 12824, 0, 4528, 5320, 6301, 0, 6133, 9339, 9463, + 42346, 10922, 64560, 3757, 0, 0, 0, 65869, 73760, 2569, 0, 2326, 65740, + 2565, 42459, 7596, 7921, 0, 74095, 0, 41848, 2567, 66006, 0, 4044, 0, 0, + 12233, 0, 1023, 474, 0, 119818, 0, 0, 42487, 65556, 0, 0, 42295, 0, 0, 0, + 0, 9835, 66499, 0, 0, 12275, 10895, 0, 274, 0, 1858, 0, 0, 0, 10118, + 3133, 0, 73795, 0, 9610, 8068, 8197, 0, 699, 0, 41665, 5868, 0, 0, 42182, + 7581, 19940, 0, 41667, 0, 0, 1923, 65583, 65802, 0, 64597, 0, 119184, 0, + 0, 6464, 7036, 2996, 1937, 0, 0, 41835, 4047, 41842, 0, 65217, 0, 0, + 11017, 0, 0, 293, 0, 0, 64791, 41827, 42466, 65416, 10579, 8560, 0, + 65413, 118835, 4803, 12964, 1739, 1941, 3900, 0, 1713, 0, 0, 73957, + 11407, 42441, 41971, 6297, 120098, 64105, 0, 42481, 11716, 66473, 7179, + 42289, 0, 64103, 969, 0, 9352, 0, 6165, 64100, 0, 6632, 73861, 42402, + 74327, 7806, 0, 8914, 0, 0, 3183, 1435, 64876, 2969, 6046, 0, 6208, 0, + 5746, 73749, 0, 64416, 42422, 0, 0, 7082, 73775, 338, 5059, 194719, 0, + 42328, 10767, 0, 8115, 0, 0, 0, 8227, 0, 1218, 0, 0, 65848, 0, 0, 0, 0, + 126987, 4486, 0, 0, 0, 10925, 0, 0, 0, 0, 42309, 10257, 0, 10273, 0, + 10305, 42461, 0, 42349, 8832, 0, 64127, 10644, 0, 0, 42278, 74451, + 126988, 917857, 7794, 0, 42429, 11081, 42316, 119026, 3669, 3968, 42468, + 0, 0, 0, 65402, 119581, 0, 0, 64933, 0, 41960, 0, 0, 0, 0, 66678, 42391, + 1588, 65400, 8409, 0, 19967, 65398, 787, 0, 0, 0, 6115, 118940, 41654, + 42480, 0, 0, 41655, 65401, 0, 0, 0, 0, 644, 65500, 41657, 10778, 3659, + 9533, 184, 1553, 13107, 65484, 0, 10502, 74457, 0, 0, 41554, 0, 8220, 0, + 41557, 0, 0, 11070, 0, 5157, 4020, 73858, 41555, 9514, 64818, 65103, + 64641, 0, 119633, 7520, 0, 74377, 11029, 66651, 0, 0, 118930, 64527, 0, + 7877, 73803, 0, 0, 120096, 74602, 0, 0, 0, 42817, 0, 65212, 11715, 12190, + 12319, 0, 0, 0, 9502, 65427, 0, 65424, 0, 0, 9734, 65425, 0, 0, 0, 0, 0, + 10112, 10827, 0, 9866, 74527, 66675, 0, 8625, 64346, 11290, 10477, 0, + 8636, 0, 8315, 65444, 0, 0, 74595, 6152, 0, 0, 6629, 0, 120171, 0, 74589, + 0, 0, 0, 0, 0, 0, 11046, 11490, 43127, 4485, 0, 0, 64926, 0, 0, 0, 5869, + 12437, 0, 0, 7040, 3588, 0, 12825, 0, 0, 12725, 0, 0, 120167, 223, 0, 0, + 120166, 42444, 0, 64499, 65245, 0, 1171, 0, 120165, 0, 1805, 8772, 0, 0, + 65078, 65247, 0, 120111, 2338, 0, 118853, 0, 0, 0, 64800, 65236, 67644, + 68126, 1213, 0, 64075, 797, 64074, 8734, 4212, 0, 64387, 4115, 0, 5005, + 64070, 64073, 10679, 0, 0, 0, 64276, 426, 0, 0, 8251, 10136, 65436, 0, + 65088, 43302, 1224, 0, 65576, 0, 10701, 1764, 3101, 0, 65291, 120159, 0, + 11373, 74566, 0, 120103, 8663, 9312, 41644, 4539, 3787, 0, 9222, 0, 0, + 4259, 9092, 74567, 41961, 0, 12724, 66357, 42331, 64935, 0, 0, 1293, + 7947, 12003, 0, 74593, 120308, 2454, 74807, 3613, 0, 0, 0, 65888, 120307, + 10978, 10840, 0, 10668, 0, 43087, 12595, 120304, 0, 118806, 0, 1157, + 64903, 8638, 0, 0, 0, 0, 120319, 8235, 0, 4405, 10086, 0, 0, 0, 0, 65430, + 74013, 6079, 0, 10764, 0, 64291, 0, 998, 120312, 11062, 120313, 64327, + 1558, 0, 1991, 7882, 42254, 0, 41700, 530, 0, 10428, 119335, 12002, + 119336, 5742, 43076, 4692, 64630, 41823, 4007, 5004, 119334, 7896, 751, + 6595, 6596, 0, 66373, 0, 0, 64908, 0, 6311, 0, 12004, 119192, 12049, + 43108, 0, 0, 41705, 0, 6598, 0, 6599, 0, 0, 42148, 118825, 66027, 0, + 6597, 9412, 8340, 11824, 64745, 0, 0, 0, 1988, 5407, 67865, 2430, 41678, + 0, 0, 2336, 0, 0, 0, 120442, 0, 1921, 10947, 19927, 0, 65406, 0, 19913, + 4284, 13217, 0, 0, 12841, 9229, 10956, 42285, 41674, 19964, 41679, 65084, + 3521, 0, 5774, 8325, 0, 65403, 0, 1854, 10794, 0, 0, 0, 0, 0, 5280, 0, + 4344, 12905, 65433, 6076, 64793, 41610, 768, 12074, 442, 0, 68162, 64081, + 12934, 41682, 65432, 41693, 0, 6071, 65434, 0, 4804, 6994, 0, 0, 0, + 41696, 467, 0, 0, 0, 0, 0, 8421, 0, 0, 64801, 502, 0, 65431, 0, 0, 12043, + 1303, 316, 0, 2029, 65191, 119246, 11533, 64365, 0, 0, 4860, 194645, 0, + 42488, 0, 9583, 0, 5546, 8019, 73856, 0, 0, 0, 5544, 2355, 12150, 65725, + 5543, 119245, 63751, 12137, 5548, 0, 0, 0, 0, 65726, 6077, 0, 65452, 0, + 11301, 0, 0, 0, 9874, 0, 0, 0, 3050, 65410, 0, 0, 0, 0, 42830, 0, 66716, + 0, 4691, 0, 9345, 621, 0, 0, 0, 65411, 0, 41182, 73881, 65408, 73899, 0, + 9474, 10545, 119118, 10887, 3786, 65409, 8894, 43179, 119611, 7923, 3716, + 119341, 9996, 8508, 0, 7012, 8195, 0, 9566, 0, 3722, 0, 41707, 8493, 545, + 9575, 41379, 10050, 12718, 0, 8859, 41459, 0, 0, 120740, 0, 0, 9119, + 2787, 7920, 118823, 4021, 2012, 7985, 0, 119663, 0, 0, 0, 0, 410, 120449, + 1802, 120789, 74107, 0, 41659, 41671, 1827, 0, 64396, 10126, 12116, + 41673, 120370, 11422, 120372, 120373, 3860, 120367, 120368, 41345, + 120362, 120363, 11748, 42158, 7941, 11076, 8749, 120361, 12698, 64858, + 361, 120357, 845, 0, 41560, 11970, 4562, 917920, 2926, 0, 4569, 74130, 0, + 119221, 194630, 611, 74129, 64871, 0, 65629, 0, 0, 0, 0, 0, 120543, 0, 0, + 6291, 0, 0, 41669, 7094, 917921, 0, 0, 74054, 0, 0, 0, 839, 0, 7695, + 8769, 65246, 4829, 0, 4859, 64467, 0, 0, 118998, 7206, 0, 6647, 0, 0, 0, + 0, 64764, 4210, 0, 0, 804, 0, 0, 12298, 0, 0, 0, 64924, 10091, 73931, + 9468, 74245, 0, 0, 74246, 0, 12839, 64669, 0, 0, 1279, 1425, 6224, + 119229, 11049, 0, 917549, 0, 8482, 0, 0, 5032, 0, 11940, 67888, 664, 0, + 5034, 0, 0, 0, 0, 73888, 0, 13294, 67873, 64869, 6032, 0, 9115, 7430, + 120377, 0, 120819, 0, 120168, 73913, 120170, 41161, 5518, 4174, 10993, + 41162, 120160, 64528, 1169, 434, 41437, 1905, 6034, 41164, 64744, 9528, + 118867, 0, 524, 0, 74029, 788, 74027, 0, 0, 0, 1663, 10419, 74025, 42636, + 0, 0, 0, 120656, 0, 0, 0, 0, 0, 67897, 74039, 0, 0, 11395, 0, 119107, + 43612, 64344, 0, 0, 10855, 5445, 9355, 0, 65198, 0, 8989, 221, 65686, 0, + 0, 8010, 7191, 4962, 0, 8855, 0, 0, 64469, 0, 10555, 0, 0, 0, 0, 120427, + 10451, 0, 120152, 7245, 12443, 74405, 120148, 120149, 120150, 3873, 8367, + 0, 120146, 120147, 0, 66507, 0, 0, 11010, 12723, 74059, 74062, 6217, + 5896, 0, 7682, 74049, 1462, 10235, 0, 0, 0, 0, 0, 0, 42595, 0, 74402, + 118860, 0, 120419, 0, 74052, 0, 0, 120549, 119082, 64295, 120418, 0, + 64765, 73923, 120417, 120662, 120730, 0, 6216, 0, 10755, 9455, 0, 8124, + 0, 9470, 6944, 0, 0, 0, 2828, 0, 531, 42638, 0, 0, 0, 73764, 8204, 3614, + 2827, 9696, 0, 0, 8728, 4354, 10904, 120502, 19936, 7833, 120691, 0, + 42599, 42597, 0, 120409, 0, 0, 8537, 0, 0, 0, 0, 0, 41199, 10121, 2028, + 0, 0, 0, 0, 3062, 0, 74447, 12608, 0, 66440, 7545, 9700, 12580, 0, + 120777, 0, 41155, 0, 74071, 0, 0, 12713, 0, 0, 0, 0, 0, 1734, 0, 0, 0, 0, + 2456, 231, 0, 74167, 542, 0, 118786, 0, 0, 1230, 0, 0, 3597, 9761, 10584, + 74235, 0, 4037, 0, 8352, 0, 5687, 0, 64515, 0, 0, 0, 67846, 0, 9704, 0, + 0, 74284, 0, 0, 8660, 0, 0, 0, 0, 74482, 4483, 1709, 0, 9909, 6080, 0, 0, + 1746, 1315, 8667, 0, 0, 13140, 65899, 10604, 0, 4480, 11266, 0, 1226, + 6930, 0, 0, 0, 10897, 41230, 605, 0, 74785, 120356, 0, 0, 41500, 0, 311, + 11453, 6221, 10608, 64943, 74280, 10877, 0, 64885, 74272, 0, 0, 0, 0, + 74312, 345, 0, 74456, 64606, 42589, 0, 0, 5037, 0, 1776, 8422, 0, 118814, + 41508, 41201, 323, 43328, 0, 120698, 1295, 0, 4625, 0, 4630, 13117, 0, 0, + 65123, 11293, 2668, 11288, 0, 42640, 65666, 2519, 0, 65420, 0, 0, 917886, + 5049, 0, 119011, 706, 7754, 10854, 8738, 0, 65419, 0, 0, 649, 65421, 0, + 66702, 0, 12670, 1013, 0, 64919, 705, 0, 65422, 0, 1183, 0, 7017, 42852, + 0, 8157, 9736, 64503, 65418, 0, 0, 74035, 0, 11913, 73874, 42848, 0, + 8920, 0, 0, 7962, 12211, 9837, 0, 66227, 0, 4184, 0, 0, 10177, 73777, + 1857, 0, 4626, 8464, 8472, 0, 4629, 8499, 0, 0, 4624, 7818, 194622, 0, 0, + 7805, 0, 0, 6935, 0, 0, 0, 0, 43327, 0, 119046, 8492, 8250, 8459, 0, + 8497, 8496, 0, 0, 0, 0, 9543, 0, 0, 0, 65849, 0, 0, 0, 0, 0, 8684, 0, + 6102, 0, 5298, 0, 5294, 0, 0, 0, 0, 0, 119826, 0, 119215, 0, 12073, 0, 0, + 0, 13108, 0, 74397, 41468, 0, 0, 5292, 0, 0, 1939, 5302, 3970, 0, 12455, + 1793, 0, 0, 0, 6643, 0, 65263, 0, 0, 41293, 0, 119125, 0, 13219, 9569, 0, + 74383, 0, 0, 0, 5500, 8813, 0, 0, 0, 5322, 0, 0, 0, 5324, 66443, 3784, + 41614, 65269, 6230, 0, 0, 43324, 3360, 0, 11523, 0, 0, 41732, 7197, 0, 0, + 0, 41821, 1249, 0, 0, 0, 118992, 0, 64899, 64763, 41149, 41807, 43162, + 41815, 41150, 0, 10571, 10096, 0, 0, 0, 6947, 41152, 887, 9249, 6565, 0, + 41990, 0, 41811, 74466, 0, 6670, 0, 0, 0, 43092, 43325, 0, 10168, 0, + 9781, 0, 9190, 0, 9666, 8269, 65944, 74005, 13019, 11670, 0, 315, 12813, + 0, 119648, 0, 0, 0, 0, 0, 0, 0, 1378, 9509, 0, 0, 74475, 3066, 0, 67847, + 0, 0, 0, 0, 8787, 0, 194616, 41618, 194615, 0, 194614, 0, 64652, 0, + 194612, 0, 0, 42088, 0, 0, 7176, 0, 10137, 6121, 10995, 0, 74534, 8119, + 64874, 0, 0, 0, 0, 74525, 0, 0, 12930, 1394, 74514, 0, 74515, 0, 118804, + 2998, 9527, 120659, 65190, 12977, 42090, 119165, 0, 119100, 41236, 0, + 65168, 42003, 41237, 5848, 0, 0, 3670, 0, 0, 0, 0, 7890, 0, 11298, 43315, + 0, 6229, 1593, 0, 0, 619, 4635, 65080, 0, 0, 4120, 65337, 65336, 0, + 11808, 119214, 74115, 9366, 42790, 42006, 0, 65327, 65326, 65325, 10757, + 1507, 65322, 65321, 65320, 65335, 65334, 65333, 65332, 65331, 42059, + 65329, 65328, 0, 9128, 118885, 42073, 41631, 64590, 0, 4371, 7196, 65318, + 2035, 65316, 4106, 65314, 65313, 42074, 0, 41228, 0, 119117, 41241, 7903, + 41239, 43533, 127099, 7189, 0, 0, 0, 12357, 42802, 0, 8487, 9131, 0, + 4615, 12695, 0, 0, 12175, 0, 64535, 0, 7809, 0, 0, 562, 12169, 6590, 0, + 66455, 64738, 3219, 0, 0, 0, 1037, 0, 2025, 0, 13098, 0, 10637, 4568, + 549, 1570, 0, 2835, 0, 10624, 194587, 11072, 0, 0, 0, 12606, 0, 2825, 0, + 10825, 8079, 2821, 41046, 0, 0, 0, 120593, 13071, 0, 452, 41049, 42840, + 43614, 2831, 0, 74596, 11465, 5212, 0, 64703, 119191, 42308, 7181, 0, + 41332, 0, 12333, 0, 1668, 0, 0, 0, 1187, 0, 42628, 0, 0, 0, 0, 3240, 0, + 12194, 0, 11591, 41065, 5323, 8166, 0, 0, 0, 74535, 1623, 65297, 0, 571, + 0, 4918, 0, 5288, 0, 8916, 65048, 1909, 8864, 0, 0, 10736, 0, 11571, + 7615, 0, 0, 4237, 0, 1035, 65815, 0, 7881, 701, 65936, 3489, 0, 0, 0, + 11403, 0, 0, 0, 3796, 0, 0, 3994, 11421, 0, 0, 0, 0, 0, 0, 64857, 0, + 2855, 0, 66308, 41621, 0, 0, 0, 10654, 0, 119226, 12164, 3246, 7906, 0, + 65847, 7182, 0, 13024, 194822, 119931, 0, 0, 0, 0, 1496, 747, 0, 942, + 2378, 43136, 0, 8466, 0, 9320, 8001, 1232, 8139, 11617, 0, 0, 11409, 0, + 0, 0, 66319, 0, 0, 11612, 0, 0, 2374, 0, 8475, 11609, 66313, 0, 0, 5286, + 119297, 0, 0, 64925, 0, 0, 0, 194583, 7705, 11942, 11305, 194581, 3309, + 0, 0, 0, 0, 11975, 0, 41653, 1280, 1241, 7168, 12096, 0, 0, 42565, 41651, + 0, 0, 0, 41650, 0, 66470, 0, 12914, 41491, 66010, 119552, 6078, 65100, 0, + 1475, 0, 0, 6084, 917546, 41064, 41062, 0, 0, 3256, 0, 42076, 0, 0, 0, + 8727, 0, 65875, 0, 0, 0, 10562, 74215, 67608, 0, 0, 3248, 74297, 3261, + 9015, 0, 0, 3635, 64337, 0, 0, 0, 7195, 0, 2007, 64431, 0, 0, 0, 0, 635, + 0, 0, 65613, 0, 0, 73997, 0, 0, 119218, 7984, 8600, 74434, 0, 4176, 0, + 2034, 0, 120805, 65891, 127038, 0, 318, 2038, 0, 0, 0, 3649, 13149, + 42145, 42798, 3634, 120291, 118927, 0, 120124, 7866, 0, 11402, 42146, + 120134, 74238, 120129, 2849, 127034, 0, 7938, 12960, 1761, 11812, 65379, + 74509, 0, 1159, 0, 0, 0, 0, 7178, 194632, 0, 41680, 0, 0, 11534, 1514, + 11668, 67891, 9313, 7015, 0, 67877, 0, 12989, 194560, 9368, 12848, 1624, + 43270, 0, 194563, 10818, 194562, 12649, 0, 0, 1194, 3242, 0, 9555, 8598, + 120299, 6169, 0, 1551, 2798, 65176, 120298, 42752, 119025, 0, 67875, + 120301, 3495, 66648, 0, 0, 0, 0, 4891, 0, 10641, 0, 73746, 0, 0, 0, + 73787, 0, 0, 7199, 64955, 0, 0, 0, 0, 0, 64952, 0, 193, 0, 0, 0, 0, 0, + 5271, 0, 119661, 118882, 1362, 13297, 0, 0, 0, 0, 73789, 0, 6658, 4426, + 0, 0, 0, 119123, 7276, 42163, 5220, 0, 0, 0, 2416, 3310, 66030, 0, 379, + 0, 0, 0, 0, 3223, 65492, 1284, 0, 4549, 0, 0, 0, 0, 10807, 9558, 0, 0, + 8515, 8688, 12866, 0, 3294, 0, 0, 0, 0, 7564, 0, 43329, 0, 0, 73757, + 66456, 42359, 0, 2031, 0, 7202, 0, 12676, 66615, 0, 3215, 0, 7710, 1610, + 73801, 0, 0, 65682, 0, 0, 65924, 0, 228, 0, 1501, 0, 64395, 5179, 7200, + 6225, 0, 65794, 1725, 65533, 8196, 7476, 74399, 0, 0, 0, 8502, 5762, + 1967, 7483, 0, 0, 8104, 0, 7474, 0, 0, 0, 10414, 13001, 8141, 0, 42537, + 1557, 0, 0, 0, 0, 8631, 2545, 120672, 0, 0, 74190, 0, 0, 0, 42762, 0, 0, + 1650, 262, 1637, 0, 7901, 3238, 0, 41861, 0, 0, 65158, 10860, 0, 119134, + 7527, 0, 43319, 6419, 0, 45, 0, 0, 0, 0, 119810, 7194, 5291, 0, 0, 13129, + 0, 9084, 0, 8737, 0, 12881, 0, 12906, 9639, 7912, 2620, 0, 0, 0, 0, 179, + 65896, 0, 64756, 2853, 0, 118813, 0, 118996, 0, 2850, 8084, 0, 73850, + 2801, 119837, 42069, 119839, 74754, 119841, 42072, 119843, 119842, 74767, + 0, 0, 0, 0, 8245, 119313, 3158, 119853, 4389, 73813, 923, 119857, 119856, + 292, 13002, 119845, 119844, 3221, 1763, 119849, 4612, 119851, 119850, + 7253, 127110, 120618, 0, 10782, 3637, 12996, 43542, 0, 64578, 0, 3228, + 73869, 8783, 0, 119614, 2731, 0, 0, 118939, 4102, 7696, 73878, 0, 0, 0, + 43316, 4177, 11283, 9089, 0, 73996, 0, 64500, 68133, 0, 0, 1856, 0, 0, 0, + 0, 0, 0, 3208, 12975, 0, 0, 0, 0, 74072, 0, 0, 0, 0, 2033, 119008, 0, + 195026, 0, 7740, 0, 0, 0, 73964, 0, 0, 0, 65674, 0, 0, 41689, 0, 74006, + 64909, 6646, 11790, 74019, 0, 0, 0, 8561, 4573, 0, 5326, 0, 120605, 7230, + 8257, 0, 8778, 41688, 0, 65776, 0, 8314, 6459, 0, 7628, 65092, 73903, + 66721, 11342, 0, 0, 0, 0, 127001, 0, 11810, 13164, 10723, 967, 0, 0, + 11946, 0, 3257, 0, 12307, 1845, 0, 43526, 0, 0, 1886, 42342, 10089, 870, + 7648, 3499, 8609, 7652, 876, 871, 877, 0, 878, 42015, 879, 0, 4563, 0, 0, + 7591, 65887, 867, 9520, 872, 0, 868, 873, 7642, 0, 869, 874, 7644, 0, + 875, 790, 0, 0, 0, 0, 66182, 0, 5429, 0, 66180, 0, 66181, 0, 0, 0, 42067, + 0, 5433, 10657, 7911, 0, 1547, 66176, 42012, 0, 5425, 4977, 9999, 5317, + 5423, 4611, 0, 67637, 0, 9679, 74122, 0, 0, 0, 0, 4418, 66184, 4628, + 4245, 0, 0, 0, 1851, 0, 0, 11908, 0, 9360, 118897, 0, 42776, 66187, + 12837, 8829, 0, 0, 0, 0, 43318, 0, 8809, 119974, 0, 0, 120604, 0, 0, 0, + 0, 0, 0, 7427, 0, 4588, 0, 0, 74484, 0, 2433, 0, 119622, 3352, 74363, 0, + 0, 793, 74404, 0, 305, 567, 0, 842, 0, 8208, 0, 41695, 1647, 118877, 0, + 7837, 917625, 818, 5337, 917622, 917621, 41376, 119978, 917618, 120594, + 74086, 917615, 917614, 917613, 10973, 66359, 1372, 917609, 917608, 4969, + 1254, 917605, 917604, 917603, 917602, 65228, 0, 0, 0, 2840, 0, 119982, 0, + 0, 3245, 9068, 119069, 64725, 0, 0, 12991, 0, 2651, 0, 0, 917611, 0, 0, + 0, 0, 0, 0, 0, 43322, 0, 0, 0, 64372, 0, 3226, 655, 752, 7457, 7456, + 7452, 3285, 0, 0, 119988, 65610, 0, 0, 0, 671, 250, 7434, 618, 668, 610, + 42800, 7431, 1152, 42801, 640, 120666, 7448, 7439, 628, 3905, 73810, 0, + 0, 64749, 67850, 0, 0, 0, 0, 194873, 0, 0, 65945, 0, 0, 119590, 0, 0, 0, + 987, 6927, 11572, 42261, 11464, 3365, 0, 0, 0, 0, 0, 0, 0, 0, 11334, + 43326, 12609, 11519, 0, 5530, 5210, 0, 4627, 0, 5208, 0, 0, 10332, 5218, + 7976, 9156, 0, 3244, 5529, 0, 73894, 0, 5432, 64965, 5527, 74033, 10516, + 7790, 5528, 0, 42140, 120281, 0, 0, 43545, 120282, 0, 4000, 7429, 7428, + 665, 7424, 3206, 120279, 7884, 0, 0, 0, 0, 211, 2509, 0, 120573, 0, 3220, + 0, 0, 10690, 8951, 5214, 42474, 8118, 0, 7048, 4590, 0, 5852, 0, 0, 0, + 1708, 0, 0, 2623, 0, 0, 0, 0, 4698, 66509, 1066, 0, 4701, 0, 120285, + 74225, 119114, 8267, 0, 0, 0, 7516, 0, 2625, 0, 8034, 74309, 0, 3631, + 10955, 7850, 120293, 8416, 0, 0, 0, 0, 12660, 0, 0, 0, 74850, 41069, 0, + 0, 12099, 4310, 10032, 6252, 713, 7990, 0, 3990, 0, 0, 66368, 5017, + 64956, 7071, 0, 0, 1030, 118800, 0, 9513, 41059, 9357, 0, 1773, 0, + 120350, 0, 0, 7745, 9844, 0, 64650, 94, 1880, 74766, 0, 8908, 0, 0, + 65913, 0, 10752, 13003, 0, 0, 41307, 8732, 120338, 0, 1757, 6964, 4696, + 0, 0, 120806, 10029, 3641, 5419, 0, 0, 0, 0, 120344, 0, 0, 8610, 65230, + 7592, 856, 74299, 936, 13289, 0, 43171, 1459, 0, 65243, 0, 19953, 0, + 1504, 0, 0, 0, 74206, 7529, 0, 0, 0, 120782, 4113, 0, 2372, 336, 0, 7509, + 12152, 0, 682, 66458, 41505, 0, 64743, 10593, 1703, 0, 0, 8033, 0, 0, + 9810, 0, 0, 12970, 0, 42351, 10109, 0, 0, 0, 0, 119247, 0, 0, 74291, + 1965, 7069, 43312, 0, 73887, 0, 0, 64370, 6314, 41714, 8501, 0, 0, 74239, + 41317, 0, 5417, 0, 0, 0, 9353, 0, 41315, 917616, 0, 0, 6569, 0, 0, 0, + 119236, 634, 0, 0, 0, 917610, 4165, 8746, 0, 9654, 12856, 6924, 0, 7066, + 0, 0, 0, 41037, 0, 7786, 917607, 41039, 0, 0, 680, 6274, 0, 1181, 7056, + 3174, 0, 0, 0, 65665, 0, 0, 6920, 0, 0, 0, 0, 0, 64644, 126981, 0, 0, + 41028, 0, 6231, 2613, 65302, 40989, 0, 0, 0, 42760, 0, 0, 0, 40987, 4667, + 0, 0, 8828, 0, 0, 1246, 4746, 0, 0, 11021, 4749, 0, 0, 921, 4744, 0, + 12702, 242, 0, 1566, 8217, 0, 64653, 0, 0, 74036, 74505, 43274, 5313, + 951, 0, 0, 0, 7604, 0, 4009, 0, 0, 120562, 0, 0, 64860, 119138, 119902, + 0, 0, 4048, 0, 0, 120596, 1646, 0, 64534, 73995, 0, 0, 119890, 2579, + 119905, 3177, 11357, 9099, 4107, 3441, 119894, 2975, 74442, 9822, 0, 0, + 10084, 73943, 0, 0, 917562, 0, 3399, 9851, 0, 11909, 9059, 0, 7687, 0, + 8854, 0, 0, 0, 0, 0, 0, 1777, 9151, 1137, 0, 749, 42366, 0, 5385, 0, 0, + 0, 0, 5989, 0, 0, 0, 0, 41685, 0, 0, 9769, 41684, 0, 519, 0, 11740, 5766, + 0, 0, 2600, 8848, 120138, 41297, 0, 3666, 74473, 41300, 74468, 65160, 0, + 74542, 0, 74479, 0, 6558, 0, 0, 0, 120750, 252, 0, 41302, 0, 0, 0, 0, 0, + 11729, 8719, 9060, 0, 120139, 10761, 0, 0, 0, 118792, 11734, 0, 11730, 0, + 9593, 119188, 2403, 64808, 0, 0, 11728, 65894, 0, 0, 7764, 0, 0, 120825, + 0, 0, 4282, 8298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8456, 0, 74783, 65670, 0, 0, + 0, 7774, 10607, 9792, 0, 0, 0, 0, 120764, 0, 10019, 74762, 0, 3458, 4365, + 0, 0, 3647, 0, 2602, 0, 0, 194707, 41135, 0, 0, 0, 64631, 172, 4971, + 41219, 41137, 1889, 7238, 6545, 0, 0, 7597, 10528, 0, 0, 3732, 73910, 0, + 5344, 0, 0, 0, 9062, 119252, 0, 0, 0, 64479, 9232, 0, 0, 0, 0, 10900, + 41531, 1263, 3720, 12048, 0, 64292, 41524, 7227, 119635, 6099, 41534, 0, + 0, 0, 299, 0, 8525, 0, 3524, 0, 8831, 0, 0, 3075, 0, 0, 0, 66362, 0, + 74758, 0, 0, 5845, 0, 0, 0, 2581, 8200, 65114, 74393, 0, 43283, 5551, 0, + 127085, 0, 0, 118855, 0, 0, 8680, 7204, 0, 2588, 2914, 7011, 0, 0, 2471, + 0, 2883, 2749, 119563, 73774, 10913, 0, 0, 8666, 675, 42493, 0, 0, 0, + 6219, 0, 0, 41232, 10928, 0, 41153, 41229, 118967, 0, 3738, 0, 0, 12711, + 3181, 66212, 74289, 0, 42857, 8262, 0, 0, 0, 0, 42347, 12092, 9615, 7234, + 74047, 0, 0, 64674, 0, 0, 73846, 0, 12722, 0, 922, 74426, 74507, 0, 0, + 3218, 120471, 74290, 120469, 64562, 120475, 8569, 11404, 11932, 73728, + 3214, 120461, 120468, 12128, 3207, 65486, 0, 1901, 0, 0, 120460, 7425, + 3205, 0, 0, 0, 0, 0, 0, 65459, 2606, 0, 73897, 0, 11496, 1173, 0, 41272, + 0, 0, 0, 0, 120737, 0, 0, 0, 378, 2610, 0, 65079, 0, 65695, 0, 37, 7068, + 0, 120480, 120479, 3209, 120477, 0, 10638, 9768, 120481, 0, 0, 0, 0, 0, + 0, 65510, 0, 0, 5233, 0, 64792, 0, 0, 0, 0, 7060, 9847, 0, 1685, 595, 0, + 73971, 1292, 8940, 0, 11088, 0, 10004, 126997, 0, 6541, 0, 0, 0, 3243, + 9014, 5606, 0, 538, 64620, 5602, 8467, 74391, 6547, 0, 8203, 0, 0, 8458, + 65211, 8495, 0, 0, 917552, 779, 0, 64367, 2465, 0, 8193, 0, 9730, 9280, + 0, 7065, 74155, 4346, 0, 73798, 504, 0, 120715, 8982, 0, 0, 0, 782, 0, + 10883, 0, 917876, 732, 3737, 0, 1548, 0, 0, 1832, 5604, 5735, 41141, 0, + 4376, 0, 41142, 3745, 0, 0, 42888, 65712, 0, 3869, 11937, 5725, 0, 1783, + 0, 5728, 0, 0, 0, 11918, 66567, 5724, 0, 5727, 0, 0, 0, 764, 0, 0, 43531, + 0, 9033, 0, 42532, 6223, 11042, 0, 11423, 0, 0, 0, 0, 0, 0, 6559, 64557, + 0, 0, 120648, 43019, 0, 10238, 0, 0, 0, 120675, 0, 1478, 9783, 0, 2607, + 64740, 0, 7739, 74543, 0, 0, 0, 6132, 0, 63765, 0, 0, 41144, 0, 0, 43537, + 0, 10093, 4369, 917791, 0, 0, 8820, 3947, 0, 0, 11515, 526, 0, 41295, + 194603, 917785, 0, 0, 7688, 917786, 7686, 8288, 11815, 0, 0, 0, 1543, + 3713, 41221, 12423, 42281, 917788, 74024, 12293, 0, 64357, 11794, 42082, + 0, 1737, 8987, 42081, 0, 7205, 0, 9335, 12850, 119870, 6553, 7055, 0, + 8277, 0, 0, 5475, 74795, 7052, 0, 0, 12990, 1160, 42084, 119650, 41217, + 119660, 10018, 360, 0, 0, 68176, 5863, 3137, 0, 4147, 0, 41216, 7844, + 2616, 119190, 0, 65234, 0, 13076, 3135, 0, 0, 119139, 3142, 194948, 0, + 10819, 119580, 10183, 0, 2608, 1470, 73967, 0, 6227, 0, 0, 74775, 0, + 6163, 0, 0, 0, 0, 0, 8603, 0, 119866, 3306, 10876, 0, 119573, 0, 5834, 0, + 6222, 0, 0, 12086, 0, 1600, 64309, 64939, 0, 64783, 0, 11310, 0, 8882, 0, + 0, 2570, 7021, 0, 0, 43110, 0, 1234, 6540, 6974, 0, 0, 0, 5002, 0, 41286, + 0, 127019, 0, 43585, 0, 6551, 0, 0, 0, 41289, 0, 0, 0, 8977, 602, 120814, + 0, 0, 0, 0, 0, 41279, 0, 0, 0, 0, 43615, 0, 0, 0, 0, 12727, 0, 0, 0, + 9475, 0, 65105, 0, 9633, 10886, 43592, 7831, 0, 0, 0, 73915, 8076, 43048, + 8290, 8291, 43051, 0, 0, 2596, 43584, 0, 13113, 0, 0, 2393, 7058, 9087, + 74067, 0, 41574, 0, 0, 74058, 42035, 0, 0, 0, 0, 9854, 0, 64696, 0, 0, 0, + 74165, 0, 1720, 0, 0, 0, 6529, 7063, 0, 3751, 9120, 0, 0, 1798, 709, 0, + 1354, 1876, 13152, 6557, 12430, 8137, 0, 0, 0, 0, 245, 0, 11456, 41233, + 7070, 0, 0, 6136, 0, 65677, 8682, 41235, 0, 42045, 9804, 0, 432, 3595, 0, + 65437, 0, 74455, 42399, 0, 0, 0, 0, 119658, 0, 0, 0, 0, 8797, 0, 9052, + 64888, 0, 2356, 95, 74784, 10580, 0, 42286, 0, 64640, 0, 119104, 0, 0, 0, + 10063, 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, 0, 0, 2576, + 0, 0, 0, 43604, 0, 0, 74082, 514, 74502, 0, 2921, 43215, 64493, 5772, + 12968, 0, 0, 74580, 917565, 2580, 0, 41341, 41223, 6564, 1463, 41342, 0, + 5293, 0, 0, 3733, 11346, 0, 12054, 0, 74098, 42827, 0, 13091, 0, 0, 0, + 917915, 0, 127026, 0, 74821, 0, 0, 119042, 0, 0, 13090, 66643, 0, 1270, + 1132, 42360, 0, 74096, 66655, 42569, 0, 0, 64761, 0, 41021, 8510, 42432, + 0, 0, 0, 0, 64496, 74109, 0, 9915, 0, 0, 7061, 41336, 3854, 0, 13141, + 917564, 0, 42319, 13082, 0, 7067, 0, 0, 0, 0, 0, 0, 0, 9029, 43543, 0, + 2353, 6308, 0, 74792, 2611, 119186, 0, 0, 0, 0, 0, 66627, 0, 4484, 8509, + 118976, 0, 65233, 0, 41224, 41017, 0, 3747, 10522, 0, 0, 1691, 41226, 0, + 12107, 0, 10905, 65010, 0, 697, 66018, 9284, 4244, 0, 0, 0, 13121, 0, 0, + 12010, 0, 0, 0, 0, 0, 0, 65816, 68111, 0, 0, 65668, 0, 0, 118784, 66365, + 0, 0, 12648, 0, 0, 0, 5785, 41309, 9764, 41316, 65877, 0, 13230, 41299, + 0, 0, 0, 0, 0, 0, 0, 13122, 0, 191, 74119, 0, 8000, 64411, 120652, 42889, + 64850, 41072, 41578, 0, 41577, 0, 10002, 0, 6533, 73802, 41570, 0, 683, + 396, 41580, 68146, 0, 12901, 0, 0, 343, 0, 0, 41360, 0, 0, 4743, 0, 0, + 74040, 74108, 8743, 1724, 1433, 119324, 0, 3739, 6263, 0, 0, 3964, 6592, + 0, 0, 66040, 0, 42568, 0, 0, 1778, 3956, 0, 42070, 6563, 43075, 9018, 0, + 0, 12067, 41312, 0, 5547, 0, 0, 0, 8175, 0, 284, 8108, 934, 0, 74001, + 173, 66460, 7174, 0, 0, 1750, 0, 4394, 0, 1807, 0, 0, 0, 5889, 0, 7180, + 0, 119145, 0, 0, 42471, 6982, 1721, 119144, 7891, 42243, 42160, 2583, + 4512, 0, 0, 0, 0, 0, 3855, 0, 0, 0, 0, 74295, 0, 0, 119140, 3975, 0, + 74087, 0, 12672, 3798, 2703, 0, 0, 0, 9774, 1275, 0, 0, 41095, 3962, 0, + 7873, 41101, 3954, 6457, 4513, 0, 0, 73994, 73992, 1468, 0, 0, 41851, 0, + 41846, 0, 0, 7633, 41849, 0, 4320, 3224, 0, 0, 0, 42531, 0, 1510, 0, + 8256, 0, 11393, 0, 8879, 0, 0, 8770, 0, 0, 127120, 1910, 8671, 0, 4283, + 0, 127117, 0, 0, 2654, 7893, 0, 0, 0, 0, 65106, 42761, 12857, 4581, 8411, + 119029, 127121, 0, 0, 0, 0, 0, 0, 1733, 4392, 2568, 10786, 0, 0, 8184, + 41486, 0, 0, 0, 0, 0, 0, 7185, 7965, 0, 0, 0, 0, 41350, 9129, 0, 0, 0, 0, + 0, 0, 10481, 0, 0, 7171, 0, 340, 0, 0, 0, 0, 0, 0, 0, 917620, 0, 0, 0, 0, + 0, 65203, 11392, 0, 0, 0, 3210, 0, 0, 0, 0, 0, 0, 917619, 0, 0, 10043, 0, + 1186, 41571, 6999, 617, 9464, 0, 3675, 5207, 65062, 5213, 0, 2617, 41348, + 41568, 0, 3253, 120535, 0, 8630, 0, 0, 5596, 5545, 7288, 2586, 64887, 0, + 5217, 0, 0, 0, 0, 64293, 68098, 2635, 0, 0, 0, 0, 0, 7835, 0, 0, 194988, + 0, 64558, 0, 0, 0, 0, 0, 0, 5784, 0, 0, 0, 0, 4011, 0, 68101, 0, 7864, + 4254, 118975, 0, 5600, 3903, 127083, 10447, 5598, 1207, 120521, 0, 3501, + 42582, 43600, 0, 0, 1124, 5597, 0, 0, 9321, 0, 0, 0, 0, 1719, 120576, 0, + 9671, 1125, 4399, 0, 0, 0, 7631, 5488, 65223, 0, 0, 5491, 0, 8937, 43044, + 2604, 74187, 5490, 43046, 5489, 7212, 11768, 43043, 6300, 0, 194789, 0, + 4390, 454, 41397, 0, 9875, 7593, 194792, 0, 118913, 7207, 0, 65901, 2394, + 2575, 0, 3746, 11016, 65752, 0, 0, 917944, 0, 11989, 0, 0, 0, 0, 0, 8249, + 0, 0, 0, 6640, 74806, 2598, 513, 0, 6586, 8656, 0, 0, 65008, 0, 194784, + 0, 194795, 0, 0, 194987, 0, 0, 0, 194986, 12647, 0, 194796, 0, 1036, 0, + 0, 1723, 0, 0, 0, 41579, 2444, 0, 10705, 73876, 0, 74486, 0, 740, 194985, + 0, 194984, 0, 4238, 11071, 9459, 917943, 0, 0, 0, 8121, 10438, 74487, + 42574, 13285, 195001, 11907, 0, 5690, 194999, 0, 0, 43181, 13095, 0, 0, + 64498, 0, 9506, 6978, 194993, 0, 0, 0, 194992, 0, 0, 1122, 317, 0, 0, 0, + 0, 1920, 0, 10173, 827, 0, 0, 0, 120126, 5223, 1304, 0, 119564, 5226, + 12602, 0, 0, 9329, 7758, 9239, 41173, 5224, 5487, 1222, 5692, 41725, 0, + 9674, 5695, 41711, 64627, 19909, 0, 74604, 5691, 287, 866, 233, 0, 0, + 42816, 0, 65140, 74797, 0, 8830, 6568, 42300, 10524, 41175, 0, 0, 0, + 5296, 0, 42492, 0, 0, 3302, 0, 0, 6516, 6515, 6514, 6513, 6512, 0, 7856, + 8690, 0, 0, 12122, 119628, 194813, 0, 1785, 0, 120635, 65153, 194810, + 5138, 0, 0, 0, 0, 4540, 41181, 0, 6200, 0, 5134, 0, 322, 4643, 5132, 0, + 0, 0, 5143, 0, 8790, 0, 0, 194802, 0, 8869, 120601, 0, 42060, 0, 0, 0, 0, + 10270, 10286, 10318, 10382, 43529, 66477, 0, 0, 74170, 0, 3234, 0, 0, + 74376, 43139, 118924, 127084, 120627, 8767, 0, 74489, 41281, 120746, + 5201, 0, 6215, 12714, 6214, 13101, 0, 0, 65268, 0, 0, 0, 11027, 0, 10059, + 10511, 42075, 9767, 789, 1749, 0, 127071, 0, 320, 0, 8647, 0, 3049, 0, + 6471, 42071, 43156, 0, 0, 0, 0, 4960, 5549, 0, 0, 8485, 4671, 5418, 0, + 3351, 0, 0, 10610, 5414, 3064, 6212, 4286, 5421, 0, 9554, 0, 0, 0, 6653, + 0, 0, 64510, 6213, 12885, 0, 119045, 64720, 0, 120759, 73741, 12603, 0, + 11430, 4566, 7843, 9317, 3801, 10342, 10406, 0, 119259, 42576, 0, 5200, + 0, 0, 0, 9183, 0, 74458, 73825, 395, 5482, 5198, 8786, 10390, 74202, + 5196, 43224, 6113, 42009, 5205, 0, 43307, 0, 118973, 0, 12134, 0, 0, + 118843, 9126, 435, 0, 12014, 12893, 8093, 9079, 3203, 192, 65109, 3385, + 0, 64430, 5383, 10294, 10326, 0, 5738, 0, 3336, 0, 5361, 3623, 41159, 0, + 68112, 7872, 8581, 0, 1260, 3149, 5359, 0, 0, 7914, 5357, 0, 0, 2624, + 5364, 0, 11431, 0, 9101, 11058, 0, 0, 0, 42271, 0, 65737, 120793, 0, 0, + 0, 10619, 0, 0, 0, 0, 0, 0, 0, 0, 9319, 7097, 119055, 0, 3232, 73824, + 74581, 0, 0, 0, 41889, 0, 0, 1161, 41895, 74103, 9701, 8622, 0, 0, 73819, + 120588, 5012, 119049, 41362, 0, 917762, 11921, 0, 11769, 0, 0, 41364, 0, + 74228, 41352, 41361, 0, 41366, 0, 3356, 0, 917, 0, 119915, 119923, 8199, + 119912, 119917, 677, 119916, 0, 119932, 0, 0, 0, 0, 3349, 74125, 7022, + 8927, 4739, 0, 5802, 0, 8615, 0, 0, 491, 0, 0, 0, 65837, 0, 8426, 11092, + 9891, 0, 42497, 0, 7586, 42305, 10852, 0, 0, 0, 0, 9095, 7741, 12684, + 41885, 1046, 0, 0, 0, 5815, 5171, 65539, 0, 6932, 0, 42394, 41878, 74849, + 917951, 0, 5169, 11935, 0, 0, 3175, 120822, 1537, 120804, 5176, 8905, + 4136, 4871, 0, 0, 9833, 0, 0, 1128, 65920, 0, 9711, 7057, 9408, 9409, + 9410, 9411, 3662, 9413, 3378, 9415, 9416, 9417, 9418, 8909, 9420, 9421, + 5897, 9423, 5165, 5126, 41385, 0, 41389, 917938, 8955, 3374, 9400, 9401, + 9402, 9403, 9404, 3507, 9406, 7629, 0, 19925, 0, 73832, 183, 0, 2631, 0, + 10627, 41130, 0, 3996, 0, 0, 0, 0, 119307, 0, 6580, 4332, 64825, 66329, + 10726, 66686, 41125, 5899, 41365, 917918, 12085, 0, 574, 917922, 0, + 73828, 5448, 41058, 5446, 73900, 41322, 74768, 5442, 4190, 0, 0, 5451, 0, + 3616, 0, 0, 0, 7708, 0, 10859, 65867, 10345, 10409, 4191, 0, 120719, + 73800, 42181, 0, 0, 4447, 0, 120708, 11788, 65587, 0, 10415, 74102, 0, + 205, 0, 10351, 119076, 0, 9862, 6588, 0, 64697, 0, 41355, 5505, 119154, + 5503, 8021, 0, 119150, 9819, 41357, 8011, 42885, 5507, 12044, 0, 0, + 10026, 5472, 65108, 1191, 13106, 5470, 10329, 5476, 8991, 66322, 0, 0, + 42874, 8550, 42876, 5592, 2919, 0, 2675, 5595, 0, 0, 4367, 0, 0, 5478, + 5904, 5594, 0, 74150, 7291, 5590, 0, 13067, 118909, 0, 0, 9731, 0, 64633, + 194565, 0, 0, 0, 0, 0, 10750, 0, 0, 74545, 0, 0, 12887, 10551, 194564, 0, + 0, 0, 120570, 0, 5199, 0, 1120, 42387, 0, 1444, 9486, 7554, 65839, 0, 0, + 1442, 0, 5894, 0, 0, 0, 0, 74313, 0, 13162, 0, 3334, 0, 118803, 0, 66022, + 0, 0, 1651, 0, 8861, 0, 0, 1142, 0, 8271, 0, 0, 0, 12903, 0, 4002, 0, + 10442, 10676, 3344, 0, 0, 12920, 0, 0, 0, 0, 1277, 0, 7871, 0, 0, 0, 0, + 119015, 120360, 0, 11784, 0, 0, 4700, 66366, 0, 120359, 11012, 0, 0, + 120358, 0, 4973, 8784, 0, 74804, 0, 0, 118981, 42440, 0, 43118, 0, 42364, + 0, 11543, 0, 0, 10346, 10410, 0, 9243, 2464, 0, 6108, 3372, 0, 6247, + 43117, 74526, 0, 74166, 0, 120355, 0, 0, 0, 0, 0, 0, 0, 74217, 3354, 0, + 4192, 9289, 118999, 41191, 3876, 0, 0, 120660, 0, 0, 0, 0, 0, 0, 11603, + 0, 0, 6589, 0, 194679, 0, 0, 0, 0, 0, 42572, 0, 10630, 74827, 1963, + 118889, 0, 11654, 0, 7550, 10686, 5903, 0, 0, 41329, 9662, 917937, 64698, + 3366, 10399, 0, 0, 11013, 0, 917933, 0, 0, 0, 6925, 0, 0, 917929, 0, + 11568, 0, 917931, 64579, 917930, 7852, 0, 0, 12292, 6312, 0, 64672, + 65296, 0, 118957, 0, 416, 12296, 74753, 73834, 0, 11050, 10984, 0, 0, 0, + 0, 0, 0, 9532, 66355, 0, 0, 917925, 64343, 195032, 0, 195031, 0, 0, + 195057, 11445, 0, 195028, 0, 195027, 0, 1021, 0, 9507, 10210, 74544, + 8023, 1200, 12243, 195062, 5282, 195061, 12540, 11545, 0, 120493, 3343, + 4424, 11047, 1885, 43268, 3896, 0, 66497, 2947, 392, 7894, 4391, 68139, + 0, 13059, 74816, 0, 3381, 7942, 0, 0, 0, 0, 0, 3913, 0, 0, 0, 7044, 1265, + 0, 6309, 7045, 7175, 7047, 0, 11791, 0, 0, 8221, 0, 41864, 0, 0, 0, 0, + 167, 0, 917584, 0, 74211, 41897, 0, 0, 0, 0, 0, 2493, 0, 118811, 0, 0, + 64354, 0, 8777, 0, 406, 8884, 2385, 0, 0, 0, 0, 43030, 42027, 12114, 0, + 0, 64936, 0, 0, 120629, 10561, 0, 8365, 0, 0, 65841, 120787, 11601, 0, 0, + 0, 917575, 7834, 74159, 0, 0, 10298, 6624, 4908, 917596, 1639, 0, 0, + 74157, 0, 0, 0, 0, 0, 0, 4817, 0, 194759, 0, 7043, 9600, 11022, 0, 0, 0, + 0, 0, 0, 7548, 64794, 42050, 12291, 0, 194761, 12343, 657, 195054, 64682, + 4461, 1134, 1838, 0, 0, 0, 4468, 0, 0, 0, 4456, 5206, 10720, 0, 42523, 0, + 0, 0, 0, 65550, 260, 4816, 74163, 10687, 0, 4821, 4466, 0, 195043, 4818, + 0, 41403, 119977, 0, 0, 41406, 43273, 74160, 119983, 73939, 119985, + 119984, 119979, 41404, 1165, 119980, 4451, 13087, 0, 11284, 119987, + 73855, 65155, 43014, 5439, 9363, 0, 3375, 0, 5900, 0, 7889, 2722, 42262, + 0, 0, 0, 0, 0, 0, 0, 11401, 0, 0, 0, 0, 0, 0, 0, 65438, 0, 7280, 0, 0, 0, + 4868, 119967, 119966, 0, 0, 0, 43161, 0, 119964, 0, 5182, 0, 120542, 0, + 0, 4226, 120798, 12135, 5732, 4464, 0, 0, 977, 4458, 0, 0, 64770, 0, 0, + 344, 0, 194790, 1395, 64279, 0, 0, 0, 786, 0, 43174, 64340, 0, 0, 0, + 43026, 7612, 10132, 64413, 0, 0, 0, 0, 0, 0, 120498, 0, 120734, 0, + 119160, 10204, 0, 0, 0, 0, 1399, 0, 0, 0, 8852, 0, 241, 0, 4907, 0, 0, + 7932, 9727, 0, 74255, 8748, 0, 0, 0, 0, 42780, 0, 0, 0, 4217, 0, 8650, 0, + 0, 0, 0, 118872, 43099, 3965, 0, 0, 0, 13300, 0, 0, 0, 66588, 118991, 0, + 0, 73815, 4420, 0, 6410, 7760, 0, 0, 0, 0, 0, 7294, 0, 0, 0, 9066, 0, + 11993, 43188, 2626, 7762, 0, 0, 0, 0, 42825, 41854, 5304, 0, 0, 6919, + 8619, 119655, 10038, 66454, 9592, 42851, 126993, 1542, 0, 0, 0, 0, 0, + 74311, 0, 0, 10181, 0, 0, 0, 7779, 0, 10195, 9479, 6029, 0, 0, 9689, 0, + 0, 8993, 66358, 0, 42378, 3368, 606, 0, 7697, 0, 0, 2030, 0, 6027, 8370, + 4322, 0, 65207, 0, 0, 0, 0, 0, 2735, 42831, 0, 0, 74866, 8881, 119047, 0, + 0, 73946, 0, 0, 0, 68140, 0, 9576, 0, 3347, 4160, 5154, 0, 3794, 66564, + 66514, 0, 7709, 41112, 0, 66560, 42041, 4572, 0, 66561, 0, 41113, 0, + 1615, 5855, 809, 0, 0, 0, 0, 5799, 0, 0, 0, 7260, 0, 43031, 64425, 65128, + 127061, 64386, 65257, 0, 0, 120607, 9347, 0, 6532, 0, 0, 0, 0, 65828, 0, + 283, 917917, 0, 532, 0, 0, 0, 120609, 0, 3370, 0, 11361, 5443, 0, 8153, + 73767, 0, 10741, 0, 0, 0, 0, 65495, 64706, 0, 0, 0, 0, 9466, 119600, + 9824, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 43264, 0, 0, 0, 0, 0, 0, 0, + 68161, 64550, 5186, 12890, 0, 0, 12108, 0, 65124, 0, 66043, 0, 0, 43107, + 0, 0, 42562, 0, 0, 0, 0, 11485, 6103, 127123, 0, 11718, 0, 12889, 0, 0, + 0, 0, 0, 0, 0, 1630, 0, 65483, 0, 12565, 0, 65476, 0, 0, 119554, 9283, + 7700, 917537, 9690, 65499, 0, 64593, 512, 3376, 118862, 0, 0, 0, 632, + 12940, 0, 42529, 0, 0, 5957, 0, 8926, 0, 0, 0, 10745, 10174, 0, 64581, + 5386, 120686, 11713, 10633, 120531, 5056, 0, 0, 0, 120773, 0, 9812, 0, + 4460, 0, 0, 0, 0, 0, 0, 0, 64278, 0, 0, 0, 0, 64389, 2953, 73879, 1801, + 12835, 917627, 0, 73823, 0, 66375, 0, 702, 42579, 0, 0, 13074, 0, 0, 0, + 0, 12106, 0, 74207, 1755, 10482, 12863, 0, 1163, 2951, 9522, 74079, + 195076, 120674, 0, 3384, 120728, 10702, 830, 0, 0, 0, 8451, 0, 0, 0, + 120762, 0, 0, 0, 0, 2908, 0, 0, 64902, 4243, 0, 12239, 0, 0, 4441, 0, 0, + 73940, 64352, 0, 0, 411, 0, 0, 0, 0, 0, 41890, 0, 2730, 41604, 0, 5428, + 194743, 3364, 42265, 0, 0, 118816, 0, 9684, 216, 0, 1401, 0, 0, 0, 0, 0, + 9158, 0, 120664, 5768, 0, 0, 0, 484, 0, 0, 0, 65895, 0, 0, 3338, 73935, + 572, 7041, 2736, 0, 0, 0, 2794, 8807, 64491, 0, 5438, 5222, 5381, 43114, + 0, 5193, 5125, 5456, 5509, 0, 194747, 9534, 0, 0, 0, 3430, 0, 0, 0, 0, + 981, 0, 4330, 120673, 120536, 1824, 10908, 0, 7034, 41683, 64617, 0, + 73754, 3957, 0, 64547, 0, 674, 63991, 0, 2946, 5354, 5251, 5328, 5307, + 3759, 11411, 8364, 5123, 0, 5281, 5469, 5121, 0, 0, 0, 5130, 0, 0, 0, 0, + 120726, 1221, 2733, 11746, 0, 5216, 0, 0, 0, 0, 3468, 0, 9230, 5939, 0, + 0, 0, 120677, 120729, 7278, 10321, 10289, 64613, 10385, 41706, 0, 0, 0, + 0, 11739, 0, 41981, 0, 5938, 0, 0, 12448, 7576, 10401, 10337, 73852, 0, + 13057, 0, 126976, 0, 10009, 0, 64304, 0, 12165, 0, 0, 9885, 0, 8077, 0, + 0, 0, 0, 0, 0, 0, 4220, 10725, 10433, 0, 0, 4987, 64519, 0, 0, 0, 0, 0, + 10970, 11733, 0, 120792, 0, 19944, 0, 9009, 8551, 0, 11468, 74003, 7575, + 0, 2724, 0, 0, 12313, 119949, 515, 119947, 42791, 63987, 119942, 119943, + 119940, 119941, 119938, 9775, 4046, 4589, 4521, 0, 9141, 0, 0, 2741, + 64399, 6197, 1370, 0, 0, 0, 0, 0, 0, 6184, 8606, 3303, 41372, 11786, + 9473, 66203, 66177, 0, 11593, 43007, 4478, 66178, 0, 0, 2744, 0, 4477, 0, + 814, 42066, 66183, 66204, 66194, 119961, 66198, 41880, 66188, 66197, + 119954, 11955, 66190, 66191, 41111, 66189, 73788, 7788, 4847, 0, 0, 0, 0, + 0, 1581, 6535, 0, 12954, 430, 194934, 194939, 0, 194938, 5278, 4945, + 42883, 4950, 0, 120547, 0, 7269, 0, 5964, 12908, 0, 0, 74764, 74477, + 119146, 194936, 4949, 0, 443, 0, 4944, 5467, 119603, 0, 65137, 6044, + 65392, 0, 4213, 0, 41303, 0, 194931, 0, 41306, 73984, 2698, 0, 0, 12072, + 3193, 0, 41304, 824, 0, 12091, 119814, 119813, 119816, 4673, 64804, 4678, + 119820, 119819, 65059, 0, 119808, 0, 5481, 3490, 1199, 119811, 8356, + 119829, 119832, 4677, 12688, 3102, 0, 4672, 119822, 119821, 5531, 119823, + 42575, 119825, 119828, 4674, 4548, 0, 0, 0, 119946, 8025, 0, 127024, + 1855, 0, 119945, 0, 120554, 0, 0, 0, 0, 2745, 11797, 0, 0, 119939, 4654, + 0, 0, 194959, 73993, 10525, 4649, 65209, 0, 0, 4648, 43080, 0, 0, 0, + 6246, 64950, 7828, 4650, 0, 0, 119086, 4653, 7822, 0, 0, 43187, 8669, 0, + 0, 65093, 0, 0, 2716, 0, 0, 0, 0, 0, 0, 11060, 8547, 2711, 42165, 0, + 119228, 7992, 0, 0, 4662, 0, 0, 9149, 9146, 599, 4657, 194963, 120754, + 194962, 4656, 10130, 0, 7811, 40994, 194965, 6414, 5967, 4658, 3725, + 5713, 5814, 4661, 42434, 0, 0, 0, 64904, 9026, 10833, 0, 7547, 4867, 0, + 10008, 10222, 3054, 194956, 9744, 0, 7605, 4622, 119656, 0, 0, 0, 0, 0, + 9045, 0, 4225, 19926, 0, 12880, 65307, 4617, 0, 0, 0, 4616, 10518, 10423, + 10359, 0, 5958, 0, 0, 4215, 9789, 917941, 4321, 4621, 0, 41313, 522, + 5368, 0, 65803, 0, 5366, 12201, 5372, 0, 0, 0, 7720, 0, 2696, 0, 0, 4638, + 0, 1790, 0, 5965, 64363, 66569, 0, 194968, 5376, 1835, 5335, 194966, 0, + 4633, 0, 68119, 1180, 4632, 0, 5387, 5333, 0, 0, 42094, 5331, 4634, + 11928, 0, 5338, 4637, 0, 5971, 42414, 0, 1268, 65097, 42361, 0, 0, 73853, + 1427, 0, 0, 5970, 3431, 0, 10358, 10422, 4758, 0, 1608, 2738, 0, 10455, + 4753, 74026, 11344, 4222, 6240, 5231, 74384, 0, 0, 6248, 0, 0, 0, 42318, + 0, 5229, 4757, 0, 0, 2728, 4752, 64563, 65235, 5234, 0, 0, 0, 10713, 0, + 0, 2622, 7460, 0, 0, 0, 8954, 74760, 65189, 2632, 0, 10108, 1011, 5574, + 1853, 2709, 65139, 5577, 0, 0, 118871, 0, 8965, 7635, 42177, 5316, 0, + 5314, 6451, 5572, 0, 5312, 0, 5525, 5330, 5319, 0, 0, 194907, 119016, 0, + 0, 0, 0, 0, 195009, 0, 74022, 0, 64609, 0, 0, 0, 5721, 0, 10398, 8632, + 66465, 11267, 73961, 0, 5720, 0, 1692, 4219, 4610, 8696, 4305, 0, 4609, + 0, 4614, 541, 0, 5287, 5309, 5285, 0, 5961, 4647, 56, 4216, 10577, 41381, + 601, 4613, 0, 0, 0, 4608, 64260, 41124, 5190, 67628, 0, 68145, 7086, 0, + 119243, 67620, 0, 2734, 11074, 0, 67627, 43593, 0, 67625, 5960, 0, 8992, + 65293, 0, 1782, 67622, 68114, 119950, 0, 68180, 5501, 119952, 42508, + 7442, 120749, 359, 41253, 119957, 6239, 119956, 41256, 0, 68134, 0, + 74209, 0, 9346, 118904, 41254, 0, 43291, 3767, 5737, 0, 4865, 0, 5740, 0, + 5736, 4368, 0, 7193, 68137, 0, 5739, 41024, 4866, 0, 73904, 0, 4869, + 120563, 0, 4223, 0, 6650, 0, 0, 0, 0, 4870, 0, 74805, 66566, 0, 120758, + 0, 0, 0, 10122, 4864, 66568, 4144, 7937, 0, 6245, 0, 2732, 66459, 745, 0, + 195097, 0, 4777, 7821, 0, 0, 42775, 0, 194954, 0, 3097, 0, 5966, 0, 4778, + 0, 10863, 0, 4781, 0, 64407, 0, 0, 8577, 0, 118964, 43285, 10216, 4782, + 0, 0, 120757, 917924, 12325, 0, 8717, 0, 0, 4776, 0, 11492, 8700, 0, + 13176, 0, 10426, 0, 917599, 10362, 0, 1715, 4849, 8242, 9561, 73922, + 43278, 42635, 0, 0, 5963, 917926, 0, 0, 4850, 0, 1607, 466, 4853, 118995, + 4854, 0, 5164, 0, 1350, 5124, 64420, 1993, 5362, 8471, 2708, 0, 12445, + 3785, 234, 3199, 0, 41268, 4848, 2530, 0, 4798, 1964, 0, 73762, 10458, 0, + 8576, 0, 0, 2704, 4794, 0, 0, 8322, 4797, 74074, 0, 2694, 4792, 0, 2439, + 65104, 0, 0, 303, 0, 0, 0, 2437, 0, 4221, 4844, 118869, 0, 0, 0, 0, 0, + 43292, 0, 2441, 10739, 65090, 0, 119327, 0, 2451, 2714, 119326, 0, 0, + 4937, 74541, 753, 5849, 10597, 43089, 11722, 9248, 0, 42879, 11725, 0, 0, + 2726, 3107, 73958, 4941, 64937, 917538, 9140, 1408, 5261, 41412, 0, 181, + 0, 4942, 9539, 4938, 0, 65201, 5259, 9369, 64185, 4142, 5257, 0, 0, 4964, + 5264, 64178, 64177, 12979, 0, 64182, 64181, 64180, 64179, 9482, 4873, + 41231, 1822, 42526, 0, 12758, 3865, 0, 0, 10500, 0, 0, 0, 0, 9830, 0, + 389, 10893, 7521, 0, 4872, 5463, 0, 3125, 9567, 0, 4878, 5459, 4874, 0, + 9557, 5465, 0, 0, 11494, 0, 9563, 10865, 74570, 43279, 64186, 0, 0, + 64191, 64190, 8898, 64188, 0, 41030, 0, 0, 917835, 0, 917834, 0, 917837, + 41031, 0, 11960, 0, 3082, 0, 0, 0, 10573, 0, 7079, 5856, 127043, 5163, + 127042, 0, 1817, 66724, 0, 0, 10564, 7763, 13077, 41813, 4400, 41745, + 64207, 10275, 8925, 10371, 10307, 41814, 4248, 0, 0, 4541, 6299, 64204, + 64203, 64201, 64200, 64199, 64198, 0, 42156, 0, 0, 64193, 64192, 0, 0, + 64197, 64196, 64195, 64194, 13282, 64175, 64174, 64173, 0, 846, 0, 0, 0, + 0, 0, 0, 2543, 12163, 3108, 9745, 64167, 64166, 64165, 64164, 41743, 0, + 64169, 64168, 64949, 10972, 10251, 10247, 42768, 715, 64161, 43299, 9453, + 5348, 10943, 120378, 0, 11352, 550, 9910, 0, 0, 66579, 11551, 0, 0, 9504, + 7187, 0, 10373, 0, 120791, 10261, 10253, 6404, 10277, 0, 11984, 1552, + 65222, 6998, 0, 0, 3128, 4789, 5067, 5066, 118849, 4784, 0, 8827, 1146, + 5065, 0, 0, 68136, 0, 0, 5064, 2431, 0, 9450, 1809, 0, 0, 0, 5062, 1264, + 64817, 13254, 11697, 0, 9785, 64716, 0, 3933, 74559, 4740, 7954, 0, 0, + 42609, 0, 74175, 0, 127016, 0, 0, 42130, 0, 5151, 917831, 917823, 0, 0, + 0, 7620, 3800, 65122, 0, 0, 8355, 7854, 0, 954, 64927, 4185, 41045, 0, + 41438, 41439, 73978, 10711, 4593, 0, 120584, 0, 64774, 13309, 10532, + 66727, 0, 0, 0, 64759, 0, 5166, 9888, 0, 5148, 42834, 0, 120634, 118946, + 64140, 0, 64131, 3119, 917814, 0, 3060, 64135, 9986, 0, 0, 636, 11698, 0, + 0, 9916, 11701, 7836, 0, 64137, 8320, 118969, 8863, 0, 119960, 1477, + 43289, 0, 74358, 8618, 0, 9908, 0, 0, 0, 3937, 12312, 0, 0, 0, 64781, + 912, 10498, 4536, 119963, 74532, 0, 6244, 0, 194580, 3935, 120665, 0, 0, + 11950, 5392, 42248, 65129, 0, 5397, 0, 12046, 12599, 0, 0, 5395, 0, 5393, + 354, 0, 119948, 0, 0, 0, 42039, 0, 0, 64142, 626, 0, 5895, 0, 0, 5780, 0, + 0, 0, 0, 0, 43297, 0, 4311, 4644, 8818, 0, 0, 0, 73818, 3918, 66452, + 3797, 1644, 119944, 9658, 4140, 11385, 65947, 6455, 9030, 813, 0, 68131, + 4146, 0, 5360, 2466, 0, 0, 0, 6249, 42117, 0, 0, 0, 0, 74046, 120583, + 4911, 988, 917809, 0, 0, 0, 7054, 64147, 0, 64920, 917812, 917803, + 118933, 120349, 0, 0, 11981, 12202, 0, 11032, 120725, 6093, 11608, 975, + 0, 65843, 170, 0, 0, 4169, 0, 41859, 6058, 120401, 0, 120657, 0, 0, 0, + 9818, 10178, 10324, 42106, 5898, 74540, 4738, 41856, 7062, 917865, 4737, + 11779, 4742, 120564, 917866, 73736, 0, 9825, 6448, 12700, 127008, 4831, + 0, 0, 0, 5300, 4741, 42108, 0, 64159, 4736, 64148, 0, 849, 0, 0, 43288, + 0, 66620, 0, 0, 65549, 9496, 64598, 0, 0, 7876, 68132, 917872, 3928, + 917870, 65283, 10706, 7198, 0, 4842, 12053, 0, 0, 4841, 0, 4171, 12008, + 6251, 3923, 1490, 0, 119591, 0, 40972, 5245, 0, 10114, 42001, 41888, + 4845, 8332, 40974, 0, 4840, 9077, 917851, 1747, 917849, 4825, 0, 917852, + 0, 0, 0, 0, 0, 0, 0, 9850, 118937, 367, 1472, 917859, 6687, 1274, 0, + 5905, 12339, 8919, 73953, 10907, 65261, 11023, 119559, 4830, 9134, 0, + 64126, 43011, 0, 0, 64101, 0, 0, 4824, 10614, 120390, 0, 1888, 1960, + 7861, 917856, 0, 41836, 43012, 6052, 6064, 54, 43009, 12214, 0, 6211, 0, + 358, 41997, 41833, 11442, 10758, 65774, 0, 120384, 64115, 120385, 0, 0, + 0, 119053, 0, 12765, 64121, 126998, 12962, 0, 0, 4017, 12827, 5241, + 120392, 0, 41118, 3924, 0, 11366, 917843, 0, 0, 917846, 41116, 917844, + 917845, 0, 11363, 12057, 11917, 1567, 74000, 4721, 0, 66202, 8957, 4139, + 0, 0, 0, 0, 0, 12740, 0, 4722, 12761, 0, 12759, 4725, 0, 4726, 0, 0, 0, + 917904, 917905, 0, 12755, 12762, 4015, 0, 8052, 476, 0, 0, 0, 64212, + 41020, 1382, 64209, 64216, 64215, 64214, 1656, 41831, 0, 0, 41843, 8720, + 3908, 1452, 13111, 0, 64067, 0, 8552, 64113, 41845, 3849, 0, 66232, 9778, + 120066, 5891, 7064, 55, 74437, 917911, 0, 0, 7935, 67586, 0, 1114, 0, + 67585, 120052, 120053, 120050, 120051, 3938, 120057, 65417, 64717, + 120060, 120061, 65415, 120059, 6292, 65303, 7955, 6452, 4713, 917887, + 66249, 917885, 917890, 917891, 65152, 719, 120044, 120045, 120042, 41944, + 4532, 65412, 120046, 10868, 4717, 2349, 5902, 66450, 4712, 917902, + 917899, 917900, 0, 8155, 4718, 3942, 4714, 9625, 0, 0, 0, 12006, 0, 0, 0, + 0, 0, 65414, 6454, 1229, 0, 66437, 66025, 917894, 0, 42500, 120508, 4809, + 9623, 917874, 917879, 917880, 917877, 917878, 65405, 68159, 917881, + 917882, 5365, 4545, 8901, 917566, 119555, 4813, 0, 0, 5925, 4808, 64330, + 0, 65475, 0, 0, 4814, 0, 4810, 0, 0, 64928, 10543, 0, 3522, 0, 414, + 65404, 0, 0, 6456, 73820, 0, 11905, 917883, 0, 0, 0, 74495, 0, 0, 0, + 118820, 9751, 65407, 0, 11770, 3919, 0, 0, 65061, 0, 0, 0, 12235, 0, 0, + 0, 66576, 0, 64080, 0, 64090, 0, 0, 10162, 10310, 0, 8454, 0, 42038, 387, + 41363, 12737, 0, 4780, 0, 0, 64310, 64621, 0, 0, 0, 0, 0, 0, 8896, 0, + 375, 6976, 0, 119005, 0, 0, 0, 119202, 119203, 12526, 43120, 2315, 0, + 1938, 119197, 0, 4529, 119200, 119201, 119198, 119199, 0, 0, 0, 13150, + 64492, 0, 0, 0, 12902, 0, 42891, 66327, 74298, 0, 10799, 0, 2587, 66372, + 0, 4193, 120334, 4241, 0, 7998, 0, 0, 0, 0, 2316, 118821, 0, 0, 0, 64297, + 74799, 0, 74140, 0, 5373, 0, 0, 3762, 10015, 0, 119232, 0, 41590, 0, 0, + 3780, 7485, 5779, 0, 42037, 0, 3906, 12349, 0, 8326, 0, 65498, 3763, + 6983, 5618, 0, 3779, 0, 43613, 0, 0, 0, 0, 0, 0, 280, 74558, 0, 68138, + 13072, 1894, 0, 0, 65478, 43310, 7231, 0, 11773, 0, 0, 0, 0, 2551, 0, + 6453, 10200, 6235, 0, 0, 0, 0, 4470, 0, 0, 7780, 5369, 118958, 5249, 0, + 5367, 8756, 0, 0, 5377, 120585, 68143, 1688, 0, 0, 0, 0, 0, 0, 0, 41697, + 41319, 1300, 10650, 41692, 64505, 4668, 0, 119624, 1465, 10850, 3943, 0, + 41205, 0, 0, 0, 0, 5352, 0, 0, 8839, 41314, 0, 7785, 41204, 0, 41209, 0, + 0, 43607, 0, 0, 5420, 3897, 0, 0, 74417, 4018, 0, 68127, 0, 0, 0, 0, 0, + 2561, 0, 3542, 41915, 12076, 7951, 68152, 118857, 5303, 6276, 1706, 0, 0, + 74116, 0, 65150, 41819, 0, 73951, 10847, 41822, 9985, 860, 0, 10506, 0, + 0, 10753, 10830, 0, 615, 64490, 7574, 0, 0, 0, 12909, 43016, 64559, + 127028, 0, 0, 0, 2020, 0, 4022, 0, 0, 0, 0, 41691, 0, 0, 0, 0, 64622, + 9070, 0, 0, 3911, 42829, 43122, 1033, 0, 0, 7000, 3904, 0, 0, 0, 0, + 127012, 13123, 10846, 3450, 0, 0, 118807, 0, 42778, 10000, 41088, 449, 0, + 3777, 0, 0, 9636, 0, 10738, 0, 9367, 593, 41085, 3999, 65226, 41713, + 12764, 0, 64409, 3596, 0, 0, 9763, 120280, 120283, 12347, 124, 12981, + 41127, 120278, 0, 0, 0, 0, 10820, 0, 0, 0, 1769, 41715, 2463, 0, 0, + 12770, 0, 1538, 0, 43124, 0, 195058, 7795, 120300, 0, 4828, 1258, 0, + 2006, 0, 0, 9498, 127032, 127033, 120289, 120288, 3939, 120290, 8846, + 8943, 120287, 120286, 2650, 4491, 1961, 42602, 11525, 120292, 1959, + 120294, 0, 11774, 41016, 0, 0, 0, 1511, 9324, 0, 10519, 66331, 3454, + 19930, 0, 41019, 0, 0, 65292, 0, 12862, 0, 0, 42143, 41828, 0, 65531, 0, + 118879, 0, 0, 0, 41826, 8865, 6402, 0, 13279, 7917, 120340, 0, 7733, 0, + 4998, 0, 0, 41950, 0, 4268, 0, 0, 0, 4013, 0, 10881, 0, 0, 0, 74788, + 2014, 0, 0, 9765, 0, 0, 0, 195059, 0, 65281, 0, 10949, 0, 0, 0, 2015, 0, + 0, 0, 66318, 74824, 0, 42517, 0, 0, 0, 0, 8094, 64468, 65909, 6474, 794, + 0, 12656, 0, 119353, 0, 1665, 0, 4833, 0, 119351, 0, 0, 189, 12611, 0, 0, + 2859, 4838, 0, 4834, 0, 0, 0, 4837, 0, 770, 0, 811, 0, 41042, 0, 41318, + 64427, 0, 0, 0, 3895, 0, 74341, 3976, 0, 42859, 10193, 3116, 7747, 0, 0, + 0, 0, 0, 0, 0, 41877, 0, 2871, 64614, 0, 999, 0, 68177, 41876, 2663, + 2017, 0, 0, 11040, 10150, 0, 64308, 1522, 597, 4775, 12555, 12571, 12550, + 12583, 12560, 2019, 12556, 12584, 3092, 0, 12562, 4783, 12566, 12569, + 12554, 0, 10812, 0, 0, 0, 3078, 1402, 0, 0, 0, 0, 0, 394, 3088, 0, 0, 0, + 3991, 64391, 0, 0, 424, 66328, 1999, 0, 73914, 0, 0, 0, 0, 0, 8246, 0, 0, + 0, 41840, 0, 2377, 1298, 64011, 12572, 11318, 12557, 12559, 12570, 8488, + 1003, 2373, 9446, 9447, 9448, 48, 0, 9480, 481, 0, 9438, 9439, 9440, + 9441, 8465, 9443, 9444, 9445, 9430, 9431, 9432, 9433, 9434, 9435, 3984, + 9437, 0, 0, 9424, 9425, 9426, 9427, 9428, 9429, 64758, 0, 9655, 0, 2004, + 9096, 9782, 0, 9172, 0, 19965, 0, 5955, 120485, 1108, 0, 74773, 0, 0, + 64782, 3926, 0, 65210, 8798, 0, 0, 1392, 0, 0, 917557, 10606, 8065, + 118805, 10353, 10417, 0, 0, 64524, 0, 4019, 0, 0, 43280, 8219, 0, 1812, + 0, 0, 0, 0, 42410, 74448, 119132, 6054, 10697, 3169, 42297, 42322, 10642, + 3909, 74461, 0, 0, 0, 0, 0, 0, 1049, 0, 65707, 11943, 41806, 0, 42336, + 3921, 0, 11775, 64760, 11766, 1038, 42303, 9823, 0, 0, 4008, 64004, 8773, + 10733, 36, 0, 5153, 41805, 0, 73735, 763, 41808, 64910, 0, 2009, 0, 0, 0, + 9640, 119951, 0, 120695, 8621, 0, 12852, 3031, 0, 64361, 0, 182, 194718, + 0, 0, 0, 0, 9058, 366, 0, 9892, 5969, 11754, 10848, 4570, 65301, 0, 4255, + 0, 10102, 41189, 4003, 41026, 68109, 13293, 41192, 0, 0, 42251, 0, 42534, + 0, 11287, 6128, 0, 11034, 10923, 64423, 0, 65506, 0, 0, 74083, 0, 66582, + 0, 0, 119955, 0, 9817, 0, 0, 0, 12117, 66586, 4183, 10540, 66250, 127044, + 127045, 0, 0, 0, 12897, 3792, 2011, 0, 6065, 43160, 0, 194715, 8692, + 41186, 41816, 41023, 41818, 41187, 11659, 7922, 12614, 2005, 8523, + 120144, 0, 7513, 1863, 4710, 0, 5956, 7621, 120274, 127116, 4705, 716, 0, + 0, 4704, 120040, 120270, 42241, 161, 0, 74546, 66214, 4706, 0, 0, 120037, + 4709, 10680, 0, 43293, 0, 0, 119164, 0, 0, 0, 1700, 119223, 0, 0, 0, + 4004, 0, 10968, 43296, 0, 8506, 0, 0, 126996, 1005, 937, 120030, 4734, + 2870, 0, 120032, 0, 7463, 4729, 0, 235, 1384, 4728, 0, 120420, 120644, 0, + 8109, 43105, 0, 4730, 447, 13186, 1513, 4733, 120415, 0, 0, 42527, 12911, + 0, 1383, 8565, 2469, 120024, 119089, 6156, 68117, 0, 7993, 4288, 120416, + 2674, 13238, 11922, 0, 120330, 3510, 13234, 0, 120407, 5605, 42095, + 11364, 0, 1380, 65617, 120320, 120261, 13196, 13197, 120309, 120682, + 9495, 119346, 0, 5959, 0, 73976, 120305, 0, 6941, 119349, 13205, 13211, + 5801, 12769, 65905, 120316, 1283, 120302, 4779, 0, 3719, 4006, 0, 19957, + 0, 2021, 119332, 0, 0, 43028, 65493, 41838, 3875, 5962, 64341, 119339, + 9814, 43571, 5827, 3314, 7787, 0, 65494, 68153, 0, 0, 120636, 64531, 0, + 0, 0, 0, 0, 65467, 5771, 41298, 0, 9742, 521, 0, 10800, 0, 8404, 194625, + 483, 7096, 7089, 66323, 928, 0, 0, 0, 10599, 11586, 3989, 10971, 0, + 65782, 9841, 8843, 12145, 0, 10074, 120816, 0, 3769, 0, 0, 0, 0, 9573, 0, + 65290, 8849, 0, 65855, 65112, 1796, 0, 0, 0, 8164, 41301, 3502, 0, 0, + 10621, 73838, 0, 5825, 13007, 68165, 0, 0, 12661, 7608, 10354, 10418, + 42411, 2022, 0, 1409, 12195, 4001, 3112, 10824, 120639, 1390, 0, 0, 421, + 43536, 5846, 120120, 4130, 0, 7595, 42588, 7600, 0, 66035, 0, 0, 65851, + 42607, 0, 0, 3168, 0, 42134, 0, 2370, 2846, 0, 0, 0, 120132, 0, 1836, 0, + 0, 119137, 3740, 0, 6290, 65374, 120451, 65923, 3944, 66628, 120434, 0, + 6135, 3118, 74265, 119093, 120446, 0, 0, 8127, 8975, 64739, 7943, 0, 0, + 10618, 2584, 0, 0, 0, 9998, 0, 0, 0, 0, 0, 6204, 0, 0, 8279, 8776, 64954, + 4975, 74809, 0, 4267, 0, 0, 0, 0, 195046, 65700, 66562, 0, 64645, 0, 0, + 0, 12586, 0, 9242, 0, 0, 4523, 5842, 10495, 3122, 0, 7793, 0, 9328, 0, 0, + 12604, 0, 6615, 0, 0, 3986, 0, 0, 8912, 64555, 0, 0, 0, 9541, 0, 0, + 11275, 8540, 11498, 0, 0, 41040, 2459, 0, 13060, 41041, 74413, 0, 0, 0, + 0, 10450, 12551, 41043, 7020, 120353, 3765, 0, 0, 1606, 120348, 120351, + 3093, 0, 0, 0, 120649, 0, 0, 4312, 74091, 120337, 120336, 11923, 4023, + 120333, 5763, 120335, 4827, 10894, 12810, 64406, 118785, 4455, 74321, + 433, 119620, 66660, 2499, 0, 0, 0, 11973, 13089, 4293, 120329, 120328, + 42758, 12196, 42837, 0, 119319, 0, 0, 5817, 0, 0, 3120, 9797, 0, 0, 0, + 10389, 0, 0, 4895, 65358, 0, 4359, 585, 0, 3509, 0, 486, 4290, 0, 0, 0, + 0, 7004, 0, 65880, 0, 119048, 2380, 11380, 0, 0, 2376, 0, 0, 0, 5197, + 127046, 127047, 127048, 2366, 127050, 127051, 127052, 0, 0, 0, 0, 0, 0, + 0, 0, 74188, 0, 0, 0, 0, 0, 0, 0, 120049, 0, 1847, 0, 10339, 0, 42384, 0, + 4227, 74158, 0, 0, 43032, 0, 42365, 0, 12671, 11384, 0, 0, 0, 64797, 0, + 5820, 0, 0, 120065, 0, 120064, 120650, 42137, 9893, 2754, 12664, 120063, + 0, 13192, 0, 41799, 65530, 1711, 12984, 43039, 3114, 6255, 0, 118938, 0, + 10853, 926, 0, 74184, 0, 120055, 0, 43175, 0, 43037, 41798, 41035, 11583, + 0, 41801, 119088, 0, 520, 4200, 12699, 8331, 0, 3091, 41034, 0, 0, 8360, + 0, 0, 321, 4229, 64543, 0, 65563, 0, 0, 2861, 0, 10095, 0, 0, 0, 1861, 0, + 0, 0, 0, 43041, 0, 0, 0, 3859, 12181, 41660, 8209, 0, 120678, 12973, 0, + 74757, 0, 41658, 0, 0, 5760, 0, 743, 4414, 120766, 0, 42632, 917973, + 65161, 73896, 0, 0, 1405, 119063, 43220, 43341, 0, 19919, 0, 64532, + 65367, 0, 0, 0, 3513, 0, 118883, 43342, 119064, 65529, 65364, 0, 0, 6485, + 1397, 0, 65365, 0, 0, 0, 0, 0, 7471, 12079, 0, 12682, 43287, 0, 0, 0, 0, + 0, 0, 1099, 10490, 0, 10501, 65181, 74463, 0, 464, 41624, 119594, 0, 0, + 1346, 0, 917631, 64724, 64897, 423, 1818, 65144, 0, 8272, 0, 0, 4218, + 3087, 64960, 0, 43564, 0, 0, 9584, 10465, 0, 74359, 12626, 9106, 0, + 42642, 0, 64750, 9390, 0, 41797, 0, 0, 265, 41795, 64666, 0, 43530, 2752, + 0, 0, 0, 59, 0, 0, 0, 0, 0, 41810, 0, 7010, 0, 41809, 41495, 119364, 0, + 42252, 0, 8009, 3305, 43033, 511, 119320, 66255, 13127, 120067, 0, 0, 0, + 917977, 65915, 1400, 41812, 10685, 194870, 41211, 10387, 4453, 43276, + 917783, 13159, 0, 6481, 41213, 0, 0, 0, 0, 41983, 74198, 6617, 9116, 0, + 0, 462, 68110, 10493, 0, 8129, 0, 0, 74471, 6644, 11658, 0, 0, 3452, + 11906, 9581, 1385, 3098, 0, 119013, 43340, 0, 41033, 6493, 42626, 0, 0, + 11426, 0, 1681, 118789, 1204, 3755, 64661, 7235, 10170, 3966, 8911, 0, + 41841, 43338, 0, 0, 5726, 64915, 42175, 0, 0, 41497, 65044, 0, 2851, + 43017, 0, 0, 4373, 0, 0, 9587, 1789, 6671, 0, 3100, 0, 65360, 0, 0, 0, + 64922, 0, 8190, 12083, 0, 0, 6506, 64312, 74374, 2368, 0, 4419, 0, 0, + 3439, 1825, 1192, 120106, 8891, 3080, 120228, 2347, 5430, 0, 8990, 2848, + 0, 0, 0, 249, 0, 0, 0, 120658, 0, 0, 8883, 917802, 728, 68178, 995, 0, 0, + 64826, 0, 917798, 0, 0, 19945, 8091, 558, 0, 12273, 0, 0, 12112, 0, 0, 0, + 74419, 12335, 120104, 917795, 3443, 3129, 0, 12913, 65445, 0, 64891, 0, + 7725, 0, 0, 0, 8624, 0, 12446, 43295, 0, 41894, 0, 6277, 41672, 41893, + 10010, 0, 3540, 0, 835, 0, 0, 119868, 74408, 0, 73959, 5426, 4258, 0, 0, + 5424, 0, 8283, 0, 5434, 0, 0, 19917, 11408, 0, 11947, 0, 1404, 3095, + 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, 3672, 119864, 1498, 0, 0, 0, + 431, 0, 0, 0, 0, 68167, 0, 13096, 0, 0, 0, 9516, 0, 5268, 0, 0, 0, 4450, + 120723, 11547, 64358, 0, 356, 3477, 227, 10488, 0, 382, 11418, 0, 0, 0, + 0, 0, 0, 6484, 2541, 66039, 0, 0, 0, 3549, 0, 9110, 119665, 2743, 0, + 43290, 194812, 9097, 0, 43015, 8782, 0, 776, 2524, 0, 8573, 0, 0, 0, 0, + 120572, 64944, 8952, 3856, 118818, 0, 5872, 6495, 0, 0, 0, 0, 0, 120733, + 12849, 3953, 1897, 0, 0, 11994, 4339, 74556, 0, 67843, 0, 0, 0, 74251, 0, + 5228, 0, 7868, 43184, 0, 0, 73986, 0, 0, 43022, 0, 1162, 0, 2671, 0, 0, + 0, 0, 118865, 4553, 73811, 0, 195005, 0, 0, 19921, 74331, 11424, 0, 4567, + 41891, 0, 0, 119056, 4820, 65239, 194662, 0, 0, 43042, 119212, 1377, 0, + 4897, 42821, 9250, 0, 4438, 64385, 0, 1753, 11331, 6147, 0, 43282, 8833, + 0, 0, 6504, 194667, 126979, 10719, 0, 1898, 1413, 42443, 0, 802, 12141, + 0, 0, 6648, 10671, 2528, 0, 64789, 9169, 838, 127092, 120697, 844, 5014, + 0, 256, 0, 9990, 0, 43301, 0, 7542, 65464, 9726, 0, 6489, 10048, 74326, + 0, 66573, 0, 0, 0, 11761, 194655, 0, 41094, 0, 0, 0, 0, 0, 6196, 6945, + 194628, 194890, 194631, 120491, 11816, 194943, 5733, 0, 0, 0, 41098, 0, + 41093, 0, 66626, 588, 9760, 0, 194717, 1238, 200, 0, 1660, 73916, 0, + 118905, 74362, 0, 0, 194651, 0, 0, 3394, 0, 120668, 0, 0, 0, 66219, 0, + 43284, 0, 7817, 1841, 11055, 120533, 194979, 194982, 1669, 10776, 194981, + 7701, 194980, 0, 194995, 1732, 4030, 0, 3963, 66611, 0, 41768, 6491, 0, + 65324, 914, 65323, 8071, 3538, 0, 0, 0, 0, 74367, 7614, 0, 11819, 0, + 12009, 12399, 0, 67852, 65537, 0, 10841, 0, 5301, 0, 0, 5734, 8960, 0, 0, + 65317, 0, 0, 0, 0, 12304, 0, 0, 65315, 0, 0, 0, 0, 0, 119621, 0, 74536, + 12447, 64486, 0, 0, 0, 0, 0, 0, 42767, 10915, 0, 12007, 0, 120520, 0, + 194878, 0, 0, 0, 8629, 0, 43168, 41872, 0, 4496, 0, 0, 0, 0, 0, 0, 0, + 64730, 0, 66714, 0, 0, 0, 65596, 0, 11416, 4280, 119018, 8765, 12784, + 7792, 1393, 0, 67871, 74386, 0, 8233, 43572, 0, 6683, 0, 3442, 12144, + 2841, 12543, 0, 1473, 42820, 64329, 917772, 0, 0, 6488, 357, 1048, 41100, + 0, 41104, 0, 41099, 1054, 119065, 1040, 65450, 0, 4434, 1069, 0, 0, + 74231, 917765, 0, 0, 0, 9693, 41943, 0, 41931, 41759, 12757, 4353, 0, + 1059, 9790, 8995, 0, 0, 65937, 0, 41764, 10646, 0, 118833, 0, 0, 74830, + 0, 12743, 0, 6480, 917761, 41779, 42580, 66601, 12207, 119619, 10986, + 66602, 11312, 64807, 0, 0, 41767, 0, 0, 43020, 0, 3955, 74254, 0, 0, + 917861, 0, 120735, 9770, 9246, 12230, 0, 0, 0, 10448, 41783, 41786, + 127093, 12797, 2755, 64571, 194912, 194927, 4857, 0, 4428, 12794, 73755, + 0, 0, 0, 0, 0, 5747, 194720, 0, 7978, 41092, 74571, 0, 11924, 74205, + 42144, 65015, 0, 563, 0, 0, 12798, 11271, 57, 0, 0, 0, 119043, 0, 0, + 43137, 694, 0, 9876, 0, 119168, 0, 0, 64537, 0, 277, 74385, 7229, 74459, + 0, 0, 64634, 64811, 8757, 119087, 0, 1574, 194633, 0, 2525, 4852, 5749, + 0, 13027, 42824, 120574, 1039, 9801, 10155, 5745, 188, 41858, 11592, 0, + 74015, 0, 41853, 4858, 0, 0, 436, 4771, 0, 2786, 0, 4856, 8051, 0, + 119609, 0, 9644, 0, 0, 0, 194916, 120732, 66710, 118834, 0, 73906, 0, + 127114, 0, 10234, 5843, 11939, 0, 42157, 0, 3157, 194918, 0, 0, 3504, + 119178, 0, 10822, 5149, 66029, 10226, 65142, 0, 3594, 42424, 0, 40, + 12657, 0, 0, 386, 0, 8834, 0, 12815, 43574, 0, 73907, 0, 74196, 7220, + 74504, 0, 74316, 0, 0, 4304, 74503, 8160, 0, 194753, 0, 0, 0, 1348, 0, 0, + 0, 13303, 0, 0, 194755, 7599, 1278, 0, 13269, 0, 0, 74387, 0, 0, 74492, + 6097, 7568, 8780, 4982, 0, 74501, 194763, 0, 194762, 2672, 3735, 194735, + 13138, 42266, 9484, 10724, 41202, 119024, 0, 0, 0, 9487, 0, 194765, 3842, + 195034, 195056, 12442, 6193, 9791, 0, 0, 42516, 7228, 7559, 74803, + 194689, 194851, 11399, 119219, 194856, 194855, 0, 194857, 3604, 0, 0, 0, + 0, 0, 42507, 1962, 194861, 194696, 42505, 11660, 0, 0, 0, 6995, 74173, + 5437, 74174, 10669, 8702, 7964, 194706, 0, 199, 194843, 4105, 194845, + 194701, 194847, 194710, 119875, 13148, 7560, 0, 9226, 0, 195070, 6472, + 65814, 73954, 0, 4724, 0, 0, 9191, 0, 0, 0, 0, 195024, 10196, 7886, 0, + 6585, 0, 6680, 195042, 0, 195051, 6679, 74412, 0, 194866, 74421, 11382, + 0, 0, 0, 0, 194833, 194832, 6681, 194834, 12693, 194836, 194839, 194838, + 194841, 194840, 65442, 119610, 118887, 12166, 74415, 66248, 194816, 0, + 194818, 194817, 194820, 194819, 5297, 7042, 13284, 6112, 7968, 194825, + 73929, 194738, 194736, 65746, 0, 74409, 74389, 194826, 4342, 42839, + 194831, 1677, 0, 0, 0, 917855, 11091, 11011, 2719, 0, 0, 0, 64495, 0, 0, + 7585, 65169, 42845, 4308, 917858, 74177, 7505, 543, 64916, 64736, 0, 0, + 66670, 0, 118922, 19911, 0, 43158, 7902, 0, 65265, 194639, 0, 0, 0, 0, 0, + 0, 12994, 0, 10828, 0, 6228, 4307, 3482, 0, 0, 0, 0, 506, 74573, 41194, + 65735, 0, 0, 41195, 0, 8169, 0, 8841, 0, 516, 0, 41197, 119051, 34, 0, + 120186, 120185, 1612, 74333, 120182, 120181, 74308, 12001, 120178, 10242, + 64564, 120179, 120174, 6584, 7749, 11037, 0, 1758, 0, 10667, 10560, + 120197, 120756, 1935, 11517, 120193, 120196, 120195, 1931, 120189, 74839, + 120191, 1217, 64702, 12643, 825, 0, 194905, 12294, 0, 194908, 9138, + 194910, 194902, 12631, 194911, 11080, 74554, 0, 5591, 1239, 0, 11313, 0, + 3403, 0, 0, 64364, 0, 0, 74582, 8998, 12988, 0, 9152, 0, 0, 194898, + 67589, 41850, 64290, 3433, 0, 12615, 1594, 65607, 6914, 67603, 0, 119569, + 74565, 41353, 67602, 67611, 4337, 0, 194897, 918, 65035, 41351, 7681, + 194900, 42577, 41393, 12668, 194904, 2477, 0, 0, 0, 0, 67604, 194880, 0, + 573, 194881, 194884, 11417, 194886, 194885, 194888, 67599, 0, 194889, + 67607, 11482, 0, 0, 3357, 0, 194891, 4207, 1288, 194892, 194895, 194894, + 0, 11589, 66354, 194872, 0, 0, 64602, 194670, 0, 0, 42788, 0, 64480, + 194875, 8423, 3348, 448, 194879, 9717, 0, 0, 997, 0, 0, 0, 0, 11440, + 11379, 42000, 13139, 0, 65013, 126999, 0, 73796, 0, 0, 12035, 0, 2818, 0, + 0, 73793, 0, 4172, 0, 0, 8373, 10873, 12197, 0, 0, 0, 0, 0, 126977, 0, 0, + 194865, 126982, 74563, 64828, 11419, 194868, 766, 1257, 0, 0, 11381, + 3265, 66617, 3274, 0, 0, 0, 0, 0, 41989, 0, 0, 0, 3263, 0, 65672, 0, + 3270, 64539, 11489, 0, 0, 0, 0, 9505, 65518, 0, 756, 195052, 0, 0, 0, + 7261, 0, 186, 0, 119156, 5770, 13179, 65830, 12612, 12949, 64856, 12800, + 0, 74203, 64718, 0, 0, 0, 118929, 0, 11578, 0, 119296, 0, 0, 0, 0, 74568, + 9254, 0, 1794, 120217, 64521, 5624, 120220, 120221, 119958, 120223, 3617, + 66636, 64886, 120211, 120212, 120213, 120214, 1872, 66508, 120467, 41079, + 10748, 5502, 119330, 4452, 0, 0, 0, 4511, 0, 0, 0, 11425, 0, 0, 1231, 0, + 0, 0, 9003, 8192, 0, 5305, 9653, 10616, 8694, 9546, 0, 0, 120478, 120200, + 65205, 120202, 64063, 9878, 74780, 119626, 120207, 64058, 8799, 42131, 0, + 64062, 1028, 64060, 64059, 837, 10567, 0, 43103, 0, 0, 11427, 2902, + 64043, 64042, 66464, 10756, 0, 42606, 64045, 64044, 0, 10076, 64040, + 64039, 0, 1034, 3392, 0, 43091, 64033, 64032, 65468, 64038, 64037, 64036, + 64035, 4291, 194928, 64015, 64014, 64681, 194930, 0, 194944, 0, 43090, 0, + 3476, 8973, 64012, 42473, 64010, 64008, 64007, 2003, 7706, 64517, 119183, + 2538, 64009, 204, 0, 4802, 4111, 8239, 9098, 4805, 64001, 64057, 7885, + 7247, 64054, 0, 0, 4767, 9343, 64049, 64048, 120034, 1133, 64053, 64052, + 64051, 64050, 41340, 0, 0, 10005, 12329, 41333, 0, 8489, 1942, 0, 0, + 42520, 0, 0, 0, 10760, 64023, 64022, 64021, 6582, 0, 0, 64025, 9167, + 42151, 0, 0, 2026, 64019, 64018, 64017, 64016, 12768, 0, 7582, 0, 118915, + 0, 0, 0, 0, 120539, 0, 41411, 13094, 0, 7532, 41414, 0, 3179, 0, 64769, + 0, 0, 11461, 74454, 10751, 9051, 0, 0, 10535, 0, 0, 0, 2008, 64031, + 64030, 294, 41874, 0, 126991, 65929, 0, 0, 0, 0, 64028, 8146, 64026, + 41788, 194844, 0, 118795, 0, 119887, 119888, 0, 119886, 119891, 119892, + 119889, 11433, 119895, 119896, 0, 7801, 65578, 0, 12915, 0, 3297, 9699, + 0, 1135, 0, 0, 0, 1995, 7927, 0, 0, 2552, 41546, 60, 0, 8649, 41549, 0, + 0, 0, 6682, 0, 0, 64710, 41547, 0, 2013, 0, 119899, 119900, 119897, + 119898, 12832, 119904, 8081, 8362, 3537, 119908, 9137, 119906, 8999, 0, + 119909, 3466, 0, 0, 1996, 0, 3453, 6282, 0, 2002, 2000, 120175, 537, 0, + 4179, 65119, 1998, 0, 1842, 0, 0, 9628, 0, 12081, 9826, 64502, 1767, 0, + 0, 0, 120201, 0, 0, 0, 3059, 0, 120204, 119953, 120205, 0, 0, 0, 4100, + 920, 1811, 1355, 0, 0, 3592, 10078, 0, 0, 0, 8592, 65870, 68164, 0, + 10742, 0, 0, 1994, 9281, 3296, 12865, 1997, 1895, }; #define code_magic 47 -#define code_size 16384 -#define code_poly 16427 +#define code_size 32768 +#define code_poly 32771 Modified: python/trunk/Objects/unicodectype.c ============================================================================== --- python/trunk/Objects/unicodectype.c (original) +++ python/trunk/Objects/unicodectype.c Wed Sep 10 15:38:12 2008 @@ -19,6 +19,7 @@ #define SPACE_MASK 0x20 #define TITLE_MASK 0x40 #define UPPER_MASK 0x80 +#define NODELTA_MASK 0x100 typedef struct { const Py_UNICODE upper; @@ -82,6 +83,9 @@ else delta = ctype->upper; + if (ctype->flags & NODELTA_MASK) + return delta; + if (delta >= 32768) delta -= 65536; @@ -724,6 +728,8 @@ { const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); int delta = ctype->upper; + if (ctype->flags & NODELTA_MASK) + return delta; if (delta >= 32768) delta -= 65536; return ch + delta; @@ -736,6 +742,8 @@ { const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); int delta = ctype->lower; + if (ctype->flags & NODELTA_MASK) + return delta; if (delta >= 32768) delta -= 65536; return ch + delta; Modified: python/trunk/Objects/unicodetype_db.h ============================================================================== --- python/trunk/Objects/unicodetype_db.h (original) +++ python/trunk/Objects/unicodetype_db.h Wed Sep 10 15:38:12 2008 @@ -1,4 +1,4 @@ -/* this file was generated by Tools/unicode/makeunicodedata.py 2.5 */ +/* this file was generated by Tools/unicode/makeunicodedata.py 2.6 */ /* a list of unique character type descriptors */ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = { @@ -30,6 +30,7 @@ {65304, 0, 65304, 0, 0, 9}, {0, 65415, 0, 0, 0, 129}, {65236, 0, 65236, 0, 0, 9}, + {195, 0, 195, 0, 0, 9}, {0, 210, 0, 0, 0, 129}, {0, 206, 0, 0, 0, 129}, {0, 205, 0, 0, 0, 129}, @@ -56,9 +57,14 @@ {0, 65439, 0, 0, 0, 129}, {0, 65480, 0, 0, 0, 129}, {0, 65406, 0, 0, 0, 129}, - {0, 0, 0, 0, 0, 129}, + {0, 10795, 0, 0, 0, 129}, {0, 65373, 0, 0, 0, 129}, - {0, 83, 0, 0, 0, 129}, + {0, 10792, 0, 0, 0, 129}, + {0, 65341, 0, 0, 0, 129}, + {0, 69, 0, 0, 0, 129}, + {0, 71, 0, 0, 0, 129}, + {10783, 0, 10783, 0, 0, 9}, + {10780, 0, 10780, 0, 0, 9}, {65326, 0, 65326, 0, 0, 9}, {65330, 0, 65330, 0, 0, 9}, {65331, 0, 65331, 0, 0, 9}, @@ -67,12 +73,16 @@ {65329, 0, 65329, 0, 0, 9}, {65327, 0, 65327, 0, 0, 9}, {65325, 0, 65325, 0, 0, 9}, + {10743, 0, 10743, 0, 0, 9}, + {10749, 0, 10749, 0, 0, 9}, {65323, 0, 65323, 0, 0, 9}, {65322, 0, 65322, 0, 0, 9}, + {10727, 0, 10727, 0, 0, 9}, {65318, 0, 65318, 0, 0, 9}, + {65467, 0, 65467, 0, 0, 9}, {65319, 0, 65319, 0, 0, 9}, + {65465, 0, 65465, 0, 0, 9}, {65317, 0, 65317, 0, 0, 9}, - {65453, 0, 65453, 0, 0, 9}, {84, 0, 84, 0, 0, 0}, {0, 38, 0, 0, 0, 129}, {0, 37, 0, 0, 0, 129}, @@ -83,10 +93,13 @@ {65505, 0, 65505, 0, 0, 9}, {65472, 0, 65472, 0, 0, 9}, {65473, 0, 65473, 0, 0, 9}, + {0, 8, 0, 0, 0, 129}, {65474, 0, 65474, 0, 0, 9}, {65479, 0, 65479, 0, 0, 9}, + {0, 0, 0, 0, 0, 129}, {65489, 0, 65489, 0, 0, 9}, {65482, 0, 65482, 0, 0, 9}, + {65528, 0, 65528, 0, 0, 9}, {65450, 0, 65450, 0, 0, 9}, {65456, 0, 65456, 0, 0, 9}, {7, 0, 7, 0, 0, 9}, @@ -94,6 +107,8 @@ {65440, 0, 65440, 0, 0, 9}, {0, 65529, 0, 0, 0, 129}, {0, 80, 0, 0, 0, 129}, + {0, 15, 0, 0, 0, 129}, + {65521, 0, 65521, 0, 0, 9}, {0, 48, 0, 0, 0, 129}, {65488, 0, 65488, 0, 0, 9}, {0, 7264, 0, 0, 0, 129}, @@ -103,7 +118,10 @@ {0, 0, 0, 0, 7, 4}, {0, 0, 0, 0, 8, 4}, {0, 0, 0, 0, 9, 4}, + {42877, 0, 42877, 0, 0, 265}, + {3814, 0, 3814, 0, 0, 9}, {65477, 0, 65477, 0, 0, 9}, + {0, 57921, 0, 0, 0, 129}, {8, 0, 8, 0, 0, 9}, {0, 65528, 0, 0, 0, 129}, {74, 0, 74, 0, 0, 9}, @@ -126,11 +144,22 @@ {0, 58019, 0, 0, 0, 129}, {0, 57153, 0, 0, 0, 129}, {0, 57274, 0, 0, 0, 129}, + {0, 28, 0, 0, 0, 129}, + {65508, 0, 65508, 0, 0, 9}, {0, 16, 0, 0, 0, 0}, {65520, 0, 65520, 0, 0, 0}, {0, 26, 0, 0, 0, 0}, {65510, 0, 65510, 0, 0, 0}, + {0, 54793, 0, 0, 0, 129}, + {0, 61722, 0, 0, 0, 129}, + {0, 54809, 0, 0, 0, 129}, + {54741, 0, 54741, 0, 0, 9}, + {54744, 0, 54744, 0, 0, 9}, + {0, 54756, 0, 0, 0, 129}, + {0, 54787, 0, 0, 0, 129}, + {0, 54753, 0, 0, 0, 129}, {58272, 0, 58272, 0, 0, 9}, + {0, 7545, 0, 0, 0, 385}, {0, 40, 0, 0, 0, 129}, {65496, 0, 65496, 0, 0, 9}, }; @@ -139,30 +168,30 @@ #define SHIFT 8 static unsigned char index1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 8, 8, 27, 28, 29, 30, 31, 32, 33, 34, 32, 35, 36, - 32, 32, 32, 37, 38, 39, 40, 41, 42, 43, 44, 32, 21, 21, 21, 21, 21, 21, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 34, 37, + 38, 34, 34, 34, 39, 40, 41, 42, 43, 44, 45, 46, 34, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 45, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 47, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 46, 21, 21, 21, 21, 47, 8, 8, - 48, 49, 8, 8, 8, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 48, 21, 21, 21, 21, 49, + 21, 50, 51, 52, 53, 54, 8, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 50, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 21, 51, 52, 21, 53, 54, 55, 56, 57, - 8, 58, 59, 8, 8, 8, 60, 8, 61, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 55, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 21, 56, 57, 21, 58, 59, + 60, 61, 62, 63, 64, 65, 8, 8, 8, 66, 67, 68, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 69, 70, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 62, 63, 64, 65, 66, 67, 68, - 69, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 21, 21, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 71, 72, + 73, 74, 75, 76, 77, 78, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 79, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, @@ -171,11 +200,12 @@ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 70, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 80, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 81, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 71, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -292,8 +322,8 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 82, 83, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 72, 73, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -303,36 +333,35 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 74, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 84, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 84, }; static unsigned char index2[] = { @@ -355,88 +384,94 @@ 22, 23, 22, 23, 22, 23, 22, 23, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 26, 22, 23, 22, 23, 22, 23, 27, 16, 28, 22, 23, 22, 23, 29, 22, 23, - 30, 30, 22, 23, 16, 31, 32, 33, 22, 23, 30, 34, 35, 36, 37, 22, 23, 38, - 16, 36, 39, 40, 41, 22, 23, 22, 23, 22, 23, 42, 22, 23, 42, 16, 16, 22, - 23, 42, 22, 23, 43, 43, 22, 23, 22, 23, 44, 22, 23, 16, 45, 22, 23, 16, - 46, 45, 45, 45, 45, 47, 48, 49, 47, 48, 49, 47, 48, 49, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 50, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 47, 48, 49, 22, - 23, 51, 52, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 26, 22, 23, 22, 23, 22, 23, 27, 28, 29, 22, 23, 22, 23, 30, 22, 23, + 31, 31, 22, 23, 16, 32, 33, 34, 22, 23, 31, 35, 36, 37, 38, 22, 23, 39, + 16, 37, 40, 41, 42, 22, 23, 22, 23, 22, 23, 43, 22, 23, 43, 16, 16, 22, + 23, 43, 22, 23, 44, 44, 22, 23, 22, 23, 45, 22, 23, 16, 46, 22, 23, 16, + 47, 46, 46, 46, 46, 48, 49, 50, 48, 49, 50, 48, 49, 50, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 51, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 48, 49, 50, 22, + 23, 52, 53, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 53, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 16, 16, 16, 16, 16, 54, 22, 23, - 55, 54, 16, 16, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, - 57, 58, 16, 59, 59, 16, 60, 16, 61, 16, 16, 16, 16, 59, 16, 16, 62, 16, - 16, 16, 16, 63, 64, 16, 16, 16, 16, 16, 64, 16, 16, 65, 16, 16, 66, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 67, 16, 16, 67, 16, 16, 16, 16, 67, - 16, 68, 68, 16, 16, 16, 16, 16, 16, 69, 16, 70, 16, 16, 16, 16, 16, 16, + 23, 22, 23, 22, 23, 22, 23, 54, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 16, 16, 16, 16, 16, 55, 22, 23, + 56, 57, 16, 16, 22, 23, 58, 59, 60, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 61, 62, 16, 63, 64, 16, 65, 65, 16, 66, 16, 67, 16, 16, 16, 16, 65, + 16, 16, 68, 16, 16, 16, 16, 69, 70, 16, 71, 16, 16, 16, 70, 16, 72, 73, + 16, 16, 74, 16, 16, 16, 16, 16, 16, 16, 75, 16, 16, 76, 16, 16, 76, 16, + 16, 16, 16, 76, 77, 78, 78, 79, 16, 16, 16, 16, 16, 80, 16, 46, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 71, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, - 0, 45, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 72, 1, 73, 73, 73, 0, 74, 0, 75, - 75, 16, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 76, 77, 77, 77, 16, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 78, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 79, 80, 80, 0, 81, 82, 54, 54, 54, 83, 84, - 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 85, 86, 87, 16, 88, 89, 1, 22, 23, 90, 22, - 23, 16, 54, 54, 54, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 91, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, + 16, 16, 16, 16, 16, 16, 16, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, + 46, 1, 1, 1, 1, 1, 1, 1, 46, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22, 23, + 22, 23, 46, 1, 22, 23, 0, 0, 46, 41, 41, 41, 1, 0, 0, 0, 0, 0, 1, 1, 82, + 1, 83, 83, 83, 0, 84, 0, 85, 85, 16, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 86, 87, 87, 87, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 88, 15, 15, 15, 15, 15, 15, 15, 15, 15, 89, 90, 90, 91, + 92, 93, 94, 94, 94, 95, 96, 97, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 98, 99, 100, 16, + 101, 102, 1, 22, 23, 103, 22, 23, 16, 54, 54, 54, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 22, 23, 22, 23, 22, 23, 22, + 15, 15, 15, 15, 15, 15, 15, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 1, 1, 1, 1, 1, 1, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 1, 1, 1, 1, 1, 0, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 105, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 106, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 54, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 0, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 0, 0, 0, 0, 0, 0, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0, 0, 45, 1, 1, 1, 1, 1, - 1, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 45, - 45, 45, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 45, 45, 1, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 45, 45, 1, 1, 1, 1, 1, 1, 1, 45, 45, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 45, 45, 45, 1, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 0, 0, 46, 1, 1, 1, 1, 1, 1, 0, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, + 1, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 1, 1, 1, 1, 1, 1, 1, 46, 46, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 46, 46, 46, 1, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 1, 1, 1, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -447,250 +482,273 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 46, 1, 1, 1, 1, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 46, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 0, 1, 1, 1, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 0, 0, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 0, 0, 0, 46, 46, 46, 46, 0, 0, 1, 46, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 46, + 46, 0, 46, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, 46, 46, 46, + 46, 46, 0, 0, 0, 0, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, + 46, 46, 0, 46, 46, 0, 46, 46, 0, 46, 46, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, + 46, 0, 46, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, + 46, 46, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, + 46, 46, 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 1, 46, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 1, 46, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 46, 46, 0, 46, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 46, + 0, 46, 46, 46, 46, 46, 46, 0, 0, 0, 46, 46, 46, 0, 46, 46, 46, 46, 0, 0, + 0, 46, 46, 0, 46, 0, 46, 46, 0, 0, 0, 46, 46, 0, 0, 0, 46, 46, 46, 0, 0, + 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, 1, + 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 0, 46, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, + 46, 46, 0, 0, 0, 0, 0, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 1, + 46, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 46, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, + 0, 0, 46, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 46, 46, 46, 46, 46, 46, + 0, 0, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 1, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, + 46, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 0, 46, 0, 0, 46, 46, 0, 46, 0, 0, 46, + 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 0, 46, 0, 46, 0, 0, 46, 46, 0, 46, 46, 46, 46, 1, 46, 46, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 46, 0, 0, 46, 46, 46, 46, 46, 0, 46, 0, 1, 1, 1, 1, + 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 46, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, + 46, 46, 46, 46, 1, 1, 1, 46, 1, 1, 1, 46, 46, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 46, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 0, 0, 1, 1, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 0, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 0, 46, 0, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 110, 111, 112, 113, 114, + 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 0, 46, 46, 46, 46, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, + 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 1, 1, 1, 1, 46, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, + 46, 1, 1, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 45, 1, 1, 1, 1, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, - 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, - 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 0, 0, - 0, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, - 1, 1, 45, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 45, 45, 0, 45, 45, 45, - 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 45, 45, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 0, 0, 0, - 0, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 0, 45, 45, 0, 45, 45, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, 45, 0, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 45, 45, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, - 45, 0, 45, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 0, 1, 1, 1, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 45, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 0, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 0, 45, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, - 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 45, 45, 0, 45, 45, - 45, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 0, 45, 45, 45, 45, 45, 45, 0, 0, - 0, 45, 45, 45, 0, 45, 45, 45, 45, 0, 0, 0, 45, 45, 0, 45, 0, 45, 45, 0, - 0, 0, 45, 45, 0, 0, 0, 45, 45, 45, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 45, 0, 45, 45, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, - 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 45, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1, 45, 45, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 45, 45, - 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 45, 0, 0, - 45, 45, 0, 45, 0, 0, 45, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, 45, 45, 45, - 45, 45, 45, 45, 0, 45, 45, 45, 0, 45, 0, 45, 0, 0, 45, 45, 0, 45, 45, 45, - 45, 1, 45, 45, 1, 1, 1, 1, 1, 1, 0, 1, 1, 45, 0, 0, 45, 45, 45, 45, 45, - 0, 45, 0, 1, 1, 1, 1, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, - 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 0, - 45, 45, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, - 45, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, - 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 0, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 0, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 0, 45, 45, 45, 45, 0, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 95, 96, 97, - 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 45, 45, 45, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 45, 1, 1, 1, 1, 45, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, - 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, - 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 46, 46, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 46, 46, 46, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 45, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 46, 116, 16, 16, 16, 117, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, @@ -698,49 +756,48 @@ 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 16, 16, 16, 16, 118, + 16, 16, 119, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 16, 16, 16, 16, 16, 101, 0, 0, 0, 0, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 0, 0, 0, 0, 0, 0, - 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, - 103, 103, 102, 102, 102, 102, 102, 102, 0, 0, 103, 103, 103, 103, 103, - 103, 0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, - 103, 103, 103, 103, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, - 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 102, 102, 0, 0, 103, - 103, 103, 103, 103, 103, 0, 0, 16, 102, 16, 102, 16, 102, 16, 102, 0, - 103, 0, 103, 0, 103, 0, 103, 102, 102, 102, 102, 102, 102, 102, 102, 103, - 103, 103, 103, 103, 103, 103, 103, 104, 104, 105, 105, 105, 105, 106, - 106, 107, 107, 108, 108, 109, 109, 0, 0, 102, 102, 102, 102, 102, 102, - 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, 102, 102, 102, 102, - 102, 102, 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, 102, 102, - 102, 102, 102, 102, 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, - 102, 102, 16, 111, 16, 0, 16, 16, 103, 103, 112, 112, 113, 1, 114, 1, 1, - 1, 16, 111, 16, 0, 16, 16, 115, 115, 115, 115, 113, 1, 1, 1, 102, 102, - 16, 16, 0, 0, 16, 16, 103, 103, 116, 116, 0, 1, 1, 1, 102, 102, 16, 16, - 16, 87, 16, 16, 103, 103, 117, 117, 90, 1, 1, 1, 0, 0, 16, 111, 16, 0, - 16, 16, 118, 118, 119, 119, 113, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 120, 16, 0, 0, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, - 16, 120, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 0, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 54, 1, 1, 1, 1, 54, 1, - 1, 16, 54, 54, 54, 16, 16, 54, 54, 54, 16, 1, 54, 1, 1, 1, 54, 54, 54, - 54, 54, 1, 1, 1, 1, 1, 1, 54, 1, 121, 1, 54, 1, 122, 123, 54, 54, 1, 16, - 54, 54, 1, 54, 16, 45, 45, 45, 45, 16, 1, 1, 16, 16, 54, 54, 1, 1, 1, 1, - 1, 54, 16, 16, 16, 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 120, 120, 120, 120, 120, 120, + 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, 120, 120, + 120, 120, 0, 0, 121, 121, 121, 121, 121, 121, 0, 0, 120, 120, 120, 120, + 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, + 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, + 120, 120, 120, 120, 120, 120, 0, 0, 121, 121, 121, 121, 121, 121, 0, 0, + 16, 120, 16, 120, 16, 120, 16, 120, 0, 121, 0, 121, 0, 121, 0, 121, 120, + 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, + 121, 122, 122, 123, 123, 123, 123, 124, 124, 125, 125, 126, 126, 127, + 127, 0, 0, 120, 120, 120, 120, 120, 120, 120, 120, 128, 128, 128, 128, + 128, 128, 128, 128, 120, 120, 120, 120, 120, 120, 120, 120, 128, 128, + 128, 128, 128, 128, 128, 128, 120, 120, 120, 120, 120, 120, 120, 120, + 128, 128, 128, 128, 128, 128, 128, 128, 120, 120, 16, 129, 16, 0, 16, 16, + 121, 121, 130, 130, 131, 1, 132, 1, 1, 1, 16, 129, 16, 0, 16, 16, 133, + 133, 133, 133, 131, 1, 1, 1, 120, 120, 16, 16, 0, 0, 16, 16, 121, 121, + 134, 134, 0, 1, 1, 1, 120, 120, 16, 16, 16, 100, 16, 16, 121, 121, 135, + 135, 103, 1, 1, 1, 0, 0, 16, 129, 16, 0, 16, 16, 136, 136, 137, 137, 131, + 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 138, 16, 0, 0, + 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 16, 138, 20, 17, 18, 110, + 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 0, 46, 46, 46, 46, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 94, 1, 1, 1, 1, 94, 1, 1, 16, 94, 94, 94, + 16, 16, 94, 94, 94, 16, 1, 94, 1, 1, 1, 94, 94, 94, 94, 94, 1, 1, 1, 1, + 1, 1, 94, 1, 139, 1, 94, 1, 140, 141, 94, 94, 1, 16, 94, 94, 142, 94, 16, + 46, 46, 46, 46, 16, 1, 1, 16, 16, 94, 94, 1, 1, 1, 1, 1, 94, 16, 16, 16, + 16, 1, 1, 1, 1, 143, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 1, 1, 1, 22, 23, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -764,344 +821,408 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 120, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 120, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 17, 18, 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 138, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 138, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, - 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, - 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 20, 17, 18, 95, 96, 97, 98, 99, - 100, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, + 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 110, 111, 112, 113, + 114, 115, 1, 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 20, 17, 18, + 110, 111, 112, 113, 114, 115, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 16, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, - 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 0, 22, 23, 148, 149, 150, 151, 152, 22, 23, 22, + 23, 22, 23, 153, 154, 155, 0, 16, 22, 23, 16, 22, 23, 16, 16, 16, 16, 16, + 16, 46, 0, 0, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, + 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, - 45, 45, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 1, 1, 1, 1, 45, 45, 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 45, 45, 45, 45, 0, 0, 0, 0, 0, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, + 1, 1, 1, 1, 1, 46, 46, 1, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 1, 1, 1, 1, 46, 46, 46, 1, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 46, 46, 46, 0, + 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, + 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 0, 0, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 46, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 46, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 16, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 46, 16, 16, 16, 16, 16, 16, + 16, 16, 22, 23, 22, 23, 157, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 46, + 1, 1, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, + 46, 46, 1, 46, 46, 46, 1, 46, 46, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 45, 1, 45, 45, 45, 1, 45, 45, 45, 45, 1, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, - 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 0, 0, 0, - 0, 0, 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 0, 45, 0, 45, - 45, 0, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 0, 0, + 0, 0, 0, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 0, 46, 0, + 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, + 0, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, - 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, - 45, 45, 45, 0, 0, 45, 45, 45, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 1, 1, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 0, 0, 46, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 46, 46, 0, 0, 0, 46, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 1, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 0, 0, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 0, 0, 0, 45, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 45, 45, 45, 45, 0, 45, - 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 0, - 0, 0, 0, 1, 20, 17, 18, 95, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 46, 46, 46, 46, 0, 46, + 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, 1, 0, + 0, 0, 0, 1, 20, 17, 18, 110, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1109,7 +1230,30 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1119,9 +1263,9 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1129,11 +1273,11 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1141,109 +1285,119 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 0, 54, 54, 0, 0, 54, 0, 0, - 54, 54, 0, 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, - 16, 16, 0, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, 54, 54, 54, 54, 54, - 54, 0, 54, 54, 54, 54, 54, 54, 54, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, - 54, 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, 54, 0, 54, 0, 0, 0, 54, 54, 54, - 54, 54, 54, 54, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 94, 0, 94, 94, 0, 0, 94, 0, 0, 94, 94, 0, 0, + 94, 94, 94, 94, 0, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 0, 16, + 0, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, + 94, 0, 94, 94, 94, 94, 0, 0, 94, 94, 94, 94, 94, 94, 94, 94, 0, 94, 94, + 94, 94, 94, 94, 94, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 0, 94, + 94, 94, 94, 0, 94, 94, 94, 94, 94, 0, 94, 0, 0, 0, 94, 94, 94, 94, 94, + 94, 94, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 1, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 1, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 1, 16, 16, + 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, - 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 1, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 0, 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, - 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 1, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 1, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, + 16, 16, 16, 16, 94, 16, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1253,7 +1407,8 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1264,6 +1419,6 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 0, 0, }; Modified: python/trunk/Tools/unicode/makeunicodedata.py ============================================================================== --- python/trunk/Tools/unicode/makeunicodedata.py (original) +++ python/trunk/Tools/unicode/makeunicodedata.py Wed Sep 10 15:38:12 2008 @@ -27,10 +27,10 @@ import sys SCRIPT = sys.argv[0] -VERSION = "2.5" +VERSION = "2.6" # The Unicode Database -UNIDATA_VERSION = "4.1.0" +UNIDATA_VERSION = "5.1.0" UNICODE_DATA = "UnicodeData%s.txt" COMPOSITION_EXCLUSIONS = "CompositionExclusions%s.txt" EASTASIAN_WIDTH = "EastAsianWidth%s.txt" @@ -57,6 +57,7 @@ SPACE_MASK = 0x20 TITLE_MASK = 0x40 UPPER_MASK = 0x80 +NODELTA_MASK = 0x100 def maketables(trace=0): @@ -355,6 +356,7 @@ category = record[2] bidirectional = record[4] flags = 0 + delta = True if category in ["Lm", "Lt", "Lu", "Ll", "Lo"]: flags |= ALPHA_MASK if category == "Ll": @@ -367,25 +369,36 @@ flags |= TITLE_MASK if category == "Lu": flags |= UPPER_MASK - # use delta predictor for upper/lower/title + # use delta predictor for upper/lower/title if it fits if record[12]: upper = int(record[12], 16) - char - assert -32768 <= upper <= 32767 - upper = upper & 0xffff + if -32768 <= upper <= 32767 and delta: + upper = upper & 0xffff + else: + upper += char + delta = False else: upper = 0 if record[13]: lower = int(record[13], 16) - char - assert -32768 <= lower <= 32767 - lower = lower & 0xffff + if -32768 <= lower <= 32767 and delta: + lower = lower & 0xffff + else: + lower += char + delta = False else: lower = 0 if record[14]: title = int(record[14], 16) - char - assert -32768 <= lower <= 32767 - title = title & 0xffff + if -32768 <= lower <= 32767 and delta: + title = title & 0xffff + else: + title += char + delta = False else: title = 0 + if not delta: + flags |= NODELTA_MASK # decimal digit, integer digit decimal = 0 if record[6]: @@ -603,6 +616,7 @@ bidir_changes = [0xFF]*0x110000 category_changes = [0xFF]*0x110000 decimal_changes = [0xFF]*0x110000 + mirrored_changes = [0xFF]*0x110000 # In numeric data, 0 means "no change", # -1 means "did not have a numeric value numeric_changes = [0] * 0x110000 @@ -649,6 +663,11 @@ else: assert re.match("^[0-9]+$", value) numeric_changes[i] = int(value) + elif k == 9: + if value == 'Y': + mirrored_changes[i] = '1' + else: + mirrored_changes[i] = '0' elif k == 11: # change to ISO comment, ignore pass @@ -665,7 +684,8 @@ class Difference(Exception):pass raise Difference, (hex(i), k, old.table[i], new.table[i]) new.changed.append((version, zip(bidir_changes, category_changes, - decimal_changes, numeric_changes), + decimal_changes, mirrored_changes, + numeric_changes), normalization_changes)) From buildbot at python.org Wed Sep 10 15:58:35 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 13:58:35 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu trunk Message-ID: <20080910135835.A06BC1E4011@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%20trunk/builds/412 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-ubuntu-i386/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:07:10 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:07:10 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080910140710.8BEAE1E4011@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1403 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:07:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:07:33 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080910140733.9D2D31E4011@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/225 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_normalization test_socket ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:08:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:08:46 +0000 Subject: [Python-checkins] buildbot failure in OS X x86 trunk Message-ID: <20080910140846.934CB1E4012@bag.python.org> The Buildbot has detected a new failure of OS X x86 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/OS%20X%20x86%20trunk/builds/312 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: noller-osx86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/fork_wait.py", line 29, in f self.alive[id] = os.getpid() AttributeError: 'NoneType' object has no attribute 'getpid' Traceback (most recent call last): Unhandled exception in thread started by > File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/fork_wait.py", line 29, in f Traceback (most recent call last): AttributeError File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/fork_wait.py", line 29, in f Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/fork_wait.py", line 29, in f self.alive[id] = os.getpid() AttributeError: 'NoneType' object has no attribute 'getpid' 3 tests failed: test_bsddb test_normalization test_wait3 4 tests failed: test_bsddb test_bz2 test_normalization test_wait3 ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 ====================================================================== ERROR: test_wait (test.test_wait3.Wait3Test) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/fork_wait.py", line 66, in test_wait time.sleep(LONGSLEEP) IOError: [Errno 22] Invalid argument Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/multiprocessing/util.py", line 247, in _run_finalizers finalizer() File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/multiprocessing/util.py", line 186, in __call__ res = self._callback(*self._args, **self._kwargs) File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/shutil.py", line 208, in rmtree onerror(os.listdir, path, sys.exc_info()) File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/shutil.py", line 206, in rmtree names = os.listdir(path) OSError: [Errno 2] No such file or directory: '/tmp/pymp-teIwxR' ====================================================================== FAIL: test_wait (test.test_wait3.Wait3Test) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/fork_wait.py", line 74, in test_wait self.wait_impl(cpid) File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/test/test_wait3.py", line 30, in wait_impl self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8)) AssertionError: cause = 0, exit = 1 Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/multiprocessing/util.py", line 247, in _run_finalizers finalizer() File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/multiprocessing/util.py", line 186, in __call__ res = self._callback(*self._args, **self._kwargs) File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/shutil.py", line 208, in rmtree onerror(os.listdir, path, sys.exc_info()) File "/Users/buildbot/buildarea/trunk.noller-osx86/build/Lib/shutil.py", line 206, in rmtree names = os.listdir(path) OSError: [Errno 2] No such file or directory: '/tmp/pymp-teIwxR' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:19:45 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:19:45 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu 3.0 Message-ID: <20080910141945.8B2031E4011@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%203.0/builds/462 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/home/pybot/buildarea/3.0.klose-ubuntu-i386/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/home/pybot/buildarea/3.0.klose-ubuntu-i386/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 375: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:20:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:20:15 +0000 Subject: [Python-checkins] buildbot failure in OS X x86 3.0 Message-ID: <20080910142015.33EC01E4011@bag.python.org> The Buildbot has detected a new failure of OS X x86 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/OS%20X%20x86%203.0/builds/364 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: noller-osx86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/Users/buildbot/buildarea/3.0.noller-osx86/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/Users/buildbot/buildarea/3.0.noller-osx86/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 373: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:22:58 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:22:58 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080910142258.865431E4027@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/1976 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 10 16:27:00 2008 From: python-checkins at python.org (guido.van.rossum) Date: Wed, 10 Sep 2008 16:27:00 +0200 (CEST) Subject: [Python-checkins] r66364 - in python/trunk: Lib/test/test_re.py Misc/NEWS Modules/_sre.c Message-ID: <20080910142700.A8CC31E4043@bag.python.org> Author: guido.van.rossum Date: Wed Sep 10 16:27:00 2008 New Revision: 66364 Log: Issue #3751: str.rpartition would perform a left-partition when called with a unicode argument. Reviewed by Amaury. Modified: python/trunk/Lib/test/test_re.py python/trunk/Misc/NEWS python/trunk/Modules/_sre.c Modified: python/trunk/Lib/test/test_re.py ============================================================================== --- python/trunk/Lib/test/test_re.py (original) +++ python/trunk/Lib/test/test_re.py Wed Sep 10 16:27:00 2008 @@ -116,6 +116,10 @@ self.assertRaises(ValueError, re.findall, pattern, 'A', re.I) self.assertRaises(ValueError, re.compile, pattern, re.I) + def test_bug_3629(self): + # A regex that triggered a bug in the sre-code validator + re.compile("(?P)(?(quote))") + def test_sub_template_numeric_escape(self): # bug 776311 and friends self.assertEqual(re.sub('x', r'\0', 'x'), '\0') Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 10 16:27:00 2008 @@ -68,6 +68,8 @@ Library ------- +- Issue #3629: Fix sre "bytecode" validator for an end case. + - Issue #3811: The Unicode database was updated to 5.1. - Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. Modified: python/trunk/Modules/_sre.c ============================================================================== --- python/trunk/Modules/_sre.c (original) +++ python/trunk/Modules/_sre.c Wed Sep 10 16:27:00 2008 @@ -2781,17 +2781,18 @@ arg = *code++; \ VTRACE(("%lu (arg)\n", (unsigned long)arg)); \ } while (0) -#define GET_SKIP \ +#define GET_SKIP_ADJ(adj) \ do { \ VTRACE(("%p= ", code)); \ if (code >= end) FAIL; \ skip = *code; \ VTRACE(("%lu (skip to %p)\n", \ (unsigned long)skip, code+skip)); \ - if (code+skip < code || code+skip > end) \ + if (code+skip-adj < code || code+skip-adj > end)\ FAIL; \ code++; \ } while (0) +#define GET_SKIP GET_SKIP_ADJ(0) static int _validate_charset(SRE_CODE *code, SRE_CODE *end) @@ -3098,7 +3099,7 @@ GET_ARG; if (arg >= groups) FAIL; - GET_SKIP; + GET_SKIP_ADJ(1); code--; /* The skip is relative to the first arg! */ /* There are two possibilities here: if there is both a 'then' part and an 'else' part, the generated code looks like: From buildbot at python.org Wed Sep 10 16:27:18 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:27:18 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080910142718.60CBF1E4039@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1430 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea64/trunk.klose-debian-ppc64/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:32:00 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:32:00 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080910143200.EBF0A1E4013@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1066 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_format test_normalization test_unicode ====================================================================== FAIL: test_format (test.test_format.FormatTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_format.py", line 219, in test_format testformat("%r", "\u0370", "'\\u0370'") # non printable File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_format.py", line 41, in testformat (formatstr, args, result, output)) AssertionError: '%r' % '??' == "'??'" != "'\\u0370'" ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 ====================================================================== FAIL: test_format (test.test_unicode.UnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_unicode.py", line 614, in test_format AssertionError: "'??'" != "'\\u0370'" ====================================================================== FAIL: test_isprintable (test.test_unicode.UnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_unicode.py", line 432, in test_isprintable AssertionError: None make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:32:11 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:32:11 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080910143211.381B91E4014@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/589 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From eric at trueblade.com Wed Sep 10 16:32:20 2008 From: eric at trueblade.com (Eric Smith) Date: Wed, 10 Sep 2008 10:32:20 -0400 Subject: [Python-checkins] r66364 - in python/trunk: Lib/test/test_re.py Misc/NEWS Modules/_sre.c In-Reply-To: <20080910142700.A8CC31E4043@bag.python.org> References: <20080910142700.A8CC31E4043@bag.python.org> Message-ID: <48C7DA74.4010204@trueblade.com> I think the comment references the wrong issue (and wrong description). Eric. guido.van.rossum wrote: > Author: guido.van.rossum > Date: Wed Sep 10 16:27:00 2008 > New Revision: 66364 > > Log: > Issue #3751: str.rpartition would perform a left-partition when called with > a unicode argument. Reviewed by Amaury. > > > Modified: > python/trunk/Lib/test/test_re.py > python/trunk/Misc/NEWS > python/trunk/Modules/_sre.c > > Modified: python/trunk/Lib/test/test_re.py > ============================================================================== > --- python/trunk/Lib/test/test_re.py (original) > +++ python/trunk/Lib/test/test_re.py Wed Sep 10 16:27:00 2008 > @@ -116,6 +116,10 @@ > self.assertRaises(ValueError, re.findall, pattern, 'A', re.I) > self.assertRaises(ValueError, re.compile, pattern, re.I) > > + def test_bug_3629(self): > + # A regex that triggered a bug in the sre-code validator > + re.compile("(?P)(?(quote))") > + > def test_sub_template_numeric_escape(self): > # bug 776311 and friends > self.assertEqual(re.sub('x', r'\0', 'x'), '\0') > > Modified: python/trunk/Misc/NEWS > ============================================================================== > --- python/trunk/Misc/NEWS (original) > +++ python/trunk/Misc/NEWS Wed Sep 10 16:27:00 2008 > @@ -68,6 +68,8 @@ > Library > ------- > > +- Issue #3629: Fix sre "bytecode" validator for an end case. > + > - Issue #3811: The Unicode database was updated to 5.1. > > - Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. > > Modified: python/trunk/Modules/_sre.c > ============================================================================== > --- python/trunk/Modules/_sre.c (original) > +++ python/trunk/Modules/_sre.c Wed Sep 10 16:27:00 2008 > @@ -2781,17 +2781,18 @@ > arg = *code++; \ > VTRACE(("%lu (arg)\n", (unsigned long)arg)); \ > } while (0) > -#define GET_SKIP \ > +#define GET_SKIP_ADJ(adj) \ > do { \ > VTRACE(("%p= ", code)); \ > if (code >= end) FAIL; \ > skip = *code; \ > VTRACE(("%lu (skip to %p)\n", \ > (unsigned long)skip, code+skip)); \ > - if (code+skip < code || code+skip > end) \ > + if (code+skip-adj < code || code+skip-adj > end)\ > FAIL; \ > code++; \ > } while (0) > +#define GET_SKIP GET_SKIP_ADJ(0) > > static int > _validate_charset(SRE_CODE *code, SRE_CODE *end) > @@ -3098,7 +3099,7 @@ > GET_ARG; > if (arg >= groups) > FAIL; > - GET_SKIP; > + GET_SKIP_ADJ(1); > code--; /* The skip is relative to the first arg! */ > /* There are two possibilities here: if there is both a 'then' > part and an 'else' part, the generated code looks like: > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > From buildbot at python.org Wed Sep 10 16:34:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:34:06 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080910143406.2C4991E4012@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1516 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/home/pybot/buildarea/3.0.klose-debian-ppc/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/home/pybot/buildarea/3.0.klose-debian-ppc/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 373: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From guido at python.org Wed Sep 10 16:37:15 2008 From: guido at python.org (Guido van Rossum) Date: Wed, 10 Sep 2008 07:37:15 -0700 Subject: [Python-checkins] r66364 - in python/trunk: Lib/test/test_re.py Misc/NEWS Modules/_sre.c In-Reply-To: <48C7DA74.4010204@trueblade.com> References: <20080910142700.A8CC31E4043@bag.python.org> <48C7DA74.4010204@trueblade.com> Message-ID: Why do you think so? http://bugs.python.org/issue3629 == "Python won't compile a regex that compiles with 2.5.2 and 30b2" and that's what this change fixes. On Wed, Sep 10, 2008 at 7:32 AM, Eric Smith wrote: > I think the comment references the wrong issue (and wrong description). > > Eric. > > guido.van.rossum wrote: >> >> Author: guido.van.rossum >> Date: Wed Sep 10 16:27:00 2008 >> New Revision: 66364 >> >> Log: >> Issue #3751: str.rpartition would perform a left-partition when called >> with >> a unicode argument. Reviewed by Amaury. >> >> >> Modified: >> python/trunk/Lib/test/test_re.py >> python/trunk/Misc/NEWS >> python/trunk/Modules/_sre.c >> >> Modified: python/trunk/Lib/test/test_re.py >> >> ============================================================================== >> --- python/trunk/Lib/test/test_re.py (original) >> +++ python/trunk/Lib/test/test_re.py Wed Sep 10 16:27:00 2008 >> @@ -116,6 +116,10 @@ >> self.assertRaises(ValueError, re.findall, pattern, 'A', re.I) >> self.assertRaises(ValueError, re.compile, pattern, re.I) >> + def test_bug_3629(self): >> + # A regex that triggered a bug in the sre-code validator >> + re.compile("(?P)(?(quote))") >> + >> def test_sub_template_numeric_escape(self): >> # bug 776311 and friends >> self.assertEqual(re.sub('x', r'\0', 'x'), '\0') >> >> Modified: python/trunk/Misc/NEWS >> >> ============================================================================== >> --- python/trunk/Misc/NEWS (original) >> +++ python/trunk/Misc/NEWS Wed Sep 10 16:27:00 2008 >> @@ -68,6 +68,8 @@ >> Library >> ------- >> +- Issue #3629: Fix sre "bytecode" validator for an end case. >> + >> - Issue #3811: The Unicode database was updated to 5.1. >> - Issue #3809: Fixed spurious 'test.blah' file left behind by >> test_logging. >> >> Modified: python/trunk/Modules/_sre.c >> >> ============================================================================== >> --- python/trunk/Modules/_sre.c (original) >> +++ python/trunk/Modules/_sre.c Wed Sep 10 16:27:00 2008 >> @@ -2781,17 +2781,18 @@ >> arg = *code++; \ >> VTRACE(("%lu (arg)\n", (unsigned long)arg)); \ >> } while (0) >> -#define GET_SKIP \ >> +#define GET_SKIP_ADJ(adj) \ >> do { \ >> VTRACE(("%p= ", code)); \ >> if (code >= end) FAIL; \ >> skip = *code; \ >> VTRACE(("%lu (skip to %p)\n", \ >> (unsigned long)skip, code+skip)); \ >> - if (code+skip < code || code+skip > end) \ >> + if (code+skip-adj < code || code+skip-adj > end)\ >> FAIL; \ >> code++; \ >> } while (0) >> +#define GET_SKIP GET_SKIP_ADJ(0) >> static int >> _validate_charset(SRE_CODE *code, SRE_CODE *end) >> @@ -3098,7 +3099,7 @@ >> GET_ARG; >> if (arg >= groups) >> FAIL; >> - GET_SKIP; >> + GET_SKIP_ADJ(1); >> code--; /* The skip is relative to the first arg! */ >> /* There are two possibilities here: if there is both a 'then' >> part and an 'else' part, the generated code looks like: >> _______________________________________________ >> Python-checkins mailing list >> Python-checkins at python.org >> http://mail.python.org/mailman/listinfo/python-checkins >> > > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From buildbot at python.org Wed Sep 10 16:40:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:40:44 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080910144045.1729F1E4012@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3921 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_asynchat test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildslave/bb/trunk.psf-g4/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:44:29 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:44:29 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080910144429.C90621E4012@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/205 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "../lib/test/regrtest.py", line 603, in runtest_inner indirect_test() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_format.py", line 263, in test_main support.run_unittest(FormatTest) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\support.py", line 688, in run_unittest _run_suite(suite) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\support.py", line 671, in _run_suite raise TestFailed(err) test.support.TestFailed: Traceback (most recent call last): Traceback (most recent call last): File "../lib/test/regrtest.py", line 1198, in main() File "../lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "../lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "../lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "S:\buildbots\python\3.0.nelson-windows\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python\3.0.nelson-windows\build\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u0370' in position 365: character maps to sincerely, -The Buildbot From eric at trueblade.com Wed Sep 10 16:46:47 2008 From: eric at trueblade.com (Eric Smith) Date: Wed, 10 Sep 2008 10:46:47 -0400 Subject: [Python-checkins] r66364 - in python/trunk: Lib/test/test_re.py Misc/NEWS Modules/_sre.c In-Reply-To: References: <20080910142700.A8CC31E4043@bag.python.org> <48C7DA74.4010204@trueblade.com> Message-ID: <48C7DDD7.5060908@trueblade.com> Because the log message says a different issue: Issue #3751: str.rpartition would perform a left-partition when called with a unicode argument. Reviewed by Amaury. Guido van Rossum wrote: > Why do you think so? http://bugs.python.org/issue3629 == "Python won't > compile a regex that compiles with 2.5.2 and 30b2" and that's what > this change fixes. > > On Wed, Sep 10, 2008 at 7:32 AM, Eric Smith wrote: >> I think the comment references the wrong issue (and wrong description). >> >> Eric. >> >> guido.van.rossum wrote: >>> Author: guido.van.rossum >>> Date: Wed Sep 10 16:27:00 2008 >>> New Revision: 66364 >>> >>> Log: >>> Issue #3751: str.rpartition would perform a left-partition when called >>> with >>> a unicode argument. Reviewed by Amaury. >>> >>> >>> Modified: >>> python/trunk/Lib/test/test_re.py >>> python/trunk/Misc/NEWS >>> python/trunk/Modules/_sre.c >>> >>> Modified: python/trunk/Lib/test/test_re.py >>> >>> ============================================================================== >>> --- python/trunk/Lib/test/test_re.py (original) >>> +++ python/trunk/Lib/test/test_re.py Wed Sep 10 16:27:00 2008 >>> @@ -116,6 +116,10 @@ >>> self.assertRaises(ValueError, re.findall, pattern, 'A', re.I) >>> self.assertRaises(ValueError, re.compile, pattern, re.I) >>> + def test_bug_3629(self): >>> + # A regex that triggered a bug in the sre-code validator >>> + re.compile("(?P)(?(quote))") >>> + >>> def test_sub_template_numeric_escape(self): >>> # bug 776311 and friends >>> self.assertEqual(re.sub('x', r'\0', 'x'), '\0') >>> >>> Modified: python/trunk/Misc/NEWS >>> >>> ============================================================================== >>> --- python/trunk/Misc/NEWS (original) >>> +++ python/trunk/Misc/NEWS Wed Sep 10 16:27:00 2008 >>> @@ -68,6 +68,8 @@ >>> Library >>> ------- >>> +- Issue #3629: Fix sre "bytecode" validator for an end case. >>> + >>> - Issue #3811: The Unicode database was updated to 5.1. >>> - Issue #3809: Fixed spurious 'test.blah' file left behind by >>> test_logging. >>> >>> Modified: python/trunk/Modules/_sre.c >>> >>> ============================================================================== >>> --- python/trunk/Modules/_sre.c (original) >>> +++ python/trunk/Modules/_sre.c Wed Sep 10 16:27:00 2008 >>> @@ -2781,17 +2781,18 @@ >>> arg = *code++; \ >>> VTRACE(("%lu (arg)\n", (unsigned long)arg)); \ >>> } while (0) >>> -#define GET_SKIP \ >>> +#define GET_SKIP_ADJ(adj) \ >>> do { \ >>> VTRACE(("%p= ", code)); \ >>> if (code >= end) FAIL; \ >>> skip = *code; \ >>> VTRACE(("%lu (skip to %p)\n", \ >>> (unsigned long)skip, code+skip)); \ >>> - if (code+skip < code || code+skip > end) \ >>> + if (code+skip-adj < code || code+skip-adj > end)\ >>> FAIL; \ >>> code++; \ >>> } while (0) >>> +#define GET_SKIP GET_SKIP_ADJ(0) >>> static int >>> _validate_charset(SRE_CODE *code, SRE_CODE *end) >>> @@ -3098,7 +3099,7 @@ >>> GET_ARG; >>> if (arg >= groups) >>> FAIL; >>> - GET_SKIP; >>> + GET_SKIP_ADJ(1); >>> code--; /* The skip is relative to the first arg! */ >>> /* There are two possibilities here: if there is both a 'then' >>> part and an 'else' part, the generated code looks like: >>> _______________________________________________ >>> Python-checkins mailing list >>> Python-checkins at python.org >>> http://mail.python.org/mailman/listinfo/python-checkins >>> >> _______________________________________________ >> Python-checkins mailing list >> Python-checkins at python.org >> http://mail.python.org/mailman/listinfo/python-checkins >> > > > From buildbot at python.org Wed Sep 10 16:49:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:49:36 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080910144936.447951E4012@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1632 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/home/pybot/buildarea64/3.0.klose-debian-ppc64/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/home/pybot/buildarea64/3.0.klose-debian-ppc64/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 381: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:52:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:52:06 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20080910145206.3C77E1E4018@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/1162 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "../lib/test/regrtest.py", line 603, in runtest_inner indirect_test() File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_format.py", line 263, in test_main support.run_unittest(FormatTest) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\support.py", line 688, in run_unittest _run_suite(suite) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\support.py", line 671, in _run_suite raise TestFailed(err) test.support.TestFailed: Traceback (most recent call last): Traceback (most recent call last): File "../lib/test/regrtest.py", line 1198, in main() File "../lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "../lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "../lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u0370' in position 383: character maps to sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:52:58 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:52:58 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20080910145258.5F7F71E402B@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1079 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/scratch/pybot/buildarea/trunk.klose-debian-s390/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 16:58:34 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 14:58:34 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080910145834.F02701E4012@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/540 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 361: ordinal not in range(128) sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 17:01:13 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 15:01:13 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080910150113.DC6841E4012@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1387 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/Users/buildslave/bb/3.0.psf-g4/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 351: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 17:13:45 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 15:13:45 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20080910151345.F10291E4012@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/4139 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_normalization ====================================================================== FAIL: test_main (test.test_normalization.NormalizationTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildslave/python-trunk/trunk.norwitz-x86/build/Lib/test/test_normalization.py", line 83, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 17:39:54 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 15:39:54 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20080910153954.E135D1E4012@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/874 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/scratch/pybot/buildarea/3.0.klose-debian-s390/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/scratch/pybot/buildarea/3.0.klose-debian-s390/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 381: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 10 18:14:54 2008 From: python-checkins at python.org (guido.van.rossum) Date: Wed, 10 Sep 2008 18:14:54 +0200 (CEST) Subject: [Python-checkins] r66364 - svn:log Message-ID: <20080910161454.663F51E4012@bag.python.org> Author: guido.van.rossum Revision: 66364 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1,2 +1,2 @@ -Issue #3751: str.rpartition would perform a left-partition when called with -a unicode argument. Reviewed by Amaury. +- Issue #3629: Fix sre "bytecode" validator for an end case. + Reviewed by Amaury. From guido at python.org Wed Sep 10 18:15:20 2008 From: guido at python.org (Guido van Rossum) Date: Wed, 10 Sep 2008 09:15:20 -0700 Subject: [Python-checkins] r66364 - in python/trunk: Lib/test/test_re.py Misc/NEWS Modules/_sre.c In-Reply-To: <48C7DDD7.5060908@trueblade.com> References: <20080910142700.A8CC31E4043@bag.python.org> <48C7DA74.4010204@trueblade.com> <48C7DDD7.5060908@trueblade.com> Message-ID: D'oh. Fixed. (svn propedit -r66364 svn:log) On Wed, Sep 10, 2008 at 7:46 AM, Eric Smith wrote: > Because the log message says a different issue: > > Issue #3751: str.rpartition would perform a left-partition when called > with a unicode argument. Reviewed by Amaury. > > Guido van Rossum wrote: >> >> Why do you think so? http://bugs.python.org/issue3629 == "Python won't >> compile a regex that compiles with 2.5.2 and 30b2" and that's what >> this change fixes. >> >> On Wed, Sep 10, 2008 at 7:32 AM, Eric Smith wrote: >>> >>> I think the comment references the wrong issue (and wrong description). >>> >>> Eric. >>> >>> guido.van.rossum wrote: >>>> >>>> Author: guido.van.rossum >>>> Date: Wed Sep 10 16:27:00 2008 >>>> New Revision: 66364 >>>> >>>> Log: >>>> Issue #3751: str.rpartition would perform a left-partition when called >>>> with >>>> a unicode argument. Reviewed by Amaury. >>>> >>>> >>>> Modified: >>>> python/trunk/Lib/test/test_re.py >>>> python/trunk/Misc/NEWS >>>> python/trunk/Modules/_sre.c >>>> >>>> Modified: python/trunk/Lib/test/test_re.py >>>> >>>> >>>> ============================================================================== >>>> --- python/trunk/Lib/test/test_re.py (original) >>>> +++ python/trunk/Lib/test/test_re.py Wed Sep 10 16:27:00 2008 >>>> @@ -116,6 +116,10 @@ >>>> self.assertRaises(ValueError, re.findall, pattern, 'A', re.I) >>>> self.assertRaises(ValueError, re.compile, pattern, re.I) >>>> + def test_bug_3629(self): >>>> + # A regex that triggered a bug in the sre-code validator >>>> + re.compile("(?P)(?(quote))") >>>> + >>>> def test_sub_template_numeric_escape(self): >>>> # bug 776311 and friends >>>> self.assertEqual(re.sub('x', r'\0', 'x'), '\0') >>>> >>>> Modified: python/trunk/Misc/NEWS >>>> >>>> >>>> ============================================================================== >>>> --- python/trunk/Misc/NEWS (original) >>>> +++ python/trunk/Misc/NEWS Wed Sep 10 16:27:00 2008 >>>> @@ -68,6 +68,8 @@ >>>> Library >>>> ------- >>>> +- Issue #3629: Fix sre "bytecode" validator for an end case. >>>> + >>>> - Issue #3811: The Unicode database was updated to 5.1. >>>> - Issue #3809: Fixed spurious 'test.blah' file left behind by >>>> test_logging. >>>> >>>> Modified: python/trunk/Modules/_sre.c >>>> >>>> >>>> ============================================================================== >>>> --- python/trunk/Modules/_sre.c (original) >>>> +++ python/trunk/Modules/_sre.c Wed Sep 10 16:27:00 2008 >>>> @@ -2781,17 +2781,18 @@ >>>> arg = *code++; \ >>>> VTRACE(("%lu (arg)\n", (unsigned long)arg)); \ >>>> } while (0) >>>> -#define GET_SKIP \ >>>> +#define GET_SKIP_ADJ(adj) \ >>>> do { \ >>>> VTRACE(("%p= ", code)); \ >>>> if (code >= end) FAIL; \ >>>> skip = *code; \ >>>> VTRACE(("%lu (skip to %p)\n", \ >>>> (unsigned long)skip, code+skip)); \ >>>> - if (code+skip < code || code+skip > end) \ >>>> + if (code+skip-adj < code || code+skip-adj > end)\ >>>> FAIL; \ >>>> code++; \ >>>> } while (0) >>>> +#define GET_SKIP GET_SKIP_ADJ(0) >>>> static int >>>> _validate_charset(SRE_CODE *code, SRE_CODE *end) >>>> @@ -3098,7 +3099,7 @@ >>>> GET_ARG; >>>> if (arg >= groups) >>>> FAIL; >>>> - GET_SKIP; >>>> + GET_SKIP_ADJ(1); >>>> code--; /* The skip is relative to the first arg! */ >>>> /* There are two possibilities here: if there is both a >>>> 'then' >>>> part and an 'else' part, the generated code looks like: >>>> _______________________________________________ >>>> Python-checkins mailing list >>>> Python-checkins at python.org >>>> http://mail.python.org/mailman/listinfo/python-checkins >>>> >>> _______________________________________________ >>> Python-checkins mailing list >>> Python-checkins at python.org >>> http://mail.python.org/mailman/listinfo/python-checkins >>> >> >> >> > > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From python-checkins at python.org Wed Sep 10 18:17:00 2008 From: python-checkins at python.org (guido.van.rossum) Date: Wed, 10 Sep 2008 18:17:00 +0200 (CEST) Subject: [Python-checkins] r66365 - svn:log Message-ID: <20080910161700.97D9E1E401D@bag.python.org> Author: guido.van.rossum Revision: 66365 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -4,6 +4,6 @@ ........ r66364 | guido.van.rossum | 2008-09-10 07:27:00 -0700 (Wed, 10 Sep 2008) | 3 lines - Issue #3751: str.rpartition would perform a left-partition when called with - a unicode argument. Reviewed by Amaury. + Issue #3629: Fix sre "bytecode" validator for an end case. + Reviewed by Amaury. ........ From buildbot at python.org Wed Sep 10 18:28:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 16:28:36 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080910162836.F2C8F1E4022@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/548 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 18:57:26 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 16:57:26 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080910165726.619731E4017@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/544 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "./Lib/test/regrtest.py", line 1198, in main() File "./Lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "./Lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "./Lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/io.py", line 1486, in write b = encoder.encode(s) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] UnicodeEncodeError: 'ascii' codec can't encode character '\u0370' in position 375: ordinal not in range(128) make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 20:05:05 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 18:05:05 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080910180522.11FBA1E4016@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/207 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "../lib/test/regrtest.py", line 603, in runtest_inner indirect_test() File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_format.py", line 263, in test_main support.run_unittest(FormatTest) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\support.py", line 688, in run_unittest _run_suite(suite) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\support.py", line 671, in _run_suite raise TestFailed(err) test.support.TestFailed: Traceback (most recent call last): Traceback (most recent call last): File "../lib/test/regrtest.py", line 1198, in main() File "../lib/test/regrtest.py", line 411, in main testdir, huntrleaks) File "../lib/test/regrtest.py", line 570, in runtest testdir, huntrleaks) File "../lib/test/regrtest.py", line 623, in runtest_inner print("test", test, "failed --", msg) File "S:\buildbots\python\3.0.nelson-windows\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python\3.0.nelson-windows\build\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u0370' in position 365: character maps to sincerely, -The Buildbot From buildbot at python.org Wed Sep 10 20:19:55 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 18:19:55 +0000 Subject: [Python-checkins] buildbot failure in ARM Linux EABI 3.0 Message-ID: <20080910181955.53FAB1E401A@bag.python.org> The Buildbot has detected a new failure of ARM Linux EABI 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ARM%20Linux%20EABI%203.0/builds/254 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-linux-armeabi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: guido.van.rossum BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Wed Sep 10 20:43:49 2008 From: python-checkins at python.org (martin.v.loewis) Date: Wed, 10 Sep 2008 20:43:49 +0200 (CEST) Subject: [Python-checkins] r66367 - python/trunk/Lib/test/test_normalization.py Message-ID: <20080910184349.EAF0A1E4012@bag.python.org> Author: martin.v.loewis Date: Wed Sep 10 20:43:49 2008 New Revision: 66367 Log: Update to test Unicode 5.1. Modified: python/trunk/Lib/test/test_normalization.py Modified: python/trunk/Lib/test/test_normalization.py ============================================================================== --- python/trunk/Lib/test/test_normalization.py (original) +++ python/trunk/Lib/test/test_normalization.py Wed Sep 10 20:43:49 2008 @@ -6,7 +6,7 @@ from unicodedata import normalize TESTDATAFILE = "NormalizationTest" + os.extsep + "txt" -TESTDATAURL = "http://www.unicode.org/Public/4.1.0/ucd/" + TESTDATAFILE +TESTDATAURL = "http://www.unicode.org/Public/5.1.0/ucd/" + TESTDATAFILE class RangeError(Exception): pass From buildbot at python.org Wed Sep 10 20:59:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 18:59:07 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian trunk Message-ID: <20080910185907.EA8EC1E4012@bag.python.org> The Buildbot has detected a new failure of sparc Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%20trunk/builds/657 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From python-checkins at python.org Wed Sep 10 21:16:36 2008 From: python-checkins at python.org (martin.v.loewis) Date: Wed, 10 Sep 2008 21:16:36 +0200 (CEST) Subject: [Python-checkins] r66369 - python/trunk/Lib/test/test_normalization.py Message-ID: <20080910191636.0B9B31E401D@bag.python.org> Author: martin.v.loewis Date: Wed Sep 10 21:16:35 2008 New Revision: 66369 Log: Read unidata_version from unicodedata module. Delete old NormalizationTest.txt if it doesn't match unidata_version. Modified: python/trunk/Lib/test/test_normalization.py Modified: python/trunk/Lib/test/test_normalization.py ============================================================================== --- python/trunk/Lib/test/test_normalization.py (original) +++ python/trunk/Lib/test/test_normalization.py Wed Sep 10 21:16:35 2008 @@ -3,10 +3,17 @@ import sys import os -from unicodedata import normalize +from unicodedata import normalize, unidata_version TESTDATAFILE = "NormalizationTest" + os.extsep + "txt" -TESTDATAURL = "http://www.unicode.org/Public/5.1.0/ucd/" + TESTDATAFILE +TESTDATAURL = "http://www.unicode.org/Public/" + unidata_version + "/ucd/" + TESTDATAFILE + +if os.path.exists(TESTDATAFILE): + f = open(TESTDATAFILE) + l = f.readline() + f.close() + if not unidata_version in l: + os.unlink(TESTDATAFILE) class RangeError(Exception): pass From nnorwitz at gmail.com Wed Sep 10 22:43:22 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Wed, 10 Sep 2008 16:43:22 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080910204322.GA15748@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12782 refs] [12782 refs] [21311 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12787 refs] [12787 refs] [12787 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17316 refs] test_pyexpat test_queue test_quopri [15301 refs] [15301 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12782 refs] [12782 refs] [12785 refs] [12782 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [14682 refs] [12997 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] . [12782 refs] [12782 refs] this bit of output is from a test of stdout in a different process ... [12782 refs] [12782 refs] [12997 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [12782 refs] [12782 refs] [13011 refs] [12805 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12785 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16272 refs] [15928 refs] [15739 refs] [15739 refs] [15739 refs] [15739 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650009 refs] From nnorwitz at gmail.com Wed Sep 10 23:12:21 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Wed, 10 Sep 2008 17:12:21 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080910211221.GA21828@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [16956 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12782 refs] [12782 refs] [21311 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12787 refs] [12787 refs] [12787 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17316 refs] test_pyexpat test_queue test_quopri [15301 refs] [15301 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12782 refs] [12782 refs] [12785 refs] [12782 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [14682 refs] [12997 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] . [12782 refs] [12782 refs] this bit of output is from a test of stdout in a different process ... [12782 refs] [12782 refs] [12997 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [12782 refs] [12782 refs] [13011 refs] [12805 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12785 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16272 refs] [15928 refs] [15739 refs] [15739 refs] [15739 refs] [15739 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649274 refs] From python-checkins at python.org Wed Sep 10 23:47:14 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 10 Sep 2008 23:47:14 +0200 (CEST) Subject: [Python-checkins] r66375 - peps/trunk/pep-3118.txt Message-ID: <20080910214714.806991E4013@bag.python.org> Author: benjamin.peterson Date: Wed Sep 10 23:47:14 2008 New Revision: 66375 Log: remove memoryview.size from PEP Modified: peps/trunk/pep-3118.txt Modified: peps/trunk/pep-3118.txt ============================================================================== --- peps/trunk/pep-3118.txt (original) +++ peps/trunk/pep-3118.txt Wed Sep 10 23:47:14 2008 @@ -525,7 +525,6 @@ * ``shape`` * ``strides`` * ``suboffsets`` -* ``size`` * ``readonly`` * ``ndim`` From python-checkins at python.org Thu Sep 11 00:04:46 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Thu, 11 Sep 2008 00:04:46 +0200 (CEST) Subject: [Python-checkins] r66377 - in python/trunk: Misc/NEWS Modules/_collectionsmodule.c Modules/_multiprocessing/connection.h Modules/_multiprocessing/multiprocessing.h Python/Python-ast.c Message-ID: <20080910220446.40BB01E401E@bag.python.org> Author: amaury.forgeotdarc Date: Thu Sep 11 00:04:45 2008 New Revision: 66377 Log: #3743: PY_FORMAT_SIZE_T is designed for the OS "printf" functions, not for PyString_FromFormat which has an independent implementation, and uses "%zd". This makes a difference on win64, where printf needs "%Id" to display 64bit values. For example, queue.__repr__ was incorrect. Reviewed by Martin von Loewis. Modified: python/trunk/Misc/NEWS python/trunk/Modules/_collectionsmodule.c python/trunk/Modules/_multiprocessing/connection.h python/trunk/Modules/_multiprocessing/multiprocessing.h python/trunk/Python/Python-ast.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 11 00:04:45 2008 @@ -12,6 +12,14 @@ Core and Builtins ----------------- +- Issue #3743: In a few places, PY_FORMAT_SIZE_T was incorrectly used with + PyString_FromFormat or PyErr_Format to display size_t values. The macro + PY_FORMAT_SIZE_T is designed to select the correct format for the OS + ``printf`` function, whereas PyString_FromFormat has an independent + implementation and uses "%zd" on all platforms for size_t values. + This makes a difference on win64, where ``printf`` needs "%Id" to display + 64bit values. + - Issue #3634: _weakref.ref(Exception).__init__() gave invalid return value on error. Modified: python/trunk/Modules/_collectionsmodule.c ============================================================================== --- python/trunk/Modules/_collectionsmodule.c (original) +++ python/trunk/Modules/_collectionsmodule.c Thu Sep 11 00:04:45 2008 @@ -670,7 +670,7 @@ return NULL; } if (((dequeobject *)deque)->maxlen != -1) - fmt = PyString_FromFormat("deque(%%r, maxlen=%" PY_FORMAT_SIZE_T "d)", + fmt = PyString_FromFormat("deque(%%r, maxlen=%zd)", ((dequeobject *)deque)->maxlen); else fmt = PyString_FromString("deque(%r)"); Modified: python/trunk/Modules/_multiprocessing/connection.h ============================================================================== --- python/trunk/Modules/_multiprocessing/connection.h (original) +++ python/trunk/Modules/_multiprocessing/connection.h Thu Sep 11 00:04:45 2008 @@ -47,8 +47,8 @@ return NULL; if (handle == INVALID_HANDLE_VALUE || (Py_ssize_t)handle < 0) { - PyErr_Format(PyExc_IOError, "invalid handle %" - PY_FORMAT_SIZE_T "d", (Py_ssize_t)handle); + PyErr_Format(PyExc_IOError, "invalid handle %zd", + (Py_ssize_t)handle); return NULL; } @@ -396,7 +396,7 @@ static char *conn_type[] = {"read-only", "write-only", "read-write"}; assert(self->flags >= 1 && self->flags <= 3); - return FROM_FORMAT("<%s %s, handle %" PY_FORMAT_SIZE_T "d>", + return FROM_FORMAT("<%s %s, handle %zd>", conn_type[self->flags - 1], CONNECTION_NAME, (Py_ssize_t)self->handle); } Modified: python/trunk/Modules/_multiprocessing/multiprocessing.h ============================================================================== --- python/trunk/Modules/_multiprocessing/multiprocessing.h (original) +++ python/trunk/Modules/_multiprocessing/multiprocessing.h Thu Sep 11 00:04:45 2008 @@ -56,7 +56,6 @@ # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN # define F_PY_SSIZE_T "i" -# define PY_FORMAT_SIZE_T "" # define PyInt_FromSsize_t(n) PyInt_FromLong((long)n) #else # define F_PY_SSIZE_T "n" Modified: python/trunk/Python/Python-ast.c ============================================================================== --- python/trunk/Python/Python-ast.c (original) +++ python/trunk/Python/Python-ast.c Thu Sep 11 00:04:45 2008 @@ -387,7 +387,7 @@ if (PyTuple_GET_SIZE(args) > 0) { if (numfields != PyTuple_GET_SIZE(args)) { PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s" - "%" PY_FORMAT_SIZE_T "d positional argument%s", + "%zd positional argument%s", Py_TYPE(self)->tp_name, numfields == 0 ? "" : "either 0 or ", numfields, numfields == 1 ? "" : "s"); From python-checkins at python.org Thu Sep 11 00:28:00 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 11 Sep 2008 00:28:00 +0200 (CEST) Subject: [Python-checkins] r66379 - python/trunk/Parser/asdl_c.py Message-ID: <20080910222800.63FFD1E4013@bag.python.org> Author: benjamin.peterson Date: Thu Sep 11 00:28:00 2008 New Revision: 66379 Log: update asdl_c.py from r66377 Modified: python/trunk/Parser/asdl_c.py Modified: python/trunk/Parser/asdl_c.py ============================================================================== --- python/trunk/Parser/asdl_c.py (original) +++ python/trunk/Parser/asdl_c.py Thu Sep 11 00:28:00 2008 @@ -596,7 +596,7 @@ if (PyTuple_GET_SIZE(args) > 0) { if (numfields != PyTuple_GET_SIZE(args)) { PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s" - "%" PY_FORMAT_SIZE_T "d positional argument%s", + "%zd positional argument%s", Py_TYPE(self)->tp_name, numfields == 0 ? "" : "either 0 or ", numfields, numfields == 1 ? "" : "s"); From buildbot at python.org Thu Sep 11 00:36:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 10 Sep 2008 22:36:08 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080910223608.96A1C1E4018@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/229 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 11 08:53:31 2008 From: python-checkins at python.org (martin.v.loewis) Date: Thu, 11 Sep 2008 08:53:31 +0200 (CEST) Subject: [Python-checkins] r66383 - in python/trunk: Misc/NEWS Objects/obmalloc.c Message-ID: <20080911065331.6848A1E4013@bag.python.org> Author: martin.v.loewis Date: Thu Sep 11 08:53:30 2008 New Revision: 66383 Log: Issue #3642: Suppress warning in obmalloc when size_t is larger than uint. Reverts r65975. Reviewed by Brett Cannon. Modified: python/trunk/Misc/NEWS python/trunk/Objects/obmalloc.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 11 08:53:30 2008 @@ -12,6 +12,8 @@ Core and Builtins ----------------- +- Issue #3642: Suppress warning in obmalloc when size_t is larger than uint. + - Issue #3743: In a few places, PY_FORMAT_SIZE_T was incorrectly used with PyString_FromFormat or PyErr_Format to display size_t values. The macro PY_FORMAT_SIZE_T is designed to select the correct format for the OS @@ -52,9 +54,6 @@ - Fix problem using wrong name in decimal module reported by pychecker. -- Issue #3642: Changed type of numarenas from uint to size_t - in order to silence a compilier warning on 64bit OSes. - - Silenced another compiler warning about a used but not defined function 'stringlib_contains_obj'. Modified: python/trunk/Objects/obmalloc.c ============================================================================== --- python/trunk/Objects/obmalloc.c (original) +++ python/trunk/Objects/obmalloc.c Thu Sep 11 08:53:30 2008 @@ -517,7 +517,7 @@ #endif if (unused_arena_objects == NULL) { uint i; - size_t numarenas; + uint numarenas; size_t nbytes; /* Double the number of arena objects on each allocation. @@ -526,8 +526,10 @@ numarenas = maxarenas ? maxarenas << 1 : INITIAL_ARENA_OBJECTS; if (numarenas <= maxarenas) return NULL; /* overflow */ +#if SIZEOF_SIZE_T <= SIZEOF_INT if (numarenas > PY_SIZE_MAX / sizeof(*arenas)) return NULL; /* overflow */ +#endif nbytes = numarenas * sizeof(*arenas); arenaobj = (struct arena_object *)realloc(arenas, nbytes); if (arenaobj == NULL) From python-checkins at python.org Thu Sep 11 09:15:01 2008 From: python-checkins at python.org (georg.brandl) Date: Thu, 11 Sep 2008 09:15:01 +0200 (CEST) Subject: [Python-checkins] r66385 - doctools/trunk/sphinx/texinputs/Makefile Message-ID: <20080911071501.AEF7D1E4013@bag.python.org> Author: georg.brandl Date: Thu Sep 11 09:15:01 2008 New Revision: 66385 Log: Quote input file names, so that it works when they contain shell-metacharacters. Modified: doctools/trunk/sphinx/texinputs/Makefile Modified: doctools/trunk/sphinx/texinputs/Makefile ============================================================================== --- doctools/trunk/sphinx/texinputs/Makefile (original) +++ doctools/trunk/sphinx/texinputs/Makefile Thu Sep 11 09:15:01 2008 @@ -31,22 +31,22 @@ # The number of LaTeX runs is quite conservative, but I don't expect it # to get run often, so the little extra time won't hurt. %.dvi: %.tex - latex $< - latex $< - latex $< - -makeindex -s python.ist $(basename $<).idx - -makeindex -s python.ist $(basename mod$<).idx - latex $< - latex $< + latex '$<' + latex '$<' + latex '$<' + -makeindex -s python.ist $(basename '$<').idx + -makeindex -s python.ist $(basename 'mod$<').idx + latex '$<' + latex '$<' %.pdf: %.tex - pdflatex $< - pdflatex $< - pdflatex $< - -makeindex -s python.ist $(basename $<).idx - -makeindex -s python.ist $(basename mod$<).idx - pdflatex $< - pdflatex $< + pdflatex '$<' + pdflatex '$<' + pdflatex '$<' + -makeindex -s python.ist $(basename '$<').idx + -makeindex -s python.ist $(basename 'mod$<').idx + pdflatex '$<' + pdflatex '$<' clean: rm -f *.pdf *.dvi *.ps From buildbot at python.org Thu Sep 11 09:40:59 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 07:40:59 +0000 Subject: [Python-checkins] buildbot failure in alpha Tru64 5.1 3.0 Message-ID: <20080911074059.8759F1E4023@bag.python.org> The Buildbot has detected a new failure of alpha Tru64 5.1 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/alpha%20Tru64%205.1%203.0/builds/1344 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-tru64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Thu Sep 11 09:53:50 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 07:53:50 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 trunk Message-ID: <20080911075350.735A91E4013@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%20trunk/builds/1513 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Thu Sep 11 10:07:59 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 08:07:59 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080911080759.9BBA51E4013@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/549 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Thu Sep 11 10:25:24 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 08:25:24 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080911082524.B7F621E401C@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/600 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From nnorwitz at gmail.com Thu Sep 11 10:52:26 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Sep 2008 04:52:26 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080911085226.GA1674@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12782 refs] [12782 refs] [21311 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12787 refs] [12787 refs] [12787 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17316 refs] test_pyexpat test_queue test_quopri [15301 refs] [15301 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12782 refs] [12782 refs] [12785 refs] [12782 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [14682 refs] [12997 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] . [12782 refs] [12782 refs] this bit of output is from a test of stdout in a different process ... [12782 refs] [12782 refs] [12997 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [12782 refs] [12782 refs] [13011 refs] [12805 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12785 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16272 refs] [15928 refs] [15739 refs] [15739 refs] [15739 refs] [15739 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650008 refs] From nnorwitz at gmail.com Thu Sep 11 11:20:50 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Sep 2008 05:20:50 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080911092050.GA4475@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [16956 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12782 refs] [12782 refs] [21311 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12787 refs] [12787 refs] [12787 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17316 refs] test_pyexpat test_queue test_quopri [15301 refs] [15301 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12782 refs] [12782 refs] [12785 refs] [12782 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [14682 refs] [12997 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] . [12782 refs] [12782 refs] this bit of output is from a test of stdout in a different process ... [12782 refs] [12782 refs] [12997 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [12782 refs] [12782 refs] [13011 refs] [12805 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12785 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16272 refs] [16825 refs] [15739 refs] [15739 refs] [15739 refs] [15739 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649274 refs] From python-checkins at python.org Thu Sep 11 14:11:07 2008 From: python-checkins at python.org (nick.coghlan) Date: Thu, 11 Sep 2008 14:11:07 +0200 (CEST) Subject: [Python-checkins] r66386 - in python/trunk: Doc/library/test.rst Doc/library/warnings.rst Lib/test/test_import.py Lib/test/test_py3kwarn.py Lib/test/test_structmembers.py Lib/test/test_sundry.py Lib/test/test_support.py Lib/test/test_symtable.py Lib/test/test_warnings.py Lib/warnings.py Misc/NEWS Message-ID: <20080911121107.265011E4013@bag.python.org> Author: nick.coghlan Date: Thu Sep 11 14:11:06 2008 New Revision: 66386 Log: Issue #3781: Final cleanup of warnings.catch_warnings and its usage in the test suite. Closes issue w.r.t. 2.6 (R: Brett Cannon) Modified: python/trunk/Doc/library/test.rst python/trunk/Doc/library/warnings.rst python/trunk/Lib/test/test_import.py python/trunk/Lib/test/test_py3kwarn.py python/trunk/Lib/test/test_structmembers.py python/trunk/Lib/test/test_sundry.py python/trunk/Lib/test/test_support.py python/trunk/Lib/test/test_symtable.py python/trunk/Lib/test/test_warnings.py python/trunk/Lib/warnings.py python/trunk/Misc/NEWS Modified: python/trunk/Doc/library/test.rst ============================================================================== --- python/trunk/Doc/library/test.rst (original) +++ python/trunk/Doc/library/test.rst Thu Sep 11 14:11:06 2008 @@ -291,18 +291,26 @@ This will run all tests defined in the named module. -.. function:: catch_warning(module=warnings, record=True) +.. function:: check_warnings() - Return a context manager that guards the warnings filter from being - permanently changed and optionally alters the :func:`showwarning` - function to record the details of any warnings that are issued in the - managed context. Details of the most recent call to :func:`showwarning` - are saved directly on the context manager, while details of previous - warnings can be retrieved from the ``warnings`` list. + A convenience wrapper for ``warnings.catch_warnings()`` that makes + it easier to test that a warning was correctly raised with a single + assertion. It is approximately equivalent to calling + ``warnings.catch_warnings(record=True)``. + + The main difference is that on entry to the context manager, a + :class:`WarningRecorder` instance is returned instead of a simple list. + The underlying warnings list is available via the recorder object's + :attr:`warnings` attribute, while the attributes of the last raised + warning are also accessible directly on the object. If no warning has + been raised, then the latter attributes will all be :const:`None`. + + A :meth:`reset` method is also provided on the recorder object. This + method simply clears the warning list. The context manager is used like this:: - with catch_warning() as w: + with check_warnings() as w: warnings.simplefilter("always") warnings.warn("foo") assert str(w.message) == "foo" @@ -310,15 +318,8 @@ assert str(w.message) == "bar" assert str(w.warnings[0].message) == "foo" assert str(w.warnings[1].message) == "bar" - - By default, the real :mod:`warnings` module is affected - the ability - to select a different module is provided for the benefit of the - :mod:`warnings` module's own unit tests. - The ``record`` argument specifies whether or not the :func:`showwarning` - function is replaced. Note that recording the warnings in this fashion - also prevents them from being written to sys.stderr. If set to ``False``, - the standard handling of warning messages is left in place (however, the - original handling is still restored at the end of the block). + w.reset() + assert len(w.warnings) == 0 .. versionadded:: 2.6 @@ -366,4 +367,10 @@ Temporarily unset the environment variable ``envvar``. +.. class:: WarningsRecorder() + + Class used to record warnings for unit tests. See documentation of + :func:`check_warnings` above for more details. + + .. versionadded:: 2.6 Modified: python/trunk/Doc/library/warnings.rst ============================================================================== --- python/trunk/Doc/library/warnings.rst (original) +++ python/trunk/Doc/library/warnings.rst Thu Sep 11 14:11:06 2008 @@ -163,9 +163,9 @@ Temporarily Suppressing Warnings -------------------------------- -If you are using code that you know will raise a warning, such some deprecated -function, but do not want to see the warning, then suppress the warning using -the :class:`catch_warnings` context manager:: +If you are using code that you know will raise a warning, such as a deprecated +function, but do not want to see the warning, then it is possible to suppress +the warning using the :class:`catch_warnings` context manager:: import warnings @@ -216,7 +216,15 @@ Once the context manager exits, the warnings filter is restored to its state when the context was entered. This prevents tests from changing the warnings filter in unexpected ways between tests and leading to indeterminate test -results. +results. The :func:`showwarning` function in the module is also restored to +its original value. + +When testing multiple operations that raise the same kind of warning, it +is important to test them in a manner that confirms each operation is raising +a new warning (e.g. set warnings to be raised as exceptions and check the +operations raise exceptions, check that the length of the warning list +continues to increase after each operation, or else delete the previous +entries from the warnings list before each new operation). .. _warning-functions: @@ -330,16 +338,18 @@ .. class:: catch_warnings([\*, record=False, module=None]) - A context manager that copies and, upon exit, restores the warnings filter. - If the *record* argument is False (the default) the context manager returns - :class:`None`. If *record* is true, a list is returned that is populated - with objects as seen by a custom :func:`showwarning` function (which also - suppresses output to ``sys.stdout``). Each object has attributes with the - same names as the arguments to :func:`showwarning`. + A context manager that copies and, upon exit, restores the warnings filter + and the :func:`showwarning` function. + If the *record* argument is :const:`False` (the default) the context manager + returns :class:`None` on entry. If *record* is :const:`True`, a list is + returned that is progressively populated with objects as seen by a custom + :func:`showwarning` function (which also suppresses output to ``sys.stdout``). + Each object in the list has attributes with the same names as the arguments to + :func:`showwarning`. The *module* argument takes a module that will be used instead of the module returned when you import :mod:`warnings` whose filter will be - protected. This arguments exists primarily for testing the :mod:`warnings` + protected. This argument exists primarily for testing the :mod:`warnings` module itself. .. note:: Modified: python/trunk/Lib/test/test_import.py ============================================================================== --- python/trunk/Lib/test/test_import.py (original) +++ python/trunk/Lib/test/test_import.py Thu Sep 11 14:11:06 2008 @@ -5,7 +5,7 @@ import sys import py_compile import warnings -from test.test_support import unlink, TESTFN, unload, run_unittest +from test.test_support import unlink, TESTFN, unload, run_unittest, check_warnings def remove_files(name): @@ -279,17 +279,17 @@ check_relative() # Check relative fails with only __package__ wrong ns = dict(__package__='foo', __name__='test.notarealmodule') - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: check_absolute() - self.assert_('foo' in str(w[-1].message)) - self.assertEqual(w[-1].category, RuntimeWarning) + self.assert_('foo' in str(w.message)) + self.assertEqual(w.category, RuntimeWarning) self.assertRaises(SystemError, check_relative) # Check relative fails with __package__ and __name__ wrong ns = dict(__package__='foo', __name__='notarealpkg.notarealmodule') - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: check_absolute() - self.assert_('foo' in str(w[-1].message)) - self.assertEqual(w[-1].category, RuntimeWarning) + self.assert_('foo' in str(w.message)) + self.assertEqual(w.category, RuntimeWarning) self.assertRaises(SystemError, check_relative) # Check both fail with package set to a non-string ns = dict(__package__=object()) Modified: python/trunk/Lib/test/test_py3kwarn.py ============================================================================== --- python/trunk/Lib/test/test_py3kwarn.py (original) +++ python/trunk/Lib/test/test_py3kwarn.py Thu Sep 11 14:11:06 2008 @@ -1,6 +1,7 @@ import unittest import sys -from test.test_support import CleanImport, TestSkipped, run_unittest +from test.test_support import (check_warnings, CleanImport, + TestSkipped, run_unittest) import warnings from contextlib import nested @@ -8,15 +9,22 @@ if not sys.py3kwarning: raise TestSkipped('%s must be run with the -3 flag' % __name__) +def reset_module_registry(module): + try: + registry = module.__warningregistry__ + except AttributeError: + pass + else: + registry.clear() class TestPy3KWarnings(unittest.TestCase): def assertWarning(self, _, warning, expected_message): - self.assertEqual(str(warning[-1].message), expected_message) + self.assertEqual(str(warning.message), expected_message) def test_backquote(self): expected = 'backquote not supported in 3.x; use repr()' - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: exec "`2`" in {} self.assertWarning(None, w, expected) @@ -27,55 +35,71 @@ exec expr in {'f' : f} expected = "assignment to True or False is forbidden in 3.x" - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: safe_exec("True = False") self.assertWarning(None, w, expected) + w.reset() safe_exec("False = True") self.assertWarning(None, w, expected) + w.reset() try: safe_exec("obj.False = True") except NameError: pass self.assertWarning(None, w, expected) + w.reset() try: safe_exec("obj.True = False") except NameError: pass self.assertWarning(None, w, expected) + w.reset() safe_exec("def False(): pass") self.assertWarning(None, w, expected) + w.reset() safe_exec("def True(): pass") self.assertWarning(None, w, expected) + w.reset() safe_exec("class False: pass") self.assertWarning(None, w, expected) + w.reset() safe_exec("class True: pass") self.assertWarning(None, w, expected) + w.reset() safe_exec("def f(True=43): pass") self.assertWarning(None, w, expected) + w.reset() safe_exec("def f(False=None): pass") self.assertWarning(None, w, expected) + w.reset() safe_exec("f(False=True)") self.assertWarning(None, w, expected) + w.reset() safe_exec("f(True=1)") self.assertWarning(None, w, expected) def test_type_inequality_comparisons(self): expected = 'type inequality comparisons not supported in 3.x' - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(int < str, w, expected) + w.reset() self.assertWarning(type < object, w, expected) def test_object_inequality_comparisons(self): expected = 'comparing unequal types not supported in 3.x' - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(str < [], w, expected) + w.reset() self.assertWarning(object() < (1, 2), w, expected) def test_dict_inequality_comparisons(self): expected = 'dict inequality comparisons not supported in 3.x' - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning({} < {2:3}, w, expected) + w.reset() self.assertWarning({} <= {}, w, expected) + w.reset() self.assertWarning({} > {2:3}, w, expected) + w.reset() self.assertWarning({2:3} >= {}, w, expected) def test_cell_inequality_comparisons(self): @@ -86,8 +110,9 @@ return g cell0, = f(0).func_closure cell1, = f(1).func_closure - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(cell0 == cell1, w, expected) + w.reset() self.assertWarning(cell0 < cell1, w, expected) def test_code_inequality_comparisons(self): @@ -96,10 +121,13 @@ pass def g(x): pass - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(f.func_code < g.func_code, w, expected) + w.reset() self.assertWarning(f.func_code <= g.func_code, w, expected) + w.reset() self.assertWarning(f.func_code >= g.func_code, w, expected) + w.reset() self.assertWarning(f.func_code > g.func_code, w, expected) def test_builtin_function_or_method_comparisons(self): @@ -107,10 +135,13 @@ 'inequality comparisons not supported in 3.x') func = eval meth = {}.get - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(func < meth, w, expected) + w.reset() self.assertWarning(func > meth, w, expected) + w.reset() self.assertWarning(meth <= func, w, expected) + w.reset() self.assertWarning(meth >= func, w, expected) def test_sort_cmp_arg(self): @@ -118,15 +149,18 @@ lst = range(5) cmp = lambda x,y: -1 - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(lst.sort(cmp=cmp), w, expected) + w.reset() self.assertWarning(sorted(lst, cmp=cmp), w, expected) + w.reset() self.assertWarning(lst.sort(cmp), w, expected) + w.reset() self.assertWarning(sorted(lst, cmp), w, expected) def test_sys_exc_clear(self): expected = 'sys.exc_clear() not supported in 3.x; use except clauses' - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(sys.exc_clear(), w, expected) def test_methods_members(self): @@ -135,17 +169,17 @@ __methods__ = ['a'] __members__ = ['b'] c = C() - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(dir(c), w, expected) def test_softspace(self): expected = 'file.softspace not supported in 3.x' with file(__file__) as f: - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(f.softspace, w, expected) def set(): f.softspace = 0 - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(set(), w, expected) def test_slice_methods(self): @@ -161,59 +195,60 @@ expected = "in 3.x, __{0}slice__ has been removed; use __{0}item__" for obj in (Spam(), Egg()): - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(obj[1:2], w, expected.format('get')) + w.reset() del obj[3:4] self.assertWarning(None, w, expected.format('del')) + w.reset() obj[4:5] = "eggs" self.assertWarning(None, w, expected.format('set')) def test_tuple_parameter_unpacking(self): expected = "tuple parameter unpacking has been removed in 3.x" - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: exec "def f((a, b)): pass" self.assertWarning(None, w, expected) def test_buffer(self): expected = 'buffer() not supported in 3.x' - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(buffer('a'), w, expected) def test_file_xreadlines(self): expected = ("f.xreadlines() not supported in 3.x, " "try 'for line in f' instead") with file(__file__) as f: - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: self.assertWarning(f.xreadlines(), w, expected) def test_hash_inheritance(self): - with warnings.catch_warnings(record=True) as w: + with check_warnings() as w: # With object as the base class class WarnOnlyCmp(object): def __cmp__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") - del w[:] + w.reset() class WarnOnlyEq(object): def __eq__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") - del w[:] + w.reset() class WarnCmpAndEq(object): def __cmp__(self, other): pass def __eq__(self, other): pass - self.assertEqual(len(w), 2) - self.assertWarning(None, w[:1], + self.assertEqual(len(w.warnings), 2) + self.assertWarning(None, w.warnings[0], "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") - del w[:] + w.reset() class NoWarningOnlyHash(object): def __hash__(self): pass - self.assertEqual(len(w), 0) - del w[:] + self.assertEqual(len(w.warnings), 0) # With an intermediate class in the heirarchy class DefinesAllThree(object): def __cmp__(self, other): pass @@ -221,28 +256,28 @@ def __hash__(self): pass class WarnOnlyCmp(DefinesAllThree): def __cmp__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") - del w[:] + w.reset() class WarnOnlyEq(DefinesAllThree): def __eq__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") - del w[:] + w.reset() class WarnCmpAndEq(DefinesAllThree): def __cmp__(self, other): pass def __eq__(self, other): pass - self.assertEqual(len(w), 2) - self.assertWarning(None, w[:1], + self.assertEqual(len(w.warnings), 2) + self.assertWarning(None, w.warnings[0], "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") - del w[:] + w.reset() class NoWarningOnlyHash(DefinesAllThree): def __hash__(self): pass - self.assertEqual(len(w), 0) + self.assertEqual(len(w.warnings), 0) class TestStdlibRemovals(unittest.TestCase): @@ -283,6 +318,9 @@ """Make sure the specified module, when imported, raises a DeprecationWarning and specifies itself in the message.""" with nested(CleanImport(module_name), warnings.catch_warnings()): + # XXX: This is not quite enough for extension modules - those + # won't rerun their init code even with CleanImport. + # You can see this easily by running the whole test suite with -3 warnings.filterwarnings("error", ".+ removed", DeprecationWarning, __name__) try: @@ -320,12 +358,15 @@ def dumbo(where, names, args): pass for path_mod in ("ntpath", "macpath", "os2emxpath", "posixpath"): mod = __import__(path_mod) - with warnings.catch_warnings(record=True) as w: + reset_module_registry(mod) + with check_warnings() as w: mod.walk("crashers", dumbo, None) - self.assertEquals(str(w[-1].message), msg) + self.assertEquals(str(w.message), msg) def test_commands_members(self): import commands + # commands module tests may have already triggered this warning + reset_module_registry(commands) members = {"mk2arg" : 2, "mkarg" : 1, "getstatus" : 1} for name, arg_count in members.items(): with warnings.catch_warnings(): @@ -335,6 +376,8 @@ def test_reduce_move(self): from operator import add + # reduce tests may have already triggered this warning + reset_module_registry(unittest) with warnings.catch_warnings(): warnings.filterwarnings("error", "reduce") self.assertRaises(DeprecationWarning, reduce, add, range(10)) @@ -342,6 +385,8 @@ def test_mutablestring_removal(self): # UserString.MutableString has been removed in 3.0. import UserString + # UserString tests may have already triggered this warning + reset_module_registry(UserString) with warnings.catch_warnings(): warnings.filterwarnings("error", ".*MutableString", DeprecationWarning) @@ -349,7 +394,7 @@ def test_main(): - with warnings.catch_warnings(): + with check_warnings(): warnings.simplefilter("always") run_unittest(TestPy3KWarnings, TestStdlibRemovals) Modified: python/trunk/Lib/test/test_structmembers.py ============================================================================== --- python/trunk/Lib/test/test_structmembers.py (original) +++ python/trunk/Lib/test/test_structmembers.py Thu Sep 11 14:11:06 2008 @@ -66,35 +66,35 @@ class TestWarnings(unittest.TestCase): def has_warned(self, w): - self.assertEqual(w[-1].category, RuntimeWarning) + self.assertEqual(w.category, RuntimeWarning) def test_byte_max(self): - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: ts.T_BYTE = CHAR_MAX+1 self.has_warned(w) def test_byte_min(self): - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: ts.T_BYTE = CHAR_MIN-1 self.has_warned(w) def test_ubyte_max(self): - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: ts.T_UBYTE = UCHAR_MAX+1 self.has_warned(w) def test_short_max(self): - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: ts.T_SHORT = SHRT_MAX+1 self.has_warned(w) def test_short_min(self): - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: ts.T_SHORT = SHRT_MIN-1 self.has_warned(w) def test_ushort_max(self): - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: ts.T_USHORT = USHRT_MAX+1 self.has_warned(w) Modified: python/trunk/Lib/test/test_sundry.py ============================================================================== --- python/trunk/Lib/test/test_sundry.py (original) +++ python/trunk/Lib/test/test_sundry.py Thu Sep 11 14:11:06 2008 @@ -8,7 +8,7 @@ class TestUntestedModules(unittest.TestCase): def test_at_least_import_untested_modules(self): - with warnings.catch_warnings(record=True): + with warnings.catch_warnings(): import CGIHTTPServer import aifc import audiodev Modified: python/trunk/Lib/test/test_support.py ============================================================================== --- python/trunk/Lib/test/test_support.py (original) +++ python/trunk/Lib/test/test_support.py Thu Sep 11 14:11:06 2008 @@ -18,7 +18,7 @@ "is_resource_enabled", "requires", "find_unused_port", "bind_port", "fcmp", "have_unicode", "is_jython", "TESTFN", "HOST", "FUZZ", "findfile", "verify", "vereq", "sortdict", "check_syntax_error", - "open_urlresource", "CleanImport", + "open_urlresource", "check_warnings", "CleanImport", "EnvironmentVarGuard", "captured_output", "captured_stdout", "TransientResource", "transient_internet", "run_with_locale", "set_memlimit", "bigmemtest", "bigaddrspacetest", @@ -381,6 +381,29 @@ return open(fn) +class WarningsRecorder(object): + """Convenience wrapper for the warnings list returned on + entry to the warnings.catch_warnings() context manager. + """ + def __init__(self, warnings_list): + self.warnings = warnings_list + + def __getattr__(self, attr): + if self.warnings: + return getattr(self.warnings[-1], attr) + elif attr in warnings.WarningMessage._WARNING_DETAILS: + return None + raise AttributeError("%r has no attribute %r" % (self, attr)) + + def reset(self): + del self.warnings[:] + + at contextlib.contextmanager +def check_warnings(): + with warnings.catch_warnings(record=True) as w: + yield WarningsRecorder(w) + + class CleanImport(object): """Context manager to force import to return a new module reference. Modified: python/trunk/Lib/test/test_symtable.py ============================================================================== --- python/trunk/Lib/test/test_symtable.py (original) +++ python/trunk/Lib/test/test_symtable.py Thu Sep 11 14:11:06 2008 @@ -60,16 +60,16 @@ def check(w, msg): self.assertEqual(str(w.message), msg) sym = self.top.lookup("glob") - with warnings.catch_warnings(record=True) as w: + with test_support.check_warnings() as w: warnings.simplefilter("always", DeprecationWarning) self.assertFalse(sym.is_vararg()) - check(w[-1].message, "is_vararg() is obsolete and will be removed") + check(w, "is_vararg() is obsolete and will be removed") + w.reset() self.assertFalse(sym.is_keywordarg()) - check(w[-1].message, - "is_keywordarg() is obsolete and will be removed") + check(w, "is_keywordarg() is obsolete and will be removed") + w.reset() self.assertFalse(sym.is_in_tuple()) - check(w[-1].message, - "is_in_tuple() is obsolete and will be removed") + check(w, "is_in_tuple() is obsolete and will be removed") def test_type(self): self.assertEqual(self.top.get_type(), "module") Modified: python/trunk/Lib/test/test_warnings.py ============================================================================== --- python/trunk/Lib/test/test_warnings.py (original) +++ python/trunk/Lib/test/test_warnings.py Thu Sep 11 14:11:06 2008 @@ -517,10 +517,12 @@ wmod = self.module orig_filters = wmod.filters orig_showwarning = wmod.showwarning - with wmod.catch_warnings(record=True, module=wmod): + # Ensure both showwarning and filters are restored when recording + with wmod.catch_warnings(module=wmod, record=True): wmod.filters = wmod.showwarning = object() self.assert_(wmod.filters is orig_filters) self.assert_(wmod.showwarning is orig_showwarning) + # Same test, but with recording disabled with wmod.catch_warnings(module=wmod, record=False): wmod.filters = wmod.showwarning = object() self.assert_(wmod.filters is orig_filters) @@ -528,9 +530,10 @@ def test_catch_warnings_recording(self): wmod = self.module + # Ensure warnings are recorded when requested with wmod.catch_warnings(module=wmod, record=True) as w: self.assertEqual(w, []) - self.assertRaises(AttributeError, getattr, w, 'message') + self.assert_(type(w) is list) wmod.simplefilter("always") wmod.warn("foo") self.assertEqual(str(w[-1].message), "foo") @@ -540,11 +543,61 @@ self.assertEqual(str(w[1].message), "bar") del w[:] self.assertEqual(w, []) + # Ensure warnings are not recorded when not requested orig_showwarning = wmod.showwarning with wmod.catch_warnings(module=wmod, record=False) as w: self.assert_(w is None) self.assert_(wmod.showwarning is orig_showwarning) + def test_catch_warnings_reentry_guard(self): + wmod = self.module + # Ensure catch_warnings is protected against incorrect usage + x = wmod.catch_warnings(module=wmod, record=True) + self.assertRaises(RuntimeError, x.__exit__) + with x: + self.assertRaises(RuntimeError, x.__enter__) + # Same test, but with recording disabled + x = wmod.catch_warnings(module=wmod, record=False) + self.assertRaises(RuntimeError, x.__exit__) + with x: + self.assertRaises(RuntimeError, x.__enter__) + + def test_catch_warnings_defaults(self): + wmod = self.module + orig_filters = wmod.filters + orig_showwarning = wmod.showwarning + # Ensure default behaviour is not to record warnings + with wmod.catch_warnings(module=wmod) as w: + self.assert_(w is None) + self.assert_(wmod.showwarning is orig_showwarning) + self.assert_(wmod.filters is not orig_filters) + self.assert_(wmod.filters is orig_filters) + if wmod is sys.modules['warnings']: + # Ensure the default module is this one + with wmod.catch_warnings() as w: + self.assert_(w is None) + self.assert_(wmod.showwarning is orig_showwarning) + self.assert_(wmod.filters is not orig_filters) + self.assert_(wmod.filters is orig_filters) + + def test_check_warnings(self): + # Explicit tests for the test_support convenience wrapper + wmod = self.module + if wmod is sys.modules['warnings']: + with test_support.check_warnings() as w: + self.assertEqual(w.warnings, []) + wmod.simplefilter("always") + wmod.warn("foo") + self.assertEqual(str(w.message), "foo") + wmod.warn("bar") + self.assertEqual(str(w.message), "bar") + self.assertEqual(str(w.warnings[0].message), "foo") + self.assertEqual(str(w.warnings[1].message), "bar") + w.reset() + self.assertEqual(w.warnings, []) + + + class CCatchWarningTests(CatchWarningTests): module = c_warnings Modified: python/trunk/Lib/warnings.py ============================================================================== --- python/trunk/Lib/warnings.py (original) +++ python/trunk/Lib/warnings.py Thu Sep 11 14:11:06 2008 @@ -331,8 +331,21 @@ """ self._record = record self._module = sys.modules['warnings'] if module is None else module + self._entered = False + + def __repr__(self): + args = [] + if self._record: + args.append("record=True") + if self._module is not sys.modules['warnings']: + args.append("module=%r" % self._module) + name = type(self).__name__ + return "%s(%s)" % (name, ", ".join(args)) def __enter__(self): + if self._entered: + raise RuntimeError("Cannot enter %r twice" % self) + self._entered = True self._filters = self._module.filters self._module.filters = self._filters[:] self._showwarning = self._module.showwarning @@ -346,6 +359,8 @@ return None def __exit__(self, *exc_info): + if not self._entered: + raise RuntimeError("Cannot exit %r without entering first" % self) self._module.filters = self._filters self._module.showwarning = self._showwarning Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 11 14:11:06 2008 @@ -79,9 +79,13 @@ - Issue #3811: The Unicode database was updated to 5.1. +- Issue #3781: Further warnings.catch_warnings() cleanup to prevent + silent misbehaviour when a single instance is nested in multiple + with statements, or when the methods are invoked in the wrong order. + - Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. -- Issue 3781: Clean up the API for warnings.catch_warnings() by having it +- Issue #3781: Clean up the API for warnings.catch_warnings() by having it return a list or None rather than a custom object. - Issue #1638033: Cookie.Morsel gained the httponly attribute. @@ -142,6 +146,10 @@ Tests ----- +- Issue #3781: Add test.test_support.check_warnings() as a convenience + wrapper for warnings.catch_warnings() that makes it easier to check + that expected warning messages are being reported. + - Issue #3796: Some tests functions were not enabled in test_float. - Issue #3768: Move test_py3kwarn over to the new API for catch_warnings(). From buildbot at python.org Thu Sep 11 14:39:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 12:39:53 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080911123953.B1FFA1E402F@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/232 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: nick.coghlan BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest2) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 11 14:48:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 12:48:44 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080911124844.F10B41E4013@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/555 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: nick.coghlan BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Thu Sep 11 15:13:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 13:13:07 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080911131307.A09581E400D@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3928 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: nick.coghlan BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From nnorwitz at gmail.com Thu Sep 11 16:20:58 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Sep 2008 10:20:58 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080911142058.GA8035@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-27021 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12782 refs] [12782 refs] [21311 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12787 refs] [12787 refs] [12787 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17316 refs] test_pyexpat test_queue test_quopri [15301 refs] [15301 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12782 refs] [12782 refs] [12785 refs] [12782 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [14682 refs] [12997 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] [12782 refs] . [12782 refs] [12782 refs] this bit of output is from a test of stdout in a different process ... [12782 refs] [12782 refs] [12997 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry test_symtable test_syntax test_sys [12782 refs] [12782 refs] [13011 refs] [12805 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12785 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16274 refs] [15928 refs] [15739 refs] [15739 refs] [15739 refs] [15739 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [664882 refs] From python-checkins at python.org Thu Sep 11 17:43:27 2008 From: python-checkins at python.org (phillip.eby) Date: Thu, 11 Sep 2008 17:43:27 +0200 (CEST) Subject: [Python-checkins] r66388 - sandbox/trunk/setuptools/setuptools/command/bdist_egg.py Message-ID: <20080911154327.0D1111E4016@bag.python.org> Author: phillip.eby Date: Thu Sep 11 17:43:26 2008 New Revision: 66388 Log: Fix for http://bugs.python.org/setuptools/issue37 - missing __loader__ running under Google App Engine. Modified: sandbox/trunk/setuptools/setuptools/command/bdist_egg.py Modified: sandbox/trunk/setuptools/setuptools/command/bdist_egg.py ============================================================================== --- sandbox/trunk/setuptools/setuptools/command/bdist_egg.py (original) +++ sandbox/trunk/setuptools/setuptools/command/bdist_egg.py Thu Sep 11 17:43:26 2008 @@ -29,7 +29,7 @@ " import sys, pkg_resources, imp", " __file__ = pkg_resources.resource_filename(__name__,%r)" % resource, - " del __bootstrap__, __loader__", + " __loader__ = None; del __bootstrap__, __loader__", " imp.load_dynamic(__name__,__file__)", "__bootstrap__()", "" # terminal \n From python-checkins at python.org Thu Sep 11 17:44:25 2008 From: python-checkins at python.org (phillip.eby) Date: Thu, 11 Sep 2008 17:44:25 +0200 (CEST) Subject: [Python-checkins] r66389 - sandbox/branches/setuptools-0.6/setuptools/command/bdist_egg.py Message-ID: <20080911154425.E36D11E4016@bag.python.org> Author: phillip.eby Date: Thu Sep 11 17:44:25 2008 New Revision: 66389 Log: Fix for http://bugs.python.org/setuptools/issue37 - missing __loader__ running under Google App Engine. (backport from trunk) Modified: sandbox/branches/setuptools-0.6/setuptools/command/bdist_egg.py Modified: sandbox/branches/setuptools-0.6/setuptools/command/bdist_egg.py ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools/command/bdist_egg.py (original) +++ sandbox/branches/setuptools-0.6/setuptools/command/bdist_egg.py Thu Sep 11 17:44:25 2008 @@ -29,7 +29,7 @@ " import sys, pkg_resources, imp", " __file__ = pkg_resources.resource_filename(__name__,%r)" % resource, - " del __bootstrap__, __loader__", + " __loader__ = None; del __bootstrap__, __loader__", " imp.load_dynamic(__name__,__file__)", "__bootstrap__()", "" # terminal \n From nnorwitz at gmail.com Thu Sep 11 22:35:59 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Sep 2008 16:35:59 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080911203559.GA23978@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650325 refs] From python-checkins at python.org Thu Sep 11 22:56:13 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Thu, 11 Sep 2008 22:56:13 +0200 (CEST) Subject: [Python-checkins] r66390 - in python/trunk: Misc/NEWS Misc/find_recursionlimit.py Modules/cPickle.c Message-ID: <20080911205613.E32731E400D@bag.python.org> Author: amaury.forgeotdarc Date: Thu Sep 11 22:56:13 2008 New Revision: 66390 Log: #3640: Correct a crash in cPickle on 64bit platforms, in the case of deeply nested lists or dicts. Reviewed by Martin von Loewis. Modified: python/trunk/Misc/NEWS python/trunk/Misc/find_recursionlimit.py python/trunk/Modules/cPickle.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 11 22:56:13 2008 @@ -75,6 +75,9 @@ Library ------- +- Issue #3640: Pickling a list or a dict uses less local variables, to reduce + stack usage in the case of deeply nested objects. + - Issue #3629: Fix sre "bytecode" validator for an end case. - Issue #3811: The Unicode database was updated to 5.1. Modified: python/trunk/Misc/find_recursionlimit.py ============================================================================== --- python/trunk/Misc/find_recursionlimit.py (original) +++ python/trunk/Misc/find_recursionlimit.py Thu Sep 11 22:56:13 2008 @@ -22,6 +22,7 @@ """ import sys +import itertools class RecursiveBlowup1: def __init__(self): @@ -61,6 +62,23 @@ def test_recurse(): return test_recurse() +def test_cpickle(_cache={}): + try: + import cPickle + except ImportError: + print "cannot import cPickle, skipped!" + return + l = None + for n in itertools.count(): + try: + l = _cache[n] + continue # Already tried and it works, let's save some time + except KeyError: + for i in range(100): + l = [l] + cPickle.dumps(l, protocol=-1) + _cache[n] = l + def check_limit(n, test_func_name): sys.setrecursionlimit(n) if test_func_name.startswith("test_"): @@ -83,5 +101,6 @@ check_limit(limit, "test_init") check_limit(limit, "test_getattr") check_limit(limit, "test_getitem") + check_limit(limit, "test_cpickle") print "Limit of %d is fine" % limit limit = limit + 100 Modified: python/trunk/Modules/cPickle.c ============================================================================== --- python/trunk/Modules/cPickle.c (original) +++ python/trunk/Modules/cPickle.c Thu Sep 11 22:56:13 2008 @@ -1515,8 +1515,8 @@ static int batch_list(Picklerobject *self, PyObject *iter) { - PyObject *obj; - PyObject *slice[BATCHSIZE]; + PyObject *obj = NULL; + PyObject *firstitem = NULL; int i, n; static char append = APPEND; @@ -1545,45 +1545,69 @@ /* proto > 0: write in batches of BATCHSIZE. */ do { - /* Get next group of (no more than) BATCHSIZE elements. */ - for (n = 0; n < BATCHSIZE; ++n) { - obj = PyIter_Next(iter); - if (obj == NULL) { - if (PyErr_Occurred()) - goto BatchFailed; - break; - } - slice[n] = obj; + /* Get first item */ + firstitem = PyIter_Next(iter); + if (firstitem == NULL) { + if (PyErr_Occurred()) + goto BatchFailed; + + /* nothing more to add */ + break; } - if (n > 1) { - /* Pump out MARK, slice[0:n], APPENDS. */ - if (self->write_func(self, &MARKv, 1) < 0) + /* Try to get a second item */ + obj = PyIter_Next(iter); + if (obj == NULL) { + if (PyErr_Occurred()) goto BatchFailed; - for (i = 0; i < n; ++i) { - if (save(self, slice[i], 0) < 0) - goto BatchFailed; - } - if (self->write_func(self, &appends, 1) < 0) - goto BatchFailed; - } - else if (n == 1) { - if (save(self, slice[0], 0) < 0) + + /* Only one item to write */ + if (save(self, firstitem, 0) < 0) goto BatchFailed; if (self->write_func(self, &append, 1) < 0) goto BatchFailed; + Py_CLEAR(firstitem); + break; } - for (i = 0; i < n; ++i) { - Py_DECREF(slice[i]); + /* More than one item to write */ + + /* Pump out MARK, items, APPENDS. */ + if (self->write_func(self, &MARKv, 1) < 0) + goto BatchFailed; + + if (save(self, firstitem, 0) < 0) + goto BatchFailed; + Py_CLEAR(firstitem); + n = 1; + + /* Fetch and save up to BATCHSIZE items */ + while (obj) { + if (save(self, obj, 0) < 0) + goto BatchFailed; + Py_CLEAR(obj); + n += 1; + + if (n == BATCHSIZE) + break; + + obj = PyIter_Next(iter); + if (obj == NULL) { + if (PyErr_Occurred()) + goto BatchFailed; + break; + } } + + if (self->write_func(self, &appends, 1) < 0) + goto BatchFailed; + } while (n == BATCHSIZE); return 0; BatchFailed: - while (--n >= 0) { - Py_DECREF(slice[n]); - } + Py_XDECREF(firstitem); + Py_XDECREF(obj); return -1; } @@ -1659,8 +1683,8 @@ static int batch_dict(Picklerobject *self, PyObject *iter) { - PyObject *p; - PyObject *slice[BATCHSIZE]; + PyObject *p = NULL; + PyObject *firstitem = NULL; int i, n; static char setitem = SETITEM; @@ -1696,56 +1720,85 @@ /* proto > 0: write in batches of BATCHSIZE. */ do { - /* Get next group of (no more than) BATCHSIZE elements. */ - for (n = 0; n < BATCHSIZE; ++n) { - p = PyIter_Next(iter); - if (p == NULL) { - if (PyErr_Occurred()) - goto BatchFailed; - break; - } - if (!PyTuple_Check(p) || PyTuple_Size(p) != 2) { - PyErr_SetString(PyExc_TypeError, "dict items " - "iterator must return 2-tuples"); + /* Get first item */ + firstitem = PyIter_Next(iter); + if (firstitem == NULL) { + if (PyErr_Occurred()) goto BatchFailed; - } - slice[n] = p; + + /* nothing more to add */ + break; + } + if (!PyTuple_Check(firstitem) || PyTuple_Size(firstitem) != 2) { + PyErr_SetString(PyExc_TypeError, "dict items " + "iterator must return 2-tuples"); + goto BatchFailed; } - if (n > 1) { - /* Pump out MARK, slice[0:n], SETITEMS. */ - if (self->write_func(self, &MARKv, 1) < 0) + /* Try to get a second item */ + p = PyIter_Next(iter); + if (p == NULL) { + if (PyErr_Occurred()) goto BatchFailed; - for (i = 0; i < n; ++i) { - p = slice[i]; - if (save(self, PyTuple_GET_ITEM(p, 0), 0) < 0) - goto BatchFailed; - if (save(self, PyTuple_GET_ITEM(p, 1), 0) < 0) - goto BatchFailed; - } - if (self->write_func(self, &setitems, 1) < 0) + + /* Only one item to write */ + if (save(self, PyTuple_GET_ITEM(firstitem, 0), 0) < 0) + goto BatchFailed; + if (save(self, PyTuple_GET_ITEM(firstitem, 1), 0) < 0) goto BatchFailed; + if (self->write_func(self, &setitem, 1) < 0) + goto BatchFailed; + Py_CLEAR(firstitem); + break; } - else if (n == 1) { - p = slice[0]; + + /* More than one item to write */ + + /* Pump out MARK, items, SETITEMS. */ + if (self->write_func(self, &MARKv, 1) < 0) + goto BatchFailed; + + if (save(self, PyTuple_GET_ITEM(firstitem, 0), 0) < 0) + goto BatchFailed; + if (save(self, PyTuple_GET_ITEM(firstitem, 1), 0) < 0) + goto BatchFailed; + Py_CLEAR(firstitem); + n = 1; + + /* Fetch and save up to BATCHSIZE items */ + while (p) { + if (!PyTuple_Check(p) || PyTuple_Size(p) != 2) { + PyErr_SetString(PyExc_TypeError, "dict items " + "iterator must return 2-tuples"); + goto BatchFailed; + } if (save(self, PyTuple_GET_ITEM(p, 0), 0) < 0) goto BatchFailed; if (save(self, PyTuple_GET_ITEM(p, 1), 0) < 0) goto BatchFailed; - if (self->write_func(self, &setitem, 1) < 0) - goto BatchFailed; - } + Py_CLEAR(p); + n += 1; + + if (n == BATCHSIZE) + break; - for (i = 0; i < n; ++i) { - Py_DECREF(slice[i]); + p = PyIter_Next(iter); + if (p == NULL) { + if (PyErr_Occurred()) + goto BatchFailed; + break; + } } + + if (self->write_func(self, &setitems, 1) < 0) + goto BatchFailed; + } while (n == BATCHSIZE); return 0; BatchFailed: - while (--n >= 0) { - Py_DECREF(slice[n]); - } + Py_XDECREF(firstitem); + Py_XDECREF(p); return -1; } From nnorwitz at gmail.com Thu Sep 11 22:59:57 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Sep 2008 16:59:57 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080911205957.GA25297@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649591 refs] From buildbot at python.org Thu Sep 11 23:45:58 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 11 Sep 2008 21:45:58 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080911214559.413021E400D@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/363 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_calendar test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 12 00:04:06 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 12 Sep 2008 00:04:06 +0200 (CEST) Subject: [Python-checkins] r66394 - python/trunk/Doc/library/string.rst Message-ID: <20080911220406.337961E4016@bag.python.org> Author: benjamin.peterson Date: Fri Sep 12 00:04:02 2008 New Revision: 66394 Log: fix typo Modified: python/trunk/Doc/library/string.rst Modified: python/trunk/Doc/library/string.rst ============================================================================== --- python/trunk/Doc/library/string.rst (original) +++ python/trunk/Doc/library/string.rst Fri Sep 12 00:04:02 2008 @@ -375,9 +375,9 @@ | | positive numbers, and a minus sign on negative numbers. | +---------+----------------------------------------------------------+ -The ``'#'`` option is only valid for integers, and only for binary, -octal, or decimal output. If present, it specifies that the output -will be prefixed by ``'0b'``, ``'0o'``, or ``'0x'``, respectively. +The ``'#'`` option is only valid for integers, and only for binary, octal, or +hexadecimal output. If present, it specifies that the output will be prefixed +by ``'0b'``, ``'0o'``, or ``'0x'``, respectively. *width* is a decimal integer defining the minimum field width. If not specified, then the field width will be determined by the content. From python-checkins at python.org Fri Sep 12 00:08:29 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 00:08:29 +0200 (CEST) Subject: [Python-checkins] r66395 - in doctools/trunk/sphinx: environment.py latexwriter.py locale/sphinx.pot templates/defindex.html Message-ID: <20080911220829.928511E400D@bag.python.org> Author: georg.brandl Date: Fri Sep 12 00:08:29 2008 New Revision: 66395 Log: Add _() to some english strings. Modified: doctools/trunk/sphinx/environment.py doctools/trunk/sphinx/latexwriter.py doctools/trunk/sphinx/locale/sphinx.pot doctools/trunk/sphinx/templates/defindex.html Modified: doctools/trunk/sphinx/environment.py ============================================================================== --- doctools/trunk/sphinx/environment.py (original) +++ doctools/trunk/sphinx/environment.py Fri Sep 12 00:08:29 2008 @@ -267,9 +267,9 @@ self.gloss_entries = set() # existing definition labels # Some magically present labels - self.labels['genindex'] = ('genindex', '', 'Index') - self.labels['modindex'] = ('modindex', '', 'Module Index') - self.labels['search'] = ('search', '', 'Search Page') + self.labels['genindex'] = ('genindex', '', _('Index')) + self.labels['modindex'] = ('modindex', '', _('Module Index')) + self.labels['search'] = ('search', '', _('Search Page')) def set_warnfunc(self, func): self._warnfunc = func Modified: doctools/trunk/sphinx/latexwriter.py ============================================================================== --- doctools/trunk/sphinx/latexwriter.py (original) +++ doctools/trunk/sphinx/latexwriter.py Fri Sep 12 00:08:29 2008 @@ -185,7 +185,7 @@ '\n\n' + \ u''.join(self.body) + \ (self.options['modindex'] and - ('\\renewcommand{\\indexname}{%s}' % _('Module index') + + ('\\renewcommand{\\indexname}{%s}' % _('Module Index') + '\\printmodindex' + '\\renewcommand{\\indexname}{%s}\n' % _('Index')) or '') + \ (FOOTER % self.options) Modified: doctools/trunk/sphinx/locale/sphinx.pot ============================================================================== --- doctools/trunk/sphinx/locale/sphinx.pot (original) +++ doctools/trunk/sphinx/locale/sphinx.pot Fri Sep 12 00:08:29 2008 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Sphinx 0.5\n" "Report-Msgid-Bugs-To: EMAIL at ADDRESS\n" -"POT-Creation-Date: 2008-09-06 19:09+0200\n" +"POT-Creation-Date: 2008-09-11 23:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,71 +17,76 @@ "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.3\n" -#: sphinx/builder.py:391 +#: sphinx/builder.py:400 #, python-format msgid "%b %d, %Y" msgstr "" -#: sphinx/builder.py:410 sphinx/templates/defindex.html:21 +#: sphinx/builder.py:419 sphinx/templates/defindex.html:21 msgid "General Index" msgstr "" -#: sphinx/builder.py:410 +#: sphinx/builder.py:419 msgid "index" msgstr "" -#: sphinx/builder.py:412 sphinx/htmlhelp.py:155 +#: sphinx/builder.py:421 sphinx/htmlhelp.py:155 #: sphinx/templates/defindex.html:19 sphinx/templates/modindex.html:2 #: sphinx/templates/modindex.html:13 msgid "Global Module Index" msgstr "" -#: sphinx/builder.py:412 +#: sphinx/builder.py:421 msgid "modules" msgstr "" -#: sphinx/builder.py:448 +#: sphinx/builder.py:457 msgid "next" msgstr "" -#: sphinx/builder.py:455 +#: sphinx/builder.py:464 msgid "previous" msgstr "" -#: sphinx/builder.py:1092 +#: sphinx/builder.py:1108 msgid "Builtins" msgstr "" -#: sphinx/builder.py:1094 +#: sphinx/builder.py:1110 msgid "Module level" msgstr "" -#: sphinx/environment.py:108 sphinx/latexwriter.py:129 +#: sphinx/environment.py:107 sphinx/latexwriter.py:129 #, python-format msgid "%B %d, %Y" msgstr "" -#: sphinx/htmlwriter.py:73 sphinx/static/doctools.js:143 -msgid "Permalink to this definition" +#: sphinx/environment.py:270 sphinx/latexwriter.py:190 +#: sphinx/templates/genindex-single.html:2 +#: sphinx/templates/genindex-split.html:2 +#: sphinx/templates/genindex-split.html:5 sphinx/templates/genindex.html:2 +#: sphinx/templates/genindex.html:5 sphinx/templates/genindex.html:48 +msgid "Index" msgstr "" -#: sphinx/htmlwriter.py:379 sphinx/static/doctools.js:136 -msgid "Permalink to this headline" +#: sphinx/environment.py:271 sphinx/latexwriter.py:188 +msgid "Module Index" msgstr "" -#: sphinx/latexwriter.py:143 -msgid "Release" +#: sphinx/environment.py:272 sphinx/templates/defindex.html:16 +msgid "Search Page" msgstr "" -#: sphinx/latexwriter.py:188 -msgid "Module index" +#: sphinx/htmlwriter.py:73 sphinx/static/doctools.js:145 +msgid "Permalink to this definition" msgstr "" -#: sphinx/latexwriter.py:190 sphinx/templates/genindex-single.html:2 -#: sphinx/templates/genindex-split.html:2 -#: sphinx/templates/genindex-split.html:5 sphinx/templates/genindex.html:2 -#: sphinx/templates/genindex.html:5 sphinx/templates/genindex.html:48 -msgid "Index" +#: sphinx/htmlwriter.py:375 sphinx/static/doctools.js:139 +msgid "Permalink to this headline" +msgstr "" + +#: sphinx/latexwriter.py:143 +msgid "Release" msgstr "" #: sphinx/roles.py:52 sphinx/directives/desc.py:514 @@ -317,29 +322,29 @@ msgid "built-in function" msgstr "" -#: sphinx/static/doctools.js:172 +#: sphinx/static/doctools.js:174 msgid "Hide Search Matches" msgstr "" -#: sphinx/static/searchtools.js:242 +#: sphinx/static/searchtools.js:274 msgid "Searching" msgstr "" -#: sphinx/static/searchtools.js:246 -msgid "Getting search index..." +#: sphinx/static/searchtools.js:279 +msgid "Preparing search..." msgstr "" -#: sphinx/static/searchtools.js:384 sphinx/templates/search.html:18 +#: sphinx/static/searchtools.js:401 sphinx/templates/search.html:18 msgid "Search Results" msgstr "" -#: sphinx/static/searchtools.js:386 +#: sphinx/static/searchtools.js:403 msgid "" "Your search did not match any documents. Please make sure that all words " "are spelled correctly and that you've selected enough categories." msgstr "" -#: sphinx/static/searchtools.js:389 +#: sphinx/static/searchtools.js:405 #, python-format msgid "Search finished, found %s page(s) matching the search query." msgstr "" @@ -360,10 +365,6 @@ msgid "lists all sections and subsections" msgstr "" -#: sphinx/templates/defindex.html:16 -msgid "Search page" -msgstr "" - #: sphinx/templates/defindex.html:17 msgid "search this documentation" msgstr "" Modified: doctools/trunk/sphinx/templates/defindex.html ============================================================================== --- doctools/trunk/sphinx/templates/defindex.html (original) +++ doctools/trunk/sphinx/templates/defindex.html Fri Sep 12 00:08:29 2008 @@ -13,7 +13,7 @@ - +

+ For examples of how Sphinx source files look, use the “Show source” + links on all pages of the documentation apart from this welcome page. +

Links to more documentation generated with Sphinx can be found on the Projects using Sphinx page.

From nnorwitz at gmail.com Fri Sep 12 04:16:28 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Thu, 11 Sep 2008 22:16:28 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080912021628.GA2540@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-32308 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665199 refs] From canadabooks at velcom.ca Fri Sep 12 06:47:53 2008 From: canadabooks at velcom.ca (Fred) Date: Fri, 12 Sep 2008 00:47:53 -0400 Subject: [Python-checkins] Government funds available Message-ID: <20080912051450.EEAF61E4004@bag.python.org> Press Release 12:44:30 PM The American Grants and Loans Book is now available. This publication contains more than 1800 financial programs, subsidies, scholarships, grants and loans offered by the US federal government. It also includes over 700 financing programs available by foundations and associations across the United States. Businesses, students, individuals, municipalities, government departments, institutions, foundations and associations will find a wealth of information that will help them with their new ventures or existing projects. What you get: -Description of Grant available -Url to government website -Full mailing address -Phone and fax number The Canadian Subsidy Directory is also available for Canada. CD version: $69.95 Printed version: $149.95 To order please call: 819-322-7533 If you do not wish to receive communication from us in the future please write "agl" in the subject line to: unsub2 at hotpop.com Canada Books 833 Boise de la Riviere Prevost, Qc Canada J0R 1T0 From nnorwitz at gmail.com Fri Sep 12 10:37:17 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Sep 2008 04:37:17 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080912083717.GA16017@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650325 refs] From nnorwitz at gmail.com Fri Sep 12 11:01:53 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Sep 2008 05:01:53 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080912090153.GA17360@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649590 refs] From contact at nstnetwork.com Fri Sep 12 12:39:55 2008 From: contact at nstnetwork.com (contact at nstnetwork.com) Date: Fri, 12 Sep 2008 18:39:55 +0800 Subject: [Python-checkins] Sell Cisco Systems equipment items Message-ID: <20080912113324.8FBA8C14213@Linux-Mail.com> Hello, We are professional manufacturer,we can supply lots of networking products: 100% compatible,3rd party Cisco Card,GBIC,SFP,module,WIC,Cisco Console cable items,and so on... we have competitive price and excellent capability of filling customers requirements. In addition to high quality,in-time delivery and excellent after-sale service also help us to win customers. please do not hesitate to contact me if you have interested. example of the products: CWDM-SFP-1G WS-G5483, WS-G5487, WS-G5484, WS-G5486, GLC-SX-MM, GLC-LH-SM, GLC-ZX-SM, GLC-T, GLC-SX-MM SFP-GE-L ...... NM-2FE2W-T1, NM-2FE2W-E1, NM-2FE2W-V2, NM-1E, NM-4E, WIC-1T, WIC-2T, WIC-2A/S, WIC-1B/ST, WIC-1ENET, VWIC-1MFT-T1, VWIC-1MFT-E1, VWIC-2MFT-T1, VWIC-2MFT-E1, VWIC-1MFT-G703, VWIC-2MFT-G703, VWIC-1MFT-T1-DI, VWIC-2MFT-T1-DI, ...... WS-C2950-24, WS-C2950T-24, WS-C2950G-24-EI, WS-C2950G-48-EI, WS-X6K-MSFC2-KIT, ...... CONSOLE CABLE, CAB-STACK-1M/3M, CAB-V35MT, CAB-V35FC, CAB-SS-V.35MT, CAB-SS-V.35FC, CAB-SS-232MT, CAB-SS-232FC, CAB-232MT, CAB-232FC, CAB-SS-X21MT, CAB-SS-X21FC, CAB-X21MT, ...... MEM-npe400-512MB, MEM-3660-128mb, MEM2600-32D, MEM2600-16FS, MEM2600XM-64D, MEM-S1-128MB, MEM-S2-256MB, MEM-S2-512MB, MEM-MSFC-128MB, MEM2801-256D, MEM3800-256D, MEM3800-512, MEM3745-256D, MEM1841-256D, MEM180X-256D. Thanks Helen.Zhou Newstar networking technology www.nstnetwork.com Email/MSN: helen at nstnetwork.com AOL helenxuezhou From python-checkins at python.org Fri Sep 12 14:59:15 2008 From: python-checkins at python.org (barry.warsaw) Date: Fri, 12 Sep 2008 14:59:15 +0200 (CEST) Subject: [Python-checkins] r66401 - peps/trunk/pep-0361.txt Message-ID: <20080912125915.3A5FB1E4004@bag.python.org> Author: barry.warsaw Date: Fri Sep 12 14:59:14 2008 New Revision: 66401 Log: update for new schedule Modified: peps/trunk/pep-0361.txt Modified: peps/trunk/pep-0361.txt ============================================================================== --- peps/trunk/pep-0361.txt (original) +++ peps/trunk/pep-0361.txt Fri Sep 12 14:59:14 2008 @@ -19,8 +19,7 @@ release. There will be at least two alpha releases, two beta releases, and - one release candidate. The release date is planned for the - beginning of October, 2008. + one release candidate. The releases are planned for October 2008. Python 2.6 is not only the next advancement in the Python 2 series, it is also a transitional release, helping developers @@ -29,11 +28,13 @@ makes sense to release both versions in at the same time. The precedence for this was set with the Python 1.6 and 2.0 release. - We will be releasing Python 2.6 and 3.0 in lockstep, on a monthly - release cycle. The releases will happen on the first Wednesday of - every month through the beta testing cycle. There will be two - weeks between release candidates. The final releases of Python - 2.6 and 3.0 will happen in lockstep. + Until rc, we will be releasing Python 2.6 and 3.0 in lockstep, on + a monthly release cycle. The releases will happen on the first + Wednesday of every month through the beta testing cycle. Because + Python 2.6 is ready sooner, and because we have outside deadlines + we'd like to meet, we've decided to split the rc releases. Thus + Python 2.6 final is currently planned to come out two weeks before + Python 3.0 final. Release Manager and Crew @@ -57,9 +58,10 @@ Jun 18 2008: Python 2.6b1 and 3.0b1 are released Jul 17 2008: Python 2.6b2 and 3.0b2 are released Aug 20 2008: Python 2.6b3 and 3.0b3 are released - Sep 03 2008: Python 2.6rc1 and 3.0rc1 planned - Sep 17 2008: Python 2.6rc2 and 3.0rc2 planned - Oct 01 2008: Python 2.6 and 3.0 final planned + Sep 12 2008: Python 2.6rc1 planned + Sep 17 2008: Python 2.6rc2 and 3.0rc1 planned + Oct 01 2008: Python 2.6final and 3.0rc2 planned + Oct 15 2008: Python 3.0final planned See the public `Google calendar`_ From python-checkins at python.org Fri Sep 12 15:08:53 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 15:08:53 +0200 (CEST) Subject: [Python-checkins] r66402 - in doctools/trunk: doc/config.rst sphinx/config.py sphinx/highlighting.py sphinx/latexwriter.py sphinx/texinputs/howto.cls sphinx/texinputs/manual.cls sphinx/texinputs/sphinx.sty Message-ID: <20080912130853.1A1A81E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 15:08:52 2008 New Revision: 66402 Log: Restructure LaTeX file template: add new "latex_elements" config value allowing to customize each part of what is written to the tex file. Modified: doctools/trunk/doc/config.rst doctools/trunk/sphinx/config.py doctools/trunk/sphinx/highlighting.py doctools/trunk/sphinx/latexwriter.py doctools/trunk/sphinx/texinputs/howto.cls doctools/trunk/sphinx/texinputs/manual.cls doctools/trunk/sphinx/texinputs/sphinx.sty Modified: doctools/trunk/doc/config.rst ============================================================================== --- doctools/trunk/doc/config.rst (original) +++ doctools/trunk/doc/config.rst Fri Sep 12 15:08:52 2008 @@ -422,14 +422,6 @@ These options influence LaTeX output. -.. confval:: latex_paper_size - - The output paper size (``'letter'`` or ``'a4'``). Default is ``'letter'``. - -.. confval:: latex_font_size - - The font size ('10pt', '11pt' or '12pt'). Default is ``'10pt'``. - .. confval:: latex_documents This value determines how to group the document tree into LaTeX source files. @@ -472,13 +464,91 @@ A list of document names to append as an appendix to all manuals. -.. confval:: latex_preamble +.. confval:: latex_use_modindex - Additional LaTeX markup for the preamble. + If true, add a module index to LaTeX documents. Default is ``True``. + +.. confval:: latex_elements + + .. versionadded:: 0.5 + + A dictionary that contains LaTeX snippets that override those Sphinx usually + puts into the generated ``.tex`` files. Keep in mind that backslashes must be doubled in Python string literals to avoid interpretation as escape sequences. -.. confval:: latex_use_modindex + * Keys that you may want to override include: + + ``'papersize'`` + Paper size option of the document class (``'a4paper'`` or + ``'letterpaper'``), default ``'letterpaper'``. + ``'pointsize'`` + Point size option of the document class (``'10pt'``, ``'11pt'`` or + ``'12pt'``), default ``'10pt'``. + ``'babel'`` + "babel" package inclusion, default ``'\\usepackage{babel}'``. + ``'fontpkg'`` + Font package inclusion, default ``'\\usepackage{times}'`` (which uses + Times and Helvetica). You can set this to ``''`` to use the Computer + Modern fonts. + ``'fncychap'`` + Inclusion of the "fncychap" package (which makes fancy chapter titles), + default ``'\\usepackage[Bjarne]{fncychap}'`` for English documentation, + ``'\\usepackage[Sonny]{fncychap}'`` for internationalized docs (because + the "Bjarne" style uses numbers spelled out in English). Other + "fncychap" styles you can try include "Lenny", "Glenn", "Conny" and + "Rejne". You can also set this to ``''`` to disable fncychap. + ``'preamble'`` + Additional preamble content, default empty. + + * Keys that don't need be overridden unless in special cases are: + + ``'inputenc'`` + "inputenc" package inclusion, default ``'\\usepackage[utf8]{inputenc}'``. + ``'fontenc'`` + "fontenc" package inclusion, default ``'\\usepackage[T1]{fontenc}'``. + ``'maketitle'`` + "maketitle" call, default ``'\\maketitle'``. Override if you want to + generate a differently-styled title page. + ``'tableofcontents'`` + "tableofcontents" call, default ``'\\tableofcontents'``. Override if you + want to generate a different table of contents or put content between the + title page and the TOC. + + * Keys that are set by other options and therefore should not be overridden are: + + ``'docclass'`` + ``'classoptions'`` + ``'title'`` + ``'date'`` + ``'release'`` + ``'author'`` + ``'logo'`` + ``'releasename'`` + ``'makeindex'`` + ``'makemodindex'`` + ``'shorthandoff'`` + ``'printmodindex'`` + ``'printindex'`` + +.. confval:: latex_preamble - If true, add a module index to LaTeX documents. Default is ``True``. + Additional LaTeX markup for the preamble. + + .. deprecated:: 0.5 + Use the ``'preamble'`` key in the :confval:`latex_elements` value. + +.. confval:: latex_paper_size + + The output paper size (``'letter'`` or ``'a4'``). Default is ``'letter'``. + + .. deprecated:: 0.5 + Use the ``'papersize'`` key in the :confval:`latex_elements` value. + +.. confval:: latex_font_size + + The font size ('10pt', '11pt' or '12pt'). Default is ``'10pt'``. + + .. deprecated:: 0.5 + Use the ``'pointsize'`` key in the :confval:`latex_elements` value. Modified: doctools/trunk/sphinx/config.py ============================================================================== --- doctools/trunk/sphinx/config.py (original) +++ doctools/trunk/sphinx/config.py Fri Sep 12 15:08:52 2008 @@ -75,14 +75,18 @@ htmlhelp_basename = ('pydoc', False), # LaTeX options - latex_paper_size = ('letter', False), - latex_font_size = ('10pt', False), latex_documents = ([], False), latex_logo = (None, False), - latex_preamble = ('', False), latex_appendices = ([], False), latex_use_parts = (False, False), latex_use_modindex = (True, False), + # paper_size and font_size are still separate values + # so that you can give them easily on the command line + latex_paper_size = ('letter', False), + latex_font_size = ('10pt', False), + latex_elements = ({}, False), + # now deprecated - use latex_elements + latex_preamble = ('', False), ) def __init__(self, dirname, filename, overrides): Modified: doctools/trunk/sphinx/highlighting.py ============================================================================== --- doctools/trunk/sphinx/highlighting.py (original) +++ doctools/trunk/sphinx/highlighting.py Fri Sep 12 15:08:52 2008 @@ -61,15 +61,15 @@ _lexer.add_filter('raiseonerror') -escape_hl_chars = {ord(u'@'): u'@PYat[]', - ord(u'['): u'@PYlb[]', - ord(u']'): u'@PYrb[]'} +escape_hl_chars = {ord(u'@'): u'@PYGZat[]', + ord(u'['): u'@PYGZlb[]', + ord(u']'): u'@PYGZrb[]'} # used if Pygments is not available _LATEX_STYLES = r''' -\newcommand\PYat{@} -\newcommand\PYlb{[} -\newcommand\PYrb{]} +\newcommand\PYGZat{@} +\newcommand\PYGZlb{[} +\newcommand\PYGZrb{]} ''' @@ -180,5 +180,11 @@ return _LATEX_STYLES # no HTML styles needed return '' - fmter = (self.dest == 'html' and self.hfmter or self.lfmter)[0] - return fmter.get_style_defs() + if self.dest == 'html': + return self.hfmter[0].get_style_defs() + else: + styledefs = self.lfmter[0].get_style_defs() + # workaround for Pygments < 0.12 + if styledefs.startswith('\\newcommand\\at{@}'): + styledefs += _LATEX_STYLES + return styledefs Modified: doctools/trunk/sphinx/latexwriter.py ============================================================================== --- doctools/trunk/sphinx/latexwriter.py (original) +++ doctools/trunk/sphinx/latexwriter.py Fri Sep 12 15:08:52 2008 @@ -14,8 +14,8 @@ import re import sys -import time from os import path +from time import strftime from docutils import nodes, writers from docutils.writers.latex2e import Babel @@ -28,40 +28,38 @@ HEADER = r'''%% Generated by Sphinx. \documentclass[%(papersize)s,%(pointsize)s%(classoptions)s]{%(docclass)s} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{babel} +%(inputenc)s +%(fontenc)s +%(babel)s +%(fontpkg)s +%(fncychap)s +%(preamble)s + \title{%(title)s} \date{%(date)s} \release{%(release)s} \author{%(author)s} \newcommand{\sphinxlogo}{%(logo)s} \renewcommand{\releasename}{%(releasename)s} -%(preamble)s -\makeindex +%(makeindex)s +%(makemodindex)s ''' BEGIN_DOC = r''' \begin{document} %(shorthandoff)s -\maketitle -\tableofcontents +%(maketitle)s +%(tableofcontents)s ''' FOOTER = r''' -\printindex +\renewcommand{\indexname}{%(modindexname)s} +%(printmodindex)s +\renewcommand{\indexname}{%(indexname)s} +%(printindex)s \end{document} ''' -GRAPHICX = r''' -%% Check if we are compiling under latex or pdflatex. -\ifx\pdftexversion\undefined - \usepackage{graphicx} -\else - \usepackage[pdftex]{graphicx} -\fi -''' - class LaTeXWriter(writers.Writer): @@ -118,38 +116,73 @@ ignore_missing_images = False + default_elements = { + 'docclass': 'manual', + 'papersize': 'letterpaper', + 'pointsize': '10pt', + 'classoptions': '', + 'inputenc': '\\usepackage[utf8]{inputenc}', + 'fontenc': '\\usepackage[T1]{fontenc}', + 'babel': '\\usepackage{babel}', + 'fontpkg': '\\usepackage{times}', + 'fncychap': '\\usepackage[Bjarne]{fncychap}', + 'preamble': '', + 'title': '', + 'date': '', + 'release': '', + 'author': '', + 'logo': '', + 'releasename': 'Release', + 'makeindex': '\\makeindex', + 'makemodindex': '\\makemodindex', + 'shorthandoff': '', + 'maketitle': '\\maketitle', + 'tableofcontents': '\\tableofcontents', + 'printmodindex': '\\printmodindex', + 'printindex': '\\printindex', + } + def __init__(self, document, builder): nodes.NodeVisitor.__init__(self, document) self.builder = builder self.body = [] - docclass = document.settings.docclass - paper = builder.config.latex_paper_size + 'paper' - if paper == 'paper': # e.g. command line "-D latex_paper_size=" - paper = 'letterpaper' - date = time.strftime(builder.config.today_fmt or _('%B %d, %Y')) - logo = (builder.config.latex_logo and - '\\includegraphics{%s}\\par' % path.basename(builder.config.latex_logo) - or '') - self.options = {'docclass': docclass, - 'papersize': paper, - 'pointsize': builder.config.latex_font_size, - 'preamble': builder.config.latex_preamble, - 'modindex': builder.config.latex_use_modindex, - 'author': document.settings.author, - 'docname': document.settings.docname, - # if empty, the title is set to the first section title - 'title': document.settings.title, - 'release': builder.config.release, - 'releasename': _('Release'), - 'logo': logo, - 'date': date, - 'classoptions': ',english', - 'shorthandoff': '', - } + + # sort out some elements + papersize = builder.config.latex_paper_size + 'paper' + if papersize == 'paper': # e.g. command line "-D latex_paper_size=" + papersize = 'letterpaper' + + self.elements = self.default_elements.copy() + self.elements.update({ + 'docclass': document.settings.docclass, + 'papersize': papersize, + 'pointsize': builder.config.latex_font_size, + # if empty, the title is set to the first section title + 'title': document.settings.title, + 'date': strftime(builder.config.today_fmt or _('%B %d, %Y')), + 'release': builder.config.release, + 'author': document.settings.author, + 'releasename': _('Release'), + 'preamble': builder.config.latex_preamble, + 'modindexname': _('Module Index'), + 'indexname': _('Index'), + }) + if builder.config.latex_logo: + self.elements['logo'] = '\\includegraphics{%s}\\par' % \ + path.basename(builder.config.latex_logo) if builder.config.language: babel = ExtBabel(builder.config.language) - self.options['classoptions'] += ',' + babel.get_language() - self.shorthandoff = babel.get_shorthandoff() + self.elements['classoptions'] += ',' + babel.get_language() + self.elements['shorthandoff'] = babel.get_shorthandoff() + self.elements['fncychap'] = '\\usepackage[Sonny]{fncychap}' + else: + self.elements['classoptions'] += ',english' + if not builder.config.latex_use_modindex: + self.elements['makemodindex'] = '' + self.elements['printmodindex'] = '' + # allow the user to override them all + self.elements.update(builder.config.latex_elements) + self.highlighter = highlighting.PygmentsBridge( 'latex', builder.config.pygments_style) self.context = [] @@ -160,7 +193,7 @@ self.highlightlang = builder.config.highlight_language self.highlightlinenothreshold = sys.maxint self.written_ids = set() - if docclass == 'manual': + if self.elements['docclass'] == 'manual': if builder.config.latex_use_parts: self.top_sectionlevel = 0 else: @@ -175,25 +208,15 @@ self.first_document = 1 self.this_is_the_title = 1 self.literal_whitespace = 0 - self.need_graphicx = 0 def astext(self): - return (HEADER % self.options) + \ - (self.options['modindex'] and '\\makemodindex\n' or '') + \ - self.highlighter.get_stylesheet() + \ - (self.need_graphicx and GRAPHICX or '') + \ - '\n\n' + \ - u''.join(self.body) + \ - (self.options['modindex'] and - ('\\renewcommand{\\indexname}{%s}' % _('Module Index') + - '\\printmodindex' + - '\\renewcommand{\\indexname}{%s}\n' % _('Index')) or '') + \ - (FOOTER % self.options) + return (HEADER % self.elements + self.highlighter.get_stylesheet() + + u''.join(self.body) + FOOTER % self.elements) def visit_document(self, node): if self.first_document == 1: # the first document is all the regular content ... - self.body.append(BEGIN_DOC) + self.body.append(BEGIN_DOC % self.elements) self.first_document = 0 elif self.first_document == 0: # ... and all others are the appendices @@ -288,8 +311,8 @@ elif self.this_is_the_title: if len(node.children) != 1 and not isinstance(node.children[0], nodes.Text): self.builder.warn('document title is not a single Text node') - if not self.options['title']: - self.options['title'] = node.astext() + if not self.elements['title']: + self.elements['title'] = node.astext() self.this_is_the_title = 0 raise nodes.SkipNode elif isinstance(node.parent, nodes.section): @@ -649,7 +672,6 @@ return res def visit_image(self, node): - self.need_graphicx = 1 attrs = node.attributes pre = [] # in reverse order post = [] @@ -825,7 +847,7 @@ if self.in_title or not uri: self.context.append('') elif uri.startswith('mailto:') or uri.startswith('http:') or \ - uri.startswith('ftp:'): + uri.startswith('https:') or uri.startswith('ftp:'): self.body.append('\\href{%s}{' % self.encode(uri)) self.context.append('}') elif uri.startswith('#'): Modified: doctools/trunk/sphinx/texinputs/howto.cls ============================================================================== --- doctools/trunk/sphinx/texinputs/howto.cls (original) +++ doctools/trunk/sphinx/texinputs/howto.cls Fri Sep 12 15:08:52 2008 @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{howto}[2008/05/01 Document class (Sphinx HOWTO)] +\ProvidesClass{howto}[2008/09/12 Document class (Sphinx HOWTO)] \RequirePackage{fancybox} @@ -12,18 +12,11 @@ \ProcessOptions\relax \LoadClass[twoside]{article} - % Set some sane defaults for section numbering depth and TOC depth. You can % reset these counters in your preamble. % \setcounter{secnumdepth}{2} - -% The "fancyhdr" package makes nicer page footers reasonable to implement, and -% is used to put the chapter and section information in the footers. -% -\RequirePackage{fancyhdr} - % This gives us all the Python-specific markup that we really want. This should % come last. Do not change this. % @@ -34,15 +27,12 @@ % \RequirePackage{makeidx} -% Need to do one of these.... -\newcommand{\py at doHorizontalRule}{\rule{\textwidth}{1pt}} - % Change the title page to look a bit better, and fit in with the fncychap % ``Bjarne'' style a bit better. % \renewcommand{\maketitle}{ - \py at doHorizontalRule + \rule{\textwidth}{1pt} \ifpdf \begingroup % This \def is required to deal with multi-line authors; it @@ -78,7 +68,7 @@ \parskip = 0mm \py at OldTableofcontents \endgroup - \py at doHorizontalRule + \rule{\textwidth}{1pt} \vspace{12pt} } Modified: doctools/trunk/sphinx/texinputs/manual.cls ============================================================================== --- doctools/trunk/sphinx/texinputs/manual.cls (original) +++ doctools/trunk/sphinx/texinputs/manual.cls Fri Sep 12 15:08:52 2008 @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{manual}[2008/05/01 Document class (Sphinx manual)] +\ProvidesClass{manual}[2008/09/12 Document class (Sphinx manual)] \RequirePackage{fancybox} @@ -12,25 +12,12 @@ \ProcessOptions\relax \LoadClass[twoside,openright]{report} - % Set some sane defaults for section numbering depth and TOC depth. You can % reset these counters in your preamble. % \setcounter{secnumdepth}{2} \setcounter{tocdepth}{1} - -% The "fancyhdr" package makes nicer page footers reasonable to implement, and -% is used to put the chapter and section information in the footers. -% -\RequirePackage{fancyhdr} - -% The "fncychap" package is used to get the nice chapter headers. -% -\RequirePackage[Bjarne]{fncychap} -% Do horizontal rules it this way to match: -\newcommand{\py at doHorizontalRule}{\mghrulefill{\RW}} - % This gives us all the Sphinx-specific markup that we really want. This should % come last. Do not change this. % @@ -49,7 +36,7 @@ \begin{titlepage}% \let\footnotesize\small \let\footnoterule\relax - \py at doHorizontalRule% + \rule{\textwidth}{1pt}% \ifpdf \begingroup % This \def is required to deal with multi-line authors; it Modified: doctools/trunk/sphinx/texinputs/sphinx.sty ============================================================================== --- doctools/trunk/sphinx/texinputs/sphinx.sty (original) +++ doctools/trunk/sphinx/texinputs/sphinx.sty Fri Sep 12 15:08:52 2008 @@ -9,8 +9,8 @@ \ProvidesPackage{sphinx}[2008/05/01 LaTeX package (Sphinx markup)] \RequirePackage{textcomp} -\RequirePackage{times} \RequirePackage{fancyvrb} +\RequirePackage{fancyhdr} \RequirePackage{titlesec} \RequirePackage{tabulary} \RequirePackage{amsmath} % for \text @@ -36,18 +36,19 @@ \RequirePackage{framed} -\ifx\pdftexversion\undefined - \RequirePackage{graphicx} -\else - \RequirePackage[pdftex]{graphicx} -\fi - % Uncomment these two lines to ignore the paper size and make the page % size more like a typical published manual. %\renewcommand{\paperheight}{9in} %\renewcommand{\paperwidth}{8.5in} % typical squarish manual %\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' +% For graphicx, check if we are compiling under latex or pdflatex. +\ifx\pdftexversion\undefined + \usepackage{graphicx} +\else + \usepackage[pdftex]{graphicx} +\fi + % for PDF output, use maximal compression \newif\ifpdf\pdffalse \ifx\pdfoutput\undefined\else\ifcase\pdfoutput From python-checkins at python.org Fri Sep 12 15:09:44 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 15:09:44 +0200 (CEST) Subject: [Python-checkins] r66403 - doctools/trunk/CHANGES Message-ID: <20080912130944.421E01E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 15:09:43 2008 New Revision: 66403 Log: Add news entry. Modified: doctools/trunk/CHANGES Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Fri Sep 12 15:09:43 2008 @@ -31,6 +31,10 @@ for highlighting. When ``'python3'`` is selected, console output blocks are recognized like for ``'python'``. +* The new config value ``latex_elements`` allows to override all + LaTeX snippets that Sphinx puts into the generated .tex file by + default. + * ``SerializingHTMLBuilder`` was added as new abstract builder that can be subclassed to serialize build HTML in a specific format. The ``PickleHTMLBuilder`` is a concrete subclass of it that uses From nnorwitz at gmail.com Fri Sep 12 15:41:01 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Sep 2008 09:41:01 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080912134101.GA30883@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-28164 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665194 refs] From python-checkins at python.org Fri Sep 12 15:54:06 2008 From: python-checkins at python.org (gerhard.haering) Date: Fri, 12 Sep 2008 15:54:06 +0200 (CEST) Subject: [Python-checkins] r66404 - in python/trunk: Misc/NEWS Modules/_sqlite/connection.c Message-ID: <20080912135406.801551E4004@bag.python.org> Author: gerhard.haering Date: Fri Sep 12 15:54:06 2008 New Revision: 66404 Log: sqlite3 module: Mark iterdump() method as "Non-standard" like all the other methods not found in DB-API. Modified: python/trunk/Misc/NEWS python/trunk/Modules/_sqlite/connection.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Sep 12 15:54:06 2008 @@ -146,6 +146,8 @@ - Issue #3643: Added a few more checks to _testcapi to prevent segfaults by exploitation of poor argument checking. +- sqlite3: Changed docstring of iterdump() to mark method as "Non-standard". + Tests ----- Modified: python/trunk/Modules/_sqlite/connection.c ============================================================================== --- python/trunk/Modules/_sqlite/connection.c (original) +++ python/trunk/Modules/_sqlite/connection.c Fri Sep 12 15:54:06 2008 @@ -1389,7 +1389,7 @@ {"interrupt", (PyCFunction)pysqlite_connection_interrupt, METH_NOARGS, PyDoc_STR("Abort any pending database operation. Non-standard.")}, {"iterdump", (PyCFunction)pysqlite_connection_iterdump, METH_NOARGS, - PyDoc_STR("Returns iterator to the dump of the database in an SQL text format.")}, + PyDoc_STR("Returns iterator to the dump of the database in an SQL text format. Non-standard.")}, {"__enter__", (PyCFunction)pysqlite_connection_enter, METH_NOARGS, PyDoc_STR("For context manager. Non-standard.")}, {"__exit__", (PyCFunction)pysqlite_connection_exit, METH_VARARGS, From buildbot at python.org Fri Sep 12 16:39:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Sep 2008 14:39:21 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080912143921.EA1701E4004@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/1985 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,gerhard.haering BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-ppc/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_bsddb3 make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 12 17:45:31 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 17:45:31 +0200 (CEST) Subject: [Python-checkins] r66405 - in doctools/branches/0.4.x: CHANGES sphinx/ext/autodoc.py Message-ID: <20080912154531.C79ED1E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 17:45:31 2008 New Revision: 66405 Log: Fix for obscure __import__ behavior: if fromlist contains '', an import of "module." is attempted. Modified: doctools/branches/0.4.x/CHANGES doctools/branches/0.4.x/sphinx/ext/autodoc.py Modified: doctools/branches/0.4.x/CHANGES ============================================================================== --- doctools/branches/0.4.x/CHANGES (original) +++ doctools/branches/0.4.x/CHANGES Fri Sep 12 17:45:31 2008 @@ -1,6 +1,9 @@ Release 0.4.3 (in development) ============================== +* Fix a bug in autodoc that would import a module twice, once as + "module", once as "module.". + * Fix a bug in the HTML writer that created duplicate ``id`` attributes for section titles with docutils 0.5. Modified: doctools/branches/0.4.x/sphinx/ext/autodoc.py ============================================================================== --- doctools/branches/0.4.x/sphinx/ext/autodoc.py (original) +++ doctools/branches/0.4.x/sphinx/ext/autodoc.py Fri Sep 12 17:45:31 2008 @@ -176,7 +176,7 @@ if module in _module_charsets: return _module_charsets[module] try: - filename = __import__(module, None, None, ['']).__file__ + filename = __import__(module, None, None, ['foo']).__file__ except (ImportError, AttributeError): return None if filename[-4:].lower() in ('.pyc', '.pyo'): From python-checkins at python.org Fri Sep 12 17:46:19 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 17:46:19 +0200 (CEST) Subject: [Python-checkins] r66406 - in doctools/trunk: TODO tests/root/contents.txt tests/test_autodoc.py tests/test_build.py Message-ID: <20080912154619.B1AEC1E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 17:46:19 2008 New Revision: 66406 Log: A bit more testing for autodoc. Modified: doctools/trunk/TODO doctools/trunk/tests/root/contents.txt doctools/trunk/tests/test_autodoc.py doctools/trunk/tests/test_build.py Modified: doctools/trunk/TODO ============================================================================== --- doctools/trunk/TODO (original) +++ doctools/trunk/TODO Fri Sep 12 17:46:19 2008 @@ -5,7 +5,6 @@ - RSS generation - extension autodoc directives - files for downloading -- specify node visit functions when adding nodes to app - decide which static files to include - remove redundant
    s in tocs - autoattribute in autodoc Modified: doctools/trunk/tests/root/contents.txt ============================================================================== --- doctools/trunk/tests/root/contents.txt (original) +++ doctools/trunk/tests/root/contents.txt Fri Sep 12 17:46:19 2008 @@ -14,6 +14,7 @@ includes markup math + autodoc Indices and tables ================== Modified: doctools/trunk/tests/test_autodoc.py ============================================================================== --- doctools/trunk/tests/test_autodoc.py (original) +++ doctools/trunk/tests/test_autodoc.py Fri Sep 12 17:46:19 2008 @@ -373,3 +373,9 @@ class CustomDict(dict): """Docstring.""" + +def function(foo, *args, **kwds): + """ + Return spam. + """ + pass Modified: doctools/trunk/tests/test_build.py ============================================================================== --- doctools/trunk/tests/test_build.py (original) +++ doctools/trunk/tests/test_build.py Fri Sep 12 17:46:19 2008 @@ -49,6 +49,11 @@ ".//pre/span[@class='s']": u'???', ".//pre": u'Max Strau?', }, + 'autodoc.html': { + ".//dt[@id='test_autodoc.Class']": '', + ".//dt[@id='test_autodoc.function']/em": '**kwds', + ".//dd": 'Return spam.', + }, } class NslessParser(ET.XMLParser): From python-checkins at python.org Fri Sep 12 17:46:54 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 17:46:54 +0200 (CEST) Subject: [Python-checkins] r66407 - doctools/trunk/sphinx/ext/autodoc.py Message-ID: <20080912154654.236641E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 17:46:53 2008 New Revision: 66407 Log: Forward-port of r66405. Modified: doctools/trunk/sphinx/ext/autodoc.py Modified: doctools/trunk/sphinx/ext/autodoc.py ============================================================================== --- doctools/trunk/sphinx/ext/autodoc.py (original) +++ doctools/trunk/sphinx/ext/autodoc.py Fri Sep 12 17:46:53 2008 @@ -194,7 +194,7 @@ if module in _module_charsets: return _module_charsets[module] try: - filename = __import__(module, None, None, ['']).__file__ + filename = __import__(module, None, None, ['foo']).__file__ except (ImportError, AttributeError): return None if filename[-4:].lower() in ('.pyc', '.pyo'): From python-checkins at python.org Fri Sep 12 17:48:16 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 17:48:16 +0200 (CEST) Subject: [Python-checkins] r66408 - doctools/trunk Message-ID: <20080912154816.7DEE71E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 17:48:16 2008 New Revision: 66408 Log: Blocked revisions 66405 via svnmerge ........ r66405 | georg.brandl | 2008-09-12 17:45:31 +0200 (Fri, 12 Sep 2008) | 3 lines Fix for obscure __import__ behavior: if fromlist contains '', an import of "module." is attempted. ........ Modified: doctools/trunk/ (props changed) From python-checkins at python.org Fri Sep 12 18:07:14 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 18:07:14 +0200 (CEST) Subject: [Python-checkins] r66409 - doctools/trunk/doc/_templates/indexsidebar.html Message-ID: <20080912160714.2FD841E4016@bag.python.org> Author: georg.brandl Date: Fri Sep 12 18:07:13 2008 New Revision: 66409 Log: Use Google groups issue tracker instead of abusing the Python tracker. Modified: doctools/trunk/doc/_templates/indexsidebar.html Modified: doctools/trunk/doc/_templates/indexsidebar.html ============================================================================== --- doctools/trunk/doc/_templates/indexsidebar.html (original) +++ doctools/trunk/doc/_templates/indexsidebar.html Fri Sep 12 18:07:13 2008 @@ -22,5 +22,5 @@

    or come to the #python-docs channel on FreeNode.

    -

    You can also open a bug at Python's bug -tracker, using the "Documentation tools" category.

    +

    You can also open an issue at the + tracker.

    From python-checkins at python.org Fri Sep 12 18:29:52 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 18:29:52 +0200 (CEST) Subject: [Python-checkins] r66410 - doctools/trunk/TODO Message-ID: <20080912162952.8C37A1E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 18:29:52 2008 New Revision: 66410 Log: Track TODO items on code.google.com tracker. Modified: doctools/trunk/TODO Modified: doctools/trunk/TODO ============================================================================== --- doctools/trunk/TODO (original) +++ doctools/trunk/TODO Fri Sep 12 18:29:52 2008 @@ -1,17 +1,6 @@ Sphinx TODO =========== -- Global citations -- RSS generation -- extension autodoc directives -- files for downloading -- decide which static files to include -- remove redundant
      s in tocs -- autoattribute in autodoc -- section, range and object options for literalinclude -- literal search mode -- option for compact module index -- HTML section numbers? -- "seealso" links to external examples, see http://svn.python.org/projects/sandbox/trunk/seealso/ and http://effbot.org/zone/idea-seealso.htm -- source file cross-references (codelinks extension) +All todo items are now tracked as issues in the Sphinx issue tracker at +. From python-checkins at python.org Fri Sep 12 19:19:44 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 19:19:44 +0200 (CEST) Subject: [Python-checkins] r66411 - doctools/converter/README Message-ID: <20080912171944.EE9901E4004@bag.python.org> Author: georg.brandl Date: Fri Sep 12 19:19:44 2008 New Revision: 66411 Log: Add basic readme. Added: doctools/converter/README (contents, props changed) Added: doctools/converter/README ============================================================================== --- (empty file) +++ doctools/converter/README Fri Sep 12 19:19:44 2008 @@ -0,0 +1,22 @@ +Python Doc LaTeX to Sphinx converter +==================================== + +This converter was used to convert the Python docs to Sphinx' +reStructuredText format. It can also be used to convert other +docs using the LaTeX style, with a custom script that directly +calls ``convert_file`` from the converter package. The only +thing you have to be aware of is the include file mapping, which +the converter will consult when it encounters a ``literalinclude`` +command. You can monkey-patch that dictionary like this:: + + from converter import restwriter, convert_file + + class IncludeRewrite: + def get(self, a, b=None): + if os.path.exists(os.path.join(source, a + '.tex')): + return a + '.rst' + return a + restwriter.includes_mapping = IncludeRewrite() + + for infile, outfile in : + convert_file(infile, outfile) From python-checkins at python.org Fri Sep 12 20:58:57 2008 From: python-checkins at python.org (gerhard.haering) Date: Fri, 12 Sep 2008 20:58:57 +0200 (CEST) Subject: [Python-checkins] r66412 - in python/trunk: Misc/NEWS Modules/_sqlite/connection.c Modules/_sqlite/cursor.c Modules/_sqlite/microprotocols.c Modules/_sqlite/microprotocols.h Modules/_sqlite/module.c Modules/_sqlite/statement.c Modules/_sqlite/util.c Modules/_sqlite/util.h Message-ID: <20080912185857.B6D231E4004@bag.python.org> Author: gerhard.haering Date: Fri Sep 12 20:58:57 2008 New Revision: 66412 Log: Fixes issue #3103. In the sqlite3 module, made one more function static. All renaming public symbos now have the pysqlite prefix to avoid name clashes. This at least once created problems where the same symbol name appeared somewhere in Apache and the sqlite3 module was used from mod_python. Modified: python/trunk/Misc/NEWS python/trunk/Modules/_sqlite/connection.c python/trunk/Modules/_sqlite/cursor.c python/trunk/Modules/_sqlite/microprotocols.c python/trunk/Modules/_sqlite/microprotocols.h python/trunk/Modules/_sqlite/module.c python/trunk/Modules/_sqlite/statement.c python/trunk/Modules/_sqlite/util.c python/trunk/Modules/_sqlite/util.h Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Sep 12 20:58:57 2008 @@ -148,6 +148,9 @@ - sqlite3: Changed docstring of iterdump() to mark method as "Non-standard". +- Issue #3103: Reduced globals symbols used by sqlite3 module and made sure all + remaining ones have "pysqlite_" prefix. + Tests ----- Modified: python/trunk/Modules/_sqlite/connection.c ============================================================================== --- python/trunk/Modules/_sqlite/connection.c (original) +++ python/trunk/Modules/_sqlite/connection.c Fri Sep 12 20:58:57 2008 @@ -38,7 +38,7 @@ static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level); -void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len) +static void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len) { /* in older SQLite versions, calling sqlite3_result_error in callbacks * triggers a bug in SQLite that leads either to irritating results or @@ -363,7 +363,7 @@ goto error; } - rc = _sqlite_step_with_busyhandler(statement, self); + rc = pysqlite_step(statement, self); if (rc == SQLITE_DONE) { self->inTransaction = 1; } else { @@ -406,7 +406,7 @@ goto error; } - rc = _sqlite_step_with_busyhandler(statement, self); + rc = pysqlite_step(statement, self); if (rc == SQLITE_DONE) { self->inTransaction = 0; } else { @@ -452,7 +452,7 @@ goto error; } - rc = _sqlite_step_with_busyhandler(statement, self); + rc = pysqlite_step(statement, self); if (rc == SQLITE_DONE) { self->inTransaction = 0; } else { Modified: python/trunk/Modules/_sqlite/cursor.c ============================================================================== --- python/trunk/Modules/_sqlite/cursor.c (original) +++ python/trunk/Modules/_sqlite/cursor.c Fri Sep 12 20:58:57 2008 @@ -605,7 +605,7 @@ /* Keep trying the SQL statement until the schema stops changing. */ while (1) { /* Actually execute the SQL statement. */ - rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection); + rc = pysqlite_step(self->statement->st, self->connection); if (rc == SQLITE_DONE || rc == SQLITE_ROW) { /* If it worked, let's get out of the loop */ break; @@ -803,7 +803,7 @@ /* execute statement, and ignore results of SELECT statements */ rc = SQLITE_ROW; while (rc == SQLITE_ROW) { - rc = _sqlite_step_with_busyhandler(statement, self->connection); + rc = pysqlite_step(statement, self->connection); /* TODO: we probably need more error handling here */ } @@ -871,7 +871,7 @@ } if (self->statement) { - rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection); + rc = pysqlite_step(self->statement->st, self->connection); if (rc != SQLITE_DONE && rc != SQLITE_ROW) { (void)pysqlite_statement_reset(self->statement); Py_DECREF(next_row); Modified: python/trunk/Modules/_sqlite/microprotocols.c ============================================================================== --- python/trunk/Modules/_sqlite/microprotocols.c (original) +++ python/trunk/Modules/_sqlite/microprotocols.c Fri Sep 12 20:58:57 2008 @@ -35,10 +35,10 @@ PyObject *psyco_adapters; -/* microprotocols_init - initialize the adapters dictionary */ +/* pysqlite_microprotocols_init - initialize the adapters dictionary */ int -microprotocols_init(PyObject *dict) +pysqlite_microprotocols_init(PyObject *dict) { /* create adapters dictionary and put it in module namespace */ if ((psyco_adapters = PyDict_New()) == NULL) { @@ -49,10 +49,10 @@ } -/* microprotocols_add - add a reverse type-caster to the dictionary */ +/* pysqlite_microprotocols_add - add a reverse type-caster to the dictionary */ int -microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast) +pysqlite_microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast) { PyObject* key; int rc; @@ -70,10 +70,10 @@ return rc; } -/* microprotocols_adapt - adapt an object to the built-in protocol */ +/* pysqlite_microprotocols_adapt - adapt an object to the built-in protocol */ PyObject * -microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt) +pysqlite_microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt) { PyObject *adapter, *key; @@ -132,11 +132,11 @@ /** module-level functions **/ PyObject * -psyco_microprotocols_adapt(pysqlite_Cursor *self, PyObject *args) +pysqlite_adapt(pysqlite_Cursor *self, PyObject *args) { PyObject *obj, *alt = NULL; PyObject *proto = (PyObject*)&pysqlite_PrepareProtocolType; if (!PyArg_ParseTuple(args, "O|OO", &obj, &proto, &alt)) return NULL; - return microprotocols_adapt(obj, proto, alt); + return pysqlite_microprotocols_adapt(obj, proto, alt); } Modified: python/trunk/Modules/_sqlite/microprotocols.h ============================================================================== --- python/trunk/Modules/_sqlite/microprotocols.h (original) +++ python/trunk/Modules/_sqlite/microprotocols.h Fri Sep 12 20:58:57 2008 @@ -41,15 +41,15 @@ /** exported functions **/ /* used by module.c to init the microprotocols system */ -extern int microprotocols_init(PyObject *dict); -extern int microprotocols_add( +extern int pysqlite_microprotocols_init(PyObject *dict); +extern int pysqlite_microprotocols_add( PyTypeObject *type, PyObject *proto, PyObject *cast); -extern PyObject *microprotocols_adapt( +extern PyObject *pysqlite_microprotocols_adapt( PyObject *obj, PyObject *proto, PyObject *alt); extern PyObject * - psyco_microprotocols_adapt(pysqlite_Cursor* self, PyObject *args); -#define psyco_microprotocols_adapt_doc \ + pysqlite_adapt(pysqlite_Cursor* self, PyObject *args); +#define pysqlite_adapt_doc \ "adapt(obj, protocol, alternate) -> adapt obj to given protocol. Non-standard." #endif /* !defined(PSYCOPG_MICROPROTOCOLS_H) */ Modified: python/trunk/Modules/_sqlite/module.c ============================================================================== --- python/trunk/Modules/_sqlite/module.c (original) +++ python/trunk/Modules/_sqlite/module.c Fri Sep 12 20:58:57 2008 @@ -160,7 +160,7 @@ pysqlite_BaseTypeAdapted = 1; } - rc = microprotocols_add(type, (PyObject*)&pysqlite_PrepareProtocolType, caster); + rc = pysqlite_microprotocols_add(type, (PyObject*)&pysqlite_PrepareProtocolType, caster); if (rc == -1) return NULL; @@ -244,8 +244,8 @@ METH_VARARGS, module_register_adapter_doc}, {"register_converter", (PyCFunction)module_register_converter, METH_VARARGS, module_register_converter_doc}, - {"adapt", (PyCFunction)psyco_microprotocols_adapt, METH_VARARGS, - psyco_microprotocols_adapt_doc}, + {"adapt", (PyCFunction)pysqlite_adapt, METH_VARARGS, + pysqlite_adapt_doc}, {"enable_callback_tracebacks", (PyCFunction)enable_callback_tracebacks, METH_VARARGS, enable_callback_tracebacks_doc}, {NULL, NULL} @@ -423,7 +423,7 @@ Py_DECREF(tmp_obj); /* initialize microprotocols layer */ - microprotocols_init(dict); + pysqlite_microprotocols_init(dict); /* initialize the default converters */ converters_init(dict); Modified: python/trunk/Modules/_sqlite/statement.c ============================================================================== --- python/trunk/Modules/_sqlite/statement.c (original) +++ python/trunk/Modules/_sqlite/statement.c Fri Sep 12 20:58:57 2008 @@ -250,7 +250,7 @@ if (!_need_adapt(current_param)) { adapted = current_param; } else { - adapted = microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); + adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); if (adapted) { Py_DECREF(current_param); } else { @@ -295,7 +295,7 @@ if (!_need_adapt(current_param)) { adapted = current_param; } else { - adapted = microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); + adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); if (adapted) { Py_DECREF(current_param); } else { Modified: python/trunk/Modules/_sqlite/util.c ============================================================================== --- python/trunk/Modules/_sqlite/util.c (original) +++ python/trunk/Modules/_sqlite/util.c Fri Sep 12 20:58:57 2008 @@ -24,7 +24,7 @@ #include "module.h" #include "connection.h" -int _sqlite_step_with_busyhandler(sqlite3_stmt* statement, pysqlite_Connection* connection) +int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection) { int rc; Modified: python/trunk/Modules/_sqlite/util.h ============================================================================== --- python/trunk/Modules/_sqlite/util.h (original) +++ python/trunk/Modules/_sqlite/util.h Fri Sep 12 20:58:57 2008 @@ -28,7 +28,7 @@ #include "sqlite3.h" #include "connection.h" -int _sqlite_step_with_busyhandler(sqlite3_stmt* statement, pysqlite_Connection* connection); +int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection); /** * Checks the SQLite error code and sets the appropriate DB-API exception. From gh at ghaering.de Fri Sep 12 21:00:55 2008 From: gh at ghaering.de (=?ISO-8859-1?Q?Gerhard_H=E4ring?=) Date: Fri, 12 Sep 2008 21:00:55 +0200 Subject: [Python-checkins] r66412 - in python/trunk: Misc/NEWS Modules/_sqlite/connection.c Modules/_sqlite/cursor.c Modules/_sqlite/microprotocols.c Modules/_sqlite/microprotocols.h Modules/_sqlite/module.c Modules/_sqlite/statement.c Modules/_sqlite/util.c Modules/_sqlite/util.h In-Reply-To: <20080912185857.B6D231E4004@bag.python.org> References: <20080912185857.B6D231E4004@bag.python.org> Message-ID: <48CABC67.3070900@ghaering.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 gerhard.haering wrote: > Author: gerhard.haering > Date: Fri Sep 12 20:58:57 2008 > New Revision: 66412 > > Log: > Fixes issue #3103. In the sqlite3 module, made one more function static. All renaming public symbos now have the pysqlite prefix to avoid name clashes. This at least once created problems where the same symbol name appeared somewhere in Apache and the sqlite3 module was used from mod_python. > [...] Forgot to add that Martin von L?wis reviewed this one. - -- Gerhard -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIyrxndIO4ozGCH14RAh2YAJ0UjC/uJqpCd0tKYf2wOyeCrdM5wACgwCx4 7v8C1b2eUwD+Zo4Kil0xSHI= =mdmM -----END PGP SIGNATURE----- From python-checkins at python.org Fri Sep 12 21:50:50 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 12 Sep 2008 21:50:50 +0200 (CEST) Subject: [Python-checkins] r66413 - doctools/trunk/EXAMPLES Message-ID: <20080912195050.1F2791E4003@bag.python.org> Author: georg.brandl Date: Fri Sep 12 21:50:49 2008 New Revision: 66413 Log: Add Django URL. Modified: doctools/trunk/EXAMPLES Modified: doctools/trunk/EXAMPLES ============================================================================== --- doctools/trunk/EXAMPLES (original) +++ doctools/trunk/EXAMPLES Fri Sep 12 21:50:49 2008 @@ -10,6 +10,7 @@ * Python: http://docs.python.org/dev/ * NumPy: http://mentat.za.net/numpy/refguide/ * Pylons: http://bel-epa.com/pylonsdocs/ +* Django: http://docs.djangoproject.com/ * Jinja: http://jinja.pocoo.org/2/documentation/ * F2py: http://www.f2py.org/html/ * Paver: http://www.blueskyonmars.com/projects/paver/ @@ -26,6 +27,5 @@ * GeoDjango: http://geodjango.org/docs/ * Mixin.com: http://dev.mixin.com/ * Grok (upcoming) -* Django (upcoming) * Matplotlib (upcoming) * TurboGears (upcoming) From nnorwitz at gmail.com Fri Sep 12 22:41:31 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Sep 2008 16:41:31 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080912204131.GA7557@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650325 refs] From nnorwitz at gmail.com Fri Sep 12 23:06:08 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Fri, 12 Sep 2008 17:06:08 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080912210607.GA8896@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649588 refs] From python-checkins at python.org Sat Sep 13 00:33:22 2008 From: python-checkins at python.org (gerhard.haering) Date: Sat, 13 Sep 2008 00:33:22 +0200 (CEST) Subject: [Python-checkins] r66414 - in python/trunk: Misc/NEWS Modules/_sqlite/cursor.c Modules/_sqlite/statement.c Message-ID: <20080912223322.BD6EA1E4003@bag.python.org> Author: gerhard.haering Date: Sat Sep 13 00:33:22 2008 New Revision: 66414 Log: Issue #3846: Release GIL during calls to sqlite3_prepare. This improves concurrent access to the same database file from multiple threads/processes. Modified: python/trunk/Misc/NEWS python/trunk/Modules/_sqlite/cursor.c python/trunk/Modules/_sqlite/statement.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 13 00:33:22 2008 @@ -151,6 +151,10 @@ - Issue #3103: Reduced globals symbols used by sqlite3 module and made sure all remaining ones have "pysqlite_" prefix. +- Issue #3846: Release the GIL during sqlite3_prepare calls. This improves + concurrent access to the same SQLite database from multiple + threads/processes. + Tests ----- Modified: python/trunk/Modules/_sqlite/cursor.c ============================================================================== --- python/trunk/Modules/_sqlite/cursor.c (original) +++ python/trunk/Modules/_sqlite/cursor.c Sat Sep 13 00:33:22 2008 @@ -790,11 +790,13 @@ } statement_completed = 1; + Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(self->connection->db, script_cstr, -1, &statement, &script_cstr); + Py_END_ALLOW_THREADS if (rc != SQLITE_OK) { _pysqlite_seterror(self->connection->db, NULL); goto error; Modified: python/trunk/Modules/_sqlite/statement.c ============================================================================== --- python/trunk/Modules/_sqlite/statement.c (original) +++ python/trunk/Modules/_sqlite/statement.c Sat Sep 13 00:33:22 2008 @@ -79,11 +79,13 @@ sql_cstr = PyString_AsString(sql_str); + Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(connection->db, sql_cstr, -1, &self->st, &tail); + Py_END_ALLOW_THREADS self->db = connection->db; @@ -328,11 +330,13 @@ sql_cstr = PyString_AsString(self->sql); + Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(self->db, sql_cstr, -1, &new_st, &tail); + Py_END_ALLOW_THREADS if (rc == SQLITE_OK) { /* The efficient sqlite3_transfer_bindings is only available in SQLite From gh at ghaering.de Sat Sep 13 00:36:14 2008 From: gh at ghaering.de (=?ISO-8859-1?Q?Gerhard_H=E4ring?=) Date: Sat, 13 Sep 2008 00:36:14 +0200 Subject: [Python-checkins] r66414 - in python/trunk: Misc/NEWS Modules/_sqlite/cursor.c Modules/_sqlite/statement.c In-Reply-To: <20080912223322.BD6EA1E4003@bag.python.org> References: <20080912223322.BD6EA1E4003@bag.python.org> Message-ID: <48CAEEDE.40600@ghaering.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Darn. Forgot to add this to the commit message again :-/ This was reviewed by MvL before checking it in. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIyu7edIO4ozGCH14RAm/FAJ49Qc4R60Ozn1NO8YNJ8CMpwp5jnACfWIOs b8eP+8O0DQ5RQRJzfvU5VRk= =SGlN -----END PGP SIGNATURE----- From musiccomposition at gmail.com Sat Sep 13 01:01:56 2008 From: musiccomposition at gmail.com (Benjamin Peterson) Date: Fri, 12 Sep 2008 18:01:56 -0500 Subject: [Python-checkins] r66414 - in python/trunk: Misc/NEWS Modules/_sqlite/cursor.c Modules/_sqlite/statement.c In-Reply-To: <48CAEEDE.40600@ghaering.de> References: <20080912223322.BD6EA1E4003@bag.python.org> <48CAEEDE.40600@ghaering.de> Message-ID: <1afaf6160809121601n4e608570kb096d42764d78931@mail.gmail.com> On Fri, Sep 12, 2008 at 5:36 PM, Gerhard H?ring wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Darn. Forgot to add this to the commit message again :-/ You could, of course, change the log: http://python.org/dev/faq/#how-can-i-edit-the-log-message-of-a-committed-revision -- Cheers, Benjamin Peterson "There's no place like 127.0.0.1." From python-checkins at python.org Sat Sep 13 01:25:58 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 01:25:58 +0200 (CEST) Subject: [Python-checkins] r66415 - in python/trunk: Include/patchlevel.h Lib/distutils/__init__.py Lib/idlelib/idlever.py Misc/NEWS Misc/RPM/python-2.6.spec README Message-ID: <20080912232558.41A3B1E4003@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 01:25:57 2008 New Revision: 66415 Log: Bumping to 2.6rc1 Modified: python/trunk/Include/patchlevel.h python/trunk/Lib/distutils/__init__.py python/trunk/Lib/idlelib/idlever.py python/trunk/Misc/NEWS python/trunk/Misc/RPM/python-2.6.spec python/trunk/README Modified: python/trunk/Include/patchlevel.h ============================================================================== --- python/trunk/Include/patchlevel.h (original) +++ python/trunk/Include/patchlevel.h Sat Sep 13 01:25:57 2008 @@ -23,11 +23,11 @@ #define PY_MAJOR_VERSION 2 #define PY_MINOR_VERSION 6 #define PY_MICRO_VERSION 0 -#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA -#define PY_RELEASE_SERIAL 3 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL +#define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "2.6b3+" +#define PY_VERSION "2.6rc1" /*--end constants--*/ /* Subversion Revision number of this file (not of the repository) */ Modified: python/trunk/Lib/distutils/__init__.py ============================================================================== --- python/trunk/Lib/distutils/__init__.py (original) +++ python/trunk/Lib/distutils/__init__.py Sat Sep 13 01:25:57 2008 @@ -22,5 +22,5 @@ # #--start constants-- -__version__ = "2.6b3" +__version__ = "2.6rc1" #--end constants-- Modified: python/trunk/Lib/idlelib/idlever.py ============================================================================== --- python/trunk/Lib/idlelib/idlever.py (original) +++ python/trunk/Lib/idlelib/idlever.py Sat Sep 13 01:25:57 2008 @@ -1 +1 @@ -IDLE_VERSION = "2.6b3" +IDLE_VERSION = "2.6rc1" Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 13 01:25:57 2008 @@ -7,7 +7,7 @@ What's New in Python 2.6 release candidate 1? ============================================= -*Release date: XX-XXX-2008* +*Release date: 12-Sep-2008* Core and Builtins ----------------- Modified: python/trunk/Misc/RPM/python-2.6.spec ============================================================================== --- python/trunk/Misc/RPM/python-2.6.spec (original) +++ python/trunk/Misc/RPM/python-2.6.spec Sat Sep 13 01:25:57 2008 @@ -34,7 +34,7 @@ %define name python #--start constants-- -%define version 2.6b3 +%define version 2.6rc1 %define libver 2.6 #--end constants-- %define release 1pydotorg Modified: python/trunk/README ============================================================================== --- python/trunk/README (original) +++ python/trunk/README Sat Sep 13 01:25:57 2008 @@ -1,5 +1,5 @@ -This is Python version 2.6 beta 3 -================================= +This is Python version 2.6 release candidate 1 +============================================== Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Python Software Foundation. From buildbot at python.org Sat Sep 13 01:35:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 12 Sep 2008 23:35:23 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080912233523.F02BA1E400C@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3932 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gerhard.haering BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 01:35:49 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 01:35:49 +0200 (CEST) Subject: [Python-checkins] r66416 - python/trunk/Include/patchlevel.h Message-ID: <20080912233549.2A2691E4014@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 01:35:48 2008 New Revision: 66416 Log: Fix the release level Modified: python/trunk/Include/patchlevel.h Modified: python/trunk/Include/patchlevel.h ============================================================================== --- python/trunk/Include/patchlevel.h (original) +++ python/trunk/Include/patchlevel.h Sat Sep 13 01:35:48 2008 @@ -23,8 +23,8 @@ #define PY_MAJOR_VERSION 2 #define PY_MINOR_VERSION 6 #define PY_MICRO_VERSION 0 -#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL -#define PY_RELEASE_SERIAL 0 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA +#define PY_RELEASE_SERIAL 1 /* Version as a string */ #define PY_VERSION "2.6rc1" From python-checkins at python.org Sat Sep 13 01:47:36 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 01:47:36 +0200 (CEST) Subject: [Python-checkins] r66417 - sandbox/trunk/release/release.py Message-ID: <20080912234736.DE7651E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 01:47:36 2008 New Revision: 66417 Log: fix --bump when in the rc level Modified: sandbox/trunk/release/release.py Modified: sandbox/trunk/release/release.py ============================================================================== --- sandbox/trunk/release/release.py (original) +++ sandbox/trunk/release/release.py Sat Sep 13 01:47:36 2008 @@ -23,7 +23,7 @@ from urlparse import urlsplit, urlunsplit SPACE = ' ' -tag_cre = re.compile(r'(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:([abc])(\d+))?') +tag_cre = re.compile(r'(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:([ab]|rc)(\d+))?') # Ideas stolen from Mailman's release script, Lib/tokens.py and welease @@ -121,7 +121,7 @@ substitutions['level'] = dict( a = 'PY_RELEASE_LEVEL_ALPHA', b = 'PY_RELEASE_LEVEL_BETA', - c = 'PY_RELEASE_LEVEL_GAMMA', + rc = 'PY_RELEASE_LEVEL_GAMMA', f = 'PY_RELEASE_LEVEL_FINAL', )[tag.level] if done: @@ -258,6 +258,7 @@ if result is None: error('tag %s is not valid' % tag) data = list(result.groups()) + import pdb; pdb.set_trace() # fix None level if data[3] is None: data[3] = "f" From python-checkins at python.org Sat Sep 13 01:49:48 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 01:49:48 +0200 (CEST) Subject: [Python-checkins] r66418 - in sandbox/trunk/2to3/lib2to3: fixes/fix_print.py tests/test_fixers.py Message-ID: <20080912234948.A055C1E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 01:49:48 2008 New Revision: 66418 Log: a trival fix to get a few more print corner cases #2899 Modified: sandbox/trunk/2to3/lib2to3/fixes/fix_print.py sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Modified: sandbox/trunk/2to3/lib2to3/fixes/fix_print.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/fixes/fix_print.py (original) +++ sandbox/trunk/2to3/lib2to3/fixes/fix_print.py Sat Sep 13 01:49:48 2008 @@ -29,7 +29,7 @@ class FixPrint(fixer_base.ConditionalFix): PATTERN = """ - simple_stmt< bare='print' any > | print_stmt + simple_stmt< any* bare='print' any* > | print_stmt """ skip_on = '__future__.print_function' Modified: sandbox/trunk/2to3/lib2to3/tests/test_fixers.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/test_fixers.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Sat Sep 13 01:49:48 2008 @@ -385,6 +385,16 @@ a = """print()""" self.check(b, a) + def test_4(self): + # from bug 3000 + b = """print whatever; print""" + a = """print(whatever); print()""" + self.check(b, a) + + def test_5(self): + b = """print; print whatever;""" + a = """print(); print(whatever);""" + def test_tuple(self): b = """print (a, b, c)""" a = """print((a, b, c))""" From python-checkins at python.org Sat Sep 13 02:03:15 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 02:03:15 +0200 (CEST) Subject: [Python-checkins] r66419 - python/tags/r26rc1 Message-ID: <20080913000315.1646D1E4004@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 02:03:14 2008 New Revision: 66419 Log: Tagging 2.6rc1 Added: python/tags/r26rc1/ - copied from r66418, /python/trunk/ From python-checkins at python.org Sat Sep 13 02:06:37 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 02:06:37 +0200 (CEST) Subject: [Python-checkins] r66420 - sandbox/trunk/release/release.py Message-ID: <20080913000637.85E9B1E4003@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 02:06:37 2008 New Revision: 66420 Log: minor tweaks Modified: sandbox/trunk/release/release.py Modified: sandbox/trunk/release/release.py ============================================================================== --- sandbox/trunk/release/release.py (original) +++ sandbox/trunk/release/release.py Sat Sep 13 02:06:37 2008 @@ -121,7 +121,7 @@ substitutions['level'] = dict( a = 'PY_RELEASE_LEVEL_ALPHA', b = 'PY_RELEASE_LEVEL_BETA', - rc = 'PY_RELEASE_LEVEL_GAMMA', + rc = 'PY_RELEASE_LEVEL_GAMMA', f = 'PY_RELEASE_LEVEL_FINAL', )[tag.level] if done: @@ -258,7 +258,6 @@ if result is None: error('tag %s is not valid' % tag) data = list(result.groups()) - import pdb; pdb.set_trace() # fix None level if data[3] is None: data[3] = "f" From python-checkins at python.org Sat Sep 13 02:22:57 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 02:22:57 +0200 (CEST) Subject: [Python-checkins] r66421 - peps/trunk/pep-0101.txt Message-ID: <20080913002257.3DBF81E4003@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 02:22:56 2008 New Revision: 66421 Log: updates Modified: peps/trunk/pep-0101.txt Modified: peps/trunk/pep-0101.txt ============================================================================== --- peps/trunk/pep-0101.txt (original) +++ peps/trunk/pep-0101.txt Sat Sep 13 02:22:56 2008 @@ -17,9 +17,9 @@ buddies firmly attached to your bare back, anchored by newly sharpened claws. At least they're cute, you remind yourself. - Actually, no that's a slight exaggeration. The Python release + Actually, no that's a slight exaggeration . The Python release process has steadily improved over the years and now, with the help of our - amazing community, is really not to difficult. This PEP attempts to + amazing community, is really not too difficult. This PEP attempts to collect, in one place, all the steps needed to make a Python release. It is organized as a recipe and you can actually print this out and check items off as you complete them. @@ -38,7 +38,6 @@ * RM = Release Manager: Barry Warsaw * WE = Windows: Martin von Loewis * ME = Mac: Ronald Oussoren - * DE = Documentation: Fred Drake XXX: We should include a dependency graph to illustrate the steps that can be taken in parallel, or those that depend on other @@ -64,13 +63,12 @@ This helps by performing several automatic editing steps, and guides you to perform some manual editing steps. - ___ Impose a check-in freeze. Send a message to these mailing lists: - * python-committers at python.org - * python-dev at python.org - * (Py3: python-3000 at python.org) + ___ Log into irc.freenode.net and join the #python-dev channel. - telling people not to make any check-ins on the tree until further - notice. + You probably need to coordinate with other people around the + world. This IRC channel is where we've arranged to meet. + + ___ Impose a check-in freeze by sending email to python-committers at python.org At this point, nobody except the RM or his duly assigned agents should make any commits to the branches. The assigned agents are either from @@ -82,11 +80,6 @@ The RM has full authority to revert any unapproved commits. - ___ Log into irc.freenode.net and join the #python-dev channel. - - You probably need to coordinate with other people around the - world. This IRC channel is where we've arranged to meet. - ___ Check to see if there are any showstopper bugs. Go to http://bugs.python.org and look for any open bugs that can block @@ -94,15 +87,21 @@ release you're making; here are the relevant definitions: release blocker - Stops the release dead in its tracks. You may not - make a release with any open blocker bugs. + make a release with any open blocker bugs. - critical - Important bugs that may become blockers for the next - release. You can make alpha and beta releases with open critical - bugs, but you may not make a final release with open critical bugs. + deferred blocker - Doesn't block this release, but it will block a + future release. + + critical - Important bugs that should be fixed before the next release, + but which won't block a non-final release. + + You can make alpha and beta releases with open critical bugs, but you + may not make a final release with open critical bugs. Review the release blockers and either resolve them, bump them down to - critical, or stop the release and ask for community assistance. If - you're making a final release, do the same with any open crticial bugs. + deferred, or stop the release and ask for community assistance. If + you're making a final release, do the same with any open deferred and + crticial bugs. ___ Check the stable buildbots. @@ -136,8 +135,7 @@ ___ The LICENSE file. Add the pending version to the list of releases, and be sure to check the release dates. - ___ There's a copy of the license in Doc/license.rst; the DE usually - takes care of that, but it's good to double check this. + ___ There's a copy of the license in Doc/license.rst ___ Doc/tutorial/interpreter.rst (3 references to '[Pp]ython26', one to 'Python 2.6'). @@ -205,97 +203,6 @@ ___ XXX If this is a release candidate, mail Sean noting the impending release, so that RPMs can be built and tested. - ___ XXX At this point, the DE will create the formatted versions of the - documentation and push the appropriate files out to their FTP - locations on www.python.org. The HTML format is used to build - the HTML Help format for the Windows installer, but the RM - doesn't need this to build the source distribution. The HTML - Help format will typically be generated by whoever builds the - Windows installer. - - Once the DE is done, there can be no further checkins on the - branch in the Doc/ directory -- not even by the RM. - - Building the documentation is done using the Makefile in the - Doc/ directory. Use these commands to build the formatted - documentation packages: - - $ make clean - $ make distribution - - The packages in build/distribution can be installed on the - FTP server using commands like these: - - $ VERSION=`python tools/sphinxext/patchlevel.py` - $ TARGET=/data/python-releases/doc/$VERSION - $ ssh dinsdale.python.org mkdir $TARGET - $ scp build/distribution/* dinsdale.python.org:$TARGET - - ___ XXX For final releases, publish the documentation on python.org. - This must be done by someone with write access to the pydotorg - repository. - - Start by creating a new directory and filling it with the - standard boilerplate. $VERSION is the same as for uploading the - documentation, above; $OLDVERSION is the most recently published - version on the site. - - $ cd .../pydotorg/doc/ - $ svn mkdir $VERSION $VERSION/download - $ cd $OLDVERSION - $ svn cp content.{html,rst,yml} index.yml nav.yml ../$VERSION - $ cd download - $ svn cp content.{html,rst,yml} index.yml nav.yml ../$VERSION/download - $ cd ../../$VERSION - - In $VERSION/content.rst and $VERSION/download/content.rst, change: - - - in the header at the top of the page, update to reflect - the version number and release date - - if the minor release number changed (for example, from 2.5 - to 2.6), the title and link to the "What's New" document - (search for "whatsnew") - - make sure all the documents included in the package are listed - - In $VERSION/index.yml and $VERSION/download/index.yml, change - the version number in the title. - - In versions/content.rst, add an entry for the new version near - the top. - - Use the "rst2html" command (commonly installed with docutils) to - ensure that the .rst files can be formatted without errors. - - Log into dinsdale.python.org using SSH and unpack a copy of the - documentation into place: - - # on dinsdale: - $ cd /data/ftp.python.org/pub/www.python.org/doc - $ bzip2 -dc /data/python-releases/doc/$VERSION/html-$VERSION.tar.bz2 \ - | tar xf - - $ mv Python-Docs-$VERSION $VERSION - $ find $VERSION -type d | xargs chmod g+s - - Now head back to your pydotorg checkout and commit the changes - so the site will be updated: - - $ svn commit -m \ - "Add website content for Python $VERSION documentation." - - Point your browser at this URL and check it out: - - http://www.python.org/doc/$VERSION/ - - There is one more change that may need to happen in the - top-level doc/ directory of the website content. This should - happen as soon as the release announcement has been made. The - required actions are described in a separate step of this - checklist. - - ___ XXX Ping Neal Norwitz (or anyone else with access to the PSF box - which runs the automated builds) to fix conflicts that arise - in the checked out working areas. - ___ XXX The WE builds the Windows helpfile, using (in Doc/) either $ make htmlhelp (on Unix) From buildbot at python.org Sat Sep 13 02:57:41 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 00:57:41 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu trunk Message-ID: <20080913005742.0325C1E4004@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%20trunk/builds/831 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'force build' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 03:12:18 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 03:12:18 +0200 (CEST) Subject: [Python-checkins] r66422 - in python/trunk: Include/patchlevel.h Misc/NEWS Message-ID: <20080913011218.C75781E4023@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 03:12:18 2008 New Revision: 66422 Log: post release updates Modified: python/trunk/Include/patchlevel.h python/trunk/Misc/NEWS Modified: python/trunk/Include/patchlevel.h ============================================================================== --- python/trunk/Include/patchlevel.h (original) +++ python/trunk/Include/patchlevel.h Sat Sep 13 03:12:18 2008 @@ -27,7 +27,7 @@ #define PY_RELEASE_SERIAL 1 /* Version as a string */ -#define PY_VERSION "2.6rc1" +#define PY_VERSION "2.6rc1+" /*--end constants--*/ /* Subversion Revision number of this file (not of the repository) */ Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 13 03:12:18 2008 @@ -4,6 +4,18 @@ (editors: check NEWS.help for information about editing NEWS using ReST.) +What's New in Python 2.6 release candidate 2? +============================================= + +*Release date: XX-XXXX-2008* + +Core and Builtins +----------------- + +Library +------- + + What's New in Python 2.6 release candidate 1? ============================================= From python-checkins at python.org Sat Sep 13 03:14:31 2008 From: python-checkins at python.org (barry.warsaw) Date: Sat, 13 Sep 2008 03:14:31 +0200 (CEST) Subject: [Python-checkins] r66423 - in peps/trunk: pep-0101.txt pep-0361.txt Message-ID: <20080913011431.0B3811E4003@bag.python.org> Author: barry.warsaw Date: Sat Sep 13 03:14:30 2008 New Revision: 66423 Log: updates Modified: peps/trunk/pep-0101.txt peps/trunk/pep-0361.txt Modified: peps/trunk/pep-0101.txt ============================================================================== --- peps/trunk/pep-0101.txt (original) +++ peps/trunk/pep-0101.txt Sat Sep 13 03:14:30 2008 @@ -487,8 +487,8 @@ Review and commit these changes. - ___ Send email to python-dev (Py3: and python-3000) informing them that the - branch has been unfrozen. + ___ Send email to python-committers informing them that the branch has been + unfrozen. ___ Update the release PEP (e.g. 361) with the release dates. Modified: peps/trunk/pep-0361.txt ============================================================================== --- peps/trunk/pep-0361.txt (original) +++ peps/trunk/pep-0361.txt Sat Sep 13 03:14:30 2008 @@ -58,7 +58,7 @@ Jun 18 2008: Python 2.6b1 and 3.0b1 are released Jul 17 2008: Python 2.6b2 and 3.0b2 are released Aug 20 2008: Python 2.6b3 and 3.0b3 are released - Sep 12 2008: Python 2.6rc1 planned + Sep 12 2008: Python 2.6rc1 is released Sep 17 2008: Python 2.6rc2 and 3.0rc1 planned Oct 01 2008: Python 2.6final and 3.0rc2 planned Oct 15 2008: Python 3.0final planned From python-checkins at python.org Sat Sep 13 03:22:08 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:22:08 +0200 (CEST) Subject: [Python-checkins] r66424 - in python/trunk/Demo/curses: life.py ncurses.py Message-ID: <20080913012208.82D3B1E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:22:08 2008 New Revision: 66424 Log: #687648 from Robert Schuppenies: use classic division. (RM Barry gave permission to update the demos.) Modified: python/trunk/Demo/curses/life.py python/trunk/Demo/curses/ncurses.py Modified: python/trunk/Demo/curses/life.py ============================================================================== --- python/trunk/Demo/curses/life.py (original) +++ python/trunk/Demo/curses/life.py Sat Sep 13 03:22:08 2008 @@ -158,7 +158,7 @@ board.display(update_board=False) # xpos, ypos are the cursor's position - xpos, ypos = board.X/2, board.Y/2 + xpos, ypos = board.X//2, board.Y//2 # Main loop: while (1): Modified: python/trunk/Demo/curses/ncurses.py ============================================================================== --- python/trunk/Demo/curses/ncurses.py (original) +++ python/trunk/Demo/curses/ncurses.py Sat Sep 13 03:22:08 2008 @@ -77,38 +77,38 @@ stdscr.addstr("%d" % ((y + x) % 10)) for y in range(0, 1): p1 = mkpanel(curses.COLOR_RED, - curses.LINES / 2 - 2, - curses.COLS / 8 + 1, + curses.LINES // 2 - 2, + curses.COLS // 8 + 1, 0, 0) p1.set_userptr("p1") p2 = mkpanel(curses.COLOR_GREEN, - curses.LINES / 2 + 1, - curses.COLS / 7, - curses.LINES / 4, - curses.COLS / 10) + curses.LINES // 2 + 1, + curses.COLS // 7, + curses.LINES // 4, + curses.COLS // 10) p2.set_userptr("p2") p3 = mkpanel(curses.COLOR_YELLOW, - curses.LINES / 4, - curses.COLS / 10, - curses.LINES / 2, - curses.COLS / 9) + curses.LINES // 4, + curses.COLS // 10, + curses.LINES // 2, + curses.COLS // 9) p3.set_userptr("p3") p4 = mkpanel(curses.COLOR_BLUE, - curses.LINES / 2 - 2, - curses.COLS / 8, - curses.LINES / 2 - 2, - curses.COLS / 3) + curses.LINES // 2 - 2, + curses.COLS // 8, + curses.LINES // 2 - 2, + curses.COLS // 3) p4.set_userptr("p4") p5 = mkpanel(curses.COLOR_MAGENTA, - curses.LINES / 2 - 2, - curses.COLS / 8, - curses.LINES / 2, - curses.COLS / 2 - 2) + curses.LINES // 2 - 2, + curses.COLS // 8, + curses.LINES // 2, + curses.COLS // 2 - 2) p5.set_userptr("p5") fill_panel(p1) @@ -143,7 +143,7 @@ wait_a_while() saywhat("m2; press any key to continue") - p2.move(curses.LINES / 3 + 1, curses.COLS / 8) + p2.move(curses.LINES // 3 + 1, curses.COLS // 8) pflush() wait_a_while() @@ -153,7 +153,7 @@ wait_a_while() saywhat("m3; press any key to continue") - p3.move(curses.LINES / 4 + 1, curses.COLS / 15) + p3.move(curses.LINES // 4 + 1, curses.COLS // 15) pflush() wait_a_while() @@ -202,25 +202,25 @@ w5 = p5.window() saywhat("m4; press any key to continue") - w4.move(curses.LINES / 8, 1) + w4.move(curses.LINES // 8, 1) w4.addstr(mod[itmp]) - p4.move(curses.LINES / 6, itmp * curses.COLS / 8) - w5.move(curses.LINES / 6, 1) + p4.move(curses.LINES // 6, itmp * curses.COLS // 8) + w5.move(curses.LINES // 6, 1) w5.addstr(mod[itmp]) pflush() wait_a_while() saywhat("m5; press any key to continue") - w4.move(curses.LINES / 6, 1) + w4.move(curses.LINES // 6, 1) w4.addstr(mod[itmp]) - p5.move(curses.LINES / 3 - 1, itmp * 10 + 6) - w5.move(curses.LINES / 8, 1) + p5.move(curses.LINES // 3 - 1, itmp * 10 + 6) + w5.move(curses.LINES // 8, 1) w5.addstr(mod[itmp]) pflush() wait_a_while() saywhat("m4; press any key to continue") - p4.move(curses.LINES / 6, (itmp + 1) * curses.COLS / 8) + p4.move(curses.LINES // 6, (itmp + 1) * curses.COLS // 8) pflush() wait_a_while() From python-checkins at python.org Sat Sep 13 03:27:33 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:27:33 +0200 (CEST) Subject: [Python-checkins] r66425 - python/trunk/Demo/threads/Generator.py Message-ID: <20080913012733.6C01B1E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:27:33 2008 New Revision: 66425 Log: #687648 from Robert Schuppenies: use classic division. From me: don't use string exception; flush stdout after printing Modified: python/trunk/Demo/threads/Generator.py Modified: python/trunk/Demo/threads/Generator.py ============================================================================== --- python/trunk/Demo/threads/Generator.py (original) +++ python/trunk/Demo/threads/Generator.py Sat Sep 13 03:27:33 2008 @@ -1,8 +1,10 @@ # Generator implementation using threads +import sys import thread -Killed = 'Generator.Killed' +class Killed(Exception): + pass class Generator: # Constructor @@ -16,6 +18,7 @@ self.done = 0 self.killed = 0 thread.start_new_thread(self._start, ()) + # Internal routine def _start(self): try: @@ -29,6 +32,7 @@ if not self.killed: self.done = 1 self.getlock.release() + # Called by producer for each value; raise Killed if no more needed def put(self, value): if self.killed: @@ -38,6 +42,7 @@ self.putlock.acquire() # Wait for next get() call if self.killed: raise Killed + # Called by producer to get next value; raise EOFError if no more def get(self): if self.killed: @@ -47,12 +52,14 @@ if self.done: raise EOFError # Say there are no more values return self.value + # Called by consumer if no more values wanted def kill(self): if self.killed: raise TypeError, 'kill() called on killed generator' self.killed = 1 self.putlock.release() + # Clone constructor def clone(self): return Generator(self.func, self.args) @@ -64,11 +71,11 @@ p, q, k = k*k, 2L*k+1L, k+1L a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 # Print common digits - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 while d == d1: g.put(int(d)) a, a1 = 10L*(a%b), 10L*(a1%b1) - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 def test(): g = Generator(pi, ()) @@ -80,5 +87,6 @@ g.kill() while 1: print h.get(), + sys.stdout.flush() test() From python-checkins at python.org Sat Sep 13 03:34:46 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:34:46 +0200 (CEST) Subject: [Python-checkins] r66426 - python/trunk/Demo/classes/Dates.py Message-ID: <20080913013446.F15651E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:34:41 2008 New Revision: 66426 Log: #687648 from Robert Schuppenies: use classic division. From me: don't use string exception; add __main__ section Modified: python/trunk/Demo/classes/Dates.py Modified: python/trunk/Demo/classes/Dates.py ============================================================================== --- python/trunk/Demo/classes/Dates.py (original) +++ python/trunk/Demo/classes/Dates.py Sat Sep 13 03:34:41 2008 @@ -68,7 +68,7 @@ return 365 + _is_leap(year) def _days_before_year(year): # number of days before year - return year*365L + (year+3)/4 - (year+99)/100 + (year+399)/400 + return year*365L + (year+3)//4 - (year+99)//100 + (year+399)//400 def _days_in_month(month, year): # number of days in month of year if month == 2 and _is_leap(year): return 29 @@ -92,9 +92,9 @@ del ans.ord, ans.month, ans.day, ans.year # un-initialize it ans.ord = n - n400 = (n-1)/_DI400Y # # of 400-year blocks preceding + n400 = (n-1)//_DI400Y # # of 400-year blocks preceding year, n = 400 * n400, n - _DI400Y * n400 - more = n / 365 + more = n // 365 dby = _days_before_year(more) if dby >= n: more = more - 1 @@ -104,7 +104,7 @@ try: year = int(year) # chop to int, if it fits except (ValueError, OverflowError): pass - month = min(n/29 + 1, 12) + month = min(n//29 + 1, 12) dbm = _days_before_month(month, year) if dbm >= n: month = month - 1 @@ -174,7 +174,9 @@ local = time.localtime(time.time()) return Date(local[1], local[2], local[0]) -DateTestError = 'DateTestError' +class DateTestError(Exception): + pass + def test(firstyear, lastyear): a = Date(9,30,1913) b = Date(9,30,1914) @@ -220,3 +222,6 @@ (fd.month,fd.day,fd.year,ld.month,ld.day,ld.year): raise DateTestError, ('num->date failed', y) y = y + 1 + +if __name__ == '__main__': + test(1850, 2150) From python-checkins at python.org Sat Sep 13 03:42:55 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:42:55 +0200 (CEST) Subject: [Python-checkins] r66427 - python/trunk/Demo/md5test/md5driver.py Message-ID: <20080913014255.C48D41E4004@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:42:55 2008 New Revision: 66427 Log: #687648 from Robert Schuppenies: use classic division. From me: remove two stray semicolons Modified: python/trunk/Demo/md5test/md5driver.py Modified: python/trunk/Demo/md5test/md5driver.py ============================================================================== --- python/trunk/Demo/md5test/md5driver.py (original) +++ python/trunk/Demo/md5test/md5driver.py Sat Sep 13 03:42:55 2008 @@ -32,7 +32,7 @@ filsiz = 1 << 8 filler = makestr(0, filsiz-1) - data = filler * (TEST_BLOCK_SIZE / filsiz); + data = filler * (TEST_BLOCK_SIZE // filsiz) data = data + filler[:(TEST_BLOCK_SIZE % filsiz)] del filsiz, filler @@ -62,7 +62,7 @@ def MDFile(filename): - f = open(filename, 'rb'); + f = open(filename, 'rb') mdContext = md5.new() while 1: From python-checkins at python.org Sat Sep 13 03:43:29 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:43:29 +0200 (CEST) Subject: [Python-checkins] r66428 - in python/trunk/Demo: pdist/cmptree.py rpc/xdr.py scripts/fact.py scripts/ftpstats.py scripts/lpwatch.py scripts/markov.py scripts/pi.py scripts/unbirthday.py sockets/ftp.py tkinter/guido/hanoi.py tkinter/guido/solitaire.py tkinter/guido/sortvisu.py Message-ID: <20080913014329.5E3411E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:43:28 2008 New Revision: 66428 Log: #687648 from Robert Schuppenies: use classic division. Modified: python/trunk/Demo/pdist/cmptree.py python/trunk/Demo/rpc/xdr.py python/trunk/Demo/scripts/fact.py python/trunk/Demo/scripts/ftpstats.py python/trunk/Demo/scripts/lpwatch.py python/trunk/Demo/scripts/markov.py python/trunk/Demo/scripts/pi.py python/trunk/Demo/scripts/unbirthday.py python/trunk/Demo/sockets/ftp.py python/trunk/Demo/tkinter/guido/hanoi.py python/trunk/Demo/tkinter/guido/solitaire.py python/trunk/Demo/tkinter/guido/sortvisu.py Modified: python/trunk/Demo/pdist/cmptree.py ============================================================================== --- python/trunk/Demo/pdist/cmptree.py (original) +++ python/trunk/Demo/pdist/cmptree.py Sat Sep 13 03:43:28 2008 @@ -197,7 +197,7 @@ dt = t2-t1 print size, "bytes in", round(dt), "seconds", if dt: - print "i.e.", int(size/dt), "bytes/sec", + print "i.e.", size//dt, "bytes/sec", print remote._recv(id) # ignored Modified: python/trunk/Demo/rpc/xdr.py ============================================================================== --- python/trunk/Demo/rpc/xdr.py (original) +++ python/trunk/Demo/rpc/xdr.py Sat Sep 13 03:43:28 2008 @@ -57,7 +57,7 @@ def pack_fstring(self, n, s): if n < 0: raise ValueError, 'fstring size must be nonnegative' - n = ((n+3)/4)*4 + n = ((n + 3)//4)*4 data = s[:n] data = data + (n - len(data)) * '\0' self.buf = self.buf + data @@ -164,7 +164,7 @@ if n < 0: raise ValueError, 'fstring size must be nonnegative' i = self.pos - j = i + (n+3)/4*4 + j = i + (n+3)//4*4 if j > len(self.buf): raise EOFError self.pos = j Modified: python/trunk/Demo/scripts/fact.py ============================================================================== --- python/trunk/Demo/scripts/fact.py (original) +++ python/trunk/Demo/scripts/fact.py Sat Sep 13 03:43:28 2008 @@ -17,14 +17,14 @@ # Treat even factors special, so we can use i = i+2 later while n%2 == 0: res.append(2) - n = n/2 + n = n//2 # Try odd numbers up to sqrt(n) limit = sqrt(float(n+1)) i = 3 while i <= limit: if n%i == 0: res.append(i) - n = n/i + n = n//i limit = sqrt(n+1) else: i = i+2 Modified: python/trunk/Demo/scripts/ftpstats.py ============================================================================== --- python/trunk/Demo/scripts/ftpstats.py (original) +++ python/trunk/Demo/scripts/ftpstats.py Sat Sep 13 03:43:28 2008 @@ -104,7 +104,7 @@ def showbar(dict, title): n = len(title) - print '='*((70-n)/2), title, '='*((71-n)/2) + print '='*((70-n)//2), title, '='*((71-n)//2) list = [] keys = dict.keys() keys.sort() @@ -126,7 +126,7 @@ if len(dict) > maxitems: title = title + ' (first %d)'%maxitems n = len(title) - print '='*((70-n)/2), title, '='*((71-n)/2) + print '='*((70-n)//2), title, '='*((71-n)//2) list = [] keys = dict.keys() for key in keys: Modified: python/trunk/Demo/scripts/lpwatch.py ============================================================================== --- python/trunk/Demo/scripts/lpwatch.py (original) +++ python/trunk/Demo/scripts/lpwatch.py Sat Sep 13 03:43:28 2008 @@ -83,7 +83,7 @@ lines.append(line) # if totaljobs: - line = '%d K' % ((totalbytes+1023)/1024) + line = '%d K' % ((totalbytes+1023)//1024) if totaljobs <> len(users): line = line + ' (%d jobs)' % totaljobs if len(users) == 1: @@ -95,7 +95,7 @@ line = line + ' (%s first)' % thisuser else: line = line + ' (%d K before %s)' % ( - (aheadbytes+1023)/1024, thisuser) + (aheadbytes+1023)//1024, thisuser) lines.append(line) # sts = pipe.close() Modified: python/trunk/Demo/scripts/markov.py ============================================================================== --- python/trunk/Demo/scripts/markov.py (original) +++ python/trunk/Demo/scripts/markov.py Sat Sep 13 03:43:28 2008 @@ -110,7 +110,7 @@ def tuple(list): if len(list) == 0: return () if len(list) == 1: return (list[0],) - i = len(list)/2 + i = len(list)//2 return tuple(list[:i]) + tuple(list[i:]) if __name__ == "__main__": Modified: python/trunk/Demo/scripts/pi.py ============================================================================== --- python/trunk/Demo/scripts/pi.py (original) +++ python/trunk/Demo/scripts/pi.py Sat Sep 13 03:43:28 2008 @@ -17,11 +17,11 @@ p, q, k = k*k, 2L*k+1L, k+1L a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 # Print common digits - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 while d == d1: output(d) a, a1 = 10L*(a%b), 10L*(a1%b1) - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 def output(d): # Use write() to avoid spaces between the digits Modified: python/trunk/Demo/scripts/unbirthday.py ============================================================================== --- python/trunk/Demo/scripts/unbirthday.py (original) +++ python/trunk/Demo/scripts/unbirthday.py Sat Sep 13 03:43:28 2008 @@ -92,9 +92,9 @@ # even though that day never actually existed and the calendar # was different then... days = year*365 # years, roughly - days = days + (year+3)/4 # plus leap years, roughly - days = days - (year+99)/100 # minus non-leap years every century - days = days + (year+399)/400 # plus leap years every 4 centirues + days = days + (year+3)//4 # plus leap years, roughly + days = days - (year+99)//100 # minus non-leap years every century + days = days + (year+399)//400 # plus leap years every 4 centirues for i in range(1, month): if i == 2 and calendar.isleap(year): days = days + 29 Modified: python/trunk/Demo/sockets/ftp.py ============================================================================== --- python/trunk/Demo/sockets/ftp.py (original) +++ python/trunk/Demo/sockets/ftp.py Sat Sep 13 03:43:28 2008 @@ -91,7 +91,7 @@ hostname = gethostname() hostaddr = gethostbyname(hostname) hbytes = string.splitfields(hostaddr, '.') - pbytes = [repr(port/256), repr(port%256)] + pbytes = [repr(port//256), repr(port%256)] bytes = hbytes + pbytes cmd = 'PORT ' + string.joinfields(bytes, ',') s.send(cmd + '\r\n') Modified: python/trunk/Demo/tkinter/guido/hanoi.py ============================================================================== --- python/trunk/Demo/tkinter/guido/hanoi.py (original) +++ python/trunk/Demo/tkinter/guido/hanoi.py Sat Sep 13 03:43:28 2008 @@ -35,15 +35,15 @@ # Add background bitmap if bitmap: - self.bitmap = c.create_bitmap(width/2, height/2, + self.bitmap = c.create_bitmap(width//2, height//2, bitmap=bitmap, foreground='blue') # Generate pegs pegwidth = 10 - pegheight = height/2 - pegdist = width/3 - x1, y1 = (pegdist-pegwidth)/2, height*1/3 + pegheight = height//2 + pegdist = width//3 + x1, y1 = (pegdist-pegwidth)//2, height*1//3 x2, y2 = x1+pegwidth, y1+pegheight self.pegs = [] p = c.create_rectangle(x1, y1, x2, y2, fill='black') @@ -57,14 +57,14 @@ self.tk.update() # Generate pieces - pieceheight = pegheight/16 - maxpiecewidth = pegdist*2/3 + pieceheight = pegheight//16 + maxpiecewidth = pegdist*2//3 minpiecewidth = 2*pegwidth self.pegstate = [[], [], []] self.pieces = {} - x1, y1 = (pegdist-maxpiecewidth)/2, y2-pieceheight-2 + x1, y1 = (pegdist-maxpiecewidth)//2, y2-pieceheight-2 x2, y2 = x1+maxpiecewidth, y1+pieceheight - dx = (maxpiecewidth-minpiecewidth) / (2*max(1, n-1)) + dx = (maxpiecewidth-minpiecewidth) // (2*max(1, n-1)) for i in range(n, 0, -1): p = c.create_rectangle(x1, y1, x2, y2, fill='red') self.pieces[i] = p @@ -101,10 +101,10 @@ # Move it towards peg b bx1, by1, bx2, by2 = c.bbox(self.pegs[b]) - newcenter = (bx1+bx2)/2 + newcenter = (bx1+bx2)//2 while 1: x1, y1, x2, y2 = c.bbox(p) - center = (x1+x2)/2 + center = (x1+x2)//2 if center == newcenter: break if center > newcenter: c.move(p, -1, 0) else: c.move(p, 1, 0) Modified: python/trunk/Demo/tkinter/guido/solitaire.py ============================================================================== --- python/trunk/Demo/tkinter/guido/solitaire.py (original) +++ python/trunk/Demo/tkinter/guido/solitaire.py Sat Sep 13 03:43:28 2008 @@ -168,7 +168,7 @@ self.group = Group(canvas) text = "%s %s" % (VALNAMES[value], suit) - self.__text = CanvasText(canvas, CARDWIDTH/2, 0, + self.__text = CanvasText(canvas, CARDWIDTH//2, 0, anchor=N, fill=self.color, text=text) self.group.addtag_withtag(self.__text) @@ -589,7 +589,7 @@ def animatedmoveto(self, card, dest): for i in range(10, 0, -1): - dx, dy = (dest.x-card.x)/i, (dest.y-card.y)/i + dx, dy = (dest.x-card.x)//i, (dest.y-card.y)//i card.moveby(dx, dy) self.master.update_idletasks() Modified: python/trunk/Demo/tkinter/guido/sortvisu.py ============================================================================== --- python/trunk/Demo/tkinter/guido/sortvisu.py (original) +++ python/trunk/Demo/tkinter/guido/sortvisu.py Sat Sep 13 03:43:28 2008 @@ -88,7 +88,7 @@ if self.speed == "fastest": msecs = 0 elif self.speed == "fast": - msecs = msecs/10 + msecs = msecs//10 elif self.speed == "single-step": msecs = 1000000000 if not self.stop_mainloop: @@ -320,7 +320,7 @@ return outcome def position(self): - x1 = (self.index+1)*XGRID - WIDTH/2 + x1 = (self.index+1)*XGRID - WIDTH//2 x2 = x1+WIDTH y2 = (self.array.maxvalue+1)*YGRID y1 = y2 - (self.value)*YGRID @@ -349,7 +349,7 @@ res = [tuple(oldpts)] for i in range(1, n): for k in range(len(pts)): - pts[k] = oldpts[k] + (newpts[k] - oldpts[k])*i/n + pts[k] = oldpts[k] + (newpts[k] - oldpts[k])*i//n res.append(tuple(pts)) res.append(tuple(newpts)) return res @@ -359,7 +359,7 @@ def uniform(array): size = array.getsize() - array.setdata([(size+1)/2] * size) + array.setdata([(size+1)//2] * size) array.reset("Uniform data, size %d" % size) def distinct(array): @@ -429,7 +429,7 @@ j = j-1 continue array.message("Choosing pivot") - j, i, k = first, (first+last)/2, last-1 + j, i, k = first, (first+last)//2, last-1 if array.compare(k, i) < 0: array.swap(k, i) if array.compare(k, j) < 0: From python-checkins at python.org Sat Sep 13 03:47:02 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:47:02 +0200 (CEST) Subject: [Python-checkins] r66429 - python/trunk/Demo/scripts/newslist.py Message-ID: <20080913014702.A2BBA1E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:47:02 2008 New Revision: 66429 Log: Remove semicolon Modified: python/trunk/Demo/scripts/newslist.py Modified: python/trunk/Demo/scripts/newslist.py ============================================================================== --- python/trunk/Demo/scripts/newslist.py (original) +++ python/trunk/Demo/scripts/newslist.py Sat Sep 13 03:47:02 2008 @@ -321,7 +321,7 @@ tree={} # Check that the output directory exists - checkopdir(pagedir); + checkopdir(pagedir) try: print 'Connecting to '+newshost+'...' From python-checkins at python.org Sat Sep 13 03:48:37 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:48:37 +0200 (CEST) Subject: [Python-checkins] r66430 - python/trunk/Demo/classes/bitvec.py Message-ID: <20080913014837.094751E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:48:36 2008 New Revision: 66430 Log: Subclass exception Modified: python/trunk/Demo/classes/bitvec.py Modified: python/trunk/Demo/classes/bitvec.py ============================================================================== --- python/trunk/Demo/classes/bitvec.py (original) +++ python/trunk/Demo/classes/bitvec.py Sat Sep 13 03:48:36 2008 @@ -6,7 +6,8 @@ import sys; rprt = sys.stderr.write #for debugging -error = 'bitvec.error' +class error(Exception): + pass def _check_value(value): From python-checkins at python.org Sat Sep 13 03:56:56 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:56:56 +0200 (CEST) Subject: [Python-checkins] r66431 - python/trunk/Demo/rpc/nfsclient.py Message-ID: <20080913015656.E60421E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:56:56 2008 New Revision: 66431 Log: Fix SyntaxError Modified: python/trunk/Demo/rpc/nfsclient.py Modified: python/trunk/Demo/rpc/nfsclient.py ============================================================================== --- python/trunk/Demo/rpc/nfsclient.py (original) +++ python/trunk/Demo/rpc/nfsclient.py Sat Sep 13 03:56:56 2008 @@ -194,8 +194,8 @@ fh = sf[1] if fh: ncl = NFSClient(host) - as = ncl.Getattr(fh) - print as + attrstat = ncl.Getattr(fh) + print attrstat list = ncl.Listdir(fh) for item in list: print item mcl.Umnt(filesys) From python-checkins at python.org Sat Sep 13 03:57:26 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 03:57:26 +0200 (CEST) Subject: [Python-checkins] r66432 - in python/trunk/Demo: classes/bitvec.py rpc/rpc.py scripts/fact.py threads/Coroutine.py Message-ID: <20080913015726.4259B1E401E@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 03:57:25 2008 New Revision: 66432 Log: Update uses of string exceptions Modified: python/trunk/Demo/classes/bitvec.py python/trunk/Demo/rpc/rpc.py python/trunk/Demo/scripts/fact.py python/trunk/Demo/threads/Coroutine.py Modified: python/trunk/Demo/classes/bitvec.py ============================================================================== --- python/trunk/Demo/classes/bitvec.py (original) +++ python/trunk/Demo/classes/bitvec.py Sat Sep 13 03:57:25 2008 @@ -21,7 +21,7 @@ mant, l = math.frexp(float(param)) bitmask = 1L << l if bitmask <= param: - raise 'FATAL', '(param, l) = %r' % ((param, l),) + raise RuntimeError('(param, l) = %r' % ((param, l),)) while l: bitmask = bitmask >> 1 if param & bitmask: Modified: python/trunk/Demo/rpc/rpc.py ============================================================================== --- python/trunk/Demo/rpc/rpc.py (original) +++ python/trunk/Demo/rpc/rpc.py Sat Sep 13 03:57:25 2008 @@ -80,9 +80,9 @@ # Exceptions -BadRPCFormat = 'rpc.BadRPCFormat' -BadRPCVersion = 'rpc.BadRPCVersion' -GarbageArgs = 'rpc.GarbageArgs' +class BadRPCFormat(Exception): pass +class BadRPCVersion(Exception): pass +class GarbageArgs(Exception): pass class Unpacker(xdr.Unpacker): Modified: python/trunk/Demo/scripts/fact.py ============================================================================== --- python/trunk/Demo/scripts/fact.py (original) +++ python/trunk/Demo/scripts/fact.py Sat Sep 13 03:57:25 2008 @@ -8,10 +8,8 @@ import sys from math import sqrt -error = 'fact.error' # exception - def fact(n): - if n < 1: raise error # fact() argument should be >= 1 + if n < 1: raise ValueError # fact() argument should be >= 1 if n == 1: return [] # special case res = [] # Treat even factors special, so we can use i = i+2 later Modified: python/trunk/Demo/threads/Coroutine.py ============================================================================== --- python/trunk/Demo/threads/Coroutine.py (original) +++ python/trunk/Demo/threads/Coroutine.py Sat Sep 13 03:57:25 2008 @@ -93,8 +93,8 @@ self.e.wait() self.e.clear() -Killed = 'Coroutine.Killed' -EarlyExit = 'Coroutine.EarlyExit' +class Killed(Exception): pass +class EarlyExit(Exception): pass class Coroutine: def __init__(self): From buildbot at python.org Sat Sep 13 04:05:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 02:05:22 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080913020522.D66D91E400C@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/562 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 04:08:30 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 04:08:30 +0200 (CEST) Subject: [Python-checkins] r66433 - python/trunk/Doc/reference/index.rst Message-ID: <20080913020830.CC8811E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 04:08:30 2008 New Revision: 66433 Log: Use title case Modified: python/trunk/Doc/reference/index.rst Modified: python/trunk/Doc/reference/index.rst ============================================================================== --- python/trunk/Doc/reference/index.rst (original) +++ python/trunk/Doc/reference/index.rst Sat Sep 13 04:08:30 2008 @@ -1,7 +1,7 @@ .. _reference-index: ################################# - The Python language reference + The Python Language Reference ################################# :Release: |version| From python-checkins at python.org Sat Sep 13 04:09:15 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 04:09:15 +0200 (CEST) Subject: [Python-checkins] r66434 - python/trunk/Doc/library/index.rst Message-ID: <20080913020915.A64001E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 04:09:15 2008 New Revision: 66434 Log: Remove extra 'the'; the following title includes it Modified: python/trunk/Doc/library/index.rst Modified: python/trunk/Doc/library/index.rst ============================================================================== --- python/trunk/Doc/library/index.rst (original) +++ python/trunk/Doc/library/index.rst Sat Sep 13 04:09:15 2008 @@ -7,7 +7,7 @@ :Release: |version| :Date: |today| -While the :ref:`reference-index` describes the exact syntax and +While :ref:`reference-index` describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It also describes some of the optional components that are commonly included From python-checkins at python.org Sat Sep 13 04:11:51 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 04:11:51 +0200 (CEST) Subject: [Python-checkins] r66435 - python/trunk/Doc/library/stdtypes.rst Message-ID: <20080913021151.7D92F1E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 04:11:51 2008 New Revision: 66435 Log: #3288: Document as_integer_ratio Modified: python/trunk/Doc/library/stdtypes.rst Modified: python/trunk/Doc/library/stdtypes.rst ============================================================================== --- python/trunk/Doc/library/stdtypes.rst (original) +++ python/trunk/Doc/library/stdtypes.rst Sat Sep 13 04:11:51 2008 @@ -449,7 +449,18 @@ Additional Methods on Float --------------------------- -The float type has some additional methods to support conversion to +The float type has some additional methods. + +.. method:: float.as_integer_ratio() + + Return a pair of integers whose ratio is exactly equal to the + original float and with a positive denominator. Raises + :exc:`OverflowError` on infinities and a :exc:`ValueError` on + NaNs. + + .. versionadded:: 2.6 + +Two methods support conversion to and from hexadecimal strings. Since Python's floats are stored internally as binary numbers, converting a float to or from a *decimal* string usually involves a small rounding error. In From python-checkins at python.org Sat Sep 13 04:14:15 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 13 Sep 2008 04:14:15 +0200 (CEST) Subject: [Python-checkins] r66436 - python/trunk/Doc/tutorial/index.rst Message-ID: <20080913021415.ADABE1E4003@bag.python.org> Author: andrew.kuchling Date: Sat Sep 13 04:14:15 2008 New Revision: 66436 Log: Use title case Modified: python/trunk/Doc/tutorial/index.rst Modified: python/trunk/Doc/tutorial/index.rst ============================================================================== --- python/trunk/Doc/tutorial/index.rst (original) +++ python/trunk/Doc/tutorial/index.rst Sat Sep 13 04:14:15 2008 @@ -1,7 +1,7 @@ .. _tutorial-index: ###################### - The Python tutorial + The Python Tutorial ###################### :Release: |version| From python-checkins at python.org Sat Sep 13 04:32:31 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 04:32:31 +0200 (CEST) Subject: [Python-checkins] r66438 - in sandbox/trunk/2to3: README example.py lib2to3/fixes/fix_metaclass.py lib2to3/tests/test_fixers.py Message-ID: <20080913023231.2ADDD1E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 04:32:30 2008 New Revision: 66438 Log: add Jack Diederich's fixer for metaclass syntax #2366 my contribution to this was adding a few tests and fixing a few bugs I also reviewed it (Jack is a committer) Added: sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py (contents, props changed) Modified: sandbox/trunk/2to3/README sandbox/trunk/2to3/example.py sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Modified: sandbox/trunk/2to3/README ============================================================================== --- sandbox/trunk/2to3/README (original) +++ sandbox/trunk/2to3/README Sat Sep 13 04:32:30 2008 @@ -120,6 +120,8 @@ * **fix_xreadlines** - "for x in f.xreadlines():" -> "for x in f:". Also, "g(f.xreadlines)" -> "g(f.__iter__)". +* **fix_metaclass** - move __metaclass__ = M to class X(metaclass=M) + Limitations =========== Modified: sandbox/trunk/2to3/example.py ============================================================================== --- sandbox/trunk/2to3/example.py (original) +++ sandbox/trunk/2to3/example.py Sat Sep 13 04:32:30 2008 @@ -117,6 +117,18 @@ apply(f, args=args, kwds=kwds) apply(f, args, kwds=kwds) +def metaclass_examples(): + class X: + __metaclass__ = Meta + + class X(b1, b2): + bar = 23 # Comment on me! + __metaclass__ = Meta + spam = 27.23 # Laughable + + class X: + __metaclass__ = Meta; x = 23; y = 34 # Yes, I can handle this, too. + def intern_examples(): # # These should be refactored: Added: sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py Sat Sep 13 04:32:30 2008 @@ -0,0 +1,227 @@ +"""Fixer for __metaclass__ = X -> (metaclass=X) methods. + + The various forms of classef (inherits nothing, inherits once, inherints + many) don't parse the same in the CST so we look at ALL classes for + a __metaclass__ and if we find one normalize the inherits to all be + an arglist. + + For one-liner classes ('class X: pass') there is no indent/dedent so + we normalize those into having a suite. + + Moving the __metaclass__ into the classdef can also cause the class + body to be empty so there is some special casing for that as well. + + This fixer also tries very hard to keep original indenting and spacing + in all those corner cases. + +""" +# Author: Jack Diederich + +import os + +# Local imports +from .. import fixer_base +from ..pygram import token +from ..fixer_util import Name, syms, Node, Leaf + + +def has_metaclass(parent): + """ we have to check the cls_node without changing it. + There are two possiblities: + 1) clsdef => suite => simple_stmt => expr_stmt => Leaf('__meta') + 2) clsdef => simple_stmt => expr_stmt => Leaf('__meta') + """ + for node in parent.children: + if node.type == syms.suite: + return has_metaclass(node) + elif node.type == syms.simple_stmt and node.children: + expr_node = node.children[0] + if expr_node.type == syms.expr_stmt and expr_node.children: + leaf_node = expr_node.children[0] + if leaf_node.value == '__metaclass__': + return True + return False + + +def fixup_parse_tree(cls_node): + """ one-line classes don't get a suite in the parse tree so we add + one to normalize the tree + """ + for node in cls_node.children: + if node.type == syms.suite: + # already in the prefered format, do nothing + return + + # !%@#! oneliners have no suite node, we have to fake one up + for i, node in enumerate(cls_node.children): + if node.type == token.COLON: + break + else: + raise ValueError("No class suite and no ':'!") + + # move everything into a suite node + suite = Node(syms.suite, []) + while cls_node.children[i+1:]: + move_node = cls_node.children[i+1] + suite.append_child(move_node.clone()) + move_node.remove() + cls_node.append_child(suite) + node = suite + + +def fixup_simple_stmt(parent, i, stmt_node): + """ if there is a semi-colon all the parts count as part of the same + simple_stmt. We just want the __metaclass__ part so we move + everything efter the semi-colon into its own simple_stmt node + """ + for semi_ind, node in enumerate(stmt_node.children): + if node.type == token.SEMI: # *sigh* + break + else: + return + + node.remove() # kill the semicolon + new_expr = Node(syms.expr_stmt, []) + new_stmt = Node(syms.simple_stmt, [new_expr]) + while stmt_node.children[semi_ind:]: + move_node = stmt_node.children[semi_ind] + new_expr.append_child(move_node.clone()) + move_node.remove() + parent.insert_child(i, new_stmt) + new_leaf1 = new_stmt.children[0].children[0] + old_leaf1 = stmt_node.children[0].children[0] + new_leaf1.set_prefix(old_leaf1.get_prefix()) + + +def remove_trailing_newline(node): + if node.children and node.children[-1].type == token.NEWLINE: + node.children[-1].remove() + + +def find_metas(cls_node): + # find the suite node (Mmm, sweet nodes) + for node in cls_node.children: + if node.type == syms.suite: + break + else: + raise ValueError("No class suite!") + + # look for simple_stmt[ expr_stmt[ Leaf('__metaclass__') ] ] + for i, simple_node in list(enumerate(node.children)): + if simple_node.type == syms.simple_stmt and simple_node.children: + expr_node = simple_node.children[0] + if expr_node.type == syms.expr_stmt and expr_node.children: + leaf_node = expr_node.children[0] + if leaf_node.value == '__metaclass__': + fixup_simple_stmt(node, i, simple_node) + remove_trailing_newline(simple_node) + yield (node, i, simple_node) + + +def fixup_indent(suite): + """ If an INDENT is followed by a thing with a prefix then nuke the prefix + Otherwise we get in trouble when removing __metaclass__ at suite start + """ + kids = suite.children[::-1] + # find the first indent + while kids: + node = kids.pop() + if node.type == token.INDENT: + break + + # find the first Leaf + while kids: + node = kids.pop() + if isinstance(node, Leaf) and node.type != token.DEDENT: + if node.prefix: + node.set_prefix('') + return + else: + kids.extend(node.children[::-1]) + + +class FixMetaclass(fixer_base.BaseFix): + + PATTERN = """ + classdef + """ + + def transform(self, node, results): + if not has_metaclass(node): + return node + + fixup_parse_tree(node) + + # find metaclasses, keep the last one + last_metaclass = None + for suite, i, stmt in find_metas(node): + last_metaclass = stmt + stmt.remove() + + text_type = node.children[0].type # always Leaf(nnn, 'class') + + # figure out what kind of classdef we have + if len(node.children) == 7: + # Node(classdef, ['class', 'name', '(', arglist, ')', ':', suite]) + # 0 1 2 3 4 5 6 + if node.children[3].type == syms.arglist: + arglist = node.children[3] + # Node(classdef, ['class', 'name', '(', 'Parent', ')', ':', suite]) + elif isinstance(node.children[3], Leaf): + parent = node.children[3].clone() + arglist = Node(syms.arglist, [parent]) + node.set_child(3, arglist) + else: + raise ValueError("Unexpected class inheritance arglist") + elif len(node.children) == 6: + # Node(classdef, ['class', 'name', '(', ')', ':', suite]) + # 0 1 2 3 4 5 + arglist = Node(syms.arglist, []) + node.insert_child(3, arglist) + elif len(node.children) == 4: + # Node(classdef, ['class', 'name', ':', suite]) + # 0 1 2 3 + arglist = Node(syms.arglist, []) + node.insert_child(2, Leaf(token.RPAR, ')')) + node.insert_child(2, arglist) + node.insert_child(2, Leaf(token.LPAR, '(')) + else: + raise ValueError("Unexpected class definition") + + # now stick the metaclass in the arglist + meta_txt = last_metaclass.children[0].children[0] + meta_txt.value = 'metaclass' + orig_meta_prefix = meta_txt.get_prefix() + + if arglist.children: + arglist.append_child(Leaf(token.COMMA, ',')) + meta_txt.set_prefix(' ') + else: + meta_txt.set_prefix('') + + # compact the expression "metaclass = Meta" -> "metaclass=Meta" + expr_stmt = last_metaclass.children[0] + assert expr_stmt.type == syms.expr_stmt + expr_stmt.children[1].set_prefix('') + expr_stmt.children[2].set_prefix('') + + arglist.append_child(last_metaclass) + + fixup_indent(suite) + + # check for empty suite + if not suite.children: + # one-liner that was just __metaclass_ + suite.remove() + pass_leaf = Leaf(text_type, 'pass') + pass_leaf.set_prefix(orig_meta_prefix) + node.append_child(pass_leaf) + node.append_child(Leaf(token.NEWLINE, os.linesep)) + + elif len(suite.children) > 1 and \ + (suite.children[-2].type == token.INDENT and + suite.children[-1].type == token.DEDENT): + # there was only one line in the class body and it was __metaclass__ + pass_leaf = Leaf(text_type, 'pass') + suite.insert_child(-1, pass_leaf) + suite.insert_child(-1, Leaf(token.NEWLINE, os.linesep)) Modified: sandbox/trunk/2to3/lib2to3/tests/test_fixers.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/test_fixers.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Sat Sep 13 04:32:30 2008 @@ -3438,6 +3438,133 @@ s = """[i for i in m]""" self.unchanged(s) +class Test_metaclass(FixerTestCase): + + fixer = 'metaclass' + + def test_unchanged(self): + self.unchanged("class X(): pass") + self.unchanged("class X(object): pass") + self.unchanged("class X(object1, object2): pass") + self.unchanged("class X(object1, object2, object3): pass") + self.unchanged("class X(metaclass=Meta): pass") + self.unchanged("class X(b, arg=23, metclass=Meta): pass") + self.unchanged("class X(b, arg=23, metaclass=Meta, other=42): pass") + + s = """ + class X: + def __metaclass__(self): pass + """ + self.unchanged(s) + + def test_comments(self): + b = """ + class X: + # hi + __metaclass__ = AppleMeta + """ + a = """ + class X(metaclass=AppleMeta): + # hi + pass + """ + self.check(b, a) + + b = """ + class X: + __metaclass__ = Meta + # Bedtime! + """ + a = """ + class X(metaclass=Meta): + pass + # Bedtime! + """ + self.check(b, a) + + def test_meta(self): + # no-parent class, odd body + b = """ + class X(): + __metaclass__ = Q + pass + """ + a = """ + class X(metaclass=Q): + pass + """ + self.check(b, a) + + # one parent class, no body + b = """class X(object): __metaclass__ = Q""" + a = """class X(object, metaclass=Q): pass""" + self.check(b, a) + + + # one parent, simple body + b = """ + class X(object): + __metaclass__ = Meta + bar = 7 + """ + a = """ + class X(object, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + b = """ + class X: + __metaclass__ = Meta; x = 4; g = 23 + """ + a = """ + class X(metaclass=Meta): + x = 4; g = 23 + """ + self.check(b, a) + + # one parent, simple body, __metaclass__ last + b = """ + class X(object): + bar = 7 + __metaclass__ = Meta + """ + a = """ + class X(object, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + # redefining __metaclass__ + b = """ + class X(): + __metaclass__ = A + __metaclass__ = B + bar = 7 + """ + a = """ + class X(metaclass=B): + bar = 7 + """ + self.check(b, a) + + # multiple inheritance, simple body + b = """ + class X(clsA, clsB): + __metaclass__ = Meta + bar = 7 + """ + a = """ + class X(clsA, clsB, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + # keywords in the class statement + b = """class m(a, arg=23): __metaclass__ = Meta""" + a = """class m(a, arg=23, metaclass=Meta): pass""" + self.check(b, a) + if __name__ == "__main__": import __main__ From buildbot at python.org Sat Sep 13 06:05:34 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 04:05:34 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 3.0 Message-ID: <20080913040534.4FDE51E4003@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%203.0/builds/1581 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 32 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 10:11:57 2008 From: python-checkins at python.org (martin.v.loewis) Date: Sat, 13 Sep 2008 10:11:57 +0200 (CEST) Subject: [Python-checkins] r66439 - in python/trunk: Misc/NEWS Tools/msi/msi.py Message-ID: <20080913081157.C31BA1E4016@bag.python.org> Author: martin.v.loewis Date: Sat Sep 13 10:11:57 2008 New Revision: 66439 Log: Issue #3833: Use a different upgrade code for Win64 installers. Modified: python/trunk/Misc/NEWS python/trunk/Tools/msi/msi.py Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 13 10:11:57 2008 @@ -181,6 +181,8 @@ Build ----- +- Issue #3833: Use a different upgrade code for Win64 installers. + - Issue #2271: Set SecureCustomProperties so that installation will properly use the TARGETDIR even for unprivileged users. Modified: python/trunk/Tools/msi/msi.py ============================================================================== --- python/trunk/Tools/msi/msi.py (original) +++ python/trunk/Tools/msi/msi.py Sat Sep 13 10:11:57 2008 @@ -64,8 +64,11 @@ # This should never change. The UpgradeCode of this package can be # used in the Upgrade table of future packages to make the future # package replace this one. See "UpgradeCode Property". +# upgrade_code gets set to upgrade_code_64 when we have determined +# that the target is Win64. upgrade_code_snapshot='{92A24481-3ECB-40FC-8836-04B7966EC0D5}' upgrade_code='{65E6DE48-A358-434D-AA4F-4AF72DB4718F}' +upgrade_code_64='{6A965A0C-6EE6-4E3A-9983-3263F56311EC}' if snapshot: current_version = "%s.%s.%s" % (major, minor, int(time.time()/3600/24)) @@ -167,6 +170,8 @@ msilib.set_arch_from_file(dll_path) if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"): raise SystemError, "msisupport.dll for incorrect architecture" +if msilib.Win64: + upgrade_code = upgrade_code_64 if testpackage: ext = 'px' From python-checkins at python.org Sat Sep 13 10:36:22 2008 From: python-checkins at python.org (martin.v.loewis) Date: Sat, 13 Sep 2008 10:36:22 +0200 (CEST) Subject: [Python-checkins] r66441 - python/trunk/Tools/msi/msi.py Message-ID: <20080913083622.D942E1E4003@bag.python.org> Author: martin.v.loewis Date: Sat Sep 13 10:36:22 2008 New Revision: 66441 Log: Change product code of Win64 installer to allow simultaneous installation on Win32 and Win64; also change product name to be able to distinguish the two in ARP. Modified: python/trunk/Tools/msi/msi.py Modified: python/trunk/Tools/msi/msi.py ============================================================================== --- python/trunk/Tools/msi/msi.py (original) +++ python/trunk/Tools/msi/msi.py Sat Sep 13 10:36:22 2008 @@ -172,6 +172,10 @@ raise SystemError, "msisupport.dll for incorrect architecture" if msilib.Win64: upgrade_code = upgrade_code_64 + # Bump the last digit of the code by one, so that 32-bit and 64-bit + # releases get separate product codes + digit = hex((int(product_code[-2],16)+1)%16)[-1] + product_code = product_code[:-2] + digit + '}' if testpackage: ext = 'px' @@ -201,11 +205,15 @@ uc = upgrade_code_snapshot else: uc = upgrade_code + if msilib.Win64: + productsuffix = " (64-bit)" + else: + productsuffix = "" # schema represents the installer 2.0 database schema. # sequence is the set of standard sequences # (ui/execute, admin/advt/install) db = msilib.init_database("python-%s%s.msi" % (full_current_version, msilib.arch_ext), - schema, ProductName="Python "+full_current_version, + schema, ProductName="Python "+full_current_version+productsuffix, ProductCode=product_code, ProductVersion=current_version, Manufacturer=u"Python Software Foundation") From nnorwitz at gmail.com Sat Sep 13 10:47:54 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Sep 2008 04:47:54 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080913084754.GA2429@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650328 refs] From buildbot at python.org Sat Sep 13 11:17:52 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 09:17:52 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080913091753.22D0C1E4003@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/553 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From nnorwitz at gmail.com Sat Sep 13 11:19:10 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Sep 2008 05:19:10 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080913091910.GA5684@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649591 refs] From python-checkins at python.org Sat Sep 13 11:45:03 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 13 Sep 2008 11:45:03 +0200 (CEST) Subject: [Python-checkins] r66443 - doctools/trunk/tests/root/autodoc.txt Message-ID: <20080913094503.C263C1E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 13 11:44:40 2008 New Revision: 66443 Log: Add missing file. Added: doctools/trunk/tests/root/autodoc.txt (contents, props changed) Added: doctools/trunk/tests/root/autodoc.txt ============================================================================== --- (empty file) +++ doctools/trunk/tests/root/autodoc.txt Sat Sep 13 11:44:40 2008 @@ -0,0 +1,7 @@ +Autodoc tests +============= + +.. automodule:: test_autodoc + :members: + +.. autofunction:: function From python-checkins at python.org Sat Sep 13 11:46:11 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 13 Sep 2008 11:46:11 +0200 (CEST) Subject: [Python-checkins] r66444 - in doctools/trunk: sphinx/ext/coverage.py tests/root/conf.py tests/root/special tests/root/special/api.h tests/test_coverage.py Message-ID: <20080913094611.7EC991E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 13 11:45:59 2008 New Revision: 66444 Log: Add test for coverage builder and fix an AttributeError in it. Added: doctools/trunk/tests/root/special/ doctools/trunk/tests/root/special/api.h (contents, props changed) doctools/trunk/tests/test_coverage.py (contents, props changed) Modified: doctools/trunk/sphinx/ext/coverage.py doctools/trunk/tests/root/conf.py Modified: doctools/trunk/sphinx/ext/coverage.py ============================================================================== --- doctools/trunk/sphinx/ext/coverage.py (original) +++ doctools/trunk/sphinx/ext/coverage.py Sat Sep 13 11:45:59 2008 @@ -73,10 +73,9 @@ self.build_py_coverage() self.write_py_coverage() - if self.c_sourcefiles: - self.c_undoc = {} - self.build_c_coverage() - self.write_c_coverage() + self.c_undoc = {} + self.build_c_coverage() + self.write_c_coverage() def build_c_coverage(self): # Fetch all the info from the header files @@ -216,8 +215,9 @@ op.writelines(' - %s\n' % x for x in methods) op.write('\n') - write_header(op, 'Modules that failed to import') - op.writelines(' * %s -- %s\n' % x for x in failed) + if failed: + write_header(op, 'Modules that failed to import') + op.writelines(' * %s -- %s\n' % x for x in failed) finally: op.close() Modified: doctools/trunk/tests/root/conf.py ============================================================================== --- doctools/trunk/tests/root/conf.py (original) +++ doctools/trunk/tests/root/conf.py Sat Sep 13 11:45:59 2008 @@ -23,7 +23,7 @@ # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['ext', 'sphinx.ext.autodoc', 'sphinx.ext.jsmath'] +extensions = ['ext', 'sphinx.ext.autodoc', 'sphinx.ext.jsmath', 'sphinx.ext.coverage'] jsmath_path = 'dummy.js' # Add any paths that contain templates here, relative to this directory. @@ -172,6 +172,9 @@ value_from_conf_py = 84 +coverage_c_path = ['special/*.h'] +coverage_c_regexes = {'cfunction': r'^PyAPI_FUNC\(.*\)\s+([^_][\w_]+)'} + def setup(app): app.add_config_value('value_from_conf_py', 42, False) Added: doctools/trunk/tests/root/special/api.h ============================================================================== --- (empty file) +++ doctools/trunk/tests/root/special/api.h Sat Sep 13 11:45:59 2008 @@ -0,0 +1 @@ +PyAPI_FUNC(PyObject *) Py_SphinxTest(); Added: doctools/trunk/tests/test_coverage.py ============================================================================== --- (empty file) +++ doctools/trunk/tests/test_coverage.py Sat Sep 13 11:45:59 2008 @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +""" + test_coverage + ~~~~~~~~~~~~~ + + Test the coverage builder. + + :copyright: 2008 by Georg Brandl. + :license: BSD. +""" + +import pickle + +from util import * + + + at with_app(buildername='coverage') +def test_build(app): + app.builder.build_all() + + py_undoc = (app.outdir / 'python.txt').text() + assert py_undoc.startswith('Undocumented Python objects\n' + '===========================\n') + assert 'test_autodoc\n------------\n' in py_undoc + assert ' * Class -- missing methods:\n' in py_undoc + assert ' * process_docstring\n' in py_undoc + assert ' * function\n' not in py_undoc # these two are documented + assert ' * Class\n' not in py_undoc # in autodoc.txt + + c_undoc = (app.outdir / 'c.txt').text() + assert c_undoc.startswith('Undocumented C API elements\n' + '===========================\n') + assert 'api.h' in c_undoc + assert ' * Py_SphinxTest' in c_undoc + + undoc_py, undoc_c = pickle.loads((app.outdir / 'undoc.pickle').text()) + assert len(undoc_c) == 1 + # the key is the full path to the header file, which isn't testable + assert undoc_c.values()[0] == [('cfunction', 'Py_SphinxTest')] + + assert 'test_autodoc' in undoc_py + assert 'funcs' in undoc_py['test_autodoc'] + assert 'process_docstring' in undoc_py['test_autodoc']['funcs'] + assert 'classes' in undoc_py['test_autodoc'] + assert 'Class' in undoc_py['test_autodoc']['classes'] + assert 'undocmeth' in undoc_py['test_autodoc']['classes']['Class'] From buildbot at python.org Sat Sep 13 11:57:59 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 09:57:59 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080913095812.2E26B1E4003@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1401 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 13 12:29:48 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 10:29:48 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080913102948.BD4281E4003@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/564 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Sat Sep 13 13:02:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 11:02:27 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20080913110228.742E91E4004@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/1174 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Sat Sep 13 14:05:50 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 12:05:50 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080913120550.816DA1E4003@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/557 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 17:50:00 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 17:50:00 +0200 (CEST) Subject: [Python-checkins] r66445 - sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Message-ID: <20080913155000.84B991E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 17:50:00 2008 New Revision: 66445 Log: add a few more tests concerning int literals and weird spacing Modified: sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Modified: sandbox/trunk/2to3/lib2to3/tests/test_fixers.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/tests/test_fixers.py (original) +++ sandbox/trunk/2to3/lib2to3/tests/test_fixers.py Sat Sep 13 17:50:00 2008 @@ -2387,6 +2387,15 @@ a = """b = 0x12""" self.check(b, a) + def test_comments_and_spacing(self): + b = """b = 0x12L""" + a = """b = 0x12""" + self.check(b, a) + + b = """b = 0755 # spam""" + a = """b = 0o755 # spam""" + self.check(b, a) + def test_unchanged_int(self): s = """5""" self.unchanged(s) From buildbot at python.org Sat Sep 13 18:59:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 16:59:56 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080913165956.E06E91E4003@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/555 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 19:18:11 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 13 Sep 2008 19:18:11 +0200 (CEST) Subject: [Python-checkins] r66447 - in python/trunk/Doc/tutorial: classes.rst controlflow.rst datastructures.rst introduction.rst Message-ID: <20080913171811.EAD301E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 13 19:18:11 2008 New Revision: 66447 Log: Incorporate some suggestions by Tait Stevens. Modified: python/trunk/Doc/tutorial/classes.rst python/trunk/Doc/tutorial/controlflow.rst python/trunk/Doc/tutorial/datastructures.rst python/trunk/Doc/tutorial/introduction.rst Modified: python/trunk/Doc/tutorial/classes.rst ============================================================================== --- python/trunk/Doc/tutorial/classes.rst (original) +++ python/trunk/Doc/tutorial/classes.rst Sat Sep 13 19:18:11 2008 @@ -208,7 +208,7 @@ definition looked like this:: class MyClass: - "A simple example class" + """A simple example class""" i = 12345 def f(self): return 'hello world' Modified: python/trunk/Doc/tutorial/controlflow.rst ============================================================================== --- python/trunk/Doc/tutorial/controlflow.rst (original) +++ python/trunk/Doc/tutorial/controlflow.rst Sat Sep 13 19:18:11 2008 @@ -17,6 +17,7 @@ example:: >>> x = int(raw_input("Please enter an integer: ")) + Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print 'Negative changed to zero' @@ -26,7 +27,8 @@ ... print 'Single' ... else: ... print 'More' - ... + ... + More There can be zero or more :keyword:`elif` parts, and the :keyword:`else` part is optional. The keyword ':keyword:`elif`' is short for 'else if', and is useful @@ -161,7 +163,7 @@ required syntactically but the program requires no action. For example:: >>> while True: - ... pass # Busy-wait for keyboard interrupt + ... pass # Busy-wait for keyboard interrupt (Ctrl+C) ... @@ -192,14 +194,14 @@ The keyword :keyword:`def` introduces a function *definition*. It must be followed by the function name and the parenthesized list of formal parameters. The statements that form the body of the function start at the next line, and -must be indented. The first statement of the function body can optionally be a -string literal; this string literal is the function's documentation string, or -:dfn:`docstring`. +must be indented. +The first statement of the function body can optionally be a string literal; +this string literal is the function's documentation string, or :dfn:`docstring`. +(More about docstrings can be found in the section :ref:`tut-docstrings`.) There are tools which use docstrings to automatically produce online or printed documentation, or to let the user interactively browse through code; it's good -practice to include docstrings in code that you write, so try to make a habit of -it. +practice to include docstrings in code that you write, so make a habit of it. The *execution* of a function introduces a new symbol table used for the local variables of the function. More precisely, all variable assignments in a @@ -228,12 +230,12 @@ >>> f(100) 1 1 2 3 5 8 13 21 34 55 89 -You might object that ``fib`` is not a function but a procedure. In Python, -like in C, procedures are just functions that don't return a value. In fact, -technically speaking, procedures do return a value, albeit a rather boring one. -This value is called ``None`` (it's a built-in name). Writing the value -``None`` is normally suppressed by the interpreter if it would be the only value -written. You can see it if you really want to using :keyword:`print`:: +Coming from other languages, you might object that ``fib`` is not a function but +a procedure since it doesn't return a value. In fact, even functions without a +:keyword:`return` statement do return a value, albeit a rather boring one. This +value is called ``None`` (it's a built-in name). Writing the value ``None`` is +normally suppressed by the interpreter if it would be the only value written. +You can see it if you really want to using :keyword:`print`:: >>> fib(0) >>> print fib(0) @@ -259,7 +261,7 @@ * The :keyword:`return` statement returns with a value from a function. :keyword:`return` without an expression argument returns ``None``. Falling off - the end of a procedure also returns ``None``. + the end of a function also returns ``None``. * The statement ``result.append(b)`` calls a *method* of the list object ``result``. A method is a function that 'belongs' to an object and is named @@ -400,21 +402,21 @@ function like this:: def cheeseshop(kind, *arguments, **keywords): - print "-- Do you have any", kind, '?' + print "-- Do you have any", kind, "?" print "-- I'm sorry, we're all out of", kind for arg in arguments: print arg - print '-'*40 + print "-" * 40 keys = keywords.keys() keys.sort() - for kw in keys: print kw, ':', keywords[kw] + for kw in keys: print kw, ":", keywords[kw] It could be called like this:: - cheeseshop('Limburger', "It's very runny, sir.", + cheeseshop("Limburger", "It's very runny, sir.", "It's really very, VERY runny, sir.", - client='John Cleese', shopkeeper='Michael Palin', - sketch='Cheese Shop Sketch') + client="John Cleese", + sketch="Cheese Shop Sketch") and of course it would print:: @@ -442,8 +444,8 @@ Finally, the least frequently used option is to specify that a function can be called with an arbitrary number of arguments. These arguments will be wrapped -up in a tuple. Before the variable number of arguments, zero or more normal -arguments may occur. :: +up in a tuple (see :ref:`tut-tuples`). Before the variable number of arguments, +zero or more normal arguments may occur. :: def write_multiple_items(file, separator, *args): file.write(separator.join(args)) @@ -600,7 +602,8 @@ * Name your classes and functions consistently; the convention is to use ``CamelCase`` for classes and ``lower_case_with_underscores`` for functions - and methods. Always use ``self`` as the name for the first method argument. + and methods. Always use ``self`` as the name for the first method argument + (see :ref:`tut-firstclasses` for more on classes and methods). * Don't use fancy encodings if your code is meant to be used in international environments. Plain ASCII works best in any case. Modified: python/trunk/Doc/tutorial/datastructures.rst ============================================================================== --- python/trunk/Doc/tutorial/datastructures.rst (original) +++ python/trunk/Doc/tutorial/datastructures.rst Sat Sep 13 19:18:11 2008 @@ -345,6 +345,7 @@ Referencing the name ``a`` hereafter is an error (at least until another value is assigned to it). We'll find other uses for :keyword:`del` later. +.. _tut-tuples: .. _tut-tuples: Modified: python/trunk/Doc/tutorial/introduction.rst ============================================================================== --- python/trunk/Doc/tutorial/introduction.rst (original) +++ python/trunk/Doc/tutorial/introduction.rst Sat Sep 13 19:18:11 2008 @@ -13,9 +13,11 @@ Many of the examples in this manual, even those entered at the interactive prompt, include comments. Comments in Python start with the hash character, -``#``, and extend to the end of the physical line. A comment may appear at -the start of a line or following whitespace or code, but not within a string +``#``, and extend to the end of the physical line. A comment may appear at the +start of a line or following whitespace or code, but not within a string literal. A hash character within a string literal is just a hash character. +Since comments are to clarify code and are not interpreted by Python, they may +be omitted when typing in examples. Some examples:: @@ -77,6 +79,15 @@ >>> z 0 +Variables must be "defined" (assigned a value) before they can be used, or an +error will occur:: + + >>> # try to access an undefined variable + ... n + Traceback (most recent call last): + File "", line 1, in + NameError: name 'n' is not defined + There is full support for floating point; operators with mixed type operands convert the integer operand to floating point:: @@ -269,7 +280,7 @@ >>> word[2:] # Everything except the first two characters 'lpA' -Unlike a C string, Python strings cannot be changed. Assigning to an indexed +Unlike a C string, Python strings cannot be changed. Assigning to an indexed position in the string results in an error:: >>> word[0] = 'x' From python-checkins at python.org Sat Sep 13 19:31:08 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 19:31:08 +0200 (CEST) Subject: [Python-checkins] r66450 - python/trunk/Doc/tutorial/datastructures.rst Message-ID: <20080913173108.88A2A1E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 19:31:08 2008 New Revision: 66450 Log: remove duplicate target Modified: python/trunk/Doc/tutorial/datastructures.rst Modified: python/trunk/Doc/tutorial/datastructures.rst ============================================================================== --- python/trunk/Doc/tutorial/datastructures.rst (original) +++ python/trunk/Doc/tutorial/datastructures.rst Sat Sep 13 19:31:08 2008 @@ -345,7 +345,6 @@ Referencing the name ``a`` hereafter is an error (at least until another value is assigned to it). We'll find other uses for :keyword:`del` later. -.. _tut-tuples: .. _tut-tuples: From python-checkins at python.org Sat Sep 13 19:41:18 2008 From: python-checkins at python.org (georg.brandl) Date: Sat, 13 Sep 2008 19:41:18 +0200 (CEST) Subject: [Python-checkins] r66452 - in python/trunk/Doc: distutils/apiref.rst distutils/builtdist.rst distutils/commandref.rst distutils/setupscript.rst extending/embedding.rst howto/sockets.rst howto/unicode.rst library/binhex.rst library/carbon.rst library/cgihttpserver.rst library/framework.rst library/idle.rst library/imp.rst library/index.rst library/mac.rst library/macos.rst library/macpath.rst library/multiprocessing.rst library/os.path.rst library/os.rst library/plistlib.rst library/shutil.rst library/signal.rst library/subprocess.rst library/sys.rst library/time.rst library/tkinter.rst library/webbrowser.rst reference/lexical_analysis.rst tutorial/appetite.rst tutorial/inputoutput.rst tutorial/interpreter.rst using/cmdline.rst whatsnew/2.6.rst Message-ID: <20080913174118.195BC1E4003@bag.python.org> Author: georg.brandl Date: Sat Sep 13 19:41:16 2008 New Revision: 66452 Log: Remove things specific to the old Macintosh, and spell "Mac OS X" consistently. Modified: python/trunk/Doc/distutils/apiref.rst python/trunk/Doc/distutils/builtdist.rst python/trunk/Doc/distutils/commandref.rst python/trunk/Doc/distutils/setupscript.rst python/trunk/Doc/extending/embedding.rst python/trunk/Doc/howto/sockets.rst python/trunk/Doc/howto/unicode.rst python/trunk/Doc/library/binhex.rst python/trunk/Doc/library/carbon.rst python/trunk/Doc/library/cgihttpserver.rst python/trunk/Doc/library/framework.rst python/trunk/Doc/library/idle.rst python/trunk/Doc/library/imp.rst python/trunk/Doc/library/index.rst python/trunk/Doc/library/mac.rst python/trunk/Doc/library/macos.rst python/trunk/Doc/library/macpath.rst python/trunk/Doc/library/multiprocessing.rst python/trunk/Doc/library/os.path.rst python/trunk/Doc/library/os.rst python/trunk/Doc/library/plistlib.rst python/trunk/Doc/library/shutil.rst python/trunk/Doc/library/signal.rst python/trunk/Doc/library/subprocess.rst python/trunk/Doc/library/sys.rst python/trunk/Doc/library/time.rst python/trunk/Doc/library/tkinter.rst python/trunk/Doc/library/webbrowser.rst python/trunk/Doc/reference/lexical_analysis.rst python/trunk/Doc/tutorial/appetite.rst python/trunk/Doc/tutorial/inputoutput.rst python/trunk/Doc/tutorial/interpreter.rst python/trunk/Doc/using/cmdline.rst python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/distutils/apiref.rst ============================================================================== --- python/trunk/Doc/distutils/apiref.rst (original) +++ python/trunk/Doc/distutils/apiref.rst Sat Sep 13 19:41:16 2008 @@ -326,7 +326,7 @@ ``'posix'``, ``'nt'``), and *compiler* defaults to the default compiler for that platform. Currently only ``'posix'`` and ``'nt'`` are supported, and the default compilers are "traditional Unix interface" (:class:`UnixCCompiler` - class) and Visual C++(:class:`MSVCCompiler` class). Note that it's perfectly + class) and Visual C++ (:class:`MSVCCompiler` class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix---if you supply a value for *compiler*, *plat* is ignored. Modified: python/trunk/Doc/distutils/builtdist.rst ============================================================================== --- python/trunk/Doc/distutils/builtdist.rst (original) +++ python/trunk/Doc/distutils/builtdist.rst Sat Sep 13 19:41:16 2008 @@ -302,8 +302,8 @@ If you have a pure module distribution (only containing pure Python modules and packages), the resulting installer will be version independent and have a name -like :file:`foo-1.0.win32.exe`. These installers can even be created on Unix or -Mac OS platforms. +like :file:`foo-1.0.win32.exe`. These installers can even be created on Unix +platforms or Mac OS X. If you have a non-pure distribution, the extensions can only be created on a Windows platform, and will be Python version dependent. The installer filename Modified: python/trunk/Doc/distutils/commandref.rst ============================================================================== --- python/trunk/Doc/distutils/commandref.rst (original) +++ python/trunk/Doc/distutils/commandref.rst Sat Sep 13 19:41:16 2008 @@ -88,7 +88,7 @@ character, and ``[range]`` matches any of the characters in *range* (e.g., ``a-z``, ``a-zA-Z``, ``a-f0-9_.``). The definition of "regular filename character" is platform-specific: on Unix it is anything except slash; on Windows -anything except backslash or colon; on Mac OS 9 anything except colon. +anything except backslash or colon. **\*\*** Windows support not there yet **\*\*** Modified: python/trunk/Doc/distutils/setupscript.rst ============================================================================== --- python/trunk/Doc/distutils/setupscript.rst (original) +++ python/trunk/Doc/distutils/setupscript.rst Sat Sep 13 19:41:16 2008 @@ -46,9 +46,7 @@ whatever is appropriate on your current platform before actually using the pathname. This makes your setup script portable across operating systems, which of course is one of the major goals of the Distutils. In this spirit, all -pathnames in this document are slash-separated. (Mac OS 9 programmers should -keep in mind that the *absence* of a leading slash indicates a relative path, -the opposite of the Mac OS convention with colons.) +pathnames in this document are slash-separated. This, of course, only applies to pathnames given to Distutils functions. If you, for example, use standard Python functions such as :func:`glob.glob` or Modified: python/trunk/Doc/extending/embedding.rst ============================================================================== --- python/trunk/Doc/extending/embedding.rst (original) +++ python/trunk/Doc/extending/embedding.rst Sat Sep 13 19:41:16 2008 @@ -25,10 +25,9 @@ So if you are embedding Python, you are providing your own main program. One of the things this main program has to do is initialize the Python interpreter. At -the very least, you have to call the function :cfunc:`Py_Initialize` (on Mac OS, -call :cfunc:`PyMac_Initialize` instead). There are optional calls to pass -command line arguments to Python. Then later you can call the interpreter from -any part of the application. +the very least, you have to call the function :cfunc:`Py_Initialize`. There are +optional calls to pass command line arguments to Python. Then later you can +call the interpreter from any part of the application. There are several different ways to call the interpreter: you can pass a string containing Python statements to :cfunc:`PyRun_SimpleString`, or you can pass a Modified: python/trunk/Doc/howto/sockets.rst ============================================================================== --- python/trunk/Doc/howto/sockets.rst (original) +++ python/trunk/Doc/howto/sockets.rst Sat Sep 13 19:41:16 2008 @@ -390,8 +390,7 @@ only. Also note that in C, many of the more advanced socket options are done differently on Windows. In fact, on Windows I usually use threads (which work very, very well) with my sockets. Face it, if you want any kind of performance, -your code will look very different on Windows than on Unix. (I haven't the -foggiest how you do this stuff on a Mac.) +your code will look very different on Windows than on Unix. Performance Modified: python/trunk/Doc/howto/unicode.rst ============================================================================== --- python/trunk/Doc/howto/unicode.rst (original) +++ python/trunk/Doc/howto/unicode.rst Sat Sep 13 19:41:16 2008 @@ -568,7 +568,7 @@ Most of the operating systems in common use today support filenames that contain arbitrary Unicode characters. Usually this is implemented by converting the Unicode string into some encoding that varies depending on the system. For -example, MacOS X uses UTF-8 while Windows uses a configurable encoding; on +example, Mac OS X uses UTF-8 while Windows uses a configurable encoding; on Windows, Python uses the name "mbcs" to refer to whatever the currently configured encoding is. On Unix systems, there will only be a filesystem encoding if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if Modified: python/trunk/Doc/library/binhex.rst ============================================================================== --- python/trunk/Doc/library/binhex.rst (original) +++ python/trunk/Doc/library/binhex.rst Sat Sep 13 19:41:16 2008 @@ -58,7 +58,7 @@ the source for details. If you code or decode textfiles on non-Macintosh platforms they will still use -the Macintosh newline convention (carriage-return as end of line). +the old Macintosh newline convention (carriage-return as end of line). As of this writing, :func:`hexbin` appears to not work in all cases. Modified: python/trunk/Doc/library/carbon.rst ============================================================================== --- python/trunk/Doc/library/carbon.rst (original) +++ python/trunk/Doc/library/carbon.rst Sat Sep 13 19:41:16 2008 @@ -1,11 +1,11 @@ .. _toolbox: -********************* -MacOS Toolbox Modules -********************* +********************** +Mac OS Toolbox Modules +********************** -There are a set of modules that provide interfaces to various MacOS toolboxes. +There are a set of modules that provide interfaces to various Mac OS toolboxes. If applicable the module will define a number of Python objects for the various structures declared by the toolbox, and operations will be implemented as methods of the object. Other operations will be implemented as functions in the @@ -240,7 +240,7 @@ :deprecated: -This module is only fully available on MacOS9 and earlier under classic PPC +This module is only fully available on Mac OS 9 and earlier under classic PPC MacPython. Very limited functionality is available under Carbon MacPython. .. index:: single: Scrap Manager Modified: python/trunk/Doc/library/cgihttpserver.rst ============================================================================== --- python/trunk/Doc/library/cgihttpserver.rst (original) +++ python/trunk/Doc/library/cgihttpserver.rst Sat Sep 13 19:41:16 2008 @@ -19,8 +19,7 @@ .. note:: - This module can run CGI scripts on Unix and Windows systems; on Mac OS it will - only be able to run Python scripts within the same process as itself. + This module can run CGI scripts on Unix and Windows systems. .. note:: Modified: python/trunk/Doc/library/framework.rst ============================================================================== --- python/trunk/Doc/library/framework.rst (original) +++ python/trunk/Doc/library/framework.rst Sat Sep 13 19:41:16 2008 @@ -206,7 +206,7 @@ .. method:: Window.open() - Override this method to open a window. Store the MacOS window-id in + Override this method to open a window. Store the Mac OS window-id in :attr:`self.wid` and call the :meth:`do_postopen` method to register the window with the parent application. Modified: python/trunk/Doc/library/idle.rst ============================================================================== --- python/trunk/Doc/library/idle.rst (original) +++ python/trunk/Doc/library/idle.rst Sat Sep 13 19:41:16 2008 @@ -16,8 +16,7 @@ * coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit -* cross-platform: works on Windows and Unix (on Mac OS, there are currently - problems with Tcl/Tk) +* cross-platform: works on Windows and Unix * multi-window text editor with multiple undo, Python colorizing and many other features, e.g. smart indent and call tips Modified: python/trunk/Doc/library/imp.rst ============================================================================== --- python/trunk/Doc/library/imp.rst (original) +++ python/trunk/Doc/library/imp.rst Sat Sep 13 19:41:16 2008 @@ -42,8 +42,8 @@ searched, but first it searches a few special places: it tries to find a built-in module with the given name (:const:`C_BUILTIN`), then a frozen module (:const:`PY_FROZEN`), and on some systems some other places are looked - in as well (on the Mac, it looks for a resource (:const:`PY_RESOURCE`); on - Windows, it looks in the registry which may point to a specific file). + in as well (on Windows, it looks in the registry which may point to a + specific file). If search is successful, the return value is a 3-element tuple ``(file, pathname, description)``: @@ -153,12 +153,6 @@ The module was found as dynamically loadable shared library. -.. data:: PY_RESOURCE - - The module was found as a Mac OS 9 resource. This value can only be returned on - a Mac OS 9 or earlier Macintosh. - - .. data:: PKG_DIRECTORY The module was found as a package directory. Modified: python/trunk/Doc/library/index.rst ============================================================================== --- python/trunk/Doc/library/index.rst (original) +++ python/trunk/Doc/library/index.rst Sat Sep 13 19:41:16 2008 @@ -23,7 +23,7 @@ encourage and enhance the portability of Python programs by abstracting away platform-specifics into platform-neutral APIs. -The Python installers for the Windows and Mac platforms usually include +The Python installers for the Windows platform usually includes the entire standard library and often also include many additional components. For Unix-like operating systems Python is normally provided as a collection of packages, so it may be necessary to use the packaging Modified: python/trunk/Doc/library/mac.rst ============================================================================== --- python/trunk/Doc/library/mac.rst (original) +++ python/trunk/Doc/library/mac.rst Sat Sep 13 19:41:16 2008 @@ -1,8 +1,8 @@ .. _mac-specific-services: -************************* -MacOS X specific services -************************* +************************** +Mac OS X specific services +************************** This chapter describes modules that are only available on the Mac OS X platform. @@ -12,7 +12,7 @@ .. warning:: - These modules are deprecated and are removed in 3.0 + These modules are deprecated and are removed in 3.0. .. toctree:: Modified: python/trunk/Doc/library/macos.rst ============================================================================== --- python/trunk/Doc/library/macos.rst (original) +++ python/trunk/Doc/library/macos.rst Sat Sep 13 19:41:16 2008 @@ -1,4 +1,3 @@ - :mod:`MacOS` --- Access to Mac OS interpreter features ====================================================== Modified: python/trunk/Doc/library/macpath.rst ============================================================================== --- python/trunk/Doc/library/macpath.rst (original) +++ python/trunk/Doc/library/macpath.rst Sat Sep 13 19:41:16 2008 @@ -1,9 +1,9 @@ -:mod:`macpath` --- MacOS 9 path manipulation functions -====================================================== +:mod:`macpath` --- Mac OS 9 path manipulation functions +======================================================= .. module:: macpath - :synopsis: MacOS 9 path manipulation functions. + :synopsis: Mac OS 9 path manipulation functions. This module is the Mac OS 9 (and earlier) implementation of the :mod:`os.path` Modified: python/trunk/Doc/library/multiprocessing.rst ============================================================================== --- python/trunk/Doc/library/multiprocessing.rst (original) +++ python/trunk/Doc/library/multiprocessing.rst Sat Sep 13 19:41:16 2008 @@ -480,7 +480,7 @@ multithreading/multiprocessing semantics, this number is not reliable. Note that this may raise :exc:`NotImplementedError` on Unix platforms like - MacOS X where ``sem_getvalue()`` is not implemented. + Mac OS X where ``sem_getvalue()`` is not implemented. .. method:: empty() @@ -774,7 +774,7 @@ A bounded semaphore object: a clone of :class:`threading.BoundedSemaphore`. - (On Mac OSX this is indistinguishable from :class:`Semaphore` because + (On Mac OS X this is indistinguishable from :class:`Semaphore` because ``sem_getvalue()`` is not implemented on that platform). .. class:: Condition([lock]) Modified: python/trunk/Doc/library/os.path.rst ============================================================================== --- python/trunk/Doc/library/os.path.rst (original) +++ python/trunk/Doc/library/os.path.rst Sat Sep 13 19:41:16 2008 @@ -226,13 +226,13 @@ Return ``True`` if both pathname arguments refer to the same file or directory (as indicated by device number and i-node number). Raise an exception if a - :func:`os.stat` call on either pathname fails. Availability: Macintosh, Unix. + :func:`os.stat` call on either pathname fails. Availability: Unix. .. function:: sameopenfile(fp1, fp2) Return ``True`` if the file descriptors *fp1* and *fp2* refer to the same file. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: samestat(stat1, stat2) @@ -240,7 +240,7 @@ Return ``True`` if the stat tuples *stat1* and *stat2* refer to the same file. These structures may have been returned by :func:`fstat`, :func:`lstat`, or :func:`stat`. This function implements the underlying comparison used by - :func:`samefile` and :func:`sameopenfile`. Availability: Macintosh, Unix. + :func:`samefile` and :func:`sameopenfile`. Availability: Unix. .. function:: split(path) Modified: python/trunk/Doc/library/os.rst ============================================================================== --- python/trunk/Doc/library/os.rst (original) +++ python/trunk/Doc/library/os.rst Sat Sep 13 19:41:16 2008 @@ -24,6 +24,11 @@ .. note:: + If not separately noted, all functions that claim "Availability: Unix" are + supported on Mac OS X, which builds on a Unix core. + +.. note:: + All functions in this module raise :exc:`OSError` in the case of invalid or inaccessible file names and paths, or other arguments that have the correct type, but are not accepted by the operating system. @@ -44,7 +49,7 @@ .. data:: path The corresponding operating system dependent standard module for pathname - operations, such as :mod:`posixpath` or :mod:`macpath`. Thus, given the proper + operations, such as :mod:`posixpath` or :mod:`ntpath`. Thus, given the proper imports, ``os.path.split(file)`` is equivalent to but more portable than ``posixpath.split(file)``. Note that this is also an importable module: it may be imported directly as :mod:`os.path`. @@ -81,8 +86,9 @@ .. note:: - On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may cause - memory leaks. Refer to the system documentation for :cfunc:`putenv`. + On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may + cause memory leaks. Refer to the system documentation for + :cfunc:`putenv`. If :func:`putenv` is not provided, a modified copy of this mapping may be passed to the appropriate process-creation functions to cause child processes @@ -202,8 +208,8 @@ .. note:: - On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may cause - memory leaks. Refer to the system documentation for putenv. + On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may + cause memory leaks. Refer to the system documentation for putenv. When :func:`putenv` is supported, assignments to items in ``os.environ`` are automatically translated into corresponding calls to :func:`putenv`; however, @@ -338,7 +344,7 @@ Return an open file object connected to the file descriptor *fd*. The *mode* and *bufsize* arguments have the same meaning as the corresponding arguments to - the built-in :func:`open` function. Availability: Macintosh, Unix, Windows. + the built-in :func:`open` function. Availability: Unix, Windows. .. versionchanged:: 2.3 When specified, the *mode* argument must now start with one of the letters @@ -359,7 +365,7 @@ status of the command (encoded in the format specified for :func:`wait`) is available as the return value of the :meth:`close` method of the file object, except that when the exit status is zero (termination without errors), ``None`` - is returned. Availability: Macintosh, Unix, Windows. + is returned. Availability: Unix, Windows. .. deprecated:: 2.6 This function is obsolete. Use the :mod:`subprocess` module. Check @@ -376,7 +382,7 @@ Return a new file object opened in update mode (``w+b``). The file has no directory entries associated with it and will be automatically deleted once - there are no file descriptors for the file. Availability: Macintosh, Unix, + there are no file descriptors for the file. Availability: Unix, Windows. There are a number of different :func:`popen\*` functions that provide slightly @@ -415,7 +421,7 @@ This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.0 @@ -429,7 +435,7 @@ This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.0 @@ -443,7 +449,7 @@ This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.0 @@ -473,7 +479,7 @@ .. function:: close(fd) - Close file descriptor *fd*. Availability: Macintosh, Unix, Windows. + Close file descriptor *fd*. Availability: Unix, Windows. .. note:: @@ -486,7 +492,7 @@ .. function:: closerange(fd_low, fd_high) Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive), - ignoring errors. Availability: Macintosh, Unix, Windows. Equivalent to:: + ignoring errors. Availability: Unix, Windows. Equivalent to:: for fd in xrange(fd_low, fd_high): try: @@ -499,14 +505,14 @@ .. function:: dup(fd) - Return a duplicate of file descriptor *fd*. Availability: Macintosh, Unix, + Return a duplicate of file descriptor *fd*. Availability: Unix, Windows. .. function:: dup2(fd, fd2) Duplicate file descriptor *fd* to *fd2*, closing the latter first if necessary. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: fchmod(fd, mode) @@ -541,7 +547,7 @@ additional names as well. The names known to the host operating system are given in the ``pathconf_names`` dictionary. For configuration variables not included in that mapping, passing an integer for *name* is also accepted. - Availability: Macintosh, Unix. + Availability: Unix. If *name* is a string and is not known, :exc:`ValueError` is raised. If a specific value for *name* is not supported by the host system, even if it is @@ -552,7 +558,7 @@ .. function:: fstat(fd) Return status for file descriptor *fd*, like :func:`stat`. Availability: - Macintosh, Unix, Windows. + Unix, Windows. .. function:: fstatvfs(fd) @@ -568,20 +574,20 @@ If you're starting with a Python file object *f*, first do ``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all internal buffers associated - with *f* are written to disk. Availability: Macintosh, Unix, and Windows + with *f* are written to disk. Availability: Unix, and Windows starting in 2.2.3. .. function:: ftruncate(fd, length) Truncate the file corresponding to file descriptor *fd*, so that it is at most - *length* bytes in size. Availability: Macintosh, Unix. + *length* bytes in size. Availability: Unix. .. function:: isatty(fd) Return ``True`` if the file descriptor *fd* is open and connected to a - tty(-like) device, else ``False``. Availability: Macintosh, Unix. + tty(-like) device, else ``False``. Availability: Unix. .. function:: lseek(fd, pos, how) @@ -590,7 +596,7 @@ by *how*: :const:`SEEK_SET` or ``0`` to set the position relative to the beginning of the file; :const:`SEEK_CUR` or ``1`` to set it relative to the current position; :const:`os.SEEK_END` or ``2`` to set it relative to the end of - the file. Availability: Macintosh, Unix, Windows. + the file. Availability: Unix, Windows. .. function:: open(file, flags[, mode]) @@ -598,7 +604,7 @@ Open the file *file* and set various flags according to *flags* and possibly its mode according to *mode*. The default *mode* is ``0777`` (octal), and the current umask value is first masked out. Return the file descriptor for the - newly opened file. Availability: Macintosh, Unix, Windows. + newly opened file. Availability: Unix, Windows. For a description of the flag and mode values, see the C run-time documentation; flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) are defined in @@ -618,21 +624,21 @@ Open a new pseudo-terminal pair. Return a pair of file descriptors ``(master, slave)`` for the pty and the tty, respectively. For a (slightly) more portable - approach, use the :mod:`pty` module. Availability: Macintosh, some flavors of + approach, use the :mod:`pty` module. Availability: some flavors of Unix. .. function:: pipe() Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for reading - and writing, respectively. Availability: Macintosh, Unix, Windows. + and writing, respectively. Availability: Unix, Windows. .. function:: read(fd, n) Read at most *n* bytes from file descriptor *fd*. Return a string containing the bytes read. If the end of the file referred to by *fd* has been reached, an - empty string is returned. Availability: Macintosh, Unix, Windows. + empty string is returned. Availability: Unix, Windows. .. note:: @@ -646,26 +652,26 @@ .. function:: tcgetpgrp(fd) Return the process group associated with the terminal given by *fd* (an open - file descriptor as returned by :func:`open`). Availability: Macintosh, Unix. + file descriptor as returned by :func:`open`). Availability: Unix. .. function:: tcsetpgrp(fd, pg) Set the process group associated with the terminal given by *fd* (an open file - descriptor as returned by :func:`open`) to *pg*. Availability: Macintosh, Unix. + descriptor as returned by :func:`open`) to *pg*. Availability: Unix. .. function:: ttyname(fd) Return a string which specifies the terminal device associated with file descriptor *fd*. If *fd* is not associated with a terminal device, an - exception is raised. Availability:Macintosh, Unix. + exception is raised. Availability: Unix. .. function:: write(fd, str) Write the string *str* to file descriptor *fd*. Return the number of bytes - actually written. Availability: Macintosh, Unix, Windows. + actually written. Availability: Unix, Windows. .. note:: @@ -690,7 +696,7 @@ O_TRUNC Options for the *flag* argument to the :func:`open` function. These can be - combined using the bitwise OR operator ``|``. Availability: Macintosh, Unix, Windows. + combined using the bitwise OR operator ``|``. Availability: Unix, Windows. .. data:: O_DSYNC @@ -703,7 +709,7 @@ O_EXLOCK More options for the *flag* argument to the :func:`open` function. Availability: - Macintosh, Unix. + Unix. .. data:: O_BINARY @@ -733,7 +739,7 @@ SEEK_END Parameters to the :func:`lseek` function. Their values are 0, 1, and 2, - respectively. Availability: Windows, Macintosh, Unix. + respectively. Availability: Windows, Unix. .. versionadded:: 2.5 @@ -752,7 +758,7 @@ can be the inclusive OR of one or more of :const:`R_OK`, :const:`W_OK`, and :const:`X_OK` to test permissions. Return :const:`True` if access is allowed, :const:`False` if not. See the Unix man page :manpage:`access(2)` for more - information. Availability: Macintosh, Unix, Windows. + information. Availability: Unix, Windows. .. note:: @@ -796,7 +802,7 @@ .. index:: single: directory; changing - Change the current working directory to *path*. Availability: Macintosh, Unix, + Change the current working directory to *path*. Availability: Unix, Windows. @@ -812,13 +818,13 @@ .. function:: getcwd() Return a string representing the current working directory. Availability: - Macintosh, Unix, Windows. + Unix, Windows. .. function:: getcwdu() Return a Unicode object representing the current working directory. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.3 @@ -839,7 +845,7 @@ * ``SF_NOUNLINK`` * ``SF_SNAPSHOT`` - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.6 @@ -847,7 +853,7 @@ .. function:: chroot(path) Change the root directory of the current process to *path*. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.2 @@ -879,7 +885,7 @@ * ``stat.S_IWOTH`` * ``stat.S_IXOTH`` - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. note:: @@ -892,7 +898,7 @@ .. function:: chown(path, uid, gid) Change the owner and group id of *path* to the numeric *uid* and *gid*. To leave - one of the ids unchanged, set it to -1. Availability: Macintosh, Unix. + one of the ids unchanged, set it to -1. Availability: Unix. .. function:: lchflags(path, flags) @@ -915,21 +921,21 @@ .. function:: lchown(path, uid, gid) Change the owner and group id of *path* to the numeric *uid* and *gid*. This - function will not follow symbolic links. Availability: Macintosh, Unix. + function will not follow symbolic links. Availability: Unix. .. versionadded:: 2.3 .. function:: link(src, dst) - Create a hard link pointing to *src* named *dst*. Availability: Macintosh, Unix. + Create a hard link pointing to *src* named *dst*. Availability: Unix. .. function:: listdir(path) Return a list containing the names of the entries in the directory. The list is in arbitrary order. It does not include the special entries ``'.'`` and - ``'..'`` even if they are present in the directory. Availability: Macintosh, + ``'..'`` even if they are present in the directory. Availability: Unix, Windows. .. versionchanged:: 2.3 @@ -948,7 +954,7 @@ Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The default *mode* is ``0666`` (octal). The current umask value is first masked out from - the mode. Availability: Macintosh, Unix. + the mode. Availability: Unix. FIFOs are pipes that can be accessed like regular files. FIFOs exist until they are deleted (for example with :func:`os.unlink`). Generally, FIFOs are used as @@ -998,7 +1004,7 @@ Create a directory named *path* with numeric mode *mode*. The default *mode* is ``0777`` (octal). On some systems, *mode* is ignored. Where it is used, the - current umask value is first masked out. Availability: Macintosh, Unix, Windows. + current umask value is first masked out. Availability: Unix, Windows. It is also possible to create temporary directories; see the :mod:`tempfile` module's :func:`tempfile.mkdtemp` function. @@ -1036,7 +1042,7 @@ additional names as well. The names known to the host operating system are given in the ``pathconf_names`` dictionary. For configuration variables not included in that mapping, passing an integer for *name* is also accepted. - Availability: Macintosh, Unix. + Availability: Unix. If *name* is a string and is not known, :exc:`ValueError` is raised. If a specific value for *name* is not supported by the host system, even if it is @@ -1049,7 +1055,7 @@ Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` to the integer values defined for those names by the host operating system. This can be used to determine the set of names known to the system. Availability: - Macintosh, Unix. + Unix. .. function:: readlink(path) @@ -1062,7 +1068,7 @@ .. versionchanged:: 2.6 If the *path* is a Unicode object the result will also be a Unicode object. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: remove(path) @@ -1072,7 +1078,7 @@ :func:`unlink` function documented below. On Windows, attempting to remove a file that is in use causes an exception to be raised; on Unix, the directory entry is removed but the storage allocated to the file is not made available - until the original file is no longer in use. Availability: Macintosh, Unix, + until the original file is no longer in use. Availability: Unix, Windows. @@ -1101,7 +1107,7 @@ the renaming will be an atomic operation (this is a POSIX requirement). On Windows, if *dst* already exists, :exc:`OSError` will be raised even if it is a file; there may be no way to implement an atomic rename when *dst* names an - existing file. Availability: Macintosh, Unix, Windows. + existing file. Availability: Unix, Windows. .. function:: renames(old, new) @@ -1121,7 +1127,7 @@ .. function:: rmdir(path) - Remove the directory *path*. Availability: Macintosh, Unix, Windows. + Remove the directory *path*. Availability: Unix, Windows. .. function:: stat(path) @@ -1185,7 +1191,7 @@ :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` has only 1-day resolution. See your operating system documentation for details. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionchanged:: 2.2 Added access to values as attributes of the returned object. @@ -1265,7 +1271,7 @@ Use of :func:`tempnam` is vulnerable to symlink attacks; consider using :func:`tmpfile` (section :ref:`os-newstreams`) instead. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: tmpnam() @@ -1297,7 +1303,7 @@ .. function:: unlink(path) Remove the file *path*. This is the same function as :func:`remove`; the - :func:`unlink` name is its traditional Unix name. Availability: Macintosh, Unix, + :func:`unlink` name is its traditional Unix name. Availability: Unix, Windows. @@ -1317,7 +1323,7 @@ .. versionchanged:: 2.0 Added support for ``None`` for *times*. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: walk(top[, topdown=True [, onerror=None[, followlinks=False]]]) @@ -1430,7 +1436,7 @@ behavior is to produce a core dump; on Windows, the process immediately returns an exit code of ``3``. Be aware that programs which use :func:`signal.signal` to register a handler for :const:`SIGABRT` will behave differently. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: execl(path, arg0, arg1, ...) @@ -1471,14 +1477,14 @@ used to define the environment variables for the new process (these are used instead of the current process' environment); the functions :func:`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new process to - inherit the environment of the current process. Availability: Macintosh, Unix, + inherit the environment of the current process. Availability: Unix, Windows. .. function:: _exit(n) Exit to the system with status *n*, without calling cleanup handlers, flushing - stdio buffers, etc. Availability: Macintosh, Unix, Windows. + stdio buffers, etc. Availability: Unix, Windows. .. note:: @@ -1498,7 +1504,7 @@ .. data:: EX_OK - Exit code that means no error occurred. Availability: Macintosh, Unix. + Exit code that means no error occurred. Availability: Unix. .. versionadded:: 2.3 @@ -1506,15 +1512,14 @@ .. data:: EX_USAGE Exit code that means the command was used incorrectly, such as when the wrong - number of arguments are given. Availability: Macintosh, Unix. + number of arguments are given. Availability: Unix. .. versionadded:: 2.3 .. data:: EX_DATAERR - Exit code that means the input data was incorrect. Availability: Macintosh, - Unix. + Exit code that means the input data was incorrect. Availability: Unix. .. versionadded:: 2.3 @@ -1522,23 +1527,21 @@ .. data:: EX_NOINPUT Exit code that means an input file did not exist or was not readable. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 .. data:: EX_NOUSER - Exit code that means a specified user did not exist. Availability: Macintosh, - Unix. + Exit code that means a specified user did not exist. Availability: Unix. .. versionadded:: 2.3 .. data:: EX_NOHOST - Exit code that means a specified host did not exist. Availability: Macintosh, - Unix. + Exit code that means a specified host did not exist. Availability: Unix. .. versionadded:: 2.3 @@ -1546,7 +1549,7 @@ .. data:: EX_UNAVAILABLE Exit code that means that a required service is unavailable. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1554,7 +1557,7 @@ .. data:: EX_SOFTWARE Exit code that means an internal software error was detected. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1562,7 +1565,7 @@ .. data:: EX_OSERR Exit code that means an operating system error was detected, such as the - inability to fork or create a pipe. Availability: Macintosh, Unix. + inability to fork or create a pipe. Availability: Unix. .. versionadded:: 2.3 @@ -1570,7 +1573,7 @@ .. data:: EX_OSFILE Exit code that means some system file did not exist, could not be opened, or had - some other kind of error. Availability: Macintosh, Unix. + some other kind of error. Availability: Unix. .. versionadded:: 2.3 @@ -1578,7 +1581,7 @@ .. data:: EX_CANTCREAT Exit code that means a user specified output file could not be created. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 @@ -1586,7 +1589,7 @@ .. data:: EX_IOERR Exit code that means that an error occurred while doing I/O on some file. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 @@ -1595,7 +1598,7 @@ Exit code that means a temporary failure occurred. This indicates something that may not really be an error, such as a network connection that couldn't be - made during a retryable operation. Availability: Macintosh, Unix. + made during a retryable operation. Availability: Unix. .. versionadded:: 2.3 @@ -1603,7 +1606,7 @@ .. data:: EX_PROTOCOL Exit code that means that a protocol exchange was illegal, invalid, or not - understood. Availability: Macintosh, Unix. + understood. Availability: Unix. .. versionadded:: 2.3 @@ -1611,8 +1614,7 @@ .. data:: EX_NOPERM Exit code that means that there were insufficient permissions to perform the - operation (but not intended for file system problems). Availability: Macintosh, - Unix. + operation (but not intended for file system problems). Availability: Unix. .. versionadded:: 2.3 @@ -1620,7 +1622,7 @@ .. data:: EX_CONFIG Exit code that means that some kind of configuration error occurred. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 @@ -1628,7 +1630,7 @@ .. data:: EX_NOTFOUND Exit code that means something like "an entry was not found". Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1637,7 +1639,7 @@ Fork a child process. Return ``0`` in the child and the child's process id in the parent. If an error occurs :exc:`OSError` is raised. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: forkpty() @@ -1647,7 +1649,7 @@ new child's process id in the parent, and *fd* is the file descriptor of the master end of the pseudo-terminal. For a more portable approach, use the :mod:`pty` module. If an error occurs :exc:`OSError` is raised. - Availability: Macintosh, some flavors of Unix. + Availability: some flavors of Unix. .. function:: kill(pid, sig) @@ -1658,7 +1660,7 @@ Send signal *sig* to the process *pid*. Constants for the specific signals available on the host platform are defined in the :mod:`signal` module. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: killpg(pgid, sig) @@ -1667,8 +1669,7 @@ single: process; killing single: process; signalling - Send the signal *sig* to the process group *pgid*. Availability: Macintosh, - Unix. + Send the signal *sig* to the process group *pgid*. Availability: Unix. .. versionadded:: 2.3 @@ -1676,14 +1677,13 @@ .. function:: nice(increment) Add *increment* to the process's "niceness". Return the new niceness. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: plock(op) Lock program segments into memory. The value of *op* (defined in - ````) determines which segments are locked. Availability: Macintosh, - Unix. + ````) determines which segments are locked. Availability: Unix. .. function:: popen(...) @@ -1765,7 +1765,7 @@ Possible values for the *mode* parameter to the :func:`spawn\*` family of functions. If either of these values is given, the :func:`spawn\*` functions will return as soon as the new process has been created, with the process id as - the return value. Availability: Macintosh, Unix, Windows. + the return value. Availability: Unix, Windows. .. versionadded:: 1.6 @@ -1776,7 +1776,7 @@ functions. If this is given as *mode*, the :func:`spawn\*` functions will not return until the new process has run to completion and will return the exit code of the process the run is successful, or ``-signal`` if a signal kills the - process. Availability: Macintosh, Unix, Windows. + process. Availability: Unix, Windows. .. versionadded:: 1.6 @@ -1841,7 +1841,7 @@ the command run; on systems using a non-native shell, consult your shell documentation. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. The :mod:`subprocess` module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using @@ -1855,7 +1855,7 @@ other) times, in seconds. The items are: user time, system time, children's user time, children's system time, and elapsed real time since a fixed point in the past, in that order. See the Unix manual page :manpage:`times(2)` or the - corresponding Windows Platform API documentation. Availability: Macintosh, Unix, + corresponding Windows Platform API documentation. Availability: Unix, Windows. On Windows, only the first two items are filled, the others are zero. @@ -1865,7 +1865,7 @@ and exit status indication: a 16-bit number, whose low byte is the signal number that killed the process, and whose high byte is the exit status (if the signal number is zero); the high bit of the low byte is set if a core file was - produced. Availability: Macintosh, Unix. + produced. Availability: Unix. .. function:: waitpid(pid, options) @@ -1923,7 +1923,7 @@ The option for :func:`waitpid` to return immediately if no child process status is available immediately. The function returns ``(0, 0)`` in this case. - Availability: Macintosh, Unix. + Availability: Unix. .. data:: WCONTINUED @@ -1939,7 +1939,7 @@ This option causes child processes to be reported if they have been stopped but their current state has not been reported since they were stopped. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1951,7 +1951,7 @@ .. function:: WCOREDUMP(status) Return ``True`` if a core dump was generated for the process, otherwise - return ``False``. Availability: Macintosh, Unix. + return ``False``. Availability: Unix. .. versionadded:: 2.3 @@ -1973,32 +1973,30 @@ .. function:: WIFSIGNALED(status) Return ``True`` if the process exited due to a signal, otherwise return - ``False``. Availability: Macintosh, Unix. + ``False``. Availability: Unix. .. function:: WIFEXITED(status) Return ``True`` if the process exited using the :manpage:`exit(2)` system call, - otherwise return ``False``. Availability: Macintosh, Unix. + otherwise return ``False``. Availability: Unix. .. function:: WEXITSTATUS(status) If ``WIFEXITED(status)`` is true, return the integer parameter to the :manpage:`exit(2)` system call. Otherwise, the return value is meaningless. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: WSTOPSIG(status) - Return the signal which caused the process to stop. Availability: Macintosh, - Unix. + Return the signal which caused the process to stop. Availability: Unix. .. function:: WTERMSIG(status) - Return the signal which caused the process to exit. Availability: Macintosh, - Unix. + Return the signal which caused the process to exit. Availability: Unix. .. _os-path: @@ -2016,7 +2014,7 @@ The names known to the host operating system are given as the keys of the ``confstr_names`` dictionary. For configuration variables not included in that mapping, passing an integer for *name* is also accepted. Availability: - Macintosh, Unix. + Unix. If the configuration value specified by *name* isn't defined, ``None`` is returned. @@ -2031,7 +2029,7 @@ Dictionary mapping names accepted by :func:`confstr` to the integer values defined for those names by the host operating system. This can be used to - determine the set of names known to the system. Availability: Macintosh, Unix. + determine the set of names known to the system. Availability: Unix. .. function:: getloadavg() @@ -2049,14 +2047,14 @@ specified by *name* isn't defined, ``-1`` is returned. The comments regarding the *name* parameter for :func:`confstr` apply here as well; the dictionary that provides information on the known names is given by ``sysconf_names``. - Availability: Macintosh, Unix. + Availability: Unix. .. data:: sysconf_names Dictionary mapping names accepted by :func:`sysconf` to the integer values defined for those names by the host operating system. This can be used to - determine the set of names known to the system. Availability: Macintosh, Unix. + determine the set of names known to the system. Availability: Unix. The following data values are used to support path manipulation operations. These are defined for all platforms. @@ -2067,22 +2065,22 @@ .. data:: curdir The constant string used by the operating system to refer to the current - directory. For example: ``'.'`` for POSIX or ``':'`` for Mac OS 9. Also - available via :mod:`os.path`. + directory. This is ``'.'`` for Windows and POSIX. Also available via + :mod:`os.path`. .. data:: pardir The constant string used by the operating system to refer to the parent - directory. For example: ``'..'`` for POSIX or ``'::'`` for Mac OS 9. Also - available via :mod:`os.path`. + directory. This is ``'..'`` for Windows and POSIX. Also available via + :mod:`os.path`. .. data:: sep - The character used by the operating system to separate pathname components, for - example, ``'/'`` for POSIX or ``':'`` for Mac OS 9. Note that knowing this is - not sufficient to be able to parse or concatenate pathnames --- use + The character used by the operating system to separate pathname components. + This is ``'/'`` for POSIX and ``'\\'`` for Windows. Note that knowing this + is not sufficient to be able to parse or concatenate pathnames --- use :func:`os.path.split` and :func:`os.path.join` --- but it is occasionally useful. Also available via :mod:`os.path`. @@ -2119,16 +2117,16 @@ .. data:: linesep The string used to separate (or, rather, terminate) lines on the current - platform. This may be a single character, such as ``'\n'`` for POSIX or - ``'\r'`` for Mac OS, or multiple characters, for example, ``'\r\n'`` for - Windows. Do not use *os.linesep* as a line terminator when writing files opened - in text mode (the default); use a single ``'\n'`` instead, on all platforms. + platform. This may be a single character, such as ``'\n'`` for POSIX, or + multiple characters, for example, ``'\r\n'`` for Windows. Do not use + *os.linesep* as a line terminator when writing files opened in text mode (the + default); use a single ``'\n'`` instead, on all platforms. .. data:: devnull - The file path of the null device. For example: ``'/dev/null'`` for POSIX or - ``'Dev:Nul'`` for Mac OS 9. Also available via :mod:`os.path`. + The file path of the null device. For example: ``'/dev/null'`` for POSIX. + Also available via :mod:`os.path`. .. versionadded:: 2.4 Modified: python/trunk/Doc/library/plistlib.rst ============================================================================== --- python/trunk/Doc/library/plistlib.rst (original) +++ python/trunk/Doc/library/plistlib.rst Sat Sep 13 19:41:16 2008 @@ -1,8 +1,8 @@ -:mod:`plistlib` --- Generate and parse MacOS X ``.plist`` files -=============================================================== +:mod:`plistlib` --- Generate and parse Mac OS X ``.plist`` files +================================================================ .. module:: plistlib - :synopsis: Generate and parse MacOS X plist files. + :synopsis: Generate and parse Mac OS X plist files. .. moduleauthor:: Jack Jansen .. sectionauthor:: Georg Brandl .. (harvested from docstrings in the original file) @@ -16,7 +16,7 @@ single: property list This module provides an interface for reading and writing the "property list" -XML files used mainly by MacOS X. +XML files used mainly by Mac OS X. The property list (``.plist``) file format is a simple XML pickle supporting basic object types, like dictionaries, lists, numbers and strings. Usually the @@ -73,7 +73,7 @@ .. function:: readPlistFromResource(path[, restype='plst'[, resid=0]]) Read a plist from the resource with type *restype* from the resource fork of - *path*. Availability: MacOS X. + *path*. Availability: Mac OS X. .. warning:: @@ -84,7 +84,7 @@ .. function:: writePlistToResource(rootObject, path[, restype='plst'[, resid=0]]) Write *rootObject* as a resource with type *restype* to the resource fork of - *path*. Availability: MacOS X. + *path*. Availability: Mac OS X. .. warning:: Modified: python/trunk/Doc/library/shutil.rst ============================================================================== --- python/trunk/Doc/library/shutil.rst (original) +++ python/trunk/Doc/library/shutil.rst Sat Sep 13 19:41:16 2008 @@ -22,7 +22,7 @@ can't copy all file metadata. On POSIX platforms, this means that file owner and group are lost as well - as ACLs. On MacOS, the resource fork and other metadata are not used. + as ACLs. On Mac OS, the resource fork and other metadata are not used. This means that resources will be lost and file type and creator codes will not be correct. On Windows, file owners, ACLs and alternate data streams are not copied. Modified: python/trunk/Doc/library/signal.rst ============================================================================== --- python/trunk/Doc/library/signal.rst (original) +++ python/trunk/Doc/library/signal.rst Sat Sep 13 19:41:16 2008 @@ -188,7 +188,7 @@ Change system call restart behaviour: if *flag* is :const:`False`, system calls will be restarted when interrupted by signal *signalnum*, otherwise system calls will - be interrupted. Returns nothing. Availability: Unix, Mac (see the man page + be interrupted. Returns nothing. Availability: Unix (see the man page :manpage:`siginterrupt(3)` for further information). Note that installing a signal handler with :func:`signal` will reset the restart Modified: python/trunk/Doc/library/subprocess.rst ============================================================================== --- python/trunk/Doc/library/subprocess.rst (original) +++ python/trunk/Doc/library/subprocess.rst Sat Sep 13 19:41:16 2008 @@ -104,7 +104,7 @@ If *universal_newlines* is :const:`True`, the file objects stdout and stderr are opened as text files, but lines may be terminated by any of ``'\n'``, the Unix - end-of-line convention, ``'\r'``, the Macintosh convention or ``'\r\n'``, the + end-of-line convention, ``'\r'``, the old Macintosh convention or ``'\r\n'``, the Windows convention. All of these external representations are seen as ``'\n'`` by the Python program. Modified: python/trunk/Doc/library/sys.rst ============================================================================== --- python/trunk/Doc/library/sys.rst (original) +++ python/trunk/Doc/library/sys.rst Sat Sep 13 19:41:16 2008 @@ -582,8 +582,8 @@ ================ =========================== Windows ``'win32'`` Windows/Cygwin ``'cygwin'`` - MacOS X ``'darwin'`` - MacOS 9 ``'mac'`` + Mac OS X ``'darwin'`` + Mac OS 9 ``'mac'`` OS/2 ``'os2'`` OS/2 EMX ``'os2emx'`` RiscOS ``'riscos'`` Modified: python/trunk/Doc/library/time.rst ============================================================================== --- python/trunk/Doc/library/time.rst (original) +++ python/trunk/Doc/library/time.rst Sat Sep 13 19:41:16 2008 @@ -67,8 +67,7 @@ * The precision of the various real-time functions may be less than suggested by the units in which their value or argument is expressed. E.g. on most Unix - systems, the clock "ticks" only 50 or 100 times a second, and on the Mac, times - are only accurate to whole seconds. + systems, the clock "ticks" only 50 or 100 times a second. * On the other hand, the precision of :func:`time` and :func:`sleep` is better than their Unix equivalents: times are expressed as floating point numbers, Modified: python/trunk/Doc/library/tkinter.rst ============================================================================== --- python/trunk/Doc/library/tkinter.rst (original) +++ python/trunk/Doc/library/tkinter.rst Sat Sep 13 19:41:16 2008 @@ -8,8 +8,8 @@ The :mod:`Tkinter` module ("Tk interface") is the standard Python interface to the Tk GUI toolkit. Both Tk and :mod:`Tkinter` are available on most Unix -platforms, as well as on Windows and Macintosh systems. (Tk itself is not part -of Python; it is maintained at ActiveState.) +platforms, as well as on Windows systems. (Tk itself is not part of Python; it +is maintained at ActiveState.) .. note:: Modified: python/trunk/Doc/library/webbrowser.rst ============================================================================== --- python/trunk/Doc/library/webbrowser.rst (original) +++ python/trunk/Doc/library/webbrowser.rst Sat Sep 13 19:41:16 2008 @@ -151,10 +151,10 @@ Only on Windows platforms. (3) - Only on MacOS platforms; requires the standard MacPython :mod:`ic` module. + Only on Mac OS platforms; requires the standard MacPython :mod:`ic` module. (4) - Only on MacOS X platform. + Only on Mac OS X platform. Here are some simple examples:: Modified: python/trunk/Doc/reference/lexical_analysis.rst ============================================================================== --- python/trunk/Doc/reference/lexical_analysis.rst (original) +++ python/trunk/Doc/reference/lexical_analysis.rst Sat Sep 13 19:41:16 2008 @@ -75,7 +75,7 @@ A physical line is a sequence of characters terminated by an end-of-line sequence. In source files, any of the standard platform line termination sequences can be used - the Unix form using ASCII LF (linefeed), the Windows -form using the ASCII sequence CR LF (return followed by linefeed), or the +form using the ASCII sequence CR LF (return followed by linefeed), or the old Macintosh form using the ASCII CR (return) character. All of these forms can be used equally, regardless of platform. Modified: python/trunk/Doc/tutorial/appetite.rst ============================================================================== --- python/trunk/Doc/tutorial/appetite.rst (original) +++ python/trunk/Doc/tutorial/appetite.rst Sat Sep 13 19:41:16 2008 @@ -23,7 +23,7 @@ tasks, but shell scripts are best at moving around files and changing text data, not well-suited for GUI applications or games. You could write a C/C++/Java program, but it can take a lot of development time to get even a first-draft -program. Python is simpler to use, available on Windows, MacOS X, and Unix +program. Python is simpler to use, available on Windows, Mac OS X, and Unix operating systems, and will help you get the job done more quickly. Python is simple to use, but it is a real programming language, offering much Modified: python/trunk/Doc/tutorial/inputoutput.rst ============================================================================== --- python/trunk/Doc/tutorial/inputoutput.rst (original) +++ python/trunk/Doc/tutorial/inputoutput.rst Sat Sep 13 19:41:16 2008 @@ -237,15 +237,15 @@ writing. The *mode* argument is optional; ``'r'`` will be assumed if it's omitted. -On Windows and the Macintosh, ``'b'`` appended to the mode opens the file in -binary mode, so there are also modes like ``'rb'``, ``'wb'``, and ``'r+b'``. -Windows makes a distinction between text and binary files; the end-of-line -characters in text files are automatically altered slightly when data is read or -written. This behind-the-scenes modification to file data is fine for ASCII -text files, but it'll corrupt binary data like that in :file:`JPEG` or -:file:`EXE` files. Be very careful to use binary mode when reading and writing -such files. On Unix, it doesn't hurt to append a ``'b'`` to the mode, so -you can use it platform-independently for all binary files. +On Windows, ``'b'`` appended to the mode opens the file in binary mode, so there +are also modes like ``'rb'``, ``'wb'``, and ``'r+b'``. Windows makes a +distinction between text and binary files; the end-of-line characters in text +files are automatically altered slightly when data is read or written. This +behind-the-scenes modification to file data is fine for ASCII text files, but +it'll corrupt binary data like that in :file:`JPEG` or :file:`EXE` files. Be +very careful to use binary mode when reading and writing such files. On Unix, +it doesn't hurt to append a ``'b'`` to the mode, so you can use it +platform-independently for all binary files. .. _tut-filemethods: Modified: python/trunk/Doc/tutorial/interpreter.rst ============================================================================== --- python/trunk/Doc/tutorial/interpreter.rst (original) +++ python/trunk/Doc/tutorial/interpreter.rst Sat Sep 13 19:41:16 2008 @@ -157,9 +157,9 @@ (assuming that the interpreter is on the user's :envvar:`PATH`) at the beginning of the script and giving the file an executable mode. The ``#!`` must be the first two characters of the file. On some platforms, this first line must end -with a Unix-style line ending (``'\n'``), not a Mac OS (``'\r'``) or Windows -(``'\r\n'``) line ending. Note that the hash, or pound, character, ``'#'``, is -used to start a comment in Python. +with a Unix-style line ending (``'\n'``), not a Windows (``'\r\n'``) line +ending. Note that the hash, or pound, character, ``'#'``, is used to start a +comment in Python. The script can be given an executable mode, or permission, using the :program:`chmod` command:: Modified: python/trunk/Doc/using/cmdline.rst ============================================================================== --- python/trunk/Doc/using/cmdline.rst (original) +++ python/trunk/Doc/using/cmdline.rst Sat Sep 13 19:41:16 2008 @@ -516,7 +516,7 @@ If this environment variable is set, ``sys.argv[0]`` will be set to its value instead of the value got through the C runtime. Only works on - MacOS X. + Mac OS X. Debug-mode variables Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Sat Sep 13 19:41:16 2008 @@ -528,11 +528,11 @@ Python 2.6 introduces a convention for user-specific site directories. The directory varies depending on the platform: -* Unix and MacOS: :file:`~/.local/` +* Unix and Mac OS X: :file:`~/.local/` * Windows: :file:`%APPDATA%/Python` Within this directory, there will be version-specific subdirectories, -such as :file:`lib/python2.6/site-packages` on Unix/MacOS and +such as :file:`lib/python2.6/site-packages` on Unix/Mac OS and :file:`Python26/site-packages` on Windows. If you don't like the default directory, it can be overridden by an @@ -2784,12 +2784,12 @@ The :mod:`plistlib` module: A Property-List Parser -------------------------------------------------- -The ``.plist`` format is commonly used on MacOS X to +The ``.plist`` format is commonly used on Mac OS X to store basic data types (numbers, strings, lists, and dictionaries) by serializing them into an XML-based format. It resembles the XML-RPC serialization of data types. -Despite being primarily used on MacOS X, the format +Despite being primarily used on Mac OS X, the format has nothing Mac-specific about it and the Python implementation works on any platform that Python supports, so the :mod:`plistlib` module has been promoted to the standard library. @@ -2905,7 +2905,7 @@ :file:`PCbuild` directory for the build files. (Implemented by Christian Heimes.) -* On MacOS X, Python 2.6 can be compiled as a 4-way universal build. +* On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :program:`configure` script can take a :option:`--with-universal-archs=[32-bit|64-bit|all]` switch, controlling whether the binaries are built for 32-bit @@ -3057,7 +3057,7 @@ .. ====================================================================== -Port-Specific Changes: MacOS X +Port-Specific Changes: Mac OS X ----------------------------------- * When compiling a framework build of Python, you can now specify the @@ -3069,7 +3069,7 @@ :func:`macostools.touched` function to be removed because it depended on the :mod:`macfs` module. (:issue:`1490190`) -* Many other MacOS modules have been deprecated and will removed in +* Many other Mac OS modules have been deprecated and will removed in Python 3.0: :mod:`_builtinSuites`, :mod:`aepack`, From buildbot at python.org Sat Sep 13 19:42:28 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 17:42:28 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080913174228.642AD1E4003@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1084 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 19:43:19 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 19:43:19 +0200 (CEST) Subject: [Python-checkins] r66453 - in python/trunk/Lib/lib2to3: Grammar.txt fixes/fix_metaclass.py fixes/fix_print.py tests/data/py2_test_grammar.py tests/data/py3_test_grammar.py tests/test_fixers.py Message-ID: <20080913174319.B6E611E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 19:43:19 2008 New Revision: 66453 Log: Merged revisions 66191,66418,66438,66445 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66191 | benjamin.peterson | 2008-09-03 17:00:52 -0500 (Wed, 03 Sep 2008) | 1 line update the Grammar file after recent syntax changes ........ r66418 | benjamin.peterson | 2008-09-12 18:49:48 -0500 (Fri, 12 Sep 2008) | 1 line a trival fix to get a few more print corner cases #2899 ........ r66438 | benjamin.peterson | 2008-09-12 21:32:30 -0500 (Fri, 12 Sep 2008) | 5 lines add Jack Diederich's fixer for metaclass syntax #2366 my contribution to this was adding a few tests and fixing a few bugs I also reviewed it (Jack is a committer) ........ r66445 | benjamin.peterson | 2008-09-13 10:50:00 -0500 (Sat, 13 Sep 2008) | 1 line add a few more tests concerning int literals and weird spacing ........ Added: python/trunk/Lib/lib2to3/fixes/fix_metaclass.py - copied unchanged from r66445, /sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py Modified: python/trunk/Lib/lib2to3/ (props changed) python/trunk/Lib/lib2to3/Grammar.txt python/trunk/Lib/lib2to3/fixes/fix_print.py python/trunk/Lib/lib2to3/tests/data/py2_test_grammar.py python/trunk/Lib/lib2to3/tests/data/py3_test_grammar.py python/trunk/Lib/lib2to3/tests/test_fixers.py Modified: python/trunk/Lib/lib2to3/Grammar.txt ============================================================================== --- python/trunk/Lib/lib2to3/Grammar.txt (original) +++ python/trunk/Lib/lib2to3/Grammar.txt Sat Sep 13 19:43:19 2008 @@ -138,7 +138,9 @@ classdef: 'class' NAME ['(' [arglist] ')'] ':' suite -arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] | '**' test) +arglist: (argument ',')* (argument [','] + |'*' test (',' argument)* [',' '**' test] + |'**' test) argument: test [comp_for] | test '=' test # Really [keyword '='] test comp_iter: comp_for | comp_if Modified: python/trunk/Lib/lib2to3/fixes/fix_print.py ============================================================================== --- python/trunk/Lib/lib2to3/fixes/fix_print.py (original) +++ python/trunk/Lib/lib2to3/fixes/fix_print.py Sat Sep 13 19:43:19 2008 @@ -29,7 +29,7 @@ class FixPrint(fixer_base.ConditionalFix): PATTERN = """ - simple_stmt< bare='print' any > | print_stmt + simple_stmt< any* bare='print' any* > | print_stmt """ skip_on = '__future__.print_function' Modified: python/trunk/Lib/lib2to3/tests/data/py2_test_grammar.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/data/py2_test_grammar.py (original) +++ python/trunk/Lib/lib2to3/tests/data/py2_test_grammar.py Sat Sep 13 19:43:19 2008 @@ -1,4 +1,4 @@ -# Python 2's Lib/test/test_grammar.py (r54061) +# Python 2's Lib/test/test_grammar.py (r66189) # Python test set -- part 1, grammar. # This just tests whether the parser accepts them all. @@ -32,6 +32,8 @@ self.assertEquals(0xff, 255) self.assertEquals(0377, 255) self.assertEquals(2147483647, 017777777777) + # "0x" is not a valid literal + self.assertRaises(SyntaxError, eval, "0x") from sys import maxint if maxint == 2147483647: self.assertEquals(-2147483647-1, -020000000000) @@ -282,6 +284,18 @@ def d32v((x,)): pass d32v((1,)) + # keyword arguments after *arglist + def f(*args, **kwargs): + return args, kwargs + self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4), + {'x':2, 'y':5})) + self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)") + self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)") + + # Check ast errors in *args and *kwargs + check_syntax_error(self, "f(*g(1=2))") + check_syntax_error(self, "f(**g(1=2))") + def testLambdef(self): ### lambdef: 'lambda' [varargslist] ':' test l1 = lambda : 0 @@ -295,6 +309,7 @@ self.assertEquals(l5(1, 2), 5) self.assertEquals(l5(1, 2, 3), 6) check_syntax_error(self, "lambda x: x = 2") + check_syntax_error(self, "lambda (None,): None") ### stmt: simple_stmt | compound_stmt # Tested below @@ -572,6 +587,15 @@ while 0: pass else: pass + # Issue1920: "while 0" is optimized away, + # ensure that the "else" clause is still present. + x = 0 + while 0: + x = 1 + else: + x = 2 + self.assertEquals(x, 2) + def testFor(self): # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite] for i in 1, 2, 3: pass @@ -602,7 +626,7 @@ def testTry(self): ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite] ### | 'try' ':' suite 'finally' ':' suite - ### except_clause: 'except' [expr [',' expr]] + ### except_clause: 'except' [expr [('as' | ',') expr]] try: 1/0 except ZeroDivisionError: @@ -611,7 +635,7 @@ pass try: 1/0 except EOFError: pass - except TypeError, msg: pass + except TypeError as msg: pass except RuntimeError, msg: pass except: pass else: pass @@ -770,6 +794,16 @@ def meth1(self): pass def meth2(self, arg): pass def meth3(self, a1, a2): pass + # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE + # decorators: decorator+ + # decorated: decorators (classdef | funcdef) + def class_decorator(x): + x.decorated = True + return x + @class_decorator + class G: + pass + self.assertEqual(G.decorated, True) def testListcomps(self): # list comprehension tests Modified: python/trunk/Lib/lib2to3/tests/data/py3_test_grammar.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/data/py3_test_grammar.py (original) +++ python/trunk/Lib/lib2to3/tests/data/py3_test_grammar.py Sat Sep 13 19:43:19 2008 @@ -8,7 +8,7 @@ # regression test, the filterwarnings() call has been added to # regrtest.py. -from test.test_support import run_unittest, check_syntax_error +from test.support import run_unittest, check_syntax_error import unittest import sys # testing import * @@ -32,8 +32,10 @@ self.assertEquals(0o377, 255) self.assertEquals(2147483647, 0o17777777777) self.assertEquals(0b1001, 9) - from sys import maxint - if maxint == 2147483647: + # "0x" is not a valid literal + self.assertRaises(SyntaxError, eval, "0x") + from sys import maxsize + if maxsize == 2147483647: self.assertEquals(-2147483647-1, -0o20000000000) # XXX -2147483648 self.assert_(0o37777777777 > 0) @@ -45,7 +47,7 @@ x = eval(s) except OverflowError: self.fail("OverflowError on huge integer literal %r" % s) - elif maxint == 9223372036854775807: + elif maxsize == 9223372036854775807: self.assertEquals(-9223372036854775807-1, -0o1000000000000000000000) self.assert_(0o1777777777777777777777 > 0) self.assert_(0xffffffffffffffff > 0) @@ -58,7 +60,7 @@ except OverflowError: self.fail("OverflowError on huge integer literal %r" % s) else: - self.fail('Weird maxint value %r' % maxint) + self.fail('Weird maxsize value %r' % maxsize) def testLongIntegers(self): x = 0 @@ -263,6 +265,14 @@ d22v(*(1, 2, 3, 4)) d22v(1, 2, *(3, 4, 5)) d22v(1, *(2, 3), **{'d': 4}) + + # keyword argument type tests + try: + str('x', **{b'foo':1 }) + except TypeError: + pass + else: + self.fail('Bytes should not work as keyword argument names') # keyword only argument tests def pos0key1(*, key): return key pos0key1(key=100) @@ -274,6 +284,14 @@ pos2key2dict(1,2,k2=100,tokwarg1=100,tokwarg2=200) pos2key2dict(1,2,tokwarg1=100,tokwarg2=200, k2=100) + # keyword arguments after *arglist + def f(*args, **kwargs): + return args, kwargs + self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4), + {'x':2, 'y':5})) + self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)") + self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)") + # argument annotation tests def f(x) -> list: pass self.assertEquals(f.__annotations__, {'return': list}) @@ -308,6 +326,10 @@ def f(*, k=1): return closure def f() -> int: return closure + # Check ast errors in *args and *kwargs + check_syntax_error(self, "f(*g(1=2))") + check_syntax_error(self, "f(**g(1=2))") + def testLambdef(self): ### lambdef: 'lambda' [varargslist] ':' test l1 = lambda : 0 @@ -321,6 +343,7 @@ self.assertEquals(l5(1, 2), 5) self.assertEquals(l5(1, 2, 3), 6) check_syntax_error(self, "lambda x: x = 2") + check_syntax_error(self, "lambda (None,): None") l6 = lambda x, y, *, k=20: x+y+k self.assertEquals(l6(1,2), 1+2+20) self.assertEquals(l6(1,2,k=10), 1+2+10) @@ -438,7 +461,7 @@ def testRaise(self): # 'raise' test [',' test] - try: raise RuntimeError, 'just testing' + try: raise RuntimeError('just testing') except RuntimeError: pass try: raise KeyboardInterrupt except KeyboardInterrupt: pass @@ -498,6 +521,15 @@ while 0: pass else: pass + # Issue1920: "while 0" is optimized away, + # ensure that the "else" clause is still present. + x = 0 + while 0: + x = 1 + else: + x = 2 + self.assertEquals(x, 2) + def testFor(self): # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite] for i in 1, 2, 3: pass Modified: python/trunk/Lib/lib2to3/tests/test_fixers.py ============================================================================== --- python/trunk/Lib/lib2to3/tests/test_fixers.py (original) +++ python/trunk/Lib/lib2to3/tests/test_fixers.py Sat Sep 13 19:43:19 2008 @@ -385,6 +385,16 @@ a = """print()""" self.check(b, a) + def test_4(self): + # from bug 3000 + b = """print whatever; print""" + a = """print(whatever); print()""" + self.check(b, a) + + def test_5(self): + b = """print; print whatever;""" + a = """print(); print(whatever);""" + def test_tuple(self): b = """print (a, b, c)""" a = """print((a, b, c))""" @@ -2379,6 +2389,15 @@ a = """b = 0x12""" self.check(b, a) + def test_comments_and_spacing(self): + b = """b = 0x12L""" + a = """b = 0x12""" + self.check(b, a) + + b = """b = 0755 # spam""" + a = """b = 0o755 # spam""" + self.check(b, a) + def test_unchanged_int(self): s = """5""" self.unchanged(s) @@ -3430,6 +3449,133 @@ s = """[i for i in m]""" self.unchanged(s) +class Test_metaclass(FixerTestCase): + + fixer = 'metaclass' + + def test_unchanged(self): + self.unchanged("class X(): pass") + self.unchanged("class X(object): pass") + self.unchanged("class X(object1, object2): pass") + self.unchanged("class X(object1, object2, object3): pass") + self.unchanged("class X(metaclass=Meta): pass") + self.unchanged("class X(b, arg=23, metclass=Meta): pass") + self.unchanged("class X(b, arg=23, metaclass=Meta, other=42): pass") + + s = """ + class X: + def __metaclass__(self): pass + """ + self.unchanged(s) + + def test_comments(self): + b = """ + class X: + # hi + __metaclass__ = AppleMeta + """ + a = """ + class X(metaclass=AppleMeta): + # hi + pass + """ + self.check(b, a) + + b = """ + class X: + __metaclass__ = Meta + # Bedtime! + """ + a = """ + class X(metaclass=Meta): + pass + # Bedtime! + """ + self.check(b, a) + + def test_meta(self): + # no-parent class, odd body + b = """ + class X(): + __metaclass__ = Q + pass + """ + a = """ + class X(metaclass=Q): + pass + """ + self.check(b, a) + + # one parent class, no body + b = """class X(object): __metaclass__ = Q""" + a = """class X(object, metaclass=Q): pass""" + self.check(b, a) + + + # one parent, simple body + b = """ + class X(object): + __metaclass__ = Meta + bar = 7 + """ + a = """ + class X(object, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + b = """ + class X: + __metaclass__ = Meta; x = 4; g = 23 + """ + a = """ + class X(metaclass=Meta): + x = 4; g = 23 + """ + self.check(b, a) + + # one parent, simple body, __metaclass__ last + b = """ + class X(object): + bar = 7 + __metaclass__ = Meta + """ + a = """ + class X(object, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + # redefining __metaclass__ + b = """ + class X(): + __metaclass__ = A + __metaclass__ = B + bar = 7 + """ + a = """ + class X(metaclass=B): + bar = 7 + """ + self.check(b, a) + + # multiple inheritance, simple body + b = """ + class X(clsA, clsB): + __metaclass__ = Meta + bar = 7 + """ + a = """ + class X(clsA, clsB, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + # keywords in the class statement + b = """class m(a, arg=23): __metaclass__ = Meta""" + a = """class m(a, arg=23, metaclass=Meta): pass""" + self.check(b, a) + if __name__ == "__main__": import __main__ From buildbot at python.org Sat Sep 13 19:44:58 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 17:44:58 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080913174458.A1B041E4003@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/368 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_calendar test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 13 20:29:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 18:29:56 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080913182957.0D2241E4003@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/242 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 20:36:35 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 13 Sep 2008 20:36:35 +0200 (CEST) Subject: [Python-checkins] r66455 - sandbox/trunk/2to3/find_pattern.py Message-ID: <20080913183635.623BE1E4003@bag.python.org> Author: benjamin.peterson Date: Sat Sep 13 20:36:35 2008 New Revision: 66455 Log: set svn:executable on find_pattern Modified: sandbox/trunk/2to3/find_pattern.py (contents, props changed) Modified: sandbox/trunk/2to3/find_pattern.py ============================================================================== --- sandbox/trunk/2to3/find_pattern.py (original) +++ sandbox/trunk/2to3/find_pattern.py Sat Sep 13 20:36:35 2008 @@ -1,4 +1,4 @@ -#!/usr/bin/env python2.5 +#!/usr/bin/env python """Script that makes determining PATTERN for a new fix much easier. From buildbot at python.org Sat Sep 13 20:50:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 18:50:53 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080913185053.EB8071E4003@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/370 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 13 21:18:29 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 19:18:29 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080913191829.D0D531E4003@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/557 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Sat Sep 13 21:19:13 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 19:19:13 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080913191913.2CB831E4003@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/226 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_lib2to3 ====================================================================== FAIL: test_comments (lib2to3.tests.test_fixers.Test_metaclass) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 3482, in test_comments self.check(b, a) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 46, in check tree = self._check(before, after) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 42, in _check self.failUnlessEqual(after, str(tree)) AssertionError: '\nclass X(metaclass=AppleMeta):\n # hi\n pass\n\n\n' != '\nclass X(metaclass=AppleMeta):\n # hi\n pass\r\n\n\n' ====================================================================== FAIL: test_meta (lib2to3.tests.test_fixers.Test_metaclass) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 3512, in test_meta self.check(b, a) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 46, in check tree = self._check(before, after) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 42, in _check self.failUnlessEqual(after, str(tree)) AssertionError: 'class X(object, metaclass=Q): pass\n\n' != 'class X(object, metaclass=Q): pass\r\n\n' sincerely, -The Buildbot From python-checkins at python.org Sat Sep 13 22:30:30 2008 From: python-checkins at python.org (antoine.pitrou) Date: Sat, 13 Sep 2008 22:30:30 +0200 (CEST) Subject: [Python-checkins] r66457 - in python/trunk/Misc: NEWS find_recursionlimit.py Message-ID: <20080913203030.EFC561E4003@bag.python.org> Author: antoine.pitrou Date: Sat Sep 13 22:30:30 2008 New Revision: 66457 Log: Issue #3850: Misc/find_recursionlimit.py was broken. Reviewed by A.M. Kuchling. Modified: python/trunk/Misc/NEWS python/trunk/Misc/find_recursionlimit.py Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 13 22:30:30 2008 @@ -15,6 +15,14 @@ Library ------- +Tools/Demos +----------- + +- Issue #3850: recursion tests in Misc/find_recursion_limit.py can raise + AttributeError instead of RuntimeError, depending in which C API call + exactly the recursion limit is exceeded. Consequently, both exception types + are caught and silenced. + What's New in Python 2.6 release candidate 1? ============================================= Modified: python/trunk/Misc/find_recursionlimit.py ============================================================================== --- python/trunk/Misc/find_recursionlimit.py (original) +++ python/trunk/Misc/find_recursionlimit.py Sat Sep 13 22:30:30 2008 @@ -1,22 +1,30 @@ #! /usr/bin/env python -"""Find the maximum recursion limit that prevents core dumps +"""Find the maximum recursion limit that prevents interpreter termination. This script finds the maximum safe recursion limit on a particular platform. If you need to change the recursion limit on your system, this script will tell you a safe upper bound. To use the new limit, -call sys.setrecursionlimit. +call sys.setrecursionlimit(). This module implements several ways to create infinite recursion in Python. Different implementations end up pushing different numbers of C stack frames, depending on how many calls through Python's abstract C API occur. -After each round of tests, it prints a message -Limit of NNNN is fine. +After each round of tests, it prints a message: +"Limit of NNNN is fine". -It ends when Python causes a segmentation fault because the limit is -too high. On platforms like Mac and Windows, it should exit with a -MemoryError. +The highest printed value of "NNNN" is therefore the highest potentially +safe limit for your system (which depends on the OS, architecture, but also +the compilation flags). Please note that it is practically impossible to +test all possible recursion paths in the interpreter, so the results of +this test should not be trusted blindly -- although they give a good hint +of which values are reasonable. + +NOTE: When the C stack space allocated by your system is exceeded due +to excessive recursion, exact behaviour depends on the platform, although +the interpreter will always fail in a likely brutal way: either a +segmentation fault, a MemoryError, or just a silent abort. NB: A program that does not use __methods__ can set a higher limit. """ @@ -88,7 +96,10 @@ test_func = globals()[test_func_name] try: test_func() - except RuntimeError: + # AttributeError can be raised because of the way e.g. PyDict_GetItem() + # silences all exceptions and returns NULL, which is usually interpreted + # as "missing attribute". + except (RuntimeError, AttributeError): pass else: print "Yikes!" From nnorwitz at gmail.com Sat Sep 13 22:42:05 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Sep 2008 16:42:05 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080913204205.GA12562@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650675 refs] From nnorwitz at gmail.com Sat Sep 13 23:07:17 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Sep 2008 17:07:17 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080913210717.GA13908@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649938 refs] From buildbot at python.org Sat Sep 13 23:58:32 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 13 Sep 2008 21:58:32 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20080913215832.5AD1C1E4003@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/1178 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_lib2to3 ====================================================================== FAIL: test_comments (lib2to3.tests.test_fixers.Test_metaclass) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\lib2to3\tests\test_fixers.py", line 3482, in test_comments self.check(b, a) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\lib2to3\tests\test_fixers.py", line 46, in check tree = self._check(before, after) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\lib2to3\tests\test_fixers.py", line 42, in _check self.failUnlessEqual(after, str(tree)) AssertionError: '\nclass X(metaclass=AppleMeta):\n # hi\n pass\n\n\n' != '\nclass X(metaclass=AppleMeta):\n # hi\n pass\r\n\n\n' ====================================================================== FAIL: test_meta (lib2to3.tests.test_fixers.Test_metaclass) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\lib2to3\tests\test_fixers.py", line 3512, in test_meta self.check(b, a) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\lib2to3\tests\test_fixers.py", line 46, in check tree = self._check(before, after) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\lib2to3\tests\test_fixers.py", line 42, in _check self.failUnlessEqual(after, str(tree)) AssertionError: 'class X(object, metaclass=Q): pass\n\n' != 'class X(object, metaclass=Q): pass\r\n\n' sincerely, -The Buildbot From python-checkins at python.org Sun Sep 14 00:54:43 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 14 Sep 2008 00:54:43 +0200 (CEST) Subject: [Python-checkins] r66458 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080913225443.DF3C21E4003@bag.python.org> Author: benjamin.peterson Date: Sun Sep 14 00:54:43 2008 New Revision: 66458 Log: fix a name issue; note all doc files should be encoded in utf8 Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Sun Sep 14 00:54:43 2008 @@ -1806,12 +1806,10 @@ were applied. (Maintained by Josiah Carlson; see :issue:`1736190` for one patch.) -.. |uacute| unicode:: 0xA9 - -* The :mod:`bsddb` module also has a new maintainer, Jes|uacute|s Cea, - and the package is now available as a standalone package. - The web page for the package is - `www.jcea.es/programacion/pybsddb.htm `__. +* The :mod:`bsddb` module also has a new maintainer, Jes?s Cea, and the package + is now available as a standalone package. The web page for the package is + `www.jcea.es/programacion/pybsddb.htm + `__. * The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol available, instead of restricting itself to protocol 1. From nnorwitz at gmail.com Sun Sep 14 03:54:06 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sat, 13 Sep 2008 21:54:06 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080914015406.GA26700@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-24018 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665551 refs] From nnorwitz at gmail.com Sun Sep 14 10:36:15 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Sep 2008 04:36:15 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080914083615.GA7037@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650680 refs] From nnorwitz at gmail.com Sun Sep 14 11:01:16 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Sep 2008 05:01:16 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080914090116.GA8382@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649936 refs] From nnorwitz at gmail.com Sun Sep 14 15:43:26 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Sep 2008 09:43:26 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080914134326.GA21062@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-18408 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665551 refs] From python-checkins at python.org Sun Sep 14 18:02:22 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 14 Sep 2008 18:02:22 +0200 (CEST) Subject: [Python-checkins] r66459 - python/trunk/Doc/library/functions.rst Message-ID: <20080914160222.C93BD1E400C@bag.python.org> Author: benjamin.peterson Date: Sun Sep 14 18:02:22 2008 New Revision: 66459 Log: clarify that radix for int is not 'guessed' Modified: python/trunk/Doc/library/functions.rst Modified: python/trunk/Doc/library/functions.rst ============================================================================== --- python/trunk/Doc/library/functions.rst (original) +++ python/trunk/Doc/library/functions.rst Sun Sep 14 18:02:22 2008 @@ -571,14 +571,14 @@ it must contain a possibly signed decimal number representable as a Python integer, possibly embedded in whitespace. The *radix* parameter gives the base for the conversion (which is 10 by default) and may be any integer in - the range [2, 36], or zero. If *radix* is zero, the proper radix is guessed - based on the contents of string; the interpretation is the same as for - integer literals. If *radix* is specified and *x* is not a string, - :exc:`TypeError` is raised. Otherwise, the argument may be a plain or long - integer or a floating point number. Conversion of floating point numbers to - integers truncates (towards zero). If the argument is outside the integer - range a long object will be returned instead. If no arguments are given, - returns ``0``. + the range [2, 36], or zero. If *radix* is zero, the proper radix is + determined based on the contents of string; the interpretation is the same as + for integer literals. (See :ref:`numbers`.) If *radix* is specified and *x* + is not a string, :exc:`TypeError` is raised. Otherwise, the argument may be a + plain or long integer or a floating point number. Conversion of floating + point numbers to integers truncates (towards zero). If the argument is + outside the integer range a long object will be returned instead. If no + arguments are given, returns ``0``. The integer type is described in :ref:`typesnumeric`. From python-checkins at python.org Sun Sep 14 22:22:39 2008 From: python-checkins at python.org (martin.v.loewis) Date: Sun, 14 Sep 2008 22:22:39 +0200 (CEST) Subject: [Python-checkins] r66460 - in python/trunk: Misc/NEWS Tools/msi/crtlicense.txt Tools/msi/msi.py Message-ID: <20080914202239.DF9941E4005@bag.python.org> Author: martin.v.loewis Date: Sun Sep 14 22:22:39 2008 New Revision: 66460 Log: Issue #3617: Include a licensing statement regarding the Microsoft C runtime in the Windows installer. Added: python/trunk/Tools/msi/crtlicense.txt Modified: python/trunk/Misc/NEWS python/trunk/Tools/msi/msi.py Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sun Sep 14 22:22:39 2008 @@ -23,6 +23,12 @@ exactly the recursion limit is exceeded. Consequently, both exception types are caught and silenced. +Build +----- + +- Issue #3617: Include a licensing statement regarding the Microsoft + C runtime in the Windows installer. + What's New in Python 2.6 release candidate 1? ============================================= Added: python/trunk/Tools/msi/crtlicense.txt ============================================================================== --- (empty file) +++ python/trunk/Tools/msi/crtlicense.txt Sun Sep 14 22:22:39 2008 @@ -0,0 +1,44 @@ + + +Additional Conditions for this Windows binary build +--------------------------------------------------- + +This program is linked with and uses Microsoft Distributable Code, +copyrighted by Microsoft Corporation. The Microsoft Distributable Code +includes the following files: + +msvcr90.dll +msvcp90.dll +msvcm90.dll + +If you further distribute programs that include the Microsoft +Distributable Code, you must comply with the restrictions on +distribution specified by Microsoft. In particular, you must require +distributors and external end users to agree to terms that protect the +Microsoft Distributable Code at least as much as Microsoft's own +requirements for the Distributable Code. See Microsoft's documentation +(included in its developer tools and on its website at microsoft.com) +for specific details. + +Redistribution of the Windows binary build of the Python interpreter +complies with this agreement, provided that you do not: + +- alter any copyright, trademark or patent notice in Microsoft's +Distributable Code; + +- use Microsoft?s trademarks in your programs? names or in a way that +suggests your programs come from or are endorsed by Microsoft; + +- distribute Microsoft's Distributable Code to run on a platform other +than Microsoft operating systems, run-time technologies or application +platforms; + +- include Microsoft Distributable Code in malicious, deceptive or +unlawful programs; or + +These restrictions apply only to the Microsoft Distributable Code as +defined above, not to Python itself or any programs running on the +Python interpreter. The redistribution of the Python interpreter and +libraries is governed by the Python Software License included with this +file, or by other licenses as marked. + Modified: python/trunk/Tools/msi/msi.py ============================================================================== --- python/trunk/Tools/msi/msi.py (original) +++ python/trunk/Tools/msi/msi.py Sun Sep 14 22:22:39 2008 @@ -862,6 +862,7 @@ import shutil, glob out = open("LICENSE.txt", "w") shutil.copyfileobj(open(os.path.join(srcdir, "LICENSE")), out) + shutil.copyfileobj(open("crtlicense.txt"), out) for name, pat, file in (("bzip2","bzip2-*", "LICENSE"), ("Berkeley DB", "db-*", "LICENSE"), ("openssl", "openssl-*", "LICENSE"), From python-checkins at python.org Sun Sep 14 22:25:40 2008 From: python-checkins at python.org (martin.v.loewis) Date: Sun, 14 Sep 2008 22:25:40 +0200 (CEST) Subject: [Python-checkins] r66461 - python/trunk/Tools/msi/crtlicense.txt Message-ID: <20080914202540.BD74B1E4005@bag.python.org> Author: martin.v.loewis Date: Sun Sep 14 22:25:40 2008 New Revision: 66461 Log: Set eol-style to native. Modified: python/trunk/Tools/msi/crtlicense.txt (contents, props changed) Modified: python/trunk/Tools/msi/crtlicense.txt ============================================================================== --- python/trunk/Tools/msi/crtlicense.txt (original) +++ python/trunk/Tools/msi/crtlicense.txt Sun Sep 14 22:25:40 2008 @@ -1,44 +1,44 @@ - - -Additional Conditions for this Windows binary build ---------------------------------------------------- - -This program is linked with and uses Microsoft Distributable Code, -copyrighted by Microsoft Corporation. The Microsoft Distributable Code -includes the following files: - -msvcr90.dll -msvcp90.dll -msvcm90.dll - -If you further distribute programs that include the Microsoft -Distributable Code, you must comply with the restrictions on -distribution specified by Microsoft. In particular, you must require -distributors and external end users to agree to terms that protect the -Microsoft Distributable Code at least as much as Microsoft's own -requirements for the Distributable Code. See Microsoft's documentation -(included in its developer tools and on its website at microsoft.com) -for specific details. - -Redistribution of the Windows binary build of the Python interpreter -complies with this agreement, provided that you do not: - -- alter any copyright, trademark or patent notice in Microsoft's -Distributable Code; - -- use Microsoft?s trademarks in your programs? names or in a way that -suggests your programs come from or are endorsed by Microsoft; - -- distribute Microsoft's Distributable Code to run on a platform other -than Microsoft operating systems, run-time technologies or application -platforms; - -- include Microsoft Distributable Code in malicious, deceptive or -unlawful programs; or - -These restrictions apply only to the Microsoft Distributable Code as -defined above, not to Python itself or any programs running on the -Python interpreter. The redistribution of the Python interpreter and -libraries is governed by the Python Software License included with this -file, or by other licenses as marked. - + + +Additional Conditions for this Windows binary build +--------------------------------------------------- + +This program is linked with and uses Microsoft Distributable Code, +copyrighted by Microsoft Corporation. The Microsoft Distributable Code +includes the following files: + +msvcr90.dll +msvcp90.dll +msvcm90.dll + +If you further distribute programs that include the Microsoft +Distributable Code, you must comply with the restrictions on +distribution specified by Microsoft. In particular, you must require +distributors and external end users to agree to terms that protect the +Microsoft Distributable Code at least as much as Microsoft's own +requirements for the Distributable Code. See Microsoft's documentation +(included in its developer tools and on its website at microsoft.com) +for specific details. + +Redistribution of the Windows binary build of the Python interpreter +complies with this agreement, provided that you do not: + +- alter any copyright, trademark or patent notice in Microsoft's +Distributable Code; + +- use Microsoft?s trademarks in your programs? names or in a way that +suggests your programs come from or are endorsed by Microsoft; + +- distribute Microsoft's Distributable Code to run on a platform other +than Microsoft operating systems, run-time technologies or application +platforms; + +- include Microsoft Distributable Code in malicious, deceptive or +unlawful programs; or + +These restrictions apply only to the Microsoft Distributable Code as +defined above, not to Python itself or any programs running on the +Python interpreter. The redistribution of the Python interpreter and +libraries is governed by the Python Software License included with this +file, or by other licenses as marked. + From nnorwitz at gmail.com Sun Sep 14 22:36:30 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Sep 2008 16:36:30 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080914203630.GA6215@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650677 refs] From nnorwitz at gmail.com Sun Sep 14 23:03:57 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Sep 2008 17:03:57 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080914210357.GA13407@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649938 refs] From buildbot at python.org Sun Sep 14 23:38:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 14 Sep 2008 21:38:44 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080914213844.BECE11E4005@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/559 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From amauryfa at gmail.com Mon Sep 15 00:14:03 2008 From: amauryfa at gmail.com (Amaury Forgeot d'Arc) Date: Mon, 15 Sep 2008 00:14:03 +0200 Subject: [Python-checkins] r66460 - in python/trunk: Misc/NEWS Tools/msi/crtlicense.txt Tools/msi/msi.py Message-ID: Hello, in crtlicense.txt, the last "or" seems incorrectly placed. Was some paragraph removed? "or" should be moved at the end of the previous one. > ... > +- distribute Microsoft's Distributable Code to run on a platform other > +than Microsoft operating systems, run-time technologies or application > +platforms; > + > +- include Microsoft Distributable Code in malicious, deceptive or > +unlawful programs; or > + > +These restrictions apply only to the Microsoft Distributable Code as > +defined above, not to Python itself or any programs running on the > ... -- Amaury Forgeot d'Arc From python-checkins at python.org Mon Sep 15 03:30:21 2008 From: python-checkins at python.org (martin.v.loewis) Date: Mon, 15 Sep 2008 03:30:21 +0200 (CEST) Subject: [Python-checkins] r66463 - python/trunk/Tools/msi/crtlicense.txt Message-ID: <20080915013021.CDE591E4006@bag.python.org> Author: martin.v.loewis Date: Mon Sep 15 03:30:21 2008 New Revision: 66463 Log: Fix grammar. Modified: python/trunk/Tools/msi/crtlicense.txt Modified: python/trunk/Tools/msi/crtlicense.txt ============================================================================== --- python/trunk/Tools/msi/crtlicense.txt (original) +++ python/trunk/Tools/msi/crtlicense.txt Mon Sep 15 03:30:21 2008 @@ -31,10 +31,10 @@ - distribute Microsoft's Distributable Code to run on a platform other than Microsoft operating systems, run-time technologies or application -platforms; +platforms; or - include Microsoft Distributable Code in malicious, deceptive or -unlawful programs; or +unlawful programs. These restrictions apply only to the Microsoft Distributable Code as defined above, not to Python itself or any programs running on the From martin at v.loewis.de Mon Sep 15 03:32:17 2008 From: martin at v.loewis.de (=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=) Date: Mon, 15 Sep 2008 03:32:17 +0200 Subject: [Python-checkins] r66460 - in python/trunk: Misc/NEWS Tools/msi/crtlicense.txt Tools/msi/msi.py In-Reply-To: References: Message-ID: <48CDBB21.20302@v.loewis.de> > in crtlicense.txt, the last "or" seems incorrectly placed. > Was some paragraph removed? > "or" should be moved at the end of the previous one. Thanks for pointing that out - this is now fixed. Regards, Martin From python-checkins at python.org Mon Sep 15 04:03:06 2008 From: python-checkins at python.org (skip.montanaro) Date: Mon, 15 Sep 2008 04:03:06 +0200 (CEST) Subject: [Python-checkins] r66465 - python/trunk/Doc/glossary.rst Message-ID: <20080915020306.5BF8B1E4006@bag.python.org> Author: skip.montanaro Date: Mon Sep 15 04:03:05 2008 New Revision: 66465 Log: Review usage. Fix a mistake in the new-style class definition. Add a couple new definitions (CPython and virtual machine). Modified: python/trunk/Doc/glossary.rst Modified: python/trunk/Doc/glossary.rst ============================================================================== --- python/trunk/Doc/glossary.rst (original) +++ python/trunk/Doc/glossary.rst Mon Sep 15 04:03:05 2008 @@ -9,16 +9,17 @@ .. glossary:: ``>>>`` - The typical Python prompt of the interactive shell. Often seen for code - examples that can be tried right away in the interpreter. + The default Python prompt of the interactive shell. Often seen for code + examples which can be executed interactively in the interpreter. ``...`` - The typical Python prompt of the interactive shell when entering code for - an indented code block. + The default Python prompt of the interactive shell when entering code for + an indented code block or within a pair of matching left and right + delimiters (parentheses, square brackets or curly braces). 2to3 A tool that tries to convert Python 2.x code to Python 3.x code by - handling most of the incompatibilites that can be detected by parsing the + handling most of the incompatibilites which can be detected by parsing the source and traversing the parse tree. 2to3 is available in the standard library as :mod:`lib2to3`; a standalone @@ -34,12 +35,13 @@ ABC with the :mod:`abc` module. argument - A value passed to a function or method, assigned to a name local to - the body. A function or method may have both positional arguments and - keyword arguments in its definition. Positional and keyword arguments - may be variable-length: ``*`` accepts or passes (if in the function - definition or call) several positional arguments in a list, while ``**`` - does the same for keyword arguments in a dictionary. + A value passed to a function or method, assigned to a named local + variable in the function body. A function or method may have both + positional arguments and keyword arguments in its definition. + Positional and keyword arguments may be variable-length: ``*`` accepts + or passes (if in the function definition or call) several positional + arguments in a list, while ``**`` does the same for keyword arguments + in a dictionary. Any expression may be used within the argument list, and the evaluated value is passed to the local variable. @@ -53,12 +55,12 @@ of a Python program in the interpreter. The bytecode is also cached in ``.pyc`` and ``.pyo`` files so that executing the same file is faster the second time (recompilation from source to bytecode can be avoided). This - "intermediate language" is said to run on a "virtual machine" that calls - the subroutines corresponding to each bytecode. + "intermediate language" is said to run on a :term:`virtual machine` + that executes the machine code corresponding to each bytecode. classic class Any class which does not inherit from :class:`object`. See - :term:`new-style class`. + :term:`new-style class`. Classic classes will be removed in Python 3.0. coercion The implicit conversion of an instance of one type to another during an @@ -86,10 +88,15 @@ it's almost certain you can safely ignore them. context manager - An objects that controls the environment seen in a :keyword:`with` + An object which controls the environment seen in a :keyword:`with` statement by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`. + CPython + The canonical implementation of the Python programming language. The + term "CPython" is used in contexts when necessary to distinguish this + implementation from others such as Jython or IronPython. + decorator A function returning another function, usually applied as a function transformation using the ``@wrapper`` syntax. Common examples for @@ -107,7 +114,7 @@ ... descriptor - Any *new-style* object that defines the methods :meth:`__get__`, + Any *new-style* object which defines the methods :meth:`__get__`, :meth:`__set__`, or :meth:`__delete__`. When a class attribute is a descriptor, its special binding behavior is triggered upon attribute lookup. Normally, using *a.b* to get, set or delete an attribute looks up @@ -121,20 +128,20 @@ dictionary An associative array, where arbitrary keys are mapped to values. The use - of :class:`dict` much resembles that for :class:`list`, but the keys can - be any object with a :meth:`__hash__` function, not just integers starting - from zero. Called a hash in Perl. + of :class:`dict` closely resembles that for :class:`list`, but the keys can + be any object with a :meth:`__hash__` function, not just integers. + Called a hash in Perl. docstring - A docstring ("documentation string") is a string literal that appears as - the first thing in a class or function suite. While ignored when the - suite is executed, it is recognized by the compiler and put into the - :attr:`__doc__` attribute of the class or function. Since it is available - via introspection, it is the canonical place for documentation of the + A string literal which appears as the first expression in a class, + function or module. While ignored when the suite is executed, it is + recognized by the compiler and put into the :attr:`__doc__` attribute + of the enclosing class, function or module. Since it is available via + introspection, it is the canonical place for documentation of the object. duck-typing - Pythonic programming style that determines an object's type by inspection + A pythonic programming style which determines an object's type by inspection of its method or attribute signature rather than by explicit relationship to some type object ("If it looks like a duck and quacks like a duck, it must be a duck.") By emphasizing interfaces rather than specific types, @@ -149,20 +156,20 @@ style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and fast style is characterized by the presence of many :keyword:`try` and :keyword:`except` - statements. The technique contrasts with the :term:`LBYL` style that is - common in many other languages such as C. + statements. The technique contrasts with the :term:`LBYL` style + common to many other languages such as C. expression A piece of syntax which can be evaluated to some value. In other words, an expression is an accumulation of expression elements like literals, names, - attribute access, operators or function calls that all return a value. - In contrast to other languages, not all language constructs are expressions, - but there are also :term:`statement`\s that cannot be used as expressions, - such as :keyword:`print` or :keyword:`if`. Assignments are also not - expressions. + attribute access, operators or function calls which all return a value. + In contrast to many other languages, not all language constructs are expressions. + There are also :term:`statement`\s which cannot be used as expressions, + such as :keyword:`print` or :keyword:`if`. Assignments are also statements, + not expressions. extension module - A module written in C, using Python's C API to interact with the core and + A module written in C or C++, using Python's C API to interact with the core and with user code. function @@ -193,10 +200,10 @@ collector that is able to detect and break reference cycles. generator - A function that returns an iterator. It looks like a normal function + A function which returns an iterator. It looks like a normal function except that values are returned to the caller using a :keyword:`yield` statement instead of a :keyword:`return` statement. Generator functions - often contain one or more :keyword:`for` or :keyword:`while` loops that + often contain one or more :keyword:`for` or :keyword:`while` loops which :keyword:`yield` elements back to the caller. The function execution is stopped at the :keyword:`yield` keyword (returning the result) and is resumed there when the next element is requested by calling the @@ -217,39 +224,41 @@ See :term:`global interpreter lock`. global interpreter lock - The lock used by Python threads to assure that only one thread can be run - at a time. This simplifies Python by assuring that no two processes can - access the same memory at the same time. Locking the entire interpreter - makes it easier for the interpreter to be multi-threaded, at the expense - of some parallelism on multi-processor machines. Efforts have been made - in the past to create a "free-threaded" interpreter (one which locks - shared data at a much finer granularity), but performance suffered in the - common single-processor case. + The lock used by Python threads to assure that only one thread + executes in the :term:`CPython` :term:`virtual machine` at a time. + This simplifies the CPython implementation by assuring that no two + processes can access the same memory at the same time. Locking the + entire interpreter makes it easier for the interpreter to be + multi-threaded, at the expense of much of the parallelism afforded by + multi-processor machines. Efforts have been made in the past to + create a "free-threaded" interpreter (one which locks shared data at a + much finer granularity), but so far none have been successful because + performance suffered in the common single-processor case. hashable - An object is *hashable* if it has a hash value that never changes during + An object is *hashable* if it has a hash value which never changes during its lifetime (it needs a :meth:`__hash__` method), and can be compared to other objects (it needs an :meth:`__eq__` or :meth:`__cmp__` method). - Hashable objects that compare equal must have the same hash value. + Hashable objects which compare equal must have the same hash value. Hashability makes an object usable as a dictionary key and a set member, because these data structures use the hash value internally. - All of Python's immutable built-in objects are hashable, while all mutable - containers (such as lists or dictionaries) are not. Objects that are + All of Python's immutable built-in objects are hashable, while no mutable + containers (such as lists or dictionaries) are. Objects which are instances of user-defined classes are hashable by default; they all compare unequal, and their hash value is their :func:`id`. IDLE An Integrated Development Environment for Python. IDLE is a basic editor - and interpreter environment that ships with the standard distribution of + and interpreter environment which ships with the standard distribution of Python. Good for beginners, it also serves as clear example code for those wanting to implement a moderately sophisticated, multi-platform GUI application. immutable - An object with fixed value. Immutable objects are numbers, strings or - tuples (and more). Such an object cannot be altered. A new object has to + An object with a fixed value. Immutable objects include numbers, strings and + tuples. Such an object cannot be altered. A new object has to be created if a different value has to be stored. They play an important role in places where a constant hash value is needed, for example as a key in a dictionary. @@ -267,18 +276,21 @@ instead of the ``/`` operator. See also :term:`__future__`. interactive - Python has an interactive interpreter which means that you can try out - things and immediately see their results. Just launch ``python`` with no - arguments (possibly by selecting it from your computer's main menu). It is - a very powerful way to test out new ideas or inspect modules and packages - (remember ``help(x)``). + Python has an interactive interpreter which means you can enter + statements and expressions at the interpreter prompt, immediately + execute them and see their results. Just launch ``python`` with no + arguments (possibly by selecting it from your computer's main + menu). It is a very powerful way to test out new ideas or inspect + modules and packages (remember ``help(x)``). interpreted - Python is an interpreted language, as opposed to a compiled one. This - means that the source files can be run directly without first creating an - executable which is then run. Interpreted languages typically have a - shorter development/debug cycle than compiled ones, though their programs - generally also run more slowly. See also :term:`interactive`. + Python is an interpreted language, as opposed to a compiled one, + though the distinction can be blurry because of the presence of the + bytecode compiler. This means that source files can be run directly + without explicitly creating an executable which is then run. + Interpreted languages typically have a shorter development/debug cycle + than compiled ones, though their programs generally also run more + slowly. See also :term:`interactive`. iterable A container object capable of returning its members one at a @@ -299,13 +311,13 @@ iterator An object representing a stream of data. Repeated calls to the iterator's :meth:`next` method return successive items in the stream. When no more - data is available a :exc:`StopIteration` exception is raised instead. At + data are available a :exc:`StopIteration` exception is raised instead. At this point, the iterator object is exhausted and any further calls to its :meth:`next` method just raise :exc:`StopIteration` again. Iterators are required to have an :meth:`__iter__` method that returns the iterator object itself so every iterator is also iterable and may be used in most places where other iterables are accepted. One notable exception is code - that attempts multiple iteration passes. A container object (such as a + which attempts multiple iteration passes. A container object (such as a :class:`list`) produces a fresh new iterator each time you pass it to the :func:`iter` function or use it in a :keyword:`for` loop. Attempting this with an iterator will just return the same exhausted iterator object used @@ -331,15 +343,15 @@ :keyword:`if` statements. list comprehension - A compact way to process all or a subset of elements in a sequence and + A compact way to process all or part of the elements in a sequence and return a list with the results. ``result = ["0x%02x" % x for x in - range(256) if x % 2 == 0]`` generates a list of strings containing hex - numbers (0x..) that are even and in the range from 0 to 255. The - :keyword:`if` clause is optional. If omitted, all elements in - ``range(256)`` are processed. + range(256) if x % 2 == 0]`` generates a list of strings containing + even hex numbers (0x..) in the range from 0 to 255. The :keyword:`if` + clause is optional. If omitted, all elements in ``range(256)`` are + processed. mapping - A container object (such as :class:`dict`) that supports arbitrary key + A container object (such as :class:`dict`) which supports arbitrary key lookups using the special method :meth:`__getitem__`. metaclass @@ -356,7 +368,7 @@ More information can be found in :ref:`metaclasses`. method - A function that is defined inside a class body. If called as an attribute + A function which is defined inside a class body. If called as an attribute of an instance of that class, the method will get the instance object as its first :term:`argument` (which is usually called ``self``). See :term:`function` and :term:`nested scope`. @@ -366,7 +378,7 @@ also :term:`immutable`. named tuple - Any tuple subclass whose indexable fields are also accessible with + Any tuple subclass whose indexable elements are also accessible using named attributes (for example, :func:`time.localtime` returns a tuple-like object where the *year* is accessible either with an index such as ``t[0]`` or with a named attribute like ``t.tm_year``). @@ -388,7 +400,7 @@ it clear which module implements a function. For instance, writing :func:`random.seed` or :func:`itertools.izip` makes it clear that those functions are implemented by the :mod:`random` and :mod:`itertools` - modules respectively. + modules, respectively. nested scope The ability to refer to a variable in an enclosing definition. For @@ -399,11 +411,10 @@ scope. Likewise, global variables read and write to the global namespace. new-style class - Any class that inherits from :class:`object`. This includes all built-in + Any class which inherits from :class:`object`. This includes all built-in types like :class:`list` and :class:`dict`. Only new-style classes can use Python's newer, versatile features like :attr:`__slots__`, - descriptors, properties, :meth:`__getattribute__`, class methods, and - static methods. + descriptors, properties, and :meth:`__getattribute__`. More information can be found in :ref:`newstyle`. @@ -420,11 +431,12 @@ is also abbreviated "Py3k". Pythonic - An idea or piece of code which closely follows the most common idioms of - the Python language, rather than implementing code using concepts common - in other languages. For example, a common idiom in Python is the :keyword:`for` - loop structure; other languages don't have this easy keyword, so people - use a numerical counter instead:: + An idea or piece of code which closely follows the most common idioms + of the Python language, rather than implementing code using concepts + common to other languages. For example, a common idiom in Python is + to loop over all elements of an iterable using a :keyword:`for` + statement. Many other languages don't have this type of construct, so + people unfamiliar with Python sometimes use a numerical counter instead:: for i in range(len(food)): print food[i] @@ -435,11 +447,13 @@ print piece reference count - The number of places where a certain object is referenced to. When the - reference count drops to zero, an object is deallocated. While reference - counting is invisible on the Python code level, it is used on the - implementation level to keep track of allocated memory. - + The number of references to an object. When the reference count of an + object drops to zero, it is deallocated. Reference counting is + generally not visible to Python code, but it is a key element of the + :term:`CPython` implementation. The :mod:`sys` module defines a + :func:`getrefcount` function that programmers can call to return the + reference count for a particular object. + __slots__ A declaration inside a :term:`new-style class` that saves memory by pre-declaring space for instance attributes and eliminating instance @@ -449,7 +463,8 @@ sequence An :term:`iterable` which supports efficient element access using integer - indices via the :meth:`__getitem__` and :meth:`__len__` special methods. + indices via the :meth:`__getitem__` special method and defines a + :meth:`len` method that returns the length of the sequence. Some built-in sequence types are :class:`list`, :class:`str`, :class:`tuple`, and :class:`unicode`. Note that :class:`dict` also supports :meth:`__getitem__` and :meth:`__len__`, but is considered a @@ -472,6 +487,10 @@ The type of a Python object determines what kind of object it is; every object has a type. An object's type is accessible as its :attr:`__class__` attribute or can be retrieved with ``type(obj)``. + + virtual machine + A computer defined entirely in software. Python's virtual machine + executes the :term:`bytecode` emitted by the bytecode compiler. Zen of Python Listing of Python design principles and philosophies that are helpful in From nnorwitz at gmail.com Mon Sep 15 04:15:31 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 14 Sep 2008 22:15:31 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080915021531.GA22109@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-6869 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665544 refs] From python-checkins at python.org Mon Sep 15 04:19:54 2008 From: python-checkins at python.org (skip.montanaro) Date: Mon, 15 Sep 2008 04:19:54 +0200 (CEST) Subject: [Python-checkins] r66466 - python/trunk/Doc/glossary.rst Message-ID: <20080915021954.35FB11E4006@bag.python.org> Author: skip.montanaro Date: Mon Sep 15 04:19:53 2008 New Revision: 66466 Log: Pick up a few more definitions from the glossary on the wiki. Modified: python/trunk/Doc/glossary.rst Modified: python/trunk/Doc/glossary.rst ============================================================================== --- python/trunk/Doc/glossary.rst (original) +++ python/trunk/Doc/glossary.rst Mon Sep 15 04:19:53 2008 @@ -45,6 +45,11 @@ Any expression may be used within the argument list, and the evaluated value is passed to the local variable. + + attribute + A value associated with an object which is referenced by name using + dotted expressions. For example, if an object *o* has an attribute + *a* it would be referenced as *o.a*. BDFL Benevolent Dictator For Life, a.k.a. `Guido van Rossum @@ -57,6 +62,11 @@ second time (recompilation from source to bytecode can be avoided). This "intermediate language" is said to run on a :term:`virtual machine` that executes the machine code corresponding to each bytecode. + + class + A template for creating user-defined objects. Class definitions + normally contain method definitions which operate on instances of the + class. classic class Any class which does not inherit from :class:`object`. See @@ -341,6 +351,11 @@ pre-conditions before making calls or lookups. This style contrasts with the :term:`EAFP` approach and is characterized by the presence of many :keyword:`if` statements. + + list + A built-in Python :term:`sequence`. Despite its name it is more akin + to an array in other languages than to a linked list since access to + elements are O(1). list comprehension A compact way to process all or part of the elements in a sequence and @@ -417,6 +432,11 @@ descriptors, properties, and :meth:`__getattribute__`. More information can be found in :ref:`newstyle`. + + object + Any data with state (attributes or value) and defined behavior + (methods). Also the ultimate base class of any :term:`new-style + class`. positional argument The arguments assigned to local names inside a function or method, @@ -483,6 +503,15 @@ an :term:`expression` or a one of several constructs with a keyword, such as :keyword:`if`, :keyword:`while` or :keyword:`print`. + triple-quoted string + A string which is bound by three instances of either a quotation mark + (") or an apostrophe ('). While they don't provide any functionality + not available with single-quoted strings, they are useful for a number + of reasons. They allow you to include unescaped single and double + quotes within a string and they can span multiple lines without the + use of the continuation character, making them especially useful when + writing docstrings. + type The type of a Python object determines what kind of object it is; every object has a type. An object's type is accessible as its From buildbot at python.org Mon Sep 15 04:32:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Sep 2008 02:32:21 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080915023222.17E5D1E4006@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3940 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 15 04:53:23 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 15 Sep 2008 04:53:23 +0200 (CEST) Subject: [Python-checkins] r66467 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080915025323.57EA01E4006@bag.python.org> Author: benjamin.peterson Date: Mon Sep 15 04:53:23 2008 New Revision: 66467 Log: mention that object.__init__ no longer takes arbitrary args and kwargs Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Mon Sep 15 04:53:23 2008 @@ -3156,6 +3156,10 @@ before adding elements from the iterable. This change makes the behavior match ``list.__init__()``. +* :meth:`object.__init__` previously accepted arbitrary arguments and keyword + arguments. In Python 2.6, this is no longer allowed and will result in a + :exc:`TypeError`. See issue :issue:`1683368`. + * The :class:`Decimal` constructor now accepts leading and trailing whitespace when passed a string. Previously it would raise an :exc:`InvalidOperation` exception. On the other hand, the From nnorwitz at gmail.com Mon Sep 15 10:36:26 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 15 Sep 2008 04:36:26 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080915083626.GA18247@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650677 refs] From nnorwitz at gmail.com Mon Sep 15 11:01:07 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 15 Sep 2008 05:01:07 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080915090107.GA19596@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649937 refs] From ncoghlan at gmail.com Mon Sep 15 13:31:01 2008 From: ncoghlan at gmail.com (Nick Coghlan) Date: Mon, 15 Sep 2008 21:31:01 +1000 Subject: [Python-checkins] r66467 - python/trunk/Doc/whatsnew/2.6.rst In-Reply-To: <20080915025323.57EA01E4006@bag.python.org> References: <20080915025323.57EA01E4006@bag.python.org> Message-ID: <48CE4775.4030105@gmail.com> benjamin.peterson wrote: > Author: benjamin.peterson > Date: Mon Sep 15 04:53:23 2008 > New Revision: 66467 > > Log: > mention that object.__init__ no longer takes arbitrary args and kwargs ... > +* :meth:`object.__init__` previously accepted arbitrary arguments and keyword > + arguments. In Python 2.6, this is no longer allowed and will result in a > + :exc:`TypeError`. See issue :issue:`1683368`. That's a little too strong at this stage - if both __new__ and __init__ are overridden, then the stricter checking only emits Deprecation Warnings in 2.6. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org From python-checkins at python.org Mon Sep 15 15:08:33 2008 From: python-checkins at python.org (andrew.kuchling) Date: Mon, 15 Sep 2008 15:08:33 +0200 (CEST) Subject: [Python-checkins] r66468 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080915130833.480B91E4018@bag.python.org> Author: andrew.kuchling Date: Mon Sep 15 15:08:32 2008 New Revision: 66468 Log: Rewrite item a bit Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Mon Sep 15 15:08:32 2008 @@ -3156,9 +3156,12 @@ before adding elements from the iterable. This change makes the behavior match ``list.__init__()``. -* :meth:`object.__init__` previously accepted arbitrary arguments and keyword - arguments. In Python 2.6, this is no longer allowed and will result in a - :exc:`TypeError`. See issue :issue:`1683368`. +* :meth:`object.__init__` previously accepted arbitrary arguments and + keyword arguments, ignoring them. In Python 2.6, this is no longer + allowed and will result in a :exc:`TypeError`. This will affect + :meth:`__init__` methods that end up calling the corresponding + method on :class:`object` (perhaps through using :func:`super`). + See :issue:`1683368` for discussion. * The :class:`Decimal` constructor now accepts leading and trailing whitespace when passed a string. Previously it would raise an From nnorwitz at gmail.com Mon Sep 15 15:42:39 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 15 Sep 2008 09:42:39 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080915134239.GA32403@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-29593 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665551 refs] From nnorwitz at gmail.com Mon Sep 15 22:36:58 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 15 Sep 2008 16:36:58 -0400 Subject: [Python-checkins] Python Regression Test Failures basics (1) Message-ID: <20080915203658.GA12716@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [650677 refs] From nnorwitz at gmail.com Mon Sep 15 23:03:23 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 15 Sep 2008 17:03:23 -0400 Subject: [Python-checkins] Python Regression Test Failures opt (1) Message-ID: <20080915210323.GA14074@python.psfb.org> 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 test_bsddb3 skipped -- Use of the `bsddb' resource not enabled test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_curses test_curses skipped -- Use of the `curses' resource not enabled test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils [17000 refs] test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_linuxaudiodev test_linuxaudiodev skipped -- Use of the `audio' resource not enabled test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_ossaudiodev test_ossaudiodev skipped -- Use of the `audio' resource not enabled test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_socketserver skipped -- Use of the `network' resource not enabled test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [15967 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_timeout skipped -- Use of the `network' resource not enabled test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib2net skipped -- Use of the `network' resource not enabled test_urllibnet test_urllibnet skipped -- Use of the `network' resource not enabled test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 326 tests OK. 1 test failed: test_normalization 33 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 test_cd test_cl test_curses test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_linuxaudiodev test_macos test_macostools test_multiprocessing test_ossaudiodev test_pep277 test_py3kwarn test_scriptpackages test_socketserver test_startfile test_sunaudiodev test_tcl test_timeout test_unicode_file test_urllib2net test_urllibnet test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [649938 refs] From musiccomposition at gmail.com Tue Sep 16 00:14:35 2008 From: musiccomposition at gmail.com (Benjamin Peterson) Date: Mon, 15 Sep 2008 17:14:35 -0500 Subject: [Python-checkins] r66467 - python/trunk/Doc/whatsnew/2.6.rst In-Reply-To: <48CE4775.4030105@gmail.com> References: <20080915025323.57EA01E4006@bag.python.org> <48CE4775.4030105@gmail.com> Message-ID: <1afaf6160809151514n223fc63ajad717b8bc996c1c7@mail.gmail.com> On Mon, Sep 15, 2008 at 6:31 AM, Nick Coghlan wrote: > benjamin.peterson wrote: >> Author: benjamin.peterson >> Date: Mon Sep 15 04:53:23 2008 >> New Revision: 66467 >> >> Log: >> mention that object.__init__ no longer takes arbitrary args and kwargs > ... >> +* :meth:`object.__init__` previously accepted arbitrary arguments and keyword >> + arguments. In Python 2.6, this is no longer allowed and will result in a >> + :exc:`TypeError`. See issue :issue:`1683368`. > > That's a little too strong at this stage - if both __new__ and __init__ > are overridden, then the stricter checking only emits Deprecation > Warnings in 2.6. Ok. Seems AMK is faster than me, though. :) > > Cheers, > Nick. > > -- > Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia > --------------------------------------------------------------- > http://www.boredomandlaziness.org > _______________________________________________ > Python-checkins mailing list > Python-checkins at python.org > http://mail.python.org/mailman/listinfo/python-checkins > -- Cheers, Benjamin Peterson "There's no place like 127.0.0.1." From buildbot at python.org Tue Sep 16 01:25:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Sep 2008 23:25:46 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080915232546.A22561E4002@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1090 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 16 01:29:43 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 16 Sep 2008 01:29:43 +0200 (CEST) Subject: [Python-checkins] r66470 - sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py Message-ID: <20080915232943.94F9A1E4002@bag.python.org> Author: benjamin.peterson Date: Tue Sep 16 01:29:43 2008 New Revision: 66470 Log: don't use os.linesep for newlines; it breaks tests on windows Modified: sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py Modified: sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py (original) +++ sandbox/trunk/2to3/lib2to3/fixes/fix_metaclass.py Tue Sep 16 01:29:43 2008 @@ -17,8 +17,6 @@ """ # Author: Jack Diederich -import os - # Local imports from .. import fixer_base from ..pygram import token @@ -216,7 +214,7 @@ pass_leaf = Leaf(text_type, 'pass') pass_leaf.set_prefix(orig_meta_prefix) node.append_child(pass_leaf) - node.append_child(Leaf(token.NEWLINE, os.linesep)) + node.append_child(Leaf(token.NEWLINE, '\n')) elif len(suite.children) > 1 and \ (suite.children[-2].type == token.INDENT and @@ -224,4 +222,4 @@ # there was only one line in the class body and it was __metaclass__ pass_leaf = Leaf(text_type, 'pass') suite.insert_child(-1, pass_leaf) - suite.insert_child(-1, Leaf(token.NEWLINE, os.linesep)) + suite.insert_child(-1, Leaf(token.NEWLINE, '\n')) From python-checkins at python.org Tue Sep 16 01:30:15 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 16 Sep 2008 01:30:15 +0200 (CEST) Subject: [Python-checkins] r66471 - peps/trunk/pep-3118.txt Message-ID: <20080915233015.7CB841E4018@bag.python.org> Author: benjamin.peterson Date: Tue Sep 16 01:30:15 2008 New Revision: 66471 Log: PyObject_ReleaseBuffer is now PyBuffer_Release Modified: peps/trunk/pep-3118.txt Modified: peps/trunk/pep-3118.txt ============================================================================== --- peps/trunk/pep-3118.txt (original) +++ peps/trunk/pep-3118.txt Tue Sep 16 01:30:15 2008 @@ -465,7 +465,7 @@ :: - void PyObject_ReleaseBuffer(PyObject *obj, Py_buffer *view) + void PyBuffer_Release(PyObject *obj, Py_buffer *view) This is a C-API version of the releasebuffer function call. It checks to make sure the object has the required function pointer and issues @@ -935,7 +935,7 @@ /* After using the information and you don't need it anymore */ - if (PyObject_ReleaseBuffer(obj, &view) < 0) { + if (PyBuffer_Release(obj, &view) < 0) { /* error return */ } From buildbot at python.org Tue Sep 16 01:32:18 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 15 Sep 2008 23:32:18 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 3.0 Message-ID: <20080915233219.088751E4012@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%203.0/builds/1590 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 32 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 16 01:55:01 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 16 Sep 2008 01:55:01 +0200 (CEST) Subject: [Python-checkins] r66473 - in python/trunk/Lib/lib2to3: fixes/fix_metaclass.py Message-ID: <20080915235501.CBDEC1E4010@bag.python.org> Author: benjamin.peterson Date: Tue Sep 16 01:55:01 2008 New Revision: 66473 Log: Merged revisions 66470 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66470 | benjamin.peterson | 2008-09-15 18:29:43 -0500 (Mon, 15 Sep 2008) | 1 line don't use os.linesep for newlines; it breaks tests on windows ........ Modified: python/trunk/Lib/lib2to3/ (props changed) python/trunk/Lib/lib2to3/fixes/fix_metaclass.py Modified: python/trunk/Lib/lib2to3/fixes/fix_metaclass.py ============================================================================== --- python/trunk/Lib/lib2to3/fixes/fix_metaclass.py (original) +++ python/trunk/Lib/lib2to3/fixes/fix_metaclass.py Tue Sep 16 01:55:01 2008 @@ -17,8 +17,6 @@ """ # Author: Jack Diederich -import os - # Local imports from .. import fixer_base from ..pygram import token @@ -216,7 +214,7 @@ pass_leaf = Leaf(text_type, 'pass') pass_leaf.set_prefix(orig_meta_prefix) node.append_child(pass_leaf) - node.append_child(Leaf(token.NEWLINE, os.linesep)) + node.append_child(Leaf(token.NEWLINE, '\n')) elif len(suite.children) > 1 and \ (suite.children[-2].type == token.INDENT and @@ -224,4 +222,4 @@ # there was only one line in the class body and it was __metaclass__ pass_leaf = Leaf(text_type, 'pass') suite.insert_child(-1, pass_leaf) - suite.insert_child(-1, Leaf(token.NEWLINE, os.linesep)) + suite.insert_child(-1, Leaf(token.NEWLINE, '\n')) From buildbot at python.org Tue Sep 16 02:07:20 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Sep 2008 00:07:20 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080916000721.019161E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/561 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Tue Sep 16 02:44:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Sep 2008 00:44:01 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080916004401.A4A2F1E4009@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1410 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 16 02:52:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Sep 2008 00:52:53 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu trunk Message-ID: <20080916005253.E46C21E4009@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%20trunk/builds/432 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From nnorwitz at gmail.com Tue Sep 16 04:08:45 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 15 Sep 2008 22:08:45 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080916020845.GA29730@python.psfb.org> 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-25138 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test test_normalization failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_normalization.py", line 90, in test_main self.failUnless(X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X), c) AssertionError: 6918 test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 331 tests OK. 1 test failed: test_normalization 25 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 3 skips unexpected on linux2: test_epoll test_multiprocessing test_ioctl [665551 refs] From buildbot at python.org Tue Sep 16 04:12:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Sep 2008 02:12:44 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080916021244.99FF31E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/563 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 16 09:00:20 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 16 Sep 2008 09:00:20 +0200 (CEST) Subject: [Python-checkins] r66477 - in doctools/trunk: doc/config.rst sphinx/latexwriter.py Message-ID: <20080916070020.233291E4008@bag.python.org> Author: georg.brandl Date: Tue Sep 16 09:00:19 2008 New Revision: 66477 Log: Add footer element. Modified: doctools/trunk/doc/config.rst doctools/trunk/sphinx/latexwriter.py Modified: doctools/trunk/doc/config.rst ============================================================================== --- doctools/trunk/doc/config.rst (original) +++ doctools/trunk/doc/config.rst Tue Sep 16 09:00:19 2008 @@ -501,20 +501,27 @@ "Rejne". You can also set this to ``''`` to disable fncychap. ``'preamble'`` Additional preamble content, default empty. + ``'footer'``` + Additional footer content (before the indices), default empty. * Keys that don't need be overridden unless in special cases are: ``'inputenc'`` - "inputenc" package inclusion, default ``'\\usepackage[utf8]{inputenc}'``. + "inputenc" package inclusion, default + ``'\\usepackage[utf8]{inputenc}'``. ``'fontenc'`` "fontenc" package inclusion, default ``'\\usepackage[T1]{fontenc}'``. ``'maketitle'`` "maketitle" call, default ``'\\maketitle'``. Override if you want to generate a differently-styled title page. ``'tableofcontents'`` - "tableofcontents" call, default ``'\\tableofcontents'``. Override if you - want to generate a different table of contents or put content between the - title page and the TOC. + "tableofcontents" call, default ``'\\tableofcontents'``. Override if + you want to generate a different table of contents or put content + between the title page and the TOC. + ``'printindex'`` + "printindex" call, the last thing in the file, default + ``'\\printindex'``. Override if you want to generate the index + differently or append some content after the index. * Keys that are set by other options and therefore should not be overridden are: @@ -530,7 +537,6 @@ ``'makemodindex'`` ``'shorthandoff'`` ``'printmodindex'`` - ``'printindex'`` .. confval:: latex_preamble Modified: doctools/trunk/sphinx/latexwriter.py ============================================================================== --- doctools/trunk/sphinx/latexwriter.py (original) +++ doctools/trunk/sphinx/latexwriter.py Tue Sep 16 09:00:19 2008 @@ -53,6 +53,7 @@ ''' FOOTER = r''' +%(footer)s \renewcommand{\indexname}{%(modindexname)s} %(printmodindex)s \renewcommand{\indexname}{%(indexname)s} @@ -138,6 +139,7 @@ 'shorthandoff': '', 'maketitle': '\\maketitle', 'tableofcontents': '\\tableofcontents', + 'footer': '', 'printmodindex': '\\printmodindex', 'printindex': '\\printindex', } From python-checkins at python.org Tue Sep 16 09:14:17 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 16 Sep 2008 09:14:17 +0200 (CEST) Subject: [Python-checkins] r66478 - in doctools/trunk: CHANGES sphinx/locale/ja sphinx/locale/ja/LC_MESSAGES sphinx/locale/ja/LC_MESSAGES/sphinx.js sphinx/locale/ja/LC_MESSAGES/sphinx.mo Message-ID: <20080916071417.BF7601E4002@bag.python.org> Author: georg.brandl Date: Tue Sep 16 09:14:17 2008 New Revision: 66478 Log: Add Japanese translation, provided by Yasushi Masuda. Added: doctools/trunk/sphinx/locale/ja/ doctools/trunk/sphinx/locale/ja/LC_MESSAGES/ doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.js (contents, props changed) doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.mo (contents, props changed) Modified: doctools/trunk/CHANGES Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Tue Sep 16 09:14:17 2008 @@ -16,7 +16,8 @@ Horst Gutmann, who also contributed German as the first language. A Czech translation was provided by Pavel Kosina. A French translation was provided by David Larlet. A Polish translation - was provided by Micha? Kandulski. + was provided by Micha? Kandulski. A Japanese translation was + provided by Yasushi Masuda. * Added a distutils command `build_sphinx`: When Sphinx is installed, you can call ``python setup.py build_sphinx`` for projects that Added: doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.js ============================================================================== --- (empty file) +++ doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.js Tue Sep 16 09:14:17 2008 @@ -0,0 +1 @@ +Documentation.addTranslations({"locale": "ja", "plural_expr": "0", "messages": {"Search Results": "\u691c\u7d22\u7d50\u679c", "Preparing search...": "\u691c\u7d22\u306e\u6e96\u5099\u4e2d...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u691c\u7d22\u6761\u4ef6\u306b\u4e00\u81f4\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u691c\u7d22\u3057\u305f\u3044\u8a00\u8449\u3092\u6b63\u3057\u3044\u3064\u3065\u308a\u3067\u5165\u529b\u3057\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001\u6b63\u3057\u3044\u30ab\u30c6\u30b4\u30ea\u306e\u691c\u7d22\u3092\u884c\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Search finished, found %s page(s) matching the search query.": "\u691c\u7d22\u304c\u7d42\u4e86\u3057\u3001\u6761\u4ef6\u306b\u4e00\u81f4\u3059\u308b\u30da\u30fc\u30b8\u304c %s \u500b\u307f\u3064\u304b\u308a\u307e\u3057\u305f\u3002", "Permalink to this headline": "\u3053\u306e\u30d8\u30c3\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Searching": "\u691c\u7d22\u4e2d", "Permalink to this definition": "\u3053\u306e\u5b9a\u7fa9\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059"}}); \ No newline at end of file Added: doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.mo ============================================================================== Binary file. No diff available. From python-checkins at python.org Tue Sep 16 09:14:38 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 16 Sep 2008 09:14:38 +0200 (CEST) Subject: [Python-checkins] r66479 - doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.po Message-ID: <20080916071438.85AAC1E4002@bag.python.org> Author: georg.brandl Date: Tue Sep 16 09:14:37 2008 New Revision: 66479 Log: Add po file. Added: doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.po (contents, props changed) Added: doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.po ============================================================================== --- (empty file) +++ doctools/trunk/sphinx/locale/ja/LC_MESSAGES/sphinx.po Tue Sep 16 09:14:37 2008 @@ -0,0 +1,580 @@ +# Japanese translations for Sphinx. +# Copyright (C) 2008 ORGANIZATION +# This file is distributed under the same license as the Sphinx project. +# Yasushi Masuda , 2008. +# +# +msgid "" +msgstr "" +"Project-Id-Version: Sphinx 0.5\n" +"Report-Msgid-Bugs-To: EMAIL at ADDRESS\n" +"POT-Creation-Date: 2008-09-11 23:58+0200\n" +"PO-Revision-Date: 2008-09-17 12:00:00+0900\n" +"Last-Translator: Yasushi MASUDA \n" +"Language-Team: ja \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.3\n" + +#: sphinx/builder.py:400 +#, python-format +msgid "%b %d, %Y" +msgstr "%Y ? %m ? %d ?" + +#: sphinx/builder.py:419 sphinx/templates/defindex.html:21 +msgid "General Index" +msgstr "????" + +#: sphinx/builder.py:419 +msgid "index" +msgstr "??" + + +#: sphinx/builder.py:421 sphinx/htmlhelp.py:155 +#: sphinx/templates/defindex.html:19 sphinx/templates/modindex.html:2 +#: sphinx/templates/modindex.html:13 +msgid "Global Module Index" +msgstr "????????" + +#: sphinx/builder.py:421 +msgid "modules" +msgstr "?????" + +#: sphinx/builder.py:457 +msgid "next" +msgstr "??" + +#: sphinx/builder.py:464 +msgid "previous" +msgstr "??" + +#: sphinx/builder.py:1108 +msgid "Builtins" +msgstr "????" + +#: sphinx/builder.py:1110 +msgid "Module level" +msgstr "????????" + + +#: sphinx/environment.py:107 sphinx/latexwriter.py:129 +#, python-format +msgid "%B %d, %Y" +msgstr "%Y ? %m ? %d ?" + +#: sphinx/environment.py:270 sphinx/latexwriter.py:190 +#: sphinx/templates/genindex-single.html:2 +#: sphinx/templates/genindex-split.html:2 +#: sphinx/templates/genindex-split.html:5 sphinx/templates/genindex.html:2 +#: sphinx/templates/genindex.html:5 sphinx/templates/genindex.html:48 +msgid "Index" +msgstr "??" + +#: sphinx/environment.py:271 sphinx/latexwriter.py:188 +msgid "Module Index" +msgstr "???????" + +#: sphinx/environment.py:272 sphinx/templates/defindex.html:16 +msgid "Search Page" +msgstr "?????" + +#: sphinx/htmlwriter.py:73 sphinx/static/doctools.js:145 +msgid "Permalink to this definition" +msgstr "????????????" + +#: sphinx/htmlwriter.py:375 sphinx/static/doctools.js:139 +msgid "Permalink to this headline" +msgstr "????????????????" + +#: sphinx/latexwriter.py:143 +msgid "Release" +msgstr "????" + +#: sphinx/roles.py:52 sphinx/directives/desc.py:514 +#, python-format +msgid "environment variable; %s" +msgstr "????; %s" + +#: sphinx/roles.py:59 +#, python-format +msgid "Python Enhancement Proposals!PEP %s" +msgstr "Python Enhancement Proposals!PEP %s" + +#: sphinx/textwriter.py:151 +#, python-format +msgid "Platform: %s" +msgstr "????????: %s" + +#: sphinx/textwriter.py:353 +msgid "[image]" +msgstr "[??]" + +#: sphinx/directives/desc.py:26 +#, python-format +msgid "%s() (built-in function)" +msgstr "%s() (??????)" + +#: sphinx/directives/desc.py:27 sphinx/directives/desc.py:41 +#: sphinx/directives/desc.py:53 +#, python-format +msgid "%s() (in module %s)" +msgstr "%s() (%s ?????)" + +#: sphinx/directives/desc.py:30 +#, python-format +msgid "%s (built-in variable)" +msgstr "%s (??????)" + +#: sphinx/directives/desc.py:31 sphinx/directives/desc.py:65 +#, python-format +msgid "%s (in module %s)" +msgstr "%s (%s ?????)" + +#: sphinx/directives/desc.py:33 +#, python-format +msgid "%s (class in %s)" +msgstr "%s (%s ????)" + +#: sphinx/directives/desc.py:45 +#, python-format +msgid "%s() (%s.%s method)" +msgstr "%s() (%s.%s ?????)" + +#: sphinx/directives/desc.py:47 +#, python-format +msgid "%s() (%s method)" +msgstr "%s() (%s ?????)" + +#: sphinx/directives/desc.py:57 +#, python-format +msgid "%s() (%s.%s static method)" +msgstr "%s() (%s.%s ???????)" + +#: sphinx/directives/desc.py:59 +#, python-format +msgid "%s() (%s static method)" +msgstr "%s() (%s ???????)" + +#: sphinx/directives/desc.py:69 +#, python-format +msgid "%s (%s.%s attribute)" +msgstr "%s (%s.%s ???)" + +#: sphinx/directives/desc.py:71 +#, python-format +msgid "%s (%s attribute)" +msgstr "%s (%s ???)" + +#: sphinx/directives/desc.py:73 +#, python-format +msgid "%s (C function)" +msgstr "%s (C ???)" + +#: sphinx/directives/desc.py:75 +#, python-format +msgid "%s (C member)" +msgstr "%s (C ??????)" + +#: sphinx/directives/desc.py:77 +#, python-format +msgid "%s (C macro)" +msgstr "%s (C ????)" + +#: sphinx/directives/desc.py:79 +#, python-format +msgid "%s (C type)" +msgstr "%s (C ?????)" + +#: sphinx/directives/desc.py:81 +#, python-format +msgid "%s (C variable)" +msgstr "%s (C ???)" + +#: sphinx/directives/desc.py:99 +msgid "Raises" +msgstr "??" + +#: sphinx/directives/desc.py:103 +msgid "Variable" +msgstr "??" + +#: sphinx/directives/desc.py:106 +msgid "Returns" +msgstr "???" + +#: sphinx/directives/desc.py:113 +msgid "Return type" +msgstr "?????" + +#: sphinx/directives/desc.py:140 +msgid "Parameters" +msgstr "????" + +#: sphinx/directives/desc.py:402 +#, python-format +msgid "command line option; %s" +msgstr "????????????; %s" + +#: sphinx/directives/other.py:102 +msgid "Platforms: " +msgstr "????????: " + +#: sphinx/directives/other.py:107 +#, python-format +msgid "%s (module)" +msgstr "%s (?????)" + +#: sphinx/directives/other.py:147 +msgid "Section author: " +msgstr "??????: " + +#: sphinx/directives/other.py:149 +msgid "Module author: " +msgstr "????????: " + +#: sphinx/directives/other.py:151 +msgid "Author: " +msgstr "??: " + +#: sphinx/directives/other.py:233 +msgid "See also" +msgstr "??" + +#: sphinx/locale/__init__.py:15 +msgid "Attention" +msgstr "??" + +#: sphinx/locale/__init__.py:16 +msgid "Caution" +msgstr "???" + +#: sphinx/locale/__init__.py:17 +msgid "Danger" +msgstr "??" + +#: sphinx/locale/__init__.py:18 +msgid "Error" +msgstr "???" + +#: sphinx/locale/__init__.py:19 +msgid "Hint" +msgstr "???" + +#: sphinx/locale/__init__.py:20 +msgid "Important" +msgstr "??" + +#: sphinx/locale/__init__.py:21 +msgid "Note" +msgstr "???" + +#: sphinx/locale/__init__.py:22 +msgid "See Also" +msgstr "??" + +#: sphinx/locale/__init__.py:23 +msgid "Tip" +msgstr "????" + +#: sphinx/locale/__init__.py:24 +msgid "Warning" +msgstr "??" + +#: sphinx/locale/__init__.py:28 +#, python-format +msgid "New in version %s" +msgstr "????? %s ???" + +#: sphinx/locale/__init__.py:29 +#, python-format +msgid "Changed in version %s" +msgstr "????? %s ???" + +#: sphinx/locale/__init__.py:30 +#, python-format +msgid "Deprecated since version %s" +msgstr "????? %s ???" + +#: sphinx/locale/__init__.py:34 +msgid "module" +msgstr "?????" + +#: sphinx/locale/__init__.py:35 +msgid "keyword" +msgstr "?????" + +#: sphinx/locale/__init__.py:36 +msgid "operator" +msgstr "???" + +#: sphinx/locale/__init__.py:37 +msgid "object" +msgstr "??????" + +#: sphinx/locale/__init__.py:38 +msgid "exception" +msgstr "??" + +#: sphinx/locale/__init__.py:39 +msgid "statement" +msgstr "?" + +#: sphinx/locale/__init__.py:40 +msgid "built-in function" +msgstr "??????" + +#: sphinx/static/doctools.js:174 +msgid "Hide Search Matches" +msgstr "???????" + +#: sphinx/static/searchtools.js:274 +msgid "Searching" +msgstr "???" + +#: sphinx/static/searchtools.js:279 +msgid "Preparing search..." +msgstr "??????..." + +#: sphinx/static/searchtools.js:401 sphinx/templates/search.html:18 +msgid "Search Results" +msgstr "????" + +#: sphinx/static/searchtools.js:403 +msgid "" +"Your search did not match any documents. Please make sure that all words " +"are spelled correctly and that you've selected enough categories." +msgstr "" +"?????????????????????????????????" +"?????????????????????????????????" +"???????????????????" + +#: sphinx/static/searchtools.js:405 +#, python-format +msgid "Search finished, found %s page(s) matching the search query." +msgstr "?????????????????? %s ?????????" + +#: sphinx/templates/defindex.html:2 +msgid "Overview" +msgstr "??" + +#: sphinx/templates/defindex.html:11 +msgid "Indices and tables:" +msgstr "??????:" + +#: sphinx/templates/defindex.html:14 +msgid "Complete Table of Contents" +msgstr "????" + +#: sphinx/templates/defindex.html:15 +msgid "lists all sections and subsections" +msgstr "?????" + +#: sphinx/templates/defindex.html:17 +msgid "search this documentation" +msgstr "?????????" + +#: sphinx/templates/defindex.html:20 +msgid "quick access to all modules" +msgstr "?????????" + +#: sphinx/templates/defindex.html:22 +msgid "all functions, classes, terms" +msgstr "?????????????" + +#: sphinx/templates/genindex-single.html:5 +#, python-format +msgid "Index – %(key)s" +msgstr "?? – %(key)s" + +#: sphinx/templates/genindex-single.html:44 +#: sphinx/templates/genindex-split.html:14 +#: sphinx/templates/genindex-split.html:27 sphinx/templates/genindex.html:54 +msgid "Full index on one page" +msgstr "???" + +#: sphinx/templates/genindex-split.html:7 +msgid "Index pages by letter" +msgstr "??????" + +#: sphinx/templates/genindex-split.html:15 +msgid "can be huge" +msgstr "????????????" + +#: sphinx/templates/layout.html:9 +msgid "Navigation" +msgstr "???????" + +#: sphinx/templates/layout.html:40 +msgid "Table Of Contents" +msgstr "??" + +#: sphinx/templates/layout.html:46 +msgid "Previous topic" +msgstr "???????" + +#: sphinx/templates/layout.html:47 +msgid "previous chapter" +msgstr "????" + +#: sphinx/templates/layout.html:50 +msgid "Next topic" +msgstr "???????" + +#: sphinx/templates/layout.html:51 +msgid "next chapter" +msgstr "????" + +#: sphinx/templates/layout.html:55 +msgid "This Page" +msgstr "?????" + +#: sphinx/templates/layout.html:59 +msgid "Suggest Change" +msgstr "????????" + +#: sphinx/templates/layout.html:60 sphinx/templates/layout.html:62 +msgid "Show Source" +msgstr "?????????" + +#: sphinx/templates/layout.html:71 +msgid "Quick search" +msgstr "??????" + +#: sphinx/templates/layout.html:71 +msgid "Keyword search" +msgstr "???????" + +#: sphinx/templates/layout.html:73 +msgid "Go" +msgstr "??" + +#: sphinx/templates/layout.html:78 +msgid "Enter a module, class or function name." +msgstr "?????????????????????????" + +#: sphinx/templates/layout.html:118 +#, python-format +msgid "Search within %(docstitle)s" +msgstr "%(docstitle)s ????" + +#: sphinx/templates/layout.html:127 +msgid "About these documents" +msgstr "????????????" + +#: sphinx/templates/layout.html:129 +msgid "Global table of contents" +msgstr "???" + +#: sphinx/templates/layout.html:130 +msgid "Global index" +msgstr "????" + +#: sphinx/templates/layout.html:131 sphinx/templates/search.html:2 +#: sphinx/templates/search.html:5 +msgid "Search" +msgstr "??" + +#: sphinx/templates/layout.html:133 +msgid "Copyright" +msgstr "???" + +#: sphinx/templates/layout.html:178 +#, python-format +msgid "© Copyright %(copyright)s." +msgstr "© Copyright %(copyright)s." + +#: sphinx/templates/layout.html:180 +#, python-format +msgid "© Copyright %(copyright)s." +msgstr "© Copyright %(copyright)s." + +#: sphinx/templates/layout.html:183 +#, python-format +msgid "Last updated on %(last_updated)s." +msgstr "????: %(last_updated)s" + +#: sphinx/templates/layout.html:186 +#, python-format +msgid "" +"Created using Sphinx " +"%(sphinx_version)s." +msgstr "" +"????????? Sphinx " +"%(sphinx_version)s ????????" + +#: sphinx/templates/modindex.html:15 +msgid "Most popular modules:" +msgstr "??????????????:" + +#: sphinx/templates/modindex.html:24 +msgid "Show modules only available on these platforms" +msgstr "????????????????????????????" + +#: sphinx/templates/modindex.html:56 +msgid "Deprecated" +msgstr "??" + +#: sphinx/templates/opensearch.xml:4 +#, python-format +msgid "Search %(docstitle)s" +msgstr "%(docstitle)s ????" + +#: sphinx/templates/page.html:8 +msgid "" +"Note: You requested an out-of-date URL from this server." +" We've tried to redirect you to the new location of this page, but it may" +" not be the right one." +msgstr "" +"??: ?????????????????? URL ???" +"????????????? URL ???????????????" +"??????????????????????????????" + +#: sphinx/templates/search.html:7 +msgid "" +"From here you can search these documents. Enter your search\n" +" words into the box below and click \"search\". Note that the search\n" +" function will automatically search for all of the words. Pages\n" +" containing less words won't appear in the result list." +msgstr "" +"????????????????????????????????????" +"???????????????????????????????????" +"??????????????????????????????????" +"?????????????????" + +#: sphinx/templates/search.html:14 +msgid "search" +msgstr "??" + +#: sphinx/templates/search.html:20 +msgid "Your search did not match any results." +msgstr "?????????????????????" + +#: sphinx/templates/changes/frameset.html:5 +#: sphinx/templates/changes/versionchanges.html:12 +#, python-format +msgid "Changes in Version %(version)s — %(docstitle)s" +msgstr "????? %(version)s ???? — %(docstitle)s" + +#: sphinx/templates/changes/rstsource.html:5 +#, python-format +msgid "%(filename)s — %(docstitle)s" +msgstr "%(filename)s — %(docstitle)s" + +#: sphinx/templates/changes/versionchanges.html:17 +#, python-format +msgid "Automatically generated list of changes in version %(version)s" +msgstr "????? %(version)s ??????????????????????" + +#: sphinx/templates/changes/versionchanges.html:18 +msgid "Library changes" +msgstr "???????????" + +#: sphinx/templates/changes/versionchanges.html:23 +msgid "C API changes" +msgstr "C API ??????" + +#: sphinx/templates/changes/versionchanges.html:25 +msgid "Other changes" +msgstr "??????" + From buildbot at python.org Tue Sep 16 09:43:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Sep 2008 07:43:44 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080916074344.C45E61E4002@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1094 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 16 09:47:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 16 Sep 2008 07:47:21 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080916074721.31B7A1E4002@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/378 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 16 09:49:27 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 16 Sep 2008 09:49:27 +0200 (CEST) Subject: [Python-checkins] r66481 - in doctools/trunk: CHANGES sphinx/highlighting.py Message-ID: <20080916074927.7ED2D1E4002@bag.python.org> Author: georg.brandl Date: Tue Sep 16 09:49:27 2008 New Revision: 66481 Log: Allow lexer guessing. Modified: doctools/trunk/CHANGES doctools/trunk/sphinx/highlighting.py Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Tue Sep 16 09:49:27 2008 @@ -66,6 +66,9 @@ HTML, LaTeX and text translators; this prevents having to manually patch the classes. +* Exposed Pygments' lexer guessing as a highlight "language" + ``guess``. + * Added ``Sphinx.add_javascript()`` that adds scripts to load in the default HTML template. Modified: doctools/trunk/sphinx/highlighting.py ============================================================================== --- doctools/trunk/sphinx/highlighting.py (original) +++ doctools/trunk/sphinx/highlighting.py Tue Sep 16 09:49:27 2008 @@ -21,7 +21,7 @@ from pygments import highlight from pygments.lexers import PythonLexer, PythonConsoleLexer, CLexer, \ TextLexer, RstLexer - from pygments.lexers import get_lexer_by_name + from pygments.lexers import get_lexer_by_name, guess_lexer from pygments.formatters import HtmlFormatter, LatexFormatter from pygments.filters import ErrorToken from pygments.style import Style @@ -157,6 +157,11 @@ elif lang in ('python3', 'py3') and source.startswith('>>>'): # for py3, recognize interactive sessions, but do not try parsing... lexer = lexers['pycon3'] + elif lang == 'guess': + try: + lexer = guess_lexer(source) + except Exception: + return self.unhighlighted(source) else: if lang in lexers: lexer = lexers[lang] From python-checkins at python.org Tue Sep 16 09:52:19 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 16 Sep 2008 09:52:19 +0200 (CEST) Subject: [Python-checkins] r66482 - doctools/trunk/tests/test_markup.py Message-ID: <20080916075219.A12B11E4002@bag.python.org> Author: georg.brandl Date: Tue Sep 16 09:52:19 2008 New Revision: 66482 Log: Adapt markup test to renaming of highlighting escapes. Modified: doctools/trunk/tests/test_markup.py Modified: doctools/trunk/tests/test_markup.py ============================================================================== --- doctools/trunk/tests/test_markup.py (original) +++ doctools/trunk/tests/test_markup.py Tue Sep 16 09:52:19 2008 @@ -110,5 +110,5 @@ # in verbatim code fragments verify(u'::\n\n @?\\?$[]', None, u'\\begin{Verbatim}[commandchars=@\\[\\]]\n' - u'@at[]@(@Gamma@)\\@(@infty@)@$@lb[]@rb[]\n' + u'@PYGZat[]@(@Gamma@)\\@(@infty@)@$@PYGZlb[]@PYGZrb[]\n' u'\\end{Verbatim}') From python-checkins at python.org Tue Sep 16 12:17:45 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 16 Sep 2008 12:17:45 +0200 (CEST) Subject: [Python-checkins] r66483 - python/trunk/Doc/tutorial/errors.rst Message-ID: <20080916101745.BF04F1E4002@bag.python.org> Author: georg.brandl Date: Tue Sep 16 12:17:45 2008 New Revision: 66483 Log: Fix typo. Modified: python/trunk/Doc/tutorial/errors.rst Modified: python/trunk/Doc/tutorial/errors.rst ============================================================================== --- python/trunk/Doc/tutorial/errors.rst (original) +++ python/trunk/Doc/tutorial/errors.rst Tue Sep 16 12:17:45 2008 @@ -374,7 +374,7 @@ As you can see, the :keyword:`finally` clause is executed in any event. The :exc:`TypeError` raised by dividing two strings is not handled by the :keyword:`except` clause and therefore re-raised after the :keyword:`finally` -clauses has been executed. +clause has been executed. In real world applications, the :keyword:`finally` clause is useful for releasing external resources (such as files or network connections), regardless From python-checkins at python.org Tue Sep 16 23:20:28 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 16 Sep 2008 23:20:28 +0200 (CEST) Subject: [Python-checkins] r66484 - python/trunk/Doc/library/2to3.rst Message-ID: <20080916212028.857F01E4015@bag.python.org> Author: benjamin.peterson Date: Tue Sep 16 23:20:28 2008 New Revision: 66484 Log: be less wordy Modified: python/trunk/Doc/library/2to3.rst Modified: python/trunk/Doc/library/2to3.rst ============================================================================== --- python/trunk/Doc/library/2to3.rst (original) +++ python/trunk/Doc/library/2to3.rst Tue Sep 16 23:20:28 2008 @@ -79,12 +79,12 @@ The :option:`-v` option enables the output of more information on the translation process. -When the :option:`-p` is passed to it, 2to3 treats ``print`` as a function -instead of a statement. This is useful when ``from __future__ import -print_function`` is being used. If this option is not given, the print fixer -will surround print calls in an extra set of parentheses because it cannot -differentiate between the and print statement with parentheses (such as ``print -("a" + "b" + "c")``) and a true function call. +When the :option:`-p` is passed, 2to3 treats ``print`` as a function instead of +a statement. This is useful when ``from __future__ import print_function`` is +being used. If this option is not given, the print fixer will surround print +calls in an extra set of parentheses because it cannot differentiate between the +and print statement with parentheses (such as ``print ("a" + "b" + "c")``) and a +true function call. :mod:`lib2to3` - 2to3's library From python-checkins at python.org Wed Sep 17 10:45:55 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 17 Sep 2008 10:45:55 +0200 (CEST) Subject: [Python-checkins] r66485 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080917084555.660141E4009@bag.python.org> Author: georg.brandl Date: Wed Sep 17 10:45:54 2008 New Revision: 66485 Log: #3888: add some deprecated modules in whatsnew. Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Wed Sep 17 10:45:54 2008 @@ -1794,7 +1794,6 @@ :mod:`mimetools`, :mod:`multifile`, :mod:`new`, - :mod:`popen2`, :mod:`pure`, :mod:`statvfs`, :mod:`sunaudiodev`, @@ -2132,6 +2131,15 @@ (Contributed by Christian Heimes and Mark Dickinson.) +* The :mod:`MimeWriter` module has been deprecated; use the email + package instead. + +* The :mod:`mimify` module has been deprecated; use the email package + instead. + +* The :mod:`md5` module has been deprecated; use the hashlib module + instead. + * :class:`mmap` objects now have a :meth:`rfind` method that searches for a substring beginning at the end of the string and searching backwards. The :meth:`find` method also gained an *end* parameter @@ -2214,6 +2222,9 @@ and can optionally take new command-line arguments for the program. (Contributed by Rocky Bernstein; :issue:`1393667`.) +* The :mod:`posixfile` module has been deprecated; :func:`fcntl.lockf` + provides better locking. + The :func:`post_mortem` function, used to begin debugging a traceback, will now use the traceback returned by :func:`sys.exc_info` if no traceback is supplied. (Contributed by Facundo Batista; @@ -2224,6 +2235,9 @@ opcodes, returning a shorter pickle that contains the same data structure. (Contributed by Raymond Hettinger.) +* The :mod:`popen2` module has been deprecated; use the subprocess + module. + * A :func:`get_data` function was added to the :mod:`pkgutil` module that returns the contents of resource files included with an installed Python package. For example:: @@ -2286,6 +2300,9 @@ will now ignore exceptions triggered while evaluating a name. (Fixed by Lorenz Quack; :issue:`2250`.) +* The :mod:`sha` module has been deprecated; use the hashlib module + instead. + * The :mod:`sched` module's :class:`scheduler` instances now have a read-only :attr:`queue` attribute that returns the contents of the scheduler's queue, represented as a list of From python-checkins at python.org Wed Sep 17 10:46:53 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 17 Sep 2008 10:46:53 +0200 (CEST) Subject: [Python-checkins] r66486 - doctools/converter/converter/restwriter.py Message-ID: <20080917084653.723321E4009@bag.python.org> Author: georg.brandl Date: Wed Sep 17 10:46:53 2008 New Revision: 66486 Log: Don't wrap URL text. Modified: doctools/converter/converter/restwriter.py Modified: doctools/converter/converter/restwriter.py ============================================================================== --- doctools/converter/converter/restwriter.py (original) +++ doctools/converter/converter/restwriter.py Wed Sep 17 10:46:53 2008 @@ -911,7 +911,7 @@ elif cmdname == 'optional': self.visit_wrapped('[', content, ']') elif cmdname == 'url': - self.visit_node(content) + self.curpar.append('`<%s>`_' % self.get_node_text(content)) elif cmdname == 'ulink': target = text(node.args[1]) if target.startswith('..'): From python-checkins at python.org Wed Sep 17 13:50:36 2008 From: python-checkins at python.org (skip.montanaro) Date: Wed, 17 Sep 2008 13:50:36 +0200 (CEST) Subject: [Python-checkins] r66487 - python/trunk/Doc/library/collections.rst Message-ID: <20080917115036.4C95C1E4009@bag.python.org> Author: skip.montanaro Date: Wed Sep 17 13:50:36 2008 New Revision: 66487 Log: usage Modified: python/trunk/Doc/library/collections.rst Modified: python/trunk/Doc/library/collections.rst ============================================================================== --- python/trunk/Doc/library/collections.rst (original) +++ python/trunk/Doc/library/collections.rst Wed Sep 17 13:50:36 2008 @@ -380,7 +380,7 @@ .. method:: defaultdict.__missing__(key) - If the :attr:`default_factory` attribute is ``None``, this raises an + If the :attr:`default_factory` attribute is ``None``, this raises a :exc:`KeyError` exception with the *key* as argument. If :attr:`default_factory` is not ``None``, it is called without arguments From python-checkins at python.org Wed Sep 17 14:57:04 2008 From: python-checkins at python.org (andrew.kuchling) Date: Wed, 17 Sep 2008 14:57:04 +0200 (CEST) Subject: [Python-checkins] r66488 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080917125704.528CF1E4009@bag.python.org> Author: andrew.kuchling Date: Wed Sep 17 14:57:04 2008 New Revision: 66488 Log: Markup fixes Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Wed Sep 17 14:57:04 2008 @@ -2131,13 +2131,11 @@ (Contributed by Christian Heimes and Mark Dickinson.) -* The :mod:`MimeWriter` module has been deprecated; use the email +* The :mod:`MimeWriter` module and :mod:`mimify` module + have been deprecated; use the :mod:`email` package instead. -* The :mod:`mimify` module has been deprecated; use the email package - instead. - -* The :mod:`md5` module has been deprecated; use the hashlib module +* The :mod:`md5` module has been deprecated; use the :mod:`hashlib` module instead. * :class:`mmap` objects now have a :meth:`rfind` method that searches for a @@ -2235,7 +2233,7 @@ opcodes, returning a shorter pickle that contains the same data structure. (Contributed by Raymond Hettinger.) -* The :mod:`popen2` module has been deprecated; use the subprocess +* The :mod:`popen2` module has been deprecated; use the :mod:`subprocess` module. * A :func:`get_data` function was added to the :mod:`pkgutil` @@ -2300,7 +2298,7 @@ will now ignore exceptions triggered while evaluating a name. (Fixed by Lorenz Quack; :issue:`2250`.) -* The :mod:`sha` module has been deprecated; use the hashlib module +* The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module instead. * The :mod:`sched` module's :class:`scheduler` instances now From python-checkins at python.org Wed Sep 17 14:58:22 2008 From: python-checkins at python.org (andrew.kuchling) Date: Wed, 17 Sep 2008 14:58:22 +0200 (CEST) Subject: [Python-checkins] r66489 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080917125822.D48B11E400B@bag.python.org> Author: andrew.kuchling Date: Wed Sep 17 14:58:22 2008 New Revision: 66489 Log: Remove comment about improvement: pystone is about the same, and the improvements seem to be difficult to quantify Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Wed Sep 17 14:58:22 2008 @@ -1723,9 +1723,6 @@ free lists when garbage-collecting the highest generation of objects. This may return memory to the operating system sooner. -The net result of the 2.6 optimizations is that Python 2.6 runs the pystone -benchmark around XXX% faster than Python 2.5. - .. ====================================================================== .. _new-26-interpreter: From python-checkins at python.org Wed Sep 17 15:04:53 2008 From: python-checkins at python.org (andrew.kuchling) Date: Wed, 17 Sep 2008 15:04:53 +0200 (CEST) Subject: [Python-checkins] r66490 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080917130453.88BB81E4009@bag.python.org> Author: andrew.kuchling Date: Wed Sep 17 15:04:53 2008 New Revision: 66490 Log: Note sqlite3 version; move item Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Wed Sep 17 15:04:53 2008 @@ -2295,9 +2295,6 @@ will now ignore exceptions triggered while evaluating a name. (Fixed by Lorenz Quack; :issue:`2250`.) -* The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module - instead. - * The :mod:`sched` module's :class:`scheduler` instances now have a read-only :attr:`queue` attribute that returns the contents of the scheduler's queue, represented as a list of @@ -2315,6 +2312,9 @@ * The :mod:`sets` module has been deprecated; it's better to use the built-in :class:`set` and :class:`frozenset` types. +* The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module + instead. + * The :func:`shutil.copytree` function now has an optional *ignore* argument that takes a callable object. This callable will receive each directory path and a list of the directory's contents, and returns a list of names that @@ -2400,6 +2400,10 @@ (Contributed by Pedro Werneck and Jeffrey Yasskin; :issue:`742598`, :issue:`1193577`.) +* The :mod:`sqlite3` module, maintained by Gerhard Haering, + has been updated from version 2.3.2 in Python 2.5 to + version 2.4.1. + * The :mod:`struct` module now supports the C99 :ctype:`_Bool` type, using the format character ``'?'``. (Contributed by David Remahl.) From python-checkins at python.org Wed Sep 17 23:54:57 2008 From: python-checkins at python.org (benjamin.peterson) Date: Wed, 17 Sep 2008 23:54:57 +0200 (CEST) Subject: [Python-checkins] r66491 - python/trunk/Doc/library/compileall.rst Message-ID: <20080917215457.1BE1B1E4009@bag.python.org> Author: benjamin.peterson Date: Wed Sep 17 23:54:56 2008 New Revision: 66491 Log: document compileall command flags Modified: python/trunk/Doc/library/compileall.rst Modified: python/trunk/Doc/library/compileall.rst ============================================================================== --- python/trunk/Doc/library/compileall.rst (original) +++ python/trunk/Doc/library/compileall.rst Wed Sep 17 23:54:56 2008 @@ -11,8 +11,13 @@ allowing users without permission to write to the libraries to take advantage of cached byte-code files. -The source file for this module may also be used as a script to compile Python -sources in directories named on the command line or in ``sys.path``. +This module may also be used as a script (using the :option:`-m` Python flag) to +compile Python sources. Directories to recursively traverse (passing +:option:`-l` stops the recursive behavior) for sources are listed on the command +line. If no arguments are given, the invocation is equivalent to ``-l +sys.path``. Printing lists of the files compiled can be disabled with the +:option:`-q` flag. In addition, the :option:`-x` option takes a regular +expression argument. All files that match the expression will be skipped. .. function:: compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]]) From python-checkins at python.org Wed Sep 17 23:58:08 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Wed, 17 Sep 2008 23:58:08 +0200 (CEST) Subject: [Python-checkins] r66492 - in sandbox/trunk/io-c: build.py io.c io.py Message-ID: <20080917215808.C18231E4009@bag.python.org> Author: amaury.forgeotdarc Date: Wed Sep 17 23:58:08 2008 New Revision: 66492 Log: Attempt to a C implementation of the io module. For now, it is a mixed module, where io.c and io.py import each other. Run "python3 build.py" to build it and run the official test_io.py. io.py is a copy, to track changes made to the original version. Added: sandbox/trunk/io-c/ sandbox/trunk/io-c/build.py sandbox/trunk/io-c/io.c sandbox/trunk/io-c/io.py - copied, changed from r66490, /python/branches/py3k/Lib/io.py Added: sandbox/trunk/io-c/build.py ============================================================================== --- (empty file) +++ sandbox/trunk/io-c/build.py Wed Sep 17 23:58:08 2008 @@ -0,0 +1,37 @@ +import os, sys +from distutils.core import Extension, Distribution +from distutils.command.build_ext import build_ext + +def compile(): + io_c = os.path.join(os.path.dirname(__file__), 'io.c') + io_ext = Extension('_io', [io_c]) + dist = Distribution({'name': '_io', 'ext_modules': [io_ext]}) + cmd = build_ext(dist) + cmd.build_lib = os.path.dirname(__file__) + if os.name == "nt": + # On Windows, we must build a debug version iff running + # a debug build of Python + cmd.debug = sys.executable.endswith("_d.exe") + + cmd.ensure_finalized() + cmd.run() + +def test(): + import subprocess + env = os.environ.copy() + env['PYTHONPATH'] = os.path.abspath(os.path.dirname(__file__)) + + p = subprocess.Popen([sys.executable, "-c", + "import io; print(io)"], + env=env) + p.wait() + + p = subprocess.Popen([sys.executable, "-c", + "from test.test_io import test_main; test_main()"], + env=env) + p.wait() + + +if __name__ == "__main__": + compile() + test() Added: sandbox/trunk/io-c/io.c ============================================================================== --- (empty file) +++ sandbox/trunk/io-c/io.c Wed Sep 17 23:58:08 2008 @@ -0,0 +1,554 @@ +#include +#include "structmember.h" + +static PyObject *io_py_module; + +/* open() uses st_blksize whenever we can */ +#define DEFAULT_BUFFER_SIZE (8 * 1024) /* bytes */ + +PyDoc_STRVAR(module_doc, +"The io module provides the Python interfaces to stream handling. The\n" +"builtin open function is defined in this module.\n" +"\n" +"At the top of the I/O hierarchy is the abstract base class IOBase. It\n" +"defines the basic interface to a stream. Note, however, that there is no\n" +"seperation between reading and writing to streams; implementations are\n" +"allowed to throw an IOError if they do not support a given operation.\n" +"\n" +"Extending IOBase is RawIOBase which deals simply with the reading and\n" +"writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide\n" +"an interface to OS files.\n" +"\n" +"BufferedIOBase deals with buffering on a raw byte stream (RawIOBase). Its\n" +"subclasses, BufferedWriter, BufferedReader, and BufferedRWPair buffer\n" +"streams that are readable, writable, and both respectively.\n" +"BufferedRandom provides a buffered interface to random access\n" +"streams. BytesIO is a simple stream of in-memory bytes.\n" +"\n" +"Another IOBase subclass, TextIOBase, deals with the encoding and decoding\n" +"of streams into text. TextIOWrapper, which extends it, is a buffered text\n" +"interface to a buffered raw stream (`BufferedIOBase`). Finally, StringIO\n" +"is a in-memory stream for text.\n" +"\n" +"Argument names are not part of the specification, and only the arguments\n" +"of open() are intended to be used as keyword arguments.\n" +"\n" +"data:\n" +"\n" +"DEFAULT_BUFFER_SIZE\n" +"\n" +" An int containing the default buffer size used by the module's buffered\n" +" I/O classes. open() uses the file's blksize (as obtained by os.stat) if\n" +" possible.\n" + ); + +/* + * BlockingIOError extends IOError + */ + +typedef struct { + PyException_HEAD + PyObject *myerrno; + PyObject *strerror; + PyObject *filename; /* Not used, but part of the IOError object */ + Py_ssize_t *characters_written; +} PyBlockingIOErrorObject; + + +static int +BlockingIOError_init(PyBlockingIOErrorObject *self, PyObject *args, + PyObject *kwds) +{ + PyObject *myerrno = NULL, *strerror = NULL; + PyObject *baseargs = NULL; + + assert(PyTuple_Check(args)); + + if (PyTuple_GET_SIZE(args) <= 1 || PyTuple_GET_SIZE(args) > 3) + return 0; + + baseargs = PyTuple_GetSlice(args, 0, 2); + if (baseargs == NULL) + return -1; + + if (((PyTypeObject*)PyExc_IOError)->tp_init( + (PyObject*)self, baseargs, kwds) == -1) { + Py_DECREF(baseargs); + return -1; + } + + Py_DECREF(baseargs); + + if (!PyArg_UnpackTuple(args, "BlockingIOError", 2, 3, + &myerrno, &strerror, &self->characters_written)) { + return -1; + } + + return 0; +} + +static PyMemberDef BlockingIOError_members[] = { + {"characters_written", T_OBJECT, offsetof(PyBlockingIOErrorObject, characters_written), 0, + PyDoc_STR("exception errno")}, + {NULL} /* Sentinel */ +}; + + +static PyTypeObject _PyExc_BlockingIOError = { + PyVarObject_HEAD_INIT(NULL, 0) + "BlockingIOError", /*tp_name*/ + sizeof(PyBlockingIOErrorObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare */ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + PyDoc_STR("Exception raised when I/O would block on a non-blocking I/O stream"), /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + BlockingIOError_members, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + (initproc)BlockingIOError_init, /* tp_init */ + 0, /* tp_alloc */ + 0, /* tp_new */ +}; +PyObject *PyExc_BlockingIOError = (PyObject *)&_PyExc_BlockingIOError; + +/* + * The main open() function + */ +PyDoc_STRVAR(open_doc, +"Open file and return a stream. If the file cannot be opened, an IOError is\n" +"raised.\n" +"\n" +"file is either a string giving the name (and the path if the file\n" +"isn't in the current working directory) of the file to be opened or an\n" +"integer file descriptor of the file to be wrapped. (If a file\n" +"descriptor is given, it is closed when the returned I/O object is\n" +"closed, unless closefd is set to False.)\n" +"\n" +"mode is an optional string that specifies the mode in which the file\n" +"is opened. It defaults to 'r' which means open for reading in text\n" +"mode. Other common values are 'w' for writing (truncating the file if\n" +"it already exists), and 'a' for appending (which on some Unix systems,\n" +"means that all writes append to the end of the file regardless of the\n" +"current seek position). In text mode, if encoding is not specified the\n" +"encoding used is platform dependent. (For reading and writing raw\n" +"bytes use binary mode and leave encoding unspecified.) The available\n" +"modes are:\n" +"\n" +"========= ===============================================================\n" +"Character Meaning\n" +"--------- ---------------------------------------------------------------\n" +"'r' open for reading (default)\n" +"'w' open for writing, truncating the file first\n" +"'a' open for writing, appending to the end of the file if it exists\n" +"'b' binary mode\n" +"'t' text mode (default)\n" +"'+' open a disk file for updating (reading and writing)\n" +"'U' universal newline mode (for backwards compatibility; unneeded\n" +" for new code)\n" +"========= ===============================================================\n" +"\n" +"The default mode is 'rt' (open for reading text). For binary random\n" +"access, the mode 'w+b' opens and truncates the file to 0 bytes, while\n" +"'r+b' opens the file without truncation.\n" +"\n" +"Python distinguishes between files opened in binary and text modes,\n" +"even when the underlying operating system doesn't. Files opened in\n" +"binary mode (appending 'b' to the mode argument) return contents as\n" +"bytes objects without any decoding. In text mode (the default, or when\n" +"'t' is appended to the mode argument), the contents of the file are\n" +"returned as strings, the bytes having been first decoded using a\n" +"platform-dependent encoding or using the specified encoding if given.\n" +"\n" +"buffering is an optional integer used to set the buffering policy. By\n" +"default full buffering is on. Pass 0 to switch buffering off (only\n" +"allowed in binary mode), 1 to set line buffering, and an integer > 1\n" +"for full buffering.\n" +"\n" +"encoding is the name of the encoding used to decode or encode the\n" +"file. This should only be used in text mode. The default encoding is\n" +"platform dependent, but any encoding supported by Python can be\n" +"passed. See the codecs module for the list of supported encodings.\n" +"\n" +"errors is an optional string that specifies how encoding errors are to\n" +"be handled---this argument should not be used in binary mode. Pass\n" +"'strict' to raise a ValueError exception if there is an encoding error\n" +"(the default of None has the same effect), or pass 'ignore' to ignore\n" +"errors. (Note that ignoring encoding errors can lead to data loss.)\n" +"See the documentation for codecs.register for a list of the permitted\n" +"encoding error strings.\n" +"\n" +"newline controls how universal newlines works (it only applies to text\n" +"mode). It can be None, '', '\\n', '\\r', and '\\r\\n'. It works as\n" +"follows:\n" +"\n" +"* On input, if newline is None, universal newlines mode is\n" +" enabled. Lines in the input can end in '\\n', '\\r', or '\\r\\n', and\n" +" these are translated into '\\n' before being returned to the\n" +" caller. If it is '', universal newline mode is enabled, but line\n" +" endings are returned to the caller untranslated. If it has any of\n" +" the other legal values, input lines are only terminated by the given\n" +" string, and the line ending is returned to the caller untranslated.\n" +"\n" +"* On output, if newline is None, any '\\n' characters written are\n" +" translated to the system default line separator, os.linesep. If\n" +" newline is '', no translation takes place. If newline is any of the\n" +" other legal values, any '\\n' characters written are translated to\n" +" the given string.\n" +"\n" +"If closefd is False, the underlying file descriptor will be kept open\n" +"when the file is closed. This does not work when a file name is given\n" +"and must be True in that case.\n" +"\n" +"open() returns a file object whose type depends on the mode, and\n" +"through which the standard file operations such as reading and writing\n" +"are performed. When open() is used to open a file in a text mode ('w',\n" +"'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open\n" +"a file in a binary mode, the returned class varies: in read binary\n" +"mode, it returns a BufferedReader; in write binary and append binary\n" +"modes, it returns a BufferedWriter, and in read/write mode, it returns\n" +"a BufferedRandom.\n" +"\n" +"It is also possible to use a string or bytearray as a file for both\n" +"reading and writing. For strings StringIO can be used like a file\n" +"opened in a text mode, and for bytes a BytesIO can be used like a file\n" +"opened in a binary mode.\n" + ); + +static PyObject * +io_open(PyObject* self, PyObject *args, PyObject *kwds) +{ + char *kwlist[] = {"file", "mode", "buffering", + "encoding", "errors", "newline", + "closefd", NULL}; + PyObject *file; + char *mode = "r"; + int buffering = -1, closefd = 1; + char *encoding = NULL, *errors = NULL, *newline = NULL; + unsigned i; + + int reading = 0, writing = 0, appending = 0, updating = 0; + int text = 0, binary = 0, universal = 0; + + PyObject *FileIO_class; + char rawmode[5], *m; + int line_buffering, isatty; + + PyObject *raw, *modeobj = NULL, *buffer = NULL, *wrapper = NULL; + + if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|sizzzi:open", kwlist, + &file, &mode, &buffering, + &encoding, &errors, &newline, + &closefd)) { + return NULL; + } + + if (!PyUnicode_Check(file) && !PyNumber_Check(file)) { + PyErr_Format(PyExc_TypeError, "invalid file: %R", file); + return NULL; + } + + /* Decode mode */ + for (i = 0; i < strlen(mode); i++) { + char c = mode[i]; + + switch (c) { + case 'r': + reading = 1; + break; + case 'w': + writing = 1; + break; + case 'a': + appending = 1; + break; + case '+': + updating = 1; + break; + case 't': + text = 1; + break; + case 'b': + binary = 1; + break; + case 'U': + universal = 1; + break; + default: + goto invalid_mode; + } + + /* c must not be duplicated */ + if (strchr(mode+i+1, c)) { + invalid_mode: + PyErr_Format(PyExc_ValueError, "invalid mode: '%s'", mode); + return NULL; + } + + } + + m = rawmode; + if (reading) *(m++) = 'r'; + if (writing) *(m++) = 'w'; + if (appending) *(m++) = 'a'; + if (updating) *(m++) = '+'; + *m = '\0'; + + /* Parameters validation */ + if (universal) { + if (writing || appending) { + PyErr_SetString(PyExc_ValueError, + "can't use U and writing mode at once"); + return NULL; + } + reading = 1; + } + + if (text && binary) { + PyErr_SetString(PyExc_ValueError, + "can't have text and binary mode at once"); + return NULL; + } + + if (reading + writing + appending > 1) { + PyErr_SetString(PyExc_ValueError, + "must have exactly one of read/write/append mode"); + return NULL; + } + + if (binary && encoding != NULL) { + PyErr_SetString(PyExc_ValueError, + "binary mode doesn't take an encoding argument"); + return NULL; + } + + if (binary && errors != NULL) { + PyErr_SetString(PyExc_ValueError, + "binary mode doesn't take an errors argument"); + return NULL; + } + + if (binary && newline != NULL) { + PyErr_SetString(PyExc_ValueError, + "binary mode doesn't take a newline argument"); + return NULL; + } + + /* Create the Raw file stream */ + FileIO_class = PyObject_GetAttrString(io_py_module, "FileIO"); + if (!FileIO_class) + return NULL; + + raw = PyObject_CallFunction(FileIO_class, "Osi", file, rawmode, closefd); + Py_DECREF(FileIO_class); + if (raw == NULL) + return NULL; + + modeobj = PyUnicode_FromString(mode); + if (modeobj == NULL) + goto error; + + /* buffering */ + { + PyObject *res = PyObject_CallMethod(raw, "isatty", NULL); + if (res == NULL) + goto error; + isatty = PyLong_AsLong(res); + Py_DECREF(res); + if (isatty == -1 && PyErr_Occurred()) + goto error; + } + + if (buffering == 1 || (buffering < 0 && isatty)) { + buffering = -1; + line_buffering = 1; + } + else + line_buffering = 0; + + if (buffering < 0) { + buffering = DEFAULT_BUFFER_SIZE; +#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE + { + struct stat st; + long fileno; + PyObject *res = PyObject_CallMethod(raw, "fileno", NULL); + if (res == NULL) + goto error; + + fileno = PyLong_AsLong(res); + Py_DECREF(res); + if (fileno == -1 && PyErr_Occurred()) + goto error; + + if (stat(fileno, &st) >= 0) + buffering = st->st_blksize; + } +#endif + } + if (buffering < 0) { + PyErr_SetString(PyExc_ValueError, + "invalid buffering size"); + goto error; + } + + /* if not buffering, returns the raw file object */ + if (buffering == 0) { + if (!binary) { + PyErr_SetString(PyExc_ValueError, + "can't have unbuffered text I/O"); + goto error; + } + + if (PyObject_SetAttrString(raw, "_name", file) < 0) + goto error; + if (PyObject_SetAttrString(raw, "_mode", modeobj) < 0) + goto error; + Py_DECREF(modeobj); + return raw; + } + + /* wraps into a buffered file */ + { + char *Buffered_class_name; + PyObject *Buffered_class; + + if (updating) + Buffered_class_name = "BufferedRandom"; + else if (writing || appending) + Buffered_class_name = "BufferedWriter"; + else if (reading) + Buffered_class_name = "BufferedReader"; + else { + PyErr_Format(PyExc_ValueError, + "unknown mode: '%s'", mode); + goto error; + } + + Buffered_class = PyObject_GetAttrString(io_py_module, + Buffered_class_name); + if (Buffered_class == NULL) + goto error; + + buffer = PyObject_CallFunction(Buffered_class, "Oi", raw, buffering); + Py_DECREF(Buffered_class); + } + Py_CLEAR(raw); + if (buffer == NULL) + goto error; + + + /* if binary, returns the buffered file */ + if (binary) { + if (PyObject_SetAttrString(buffer, "_name", file) < 0) + goto error; + if (PyObject_SetAttrString(buffer, "_mode", modeobj) < 0) + goto error; + Py_DECREF(modeobj); + return buffer; + } + + /* wraps into a TextIOWrapper */ + { + PyObject *TextIOWrapper_class; + TextIOWrapper_class = PyObject_GetAttrString(io_py_module, + "TextIOWrapper"); + if (TextIOWrapper_class == NULL) + goto error; + + wrapper = PyObject_CallFunction(TextIOWrapper_class, "Osssi", + buffer, + encoding, errors, newline, + line_buffering); + Py_DECREF(TextIOWrapper_class); + } + Py_CLEAR(buffer); + if (wrapper == NULL) + goto error; + + if (PyObject_SetAttrString(wrapper, "name", file) < 0) + goto error; + if (PyObject_SetAttrString(wrapper, "mode", modeobj) < 0) + goto error; + Py_DECREF(modeobj); + return wrapper; + + error: + Py_XDECREF(raw); + Py_XDECREF(modeobj); + Py_XDECREF(buffer); + Py_XDECREF(wrapper); + return NULL; +} + + + +/* + * Module definition + */ + +static PyMethodDef module_methods[] = { + {"open", (PyCFunction)io_open, METH_VARARGS|METH_KEYWORDS, open_doc}, + {NULL, NULL} +}; + +static struct PyModuleDef iomodule = { + PyModuleDef_HEAD_INIT, + "io", + module_doc, + -1, + module_methods, + NULL, + NULL, + NULL, + NULL +}; + +PyMODINIT_FUNC +PyInit__io() +{ + PyObject *m = PyModule_Create(&iomodule); + if (m == NULL) + goto fail; + + io_py_module = PyImport_ImportModule("io"); + if (io_py_module == NULL) + goto fail; + + _PyExc_BlockingIOError.tp_base = (PyTypeObject*)PyExc_IOError; + if (PyType_Ready(&_PyExc_BlockingIOError) < 0) + goto fail; + Py_INCREF(&_PyExc_BlockingIOError); + PyModule_AddObject(m, "BlockingIOError", + (PyObject *)&_PyExc_BlockingIOError); + + return m; + + fail: + Py_XDECREF(m); + return NULL; +} Copied: sandbox/trunk/io-c/io.py (from r66490, /python/branches/py3k/Lib/io.py) ============================================================================== --- /python/branches/py3k/Lib/io.py (original) +++ sandbox/trunk/io-c/io.py Wed Sep 17 23:58:08 2008 @@ -59,6 +59,7 @@ import abc import codecs import _fileio +import _io # Import _thread instead of threading to reduce startup cost try: from _thread import allocate_lock as Lock @@ -77,6 +78,7 @@ def __init__(self, errno, strerror, characters_written=0): IOError.__init__(self, errno, strerror) self.characters_written = characters_written +BlockingIOError = _io.BlockingIOError def open(file, mode="r", buffering=None, encoding=None, errors=None, @@ -269,6 +271,7 @@ "open(file, mode='r', buffering=None, encoding=None, " "errors=None, newline=None, closefd=True)\n\n" + open.__doc__) +open = _io.open class OpenWrapper: """Wrapper for builtins.open From python-checkins at python.org Thu Sep 18 01:31:44 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Thu, 18 Sep 2008 01:31:44 +0200 (CEST) Subject: [Python-checkins] r66495 - in sandbox/trunk/io-c: io.c io.py Message-ID: <20080917233144.4726C1E4009@bag.python.org> Author: amaury.forgeotdarc Date: Thu Sep 18 01:31:43 2008 New Revision: 66495 Log: Implement RawIOBase. Creation of a type (in C) that inherits a python class is fun. Allowing the result to be part of multiple inheritance is even more fun. This hack should be temporary. Modified: sandbox/trunk/io-c/io.c sandbox/trunk/io-c/io.py Modified: sandbox/trunk/io-c/io.c ============================================================================== --- sandbox/trunk/io-c/io.c (original) +++ sandbox/trunk/io-c/io.c Thu Sep 18 01:31:43 2008 @@ -6,6 +6,7 @@ /* open() uses st_blksize whenever we can */ #define DEFAULT_BUFFER_SIZE (8 * 1024) /* bytes */ + PyDoc_STRVAR(module_doc, "The io module provides the Python interfaces to stream handling. The\n" "builtin open function is defined in this module.\n" @@ -41,6 +42,7 @@ " I/O classes. open() uses the file's blksize (as obtained by os.stat) if\n" " possible.\n" ); + /* * BlockingIOError extends IOError @@ -135,6 +137,7 @@ 0, /* tp_new */ }; PyObject *PyExc_BlockingIOError = (PyObject *)&_PyExc_BlockingIOError; + /* * The main open() function @@ -504,8 +507,154 @@ Py_XDECREF(wrapper); return NULL; } + +/* + * RawIOBase class, Inherits from IOBase. + */ +PyDoc_STRVAR(RawIOBase_doc, + "Base class for raw binary I/O."); + +/* + * The read() method is implemented by calling readinto(); derived classes + * that want to support read() only need to implement readinto() as a + * primitive operation. In general, readinto() can be more efficient than + * read(). + * + * (It would be tempting to also provide an implementation of readinto() in + * terms of read(), in case the latter is a more suitable primitive operation, + * but that would lead to nasty recursion in case a subclass doesn't implement + * either.) +*/ + +static PyObject * +RawIOBase_read(PyObject *self, PyObject *args) +{ + Py_ssize_t n = -1; + PyObject *b, *res; + + if (!PyArg_ParseTuple(args, "|n:read", &n)) { + return NULL; + } + + if (n < 0) + return PyObject_CallMethod(self, "readall", NULL); + + b = PyByteArray_FromStringAndSize(NULL, n); + if (b == NULL) + return NULL; + + res = PyObject_CallMethod(self, "readinto", "O", b); + if (res == NULL) { + Py_DECREF(b); + return NULL; + } + + n = PyNumber_AsSsize_t(res, PyExc_ValueError); + Py_DECREF(res); + if (n == -1 && PyErr_Occurred()) { + Py_DECREF(b); + return NULL; + } + + res = PyBytes_FromStringAndSize(PyByteArray_AsString(b), n); + Py_DECREF(b); + return res; +} + + +PyDoc_STRVAR(RawIOBase_readall_doc, + "Read until EOF, using multiple read() call."); + +static PyObject * +RawIOBase_readall(PyObject *self, PyObject *args) +{ + PyObject *b, *res; + Py_ssize_t cursize = 0; + + b = PyBytes_FromStringAndSize(NULL, 0); + if (b == NULL) + return NULL; + + while (1) { + Py_ssize_t length; + PyObject *data = PyObject_CallMethod(self, "read", + "i", DEFAULT_BUFFER_SIZE); + + if (!data) { + Py_DECREF(b); + return NULL; + } + + if (!PyBytes_Check(b)) { + Py_DECREF(b); + Py_DECREF(data); + PyErr_SetString(PyExc_TypeError, "read() should return bytes"); + return NULL; + } + + length = Py_SIZE(data); + + if (length == 0) + break; + + _PyBytes_Resize(&b, cursize + length); + memcpy(PyBytes_AS_STRING(b) + cursize, + PyBytes_AS_STRING(data), length); + Py_DECREF(data); + } + + return res; +} + +static PyMethodDef RawIOBase_methods[] = { + {"read", RawIOBase_read, METH_VARARGS}, + {"readall", RawIOBase_readall, METH_NOARGS, RawIOBase_readall_doc}, + {NULL, NULL} +}; + +static PyTypeObject RawIOBase_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + "RawIOBase", /*tp_name*/ + 0, /*tp_basicsize*/ + 0, /*tp_itemsize*/ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare */ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + RawIOBase_readall_doc, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + RawIOBase_methods, /* tp_methods */ + 0, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + 0, /* tp_new */ +}; + /* * Module definition @@ -532,6 +681,7 @@ PyInit__io() { PyObject *m = PyModule_Create(&iomodule); + PyTypeObject *base; if (m == NULL) goto fail; @@ -539,13 +689,30 @@ if (io_py_module == NULL) goto fail; - _PyExc_BlockingIOError.tp_base = (PyTypeObject*)PyExc_IOError; + /* BlockingIOError */ + base = (PyTypeObject*)PyExc_IOError; + _PyExc_BlockingIOError.tp_base = base; if (PyType_Ready(&_PyExc_BlockingIOError) < 0) goto fail; Py_INCREF(&_PyExc_BlockingIOError); PyModule_AddObject(m, "BlockingIOError", (PyObject *)&_PyExc_BlockingIOError); + /* RawIOBase */ + base = (PyTypeObject*)PyObject_GetAttrString(io_py_module, "IOBase"); + if (base == NULL) + return NULL; + RawIOBase_Type.tp_base = base; + RawIOBase_Type.tp_basicsize = base->tp_basicsize; + /* XXX next line is needed for multiple derivation */ + /* XXX try to remove it when FileIO is fully ported */ + RawIOBase_Type.tp_flags |= Py_TPFLAGS_HEAPTYPE; + if (PyType_Ready(&RawIOBase_Type) < 0) + goto fail; + Py_INCREF(&RawIOBase_Type); + PyModule_AddObject(m, "RawIOBase", + (PyObject *)&RawIOBase_Type); + return m; fail: Modified: sandbox/trunk/io-c/io.py ============================================================================== --- sandbox/trunk/io-c/io.py (original) +++ sandbox/trunk/io-c/io.py Thu Sep 18 01:31:43 2008 @@ -59,7 +59,6 @@ import abc import codecs import _fileio -import _io # Import _thread instead of threading to reduce startup cost try: from _thread import allocate_lock as Lock @@ -78,7 +77,6 @@ def __init__(self, errno, strerror, characters_written=0): IOError.__init__(self, errno, strerror) self.characters_written = characters_written -BlockingIOError = _io.BlockingIOError def open(file, mode="r", buffering=None, encoding=None, errors=None, @@ -271,7 +269,6 @@ "open(file, mode='r', buffering=None, encoding=None, " "errors=None, newline=None, closefd=True)\n\n" + open.__doc__) -open = _io.open class OpenWrapper: """Wrapper for builtins.open @@ -555,6 +552,10 @@ for line in lines: self.write(line) +import _io +BlockingIOError = _io.BlockingIOError +open = _io.open + class RawIOBase(IOBase): @@ -609,6 +610,7 @@ Returns the number of bytes written, which may be less than len(b). """ self._unsupported("write") +RawIOBase = _io.RawIOBase class FileIO(_fileio._FileIO, RawIOBase): From buildbot at python.org Thu Sep 18 01:37:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 17 Sep 2008 23:37:49 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080917233749.9F6ED1E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/565 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 01:53:25 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 17 Sep 2008 23:53:25 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080917235325.F1AD51E4009@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/536 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From nnorwitz at gmail.com Thu Sep 18 02:42:23 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Wed, 17 Sep 2008 20:42:23 -0400 Subject: [Python-checkins] Python Regression Test Failures refleak (1) Message-ID: <20080918004223.GA17709@python.psfb.org> More important issues: ---------------------- test_softspace leaked [0, 0, -85] references, sum=-85 Less important issues: ---------------------- test_cmd_line leaked [25, -25, 0] references, sum=0 test_popen2 leaked [54, -54, 0] references, sum=0 test_smtplib leaked [-88, -2, 84] references, sum=-6 test_socketserver leaked [0, 84, 135] references, sum=219 test_threadedtempfile leaked [0, 0, 104] references, sum=104 test_threadsignals leaked [-8, 0, 0] references, sum=-8 test_urllib2_localnet leaked [3, 3, 3] references, sum=9 test_xmlrpc leaked [0, 0, -85] references, sum=-85 From python-checkins at python.org Thu Sep 18 03:22:17 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 18 Sep 2008 03:22:17 +0200 (CEST) Subject: [Python-checkins] r66496 - in python/trunk: Lib/test/test_hashlib.py Misc/NEWS Modules/_hashopenssl.c Message-ID: <20080918012217.264E21E4009@bag.python.org> Author: benjamin.peterson Date: Thu Sep 18 03:22:16 2008 New Revision: 66496 Log: fix possible integer overflows in _hashopenssl #3886 Modified: python/trunk/Lib/test/test_hashlib.py python/trunk/Misc/NEWS python/trunk/Modules/_hashopenssl.c Modified: python/trunk/Lib/test/test_hashlib.py ============================================================================== --- python/trunk/Lib/test/test_hashlib.py (original) +++ python/trunk/Lib/test/test_hashlib.py Thu Sep 18 03:22:16 2008 @@ -9,7 +9,7 @@ import hashlib import unittest from test import test_support - +from test.test_support import _4G, precisionbigmemtest def hexstr(s): import string @@ -55,7 +55,6 @@ m2.update(aas + bees + cees) self.assertEqual(m1.digest(), m2.digest()) - def check(self, name, data, digest): # test the direct constructors computed = getattr(hashlib, name)(data).hexdigest() @@ -75,6 +74,21 @@ self.check('md5', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'd174ab98d277d9f5a5611c2c9f419d9f') + @precisionbigmemtest(size=_4G + 5, memuse=1) + def test_case_md5_huge(self, size): + if size == _4G + 5: + try: + self.check('md5', 'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d') + except OverflowError: + pass # 32-bit arch + + @precisionbigmemtest(size=_4G - 1, memuse=1) + def test_case_md5_uintmax(self, size): + if size == _4G - 1: + try: + self.check('md5', 'A'*size, '28138d306ff1b8281f1a9067e1a1a2b3') + except OverflowError: + pass # 32-bit arch # use the three examples from Federal Information Processing Standards # Publication 180-1, Secure Hash Standard, 1995 April 17 Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 18 03:22:16 2008 @@ -12,8 +12,11 @@ Core and Builtins ----------------- -Library -------- +Extension Modules +----------------- + +- Issue #3886: Possible integer overflows in the _hashopenssl module were + closed. Tools/Demos ----------- Modified: python/trunk/Modules/_hashopenssl.c ============================================================================== --- python/trunk/Modules/_hashopenssl.c (original) +++ python/trunk/Modules/_hashopenssl.c Thu Sep 18 03:22:16 2008 @@ -19,6 +19,8 @@ /* EVP is the preferred interface to hashing in OpenSSL */ #include +#define MUNCH_SIZE INT_MAX + #ifndef HASH_OBJ_CONSTRUCTOR #define HASH_OBJ_CONSTRUCTOR 0 @@ -164,9 +166,18 @@ if (!PyArg_ParseTuple(args, "s#:update", &cp, &len)) return NULL; + if (len > 0 && len <= MUNCH_SIZE) { EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); - + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } Py_INCREF(Py_None); return Py_None; } @@ -255,10 +266,21 @@ self->name = name_obj; Py_INCREF(self->name); - if (cp && len) + if (cp && len) { + if (len > 0 && len <= MUNCH_SIZE) { EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); - + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } + } + return 0; } #endif @@ -327,7 +349,7 @@ static PyObject * EVPnew(PyObject *name_obj, const EVP_MD *digest, const EVP_MD_CTX *initial_ctx, - const unsigned char *cp, unsigned int len) + const unsigned char *cp, Py_ssize_t len) { EVPobject *self; @@ -345,8 +367,20 @@ EVP_DigestInit(&self->ctx, digest); } - if (cp && len) - EVP_DigestUpdate(&self->ctx, cp, len); + if (cp && len) { + if (len > 0 && len <= MUNCH_SIZE) { + EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, + unsigned int)); + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } + } return (PyObject *)self; } @@ -383,8 +417,7 @@ digest = EVP_get_digestbyname(name); - return EVPnew(name_obj, digest, NULL, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, - unsigned int)); + return EVPnew(name_obj, digest, NULL, cp, len); } /* @@ -409,7 +442,7 @@ CONST_ ## NAME ## _name_obj, \ NULL, \ CONST_new_ ## NAME ## _ctx_p, \ - cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); \ + cp, len); \ } /* a PyMethodDef structure for the constructor */ From python-checkins at python.org Thu Sep 18 03:27:26 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 18 Sep 2008 03:27:26 +0200 (CEST) Subject: [Python-checkins] r66497 - in python/branches/release25-maint: Lib/test/test_hashlib.py Misc/NEWS Modules/_hashopenssl.c Message-ID: <20080918012726.CFEDB1E4009@bag.python.org> Author: benjamin.peterson Date: Thu Sep 18 03:27:26 2008 New Revision: 66497 Log: backport r66496: integer overflow in _hashopenssl #3886 Modified: python/branches/release25-maint/Lib/test/test_hashlib.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Modules/_hashopenssl.c Modified: python/branches/release25-maint/Lib/test/test_hashlib.py ============================================================================== --- python/branches/release25-maint/Lib/test/test_hashlib.py (original) +++ python/branches/release25-maint/Lib/test/test_hashlib.py Thu Sep 18 03:27:26 2008 @@ -9,7 +9,7 @@ import hashlib import unittest from test import test_support - +from test.test_support import _4G, precisionbigmemtest def hexstr(s): import string @@ -55,7 +55,6 @@ m2.update(aas + bees + cees) self.assertEqual(m1.digest(), m2.digest()) - def check(self, name, data, digest): # test the direct constructors computed = getattr(hashlib, name)(data).hexdigest() @@ -75,6 +74,21 @@ self.check('md5', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'd174ab98d277d9f5a5611c2c9f419d9f') + @precisionbigmemtest(size=_4G + 5, memuse=1) + def test_case_md5_huge(self, size): + if size == _4G + 5: + try: + self.check('md5', 'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d') + except OverflowError: + pass # 32-bit arch + + @precisionbigmemtest(size=_4G - 1, memuse=1) + def test_case_md5_uintmax(self, size): + if size == _4G - 1: + try: + self.check('md5', 'A'*size, '28138d306ff1b8281f1a9067e1a1a2b3') + except OverflowError: + pass # 32-bit arch # use the three examples from Federal Information Processing Standards # Publication 180-1, Secure Hash Standard, 1995 April 17 Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Thu Sep 18 03:27:26 2008 @@ -173,6 +173,9 @@ Extension Modules ----------------- +- Issue 3886: [CVE-2008-2316] Possible integer overflow in the _hashopenssl + module was closed. + - Issue 1179: [CVE-2007-4965] Integer overflow in imageop module. Also fixes rgbimg module. Modified: python/branches/release25-maint/Modules/_hashopenssl.c ============================================================================== --- python/branches/release25-maint/Modules/_hashopenssl.c (original) +++ python/branches/release25-maint/Modules/_hashopenssl.c Thu Sep 18 03:27:26 2008 @@ -19,6 +19,8 @@ /* EVP is the preferred interface to hashing in OpenSSL */ #include +#define MUNCH_SIZE INT_MAX + #ifndef HASH_OBJ_CONSTRUCTOR #define HASH_OBJ_CONSTRUCTOR 0 @@ -164,9 +166,18 @@ if (!PyArg_ParseTuple(args, "s#:update", &cp, &len)) return NULL; + if (len > 0 && len <= MUNCH_SIZE) { EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); - + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } Py_INCREF(Py_None); return Py_None; } @@ -255,10 +266,21 @@ self->name = name_obj; Py_INCREF(self->name); - if (cp && len) + if (cp && len) { + if (len > 0 && len <= MUNCH_SIZE) { EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); - + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } + } + return 0; } #endif @@ -328,7 +350,7 @@ static PyObject * EVPnew(PyObject *name_obj, const EVP_MD *digest, const EVP_MD_CTX *initial_ctx, - const unsigned char *cp, unsigned int len) + const unsigned char *cp, Py_ssize_t len) { EVPobject *self; @@ -346,8 +368,20 @@ EVP_DigestInit(&self->ctx, digest); } - if (cp && len) - EVP_DigestUpdate(&self->ctx, cp, len); + if (cp && len) { + if (len > 0 && len <= MUNCH_SIZE) { + EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, + unsigned int)); + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } + } return (PyObject *)self; } @@ -384,8 +418,7 @@ digest = EVP_get_digestbyname(name); - return EVPnew(name_obj, digest, NULL, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, - unsigned int)); + return EVPnew(name_obj, digest, NULL, cp, len); } /* @@ -410,7 +443,7 @@ CONST_ ## NAME ## _name_obj, \ NULL, \ CONST_new_ ## NAME ## _ctx_p, \ - cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); \ + cp, len); \ } /* a PyMethodDef structure for the constructor */ From buildbot at python.org Thu Sep 18 03:27:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 01:27:27 +0000 Subject: [Python-checkins] buildbot failure in i386 Ubuntu 3.0 Message-ID: <20080918012727.A25241E4009@bag.python.org> The Buildbot has detected a new failure of i386 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/i386%20Ubuntu%203.0/builds/491 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-i386 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 03:50:41 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 01:50:41 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080918015041.7EB801E401A@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1424 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,georg.brandl,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 04:10:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 02:10:17 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 2.5 Message-ID: <20080918021017.522761E4009@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%202.5/builds/30 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 04:16:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 02:16:53 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 2.5 Message-ID: <20080918021654.13E481E4009@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%202.5/builds/69 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 04:30:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 02:30:56 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080918023056.CB8A01E4009@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/570 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,georg.brandl,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_urllibnet make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 04:32:18 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 02:32:18 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 2.5 Message-ID: <20080918023218.DDAB91E4009@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%202.5/builds/19 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_threadedtempfile sincerely, -The Buildbot From python-checkins at python.org Thu Sep 18 04:47:36 2008 From: python-checkins at python.org (mark.hammond) Date: Thu, 18 Sep 2008 04:47:36 +0200 (CEST) Subject: [Python-checkins] r66498 - python/trunk/Lib/bsddb/test/test_replication.py Message-ID: <20080918024736.1BCC41E4009@bag.python.org> Author: mark.hammond Date: Thu Sep 18 04:47:35 2008 New Revision: 66498 Log: On Windows, temporarily disable the bsddb test referenced in bug 3892. We do yell to stderr and the bug is marked as a blocker. Reviewed by barry in #python-dev. Modified: python/trunk/Lib/bsddb/test/test_replication.py Modified: python/trunk/Lib/bsddb/test/test_replication.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_replication.py (original) +++ python/trunk/Lib/bsddb/test/test_replication.py Thu Sep 18 04:47:35 2008 @@ -119,7 +119,19 @@ timeout = time.time()+10 while (time.time()> sys.stderr, \ + "XXX - windows bsddb replication fails on windows and is skipped" + print >> sys.stderr, "XXX - Please see issue #3892" + else: + self.assertTrue(time.time() Author: barry.warsaw Date: Thu Sep 18 05:01:08 2008 New Revision: 66500 Log: Tagging 3.0rc1 Added: python/tags/r30rc1/ - copied from r66499, /python/branches/py3k/ From python-checkins at python.org Thu Sep 18 05:03:20 2008 From: python-checkins at python.org (barry.warsaw) Date: Thu, 18 Sep 2008 05:03:20 +0200 (CEST) Subject: [Python-checkins] r66501 - python/tags/r30rc1/py3k Message-ID: <20080918030320.CAA131E4009@bag.python.org> Author: barry.warsaw Date: Thu Sep 18 05:03:20 2008 New Revision: 66501 Log: Tagging 3.0rc1 Added: python/tags/r30rc1/py3k/ - copied from r66500, /python/branches/py3k/ From buildbot at python.org Thu Sep 18 05:18:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 03:18:53 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080918031853.473561E4009@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1426 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: mark.hammond BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/trunk.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 05:24:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 03:24:49 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD 3.0 Message-ID: <20080918032449.3F3301E4009@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%203.0/builds/266 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw,benjamin.peterson BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Thu Sep 18 05:51:47 2008 From: python-checkins at python.org (mark.hammond) Date: Thu, 18 Sep 2008 05:51:47 +0200 (CEST) Subject: [Python-checkins] r66502 - python/trunk/Lib/distutils/msvc9compiler.py Message-ID: <20080918035147.6DE301E400E@bag.python.org> Author: mark.hammond Date: Thu Sep 18 05:51:46 2008 New Revision: 66502 Log: avoid putting unicode objects in the environment causing later test failures. As discussed on #python-dev Modified: python/trunk/Lib/distutils/msvc9compiler.py Modified: python/trunk/Lib/distutils/msvc9compiler.py ============================================================================== --- python/trunk/Lib/distutils/msvc9compiler.py (original) +++ python/trunk/Lib/distutils/msvc9compiler.py Thu Sep 18 05:51:46 2008 @@ -357,9 +357,10 @@ vc_env = query_vcvarsall(VERSION, plat_spec) - self.__paths = vc_env['path'].split(os.pathsep) - os.environ['lib'] = vc_env['lib'] - os.environ['include'] = vc_env['include'] + # take care to only use strings in the environment. + self.__paths = vc_env['path'].encode('mbcs').split(os.pathsep) + os.environ['lib'] = vc_env['lib'].encode('mbcs') + os.environ['include'] = vc_env['include'].encode('mbcs') if len(self.__paths) == 0: raise DistutilsPlatformError("Python was built with %s, " From buildbot at python.org Thu Sep 18 06:02:51 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 04:02:51 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080918040251.AFB0B1E4009@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3943 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: mark.hammond BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 06:12:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 04:12:17 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080918041217.9D2F21E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/567 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw,benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 06:23:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 04:23:30 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080918042330.7C2D21E4009@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/248 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: mark.hammond BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_asynchat test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 18 06:33:43 2008 From: python-checkins at python.org (barry.warsaw) Date: Thu, 18 Sep 2008 06:33:43 +0200 (CEST) Subject: [Python-checkins] r66504 - in python/trunk: Include/patchlevel.h Lib/distutils/__init__.py Lib/idlelib/idlever.py Misc/NEWS Misc/RPM/python-2.6.spec README Message-ID: <20080918043343.9A7971E4009@bag.python.org> Author: barry.warsaw Date: Thu Sep 18 06:33:43 2008 New Revision: 66504 Log: Bumping to 2.6rc2 Modified: python/trunk/Include/patchlevel.h python/trunk/Lib/distutils/__init__.py python/trunk/Lib/idlelib/idlever.py python/trunk/Misc/NEWS python/trunk/Misc/RPM/python-2.6.spec python/trunk/README Modified: python/trunk/Include/patchlevel.h ============================================================================== --- python/trunk/Include/patchlevel.h (original) +++ python/trunk/Include/patchlevel.h Thu Sep 18 06:33:43 2008 @@ -24,10 +24,10 @@ #define PY_MINOR_VERSION 6 #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA -#define PY_RELEASE_SERIAL 1 +#define PY_RELEASE_SERIAL 2 /* Version as a string */ -#define PY_VERSION "2.6rc1+" +#define PY_VERSION "2.6rc2" /*--end constants--*/ /* Subversion Revision number of this file (not of the repository) */ Modified: python/trunk/Lib/distutils/__init__.py ============================================================================== --- python/trunk/Lib/distutils/__init__.py (original) +++ python/trunk/Lib/distutils/__init__.py Thu Sep 18 06:33:43 2008 @@ -22,5 +22,5 @@ # #--start constants-- -__version__ = "2.6rc1" +__version__ = "2.6rc2" #--end constants-- Modified: python/trunk/Lib/idlelib/idlever.py ============================================================================== --- python/trunk/Lib/idlelib/idlever.py (original) +++ python/trunk/Lib/idlelib/idlever.py Thu Sep 18 06:33:43 2008 @@ -1 +1 @@ -IDLE_VERSION = "2.6rc1" +IDLE_VERSION = "2.6rc2" Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 18 06:33:43 2008 @@ -7,7 +7,7 @@ What's New in Python 2.6 release candidate 2? ============================================= -*Release date: XX-XXXX-2008* +*Release date: 17-Sep-2008* Core and Builtins ----------------- Modified: python/trunk/Misc/RPM/python-2.6.spec ============================================================================== --- python/trunk/Misc/RPM/python-2.6.spec (original) +++ python/trunk/Misc/RPM/python-2.6.spec Thu Sep 18 06:33:43 2008 @@ -34,7 +34,7 @@ %define name python #--start constants-- -%define version 2.6rc1 +%define version 2.6rc2 %define libver 2.6 #--end constants-- %define release 1pydotorg Modified: python/trunk/README ============================================================================== --- python/trunk/README (original) +++ python/trunk/README Thu Sep 18 06:33:43 2008 @@ -1,4 +1,4 @@ -This is Python version 2.6 release candidate 1 +This is Python version 2.6 release candidate 2 ============================================== Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 From python-checkins at python.org Thu Sep 18 06:34:09 2008 From: python-checkins at python.org (barry.warsaw) Date: Thu, 18 Sep 2008 06:34:09 +0200 (CEST) Subject: [Python-checkins] r66505 - python/tags/r26rc2 Message-ID: <20080918043409.AD2A01E4009@bag.python.org> Author: barry.warsaw Date: Thu Sep 18 06:34:09 2008 New Revision: 66505 Log: Tagging 2.6rc2 Added: python/tags/r26rc2/ - copied from r66504, /python/trunk/ From buildbot at python.org Thu Sep 18 06:38:50 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 04:38:50 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20080918043850.6DA881E4009@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1100 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: mark.hammond BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 06:50:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 04:50:30 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 3.0 Message-ID: <20080918045030.C21401E4009@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%203.0/builds/788 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_doctest sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 07:19:40 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 05:19:40 +0000 Subject: [Python-checkins] buildbot failure in x86 XP-4 3.0 Message-ID: <20080918051940.9CF291E4009@bag.python.org> The Buildbot has detected a new failure of x86 XP-4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20XP-4%203.0/builds/1186 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: bolen-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw,benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc_net ====================================================================== ERROR: test_current_time (test.test_xmlrpc_net.CurrentTimeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\test\test_xmlrpc_net.py", line 18, in test_current_time t0 = server.currentTime.getCurrentTime() File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\xmlrpc\client.py", line 1095, in __call__ return self.__send(self.__name, args) File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\xmlrpc\client.py", line 1353, in __request verbose=self.__verbose File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\xmlrpc\client.py", line 1125, in request resp = http_conn.getresponse() File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\http\client.py", line 920, in getresponse response.begin() File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\http\client.py", line 338, in begin version, status, reason = self._read_status() File "E:\cygwin\home\db3l\buildarea\3.0.bolen-windows\build\lib\http\client.py", line 300, in _read_status raise BadStatusLine(line) http.client.BadStatusLine sincerely, -The Buildbot From python-checkins at python.org Thu Sep 18 07:34:31 2008 From: python-checkins at python.org (barry.warsaw) Date: Thu, 18 Sep 2008 07:34:31 +0200 (CEST) Subject: [Python-checkins] r66506 - in python/trunk: Include/patchlevel.h Misc/NEWS Message-ID: <20080918053431.5048F1E4009@bag.python.org> Author: barry.warsaw Date: Thu Sep 18 07:34:31 2008 New Revision: 66506 Log: done with 2.6rc2 Modified: python/trunk/Include/patchlevel.h python/trunk/Misc/NEWS Modified: python/trunk/Include/patchlevel.h ============================================================================== --- python/trunk/Include/patchlevel.h (original) +++ python/trunk/Include/patchlevel.h Thu Sep 18 07:34:31 2008 @@ -27,7 +27,7 @@ #define PY_RELEASE_SERIAL 2 /* Version as a string */ -#define PY_VERSION "2.6rc2" +#define PY_VERSION "2.6rc2+" /*--end constants--*/ /* Subversion Revision number of this file (not of the repository) */ Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 18 07:34:31 2008 @@ -4,6 +4,18 @@ (editors: check NEWS.help for information about editing NEWS using ReST.) +What's New in Python 2.6 final +============================== + +*Release date: XX-XXX-2008* + +Core and Builtins +----------------- + +Library +------- + + What's New in Python 2.6 release candidate 2? ============================================= From buildbot at python.org Thu Sep 18 08:03:09 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 06:03:09 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080918060309.ECD7E1E4009@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1429 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 18 08:24:09 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 18 Sep 2008 06:24:09 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080918062409.5489F1E4009@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/931 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From amauryfa at gmail.com Thu Sep 18 09:19:17 2008 From: amauryfa at gmail.com (Amaury Forgeot d'Arc) Date: Thu, 18 Sep 2008 09:19:17 +0200 Subject: [Python-checkins] r66501 - python/tags/r30rc1/py3k Message-ID: Hello, The r30rc1 tag is a copy of the development branch, but it also contains a "py3k" directory, where all the files are duplicated: http://svn.python.org/projects/python/tags/r30rc1/ I am sure this was not intended... > Author: barry.warsaw > Date: Thu Sep 18 05:03:20 2008 > New Revision: 66501 > > Log: > Tagging 3.0rc1 > > > Added: > python/tags/r30rc1/py3k/ > - copied from r66500, /python/branches/py3k/ -- Amaury Forgeot d'Arc From python-checkins at python.org Thu Sep 18 13:30:58 2008 From: python-checkins at python.org (barry.warsaw) Date: Thu, 18 Sep 2008 13:30:58 +0200 (CEST) Subject: [Python-checkins] r66507 - python/tags/r30rc1/py3k Message-ID: <20080918113058.A314F1E4009@bag.python.org> Author: barry.warsaw Date: Thu Sep 18 13:30:58 2008 New Revision: 66507 Log: removing incorrectly tagged double directory Removed: python/tags/r30rc1/py3k/ From barry at python.org Thu Sep 18 13:31:26 2008 From: barry at python.org (Barry Warsaw) Date: Thu, 18 Sep 2008 07:31:26 -0400 Subject: [Python-checkins] r66501 - python/tags/r30rc1/py3k In-Reply-To: References: Message-ID: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sep 18, 2008, at 3:19 AM, Amaury Forgeot d'Arc wrote: > The r30rc1 tag is a copy of the development branch, but it also > contains a "py3k" directory, > where all the files are duplicated: > http://svn.python.org/projects/python/tags/r30rc1/ > > I am sure this was not intended... Nope, removed. Thanks. - -Barry -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) iQCVAwUBSNI8D3EjvBPtnXfVAQJNGAP+JohbDes03iNsT9BqEVrIonAnnezj8MrL 5DKCiS8sQ9E9J8624+0bDUtxWUFzhAsGnAA7+WPhA16RSsEcNjq8e2Jx5yVjKiWw MsRZvaH2jCRrGcUAbshhN6PSUw42JB2g2Bi7BTmol8qWrvUKlAsTQ/iLu0uIj74t ipu5lalz52w= =8mRx -----END PGP SIGNATURE----- From python-checkins at python.org Fri Sep 19 01:21:25 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 19 Sep 2008 01:21:25 +0200 (CEST) Subject: [Python-checkins] r66508 - python/trunk/Modules/config.c.in Message-ID: <20080918232125.B55ED1E4009@bag.python.org> Author: benjamin.peterson Date: Fri Sep 19 01:20:28 2008 New Revision: 66508 Log: tabify Modified: python/trunk/Modules/config.c.in Modified: python/trunk/Modules/config.c.in ============================================================================== --- python/trunk/Modules/config.c.in (original) +++ python/trunk/Modules/config.c.in Fri Sep 19 01:20:28 2008 @@ -52,8 +52,8 @@ /* This lives in gcmodule.c */ {"gc", initgc}, - /* This lives in _warnings.c */ - {"_warnings", _PyWarnings_Init}, + /* This lives in _warnings.c */ + {"_warnings", _PyWarnings_Init}, /* Sentinel */ {0, 0} From buildbot at python.org Fri Sep 19 02:08:02 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 00:08:02 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080919000802.9016C1E4009@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1099 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 02:10:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 00:10:56 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080919001056.E574F1E4009@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/165 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 02:42:50 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 00:42:50 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080919004250.CC8891E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/569 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 02:50:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 00:50:21 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080919005022.173DF1E401F@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3946 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 03:30:39 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 01:30:39 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20080919013039.C59851E4009@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/902 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 19 04:07:22 2008 From: python-checkins at python.org (josiah.carlson) Date: Fri, 19 Sep 2008 04:07:22 +0200 (CEST) Subject: [Python-checkins] r66510 - python/trunk/Doc/library/asynchat.rst Message-ID: <20080919020722.7F0771E4009@bag.python.org> Author: josiah.carlson Date: Fri Sep 19 04:07:22 2008 New Revision: 66510 Log: Fix for documentation bug. Fixes issue 3904. Modified: python/trunk/Doc/library/asynchat.rst Modified: python/trunk/Doc/library/asynchat.rst ============================================================================== --- python/trunk/Doc/library/asynchat.rst (original) +++ python/trunk/Doc/library/asynchat.rst Fri Sep 19 04:07:22 2008 @@ -278,8 +278,8 @@ class http_request_handler(asynchat.async_chat): - def __init__(self, conn, addr, sessions, log): - asynchat.async_chat.__init__(self, conn=conn) + def __init__(self, sock, addr, sessions, log): + asynchat.async_chat.__init__(self, sock=sock) self.addr = addr self.sessions = sessions self.ibuffer = [] From python-checkins at python.org Fri Sep 19 04:49:27 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 19 Sep 2008 04:49:27 +0200 (CEST) Subject: [Python-checkins] r66511 - sandbox/trunk/2to3/lib2to3/main.py Message-ID: <20080919024927.D9C631E4009@bag.python.org> Author: benjamin.peterson Date: Fri Sep 19 04:49:27 2008 New Revision: 66511 Log: remove a unless if __name__ == '__main__' Modified: sandbox/trunk/2to3/lib2to3/main.py Modified: sandbox/trunk/2to3/lib2to3/main.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/main.py (original) +++ sandbox/trunk/2to3/lib2to3/main.py Fri Sep 19 04:49:27 2008 @@ -80,7 +80,3 @@ # Return error status (0 if rt.errors is zero) return int(bool(rt.errors)) - - -if __name__ == "__main__": - sys.exit(main()) From python-checkins at python.org Fri Sep 19 10:07:48 2008 From: python-checkins at python.org (raymond.hettinger) Date: Fri, 19 Sep 2008 10:07:48 +0200 (CEST) Subject: [Python-checkins] r66512 - python/trunk/Doc/library/functions.rst Message-ID: <20080919080748.D7ACD1E400B@bag.python.org> Author: raymond.hettinger Date: Fri Sep 19 10:07:48 2008 New Revision: 66512 Log: Improve docs for super(). Modified: python/trunk/Doc/library/functions.rst Modified: python/trunk/Doc/library/functions.rst ============================================================================== --- python/trunk/Doc/library/functions.rst (original) +++ python/trunk/Doc/library/functions.rst Fri Sep 19 10:07:48 2008 @@ -1216,13 +1216,28 @@ .. function:: super(type[, object-or-type]) Return a "super" object that acts like the superclass of *type*. + If the second argument is omitted the super object returned is unbound. If the second argument is an object, ``isinstance(obj, type)`` must be true. If the second argument is a type, ``issubclass(type2, type)`` must be true. :func:`super` only works for :term:`new-style class`\es. - A typical use for calling a cooperative superclass method is:: + There are two typical use cases for "super". In a class hierarchy with + single inheritance, "super" can be used to refer to parent classes without + naming them explicitly, thus making the code more maintainable. This use + closely parallels the use of "super" in other programming languages. + + The second use case is to support cooperative multiple inheritence in a + dynamic execution environment. This use case is unique to Python and is + not found in statically compiled languages or languages that only support + single inheritance. This makes in possible to implement "diamond diagrams" + where multiple base classes implement the same method. Good design dictates + that this method have the same calling signature in every case (because the + order of parent calls is determined at runtime and because that order adapts + to changes in the class hierarchy). + + For both use cases, a typical superclass call looks like this:: class C(B): def meth(self, arg): @@ -1230,6 +1245,8 @@ Note that :func:`super` is implemented as part of the binding process for explicit dotted attribute lookups such as ``super(C, self).__getitem__(name)``. + It does so by implementing its own :meth:`__getattribute__` method for searching + parent classes in a predictable order that supports cooperative multiple inheritance. Accordingly, :func:`super` is undefined for implicit lookups using statements or operators such as ``super(C, self)[name]``. From python-checkins at python.org Fri Sep 19 14:39:23 2008 From: python-checkins at python.org (lars.gustaebel) Date: Fri, 19 Sep 2008 14:39:23 +0200 (CEST) Subject: [Python-checkins] r66513 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080919123923.C9D981E4013@bag.python.org> Author: lars.gustaebel Date: Fri Sep 19 14:39:23 2008 New Revision: 66513 Log: Correct information about the tarfile module. Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Fri Sep 19 14:39:23 2008 @@ -2453,18 +2453,18 @@ by calling :func:`sys.getprofile` and :func:`sys.gettrace`. (Contributed by Georg Brandl; :issue:`1648`.) -* The :mod:`tarfile` module now supports POSIX.1-2001 (pax) and - POSIX.1-1988 (ustar) format tarfiles, in addition to the GNU tar - format that was already supported. The default format - is GNU tar; specify the ``format`` parameter to open a file - using a different format:: +* The :mod:`tarfile` module now supports POSIX.1-2001 (pax) tarfiles in + addition to the POSIX.1-1988 (ustar) and GNU tar formats that were + already supported. The default format is GNU tar; specify the + ``format`` parameter to open a file using a different format:: tar = tarfile.open("output.tar", "w", format=tarfile.PAX_FORMAT) - The new ``errors`` parameter specifies an error handling scheme for - character conversions. ``'strict'``, ``'ignore'``, and - ``'replace'`` are the three standard ways Python can handle errors,; + The new ``encoding`` and ``errors`` parameters specify an encoding and + an error handling scheme for character conversions. ``'strict'``, + ``'ignore'``, and ``'replace'`` are the three standard ways Python can + handle errors,; ``'utf-8'`` is a special value that replaces bad characters with their UTF-8 representation. (Character conversions occur because the PAX format supports Unicode filenames, defaulting to UTF-8 encoding.) From python-checkins at python.org Fri Sep 19 17:21:07 2008 From: python-checkins at python.org (martin.v.loewis) Date: Fri, 19 Sep 2008 17:21:07 +0200 (CEST) Subject: [Python-checkins] r66514 - in python/trunk: Misc/NEWS Tools/msi/merge.py Message-ID: <20080919152107.BBBF11E400B@bag.python.org> Author: martin.v.loewis Date: Fri Sep 19 17:21:07 2008 New Revision: 66514 Log: Bug #3887: Package x64 version of CRT for AMD64 Windows binaries. Modified: python/trunk/Misc/NEWS python/trunk/Tools/msi/merge.py Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Fri Sep 19 17:21:07 2008 @@ -15,6 +15,11 @@ Library ------- +Build +----- + +- Bug #3887: Package x64 version of CRT for AMD64 Windows binaries. + What's New in Python 2.6 release candidate 2? ============================================= Modified: python/trunk/Tools/msi/merge.py ============================================================================== --- python/trunk/Tools/msi/merge.py (original) +++ python/trunk/Tools/msi/merge.py Fri Sep 19 17:21:07 2008 @@ -9,7 +9,7 @@ if len(sys.argv)==2: msi = sys.argv[1] if Win64: - modules = ["Microsoft_VC90_CRT_x86.msm", "policy_8_0_Microsoft_VC80_CRT_x86_x64.msm"] + modules = ["Microsoft_VC90_CRT_x86_x64.msm", "policy_8_0_Microsoft_VC80_CRT_x86_x64.msm"] if not msi: msi = "python-%s.amd64.msi" % full_current_version else: modules = ["Microsoft_VC90_CRT_x86.msm","policy_8_0_Microsoft_VC80_CRT_x86.msm"] From buildbot at python.org Fri Sep 19 18:10:55 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 16:10:55 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080919161055.4B0951E4010@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/383 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_email make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 18:15:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 16:15:21 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080919161521.730851E400B@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/933 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: josiah.carlson,lars.gustaebel,martin.v.loewis,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 18:57:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 16:57:27 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080919165727.9756D1E4017@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/618 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 19 21:20:03 2008 From: python-checkins at python.org (martin.v.loewis) Date: Fri, 19 Sep 2008 21:20:03 +0200 (CEST) Subject: [Python-checkins] r66516 - python/trunk/Tools/msi/msi.py Message-ID: <20080919192003.F181F1E400B@bag.python.org> Author: martin.v.loewis Date: Fri Sep 19 21:20:03 2008 New Revision: 66516 Log: Use AMD64 version of CRT in just-for-me installations for Win64 installers. Modified: python/trunk/Tools/msi/msi.py Modified: python/trunk/Tools/msi/msi.py ============================================================================== --- python/trunk/Tools/msi/msi.py (original) +++ python/trunk/Tools/msi/msi.py Fri Sep 19 21:20:03 2008 @@ -843,7 +843,11 @@ def extract_msvcr90(): # Find the redistributable files - dir = os.path.join(os.environ['VS90COMNTOOLS'], r"..\..\VC\redist\x86\Microsoft.VC90.CRT") + if msilib.Win64: + arch = "amd64" + else: + arch = "x86" + dir = os.path.join(os.environ['VS90COMNTOOLS'], r"..\..\VC\redist\%s\Microsoft.VC90.CRT" % arch) result = [] installer = msilib.MakeInstaller() From buildbot at python.org Fri Sep 19 22:23:36 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 20:23:36 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080919202541.9FED71E400B@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/571 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Fri Sep 19 23:06:29 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 21:06:29 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080919210629.DADEF1E400B@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1418 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 20 00:40:40 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 19 Sep 2008 22:40:40 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD 3.0 Message-ID: <20080919224040.9023B1E400F@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%203.0/builds/271 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Sat Sep 20 00:45:47 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 20 Sep 2008 00:45:47 +0200 (CEST) Subject: [Python-checkins] r66519 - sandbox/trunk/release/release.py Message-ID: <20080919224547.223AE1E4013@bag.python.org> Author: benjamin.peterson Date: Sat Sep 20 00:45:46 2008 New Revision: 66519 Log: build and tarball the docs during --export Modified: sandbox/trunk/release/release.py Modified: sandbox/trunk/release/release.py ============================================================================== --- sandbox/trunk/release/release.py (original) +++ sandbox/trunk/release/release.py Sat Sep 20 00:45:46 2008 @@ -64,7 +64,7 @@ help='bump the revision number in important files') p.add_option('-e', '--export', default=False, action='store_true', - help='Export the SVN tag to a tarball') + help='Export the SVN tag to a tarball and build docs') p.add_option('-m', '--branch', default=False, action='store_true', help='create a maintance branch to go along with the release') @@ -198,20 +198,52 @@ finally: os.chdir(old) +def make_dist(): + try: + os.mkdir('dist') + except OSError: + if not os.path.isdir('dist'): + error('dist/ is not a directory') + else: + print 'created dist directory' + +def tarball(source): + """Build tarballs for a directory.""" + print 'Making .tgz' + tgz = source + '.tgz' + bz = source + '.tar.bz2' + run_cmd(['tar cf - %s | gzip -9 > %s' % (source, tgz)]) + print "Making .tar.bz2" + run_cmd(['tar cf - %s | bzip2 -9 > %s' % + (source, bz)]) + print 'Calculating md5 sums' + md5sum_tgz = md5() + with open(tgz, 'rb') as data: + md5sum_tgz.update(data.read()) + md5sum_bz2 = md5() + with open(bz, 'rb') as data: + md5sum_bz2.update(data.read()) + print ' %s %8s %s' % ( + md5sum_tgz.hexdigest(), int(os.path.getsize(tgz)), tgz) + print ' %s %8s %s' % ( + md5sum_bz2.hexdigest(), int(os.path.getsize(bz)), bz) + with open(tgz + '.md5', 'w') as md5file: + print >> md5file, md5sum_tgz.hexdigest() + with open(bz + '.md5', 'w') as md5file: + print >> md5file, md5sum_bz2.hexdigest() + + print 'Signing tarballs' + os.system('gpg -bas ' + tgz) + os.system('gpg -bas ' + bz) + def export(tag): - if not os.path.exists('dist'): - print 'creating dist directory' - os.mkdir('dist') - if not os.path.isdir('dist'): - error('dist/ is not a directory') - tgz = 'dist/Python-%s.tgz' % tag.text - bz = 'dist/Python-%s.tar.bz2' % tag.text + make_dist() old_cur = os.getcwd() with changed_dir('dist'): print 'Exporting tag:', tag.text python = 'Python-%s' % tag.text - run_cmd(['svn', 'export', + run_cmd(['svn', 'export', '-q', 'http://svn.python.org/projects/python/tags/r%s' % tag.nickname, python]) with changed_dir(python): @@ -223,34 +255,25 @@ print 'Touching Python-ast.h and Python-ast.c' for name in ('Include/Python-ast.h', 'Python/Python-ast.c'): os.utime(name, None) - print 'Making .tgz' - run_cmd(['tar cf - %s | gzip -9 > %s.tgz' % (python, python)]) - print "Making .tar.bz2" - run_cmd(['tar cf - %s | bzip2 -9 > %s.tar.bz2' % - (python, python)]) - print 'Calculating md5 sums' - md5sum_tgz = md5() - with open(tgz) as source: - md5sum_tgz.update(source.read()) - md5sum_bz2 = md5() - with open(bz) as source: - md5sum_bz2.update(source.read()) - print ' %s %8s %s' % ( - md5sum_tgz.hexdigest(), int(os.path.getsize(tgz)), tgz) - print ' %s %8s %s' % ( - md5sum_bz2.hexdigest(), int(os.path.getsize(bz)), bz) - with open(tgz + '.md5', 'w') as md5file: - print >> md5file, md5sum_tgz.hexdigest() - with open(bz + '.md5', 'w') as md5file: - print >> md5file, md5sum_bz2.hexdigest() - print 'Signing tarballs' - os.system('gpg -bas ' + tgz) - os.system('gpg -bas ' + bz) + docs = build_docs() + exported_docs = 'Python-%s-docs-html' % tag.text + shutil.copytree(docs, exported_docs) + + tarball(python) + tarball(exported_docs) print '\n**Now extract the archives and run the tests**' print '**You may also want to run make install and re-test**' +def build_docs(): + """Build and tarball the documentation""" + print "Building docs" + with changed_dir('Doc'): + run_cmd(['make', 'html']) + return os.path.abspath('build/html') + + class Tag(object): def __init__(self, tag_name): From buildbot at python.org Sat Sep 20 15:41:40 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 20 Sep 2008 13:41:40 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080920134141.24FAC1E4010@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1420 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 20 15:56:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 20 Sep 2008 13:56:01 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080920135601.2780F1E4004@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/573 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Sun Sep 21 06:06:05 2008 From: python-checkins at python.org (thomas.lee) Date: Sun, 21 Sep 2008 06:06:05 +0200 (CEST) Subject: [Python-checkins] r66521 - in python/branches/tlee-ast-optimize: Demo/classes/Dates.py Demo/classes/bitvec.py Demo/curses/life.py Demo/curses/ncurses.py Demo/md5test/md5driver.py Demo/pdist/cmptree.py Demo/rpc/nfsclient.py Demo/rpc/rpc.py Demo/rpc/xdr.py Demo/scripts/fact.py Demo/scripts/ftpstats.py Demo/scripts/lpwatch.py Demo/scripts/markov.py Demo/scripts/newslist.py Demo/scripts/pi.py Demo/scripts/unbirthday.py Demo/sockets/ftp.py Demo/threads/Coroutine.py Demo/threads/Generator.py Demo/tkinter/guido/hanoi.py Demo/tkinter/guido/solitaire.py Demo/tkinter/guido/sortvisu.py Doc/Makefile Doc/distutils/apiref.rst Doc/distutils/builtdist.rst Doc/distutils/commandref.rst Doc/distutils/setupscript.rst Doc/extending/embedding.rst Doc/glossary.rst Doc/howto/index.rst Doc/howto/sockets.rst Doc/howto/unicode.rst Doc/howto/webservers.rst Doc/library/2to3.rst Doc/library/asynchat.rst Doc/library/binhex.rst Doc/library/carbon.rst Doc/library/cgihttpserver.rst Doc/library/collections.rst Doc/library/compileall.rst Doc/library/framework.rst Doc/library/functions.rst Doc/library/getopt.rst Doc/library/idle.rst Doc/library/imp.rst Doc/library/index.rst Doc/library/mac.rst Doc/library/macos.rst Doc/library/macpath.rst Doc/library/multiprocessing.rst Doc/library/optparse.rst Doc/library/os.path.rst Doc/library/os.rst Doc/library/plistlib.rst Doc/library/shutil.rst Doc/library/signal.rst Doc/library/ssl.rst Doc/library/stdtypes.rst Doc/library/string.rst Doc/library/subprocess.rst Doc/library/sys.rst Doc/library/test.rst Doc/library/time.rst Doc/library/tkinter.rst Doc/library/unicodedata.rst Doc/library/warnings.rst Doc/library/webbrowser.rst Doc/reference/index.rst Doc/reference/lexical_analysis.rst Doc/tutorial/appetite.rst Doc/tutorial/classes.rst Doc/tutorial/controlflow.rst Doc/tutorial/errors.rst Doc/tutorial/index.rst Doc/tutorial/inputoutput.rst Doc/tutorial/interpreter.rst Doc/tutorial/introduction.rst Doc/using/cmdline.rst Doc/using/mac.rst Doc/whatsnew/2.6.rst Include/patchlevel.h Lib/asynchat.py Lib/bsddb/test/test_early_close.py Lib/bsddb/test/test_replication.py Lib/cgi.py Lib/distutils/__init__.py Lib/distutils/msvc9compiler.py Lib/idlelib/idlever.py Lib/lib2to3 Lib/lib2to3/Grammar.txt Lib/lib2to3/fixes/fix_metaclass.py Lib/lib2to3/fixes/fix_print.py Lib/lib2to3/tests/data/py2_test_grammar.py Lib/lib2to3/tests/data/py3_test_grammar.py Lib/lib2to3/tests/test_fixers.py Lib/mimetools.py Lib/ssl.py Lib/test/test___all__.py Lib/test/test_cgi.py Lib/test/test_exceptions.py Lib/test/test_hashlib.py Lib/test/test_hmac.py Lib/test/test_imp.py Lib/test/test_import.py Lib/test/test_logging.py Lib/test/test_long.py Lib/test/test_macostools.py Lib/test/test_normalization.py Lib/test/test_os.py Lib/test/test_pep352.py Lib/test/test_py3kwarn.py Lib/test/test_random.py Lib/test/test_re.py Lib/test/test_ssl.py Lib/test/test_struct.py Lib/test/test_structmembers.py Lib/test/test_sundry.py Lib/test/test_support.py Lib/test/test_symtable.py Lib/test/test_unicodedata.py Lib/test/test_urllib.py Lib/test/test_urllibnet.py Lib/test/test_userstring.py Lib/test/test_warnings.py Lib/test/test_weakref.py Lib/warnings.py Misc/NEWS Misc/RPM/python-2.6.spec Misc/find_recursionlimit.py Modules/_collectionsmodule.c Modules/_hashopenssl.c Modules/_multiprocessing/connection.h Modules/_multiprocessing/multiprocessing.h Modules/_sqlite/connection.c Modules/_sqlite/cursor.c Modules/_sqlite/microprotocols.c Modules/_sqlite/microprotocols.h Modules/_sqlite/module.c Modules/_sqlite/statement.c Modules/_sqlite/util.c Modules/_sqlite/util.h Modules/_sre.c Modules/cPickle.c Modules/config.c.in Modules/unicodedata.c Modules/unicodedata_db.h Modules/unicodename_db.h Objects/floatobject.c Objects/obmalloc.c Objects/unicodectype.c Objects/unicodeobject.c Objects/unicodetype_db.h Objects/weakrefobject.c Parser/asdl_c.py Python/Python-ast.c README Tools/msi/crtlicense.txt Tools/msi/merge.py Tools/msi/msi.py Tools/msi/uuids.py Tools/unicode/makeunicodedata.py configure configure.in Message-ID: <20080921040605.076E91E4013@bag.python.org> Author: thomas.lee Date: Sun Sep 21 06:05:44 2008 New Revision: 66521 Log: Merged revisions 66293-66520 via svnmerge from svn+ssh://pythondev at svn.python.org/python/trunk ................ r66294 | georg.brandl | 2008-09-08 03:00:17 +1000 (Mon, 08 Sep 2008) | 2 lines Add a new howto about Python and the web, by Marek Kubica. ................ r66295 | gregory.p.smith | 2008-09-08 05:18:16 +1000 (Mon, 08 Sep 2008) | 2 lines bugfix to r66283 (see issue #1204). ................ r66296 | gregory.p.smith | 2008-09-08 05:19:04 +1000 (Mon, 08 Sep 2008) | 2 lines reran autoconf ................ r66301 | facundo.batista | 2008-09-08 10:20:28 +1000 (Mon, 08 Sep 2008) | 4 lines Issue 3801. Fixing a dumb error in the deprecated parse_qsl() function. Tests added. ................ r66304 | martin.v.loewis | 2008-09-08 22:02:45 +1000 (Mon, 08 Sep 2008) | 2 lines Allow passing the MSI file name to merge.py. ................ r66305 | martin.v.loewis | 2008-09-08 23:50:10 +1000 (Mon, 08 Sep 2008) | 3 lines Issue #2271: Set SecureCustomProperties so that installation will properly use the TARGETDIR even for unprivileged users. ................ r66306 | mark.summerfield | 2008-09-09 00:45:37 +1000 (Tue, 09 Sep 2008) | 3 lines Added xrefs to each other. ................ r66307 | martin.v.loewis | 2008-09-09 02:15:38 +1000 (Tue, 09 Sep 2008) | 1 line Add UUIDs for upcoming releases ................ r66310 | bill.janssen | 2008-09-09 02:37:24 +1000 (Tue, 09 Sep 2008) | 1 line incorporate fixes from issue 3162; SSL doc patch ................ r66316 | hirokazu.yamamoto | 2008-09-09 09:03:47 +1000 (Tue, 09 Sep 2008) | 2 lines Issue #3804: Added test for Issue #2222. Reviewed by Benjamin Peterson. ................ r66319 | hirokazu.yamamoto | 2008-09-09 09:38:42 +1000 (Tue, 09 Sep 2008) | 2 lines Issue #3806: LockTests in test_imp should be skipped when thread is not available. Reviewed by Benjamin Peterson. ................ r66321 | brett.cannon | 2008-09-09 10:49:16 +1000 (Tue, 09 Sep 2008) | 7 lines warnings.catch_warnings() now returns a list or None instead of the custom WarningsRecorder object. This makes the API simpler to use as no special object must be learned. Closes issue 3781. Review by Benjamin Peterson. ................ r66332 | amaury.forgeotdarc | 2008-09-09 17:24:30 +1000 (Tue, 09 Sep 2008) | 6 lines #3777: long(4.2) returned an int, and broke backward compatibility. the __long__ slot is allowed to return either int or long, but the behaviour of float objects should not change between 2.5 and 2.6. Reviewed by Benjamin Peterson ................ r66337 | vinay.sajip | 2008-09-09 23:42:08 +1000 (Tue, 09 Sep 2008) | 1 line Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. ................ r66347 | georg.brandl | 2008-09-10 05:26:00 +1000 (Wed, 10 Sep 2008) | 2 lines Fix varname in docstring. #3822. ................ r66350 | georg.brandl | 2008-09-10 06:28:31 +1000 (Wed, 10 Sep 2008) | 2 lines #3472: update Mac-bundled Python version info. ................ r66352 | benjamin.peterson | 2008-09-10 06:55:01 +1000 (Wed, 10 Sep 2008) | 4 lines Fix #3634 invalid return value from _weakref.ref(Exception).__init__ Reviewers: Amaury, Antoine, Benjamin ................ r66358 | benjamin.peterson | 2008-09-10 09:16:48 +1000 (Wed, 10 Sep 2008) | 1 line use the latest pygments version ................ r66362 | martin.v.loewis | 2008-09-10 23:38:12 +1000 (Wed, 10 Sep 2008) | 3 lines Issue #3811: The Unicode database was updated to 5.1. Reviewed by Fredrik Lundh and Marc-Andre Lemburg. ................ r66364 | guido.van.rossum | 2008-09-11 00:27:00 +1000 (Thu, 11 Sep 2008) | 3 lines - Issue #3629: Fix sre "bytecode" validator for an end case. Reviewed by Amaury. ................ r66367 | martin.v.loewis | 2008-09-11 04:43:49 +1000 (Thu, 11 Sep 2008) | 2 lines Update to test Unicode 5.1. ................ r66369 | martin.v.loewis | 2008-09-11 05:16:35 +1000 (Thu, 11 Sep 2008) | 4 lines Read unidata_version from unicodedata module. Delete old NormalizationTest.txt if it doesn't match unidata_version. ................ r66377 | amaury.forgeotdarc | 2008-09-11 08:04:45 +1000 (Thu, 11 Sep 2008) | 8 lines #3743: PY_FORMAT_SIZE_T is designed for the OS "printf" functions, not for PyString_FromFormat which has an independent implementation, and uses "%zd". This makes a difference on win64, where printf needs "%Id" to display 64bit values. For example, queue.__repr__ was incorrect. Reviewed by Martin von Loewis. ................ r66379 | benjamin.peterson | 2008-09-11 08:28:00 +1000 (Thu, 11 Sep 2008) | 1 line update asdl_c.py from r66377 ................ r66383 | martin.v.loewis | 2008-09-11 16:53:30 +1000 (Thu, 11 Sep 2008) | 3 lines Issue #3642: Suppress warning in obmalloc when size_t is larger than uint. Reverts r65975. Reviewed by Brett Cannon. ................ r66386 | nick.coghlan | 2008-09-11 22:11:06 +1000 (Thu, 11 Sep 2008) | 1 line Issue #3781: Final cleanup of warnings.catch_warnings and its usage in the test suite. Closes issue w.r.t. 2.6 (R: Brett Cannon) ................ r66390 | amaury.forgeotdarc | 2008-09-12 06:56:13 +1000 (Fri, 12 Sep 2008) | 4 lines #3640: Correct a crash in cPickle on 64bit platforms, in the case of deeply nested lists or dicts. Reviewed by Martin von Loewis. ................ r66394 | benjamin.peterson | 2008-09-12 08:04:02 +1000 (Fri, 12 Sep 2008) | 1 line fix typo ................ r66404 | gerhard.haering | 2008-09-12 23:54:06 +1000 (Fri, 12 Sep 2008) | 2 lines sqlite3 module: Mark iterdump() method as "Non-standard" like all the other methods not found in DB-API. ................ r66412 | gerhard.haering | 2008-09-13 04:58:57 +1000 (Sat, 13 Sep 2008) | 2 lines Fixes issue #3103. In the sqlite3 module, made one more function static. All renaming public symbos now have the pysqlite prefix to avoid name clashes. This at least once created problems where the same symbol name appeared somewhere in Apache and the sqlite3 module was used from mod_python. ................ r66414 | gerhard.haering | 2008-09-13 08:33:22 +1000 (Sat, 13 Sep 2008) | 2 lines Issue #3846: Release GIL during calls to sqlite3_prepare. This improves concurrent access to the same database file from multiple threads/processes. ................ r66415 | barry.warsaw | 2008-09-13 09:25:57 +1000 (Sat, 13 Sep 2008) | 1 line Bumping to 2.6rc1 ................ r66416 | barry.warsaw | 2008-09-13 09:35:48 +1000 (Sat, 13 Sep 2008) | 1 line Fix the release level ................ r66422 | barry.warsaw | 2008-09-13 11:12:18 +1000 (Sat, 13 Sep 2008) | 1 line post release updates ................ r66424 | andrew.kuchling | 2008-09-13 11:22:08 +1000 (Sat, 13 Sep 2008) | 1 line #687648 from Robert Schuppenies: use classic division. (RM Barry gave permission to update the demos.) ................ r66425 | andrew.kuchling | 2008-09-13 11:27:33 +1000 (Sat, 13 Sep 2008) | 1 line #687648 from Robert Schuppenies: use classic division. From me: don't use string exception; flush stdout after printing ................ r66426 | andrew.kuchling | 2008-09-13 11:34:41 +1000 (Sat, 13 Sep 2008) | 1 line #687648 from Robert Schuppenies: use classic division. From me: don't use string exception; add __main__ section ................ r66427 | andrew.kuchling | 2008-09-13 11:42:55 +1000 (Sat, 13 Sep 2008) | 1 line #687648 from Robert Schuppenies: use classic division. From me: remove two stray semicolons ................ r66428 | andrew.kuchling | 2008-09-13 11:43:28 +1000 (Sat, 13 Sep 2008) | 1 line #687648 from Robert Schuppenies: use classic division. ................ r66429 | andrew.kuchling | 2008-09-13 11:47:02 +1000 (Sat, 13 Sep 2008) | 1 line Remove semicolon ................ r66430 | andrew.kuchling | 2008-09-13 11:48:36 +1000 (Sat, 13 Sep 2008) | 1 line Subclass exception ................ r66431 | andrew.kuchling | 2008-09-13 11:56:56 +1000 (Sat, 13 Sep 2008) | 1 line Fix SyntaxError ................ r66432 | andrew.kuchling | 2008-09-13 11:57:25 +1000 (Sat, 13 Sep 2008) | 1 line Update uses of string exceptions ................ r66433 | andrew.kuchling | 2008-09-13 12:08:30 +1000 (Sat, 13 Sep 2008) | 1 line Use title case ................ r66434 | andrew.kuchling | 2008-09-13 12:09:15 +1000 (Sat, 13 Sep 2008) | 1 line Remove extra 'the'; the following title includes it ................ r66435 | andrew.kuchling | 2008-09-13 12:11:51 +1000 (Sat, 13 Sep 2008) | 1 line #3288: Document as_integer_ratio ................ r66436 | andrew.kuchling | 2008-09-13 12:14:15 +1000 (Sat, 13 Sep 2008) | 1 line Use title case ................ r66439 | martin.v.loewis | 2008-09-13 18:11:57 +1000 (Sat, 13 Sep 2008) | 1 line Issue #3833: Use a different upgrade code for Win64 installers. ................ r66441 | martin.v.loewis | 2008-09-13 18:36:22 +1000 (Sat, 13 Sep 2008) | 1 line Change product code of Win64 installer to allow simultaneous installation on Win32 and Win64; also change product name to be able to distinguish the two in ARP. ................ r66447 | georg.brandl | 2008-09-14 03:18:11 +1000 (Sun, 14 Sep 2008) | 2 lines Incorporate some suggestions by Tait Stevens. ................ r66450 | benjamin.peterson | 2008-09-14 03:31:08 +1000 (Sun, 14 Sep 2008) | 1 line remove duplicate target ................ r66452 | georg.brandl | 2008-09-14 03:41:16 +1000 (Sun, 14 Sep 2008) | 2 lines Remove things specific to the old Macintosh, and spell "Mac OS X" consistently. ................ r66453 | benjamin.peterson | 2008-09-14 03:43:19 +1000 (Sun, 14 Sep 2008) | 24 lines Merged revisions 66191,66418,66438,66445 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66191 | benjamin.peterson | 2008-09-03 17:00:52 -0500 (Wed, 03 Sep 2008) | 1 line update the Grammar file after recent syntax changes ........ r66418 | benjamin.peterson | 2008-09-12 18:49:48 -0500 (Fri, 12 Sep 2008) | 1 line a trival fix to get a few more print corner cases #2899 ........ r66438 | benjamin.peterson | 2008-09-12 21:32:30 -0500 (Fri, 12 Sep 2008) | 5 lines add Jack Diederich's fixer for metaclass syntax #2366 my contribution to this was adding a few tests and fixing a few bugs I also reviewed it (Jack is a committer) ........ r66445 | benjamin.peterson | 2008-09-13 10:50:00 -0500 (Sat, 13 Sep 2008) | 1 line add a few more tests concerning int literals and weird spacing ........ ................ r66457 | antoine.pitrou | 2008-09-14 06:30:30 +1000 (Sun, 14 Sep 2008) | 5 lines Issue #3850: Misc/find_recursionlimit.py was broken. Reviewed by A.M. Kuchling. ................ r66458 | benjamin.peterson | 2008-09-14 08:54:43 +1000 (Sun, 14 Sep 2008) | 1 line fix a name issue; note all doc files should be encoded in utf8 ................ r66459 | benjamin.peterson | 2008-09-15 02:02:22 +1000 (Mon, 15 Sep 2008) | 1 line clarify that radix for int is not 'guessed' ................ r66460 | martin.v.loewis | 2008-09-15 06:22:39 +1000 (Mon, 15 Sep 2008) | 1 line Issue #3617: Include a licensing statement regarding the Microsoft C runtime in the Windows installer. ................ r66461 | martin.v.loewis | 2008-09-15 06:25:40 +1000 (Mon, 15 Sep 2008) | 1 line Set eol-style to native. ................ r66463 | martin.v.loewis | 2008-09-15 11:30:21 +1000 (Mon, 15 Sep 2008) | 2 lines Fix grammar. ................ r66465 | skip.montanaro | 2008-09-15 12:03:05 +1000 (Mon, 15 Sep 2008) | 3 lines Review usage. Fix a mistake in the new-style class definition. Add a couple new definitions (CPython and virtual machine). ................ r66466 | skip.montanaro | 2008-09-15 12:19:53 +1000 (Mon, 15 Sep 2008) | 2 lines Pick up a few more definitions from the glossary on the wiki. ................ r66467 | benjamin.peterson | 2008-09-15 12:53:23 +1000 (Mon, 15 Sep 2008) | 1 line mention that object.__init__ no longer takes arbitrary args and kwargs ................ r66468 | andrew.kuchling | 2008-09-15 23:08:32 +1000 (Mon, 15 Sep 2008) | 1 line Rewrite item a bit ................ r66473 | benjamin.peterson | 2008-09-16 09:55:01 +1000 (Tue, 16 Sep 2008) | 9 lines Merged revisions 66470 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66470 | benjamin.peterson | 2008-09-15 18:29:43 -0500 (Mon, 15 Sep 2008) | 1 line don't use os.linesep for newlines; it breaks tests on windows ........ ................ r66483 | georg.brandl | 2008-09-16 20:17:45 +1000 (Tue, 16 Sep 2008) | 2 lines Fix typo. ................ r66484 | benjamin.peterson | 2008-09-17 07:20:28 +1000 (Wed, 17 Sep 2008) | 2 lines be less wordy ................ r66485 | georg.brandl | 2008-09-17 18:45:54 +1000 (Wed, 17 Sep 2008) | 2 lines #3888: add some deprecated modules in whatsnew. ................ r66487 | skip.montanaro | 2008-09-17 21:50:36 +1000 (Wed, 17 Sep 2008) | 2 lines usage ................ r66488 | andrew.kuchling | 2008-09-17 22:57:04 +1000 (Wed, 17 Sep 2008) | 1 line Markup fixes ................ r66489 | andrew.kuchling | 2008-09-17 22:58:22 +1000 (Wed, 17 Sep 2008) | 2 lines Remove comment about improvement: pystone is about the same, and the improvements seem to be difficult to quantify ................ r66490 | andrew.kuchling | 2008-09-17 23:04:53 +1000 (Wed, 17 Sep 2008) | 1 line Note sqlite3 version; move item ................ r66491 | benjamin.peterson | 2008-09-18 07:54:56 +1000 (Thu, 18 Sep 2008) | 1 line document compileall command flags ................ r66496 | benjamin.peterson | 2008-09-18 11:22:16 +1000 (Thu, 18 Sep 2008) | 1 line fix possible integer overflows in _hashopenssl #3886 ................ r66498 | mark.hammond | 2008-09-18 12:47:35 +1000 (Thu, 18 Sep 2008) | 4 lines On Windows, temporarily disable the bsddb test referenced in bug 3892. We do yell to stderr and the bug is marked as a blocker. Reviewed by barry in #python-dev. ................ r66502 | mark.hammond | 2008-09-18 13:51:46 +1000 (Thu, 18 Sep 2008) | 3 lines avoid putting unicode objects in the environment causing later test failures. As discussed on #python-dev ................ r66504 | barry.warsaw | 2008-09-18 14:33:43 +1000 (Thu, 18 Sep 2008) | 1 line Bumping to 2.6rc2 ................ r66506 | barry.warsaw | 2008-09-18 15:34:31 +1000 (Thu, 18 Sep 2008) | 1 line done with 2.6rc2 ................ r66508 | benjamin.peterson | 2008-09-19 09:20:28 +1000 (Fri, 19 Sep 2008) | 1 line tabify ................ r66510 | josiah.carlson | 2008-09-19 12:07:22 +1000 (Fri, 19 Sep 2008) | 2 lines Fix for documentation bug. Fixes issue 3904. ................ r66512 | raymond.hettinger | 2008-09-19 18:07:48 +1000 (Fri, 19 Sep 2008) | 1 line Improve docs for super(). ................ r66513 | lars.gustaebel | 2008-09-19 22:39:23 +1000 (Fri, 19 Sep 2008) | 2 lines Correct information about the tarfile module. ................ r66514 | martin.v.loewis | 2008-09-20 01:21:07 +1000 (Sat, 20 Sep 2008) | 2 lines Bug #3887: Package x64 version of CRT for AMD64 Windows binaries. ................ r66516 | martin.v.loewis | 2008-09-20 05:20:03 +1000 (Sat, 20 Sep 2008) | 1 line Use AMD64 version of CRT in just-for-me installations for Win64 installers. ................ Added: python/branches/tlee-ast-optimize/Doc/howto/webservers.rst - copied unchanged from r66516, /python/trunk/Doc/howto/webservers.rst python/branches/tlee-ast-optimize/Lib/lib2to3/fixes/fix_metaclass.py - copied unchanged from r66516, /python/trunk/Lib/lib2to3/fixes/fix_metaclass.py python/branches/tlee-ast-optimize/Tools/msi/crtlicense.txt - copied unchanged from r66516, /python/trunk/Tools/msi/crtlicense.txt Modified: python/branches/tlee-ast-optimize/ (props changed) python/branches/tlee-ast-optimize/Demo/classes/Dates.py python/branches/tlee-ast-optimize/Demo/classes/bitvec.py python/branches/tlee-ast-optimize/Demo/curses/life.py python/branches/tlee-ast-optimize/Demo/curses/ncurses.py python/branches/tlee-ast-optimize/Demo/md5test/md5driver.py python/branches/tlee-ast-optimize/Demo/pdist/cmptree.py python/branches/tlee-ast-optimize/Demo/rpc/nfsclient.py python/branches/tlee-ast-optimize/Demo/rpc/rpc.py python/branches/tlee-ast-optimize/Demo/rpc/xdr.py python/branches/tlee-ast-optimize/Demo/scripts/fact.py python/branches/tlee-ast-optimize/Demo/scripts/ftpstats.py python/branches/tlee-ast-optimize/Demo/scripts/lpwatch.py python/branches/tlee-ast-optimize/Demo/scripts/markov.py python/branches/tlee-ast-optimize/Demo/scripts/newslist.py python/branches/tlee-ast-optimize/Demo/scripts/pi.py python/branches/tlee-ast-optimize/Demo/scripts/unbirthday.py python/branches/tlee-ast-optimize/Demo/sockets/ftp.py python/branches/tlee-ast-optimize/Demo/threads/Coroutine.py python/branches/tlee-ast-optimize/Demo/threads/Generator.py python/branches/tlee-ast-optimize/Demo/tkinter/guido/hanoi.py python/branches/tlee-ast-optimize/Demo/tkinter/guido/solitaire.py python/branches/tlee-ast-optimize/Demo/tkinter/guido/sortvisu.py python/branches/tlee-ast-optimize/Doc/Makefile python/branches/tlee-ast-optimize/Doc/distutils/apiref.rst python/branches/tlee-ast-optimize/Doc/distutils/builtdist.rst python/branches/tlee-ast-optimize/Doc/distutils/commandref.rst python/branches/tlee-ast-optimize/Doc/distutils/setupscript.rst python/branches/tlee-ast-optimize/Doc/extending/embedding.rst python/branches/tlee-ast-optimize/Doc/glossary.rst python/branches/tlee-ast-optimize/Doc/howto/index.rst python/branches/tlee-ast-optimize/Doc/howto/sockets.rst python/branches/tlee-ast-optimize/Doc/howto/unicode.rst python/branches/tlee-ast-optimize/Doc/library/2to3.rst python/branches/tlee-ast-optimize/Doc/library/asynchat.rst python/branches/tlee-ast-optimize/Doc/library/binhex.rst python/branches/tlee-ast-optimize/Doc/library/carbon.rst python/branches/tlee-ast-optimize/Doc/library/cgihttpserver.rst python/branches/tlee-ast-optimize/Doc/library/collections.rst python/branches/tlee-ast-optimize/Doc/library/compileall.rst python/branches/tlee-ast-optimize/Doc/library/framework.rst python/branches/tlee-ast-optimize/Doc/library/functions.rst python/branches/tlee-ast-optimize/Doc/library/getopt.rst python/branches/tlee-ast-optimize/Doc/library/idle.rst python/branches/tlee-ast-optimize/Doc/library/imp.rst python/branches/tlee-ast-optimize/Doc/library/index.rst python/branches/tlee-ast-optimize/Doc/library/mac.rst python/branches/tlee-ast-optimize/Doc/library/macos.rst python/branches/tlee-ast-optimize/Doc/library/macpath.rst python/branches/tlee-ast-optimize/Doc/library/multiprocessing.rst python/branches/tlee-ast-optimize/Doc/library/optparse.rst python/branches/tlee-ast-optimize/Doc/library/os.path.rst python/branches/tlee-ast-optimize/Doc/library/os.rst python/branches/tlee-ast-optimize/Doc/library/plistlib.rst python/branches/tlee-ast-optimize/Doc/library/shutil.rst python/branches/tlee-ast-optimize/Doc/library/signal.rst python/branches/tlee-ast-optimize/Doc/library/ssl.rst python/branches/tlee-ast-optimize/Doc/library/stdtypes.rst python/branches/tlee-ast-optimize/Doc/library/string.rst python/branches/tlee-ast-optimize/Doc/library/subprocess.rst python/branches/tlee-ast-optimize/Doc/library/sys.rst python/branches/tlee-ast-optimize/Doc/library/test.rst python/branches/tlee-ast-optimize/Doc/library/time.rst python/branches/tlee-ast-optimize/Doc/library/tkinter.rst python/branches/tlee-ast-optimize/Doc/library/unicodedata.rst python/branches/tlee-ast-optimize/Doc/library/warnings.rst python/branches/tlee-ast-optimize/Doc/library/webbrowser.rst python/branches/tlee-ast-optimize/Doc/reference/index.rst python/branches/tlee-ast-optimize/Doc/reference/lexical_analysis.rst python/branches/tlee-ast-optimize/Doc/tutorial/appetite.rst python/branches/tlee-ast-optimize/Doc/tutorial/classes.rst python/branches/tlee-ast-optimize/Doc/tutorial/controlflow.rst python/branches/tlee-ast-optimize/Doc/tutorial/errors.rst python/branches/tlee-ast-optimize/Doc/tutorial/index.rst python/branches/tlee-ast-optimize/Doc/tutorial/inputoutput.rst python/branches/tlee-ast-optimize/Doc/tutorial/interpreter.rst python/branches/tlee-ast-optimize/Doc/tutorial/introduction.rst python/branches/tlee-ast-optimize/Doc/using/cmdline.rst python/branches/tlee-ast-optimize/Doc/using/mac.rst python/branches/tlee-ast-optimize/Doc/whatsnew/2.6.rst python/branches/tlee-ast-optimize/Include/patchlevel.h python/branches/tlee-ast-optimize/Lib/asynchat.py python/branches/tlee-ast-optimize/Lib/bsddb/test/test_early_close.py python/branches/tlee-ast-optimize/Lib/bsddb/test/test_replication.py python/branches/tlee-ast-optimize/Lib/cgi.py python/branches/tlee-ast-optimize/Lib/distutils/__init__.py python/branches/tlee-ast-optimize/Lib/distutils/msvc9compiler.py python/branches/tlee-ast-optimize/Lib/idlelib/idlever.py python/branches/tlee-ast-optimize/Lib/lib2to3/ (props changed) python/branches/tlee-ast-optimize/Lib/lib2to3/Grammar.txt python/branches/tlee-ast-optimize/Lib/lib2to3/fixes/fix_print.py python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py2_test_grammar.py python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py3_test_grammar.py python/branches/tlee-ast-optimize/Lib/lib2to3/tests/test_fixers.py python/branches/tlee-ast-optimize/Lib/mimetools.py python/branches/tlee-ast-optimize/Lib/ssl.py python/branches/tlee-ast-optimize/Lib/test/test___all__.py python/branches/tlee-ast-optimize/Lib/test/test_cgi.py python/branches/tlee-ast-optimize/Lib/test/test_exceptions.py python/branches/tlee-ast-optimize/Lib/test/test_hashlib.py python/branches/tlee-ast-optimize/Lib/test/test_hmac.py python/branches/tlee-ast-optimize/Lib/test/test_imp.py python/branches/tlee-ast-optimize/Lib/test/test_import.py python/branches/tlee-ast-optimize/Lib/test/test_logging.py python/branches/tlee-ast-optimize/Lib/test/test_long.py python/branches/tlee-ast-optimize/Lib/test/test_macostools.py python/branches/tlee-ast-optimize/Lib/test/test_normalization.py python/branches/tlee-ast-optimize/Lib/test/test_os.py python/branches/tlee-ast-optimize/Lib/test/test_pep352.py python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py python/branches/tlee-ast-optimize/Lib/test/test_random.py python/branches/tlee-ast-optimize/Lib/test/test_re.py python/branches/tlee-ast-optimize/Lib/test/test_ssl.py python/branches/tlee-ast-optimize/Lib/test/test_struct.py python/branches/tlee-ast-optimize/Lib/test/test_structmembers.py python/branches/tlee-ast-optimize/Lib/test/test_sundry.py python/branches/tlee-ast-optimize/Lib/test/test_support.py python/branches/tlee-ast-optimize/Lib/test/test_symtable.py python/branches/tlee-ast-optimize/Lib/test/test_unicodedata.py python/branches/tlee-ast-optimize/Lib/test/test_urllib.py python/branches/tlee-ast-optimize/Lib/test/test_urllibnet.py python/branches/tlee-ast-optimize/Lib/test/test_userstring.py python/branches/tlee-ast-optimize/Lib/test/test_warnings.py python/branches/tlee-ast-optimize/Lib/test/test_weakref.py python/branches/tlee-ast-optimize/Lib/warnings.py python/branches/tlee-ast-optimize/Misc/NEWS python/branches/tlee-ast-optimize/Misc/RPM/python-2.6.spec python/branches/tlee-ast-optimize/Misc/find_recursionlimit.py python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c python/branches/tlee-ast-optimize/Modules/_hashopenssl.c python/branches/tlee-ast-optimize/Modules/_multiprocessing/connection.h python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.h python/branches/tlee-ast-optimize/Modules/_sqlite/connection.c python/branches/tlee-ast-optimize/Modules/_sqlite/cursor.c python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.c python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.h python/branches/tlee-ast-optimize/Modules/_sqlite/module.c python/branches/tlee-ast-optimize/Modules/_sqlite/statement.c python/branches/tlee-ast-optimize/Modules/_sqlite/util.c python/branches/tlee-ast-optimize/Modules/_sqlite/util.h python/branches/tlee-ast-optimize/Modules/_sre.c python/branches/tlee-ast-optimize/Modules/cPickle.c python/branches/tlee-ast-optimize/Modules/config.c.in python/branches/tlee-ast-optimize/Modules/unicodedata.c python/branches/tlee-ast-optimize/Modules/unicodedata_db.h python/branches/tlee-ast-optimize/Modules/unicodename_db.h python/branches/tlee-ast-optimize/Objects/floatobject.c python/branches/tlee-ast-optimize/Objects/obmalloc.c python/branches/tlee-ast-optimize/Objects/unicodectype.c python/branches/tlee-ast-optimize/Objects/unicodeobject.c python/branches/tlee-ast-optimize/Objects/unicodetype_db.h python/branches/tlee-ast-optimize/Objects/weakrefobject.c python/branches/tlee-ast-optimize/Parser/asdl_c.py python/branches/tlee-ast-optimize/Python/Python-ast.c python/branches/tlee-ast-optimize/README python/branches/tlee-ast-optimize/Tools/msi/merge.py python/branches/tlee-ast-optimize/Tools/msi/msi.py python/branches/tlee-ast-optimize/Tools/msi/uuids.py python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py python/branches/tlee-ast-optimize/configure python/branches/tlee-ast-optimize/configure.in Modified: python/branches/tlee-ast-optimize/Demo/classes/Dates.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/classes/Dates.py (original) +++ python/branches/tlee-ast-optimize/Demo/classes/Dates.py Sun Sep 21 06:05:44 2008 @@ -68,7 +68,7 @@ return 365 + _is_leap(year) def _days_before_year(year): # number of days before year - return year*365L + (year+3)/4 - (year+99)/100 + (year+399)/400 + return year*365L + (year+3)//4 - (year+99)//100 + (year+399)//400 def _days_in_month(month, year): # number of days in month of year if month == 2 and _is_leap(year): return 29 @@ -92,9 +92,9 @@ del ans.ord, ans.month, ans.day, ans.year # un-initialize it ans.ord = n - n400 = (n-1)/_DI400Y # # of 400-year blocks preceding + n400 = (n-1)//_DI400Y # # of 400-year blocks preceding year, n = 400 * n400, n - _DI400Y * n400 - more = n / 365 + more = n // 365 dby = _days_before_year(more) if dby >= n: more = more - 1 @@ -104,7 +104,7 @@ try: year = int(year) # chop to int, if it fits except (ValueError, OverflowError): pass - month = min(n/29 + 1, 12) + month = min(n//29 + 1, 12) dbm = _days_before_month(month, year) if dbm >= n: month = month - 1 @@ -174,7 +174,9 @@ local = time.localtime(time.time()) return Date(local[1], local[2], local[0]) -DateTestError = 'DateTestError' +class DateTestError(Exception): + pass + def test(firstyear, lastyear): a = Date(9,30,1913) b = Date(9,30,1914) @@ -220,3 +222,6 @@ (fd.month,fd.day,fd.year,ld.month,ld.day,ld.year): raise DateTestError, ('num->date failed', y) y = y + 1 + +if __name__ == '__main__': + test(1850, 2150) Modified: python/branches/tlee-ast-optimize/Demo/classes/bitvec.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/classes/bitvec.py (original) +++ python/branches/tlee-ast-optimize/Demo/classes/bitvec.py Sun Sep 21 06:05:44 2008 @@ -6,7 +6,8 @@ import sys; rprt = sys.stderr.write #for debugging -error = 'bitvec.error' +class error(Exception): + pass def _check_value(value): @@ -20,7 +21,7 @@ mant, l = math.frexp(float(param)) bitmask = 1L << l if bitmask <= param: - raise 'FATAL', '(param, l) = %r' % ((param, l),) + raise RuntimeError('(param, l) = %r' % ((param, l),)) while l: bitmask = bitmask >> 1 if param & bitmask: Modified: python/branches/tlee-ast-optimize/Demo/curses/life.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/curses/life.py (original) +++ python/branches/tlee-ast-optimize/Demo/curses/life.py Sun Sep 21 06:05:44 2008 @@ -158,7 +158,7 @@ board.display(update_board=False) # xpos, ypos are the cursor's position - xpos, ypos = board.X/2, board.Y/2 + xpos, ypos = board.X//2, board.Y//2 # Main loop: while (1): Modified: python/branches/tlee-ast-optimize/Demo/curses/ncurses.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/curses/ncurses.py (original) +++ python/branches/tlee-ast-optimize/Demo/curses/ncurses.py Sun Sep 21 06:05:44 2008 @@ -77,38 +77,38 @@ stdscr.addstr("%d" % ((y + x) % 10)) for y in range(0, 1): p1 = mkpanel(curses.COLOR_RED, - curses.LINES / 2 - 2, - curses.COLS / 8 + 1, + curses.LINES // 2 - 2, + curses.COLS // 8 + 1, 0, 0) p1.set_userptr("p1") p2 = mkpanel(curses.COLOR_GREEN, - curses.LINES / 2 + 1, - curses.COLS / 7, - curses.LINES / 4, - curses.COLS / 10) + curses.LINES // 2 + 1, + curses.COLS // 7, + curses.LINES // 4, + curses.COLS // 10) p2.set_userptr("p2") p3 = mkpanel(curses.COLOR_YELLOW, - curses.LINES / 4, - curses.COLS / 10, - curses.LINES / 2, - curses.COLS / 9) + curses.LINES // 4, + curses.COLS // 10, + curses.LINES // 2, + curses.COLS // 9) p3.set_userptr("p3") p4 = mkpanel(curses.COLOR_BLUE, - curses.LINES / 2 - 2, - curses.COLS / 8, - curses.LINES / 2 - 2, - curses.COLS / 3) + curses.LINES // 2 - 2, + curses.COLS // 8, + curses.LINES // 2 - 2, + curses.COLS // 3) p4.set_userptr("p4") p5 = mkpanel(curses.COLOR_MAGENTA, - curses.LINES / 2 - 2, - curses.COLS / 8, - curses.LINES / 2, - curses.COLS / 2 - 2) + curses.LINES // 2 - 2, + curses.COLS // 8, + curses.LINES // 2, + curses.COLS // 2 - 2) p5.set_userptr("p5") fill_panel(p1) @@ -143,7 +143,7 @@ wait_a_while() saywhat("m2; press any key to continue") - p2.move(curses.LINES / 3 + 1, curses.COLS / 8) + p2.move(curses.LINES // 3 + 1, curses.COLS // 8) pflush() wait_a_while() @@ -153,7 +153,7 @@ wait_a_while() saywhat("m3; press any key to continue") - p3.move(curses.LINES / 4 + 1, curses.COLS / 15) + p3.move(curses.LINES // 4 + 1, curses.COLS // 15) pflush() wait_a_while() @@ -202,25 +202,25 @@ w5 = p5.window() saywhat("m4; press any key to continue") - w4.move(curses.LINES / 8, 1) + w4.move(curses.LINES // 8, 1) w4.addstr(mod[itmp]) - p4.move(curses.LINES / 6, itmp * curses.COLS / 8) - w5.move(curses.LINES / 6, 1) + p4.move(curses.LINES // 6, itmp * curses.COLS // 8) + w5.move(curses.LINES // 6, 1) w5.addstr(mod[itmp]) pflush() wait_a_while() saywhat("m5; press any key to continue") - w4.move(curses.LINES / 6, 1) + w4.move(curses.LINES // 6, 1) w4.addstr(mod[itmp]) - p5.move(curses.LINES / 3 - 1, itmp * 10 + 6) - w5.move(curses.LINES / 8, 1) + p5.move(curses.LINES // 3 - 1, itmp * 10 + 6) + w5.move(curses.LINES // 8, 1) w5.addstr(mod[itmp]) pflush() wait_a_while() saywhat("m4; press any key to continue") - p4.move(curses.LINES / 6, (itmp + 1) * curses.COLS / 8) + p4.move(curses.LINES // 6, (itmp + 1) * curses.COLS // 8) pflush() wait_a_while() Modified: python/branches/tlee-ast-optimize/Demo/md5test/md5driver.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/md5test/md5driver.py (original) +++ python/branches/tlee-ast-optimize/Demo/md5test/md5driver.py Sun Sep 21 06:05:44 2008 @@ -32,7 +32,7 @@ filsiz = 1 << 8 filler = makestr(0, filsiz-1) - data = filler * (TEST_BLOCK_SIZE / filsiz); + data = filler * (TEST_BLOCK_SIZE // filsiz) data = data + filler[:(TEST_BLOCK_SIZE % filsiz)] del filsiz, filler @@ -62,7 +62,7 @@ def MDFile(filename): - f = open(filename, 'rb'); + f = open(filename, 'rb') mdContext = md5.new() while 1: Modified: python/branches/tlee-ast-optimize/Demo/pdist/cmptree.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/pdist/cmptree.py (original) +++ python/branches/tlee-ast-optimize/Demo/pdist/cmptree.py Sun Sep 21 06:05:44 2008 @@ -197,7 +197,7 @@ dt = t2-t1 print size, "bytes in", round(dt), "seconds", if dt: - print "i.e.", int(size/dt), "bytes/sec", + print "i.e.", size//dt, "bytes/sec", print remote._recv(id) # ignored Modified: python/branches/tlee-ast-optimize/Demo/rpc/nfsclient.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/rpc/nfsclient.py (original) +++ python/branches/tlee-ast-optimize/Demo/rpc/nfsclient.py Sun Sep 21 06:05:44 2008 @@ -194,8 +194,8 @@ fh = sf[1] if fh: ncl = NFSClient(host) - as = ncl.Getattr(fh) - print as + attrstat = ncl.Getattr(fh) + print attrstat list = ncl.Listdir(fh) for item in list: print item mcl.Umnt(filesys) Modified: python/branches/tlee-ast-optimize/Demo/rpc/rpc.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/rpc/rpc.py (original) +++ python/branches/tlee-ast-optimize/Demo/rpc/rpc.py Sun Sep 21 06:05:44 2008 @@ -80,9 +80,9 @@ # Exceptions -BadRPCFormat = 'rpc.BadRPCFormat' -BadRPCVersion = 'rpc.BadRPCVersion' -GarbageArgs = 'rpc.GarbageArgs' +class BadRPCFormat(Exception): pass +class BadRPCVersion(Exception): pass +class GarbageArgs(Exception): pass class Unpacker(xdr.Unpacker): Modified: python/branches/tlee-ast-optimize/Demo/rpc/xdr.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/rpc/xdr.py (original) +++ python/branches/tlee-ast-optimize/Demo/rpc/xdr.py Sun Sep 21 06:05:44 2008 @@ -57,7 +57,7 @@ def pack_fstring(self, n, s): if n < 0: raise ValueError, 'fstring size must be nonnegative' - n = ((n+3)/4)*4 + n = ((n + 3)//4)*4 data = s[:n] data = data + (n - len(data)) * '\0' self.buf = self.buf + data @@ -164,7 +164,7 @@ if n < 0: raise ValueError, 'fstring size must be nonnegative' i = self.pos - j = i + (n+3)/4*4 + j = i + (n+3)//4*4 if j > len(self.buf): raise EOFError self.pos = j Modified: python/branches/tlee-ast-optimize/Demo/scripts/fact.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/fact.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/fact.py Sun Sep 21 06:05:44 2008 @@ -8,23 +8,21 @@ import sys from math import sqrt -error = 'fact.error' # exception - def fact(n): - if n < 1: raise error # fact() argument should be >= 1 + if n < 1: raise ValueError # fact() argument should be >= 1 if n == 1: return [] # special case res = [] # Treat even factors special, so we can use i = i+2 later while n%2 == 0: res.append(2) - n = n/2 + n = n//2 # Try odd numbers up to sqrt(n) limit = sqrt(float(n+1)) i = 3 while i <= limit: if n%i == 0: res.append(i) - n = n/i + n = n//i limit = sqrt(n+1) else: i = i+2 Modified: python/branches/tlee-ast-optimize/Demo/scripts/ftpstats.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/ftpstats.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/ftpstats.py Sun Sep 21 06:05:44 2008 @@ -104,7 +104,7 @@ def showbar(dict, title): n = len(title) - print '='*((70-n)/2), title, '='*((71-n)/2) + print '='*((70-n)//2), title, '='*((71-n)//2) list = [] keys = dict.keys() keys.sort() @@ -126,7 +126,7 @@ if len(dict) > maxitems: title = title + ' (first %d)'%maxitems n = len(title) - print '='*((70-n)/2), title, '='*((71-n)/2) + print '='*((70-n)//2), title, '='*((71-n)//2) list = [] keys = dict.keys() for key in keys: Modified: python/branches/tlee-ast-optimize/Demo/scripts/lpwatch.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/lpwatch.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/lpwatch.py Sun Sep 21 06:05:44 2008 @@ -83,7 +83,7 @@ lines.append(line) # if totaljobs: - line = '%d K' % ((totalbytes+1023)/1024) + line = '%d K' % ((totalbytes+1023)//1024) if totaljobs <> len(users): line = line + ' (%d jobs)' % totaljobs if len(users) == 1: @@ -95,7 +95,7 @@ line = line + ' (%s first)' % thisuser else: line = line + ' (%d K before %s)' % ( - (aheadbytes+1023)/1024, thisuser) + (aheadbytes+1023)//1024, thisuser) lines.append(line) # sts = pipe.close() Modified: python/branches/tlee-ast-optimize/Demo/scripts/markov.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/markov.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/markov.py Sun Sep 21 06:05:44 2008 @@ -110,7 +110,7 @@ def tuple(list): if len(list) == 0: return () if len(list) == 1: return (list[0],) - i = len(list)/2 + i = len(list)//2 return tuple(list[:i]) + tuple(list[i:]) if __name__ == "__main__": Modified: python/branches/tlee-ast-optimize/Demo/scripts/newslist.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/newslist.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/newslist.py Sun Sep 21 06:05:44 2008 @@ -321,7 +321,7 @@ tree={} # Check that the output directory exists - checkopdir(pagedir); + checkopdir(pagedir) try: print 'Connecting to '+newshost+'...' Modified: python/branches/tlee-ast-optimize/Demo/scripts/pi.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/pi.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/pi.py Sun Sep 21 06:05:44 2008 @@ -17,11 +17,11 @@ p, q, k = k*k, 2L*k+1L, k+1L a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 # Print common digits - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 while d == d1: output(d) a, a1 = 10L*(a%b), 10L*(a1%b1) - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 def output(d): # Use write() to avoid spaces between the digits Modified: python/branches/tlee-ast-optimize/Demo/scripts/unbirthday.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/scripts/unbirthday.py (original) +++ python/branches/tlee-ast-optimize/Demo/scripts/unbirthday.py Sun Sep 21 06:05:44 2008 @@ -92,9 +92,9 @@ # even though that day never actually existed and the calendar # was different then... days = year*365 # years, roughly - days = days + (year+3)/4 # plus leap years, roughly - days = days - (year+99)/100 # minus non-leap years every century - days = days + (year+399)/400 # plus leap years every 4 centirues + days = days + (year+3)//4 # plus leap years, roughly + days = days - (year+99)//100 # minus non-leap years every century + days = days + (year+399)//400 # plus leap years every 4 centirues for i in range(1, month): if i == 2 and calendar.isleap(year): days = days + 29 Modified: python/branches/tlee-ast-optimize/Demo/sockets/ftp.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/sockets/ftp.py (original) +++ python/branches/tlee-ast-optimize/Demo/sockets/ftp.py Sun Sep 21 06:05:44 2008 @@ -91,7 +91,7 @@ hostname = gethostname() hostaddr = gethostbyname(hostname) hbytes = string.splitfields(hostaddr, '.') - pbytes = [repr(port/256), repr(port%256)] + pbytes = [repr(port//256), repr(port%256)] bytes = hbytes + pbytes cmd = 'PORT ' + string.joinfields(bytes, ',') s.send(cmd + '\r\n') Modified: python/branches/tlee-ast-optimize/Demo/threads/Coroutine.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/threads/Coroutine.py (original) +++ python/branches/tlee-ast-optimize/Demo/threads/Coroutine.py Sun Sep 21 06:05:44 2008 @@ -93,8 +93,8 @@ self.e.wait() self.e.clear() -Killed = 'Coroutine.Killed' -EarlyExit = 'Coroutine.EarlyExit' +class Killed(Exception): pass +class EarlyExit(Exception): pass class Coroutine: def __init__(self): Modified: python/branches/tlee-ast-optimize/Demo/threads/Generator.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/threads/Generator.py (original) +++ python/branches/tlee-ast-optimize/Demo/threads/Generator.py Sun Sep 21 06:05:44 2008 @@ -1,8 +1,10 @@ # Generator implementation using threads +import sys import thread -Killed = 'Generator.Killed' +class Killed(Exception): + pass class Generator: # Constructor @@ -16,6 +18,7 @@ self.done = 0 self.killed = 0 thread.start_new_thread(self._start, ()) + # Internal routine def _start(self): try: @@ -29,6 +32,7 @@ if not self.killed: self.done = 1 self.getlock.release() + # Called by producer for each value; raise Killed if no more needed def put(self, value): if self.killed: @@ -38,6 +42,7 @@ self.putlock.acquire() # Wait for next get() call if self.killed: raise Killed + # Called by producer to get next value; raise EOFError if no more def get(self): if self.killed: @@ -47,12 +52,14 @@ if self.done: raise EOFError # Say there are no more values return self.value + # Called by consumer if no more values wanted def kill(self): if self.killed: raise TypeError, 'kill() called on killed generator' self.killed = 1 self.putlock.release() + # Clone constructor def clone(self): return Generator(self.func, self.args) @@ -64,11 +71,11 @@ p, q, k = k*k, 2L*k+1L, k+1L a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1 # Print common digits - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 while d == d1: g.put(int(d)) a, a1 = 10L*(a%b), 10L*(a1%b1) - d, d1 = a/b, a1/b1 + d, d1 = a//b, a1//b1 def test(): g = Generator(pi, ()) @@ -80,5 +87,6 @@ g.kill() while 1: print h.get(), + sys.stdout.flush() test() Modified: python/branches/tlee-ast-optimize/Demo/tkinter/guido/hanoi.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/tkinter/guido/hanoi.py (original) +++ python/branches/tlee-ast-optimize/Demo/tkinter/guido/hanoi.py Sun Sep 21 06:05:44 2008 @@ -35,15 +35,15 @@ # Add background bitmap if bitmap: - self.bitmap = c.create_bitmap(width/2, height/2, + self.bitmap = c.create_bitmap(width//2, height//2, bitmap=bitmap, foreground='blue') # Generate pegs pegwidth = 10 - pegheight = height/2 - pegdist = width/3 - x1, y1 = (pegdist-pegwidth)/2, height*1/3 + pegheight = height//2 + pegdist = width//3 + x1, y1 = (pegdist-pegwidth)//2, height*1//3 x2, y2 = x1+pegwidth, y1+pegheight self.pegs = [] p = c.create_rectangle(x1, y1, x2, y2, fill='black') @@ -57,14 +57,14 @@ self.tk.update() # Generate pieces - pieceheight = pegheight/16 - maxpiecewidth = pegdist*2/3 + pieceheight = pegheight//16 + maxpiecewidth = pegdist*2//3 minpiecewidth = 2*pegwidth self.pegstate = [[], [], []] self.pieces = {} - x1, y1 = (pegdist-maxpiecewidth)/2, y2-pieceheight-2 + x1, y1 = (pegdist-maxpiecewidth)//2, y2-pieceheight-2 x2, y2 = x1+maxpiecewidth, y1+pieceheight - dx = (maxpiecewidth-minpiecewidth) / (2*max(1, n-1)) + dx = (maxpiecewidth-minpiecewidth) // (2*max(1, n-1)) for i in range(n, 0, -1): p = c.create_rectangle(x1, y1, x2, y2, fill='red') self.pieces[i] = p @@ -101,10 +101,10 @@ # Move it towards peg b bx1, by1, bx2, by2 = c.bbox(self.pegs[b]) - newcenter = (bx1+bx2)/2 + newcenter = (bx1+bx2)//2 while 1: x1, y1, x2, y2 = c.bbox(p) - center = (x1+x2)/2 + center = (x1+x2)//2 if center == newcenter: break if center > newcenter: c.move(p, -1, 0) else: c.move(p, 1, 0) Modified: python/branches/tlee-ast-optimize/Demo/tkinter/guido/solitaire.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/tkinter/guido/solitaire.py (original) +++ python/branches/tlee-ast-optimize/Demo/tkinter/guido/solitaire.py Sun Sep 21 06:05:44 2008 @@ -168,7 +168,7 @@ self.group = Group(canvas) text = "%s %s" % (VALNAMES[value], suit) - self.__text = CanvasText(canvas, CARDWIDTH/2, 0, + self.__text = CanvasText(canvas, CARDWIDTH//2, 0, anchor=N, fill=self.color, text=text) self.group.addtag_withtag(self.__text) @@ -589,7 +589,7 @@ def animatedmoveto(self, card, dest): for i in range(10, 0, -1): - dx, dy = (dest.x-card.x)/i, (dest.y-card.y)/i + dx, dy = (dest.x-card.x)//i, (dest.y-card.y)//i card.moveby(dx, dy) self.master.update_idletasks() Modified: python/branches/tlee-ast-optimize/Demo/tkinter/guido/sortvisu.py ============================================================================== --- python/branches/tlee-ast-optimize/Demo/tkinter/guido/sortvisu.py (original) +++ python/branches/tlee-ast-optimize/Demo/tkinter/guido/sortvisu.py Sun Sep 21 06:05:44 2008 @@ -88,7 +88,7 @@ if self.speed == "fastest": msecs = 0 elif self.speed == "fast": - msecs = msecs/10 + msecs = msecs//10 elif self.speed == "single-step": msecs = 1000000000 if not self.stop_mainloop: @@ -320,7 +320,7 @@ return outcome def position(self): - x1 = (self.index+1)*XGRID - WIDTH/2 + x1 = (self.index+1)*XGRID - WIDTH//2 x2 = x1+WIDTH y2 = (self.array.maxvalue+1)*YGRID y1 = y2 - (self.value)*YGRID @@ -349,7 +349,7 @@ res = [tuple(oldpts)] for i in range(1, n): for k in range(len(pts)): - pts[k] = oldpts[k] + (newpts[k] - oldpts[k])*i/n + pts[k] = oldpts[k] + (newpts[k] - oldpts[k])*i//n res.append(tuple(pts)) res.append(tuple(newpts)) return res @@ -359,7 +359,7 @@ def uniform(array): size = array.getsize() - array.setdata([(size+1)/2] * size) + array.setdata([(size+1)//2] * size) array.reset("Uniform data, size %d" % size) def distinct(array): @@ -429,7 +429,7 @@ j = j-1 continue array.message("Choosing pivot") - j, i, k = first, (first+last)/2, last-1 + j, i, k = first, (first+last)//2, last-1 if array.compare(k, i) < 0: array.swap(k, i) if array.compare(k, j) < 0: Modified: python/branches/tlee-ast-optimize/Doc/Makefile ============================================================================== --- python/branches/tlee-ast-optimize/Doc/Makefile (original) +++ python/branches/tlee-ast-optimize/Doc/Makefile Sun Sep 21 06:05:44 2008 @@ -41,7 +41,7 @@ fi @if [ ! -d tools/pygments ]; then \ echo "Checking out Pygments..."; \ - svn checkout $(SVNROOT)/external/Pygments-0.10/pygments tools/pygments; \ + svn checkout $(SVNROOT)/external/Pygments-0.11.1/pygments tools/pygments; \ fi update: checkout Modified: python/branches/tlee-ast-optimize/Doc/distutils/apiref.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/distutils/apiref.rst (original) +++ python/branches/tlee-ast-optimize/Doc/distutils/apiref.rst Sun Sep 21 06:05:44 2008 @@ -326,7 +326,7 @@ ``'posix'``, ``'nt'``), and *compiler* defaults to the default compiler for that platform. Currently only ``'posix'`` and ``'nt'`` are supported, and the default compilers are "traditional Unix interface" (:class:`UnixCCompiler` - class) and Visual C++(:class:`MSVCCompiler` class). Note that it's perfectly + class) and Visual C++ (:class:`MSVCCompiler` class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix---if you supply a value for *compiler*, *plat* is ignored. Modified: python/branches/tlee-ast-optimize/Doc/distutils/builtdist.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/distutils/builtdist.rst (original) +++ python/branches/tlee-ast-optimize/Doc/distutils/builtdist.rst Sun Sep 21 06:05:44 2008 @@ -302,8 +302,8 @@ If you have a pure module distribution (only containing pure Python modules and packages), the resulting installer will be version independent and have a name -like :file:`foo-1.0.win32.exe`. These installers can even be created on Unix or -Mac OS platforms. +like :file:`foo-1.0.win32.exe`. These installers can even be created on Unix +platforms or Mac OS X. If you have a non-pure distribution, the extensions can only be created on a Windows platform, and will be Python version dependent. The installer filename Modified: python/branches/tlee-ast-optimize/Doc/distutils/commandref.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/distutils/commandref.rst (original) +++ python/branches/tlee-ast-optimize/Doc/distutils/commandref.rst Sun Sep 21 06:05:44 2008 @@ -88,7 +88,7 @@ character, and ``[range]`` matches any of the characters in *range* (e.g., ``a-z``, ``a-zA-Z``, ``a-f0-9_.``). The definition of "regular filename character" is platform-specific: on Unix it is anything except slash; on Windows -anything except backslash or colon; on Mac OS 9 anything except colon. +anything except backslash or colon. **\*\*** Windows support not there yet **\*\*** Modified: python/branches/tlee-ast-optimize/Doc/distutils/setupscript.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/distutils/setupscript.rst (original) +++ python/branches/tlee-ast-optimize/Doc/distutils/setupscript.rst Sun Sep 21 06:05:44 2008 @@ -46,9 +46,7 @@ whatever is appropriate on your current platform before actually using the pathname. This makes your setup script portable across operating systems, which of course is one of the major goals of the Distutils. In this spirit, all -pathnames in this document are slash-separated. (Mac OS 9 programmers should -keep in mind that the *absence* of a leading slash indicates a relative path, -the opposite of the Mac OS convention with colons.) +pathnames in this document are slash-separated. This, of course, only applies to pathnames given to Distutils functions. If you, for example, use standard Python functions such as :func:`glob.glob` or Modified: python/branches/tlee-ast-optimize/Doc/extending/embedding.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/extending/embedding.rst (original) +++ python/branches/tlee-ast-optimize/Doc/extending/embedding.rst Sun Sep 21 06:05:44 2008 @@ -25,10 +25,9 @@ So if you are embedding Python, you are providing your own main program. One of the things this main program has to do is initialize the Python interpreter. At -the very least, you have to call the function :cfunc:`Py_Initialize` (on Mac OS, -call :cfunc:`PyMac_Initialize` instead). There are optional calls to pass -command line arguments to Python. Then later you can call the interpreter from -any part of the application. +the very least, you have to call the function :cfunc:`Py_Initialize`. There are +optional calls to pass command line arguments to Python. Then later you can +call the interpreter from any part of the application. There are several different ways to call the interpreter: you can pass a string containing Python statements to :cfunc:`PyRun_SimpleString`, or you can pass a Modified: python/branches/tlee-ast-optimize/Doc/glossary.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/glossary.rst (original) +++ python/branches/tlee-ast-optimize/Doc/glossary.rst Sun Sep 21 06:05:44 2008 @@ -9,16 +9,17 @@ .. glossary:: ``>>>`` - The typical Python prompt of the interactive shell. Often seen for code - examples that can be tried right away in the interpreter. + The default Python prompt of the interactive shell. Often seen for code + examples which can be executed interactively in the interpreter. ``...`` - The typical Python prompt of the interactive shell when entering code for - an indented code block. + The default Python prompt of the interactive shell when entering code for + an indented code block or within a pair of matching left and right + delimiters (parentheses, square brackets or curly braces). 2to3 A tool that tries to convert Python 2.x code to Python 3.x code by - handling most of the incompatibilites that can be detected by parsing the + handling most of the incompatibilites which can be detected by parsing the source and traversing the parse tree. 2to3 is available in the standard library as :mod:`lib2to3`; a standalone @@ -34,15 +35,21 @@ ABC with the :mod:`abc` module. argument - A value passed to a function or method, assigned to a name local to - the body. A function or method may have both positional arguments and - keyword arguments in its definition. Positional and keyword arguments - may be variable-length: ``*`` accepts or passes (if in the function - definition or call) several positional arguments in a list, while ``**`` - does the same for keyword arguments in a dictionary. + A value passed to a function or method, assigned to a named local + variable in the function body. A function or method may have both + positional arguments and keyword arguments in its definition. + Positional and keyword arguments may be variable-length: ``*`` accepts + or passes (if in the function definition or call) several positional + arguments in a list, while ``**`` does the same for keyword arguments + in a dictionary. Any expression may be used within the argument list, and the evaluated value is passed to the local variable. + + attribute + A value associated with an object which is referenced by name using + dotted expressions. For example, if an object *o* has an attribute + *a* it would be referenced as *o.a*. BDFL Benevolent Dictator For Life, a.k.a. `Guido van Rossum @@ -53,12 +60,17 @@ of a Python program in the interpreter. The bytecode is also cached in ``.pyc`` and ``.pyo`` files so that executing the same file is faster the second time (recompilation from source to bytecode can be avoided). This - "intermediate language" is said to run on a "virtual machine" that calls - the subroutines corresponding to each bytecode. + "intermediate language" is said to run on a :term:`virtual machine` + that executes the machine code corresponding to each bytecode. + + class + A template for creating user-defined objects. Class definitions + normally contain method definitions which operate on instances of the + class. classic class Any class which does not inherit from :class:`object`. See - :term:`new-style class`. + :term:`new-style class`. Classic classes will be removed in Python 3.0. coercion The implicit conversion of an instance of one type to another during an @@ -86,10 +98,15 @@ it's almost certain you can safely ignore them. context manager - An objects that controls the environment seen in a :keyword:`with` + An object which controls the environment seen in a :keyword:`with` statement by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`. + CPython + The canonical implementation of the Python programming language. The + term "CPython" is used in contexts when necessary to distinguish this + implementation from others such as Jython or IronPython. + decorator A function returning another function, usually applied as a function transformation using the ``@wrapper`` syntax. Common examples for @@ -107,7 +124,7 @@ ... descriptor - Any *new-style* object that defines the methods :meth:`__get__`, + Any *new-style* object which defines the methods :meth:`__get__`, :meth:`__set__`, or :meth:`__delete__`. When a class attribute is a descriptor, its special binding behavior is triggered upon attribute lookup. Normally, using *a.b* to get, set or delete an attribute looks up @@ -121,20 +138,20 @@ dictionary An associative array, where arbitrary keys are mapped to values. The use - of :class:`dict` much resembles that for :class:`list`, but the keys can - be any object with a :meth:`__hash__` function, not just integers starting - from zero. Called a hash in Perl. + of :class:`dict` closely resembles that for :class:`list`, but the keys can + be any object with a :meth:`__hash__` function, not just integers. + Called a hash in Perl. docstring - A docstring ("documentation string") is a string literal that appears as - the first thing in a class or function suite. While ignored when the - suite is executed, it is recognized by the compiler and put into the - :attr:`__doc__` attribute of the class or function. Since it is available - via introspection, it is the canonical place for documentation of the + A string literal which appears as the first expression in a class, + function or module. While ignored when the suite is executed, it is + recognized by the compiler and put into the :attr:`__doc__` attribute + of the enclosing class, function or module. Since it is available via + introspection, it is the canonical place for documentation of the object. duck-typing - Pythonic programming style that determines an object's type by inspection + A pythonic programming style which determines an object's type by inspection of its method or attribute signature rather than by explicit relationship to some type object ("If it looks like a duck and quacks like a duck, it must be a duck.") By emphasizing interfaces rather than specific types, @@ -149,20 +166,20 @@ style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and fast style is characterized by the presence of many :keyword:`try` and :keyword:`except` - statements. The technique contrasts with the :term:`LBYL` style that is - common in many other languages such as C. + statements. The technique contrasts with the :term:`LBYL` style + common to many other languages such as C. expression A piece of syntax which can be evaluated to some value. In other words, an expression is an accumulation of expression elements like literals, names, - attribute access, operators or function calls that all return a value. - In contrast to other languages, not all language constructs are expressions, - but there are also :term:`statement`\s that cannot be used as expressions, - such as :keyword:`print` or :keyword:`if`. Assignments are also not - expressions. + attribute access, operators or function calls which all return a value. + In contrast to many other languages, not all language constructs are expressions. + There are also :term:`statement`\s which cannot be used as expressions, + such as :keyword:`print` or :keyword:`if`. Assignments are also statements, + not expressions. extension module - A module written in C, using Python's C API to interact with the core and + A module written in C or C++, using Python's C API to interact with the core and with user code. function @@ -193,10 +210,10 @@ collector that is able to detect and break reference cycles. generator - A function that returns an iterator. It looks like a normal function + A function which returns an iterator. It looks like a normal function except that values are returned to the caller using a :keyword:`yield` statement instead of a :keyword:`return` statement. Generator functions - often contain one or more :keyword:`for` or :keyword:`while` loops that + often contain one or more :keyword:`for` or :keyword:`while` loops which :keyword:`yield` elements back to the caller. The function execution is stopped at the :keyword:`yield` keyword (returning the result) and is resumed there when the next element is requested by calling the @@ -217,39 +234,41 @@ See :term:`global interpreter lock`. global interpreter lock - The lock used by Python threads to assure that only one thread can be run - at a time. This simplifies Python by assuring that no two processes can - access the same memory at the same time. Locking the entire interpreter - makes it easier for the interpreter to be multi-threaded, at the expense - of some parallelism on multi-processor machines. Efforts have been made - in the past to create a "free-threaded" interpreter (one which locks - shared data at a much finer granularity), but performance suffered in the - common single-processor case. + The lock used by Python threads to assure that only one thread + executes in the :term:`CPython` :term:`virtual machine` at a time. + This simplifies the CPython implementation by assuring that no two + processes can access the same memory at the same time. Locking the + entire interpreter makes it easier for the interpreter to be + multi-threaded, at the expense of much of the parallelism afforded by + multi-processor machines. Efforts have been made in the past to + create a "free-threaded" interpreter (one which locks shared data at a + much finer granularity), but so far none have been successful because + performance suffered in the common single-processor case. hashable - An object is *hashable* if it has a hash value that never changes during + An object is *hashable* if it has a hash value which never changes during its lifetime (it needs a :meth:`__hash__` method), and can be compared to other objects (it needs an :meth:`__eq__` or :meth:`__cmp__` method). - Hashable objects that compare equal must have the same hash value. + Hashable objects which compare equal must have the same hash value. Hashability makes an object usable as a dictionary key and a set member, because these data structures use the hash value internally. - All of Python's immutable built-in objects are hashable, while all mutable - containers (such as lists or dictionaries) are not. Objects that are + All of Python's immutable built-in objects are hashable, while no mutable + containers (such as lists or dictionaries) are. Objects which are instances of user-defined classes are hashable by default; they all compare unequal, and their hash value is their :func:`id`. IDLE An Integrated Development Environment for Python. IDLE is a basic editor - and interpreter environment that ships with the standard distribution of + and interpreter environment which ships with the standard distribution of Python. Good for beginners, it also serves as clear example code for those wanting to implement a moderately sophisticated, multi-platform GUI application. immutable - An object with fixed value. Immutable objects are numbers, strings or - tuples (and more). Such an object cannot be altered. A new object has to + An object with a fixed value. Immutable objects include numbers, strings and + tuples. Such an object cannot be altered. A new object has to be created if a different value has to be stored. They play an important role in places where a constant hash value is needed, for example as a key in a dictionary. @@ -267,18 +286,21 @@ instead of the ``/`` operator. See also :term:`__future__`. interactive - Python has an interactive interpreter which means that you can try out - things and immediately see their results. Just launch ``python`` with no - arguments (possibly by selecting it from your computer's main menu). It is - a very powerful way to test out new ideas or inspect modules and packages - (remember ``help(x)``). + Python has an interactive interpreter which means you can enter + statements and expressions at the interpreter prompt, immediately + execute them and see their results. Just launch ``python`` with no + arguments (possibly by selecting it from your computer's main + menu). It is a very powerful way to test out new ideas or inspect + modules and packages (remember ``help(x)``). interpreted - Python is an interpreted language, as opposed to a compiled one. This - means that the source files can be run directly without first creating an - executable which is then run. Interpreted languages typically have a - shorter development/debug cycle than compiled ones, though their programs - generally also run more slowly. See also :term:`interactive`. + Python is an interpreted language, as opposed to a compiled one, + though the distinction can be blurry because of the presence of the + bytecode compiler. This means that source files can be run directly + without explicitly creating an executable which is then run. + Interpreted languages typically have a shorter development/debug cycle + than compiled ones, though their programs generally also run more + slowly. See also :term:`interactive`. iterable A container object capable of returning its members one at a @@ -299,13 +321,13 @@ iterator An object representing a stream of data. Repeated calls to the iterator's :meth:`next` method return successive items in the stream. When no more - data is available a :exc:`StopIteration` exception is raised instead. At + data are available a :exc:`StopIteration` exception is raised instead. At this point, the iterator object is exhausted and any further calls to its :meth:`next` method just raise :exc:`StopIteration` again. Iterators are required to have an :meth:`__iter__` method that returns the iterator object itself so every iterator is also iterable and may be used in most places where other iterables are accepted. One notable exception is code - that attempts multiple iteration passes. A container object (such as a + which attempts multiple iteration passes. A container object (such as a :class:`list`) produces a fresh new iterator each time you pass it to the :func:`iter` function or use it in a :keyword:`for` loop. Attempting this with an iterator will just return the same exhausted iterator object used @@ -329,17 +351,22 @@ pre-conditions before making calls or lookups. This style contrasts with the :term:`EAFP` approach and is characterized by the presence of many :keyword:`if` statements. + + list + A built-in Python :term:`sequence`. Despite its name it is more akin + to an array in other languages than to a linked list since access to + elements are O(1). list comprehension - A compact way to process all or a subset of elements in a sequence and + A compact way to process all or part of the elements in a sequence and return a list with the results. ``result = ["0x%02x" % x for x in - range(256) if x % 2 == 0]`` generates a list of strings containing hex - numbers (0x..) that are even and in the range from 0 to 255. The - :keyword:`if` clause is optional. If omitted, all elements in - ``range(256)`` are processed. + range(256) if x % 2 == 0]`` generates a list of strings containing + even hex numbers (0x..) in the range from 0 to 255. The :keyword:`if` + clause is optional. If omitted, all elements in ``range(256)`` are + processed. mapping - A container object (such as :class:`dict`) that supports arbitrary key + A container object (such as :class:`dict`) which supports arbitrary key lookups using the special method :meth:`__getitem__`. metaclass @@ -356,7 +383,7 @@ More information can be found in :ref:`metaclasses`. method - A function that is defined inside a class body. If called as an attribute + A function which is defined inside a class body. If called as an attribute of an instance of that class, the method will get the instance object as its first :term:`argument` (which is usually called ``self``). See :term:`function` and :term:`nested scope`. @@ -366,7 +393,7 @@ also :term:`immutable`. named tuple - Any tuple subclass whose indexable fields are also accessible with + Any tuple subclass whose indexable elements are also accessible using named attributes (for example, :func:`time.localtime` returns a tuple-like object where the *year* is accessible either with an index such as ``t[0]`` or with a named attribute like ``t.tm_year``). @@ -388,7 +415,7 @@ it clear which module implements a function. For instance, writing :func:`random.seed` or :func:`itertools.izip` makes it clear that those functions are implemented by the :mod:`random` and :mod:`itertools` - modules respectively. + modules, respectively. nested scope The ability to refer to a variable in an enclosing definition. For @@ -399,13 +426,17 @@ scope. Likewise, global variables read and write to the global namespace. new-style class - Any class that inherits from :class:`object`. This includes all built-in + Any class which inherits from :class:`object`. This includes all built-in types like :class:`list` and :class:`dict`. Only new-style classes can use Python's newer, versatile features like :attr:`__slots__`, - descriptors, properties, :meth:`__getattribute__`, class methods, and - static methods. + descriptors, properties, and :meth:`__getattribute__`. More information can be found in :ref:`newstyle`. + + object + Any data with state (attributes or value) and defined behavior + (methods). Also the ultimate base class of any :term:`new-style + class`. positional argument The arguments assigned to local names inside a function or method, @@ -420,11 +451,12 @@ is also abbreviated "Py3k". Pythonic - An idea or piece of code which closely follows the most common idioms of - the Python language, rather than implementing code using concepts common - in other languages. For example, a common idiom in Python is the :keyword:`for` - loop structure; other languages don't have this easy keyword, so people - use a numerical counter instead:: + An idea or piece of code which closely follows the most common idioms + of the Python language, rather than implementing code using concepts + common to other languages. For example, a common idiom in Python is + to loop over all elements of an iterable using a :keyword:`for` + statement. Many other languages don't have this type of construct, so + people unfamiliar with Python sometimes use a numerical counter instead:: for i in range(len(food)): print food[i] @@ -435,11 +467,13 @@ print piece reference count - The number of places where a certain object is referenced to. When the - reference count drops to zero, an object is deallocated. While reference - counting is invisible on the Python code level, it is used on the - implementation level to keep track of allocated memory. - + The number of references to an object. When the reference count of an + object drops to zero, it is deallocated. Reference counting is + generally not visible to Python code, but it is a key element of the + :term:`CPython` implementation. The :mod:`sys` module defines a + :func:`getrefcount` function that programmers can call to return the + reference count for a particular object. + __slots__ A declaration inside a :term:`new-style class` that saves memory by pre-declaring space for instance attributes and eliminating instance @@ -449,7 +483,8 @@ sequence An :term:`iterable` which supports efficient element access using integer - indices via the :meth:`__getitem__` and :meth:`__len__` special methods. + indices via the :meth:`__getitem__` special method and defines a + :meth:`len` method that returns the length of the sequence. Some built-in sequence types are :class:`list`, :class:`str`, :class:`tuple`, and :class:`unicode`. Note that :class:`dict` also supports :meth:`__getitem__` and :meth:`__len__`, but is considered a @@ -468,10 +503,23 @@ an :term:`expression` or a one of several constructs with a keyword, such as :keyword:`if`, :keyword:`while` or :keyword:`print`. + triple-quoted string + A string which is bound by three instances of either a quotation mark + (") or an apostrophe ('). While they don't provide any functionality + not available with single-quoted strings, they are useful for a number + of reasons. They allow you to include unescaped single and double + quotes within a string and they can span multiple lines without the + use of the continuation character, making them especially useful when + writing docstrings. + type The type of a Python object determines what kind of object it is; every object has a type. An object's type is accessible as its :attr:`__class__` attribute or can be retrieved with ``type(obj)``. + + virtual machine + A computer defined entirely in software. Python's virtual machine + executes the :term:`bytecode` emitted by the bytecode compiler. Zen of Python Listing of Python design principles and philosophies that are helpful in Modified: python/branches/tlee-ast-optimize/Doc/howto/index.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/howto/index.rst (original) +++ python/branches/tlee-ast-optimize/Doc/howto/index.rst Sun Sep 21 06:05:44 2008 @@ -21,4 +21,5 @@ sockets.rst unicode.rst urllib2.rst + webservers.rst Modified: python/branches/tlee-ast-optimize/Doc/howto/sockets.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/howto/sockets.rst (original) +++ python/branches/tlee-ast-optimize/Doc/howto/sockets.rst Sun Sep 21 06:05:44 2008 @@ -390,8 +390,7 @@ only. Also note that in C, many of the more advanced socket options are done differently on Windows. In fact, on Windows I usually use threads (which work very, very well) with my sockets. Face it, if you want any kind of performance, -your code will look very different on Windows than on Unix. (I haven't the -foggiest how you do this stuff on a Mac.) +your code will look very different on Windows than on Unix. Performance Modified: python/branches/tlee-ast-optimize/Doc/howto/unicode.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/howto/unicode.rst (original) +++ python/branches/tlee-ast-optimize/Doc/howto/unicode.rst Sun Sep 21 06:05:44 2008 @@ -568,7 +568,7 @@ Most of the operating systems in common use today support filenames that contain arbitrary Unicode characters. Usually this is implemented by converting the Unicode string into some encoding that varies depending on the system. For -example, MacOS X uses UTF-8 while Windows uses a configurable encoding; on +example, Mac OS X uses UTF-8 while Windows uses a configurable encoding; on Windows, Python uses the name "mbcs" to refer to whatever the currently configured encoding is. On Unix systems, there will only be a filesystem encoding if you've set the ``LANG`` or ``LC_CTYPE`` environment variables; if Modified: python/branches/tlee-ast-optimize/Doc/library/2to3.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/2to3.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/2to3.rst Sun Sep 21 06:05:44 2008 @@ -79,12 +79,12 @@ The :option:`-v` option enables the output of more information on the translation process. -When the :option:`-p` is passed to it, 2to3 treats ``print`` as a function -instead of a statement. This is useful when ``from __future__ import -print_function`` is being used. If this option is not given, the print fixer -will surround print calls in an extra set of parentheses because it cannot -differentiate between the and print statement with parentheses (such as ``print -("a" + "b" + "c")``) and a true function call. +When the :option:`-p` is passed, 2to3 treats ``print`` as a function instead of +a statement. This is useful when ``from __future__ import print_function`` is +being used. If this option is not given, the print fixer will surround print +calls in an extra set of parentheses because it cannot differentiate between the +and print statement with parentheses (such as ``print ("a" + "b" + "c")``) and a +true function call. :mod:`lib2to3` - 2to3's library Modified: python/branches/tlee-ast-optimize/Doc/library/asynchat.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/asynchat.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/asynchat.rst Sun Sep 21 06:05:44 2008 @@ -278,8 +278,8 @@ class http_request_handler(asynchat.async_chat): - def __init__(self, conn, addr, sessions, log): - asynchat.async_chat.__init__(self, conn=conn) + def __init__(self, sock, addr, sessions, log): + asynchat.async_chat.__init__(self, sock=sock) self.addr = addr self.sessions = sessions self.ibuffer = [] Modified: python/branches/tlee-ast-optimize/Doc/library/binhex.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/binhex.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/binhex.rst Sun Sep 21 06:05:44 2008 @@ -58,7 +58,7 @@ the source for details. If you code or decode textfiles on non-Macintosh platforms they will still use -the Macintosh newline convention (carriage-return as end of line). +the old Macintosh newline convention (carriage-return as end of line). As of this writing, :func:`hexbin` appears to not work in all cases. Modified: python/branches/tlee-ast-optimize/Doc/library/carbon.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/carbon.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/carbon.rst Sun Sep 21 06:05:44 2008 @@ -1,11 +1,11 @@ .. _toolbox: -********************* -MacOS Toolbox Modules -********************* +********************** +Mac OS Toolbox Modules +********************** -There are a set of modules that provide interfaces to various MacOS toolboxes. +There are a set of modules that provide interfaces to various Mac OS toolboxes. If applicable the module will define a number of Python objects for the various structures declared by the toolbox, and operations will be implemented as methods of the object. Other operations will be implemented as functions in the @@ -240,7 +240,7 @@ :deprecated: -This module is only fully available on MacOS9 and earlier under classic PPC +This module is only fully available on Mac OS 9 and earlier under classic PPC MacPython. Very limited functionality is available under Carbon MacPython. .. index:: single: Scrap Manager Modified: python/branches/tlee-ast-optimize/Doc/library/cgihttpserver.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/cgihttpserver.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/cgihttpserver.rst Sun Sep 21 06:05:44 2008 @@ -19,8 +19,7 @@ .. note:: - This module can run CGI scripts on Unix and Windows systems; on Mac OS it will - only be able to run Python scripts within the same process as itself. + This module can run CGI scripts on Unix and Windows systems. .. note:: Modified: python/branches/tlee-ast-optimize/Doc/library/collections.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/collections.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/collections.rst Sun Sep 21 06:05:44 2008 @@ -380,7 +380,7 @@ .. method:: defaultdict.__missing__(key) - If the :attr:`default_factory` attribute is ``None``, this raises an + If the :attr:`default_factory` attribute is ``None``, this raises a :exc:`KeyError` exception with the *key* as argument. If :attr:`default_factory` is not ``None``, it is called without arguments Modified: python/branches/tlee-ast-optimize/Doc/library/compileall.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/compileall.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/compileall.rst Sun Sep 21 06:05:44 2008 @@ -11,8 +11,13 @@ allowing users without permission to write to the libraries to take advantage of cached byte-code files. -The source file for this module may also be used as a script to compile Python -sources in directories named on the command line or in ``sys.path``. +This module may also be used as a script (using the :option:`-m` Python flag) to +compile Python sources. Directories to recursively traverse (passing +:option:`-l` stops the recursive behavior) for sources are listed on the command +line. If no arguments are given, the invocation is equivalent to ``-l +sys.path``. Printing lists of the files compiled can be disabled with the +:option:`-q` flag. In addition, the :option:`-x` option takes a regular +expression argument. All files that match the expression will be skipped. .. function:: compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]]) Modified: python/branches/tlee-ast-optimize/Doc/library/framework.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/framework.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/framework.rst Sun Sep 21 06:05:44 2008 @@ -206,7 +206,7 @@ .. method:: Window.open() - Override this method to open a window. Store the MacOS window-id in + Override this method to open a window. Store the Mac OS window-id in :attr:`self.wid` and call the :meth:`do_postopen` method to register the window with the parent application. Modified: python/branches/tlee-ast-optimize/Doc/library/functions.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/functions.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/functions.rst Sun Sep 21 06:05:44 2008 @@ -571,14 +571,14 @@ it must contain a possibly signed decimal number representable as a Python integer, possibly embedded in whitespace. The *radix* parameter gives the base for the conversion (which is 10 by default) and may be any integer in - the range [2, 36], or zero. If *radix* is zero, the proper radix is guessed - based on the contents of string; the interpretation is the same as for - integer literals. If *radix* is specified and *x* is not a string, - :exc:`TypeError` is raised. Otherwise, the argument may be a plain or long - integer or a floating point number. Conversion of floating point numbers to - integers truncates (towards zero). If the argument is outside the integer - range a long object will be returned instead. If no arguments are given, - returns ``0``. + the range [2, 36], or zero. If *radix* is zero, the proper radix is + determined based on the contents of string; the interpretation is the same as + for integer literals. (See :ref:`numbers`.) If *radix* is specified and *x* + is not a string, :exc:`TypeError` is raised. Otherwise, the argument may be a + plain or long integer or a floating point number. Conversion of floating + point numbers to integers truncates (towards zero). If the argument is + outside the integer range a long object will be returned instead. If no + arguments are given, returns ``0``. The integer type is described in :ref:`typesnumeric`. @@ -1216,13 +1216,28 @@ .. function:: super(type[, object-or-type]) Return a "super" object that acts like the superclass of *type*. + If the second argument is omitted the super object returned is unbound. If the second argument is an object, ``isinstance(obj, type)`` must be true. If the second argument is a type, ``issubclass(type2, type)`` must be true. :func:`super` only works for :term:`new-style class`\es. - A typical use for calling a cooperative superclass method is:: + There are two typical use cases for "super". In a class hierarchy with + single inheritance, "super" can be used to refer to parent classes without + naming them explicitly, thus making the code more maintainable. This use + closely parallels the use of "super" in other programming languages. + + The second use case is to support cooperative multiple inheritence in a + dynamic execution environment. This use case is unique to Python and is + not found in statically compiled languages or languages that only support + single inheritance. This makes in possible to implement "diamond diagrams" + where multiple base classes implement the same method. Good design dictates + that this method have the same calling signature in every case (because the + order of parent calls is determined at runtime and because that order adapts + to changes in the class hierarchy). + + For both use cases, a typical superclass call looks like this:: class C(B): def meth(self, arg): @@ -1230,6 +1245,8 @@ Note that :func:`super` is implemented as part of the binding process for explicit dotted attribute lookups such as ``super(C, self).__getitem__(name)``. + It does so by implementing its own :meth:`__getattribute__` method for searching + parent classes in a predictable order that supports cooperative multiple inheritance. Accordingly, :func:`super` is undefined for implicit lookups using statements or operators such as ``super(C, self)[name]``. Modified: python/branches/tlee-ast-optimize/Doc/library/getopt.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/getopt.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/getopt.rst Sun Sep 21 06:05:44 2008 @@ -11,7 +11,12 @@ It supports the same conventions as the Unix :cfunc:`getopt` function (including the special meanings of arguments of the form '``-``' and '``--``'). Long options similar to those supported by GNU software may be used as well via an -optional third argument. This module provides two functions and an +optional third argument. + +A more convenient, flexible, and powerful alternative is the +:mod:`optparse` module. + +This module provides two functions and an exception: Modified: python/branches/tlee-ast-optimize/Doc/library/idle.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/idle.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/idle.rst Sun Sep 21 06:05:44 2008 @@ -16,8 +16,7 @@ * coded in 100% pure Python, using the :mod:`tkinter` GUI toolkit -* cross-platform: works on Windows and Unix (on Mac OS, there are currently - problems with Tcl/Tk) +* cross-platform: works on Windows and Unix * multi-window text editor with multiple undo, Python colorizing and many other features, e.g. smart indent and call tips Modified: python/branches/tlee-ast-optimize/Doc/library/imp.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/imp.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/imp.rst Sun Sep 21 06:05:44 2008 @@ -42,8 +42,8 @@ searched, but first it searches a few special places: it tries to find a built-in module with the given name (:const:`C_BUILTIN`), then a frozen module (:const:`PY_FROZEN`), and on some systems some other places are looked - in as well (on the Mac, it looks for a resource (:const:`PY_RESOURCE`); on - Windows, it looks in the registry which may point to a specific file). + in as well (on Windows, it looks in the registry which may point to a + specific file). If search is successful, the return value is a 3-element tuple ``(file, pathname, description)``: @@ -153,12 +153,6 @@ The module was found as dynamically loadable shared library. -.. data:: PY_RESOURCE - - The module was found as a Mac OS 9 resource. This value can only be returned on - a Mac OS 9 or earlier Macintosh. - - .. data:: PKG_DIRECTORY The module was found as a package directory. Modified: python/branches/tlee-ast-optimize/Doc/library/index.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/index.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/index.rst Sun Sep 21 06:05:44 2008 @@ -7,7 +7,7 @@ :Release: |version| :Date: |today| -While the :ref:`reference-index` describes the exact syntax and +While :ref:`reference-index` describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It also describes some of the optional components that are commonly included @@ -23,7 +23,7 @@ encourage and enhance the portability of Python programs by abstracting away platform-specifics into platform-neutral APIs. -The Python installers for the Windows and Mac platforms usually include +The Python installers for the Windows platform usually includes the entire standard library and often also include many additional components. For Unix-like operating systems Python is normally provided as a collection of packages, so it may be necessary to use the packaging Modified: python/branches/tlee-ast-optimize/Doc/library/mac.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/mac.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/mac.rst Sun Sep 21 06:05:44 2008 @@ -1,8 +1,8 @@ .. _mac-specific-services: -************************* -MacOS X specific services -************************* +************************** +Mac OS X specific services +************************** This chapter describes modules that are only available on the Mac OS X platform. @@ -12,7 +12,7 @@ .. warning:: - These modules are deprecated and are removed in 3.0 + These modules are deprecated and are removed in 3.0. .. toctree:: Modified: python/branches/tlee-ast-optimize/Doc/library/macos.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/macos.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/macos.rst Sun Sep 21 06:05:44 2008 @@ -1,4 +1,3 @@ - :mod:`MacOS` --- Access to Mac OS interpreter features ====================================================== Modified: python/branches/tlee-ast-optimize/Doc/library/macpath.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/macpath.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/macpath.rst Sun Sep 21 06:05:44 2008 @@ -1,9 +1,9 @@ -:mod:`macpath` --- MacOS 9 path manipulation functions -====================================================== +:mod:`macpath` --- Mac OS 9 path manipulation functions +======================================================= .. module:: macpath - :synopsis: MacOS 9 path manipulation functions. + :synopsis: Mac OS 9 path manipulation functions. This module is the Mac OS 9 (and earlier) implementation of the :mod:`os.path` Modified: python/branches/tlee-ast-optimize/Doc/library/multiprocessing.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/multiprocessing.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/multiprocessing.rst Sun Sep 21 06:05:44 2008 @@ -480,7 +480,7 @@ multithreading/multiprocessing semantics, this number is not reliable. Note that this may raise :exc:`NotImplementedError` on Unix platforms like - MacOS X where ``sem_getvalue()`` is not implemented. + Mac OS X where ``sem_getvalue()`` is not implemented. .. method:: empty() @@ -774,7 +774,7 @@ A bounded semaphore object: a clone of :class:`threading.BoundedSemaphore`. - (On Mac OSX this is indistinguishable from :class:`Semaphore` because + (On Mac OS X this is indistinguishable from :class:`Semaphore` because ``sem_getvalue()`` is not implemented on that platform). .. class:: Condition([lock]) Modified: python/branches/tlee-ast-optimize/Doc/library/optparse.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/optparse.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/optparse.rst Sun Sep 21 06:05:44 2008 @@ -12,7 +12,7 @@ ``optparse`` is a more convenient, flexible, and powerful library for parsing -command-line options than ``getopt``. ``optparse`` uses a more declarative +command-line options than the old :mod:`getopt` module. ``optparse`` uses a more declarative style of command-line parsing: you create an instance of :class:`OptionParser`, populate it with options, and parse the command line. ``optparse`` allows users to specify options in the conventional GNU/POSIX syntax, and additionally Modified: python/branches/tlee-ast-optimize/Doc/library/os.path.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/os.path.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/os.path.rst Sun Sep 21 06:05:44 2008 @@ -226,13 +226,13 @@ Return ``True`` if both pathname arguments refer to the same file or directory (as indicated by device number and i-node number). Raise an exception if a - :func:`os.stat` call on either pathname fails. Availability: Macintosh, Unix. + :func:`os.stat` call on either pathname fails. Availability: Unix. .. function:: sameopenfile(fp1, fp2) Return ``True`` if the file descriptors *fp1* and *fp2* refer to the same file. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: samestat(stat1, stat2) @@ -240,7 +240,7 @@ Return ``True`` if the stat tuples *stat1* and *stat2* refer to the same file. These structures may have been returned by :func:`fstat`, :func:`lstat`, or :func:`stat`. This function implements the underlying comparison used by - :func:`samefile` and :func:`sameopenfile`. Availability: Macintosh, Unix. + :func:`samefile` and :func:`sameopenfile`. Availability: Unix. .. function:: split(path) Modified: python/branches/tlee-ast-optimize/Doc/library/os.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/os.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/os.rst Sun Sep 21 06:05:44 2008 @@ -24,6 +24,11 @@ .. note:: + If not separately noted, all functions that claim "Availability: Unix" are + supported on Mac OS X, which builds on a Unix core. + +.. note:: + All functions in this module raise :exc:`OSError` in the case of invalid or inaccessible file names and paths, or other arguments that have the correct type, but are not accepted by the operating system. @@ -44,7 +49,7 @@ .. data:: path The corresponding operating system dependent standard module for pathname - operations, such as :mod:`posixpath` or :mod:`macpath`. Thus, given the proper + operations, such as :mod:`posixpath` or :mod:`ntpath`. Thus, given the proper imports, ``os.path.split(file)`` is equivalent to but more portable than ``posixpath.split(file)``. Note that this is also an importable module: it may be imported directly as :mod:`os.path`. @@ -81,8 +86,9 @@ .. note:: - On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may cause - memory leaks. Refer to the system documentation for :cfunc:`putenv`. + On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may + cause memory leaks. Refer to the system documentation for + :cfunc:`putenv`. If :func:`putenv` is not provided, a modified copy of this mapping may be passed to the appropriate process-creation functions to cause child processes @@ -202,8 +208,8 @@ .. note:: - On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may cause - memory leaks. Refer to the system documentation for putenv. + On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may + cause memory leaks. Refer to the system documentation for putenv. When :func:`putenv` is supported, assignments to items in ``os.environ`` are automatically translated into corresponding calls to :func:`putenv`; however, @@ -338,7 +344,7 @@ Return an open file object connected to the file descriptor *fd*. The *mode* and *bufsize* arguments have the same meaning as the corresponding arguments to - the built-in :func:`open` function. Availability: Macintosh, Unix, Windows. + the built-in :func:`open` function. Availability: Unix, Windows. .. versionchanged:: 2.3 When specified, the *mode* argument must now start with one of the letters @@ -359,7 +365,7 @@ status of the command (encoded in the format specified for :func:`wait`) is available as the return value of the :meth:`close` method of the file object, except that when the exit status is zero (termination without errors), ``None`` - is returned. Availability: Macintosh, Unix, Windows. + is returned. Availability: Unix, Windows. .. deprecated:: 2.6 This function is obsolete. Use the :mod:`subprocess` module. Check @@ -376,7 +382,7 @@ Return a new file object opened in update mode (``w+b``). The file has no directory entries associated with it and will be automatically deleted once - there are no file descriptors for the file. Availability: Macintosh, Unix, + there are no file descriptors for the file. Availability: Unix, Windows. There are a number of different :func:`popen\*` functions that provide slightly @@ -415,7 +421,7 @@ This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.0 @@ -429,7 +435,7 @@ This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.0 @@ -443,7 +449,7 @@ This function is obsolete. Use the :mod:`subprocess` module. Check especially the :ref:`subprocess-replacements` section. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.0 @@ -473,7 +479,7 @@ .. function:: close(fd) - Close file descriptor *fd*. Availability: Macintosh, Unix, Windows. + Close file descriptor *fd*. Availability: Unix, Windows. .. note:: @@ -486,7 +492,7 @@ .. function:: closerange(fd_low, fd_high) Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive), - ignoring errors. Availability: Macintosh, Unix, Windows. Equivalent to:: + ignoring errors. Availability: Unix, Windows. Equivalent to:: for fd in xrange(fd_low, fd_high): try: @@ -499,14 +505,14 @@ .. function:: dup(fd) - Return a duplicate of file descriptor *fd*. Availability: Macintosh, Unix, + Return a duplicate of file descriptor *fd*. Availability: Unix, Windows. .. function:: dup2(fd, fd2) Duplicate file descriptor *fd* to *fd2*, closing the latter first if necessary. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: fchmod(fd, mode) @@ -541,7 +547,7 @@ additional names as well. The names known to the host operating system are given in the ``pathconf_names`` dictionary. For configuration variables not included in that mapping, passing an integer for *name* is also accepted. - Availability: Macintosh, Unix. + Availability: Unix. If *name* is a string and is not known, :exc:`ValueError` is raised. If a specific value for *name* is not supported by the host system, even if it is @@ -552,7 +558,7 @@ .. function:: fstat(fd) Return status for file descriptor *fd*, like :func:`stat`. Availability: - Macintosh, Unix, Windows. + Unix, Windows. .. function:: fstatvfs(fd) @@ -568,20 +574,20 @@ If you're starting with a Python file object *f*, first do ``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all internal buffers associated - with *f* are written to disk. Availability: Macintosh, Unix, and Windows + with *f* are written to disk. Availability: Unix, and Windows starting in 2.2.3. .. function:: ftruncate(fd, length) Truncate the file corresponding to file descriptor *fd*, so that it is at most - *length* bytes in size. Availability: Macintosh, Unix. + *length* bytes in size. Availability: Unix. .. function:: isatty(fd) Return ``True`` if the file descriptor *fd* is open and connected to a - tty(-like) device, else ``False``. Availability: Macintosh, Unix. + tty(-like) device, else ``False``. Availability: Unix. .. function:: lseek(fd, pos, how) @@ -590,7 +596,7 @@ by *how*: :const:`SEEK_SET` or ``0`` to set the position relative to the beginning of the file; :const:`SEEK_CUR` or ``1`` to set it relative to the current position; :const:`os.SEEK_END` or ``2`` to set it relative to the end of - the file. Availability: Macintosh, Unix, Windows. + the file. Availability: Unix, Windows. .. function:: open(file, flags[, mode]) @@ -598,7 +604,7 @@ Open the file *file* and set various flags according to *flags* and possibly its mode according to *mode*. The default *mode* is ``0777`` (octal), and the current umask value is first masked out. Return the file descriptor for the - newly opened file. Availability: Macintosh, Unix, Windows. + newly opened file. Availability: Unix, Windows. For a description of the flag and mode values, see the C run-time documentation; flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) are defined in @@ -618,21 +624,21 @@ Open a new pseudo-terminal pair. Return a pair of file descriptors ``(master, slave)`` for the pty and the tty, respectively. For a (slightly) more portable - approach, use the :mod:`pty` module. Availability: Macintosh, some flavors of + approach, use the :mod:`pty` module. Availability: some flavors of Unix. .. function:: pipe() Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for reading - and writing, respectively. Availability: Macintosh, Unix, Windows. + and writing, respectively. Availability: Unix, Windows. .. function:: read(fd, n) Read at most *n* bytes from file descriptor *fd*. Return a string containing the bytes read. If the end of the file referred to by *fd* has been reached, an - empty string is returned. Availability: Macintosh, Unix, Windows. + empty string is returned. Availability: Unix, Windows. .. note:: @@ -646,26 +652,26 @@ .. function:: tcgetpgrp(fd) Return the process group associated with the terminal given by *fd* (an open - file descriptor as returned by :func:`open`). Availability: Macintosh, Unix. + file descriptor as returned by :func:`open`). Availability: Unix. .. function:: tcsetpgrp(fd, pg) Set the process group associated with the terminal given by *fd* (an open file - descriptor as returned by :func:`open`) to *pg*. Availability: Macintosh, Unix. + descriptor as returned by :func:`open`) to *pg*. Availability: Unix. .. function:: ttyname(fd) Return a string which specifies the terminal device associated with file descriptor *fd*. If *fd* is not associated with a terminal device, an - exception is raised. Availability:Macintosh, Unix. + exception is raised. Availability: Unix. .. function:: write(fd, str) Write the string *str* to file descriptor *fd*. Return the number of bytes - actually written. Availability: Macintosh, Unix, Windows. + actually written. Availability: Unix, Windows. .. note:: @@ -690,7 +696,7 @@ O_TRUNC Options for the *flag* argument to the :func:`open` function. These can be - combined using the bitwise OR operator ``|``. Availability: Macintosh, Unix, Windows. + combined using the bitwise OR operator ``|``. Availability: Unix, Windows. .. data:: O_DSYNC @@ -703,7 +709,7 @@ O_EXLOCK More options for the *flag* argument to the :func:`open` function. Availability: - Macintosh, Unix. + Unix. .. data:: O_BINARY @@ -733,7 +739,7 @@ SEEK_END Parameters to the :func:`lseek` function. Their values are 0, 1, and 2, - respectively. Availability: Windows, Macintosh, Unix. + respectively. Availability: Windows, Unix. .. versionadded:: 2.5 @@ -752,7 +758,7 @@ can be the inclusive OR of one or more of :const:`R_OK`, :const:`W_OK`, and :const:`X_OK` to test permissions. Return :const:`True` if access is allowed, :const:`False` if not. See the Unix man page :manpage:`access(2)` for more - information. Availability: Macintosh, Unix, Windows. + information. Availability: Unix, Windows. .. note:: @@ -796,7 +802,7 @@ .. index:: single: directory; changing - Change the current working directory to *path*. Availability: Macintosh, Unix, + Change the current working directory to *path*. Availability: Unix, Windows. @@ -812,13 +818,13 @@ .. function:: getcwd() Return a string representing the current working directory. Availability: - Macintosh, Unix, Windows. + Unix, Windows. .. function:: getcwdu() Return a Unicode object representing the current working directory. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionadded:: 2.3 @@ -839,7 +845,7 @@ * ``SF_NOUNLINK`` * ``SF_SNAPSHOT`` - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.6 @@ -847,7 +853,7 @@ .. function:: chroot(path) Change the root directory of the current process to *path*. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.2 @@ -879,7 +885,7 @@ * ``stat.S_IWOTH`` * ``stat.S_IXOTH`` - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. note:: @@ -892,7 +898,7 @@ .. function:: chown(path, uid, gid) Change the owner and group id of *path* to the numeric *uid* and *gid*. To leave - one of the ids unchanged, set it to -1. Availability: Macintosh, Unix. + one of the ids unchanged, set it to -1. Availability: Unix. .. function:: lchflags(path, flags) @@ -915,21 +921,21 @@ .. function:: lchown(path, uid, gid) Change the owner and group id of *path* to the numeric *uid* and *gid*. This - function will not follow symbolic links. Availability: Macintosh, Unix. + function will not follow symbolic links. Availability: Unix. .. versionadded:: 2.3 .. function:: link(src, dst) - Create a hard link pointing to *src* named *dst*. Availability: Macintosh, Unix. + Create a hard link pointing to *src* named *dst*. Availability: Unix. .. function:: listdir(path) Return a list containing the names of the entries in the directory. The list is in arbitrary order. It does not include the special entries ``'.'`` and - ``'..'`` even if they are present in the directory. Availability: Macintosh, + ``'..'`` even if they are present in the directory. Availability: Unix, Windows. .. versionchanged:: 2.3 @@ -948,7 +954,7 @@ Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The default *mode* is ``0666`` (octal). The current umask value is first masked out from - the mode. Availability: Macintosh, Unix. + the mode. Availability: Unix. FIFOs are pipes that can be accessed like regular files. FIFOs exist until they are deleted (for example with :func:`os.unlink`). Generally, FIFOs are used as @@ -998,7 +1004,7 @@ Create a directory named *path* with numeric mode *mode*. The default *mode* is ``0777`` (octal). On some systems, *mode* is ignored. Where it is used, the - current umask value is first masked out. Availability: Macintosh, Unix, Windows. + current umask value is first masked out. Availability: Unix, Windows. It is also possible to create temporary directories; see the :mod:`tempfile` module's :func:`tempfile.mkdtemp` function. @@ -1036,7 +1042,7 @@ additional names as well. The names known to the host operating system are given in the ``pathconf_names`` dictionary. For configuration variables not included in that mapping, passing an integer for *name* is also accepted. - Availability: Macintosh, Unix. + Availability: Unix. If *name* is a string and is not known, :exc:`ValueError` is raised. If a specific value for *name* is not supported by the host system, even if it is @@ -1049,7 +1055,7 @@ Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` to the integer values defined for those names by the host operating system. This can be used to determine the set of names known to the system. Availability: - Macintosh, Unix. + Unix. .. function:: readlink(path) @@ -1062,7 +1068,7 @@ .. versionchanged:: 2.6 If the *path* is a Unicode object the result will also be a Unicode object. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: remove(path) @@ -1072,7 +1078,7 @@ :func:`unlink` function documented below. On Windows, attempting to remove a file that is in use causes an exception to be raised; on Unix, the directory entry is removed but the storage allocated to the file is not made available - until the original file is no longer in use. Availability: Macintosh, Unix, + until the original file is no longer in use. Availability: Unix, Windows. @@ -1101,7 +1107,7 @@ the renaming will be an atomic operation (this is a POSIX requirement). On Windows, if *dst* already exists, :exc:`OSError` will be raised even if it is a file; there may be no way to implement an atomic rename when *dst* names an - existing file. Availability: Macintosh, Unix, Windows. + existing file. Availability: Unix, Windows. .. function:: renames(old, new) @@ -1121,7 +1127,7 @@ .. function:: rmdir(path) - Remove the directory *path*. Availability: Macintosh, Unix, Windows. + Remove the directory *path*. Availability: Unix, Windows. .. function:: stat(path) @@ -1185,7 +1191,7 @@ :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` has only 1-day resolution. See your operating system documentation for details. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. versionchanged:: 2.2 Added access to values as attributes of the returned object. @@ -1265,7 +1271,7 @@ Use of :func:`tempnam` is vulnerable to symlink attacks; consider using :func:`tmpfile` (section :ref:`os-newstreams`) instead. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: tmpnam() @@ -1297,7 +1303,7 @@ .. function:: unlink(path) Remove the file *path*. This is the same function as :func:`remove`; the - :func:`unlink` name is its traditional Unix name. Availability: Macintosh, Unix, + :func:`unlink` name is its traditional Unix name. Availability: Unix, Windows. @@ -1317,7 +1323,7 @@ .. versionchanged:: 2.0 Added support for ``None`` for *times*. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: walk(top[, topdown=True [, onerror=None[, followlinks=False]]]) @@ -1430,7 +1436,7 @@ behavior is to produce a core dump; on Windows, the process immediately returns an exit code of ``3``. Be aware that programs which use :func:`signal.signal` to register a handler for :const:`SIGABRT` will behave differently. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. .. function:: execl(path, arg0, arg1, ...) @@ -1471,14 +1477,14 @@ used to define the environment variables for the new process (these are used instead of the current process' environment); the functions :func:`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new process to - inherit the environment of the current process. Availability: Macintosh, Unix, + inherit the environment of the current process. Availability: Unix, Windows. .. function:: _exit(n) Exit to the system with status *n*, without calling cleanup handlers, flushing - stdio buffers, etc. Availability: Macintosh, Unix, Windows. + stdio buffers, etc. Availability: Unix, Windows. .. note:: @@ -1498,7 +1504,7 @@ .. data:: EX_OK - Exit code that means no error occurred. Availability: Macintosh, Unix. + Exit code that means no error occurred. Availability: Unix. .. versionadded:: 2.3 @@ -1506,15 +1512,14 @@ .. data:: EX_USAGE Exit code that means the command was used incorrectly, such as when the wrong - number of arguments are given. Availability: Macintosh, Unix. + number of arguments are given. Availability: Unix. .. versionadded:: 2.3 .. data:: EX_DATAERR - Exit code that means the input data was incorrect. Availability: Macintosh, - Unix. + Exit code that means the input data was incorrect. Availability: Unix. .. versionadded:: 2.3 @@ -1522,23 +1527,21 @@ .. data:: EX_NOINPUT Exit code that means an input file did not exist or was not readable. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 .. data:: EX_NOUSER - Exit code that means a specified user did not exist. Availability: Macintosh, - Unix. + Exit code that means a specified user did not exist. Availability: Unix. .. versionadded:: 2.3 .. data:: EX_NOHOST - Exit code that means a specified host did not exist. Availability: Macintosh, - Unix. + Exit code that means a specified host did not exist. Availability: Unix. .. versionadded:: 2.3 @@ -1546,7 +1549,7 @@ .. data:: EX_UNAVAILABLE Exit code that means that a required service is unavailable. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1554,7 +1557,7 @@ .. data:: EX_SOFTWARE Exit code that means an internal software error was detected. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1562,7 +1565,7 @@ .. data:: EX_OSERR Exit code that means an operating system error was detected, such as the - inability to fork or create a pipe. Availability: Macintosh, Unix. + inability to fork or create a pipe. Availability: Unix. .. versionadded:: 2.3 @@ -1570,7 +1573,7 @@ .. data:: EX_OSFILE Exit code that means some system file did not exist, could not be opened, or had - some other kind of error. Availability: Macintosh, Unix. + some other kind of error. Availability: Unix. .. versionadded:: 2.3 @@ -1578,7 +1581,7 @@ .. data:: EX_CANTCREAT Exit code that means a user specified output file could not be created. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 @@ -1586,7 +1589,7 @@ .. data:: EX_IOERR Exit code that means that an error occurred while doing I/O on some file. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 @@ -1595,7 +1598,7 @@ Exit code that means a temporary failure occurred. This indicates something that may not really be an error, such as a network connection that couldn't be - made during a retryable operation. Availability: Macintosh, Unix. + made during a retryable operation. Availability: Unix. .. versionadded:: 2.3 @@ -1603,7 +1606,7 @@ .. data:: EX_PROTOCOL Exit code that means that a protocol exchange was illegal, invalid, or not - understood. Availability: Macintosh, Unix. + understood. Availability: Unix. .. versionadded:: 2.3 @@ -1611,8 +1614,7 @@ .. data:: EX_NOPERM Exit code that means that there were insufficient permissions to perform the - operation (but not intended for file system problems). Availability: Macintosh, - Unix. + operation (but not intended for file system problems). Availability: Unix. .. versionadded:: 2.3 @@ -1620,7 +1622,7 @@ .. data:: EX_CONFIG Exit code that means that some kind of configuration error occurred. - Availability: Macintosh, Unix. + Availability: Unix. .. versionadded:: 2.3 @@ -1628,7 +1630,7 @@ .. data:: EX_NOTFOUND Exit code that means something like "an entry was not found". Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1637,7 +1639,7 @@ Fork a child process. Return ``0`` in the child and the child's process id in the parent. If an error occurs :exc:`OSError` is raised. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: forkpty() @@ -1647,7 +1649,7 @@ new child's process id in the parent, and *fd* is the file descriptor of the master end of the pseudo-terminal. For a more portable approach, use the :mod:`pty` module. If an error occurs :exc:`OSError` is raised. - Availability: Macintosh, some flavors of Unix. + Availability: some flavors of Unix. .. function:: kill(pid, sig) @@ -1658,7 +1660,7 @@ Send signal *sig* to the process *pid*. Constants for the specific signals available on the host platform are defined in the :mod:`signal` module. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: killpg(pgid, sig) @@ -1667,8 +1669,7 @@ single: process; killing single: process; signalling - Send the signal *sig* to the process group *pgid*. Availability: Macintosh, - Unix. + Send the signal *sig* to the process group *pgid*. Availability: Unix. .. versionadded:: 2.3 @@ -1676,14 +1677,13 @@ .. function:: nice(increment) Add *increment* to the process's "niceness". Return the new niceness. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: plock(op) Lock program segments into memory. The value of *op* (defined in - ````) determines which segments are locked. Availability: Macintosh, - Unix. + ````) determines which segments are locked. Availability: Unix. .. function:: popen(...) @@ -1765,7 +1765,7 @@ Possible values for the *mode* parameter to the :func:`spawn\*` family of functions. If either of these values is given, the :func:`spawn\*` functions will return as soon as the new process has been created, with the process id as - the return value. Availability: Macintosh, Unix, Windows. + the return value. Availability: Unix, Windows. .. versionadded:: 1.6 @@ -1776,7 +1776,7 @@ functions. If this is given as *mode*, the :func:`spawn\*` functions will not return until the new process has run to completion and will return the exit code of the process the run is successful, or ``-signal`` if a signal kills the - process. Availability: Macintosh, Unix, Windows. + process. Availability: Unix, Windows. .. versionadded:: 1.6 @@ -1841,7 +1841,7 @@ the command run; on systems using a non-native shell, consult your shell documentation. - Availability: Macintosh, Unix, Windows. + Availability: Unix, Windows. The :mod:`subprocess` module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using @@ -1855,7 +1855,7 @@ other) times, in seconds. The items are: user time, system time, children's user time, children's system time, and elapsed real time since a fixed point in the past, in that order. See the Unix manual page :manpage:`times(2)` or the - corresponding Windows Platform API documentation. Availability: Macintosh, Unix, + corresponding Windows Platform API documentation. Availability: Unix, Windows. On Windows, only the first two items are filled, the others are zero. @@ -1865,7 +1865,7 @@ and exit status indication: a 16-bit number, whose low byte is the signal number that killed the process, and whose high byte is the exit status (if the signal number is zero); the high bit of the low byte is set if a core file was - produced. Availability: Macintosh, Unix. + produced. Availability: Unix. .. function:: waitpid(pid, options) @@ -1923,7 +1923,7 @@ The option for :func:`waitpid` to return immediately if no child process status is available immediately. The function returns ``(0, 0)`` in this case. - Availability: Macintosh, Unix. + Availability: Unix. .. data:: WCONTINUED @@ -1939,7 +1939,7 @@ This option causes child processes to be reported if they have been stopped but their current state has not been reported since they were stopped. Availability: - Macintosh, Unix. + Unix. .. versionadded:: 2.3 @@ -1951,7 +1951,7 @@ .. function:: WCOREDUMP(status) Return ``True`` if a core dump was generated for the process, otherwise - return ``False``. Availability: Macintosh, Unix. + return ``False``. Availability: Unix. .. versionadded:: 2.3 @@ -1973,32 +1973,30 @@ .. function:: WIFSIGNALED(status) Return ``True`` if the process exited due to a signal, otherwise return - ``False``. Availability: Macintosh, Unix. + ``False``. Availability: Unix. .. function:: WIFEXITED(status) Return ``True`` if the process exited using the :manpage:`exit(2)` system call, - otherwise return ``False``. Availability: Macintosh, Unix. + otherwise return ``False``. Availability: Unix. .. function:: WEXITSTATUS(status) If ``WIFEXITED(status)`` is true, return the integer parameter to the :manpage:`exit(2)` system call. Otherwise, the return value is meaningless. - Availability: Macintosh, Unix. + Availability: Unix. .. function:: WSTOPSIG(status) - Return the signal which caused the process to stop. Availability: Macintosh, - Unix. + Return the signal which caused the process to stop. Availability: Unix. .. function:: WTERMSIG(status) - Return the signal which caused the process to exit. Availability: Macintosh, - Unix. + Return the signal which caused the process to exit. Availability: Unix. .. _os-path: @@ -2016,7 +2014,7 @@ The names known to the host operating system are given as the keys of the ``confstr_names`` dictionary. For configuration variables not included in that mapping, passing an integer for *name* is also accepted. Availability: - Macintosh, Unix. + Unix. If the configuration value specified by *name* isn't defined, ``None`` is returned. @@ -2031,7 +2029,7 @@ Dictionary mapping names accepted by :func:`confstr` to the integer values defined for those names by the host operating system. This can be used to - determine the set of names known to the system. Availability: Macintosh, Unix. + determine the set of names known to the system. Availability: Unix. .. function:: getloadavg() @@ -2049,14 +2047,14 @@ specified by *name* isn't defined, ``-1`` is returned. The comments regarding the *name* parameter for :func:`confstr` apply here as well; the dictionary that provides information on the known names is given by ``sysconf_names``. - Availability: Macintosh, Unix. + Availability: Unix. .. data:: sysconf_names Dictionary mapping names accepted by :func:`sysconf` to the integer values defined for those names by the host operating system. This can be used to - determine the set of names known to the system. Availability: Macintosh, Unix. + determine the set of names known to the system. Availability: Unix. The following data values are used to support path manipulation operations. These are defined for all platforms. @@ -2067,22 +2065,22 @@ .. data:: curdir The constant string used by the operating system to refer to the current - directory. For example: ``'.'`` for POSIX or ``':'`` for Mac OS 9. Also - available via :mod:`os.path`. + directory. This is ``'.'`` for Windows and POSIX. Also available via + :mod:`os.path`. .. data:: pardir The constant string used by the operating system to refer to the parent - directory. For example: ``'..'`` for POSIX or ``'::'`` for Mac OS 9. Also - available via :mod:`os.path`. + directory. This is ``'..'`` for Windows and POSIX. Also available via + :mod:`os.path`. .. data:: sep - The character used by the operating system to separate pathname components, for - example, ``'/'`` for POSIX or ``':'`` for Mac OS 9. Note that knowing this is - not sufficient to be able to parse or concatenate pathnames --- use + The character used by the operating system to separate pathname components. + This is ``'/'`` for POSIX and ``'\\'`` for Windows. Note that knowing this + is not sufficient to be able to parse or concatenate pathnames --- use :func:`os.path.split` and :func:`os.path.join` --- but it is occasionally useful. Also available via :mod:`os.path`. @@ -2119,16 +2117,16 @@ .. data:: linesep The string used to separate (or, rather, terminate) lines on the current - platform. This may be a single character, such as ``'\n'`` for POSIX or - ``'\r'`` for Mac OS, or multiple characters, for example, ``'\r\n'`` for - Windows. Do not use *os.linesep* as a line terminator when writing files opened - in text mode (the default); use a single ``'\n'`` instead, on all platforms. + platform. This may be a single character, such as ``'\n'`` for POSIX, or + multiple characters, for example, ``'\r\n'`` for Windows. Do not use + *os.linesep* as a line terminator when writing files opened in text mode (the + default); use a single ``'\n'`` instead, on all platforms. .. data:: devnull - The file path of the null device. For example: ``'/dev/null'`` for POSIX or - ``'Dev:Nul'`` for Mac OS 9. Also available via :mod:`os.path`. + The file path of the null device. For example: ``'/dev/null'`` for POSIX. + Also available via :mod:`os.path`. .. versionadded:: 2.4 Modified: python/branches/tlee-ast-optimize/Doc/library/plistlib.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/plistlib.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/plistlib.rst Sun Sep 21 06:05:44 2008 @@ -1,8 +1,8 @@ -:mod:`plistlib` --- Generate and parse MacOS X ``.plist`` files -=============================================================== +:mod:`plistlib` --- Generate and parse Mac OS X ``.plist`` files +================================================================ .. module:: plistlib - :synopsis: Generate and parse MacOS X plist files. + :synopsis: Generate and parse Mac OS X plist files. .. moduleauthor:: Jack Jansen .. sectionauthor:: Georg Brandl .. (harvested from docstrings in the original file) @@ -16,7 +16,7 @@ single: property list This module provides an interface for reading and writing the "property list" -XML files used mainly by MacOS X. +XML files used mainly by Mac OS X. The property list (``.plist``) file format is a simple XML pickle supporting basic object types, like dictionaries, lists, numbers and strings. Usually the @@ -73,7 +73,7 @@ .. function:: readPlistFromResource(path[, restype='plst'[, resid=0]]) Read a plist from the resource with type *restype* from the resource fork of - *path*. Availability: MacOS X. + *path*. Availability: Mac OS X. .. warning:: @@ -84,7 +84,7 @@ .. function:: writePlistToResource(rootObject, path[, restype='plst'[, resid=0]]) Write *rootObject* as a resource with type *restype* to the resource fork of - *path*. Availability: MacOS X. + *path*. Availability: Mac OS X. .. warning:: Modified: python/branches/tlee-ast-optimize/Doc/library/shutil.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/shutil.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/shutil.rst Sun Sep 21 06:05:44 2008 @@ -22,7 +22,7 @@ can't copy all file metadata. On POSIX platforms, this means that file owner and group are lost as well - as ACLs. On MacOS, the resource fork and other metadata are not used. + as ACLs. On Mac OS, the resource fork and other metadata are not used. This means that resources will be lost and file type and creator codes will not be correct. On Windows, file owners, ACLs and alternate data streams are not copied. Modified: python/branches/tlee-ast-optimize/Doc/library/signal.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/signal.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/signal.rst Sun Sep 21 06:05:44 2008 @@ -188,7 +188,7 @@ Change system call restart behaviour: if *flag* is :const:`False`, system calls will be restarted when interrupted by signal *signalnum*, otherwise system calls will - be interrupted. Returns nothing. Availability: Unix, Mac (see the man page + be interrupted. Returns nothing. Availability: Unix (see the man page :manpage:`siginterrupt(3)` for further information). Note that installing a signal handler with :func:`signal` will reset the restart Modified: python/branches/tlee-ast-optimize/Doc/library/ssl.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/ssl.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/ssl.rst Sun Sep 21 06:05:44 2008 @@ -327,9 +327,10 @@ Performs the SSL shutdown handshake, which removes the TLS layer from the underlying socket, and returns the underlying socket object. This can be used to go from encrypted operation over a - connection to unencrypted. The returned socket should always be + connection to unencrypted. The socket instance returned should always be used for further communication with the other side of the - connection, rather than the original socket + connection, rather than the original socket instance (which may + not function properly after the unwrap). .. index:: single: certificates Modified: python/branches/tlee-ast-optimize/Doc/library/stdtypes.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/stdtypes.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/stdtypes.rst Sun Sep 21 06:05:44 2008 @@ -449,7 +449,18 @@ Additional Methods on Float --------------------------- -The float type has some additional methods to support conversion to +The float type has some additional methods. + +.. method:: float.as_integer_ratio() + + Return a pair of integers whose ratio is exactly equal to the + original float and with a positive denominator. Raises + :exc:`OverflowError` on infinities and a :exc:`ValueError` on + NaNs. + + .. versionadded:: 2.6 + +Two methods support conversion to and from hexadecimal strings. Since Python's floats are stored internally as binary numbers, converting a float to or from a *decimal* string usually involves a small rounding error. In Modified: python/branches/tlee-ast-optimize/Doc/library/string.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/string.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/string.rst Sun Sep 21 06:05:44 2008 @@ -375,9 +375,9 @@ | | positive numbers, and a minus sign on negative numbers. | +---------+----------------------------------------------------------+ -The ``'#'`` option is only valid for integers, and only for binary, -octal, or decimal output. If present, it specifies that the output -will be prefixed by ``'0b'``, ``'0o'``, or ``'0x'``, respectively. +The ``'#'`` option is only valid for integers, and only for binary, octal, or +hexadecimal output. If present, it specifies that the output will be prefixed +by ``'0b'``, ``'0o'``, or ``'0x'``, respectively. *width* is a decimal integer defining the minimum field width. If not specified, then the field width will be determined by the content. Modified: python/branches/tlee-ast-optimize/Doc/library/subprocess.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/subprocess.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/subprocess.rst Sun Sep 21 06:05:44 2008 @@ -104,7 +104,7 @@ If *universal_newlines* is :const:`True`, the file objects stdout and stderr are opened as text files, but lines may be terminated by any of ``'\n'``, the Unix - end-of-line convention, ``'\r'``, the Macintosh convention or ``'\r\n'``, the + end-of-line convention, ``'\r'``, the old Macintosh convention or ``'\r\n'``, the Windows convention. All of these external representations are seen as ``'\n'`` by the Python program. Modified: python/branches/tlee-ast-optimize/Doc/library/sys.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/sys.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/sys.rst Sun Sep 21 06:05:44 2008 @@ -582,8 +582,8 @@ ================ =========================== Windows ``'win32'`` Windows/Cygwin ``'cygwin'`` - MacOS X ``'darwin'`` - MacOS 9 ``'mac'`` + Mac OS X ``'darwin'`` + Mac OS 9 ``'mac'`` OS/2 ``'os2'`` OS/2 EMX ``'os2emx'`` RiscOS ``'riscos'`` Modified: python/branches/tlee-ast-optimize/Doc/library/test.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/test.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/test.rst Sun Sep 21 06:05:44 2008 @@ -291,18 +291,26 @@ This will run all tests defined in the named module. -.. function:: catch_warning(module=warnings, record=True) +.. function:: check_warnings() - Return a context manager that guards the warnings filter from being - permanently changed and optionally alters the :func:`showwarning` - function to record the details of any warnings that are issued in the - managed context. Details of the most recent call to :func:`showwarning` - are saved directly on the context manager, while details of previous - warnings can be retrieved from the ``warnings`` list. + A convenience wrapper for ``warnings.catch_warnings()`` that makes + it easier to test that a warning was correctly raised with a single + assertion. It is approximately equivalent to calling + ``warnings.catch_warnings(record=True)``. + + The main difference is that on entry to the context manager, a + :class:`WarningRecorder` instance is returned instead of a simple list. + The underlying warnings list is available via the recorder object's + :attr:`warnings` attribute, while the attributes of the last raised + warning are also accessible directly on the object. If no warning has + been raised, then the latter attributes will all be :const:`None`. + + A :meth:`reset` method is also provided on the recorder object. This + method simply clears the warning list. The context manager is used like this:: - with catch_warning() as w: + with check_warnings() as w: warnings.simplefilter("always") warnings.warn("foo") assert str(w.message) == "foo" @@ -310,15 +318,8 @@ assert str(w.message) == "bar" assert str(w.warnings[0].message) == "foo" assert str(w.warnings[1].message) == "bar" - - By default, the real :mod:`warnings` module is affected - the ability - to select a different module is provided for the benefit of the - :mod:`warnings` module's own unit tests. - The ``record`` argument specifies whether or not the :func:`showwarning` - function is replaced. Note that recording the warnings in this fashion - also prevents them from being written to sys.stderr. If set to ``False``, - the standard handling of warning messages is left in place (however, the - original handling is still restored at the end of the block). + w.reset() + assert len(w.warnings) == 0 .. versionadded:: 2.6 @@ -366,4 +367,10 @@ Temporarily unset the environment variable ``envvar``. +.. class:: WarningsRecorder() + + Class used to record warnings for unit tests. See documentation of + :func:`check_warnings` above for more details. + + .. versionadded:: 2.6 Modified: python/branches/tlee-ast-optimize/Doc/library/time.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/time.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/time.rst Sun Sep 21 06:05:44 2008 @@ -67,8 +67,7 @@ * The precision of the various real-time functions may be less than suggested by the units in which their value or argument is expressed. E.g. on most Unix - systems, the clock "ticks" only 50 or 100 times a second, and on the Mac, times - are only accurate to whole seconds. + systems, the clock "ticks" only 50 or 100 times a second. * On the other hand, the precision of :func:`time` and :func:`sleep` is better than their Unix equivalents: times are expressed as floating point numbers, Modified: python/branches/tlee-ast-optimize/Doc/library/tkinter.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/tkinter.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/tkinter.rst Sun Sep 21 06:05:44 2008 @@ -8,8 +8,8 @@ The :mod:`Tkinter` module ("Tk interface") is the standard Python interface to the Tk GUI toolkit. Both Tk and :mod:`Tkinter` are available on most Unix -platforms, as well as on Windows and Macintosh systems. (Tk itself is not part -of Python; it is maintained at ActiveState.) +platforms, as well as on Windows systems. (Tk itself is not part of Python; it +is maintained at ActiveState.) .. note:: Modified: python/branches/tlee-ast-optimize/Doc/library/unicodedata.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/unicodedata.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/unicodedata.rst Sun Sep 21 06:05:44 2008 @@ -16,11 +16,11 @@ This module provides access to the Unicode Character Database which defines character properties for all Unicode characters. The data in this database is -based on the :file:`UnicodeData.txt` file version 4.1.0 which is publicly +based on the :file:`UnicodeData.txt` file version 5.1.0 which is publicly available from ftp://ftp.unicode.org/. The module uses the same names and symbols as defined by the UnicodeData File -Format 4.1.0 (see http://www.unicode.org/Public/4.1.0/ucd/UCD.html). It defines +Format 5.1.0 (see http://www.unicode.org/Public/5.1.0/ucd/UCD.html). It defines the following functions: Modified: python/branches/tlee-ast-optimize/Doc/library/warnings.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/warnings.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/warnings.rst Sun Sep 21 06:05:44 2008 @@ -158,6 +158,75 @@ warnings.simplefilter('default', ImportWarning) +.. _warning-suppress: + +Temporarily Suppressing Warnings +-------------------------------- + +If you are using code that you know will raise a warning, such as a deprecated +function, but do not want to see the warning, then it is possible to suppress +the warning using the :class:`catch_warnings` context manager:: + + import warnings + + def fxn(): + warnings.warn("deprecated", DeprecationWarning) + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + fxn() + +While within the context manager all warnings will simply be ignored. This +allows you to use known-deprecated code without having to see the warning while +not suppressing the warning for other code that might not be aware of its use +of deprecated code. + + +.. _warning-testing: + +Testing Warnings +---------------- + +To test warnings raised by code, use the :class:`catch_warnings` context +manager. With it you can temporarily mutate the warnings filter to facilitate +your testing. For instance, do the following to capture all raised warnings to +check:: + + import warnings + + def fxn(): + warnings.warn("deprecated", DeprecationWarning) + + with warnings.catch_warnings(record=True) as w: + # Cause all warnings to always be triggered. + warnings.simplefilter("always") + # Trigger a warning. + fxn() + # Verify some things + assert len(w) == 1 + assert isinstance(w[-1].category, DeprecationWarning) + assert "deprecated" in str(w[-1].message) + +One can also cause all warnings to be exceptions by using ``error`` instead of +``always``. One thing to be aware of is that if a warning has already been +raised because of a ``once``/``default`` rule, then no matter what filters are +set the warning will not be seen again unless the warnings registry related to +the warning has been cleared. + +Once the context manager exits, the warnings filter is restored to its state +when the context was entered. This prevents tests from changing the warnings +filter in unexpected ways between tests and leading to indeterminate test +results. The :func:`showwarning` function in the module is also restored to +its original value. + +When testing multiple operations that raise the same kind of warning, it +is important to test them in a manner that confirms each operation is raising +a new warning (e.g. set warnings to be raised as exceptions and check the +operations raise exceptions, check that the length of the warning list +continues to increase after each operation, or else delete the previous +entries from the warnings list before each new operation). + + .. _warning-functions: Available Functions @@ -264,31 +333,24 @@ and calls to :func:`simplefilter`. -Available Classes ------------------ +Available Context Managers +-------------------------- -.. class:: catch_warnings([\*, record=False[, module=None]]) +.. class:: catch_warnings([\*, record=False, module=None]) - A context manager that guards the warnings filter from being permanently - mutated. The manager returns an instance of :class:`WarningsRecorder`. The - *record* argument specifies whether warnings that would typically be - handled by :func:`showwarning` should instead be recorded by the - :class:`WarningsRecorder` instance. This argument is typically set when - testing for expected warnings behavior. The *module* argument may be a - module object that is to be used instead of the :mod:`warnings` module. - This argument should only be set when testing the :mod:`warnings` module - or some similar use-case. - - Typical usage of the context manager is like so:: - - def fxn(): - warn("fxn is deprecated", DeprecationWarning) - return "spam spam bacon spam" - - # The function 'fxn' is known to raise a DeprecationWarning. - with catch_warnings() as w: - warnings.filterwarning('ignore', 'fxn is deprecated', DeprecationWarning) - fxn() # DeprecationWarning is temporarily suppressed. + A context manager that copies and, upon exit, restores the warnings filter + and the :func:`showwarning` function. + If the *record* argument is :const:`False` (the default) the context manager + returns :class:`None` on entry. If *record* is :const:`True`, a list is + returned that is progressively populated with objects as seen by a custom + :func:`showwarning` function (which also suppresses output to ``sys.stdout``). + Each object in the list has attributes with the same names as the arguments to + :func:`showwarning`. + + The *module* argument takes a module that will be used instead of the + module returned when you import :mod:`warnings` whose filter will be + protected. This argument exists primarily for testing the :mod:`warnings` + module itself. .. note:: @@ -297,19 +359,3 @@ .. versionadded:: 2.6 - -.. class:: WarningsRecorder() - - A subclass of :class:`list` that stores all warnings passed to - :func:`showwarning` when returned by a :class:`catch_warnings` context - manager created with its *record* argument set to ``True``. Each recorded - warning is represented by an object whose attributes correspond to the - arguments to :func:`showwarning`. As a convenience, a - :class:`WarningsRecorder` instance has the attributes of the last - recorded warning set on the :class:`WarningsRecorder` instance as well. - - .. method:: reset() - - Delete all recorded warnings. - - .. versionadded:: 2.6 Modified: python/branches/tlee-ast-optimize/Doc/library/webbrowser.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/library/webbrowser.rst (original) +++ python/branches/tlee-ast-optimize/Doc/library/webbrowser.rst Sun Sep 21 06:05:44 2008 @@ -151,10 +151,10 @@ Only on Windows platforms. (3) - Only on MacOS platforms; requires the standard MacPython :mod:`ic` module. + Only on Mac OS platforms; requires the standard MacPython :mod:`ic` module. (4) - Only on MacOS X platform. + Only on Mac OS X platform. Here are some simple examples:: Modified: python/branches/tlee-ast-optimize/Doc/reference/index.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/reference/index.rst (original) +++ python/branches/tlee-ast-optimize/Doc/reference/index.rst Sun Sep 21 06:05:44 2008 @@ -1,7 +1,7 @@ .. _reference-index: ################################# - The Python language reference + The Python Language Reference ################################# :Release: |version| Modified: python/branches/tlee-ast-optimize/Doc/reference/lexical_analysis.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/reference/lexical_analysis.rst (original) +++ python/branches/tlee-ast-optimize/Doc/reference/lexical_analysis.rst Sun Sep 21 06:05:44 2008 @@ -75,7 +75,7 @@ A physical line is a sequence of characters terminated by an end-of-line sequence. In source files, any of the standard platform line termination sequences can be used - the Unix form using ASCII LF (linefeed), the Windows -form using the ASCII sequence CR LF (return followed by linefeed), or the +form using the ASCII sequence CR LF (return followed by linefeed), or the old Macintosh form using the ASCII CR (return) character. All of these forms can be used equally, regardless of platform. Modified: python/branches/tlee-ast-optimize/Doc/tutorial/appetite.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/appetite.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/appetite.rst Sun Sep 21 06:05:44 2008 @@ -23,7 +23,7 @@ tasks, but shell scripts are best at moving around files and changing text data, not well-suited for GUI applications or games. You could write a C/C++/Java program, but it can take a lot of development time to get even a first-draft -program. Python is simpler to use, available on Windows, MacOS X, and Unix +program. Python is simpler to use, available on Windows, Mac OS X, and Unix operating systems, and will help you get the job done more quickly. Python is simple to use, but it is a real programming language, offering much Modified: python/branches/tlee-ast-optimize/Doc/tutorial/classes.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/classes.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/classes.rst Sun Sep 21 06:05:44 2008 @@ -208,7 +208,7 @@ definition looked like this:: class MyClass: - "A simple example class" + """A simple example class""" i = 12345 def f(self): return 'hello world' Modified: python/branches/tlee-ast-optimize/Doc/tutorial/controlflow.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/controlflow.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/controlflow.rst Sun Sep 21 06:05:44 2008 @@ -17,6 +17,7 @@ example:: >>> x = int(raw_input("Please enter an integer: ")) + Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print 'Negative changed to zero' @@ -26,7 +27,8 @@ ... print 'Single' ... else: ... print 'More' - ... + ... + More There can be zero or more :keyword:`elif` parts, and the :keyword:`else` part is optional. The keyword ':keyword:`elif`' is short for 'else if', and is useful @@ -161,7 +163,7 @@ required syntactically but the program requires no action. For example:: >>> while True: - ... pass # Busy-wait for keyboard interrupt + ... pass # Busy-wait for keyboard interrupt (Ctrl+C) ... @@ -192,14 +194,14 @@ The keyword :keyword:`def` introduces a function *definition*. It must be followed by the function name and the parenthesized list of formal parameters. The statements that form the body of the function start at the next line, and -must be indented. The first statement of the function body can optionally be a -string literal; this string literal is the function's documentation string, or -:dfn:`docstring`. +must be indented. +The first statement of the function body can optionally be a string literal; +this string literal is the function's documentation string, or :dfn:`docstring`. +(More about docstrings can be found in the section :ref:`tut-docstrings`.) There are tools which use docstrings to automatically produce online or printed documentation, or to let the user interactively browse through code; it's good -practice to include docstrings in code that you write, so try to make a habit of -it. +practice to include docstrings in code that you write, so make a habit of it. The *execution* of a function introduces a new symbol table used for the local variables of the function. More precisely, all variable assignments in a @@ -228,12 +230,12 @@ >>> f(100) 1 1 2 3 5 8 13 21 34 55 89 -You might object that ``fib`` is not a function but a procedure. In Python, -like in C, procedures are just functions that don't return a value. In fact, -technically speaking, procedures do return a value, albeit a rather boring one. -This value is called ``None`` (it's a built-in name). Writing the value -``None`` is normally suppressed by the interpreter if it would be the only value -written. You can see it if you really want to using :keyword:`print`:: +Coming from other languages, you might object that ``fib`` is not a function but +a procedure since it doesn't return a value. In fact, even functions without a +:keyword:`return` statement do return a value, albeit a rather boring one. This +value is called ``None`` (it's a built-in name). Writing the value ``None`` is +normally suppressed by the interpreter if it would be the only value written. +You can see it if you really want to using :keyword:`print`:: >>> fib(0) >>> print fib(0) @@ -259,7 +261,7 @@ * The :keyword:`return` statement returns with a value from a function. :keyword:`return` without an expression argument returns ``None``. Falling off - the end of a procedure also returns ``None``. + the end of a function also returns ``None``. * The statement ``result.append(b)`` calls a *method* of the list object ``result``. A method is a function that 'belongs' to an object and is named @@ -400,21 +402,21 @@ function like this:: def cheeseshop(kind, *arguments, **keywords): - print "-- Do you have any", kind, '?' + print "-- Do you have any", kind, "?" print "-- I'm sorry, we're all out of", kind for arg in arguments: print arg - print '-'*40 + print "-" * 40 keys = keywords.keys() keys.sort() - for kw in keys: print kw, ':', keywords[kw] + for kw in keys: print kw, ":", keywords[kw] It could be called like this:: - cheeseshop('Limburger', "It's very runny, sir.", + cheeseshop("Limburger", "It's very runny, sir.", "It's really very, VERY runny, sir.", - client='John Cleese', shopkeeper='Michael Palin', - sketch='Cheese Shop Sketch') + client="John Cleese", + sketch="Cheese Shop Sketch") and of course it would print:: @@ -442,8 +444,8 @@ Finally, the least frequently used option is to specify that a function can be called with an arbitrary number of arguments. These arguments will be wrapped -up in a tuple. Before the variable number of arguments, zero or more normal -arguments may occur. :: +up in a tuple (see :ref:`tut-tuples`). Before the variable number of arguments, +zero or more normal arguments may occur. :: def write_multiple_items(file, separator, *args): file.write(separator.join(args)) @@ -600,7 +602,8 @@ * Name your classes and functions consistently; the convention is to use ``CamelCase`` for classes and ``lower_case_with_underscores`` for functions - and methods. Always use ``self`` as the name for the first method argument. + and methods. Always use ``self`` as the name for the first method argument + (see :ref:`tut-firstclasses` for more on classes and methods). * Don't use fancy encodings if your code is meant to be used in international environments. Plain ASCII works best in any case. Modified: python/branches/tlee-ast-optimize/Doc/tutorial/errors.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/errors.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/errors.rst Sun Sep 21 06:05:44 2008 @@ -374,7 +374,7 @@ As you can see, the :keyword:`finally` clause is executed in any event. The :exc:`TypeError` raised by dividing two strings is not handled by the :keyword:`except` clause and therefore re-raised after the :keyword:`finally` -clauses has been executed. +clause has been executed. In real world applications, the :keyword:`finally` clause is useful for releasing external resources (such as files or network connections), regardless Modified: python/branches/tlee-ast-optimize/Doc/tutorial/index.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/index.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/index.rst Sun Sep 21 06:05:44 2008 @@ -1,7 +1,7 @@ .. _tutorial-index: ###################### - The Python tutorial + The Python Tutorial ###################### :Release: |version| Modified: python/branches/tlee-ast-optimize/Doc/tutorial/inputoutput.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/inputoutput.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/inputoutput.rst Sun Sep 21 06:05:44 2008 @@ -237,15 +237,15 @@ writing. The *mode* argument is optional; ``'r'`` will be assumed if it's omitted. -On Windows and the Macintosh, ``'b'`` appended to the mode opens the file in -binary mode, so there are also modes like ``'rb'``, ``'wb'``, and ``'r+b'``. -Windows makes a distinction between text and binary files; the end-of-line -characters in text files are automatically altered slightly when data is read or -written. This behind-the-scenes modification to file data is fine for ASCII -text files, but it'll corrupt binary data like that in :file:`JPEG` or -:file:`EXE` files. Be very careful to use binary mode when reading and writing -such files. On Unix, it doesn't hurt to append a ``'b'`` to the mode, so -you can use it platform-independently for all binary files. +On Windows, ``'b'`` appended to the mode opens the file in binary mode, so there +are also modes like ``'rb'``, ``'wb'``, and ``'r+b'``. Windows makes a +distinction between text and binary files; the end-of-line characters in text +files are automatically altered slightly when data is read or written. This +behind-the-scenes modification to file data is fine for ASCII text files, but +it'll corrupt binary data like that in :file:`JPEG` or :file:`EXE` files. Be +very careful to use binary mode when reading and writing such files. On Unix, +it doesn't hurt to append a ``'b'`` to the mode, so you can use it +platform-independently for all binary files. .. _tut-filemethods: Modified: python/branches/tlee-ast-optimize/Doc/tutorial/interpreter.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/interpreter.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/interpreter.rst Sun Sep 21 06:05:44 2008 @@ -157,9 +157,9 @@ (assuming that the interpreter is on the user's :envvar:`PATH`) at the beginning of the script and giving the file an executable mode. The ``#!`` must be the first two characters of the file. On some platforms, this first line must end -with a Unix-style line ending (``'\n'``), not a Mac OS (``'\r'``) or Windows -(``'\r\n'``) line ending. Note that the hash, or pound, character, ``'#'``, is -used to start a comment in Python. +with a Unix-style line ending (``'\n'``), not a Windows (``'\r\n'``) line +ending. Note that the hash, or pound, character, ``'#'``, is used to start a +comment in Python. The script can be given an executable mode, or permission, using the :program:`chmod` command:: Modified: python/branches/tlee-ast-optimize/Doc/tutorial/introduction.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/tutorial/introduction.rst (original) +++ python/branches/tlee-ast-optimize/Doc/tutorial/introduction.rst Sun Sep 21 06:05:44 2008 @@ -13,9 +13,11 @@ Many of the examples in this manual, even those entered at the interactive prompt, include comments. Comments in Python start with the hash character, -``#``, and extend to the end of the physical line. A comment may appear at -the start of a line or following whitespace or code, but not within a string +``#``, and extend to the end of the physical line. A comment may appear at the +start of a line or following whitespace or code, but not within a string literal. A hash character within a string literal is just a hash character. +Since comments are to clarify code and are not interpreted by Python, they may +be omitted when typing in examples. Some examples:: @@ -77,6 +79,15 @@ >>> z 0 +Variables must be "defined" (assigned a value) before they can be used, or an +error will occur:: + + >>> # try to access an undefined variable + ... n + Traceback (most recent call last): + File "", line 1, in + NameError: name 'n' is not defined + There is full support for floating point; operators with mixed type operands convert the integer operand to floating point:: @@ -269,7 +280,7 @@ >>> word[2:] # Everything except the first two characters 'lpA' -Unlike a C string, Python strings cannot be changed. Assigning to an indexed +Unlike a C string, Python strings cannot be changed. Assigning to an indexed position in the string results in an error:: >>> word[0] = 'x' Modified: python/branches/tlee-ast-optimize/Doc/using/cmdline.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/using/cmdline.rst (original) +++ python/branches/tlee-ast-optimize/Doc/using/cmdline.rst Sun Sep 21 06:05:44 2008 @@ -516,7 +516,7 @@ If this environment variable is set, ``sys.argv[0]`` will be set to its value instead of the value got through the C runtime. Only works on - MacOS X. + Mac OS X. Debug-mode variables Modified: python/branches/tlee-ast-optimize/Doc/using/mac.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/using/mac.rst (original) +++ python/branches/tlee-ast-optimize/Doc/using/mac.rst Sun Sep 21 06:05:44 2008 @@ -25,10 +25,10 @@ Getting and Installing MacPython ================================ -Mac OS X 10.4 comes with Python 2.3 pre-installed by Apple. However, you are -encouraged to install the most recent version of Python from the Python website -(http://www.python.org). A "universal binary" build of Python 2.5, which runs -natively on the Mac's new Intel and legacy PPC CPU's, is available there. +Mac OS X 10.5 comes with Python 2.5.1 pre-installed by Apple. If you wish, you +are invited to install the most recent version of Python from the Python website +(http://www.python.org). A current "universal binary" build of Python, which +runs natively on the Mac's new Intel and legacy PPC CPU's, is available there. What you get after installing is a number of things: @@ -46,7 +46,10 @@ The Apple-provided build of Python is installed in :file:`/System/Library/Frameworks/Python.framework` and :file:`/usr/bin/python`, respectively. You should never modify or delete these, as they are -Apple-controlled and are used by Apple- or third-party software. +Apple-controlled and are used by Apple- or third-party software. Remember that +if you choose to install a newer Python version from python.org, you will have +two different but functional Python installations on your computer, so it will +be important that your paths and usages are consistent with what you want to do. IDLE includes a help menu that allows you to access Python documentation. If you are completely new to Python you should start reading the tutorial introduction Modified: python/branches/tlee-ast-optimize/Doc/whatsnew/2.6.rst ============================================================================== --- python/branches/tlee-ast-optimize/Doc/whatsnew/2.6.rst (original) +++ python/branches/tlee-ast-optimize/Doc/whatsnew/2.6.rst Sun Sep 21 06:05:44 2008 @@ -528,11 +528,11 @@ Python 2.6 introduces a convention for user-specific site directories. The directory varies depending on the platform: -* Unix and MacOS: :file:`~/.local/` +* Unix and Mac OS X: :file:`~/.local/` * Windows: :file:`%APPDATA%/Python` Within this directory, there will be version-specific subdirectories, -such as :file:`lib/python2.6/site-packages` on Unix/MacOS and +such as :file:`lib/python2.6/site-packages` on Unix/Mac OS and :file:`Python26/site-packages` on Windows. If you don't like the default directory, it can be overridden by an @@ -1723,9 +1723,6 @@ free lists when garbage-collecting the highest generation of objects. This may return memory to the operating system sooner. -The net result of the 2.6 optimizations is that Python 2.6 runs the pystone -benchmark around XXX% faster than Python 2.5. - .. ====================================================================== .. _new-26-interpreter: @@ -1794,7 +1791,6 @@ :mod:`mimetools`, :mod:`multifile`, :mod:`new`, - :mod:`popen2`, :mod:`pure`, :mod:`statvfs`, :mod:`sunaudiodev`, @@ -1806,12 +1802,10 @@ were applied. (Maintained by Josiah Carlson; see :issue:`1736190` for one patch.) -.. |uacute| unicode:: 0xA9 - -* The :mod:`bsddb` module also has a new maintainer, Jes|uacute|s Cea, - and the package is now available as a standalone package. - The web page for the package is - `www.jcea.es/programacion/pybsddb.htm `__. +* The :mod:`bsddb` module also has a new maintainer, Jes?s Cea, and the package + is now available as a standalone package. The web page for the package is + `www.jcea.es/programacion/pybsddb.htm + `__. * The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol available, instead of restricting itself to protocol 1. @@ -2134,6 +2128,13 @@ (Contributed by Christian Heimes and Mark Dickinson.) +* The :mod:`MimeWriter` module and :mod:`mimify` module + have been deprecated; use the :mod:`email` + package instead. + +* The :mod:`md5` module has been deprecated; use the :mod:`hashlib` module + instead. + * :class:`mmap` objects now have a :meth:`rfind` method that searches for a substring beginning at the end of the string and searching backwards. The :meth:`find` method also gained an *end* parameter @@ -2216,6 +2217,9 @@ and can optionally take new command-line arguments for the program. (Contributed by Rocky Bernstein; :issue:`1393667`.) +* The :mod:`posixfile` module has been deprecated; :func:`fcntl.lockf` + provides better locking. + The :func:`post_mortem` function, used to begin debugging a traceback, will now use the traceback returned by :func:`sys.exc_info` if no traceback is supplied. (Contributed by Facundo Batista; @@ -2226,6 +2230,9 @@ opcodes, returning a shorter pickle that contains the same data structure. (Contributed by Raymond Hettinger.) +* The :mod:`popen2` module has been deprecated; use the :mod:`subprocess` + module. + * A :func:`get_data` function was added to the :mod:`pkgutil` module that returns the contents of resource files included with an installed Python package. For example:: @@ -2305,6 +2312,9 @@ * The :mod:`sets` module has been deprecated; it's better to use the built-in :class:`set` and :class:`frozenset` types. +* The :mod:`sha` module has been deprecated; use the :mod:`hashlib` module + instead. + * The :func:`shutil.copytree` function now has an optional *ignore* argument that takes a callable object. This callable will receive each directory path and a list of the directory's contents, and returns a list of names that @@ -2390,6 +2400,10 @@ (Contributed by Pedro Werneck and Jeffrey Yasskin; :issue:`742598`, :issue:`1193577`.) +* The :mod:`sqlite3` module, maintained by Gerhard Haering, + has been updated from version 2.3.2 in Python 2.5 to + version 2.4.1. + * The :mod:`struct` module now supports the C99 :ctype:`_Bool` type, using the format character ``'?'``. (Contributed by David Remahl.) @@ -2439,18 +2453,18 @@ by calling :func:`sys.getprofile` and :func:`sys.gettrace`. (Contributed by Georg Brandl; :issue:`1648`.) -* The :mod:`tarfile` module now supports POSIX.1-2001 (pax) and - POSIX.1-1988 (ustar) format tarfiles, in addition to the GNU tar - format that was already supported. The default format - is GNU tar; specify the ``format`` parameter to open a file - using a different format:: +* The :mod:`tarfile` module now supports POSIX.1-2001 (pax) tarfiles in + addition to the POSIX.1-1988 (ustar) and GNU tar formats that were + already supported. The default format is GNU tar; specify the + ``format`` parameter to open a file using a different format:: tar = tarfile.open("output.tar", "w", format=tarfile.PAX_FORMAT) - The new ``errors`` parameter specifies an error handling scheme for - character conversions. ``'strict'``, ``'ignore'``, and - ``'replace'`` are the three standard ways Python can handle errors,; + The new ``encoding`` and ``errors`` parameters specify an encoding and + an error handling scheme for character conversions. ``'strict'``, + ``'ignore'``, and ``'replace'`` are the three standard ways Python can + handle errors,; ``'utf-8'`` is a special value that replaces bad characters with their UTF-8 representation. (Character conversions occur because the PAX format supports Unicode filenames, defaulting to UTF-8 encoding.) @@ -2784,12 +2798,12 @@ The :mod:`plistlib` module: A Property-List Parser -------------------------------------------------- -The ``.plist`` format is commonly used on MacOS X to +The ``.plist`` format is commonly used on Mac OS X to store basic data types (numbers, strings, lists, and dictionaries) by serializing them into an XML-based format. It resembles the XML-RPC serialization of data types. -Despite being primarily used on MacOS X, the format +Despite being primarily used on Mac OS X, the format has nothing Mac-specific about it and the Python implementation works on any platform that Python supports, so the :mod:`plistlib` module has been promoted to the standard library. @@ -2905,7 +2919,7 @@ :file:`PCbuild` directory for the build files. (Implemented by Christian Heimes.) -* On MacOS X, Python 2.6 can be compiled as a 4-way universal build. +* On Mac OS X, Python 2.6 can be compiled as a 4-way universal build. The :program:`configure` script can take a :option:`--with-universal-archs=[32-bit|64-bit|all]` switch, controlling whether the binaries are built for 32-bit @@ -3057,7 +3071,7 @@ .. ====================================================================== -Port-Specific Changes: MacOS X +Port-Specific Changes: Mac OS X ----------------------------------- * When compiling a framework build of Python, you can now specify the @@ -3069,7 +3083,7 @@ :func:`macostools.touched` function to be removed because it depended on the :mod:`macfs` module. (:issue:`1490190`) -* Many other MacOS modules have been deprecated and will removed in +* Many other Mac OS modules have been deprecated and will removed in Python 3.0: :mod:`_builtinSuites`, :mod:`aepack`, @@ -3158,6 +3172,13 @@ before adding elements from the iterable. This change makes the behavior match ``list.__init__()``. +* :meth:`object.__init__` previously accepted arbitrary arguments and + keyword arguments, ignoring them. In Python 2.6, this is no longer + allowed and will result in a :exc:`TypeError`. This will affect + :meth:`__init__` methods that end up calling the corresponding + method on :class:`object` (perhaps through using :func:`super`). + See :issue:`1683368` for discussion. + * The :class:`Decimal` constructor now accepts leading and trailing whitespace when passed a string. Previously it would raise an :exc:`InvalidOperation` exception. On the other hand, the Modified: python/branches/tlee-ast-optimize/Include/patchlevel.h ============================================================================== --- python/branches/tlee-ast-optimize/Include/patchlevel.h (original) +++ python/branches/tlee-ast-optimize/Include/patchlevel.h Sun Sep 21 06:05:44 2008 @@ -23,11 +23,11 @@ #define PY_MAJOR_VERSION 2 #define PY_MINOR_VERSION 6 #define PY_MICRO_VERSION 0 -#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA -#define PY_RELEASE_SERIAL 3 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA +#define PY_RELEASE_SERIAL 2 /* Version as a string */ -#define PY_VERSION "2.6b3+" +#define PY_VERSION "2.6rc2+" /*--end constants--*/ /* Subversion Revision number of this file (not of the repository) */ Modified: python/branches/tlee-ast-optimize/Lib/asynchat.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/asynchat.py (original) +++ python/branches/tlee-ast-optimize/Lib/asynchat.py Sun Sep 21 06:05:44 2008 @@ -50,7 +50,6 @@ import asyncore from collections import deque from sys import py3kwarning -from test.test_support import catch_warning from warnings import filterwarnings, catch_warnings class async_chat (asyncore.dispatcher): Modified: python/branches/tlee-ast-optimize/Lib/bsddb/test/test_early_close.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/bsddb/test/test_early_close.py (original) +++ python/branches/tlee-ast-optimize/Lib/bsddb/test/test_early_close.py Sun Sep 21 06:05:44 2008 @@ -168,9 +168,9 @@ self.assertEquals(("XXX", "yyy"), c1.first()) import warnings # Not interested in warnings about implicit close. - warnings.simplefilter("ignore") - txn.commit() - warnings.resetwarnings() + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + txn.commit() self.assertRaises(db.DBCursorClosedError, c2.first) if db.version() > (4,3,0) : Modified: python/branches/tlee-ast-optimize/Lib/bsddb/test/test_replication.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/bsddb/test/test_replication.py (original) +++ python/branches/tlee-ast-optimize/Lib/bsddb/test/test_replication.py Sun Sep 21 06:05:44 2008 @@ -119,7 +119,19 @@ timeout = time.time()+10 while (time.time()> sys.stderr, \ + "XXX - windows bsddb replication fails on windows and is skipped" + print >> sys.stderr, "XXX - Please see issue #3892" + else: + self.assertTrue(time.time() | print_stmt + simple_stmt< any* bare='print' any* > | print_stmt """ skip_on = '__future__.print_function' Modified: python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py2_test_grammar.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py2_test_grammar.py (original) +++ python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py2_test_grammar.py Sun Sep 21 06:05:44 2008 @@ -1,4 +1,4 @@ -# Python 2's Lib/test/test_grammar.py (r54061) +# Python 2's Lib/test/test_grammar.py (r66189) # Python test set -- part 1, grammar. # This just tests whether the parser accepts them all. @@ -32,6 +32,8 @@ self.assertEquals(0xff, 255) self.assertEquals(0377, 255) self.assertEquals(2147483647, 017777777777) + # "0x" is not a valid literal + self.assertRaises(SyntaxError, eval, "0x") from sys import maxint if maxint == 2147483647: self.assertEquals(-2147483647-1, -020000000000) @@ -282,6 +284,18 @@ def d32v((x,)): pass d32v((1,)) + # keyword arguments after *arglist + def f(*args, **kwargs): + return args, kwargs + self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4), + {'x':2, 'y':5})) + self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)") + self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)") + + # Check ast errors in *args and *kwargs + check_syntax_error(self, "f(*g(1=2))") + check_syntax_error(self, "f(**g(1=2))") + def testLambdef(self): ### lambdef: 'lambda' [varargslist] ':' test l1 = lambda : 0 @@ -295,6 +309,7 @@ self.assertEquals(l5(1, 2), 5) self.assertEquals(l5(1, 2, 3), 6) check_syntax_error(self, "lambda x: x = 2") + check_syntax_error(self, "lambda (None,): None") ### stmt: simple_stmt | compound_stmt # Tested below @@ -572,6 +587,15 @@ while 0: pass else: pass + # Issue1920: "while 0" is optimized away, + # ensure that the "else" clause is still present. + x = 0 + while 0: + x = 1 + else: + x = 2 + self.assertEquals(x, 2) + def testFor(self): # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite] for i in 1, 2, 3: pass @@ -602,7 +626,7 @@ def testTry(self): ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite] ### | 'try' ':' suite 'finally' ':' suite - ### except_clause: 'except' [expr [',' expr]] + ### except_clause: 'except' [expr [('as' | ',') expr]] try: 1/0 except ZeroDivisionError: @@ -611,7 +635,7 @@ pass try: 1/0 except EOFError: pass - except TypeError, msg: pass + except TypeError as msg: pass except RuntimeError, msg: pass except: pass else: pass @@ -770,6 +794,16 @@ def meth1(self): pass def meth2(self, arg): pass def meth3(self, a1, a2): pass + # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE + # decorators: decorator+ + # decorated: decorators (classdef | funcdef) + def class_decorator(x): + x.decorated = True + return x + @class_decorator + class G: + pass + self.assertEqual(G.decorated, True) def testListcomps(self): # list comprehension tests Modified: python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py3_test_grammar.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py3_test_grammar.py (original) +++ python/branches/tlee-ast-optimize/Lib/lib2to3/tests/data/py3_test_grammar.py Sun Sep 21 06:05:44 2008 @@ -8,7 +8,7 @@ # regression test, the filterwarnings() call has been added to # regrtest.py. -from test.test_support import run_unittest, check_syntax_error +from test.support import run_unittest, check_syntax_error import unittest import sys # testing import * @@ -32,8 +32,10 @@ self.assertEquals(0o377, 255) self.assertEquals(2147483647, 0o17777777777) self.assertEquals(0b1001, 9) - from sys import maxint - if maxint == 2147483647: + # "0x" is not a valid literal + self.assertRaises(SyntaxError, eval, "0x") + from sys import maxsize + if maxsize == 2147483647: self.assertEquals(-2147483647-1, -0o20000000000) # XXX -2147483648 self.assert_(0o37777777777 > 0) @@ -45,7 +47,7 @@ x = eval(s) except OverflowError: self.fail("OverflowError on huge integer literal %r" % s) - elif maxint == 9223372036854775807: + elif maxsize == 9223372036854775807: self.assertEquals(-9223372036854775807-1, -0o1000000000000000000000) self.assert_(0o1777777777777777777777 > 0) self.assert_(0xffffffffffffffff > 0) @@ -58,7 +60,7 @@ except OverflowError: self.fail("OverflowError on huge integer literal %r" % s) else: - self.fail('Weird maxint value %r' % maxint) + self.fail('Weird maxsize value %r' % maxsize) def testLongIntegers(self): x = 0 @@ -263,6 +265,14 @@ d22v(*(1, 2, 3, 4)) d22v(1, 2, *(3, 4, 5)) d22v(1, *(2, 3), **{'d': 4}) + + # keyword argument type tests + try: + str('x', **{b'foo':1 }) + except TypeError: + pass + else: + self.fail('Bytes should not work as keyword argument names') # keyword only argument tests def pos0key1(*, key): return key pos0key1(key=100) @@ -274,6 +284,14 @@ pos2key2dict(1,2,k2=100,tokwarg1=100,tokwarg2=200) pos2key2dict(1,2,tokwarg1=100,tokwarg2=200, k2=100) + # keyword arguments after *arglist + def f(*args, **kwargs): + return args, kwargs + self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4), + {'x':2, 'y':5})) + self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)") + self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)") + # argument annotation tests def f(x) -> list: pass self.assertEquals(f.__annotations__, {'return': list}) @@ -308,6 +326,10 @@ def f(*, k=1): return closure def f() -> int: return closure + # Check ast errors in *args and *kwargs + check_syntax_error(self, "f(*g(1=2))") + check_syntax_error(self, "f(**g(1=2))") + def testLambdef(self): ### lambdef: 'lambda' [varargslist] ':' test l1 = lambda : 0 @@ -321,6 +343,7 @@ self.assertEquals(l5(1, 2), 5) self.assertEquals(l5(1, 2, 3), 6) check_syntax_error(self, "lambda x: x = 2") + check_syntax_error(self, "lambda (None,): None") l6 = lambda x, y, *, k=20: x+y+k self.assertEquals(l6(1,2), 1+2+20) self.assertEquals(l6(1,2,k=10), 1+2+10) @@ -438,7 +461,7 @@ def testRaise(self): # 'raise' test [',' test] - try: raise RuntimeError, 'just testing' + try: raise RuntimeError('just testing') except RuntimeError: pass try: raise KeyboardInterrupt except KeyboardInterrupt: pass @@ -498,6 +521,15 @@ while 0: pass else: pass + # Issue1920: "while 0" is optimized away, + # ensure that the "else" clause is still present. + x = 0 + while 0: + x = 1 + else: + x = 2 + self.assertEquals(x, 2) + def testFor(self): # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite] for i in 1, 2, 3: pass Modified: python/branches/tlee-ast-optimize/Lib/lib2to3/tests/test_fixers.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/lib2to3/tests/test_fixers.py (original) +++ python/branches/tlee-ast-optimize/Lib/lib2to3/tests/test_fixers.py Sun Sep 21 06:05:44 2008 @@ -385,6 +385,16 @@ a = """print()""" self.check(b, a) + def test_4(self): + # from bug 3000 + b = """print whatever; print""" + a = """print(whatever); print()""" + self.check(b, a) + + def test_5(self): + b = """print; print whatever;""" + a = """print(); print(whatever);""" + def test_tuple(self): b = """print (a, b, c)""" a = """print((a, b, c))""" @@ -2379,6 +2389,15 @@ a = """b = 0x12""" self.check(b, a) + def test_comments_and_spacing(self): + b = """b = 0x12L""" + a = """b = 0x12""" + self.check(b, a) + + b = """b = 0755 # spam""" + a = """b = 0o755 # spam""" + self.check(b, a) + def test_unchanged_int(self): s = """5""" self.unchanged(s) @@ -3430,6 +3449,133 @@ s = """[i for i in m]""" self.unchanged(s) +class Test_metaclass(FixerTestCase): + + fixer = 'metaclass' + + def test_unchanged(self): + self.unchanged("class X(): pass") + self.unchanged("class X(object): pass") + self.unchanged("class X(object1, object2): pass") + self.unchanged("class X(object1, object2, object3): pass") + self.unchanged("class X(metaclass=Meta): pass") + self.unchanged("class X(b, arg=23, metclass=Meta): pass") + self.unchanged("class X(b, arg=23, metaclass=Meta, other=42): pass") + + s = """ + class X: + def __metaclass__(self): pass + """ + self.unchanged(s) + + def test_comments(self): + b = """ + class X: + # hi + __metaclass__ = AppleMeta + """ + a = """ + class X(metaclass=AppleMeta): + # hi + pass + """ + self.check(b, a) + + b = """ + class X: + __metaclass__ = Meta + # Bedtime! + """ + a = """ + class X(metaclass=Meta): + pass + # Bedtime! + """ + self.check(b, a) + + def test_meta(self): + # no-parent class, odd body + b = """ + class X(): + __metaclass__ = Q + pass + """ + a = """ + class X(metaclass=Q): + pass + """ + self.check(b, a) + + # one parent class, no body + b = """class X(object): __metaclass__ = Q""" + a = """class X(object, metaclass=Q): pass""" + self.check(b, a) + + + # one parent, simple body + b = """ + class X(object): + __metaclass__ = Meta + bar = 7 + """ + a = """ + class X(object, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + b = """ + class X: + __metaclass__ = Meta; x = 4; g = 23 + """ + a = """ + class X(metaclass=Meta): + x = 4; g = 23 + """ + self.check(b, a) + + # one parent, simple body, __metaclass__ last + b = """ + class X(object): + bar = 7 + __metaclass__ = Meta + """ + a = """ + class X(object, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + # redefining __metaclass__ + b = """ + class X(): + __metaclass__ = A + __metaclass__ = B + bar = 7 + """ + a = """ + class X(metaclass=B): + bar = 7 + """ + self.check(b, a) + + # multiple inheritance, simple body + b = """ + class X(clsA, clsB): + __metaclass__ = Meta + bar = 7 + """ + a = """ + class X(clsA, clsB, metaclass=Meta): + bar = 7 + """ + self.check(b, a) + + # keywords in the class statement + b = """class m(a, arg=23): __metaclass__ = Meta""" + a = """class m(a, arg=23, metaclass=Meta): pass""" + self.check(b, a) + if __name__ == "__main__": import __main__ Modified: python/branches/tlee-ast-optimize/Lib/mimetools.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/mimetools.py (original) +++ python/branches/tlee-ast-optimize/Lib/mimetools.py Sun Sep 21 06:05:44 2008 @@ -5,7 +5,7 @@ import sys import tempfile from warnings import filterwarnings, catch_warnings -with catch_warnings(record=False): +with catch_warnings(): if sys.py3kwarning: filterwarnings("ignore", ".*rfc822 has been removed", DeprecationWarning) import rfc822 Modified: python/branches/tlee-ast-optimize/Lib/ssl.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/ssl.py (original) +++ python/branches/tlee-ast-optimize/Lib/ssl.py Sun Sep 21 06:05:44 2008 @@ -91,10 +91,12 @@ suppress_ragged_eofs=True): socket.__init__(self, _sock=sock._sock) # the initializer for socket trashes the methods (tsk, tsk), so... - self.send = lambda x, flags=0: SSLSocket.send(self, x, flags) - self.recv = lambda x, flags=0: SSLSocket.recv(self, x, flags) + self.send = lambda data, flags=0: SSLSocket.send(self, data, flags) self.sendto = lambda data, addr, flags=0: SSLSocket.sendto(self, data, addr, flags) - self.recvfrom = lambda addr, buflen, flags: SSLSocket.recvfrom(self, addr, buflen, flags) + self.recv = lambda buflen=1024, flags=0: SSLSocket.recv(self, buflen, flags) + self.recvfrom = lambda addr, buflen=1024, flags=0: SSLSocket.recvfrom(self, addr, buflen, flags) + self.recv_into = lambda buffer, nbytes=None, flags=0: SSLSocket.recv_into(self, buffer, nbytes, flags) + self.recvfrom_into = lambda buffer, nbytes=None, flags=0: SSLSocket.recvfrom_into(self, buffer, nbytes, flags) if certfile and not keyfile: keyfile = certfile @@ -221,6 +223,30 @@ else: return socket.recv(self, buflen, flags) + def recv_into (self, buffer, nbytes=None, flags=0): + if buffer and (nbytes is None): + nbytes = len(buffer) + elif nbytes is None: + nbytes = 1024 + if self._sslobj: + if flags != 0: + raise ValueError( + "non-zero flags not allowed in calls to recv_into() on %s" % + self.__class__) + while True: + try: + tmp_buffer = self.read(nbytes) + v = len(tmp_buffer) + buffer[:v] = tmp_buffer + return v + except SSLError as x: + if x.args[0] == SSL_ERROR_WANT_READ: + continue + else: + raise x + else: + return socket.recv_into(self, buffer, nbytes, flags) + def recvfrom (self, addr, buflen=1024, flags=0): if self._sslobj: raise ValueError("recvfrom not allowed on instances of %s" % @@ -228,6 +254,13 @@ else: return socket.recvfrom(self, addr, buflen, flags) + def recvfrom_into (self, buffer, nbytes=None, flags=0): + if self._sslobj: + raise ValueError("recvfrom_into not allowed on instances of %s" % + self.__class__) + else: + return socket.recvfrom_into(self, buffer, nbytes, flags) + def pending (self): if self._sslobj: return self._sslobj.pending() @@ -295,8 +328,9 @@ def makefile(self, mode='r', bufsize=-1): - """Ouch. Need to make and return a file-like object that - works with the SSL connection.""" + """Make and return a file-like object that + works with the SSL connection. Just use the code + from the socket module.""" self._makefile_refs += 1 return _fileobject(self, mode, bufsize) Modified: python/branches/tlee-ast-optimize/Lib/test/test___all__.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test___all__.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test___all__.py Sun Sep 21 06:05:44 2008 @@ -1,5 +1,5 @@ import unittest -from test.test_support import run_unittest, catch_warning +from test.test_support import run_unittest import sys import warnings @@ -9,7 +9,7 @@ def check_all(self, modname): names = {} - with catch_warning(): + with warnings.catch_warnings(): warnings.filterwarnings("ignore", ".* (module|package)", DeprecationWarning) try: Modified: python/branches/tlee-ast-optimize/Lib/test/test_cgi.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_cgi.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_cgi.py Sun Sep 21 06:05:44 2008 @@ -344,6 +344,17 @@ v = gen_result(data, environ) self.assertEqual(result, v) + def test_deprecated_parse_qs(self): + # this func is moved to urlparse, this is just a sanity check + self.assertEqual({'a': ['A1'], 'B': ['B3'], 'b': ['B2']}, + cgi.parse_qs('a=A1&b=B2&B=B3')) + + def test_deprecated_parse_qsl(self): + # this func is moved to urlparse, this is just a sanity check + self.assertEqual([('a', 'A1'), ('b', 'B2'), ('B', 'B3')], + cgi.parse_qsl('a=A1&b=B2&B=B3')) + + def test_main(): run_unittest(CgiTests) Modified: python/branches/tlee-ast-optimize/Lib/test/test_exceptions.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_exceptions.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_exceptions.py Sun Sep 21 06:05:44 2008 @@ -4,9 +4,9 @@ import sys import unittest import pickle, cPickle +import warnings -from test.test_support import (TESTFN, unlink, run_unittest, - catch_warning, captured_output) +from test.test_support import TESTFN, unlink, run_unittest, captured_output from test.test_pep352 import ignore_message_warning # XXX This is not really enough, each *operation* should be tested! @@ -274,7 +274,7 @@ except NameError: pass - with catch_warning(): + with warnings.catch_warnings(): ignore_message_warning() for exc, args, expected in exceptionList: try: Modified: python/branches/tlee-ast-optimize/Lib/test/test_hashlib.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_hashlib.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_hashlib.py Sun Sep 21 06:05:44 2008 @@ -9,7 +9,7 @@ import hashlib import unittest from test import test_support - +from test.test_support import _4G, precisionbigmemtest def hexstr(s): import string @@ -55,7 +55,6 @@ m2.update(aas + bees + cees) self.assertEqual(m1.digest(), m2.digest()) - def check(self, name, data, digest): # test the direct constructors computed = getattr(hashlib, name)(data).hexdigest() @@ -75,6 +74,21 @@ self.check('md5', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', 'd174ab98d277d9f5a5611c2c9f419d9f') + @precisionbigmemtest(size=_4G + 5, memuse=1) + def test_case_md5_huge(self, size): + if size == _4G + 5: + try: + self.check('md5', 'A'*size, 'c9af2dff37468ce5dfee8f2cfc0a9c6d') + except OverflowError: + pass # 32-bit arch + + @precisionbigmemtest(size=_4G - 1, memuse=1) + def test_case_md5_uintmax(self, size): + if size == _4G - 1: + try: + self.check('md5', 'A'*size, '28138d306ff1b8281f1a9067e1a1a2b3') + except OverflowError: + pass # 32-bit arch # use the three examples from Federal Information Processing Standards # Publication 180-1, Secure Hash Standard, 1995 April 17 Modified: python/branches/tlee-ast-optimize/Lib/test/test_hmac.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_hmac.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_hmac.py Sun Sep 21 06:05:44 2008 @@ -211,7 +211,7 @@ def digest(self): return self._x.digest() - with test_support.catch_warning(): + with warnings.catch_warnings(): warnings.simplefilter('error', RuntimeWarning) try: hmac.HMAC('a', 'b', digestmod=MockCrazyHash) Modified: python/branches/tlee-ast-optimize/Lib/test/test_imp.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_imp.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_imp.py Sun Sep 21 06:05:44 2008 @@ -56,10 +56,16 @@ def test_main(): - test_support.run_unittest( - LockTests, - ReloadTests, - ) + tests = [ + ReloadTests, + ] + try: + import thread + except ImportError: + pass + else: + tests.append(LockTests) + test_support.run_unittest(*tests) if __name__ == "__main__": test_main() Modified: python/branches/tlee-ast-optimize/Lib/test/test_import.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_import.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_import.py Sun Sep 21 06:05:44 2008 @@ -5,7 +5,7 @@ import sys import py_compile import warnings -from test.test_support import unlink, TESTFN, unload, run_unittest, catch_warning +from test.test_support import unlink, TESTFN, unload, run_unittest, check_warnings def remove_files(name): @@ -215,7 +215,7 @@ self.assert_(y is test.test_support, y.__name__) def test_import_initless_directory_warning(self): - with catch_warning(): + with warnings.catch_warnings(): # Just a random non-package directory we always expect to be # somewhere in sys.path... warnings.simplefilter('error', ImportWarning) @@ -279,14 +279,14 @@ check_relative() # Check relative fails with only __package__ wrong ns = dict(__package__='foo', __name__='test.notarealmodule') - with catch_warning() as w: + with check_warnings() as w: check_absolute() self.assert_('foo' in str(w.message)) self.assertEqual(w.category, RuntimeWarning) self.assertRaises(SystemError, check_relative) # Check relative fails with __package__ and __name__ wrong ns = dict(__package__='foo', __name__='notarealpkg.notarealmodule') - with catch_warning() as w: + with check_warnings() as w: check_absolute() self.assert_('foo' in str(w.message)) self.assertEqual(w.category, RuntimeWarning) Modified: python/branches/tlee-ast-optimize/Lib/test/test_logging.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_logging.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_logging.py Sun Sep 21 06:05:44 2008 @@ -615,10 +615,10 @@ args=(sys.stdout,) [handler_hand2] - class=FileHandler + class=StreamHandler level=NOTSET formatter=form1 - args=('test.blah', 'a') + args=(sys.stderr,) [formatter_form1] format=%(levelname)s ++ %(message)s Modified: python/branches/tlee-ast-optimize/Lib/test/test_long.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_long.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_long.py Sun Sep 21 06:05:44 2008 @@ -279,6 +279,10 @@ self.assertEqual(long(314), 314L) self.assertEqual(long(3.14), 3L) self.assertEqual(long(314L), 314L) + # Check that long() of basic types actually returns a long + self.assertEqual(type(long(314)), long) + self.assertEqual(type(long(3.14)), long) + self.assertEqual(type(long(314L)), long) # Check that conversion from float truncates towards zero self.assertEqual(long(-3.14), -3L) self.assertEqual(long(3.9), 3L) Modified: python/branches/tlee-ast-optimize/Lib/test/test_macostools.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_macostools.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_macostools.py Sun Sep 21 06:05:44 2008 @@ -52,7 +52,7 @@ def test_touched(self): # This really only tests that nothing unforeseen happens. import warnings - with test_support.catch_warning(): + with warnings.catch_warnings(): warnings.filterwarnings('ignore', 'macostools.touched*', DeprecationWarning) macostools.touched(test_support.TESTFN) Modified: python/branches/tlee-ast-optimize/Lib/test/test_normalization.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_normalization.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_normalization.py Sun Sep 21 06:05:44 2008 @@ -3,10 +3,17 @@ import sys import os -from unicodedata import normalize +from unicodedata import normalize, unidata_version TESTDATAFILE = "NormalizationTest" + os.extsep + "txt" -TESTDATAURL = "http://www.unicode.org/Public/4.1.0/ucd/" + TESTDATAFILE +TESTDATAURL = "http://www.unicode.org/Public/" + unidata_version + "/ucd/" + TESTDATAFILE + +if os.path.exists(TESTDATAFILE): + f = open(TESTDATAFILE) + l = f.readline() + f.close() + if not unidata_version in l: + os.unlink(TESTDATAFILE) class RangeError(Exception): pass Modified: python/branches/tlee-ast-optimize/Lib/test/test_os.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_os.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_os.py Sun Sep 21 06:05:44 2008 @@ -47,6 +47,13 @@ os.closerange(first, first + 2) self.assertRaises(OSError, os.write, first, "a") + def test_rename(self): + path = unicode(test_support.TESTFN) + old = sys.getrefcount(path) + self.assertRaises(TypeError, os.rename, path, 0) + new = sys.getrefcount(path) + self.assertEqual(old, new) + class TemporaryFileTests(unittest.TestCase): def setUp(self): Modified: python/branches/tlee-ast-optimize/Lib/test/test_pep352.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_pep352.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_pep352.py Sun Sep 21 06:05:44 2008 @@ -2,7 +2,7 @@ import __builtin__ import exceptions import warnings -from test.test_support import run_unittest, catch_warning +from test.test_support import run_unittest import os from platform import system as platform_system @@ -22,7 +22,7 @@ self.failUnless(issubclass(Exception, object)) def verify_instance_interface(self, ins): - with catch_warning(): + with warnings.catch_warnings(): ignore_message_warning() for attr in ("args", "message", "__str__", "__repr__", "__getitem__"): @@ -95,7 +95,7 @@ # Make sure interface works properly when given a single argument arg = "spam" exc = Exception(arg) - with catch_warning(): + with warnings.catch_warnings(): ignore_message_warning() results = ([len(exc.args), 1], [exc.args[0], arg], [exc.message, arg], @@ -109,7 +109,7 @@ arg_count = 3 args = tuple(range(arg_count)) exc = Exception(*args) - with catch_warning(): + with warnings.catch_warnings(): ignore_message_warning() results = ([len(exc.args), arg_count], [exc.args, args], [exc.message, ''], [str(exc), str(args)], @@ -121,7 +121,7 @@ def test_interface_no_arg(self): # Make sure that with no args that interface is correct exc = Exception() - with catch_warning(): + with warnings.catch_warnings(): ignore_message_warning() results = ([len(exc.args), 0], [exc.args, tuple()], [exc.message, ''], @@ -132,7 +132,7 @@ def test_message_deprecation(self): # As of Python 2.6, BaseException.message is deprecated. - with catch_warning(): + with warnings.catch_warnings(): warnings.resetwarnings() warnings.filterwarnings('error') @@ -219,7 +219,7 @@ def test_catch_string(self): # Catching a string should trigger a DeprecationWarning. - with catch_warning(): + with warnings.catch_warnings(): warnings.resetwarnings() warnings.filterwarnings("error") str_exc = "spam" Modified: python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_py3kwarn.py Sun Sep 21 06:05:44 2008 @@ -1,6 +1,6 @@ import unittest import sys -from test.test_support import (catch_warning, CleanImport, +from test.test_support import (check_warnings, CleanImport, TestSkipped, run_unittest) import warnings @@ -9,6 +9,13 @@ if not sys.py3kwarning: raise TestSkipped('%s must be run with the -3 flag' % __name__) +def reset_module_registry(module): + try: + registry = module.__warningregistry__ + except AttributeError: + pass + else: + registry.clear() class TestPy3KWarnings(unittest.TestCase): @@ -17,7 +24,7 @@ def test_backquote(self): expected = 'backquote not supported in 3.x; use repr()' - with catch_warning() as w: + with check_warnings() as w: exec "`2`" in {} self.assertWarning(None, w, expected) @@ -28,7 +35,7 @@ exec expr in {'f' : f} expected = "assignment to True or False is forbidden in 3.x" - with catch_warning() as w: + with check_warnings() as w: safe_exec("True = False") self.assertWarning(None, w, expected) w.reset() @@ -72,21 +79,21 @@ def test_type_inequality_comparisons(self): expected = 'type inequality comparisons not supported in 3.x' - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(int < str, w, expected) w.reset() self.assertWarning(type < object, w, expected) def test_object_inequality_comparisons(self): expected = 'comparing unequal types not supported in 3.x' - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(str < [], w, expected) w.reset() self.assertWarning(object() < (1, 2), w, expected) def test_dict_inequality_comparisons(self): expected = 'dict inequality comparisons not supported in 3.x' - with catch_warning() as w: + with check_warnings() as w: self.assertWarning({} < {2:3}, w, expected) w.reset() self.assertWarning({} <= {}, w, expected) @@ -103,7 +110,7 @@ return g cell0, = f(0).func_closure cell1, = f(1).func_closure - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(cell0 == cell1, w, expected) w.reset() self.assertWarning(cell0 < cell1, w, expected) @@ -114,7 +121,7 @@ pass def g(x): pass - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(f.func_code < g.func_code, w, expected) w.reset() self.assertWarning(f.func_code <= g.func_code, w, expected) @@ -128,7 +135,7 @@ 'inequality comparisons not supported in 3.x') func = eval meth = {}.get - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(func < meth, w, expected) w.reset() self.assertWarning(func > meth, w, expected) @@ -142,7 +149,7 @@ lst = range(5) cmp = lambda x,y: -1 - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(lst.sort(cmp=cmp), w, expected) w.reset() self.assertWarning(sorted(lst, cmp=cmp), w, expected) @@ -153,7 +160,7 @@ def test_sys_exc_clear(self): expected = 'sys.exc_clear() not supported in 3.x; use except clauses' - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(sys.exc_clear(), w, expected) def test_methods_members(self): @@ -162,17 +169,17 @@ __methods__ = ['a'] __members__ = ['b'] c = C() - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(dir(c), w, expected) def test_softspace(self): expected = 'file.softspace not supported in 3.x' with file(__file__) as f: - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(f.softspace, w, expected) def set(): f.softspace = 0 - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(set(), w, expected) def test_slice_methods(self): @@ -188,7 +195,7 @@ expected = "in 3.x, __{0}slice__ has been removed; use __{0}item__" for obj in (Spam(), Egg()): - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(obj[1:2], w, expected.format('get')) w.reset() del obj[3:4] @@ -199,49 +206,49 @@ def test_tuple_parameter_unpacking(self): expected = "tuple parameter unpacking has been removed in 3.x" - with catch_warning() as w: + with check_warnings() as w: exec "def f((a, b)): pass" self.assertWarning(None, w, expected) def test_buffer(self): expected = 'buffer() not supported in 3.x' - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(buffer('a'), w, expected) def test_file_xreadlines(self): expected = ("f.xreadlines() not supported in 3.x, " "try 'for line in f' instead") with file(__file__) as f: - with catch_warning() as w: + with check_warnings() as w: self.assertWarning(f.xreadlines(), w, expected) def test_hash_inheritance(self): - with catch_warning() as w: + with check_warnings() as w: # With object as the base class class WarnOnlyCmp(object): def __cmp__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnOnlyEq(object): def __eq__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnCmpAndEq(object): def __cmp__(self, other): pass def __eq__(self, other): pass - self.assertEqual(len(w), 2) - self.assertWarning(None, w[-2], + self.assertEqual(len(w.warnings), 2) + self.assertWarning(None, w.warnings[0], "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class NoWarningOnlyHash(object): def __hash__(self): pass - self.assertEqual(len(w), 0) + self.assertEqual(len(w.warnings), 0) # With an intermediate class in the heirarchy class DefinesAllThree(object): def __cmp__(self, other): pass @@ -249,28 +256,28 @@ def __hash__(self): pass class WarnOnlyCmp(DefinesAllThree): def __cmp__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnOnlyEq(DefinesAllThree): def __eq__(self, other): pass - self.assertEqual(len(w), 1) + self.assertEqual(len(w.warnings), 1) self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class WarnCmpAndEq(DefinesAllThree): def __cmp__(self, other): pass def __eq__(self, other): pass - self.assertEqual(len(w), 2) - self.assertWarning(None, w[-2], + self.assertEqual(len(w.warnings), 2) + self.assertWarning(None, w.warnings[0], "Overriding __cmp__ blocks inheritance of __hash__ in 3.x") self.assertWarning(None, w, "Overriding __eq__ blocks inheritance of __hash__ in 3.x") w.reset() class NoWarningOnlyHash(DefinesAllThree): def __hash__(self): pass - self.assertEqual(len(w), 0) + self.assertEqual(len(w.warnings), 0) class TestStdlibRemovals(unittest.TestCase): @@ -310,7 +317,10 @@ def check_removal(self, module_name, optional=False): """Make sure the specified module, when imported, raises a DeprecationWarning and specifies itself in the message.""" - with nested(CleanImport(module_name), catch_warning(record=False)): + with nested(CleanImport(module_name), warnings.catch_warnings()): + # XXX: This is not quite enough for extension modules - those + # won't rerun their init code even with CleanImport. + # You can see this easily by running the whole test suite with -3 warnings.filterwarnings("error", ".+ removed", DeprecationWarning, __name__) try: @@ -348,36 +358,43 @@ def dumbo(where, names, args): pass for path_mod in ("ntpath", "macpath", "os2emxpath", "posixpath"): mod = __import__(path_mod) - with catch_warning() as w: + reset_module_registry(mod) + with check_warnings() as w: mod.walk("crashers", dumbo, None) self.assertEquals(str(w.message), msg) def test_commands_members(self): import commands + # commands module tests may have already triggered this warning + reset_module_registry(commands) members = {"mk2arg" : 2, "mkarg" : 1, "getstatus" : 1} for name, arg_count in members.items(): - with catch_warning(record=False): + with warnings.catch_warnings(): warnings.filterwarnings("error") func = getattr(commands, name) self.assertRaises(DeprecationWarning, func, *([None]*arg_count)) def test_reduce_move(self): from operator import add - with catch_warning(record=False): + # reduce tests may have already triggered this warning + reset_module_registry(unittest) + with warnings.catch_warnings(): warnings.filterwarnings("error", "reduce") self.assertRaises(DeprecationWarning, reduce, add, range(10)) def test_mutablestring_removal(self): # UserString.MutableString has been removed in 3.0. import UserString - with catch_warning(record=False): + # UserString tests may have already triggered this warning + reset_module_registry(UserString) + with warnings.catch_warnings(): warnings.filterwarnings("error", ".*MutableString", DeprecationWarning) self.assertRaises(DeprecationWarning, UserString.MutableString) def test_main(): - with catch_warning(): + with check_warnings(): warnings.simplefilter("always") run_unittest(TestPy3KWarnings, TestStdlibRemovals) Modified: python/branches/tlee-ast-optimize/Lib/test/test_random.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_random.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_random.py Sun Sep 21 06:05:44 2008 @@ -191,7 +191,7 @@ def test_bigrand(self): # Verify warnings are raised when randrange is too large for random() - with test_support.catch_warning(): + with warnings.catch_warnings(): warnings.filterwarnings("error", "Underlying random") self.assertRaises(UserWarning, self.gen.randrange, 2**60) Modified: python/branches/tlee-ast-optimize/Lib/test/test_re.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_re.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_re.py Sun Sep 21 06:05:44 2008 @@ -1,7 +1,7 @@ import sys sys.path = ['.'] + sys.path -from test.test_support import verbose, run_unittest, catch_warning +from test.test_support import verbose, run_unittest import re from re import Scanner import sys, os, traceback @@ -116,6 +116,10 @@ self.assertRaises(ValueError, re.findall, pattern, 'A', re.I) self.assertRaises(ValueError, re.compile, pattern, re.I) + def test_bug_3629(self): + # A regex that triggered a bug in the sre-code validator + re.compile("(?P)(?(quote))") + def test_sub_template_numeric_escape(self): # bug 776311 and friends self.assertEqual(re.sub('x', r'\0', 'x'), '\0') @@ -447,7 +451,7 @@ self.pickle_test(cPickle) # old pickles expect the _compile() reconstructor in sre module import warnings - with catch_warning(): + with warnings.catch_warnings(): warnings.filterwarnings("ignore", "The sre module is deprecated", DeprecationWarning) from sre import _compile Modified: python/branches/tlee-ast-optimize/Lib/test/test_ssl.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_ssl.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_ssl.py Sun Sep 21 06:05:44 2008 @@ -1030,6 +1030,127 @@ server.join() + def testAllRecvAndSendMethods(self): + + if test_support.verbose: + sys.stdout.write("\n") + + server = ThreadedEchoServer(CERTFILE, + certreqs=ssl.CERT_NONE, + ssl_version=ssl.PROTOCOL_TLSv1, + cacerts=CERTFILE, + chatty=True, + connectionchatty=False) + flag = threading.Event() + server.start(flag) + # wait for it to start + flag.wait() + # try to connect + try: + s = ssl.wrap_socket(socket.socket(), + server_side=False, + certfile=CERTFILE, + ca_certs=CERTFILE, + cert_reqs=ssl.CERT_NONE, + ssl_version=ssl.PROTOCOL_TLSv1) + s.connect((HOST, server.port)) + except ssl.SSLError as x: + raise support.TestFailed("Unexpected SSL error: " + str(x)) + except Exception as x: + raise support.TestFailed("Unexpected exception: " + str(x)) + else: + # helper methods for standardising recv* method signatures + def _recv_into(): + b = bytearray("\0"*100) + count = s.recv_into(b) + return b[:count] + + def _recvfrom_into(): + b = bytearray("\0"*100) + count, addr = s.recvfrom_into(b) + return b[:count] + + # (name, method, whether to expect success, *args) + send_methods = [ + ('send', s.send, True, []), + ('sendto', s.sendto, False, ["some.address"]), + ('sendall', s.sendall, True, []), + ] + recv_methods = [ + ('recv', s.recv, True, []), + ('recvfrom', s.recvfrom, False, ["some.address"]), + ('recv_into', _recv_into, True, []), + ('recvfrom_into', _recvfrom_into, False, []), + ] + data_prefix = u"PREFIX_" + + for meth_name, send_meth, expect_success, args in send_methods: + indata = data_prefix + meth_name + try: + send_meth(indata.encode('ASCII', 'strict'), *args) + outdata = s.read() + outdata = outdata.decode('ASCII', 'strict') + if outdata != indata.lower(): + raise support.TestFailed( + "While sending with <<%s>> bad data " + "<<%r>> (%d) received; " + "expected <<%r>> (%d)\n" % ( + meth_name, outdata[:20], len(outdata), + indata[:20], len(indata) + ) + ) + except ValueError as e: + if expect_success: + raise support.TestFailed( + "Failed to send with method <<%s>>; " + "expected to succeed.\n" % (meth_name,) + ) + if not str(e).startswith(meth_name): + raise support.TestFailed( + "Method <<%s>> failed with unexpected " + "exception message: %s\n" % ( + meth_name, e + ) + ) + + for meth_name, recv_meth, expect_success, args in recv_methods: + indata = data_prefix + meth_name + try: + s.send(indata.encode('ASCII', 'strict')) + outdata = recv_meth(*args) + outdata = outdata.decode('ASCII', 'strict') + if outdata != indata.lower(): + raise support.TestFailed( + "While receiving with <<%s>> bad data " + "<<%r>> (%d) received; " + "expected <<%r>> (%d)\n" % ( + meth_name, outdata[:20], len(outdata), + indata[:20], len(indata) + ) + ) + except ValueError as e: + if expect_success: + raise support.TestFailed( + "Failed to receive with method <<%s>>; " + "expected to succeed.\n" % (meth_name,) + ) + if not str(e).startswith(meth_name): + raise support.TestFailed( + "Method <<%s>> failed with unexpected " + "exception message: %s\n" % ( + meth_name, e + ) + ) + # consume data + s.read() + + s.write("over\n".encode("ASCII", "strict")) + s.close() + finally: + server.stop() + server.join() + + def test_main(verbose=False): if skip_expected: raise test_support.TestSkipped("No SSL support") Modified: python/branches/tlee-ast-optimize/Lib/test/test_struct.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_struct.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_struct.py Sun Sep 21 06:05:44 2008 @@ -4,7 +4,7 @@ import warnings from functools import wraps -from test.test_support import TestFailed, verbose, run_unittest, catch_warning +from test.test_support import TestFailed, verbose, run_unittest import sys ISBIGENDIAN = sys.byteorder == "big" @@ -34,7 +34,7 @@ def with_warning_restore(func): @wraps(func) def decorator(*args, **kw): - with catch_warning(): + with warnings.catch_warnings(): # We need this function to warn every time, so stick an # unqualifed 'always' at the head of the filter list warnings.simplefilter("always") Modified: python/branches/tlee-ast-optimize/Lib/test/test_structmembers.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_structmembers.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_structmembers.py Sun Sep 21 06:05:44 2008 @@ -69,32 +69,32 @@ self.assertEqual(w.category, RuntimeWarning) def test_byte_max(self): - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: ts.T_BYTE = CHAR_MAX+1 self.has_warned(w) def test_byte_min(self): - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: ts.T_BYTE = CHAR_MIN-1 self.has_warned(w) def test_ubyte_max(self): - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: ts.T_UBYTE = UCHAR_MAX+1 self.has_warned(w) def test_short_max(self): - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: ts.T_SHORT = SHRT_MAX+1 self.has_warned(w) def test_short_min(self): - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: ts.T_SHORT = SHRT_MIN-1 self.has_warned(w) def test_ushort_max(self): - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: ts.T_USHORT = USHRT_MAX+1 self.has_warned(w) Modified: python/branches/tlee-ast-optimize/Lib/test/test_sundry.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_sundry.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_sundry.py Sun Sep 21 06:05:44 2008 @@ -8,7 +8,7 @@ class TestUntestedModules(unittest.TestCase): def test_at_least_import_untested_modules(self): - with test_support.catch_warning(): + with warnings.catch_warnings(): import CGIHTTPServer import aifc import audiodev Modified: python/branches/tlee-ast-optimize/Lib/test/test_support.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_support.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_support.py Sun Sep 21 06:05:44 2008 @@ -18,7 +18,7 @@ "is_resource_enabled", "requires", "find_unused_port", "bind_port", "fcmp", "have_unicode", "is_jython", "TESTFN", "HOST", "FUZZ", "findfile", "verify", "vereq", "sortdict", "check_syntax_error", - "open_urlresource", "catch_warning", "CleanImport", + "open_urlresource", "check_warnings", "CleanImport", "EnvironmentVarGuard", "captured_output", "captured_stdout", "TransientResource", "transient_internet", "run_with_locale", "set_memlimit", "bigmemtest", "bigaddrspacetest", @@ -52,7 +52,7 @@ def import_module(name, deprecated=False): """Import the module to be tested, raising TestSkipped if it is not available.""" - with catch_warning(record=False): + with warnings.catch_warnings(): if deprecated: warnings.filterwarnings("ignore", ".+ (module|package)", DeprecationWarning) @@ -381,8 +381,27 @@ return open(fn) -def catch_warning(module=warnings, record=True): - return warnings.catch_warnings(record=record, module=module) +class WarningsRecorder(object): + """Convenience wrapper for the warnings list returned on + entry to the warnings.catch_warnings() context manager. + """ + def __init__(self, warnings_list): + self.warnings = warnings_list + + def __getattr__(self, attr): + if self.warnings: + return getattr(self.warnings[-1], attr) + elif attr in warnings.WarningMessage._WARNING_DETAILS: + return None + raise AttributeError("%r has no attribute %r" % (self, attr)) + + def reset(self): + del self.warnings[:] + + at contextlib.contextmanager +def check_warnings(): + with warnings.catch_warnings(record=True) as w: + yield WarningsRecorder(w) class CleanImport(object): Modified: python/branches/tlee-ast-optimize/Lib/test/test_symtable.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_symtable.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_symtable.py Sun Sep 21 06:05:44 2008 @@ -44,7 +44,7 @@ class SymtableTest(unittest.TestCase): - with test_support.catch_warning(record=False): + with warnings.catch_warnings(): # Ignore warnings about "from blank import *" warnings.simplefilter("ignore", SyntaxWarning) top = symtable.symtable(TEST_CODE, "?", "exec") @@ -60,7 +60,7 @@ def check(w, msg): self.assertEqual(str(w.message), msg) sym = self.top.lookup("glob") - with test_support.catch_warning() as w: + with test_support.check_warnings() as w: warnings.simplefilter("always", DeprecationWarning) self.assertFalse(sym.is_vararg()) check(w, "is_vararg() is obsolete and will be removed") Modified: python/branches/tlee-ast-optimize/Lib/test/test_unicodedata.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_unicodedata.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_unicodedata.py Sun Sep 21 06:05:44 2008 @@ -16,7 +16,7 @@ class UnicodeMethodsTest(unittest.TestCase): # update this, if the database changes - expectedchecksum = 'c198ed264497f108434b3f576d4107237221cc8a' + expectedchecksum = 'aef99984a58c8e1e5363a3175f2ff9608599a93e' def test_method_checksum(self): h = hashlib.sha1() @@ -75,7 +75,7 @@ class UnicodeFunctionsTest(UnicodeDatabaseTest): # update this, if the database changes - expectedchecksum = '4e389f97e9f88b8b7ab743121fd643089116f9f2' + expectedchecksum = '3136d5afd787dc2bcb1bdcac95e385349fbebbca' def test_function_checksum(self): data = [] @@ -225,6 +225,16 @@ def test_bug_1704793(self): self.assertEquals(self.db.lookup("GOTHIC LETTER FAIHU"), u'\U00010346') + def test_ucd_510(self): + import unicodedata + # In UCD 5.1.0, a mirrored property changed wrt. UCD 3.2.0 + self.assert_(unicodedata.mirrored(u"\u0f3a")) + self.assert_(not unicodedata.ucd_3_2_0.mirrored(u"\u0f3a")) + # Also, we now have two ways of representing + # the upper-case mapping: as delta, or as absolute value + self.assert_(u"a".upper()==u'A') + self.assert_(u"\u1d79".upper()==u'\ua77d') + def test_main(): test.test_support.run_unittest( UnicodeMiscTest, Modified: python/branches/tlee-ast-optimize/Lib/test/test_urllib.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_urllib.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_urllib.py Sun Sep 21 06:05:44 2008 @@ -641,7 +641,7 @@ def test_main(): import warnings - with test_support.catch_warning(record=False): + with warnings.catch_warnings(): warnings.filterwarnings('ignore', ".*urllib\.urlopen.*Python 3.0", DeprecationWarning) test_support.run_unittest( Modified: python/branches/tlee-ast-optimize/Lib/test/test_urllibnet.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_urllibnet.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_urllibnet.py Sun Sep 21 06:05:44 2008 @@ -182,8 +182,8 @@ def test_main(): test_support.requires('network') - from warnings import filterwarnings - with test_support.catch_warning(record=False): + from warnings import filterwarnings, catch_warnings + with catch_warnings(): filterwarnings('ignore', '.*urllib\.urlopen.*Python 3.0', DeprecationWarning) test_support.run_unittest(URLTimeoutTest, Modified: python/branches/tlee-ast-optimize/Lib/test/test_userstring.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_userstring.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_userstring.py Sun Sep 21 06:05:44 2008 @@ -135,7 +135,7 @@ self.assertEqual(s, "") def test_main(): - with test_support.catch_warning(record=False): + with warnings.catch_warnings(): warnings.filterwarnings("ignore", ".*MutableString", DeprecationWarning) test_support.run_unittest(UserStringTest, MutableStringTest) Modified: python/branches/tlee-ast-optimize/Lib/test/test_warnings.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_warnings.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_warnings.py Sun Sep 21 06:05:44 2008 @@ -72,64 +72,69 @@ """Testing the filtering functionality.""" def test_error(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("error", category=UserWarning) self.assertRaises(UserWarning, self.module.warn, "FilterTests.test_error") def test_ignore(self): - with test_support.catch_warning(module=self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("ignore", category=UserWarning) self.module.warn("FilterTests.test_ignore", UserWarning) self.assertEquals(len(w), 0) def test_always(self): - with test_support.catch_warning(module=self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("always", category=UserWarning) message = "FilterTests.test_always" self.module.warn(message, UserWarning) - self.assert_(message, w.message) + self.assert_(message, w[-1].message) self.module.warn(message, UserWarning) - self.assert_(w.message, message) + self.assert_(w[-1].message, message) def test_default(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("default", category=UserWarning) message = UserWarning("FilterTests.test_default") for x in xrange(2): self.module.warn(message, UserWarning) if x == 0: - self.assertEquals(w.message, message) - w.reset() + self.assertEquals(w[-1].message, message) + del w[:] elif x == 1: - self.assert_(not len(w), "unexpected warning: " + str(w)) + self.assertEquals(len(w), 0) else: raise ValueError("loop variant unhandled") def test_module(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("module", category=UserWarning) message = UserWarning("FilterTests.test_module") self.module.warn(message, UserWarning) - self.assertEquals(w.message, message) - w.reset() + self.assertEquals(w[-1].message, message) + del w[:] self.module.warn(message, UserWarning) - self.assert_(not len(w), "unexpected message: " + str(w)) + self.assertEquals(len(w), 0) def test_once(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("once", category=UserWarning) message = UserWarning("FilterTests.test_once") self.module.warn_explicit(message, UserWarning, "test_warnings.py", 42) - self.assertEquals(w.message, message) - w.reset() + self.assertEquals(w[-1].message, message) + del w[:] self.module.warn_explicit(message, UserWarning, "test_warnings.py", 13) self.assertEquals(len(w), 0) @@ -138,19 +143,20 @@ self.assertEquals(len(w), 0) def test_inheritance(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("error", category=Warning) self.assertRaises(UserWarning, self.module.warn, "FilterTests.test_inheritance", UserWarning) def test_ordering(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("ignore", category=UserWarning) self.module.filterwarnings("error", category=UserWarning, append=True) - w.reset() + del w[:] try: self.module.warn("FilterTests.test_ordering", UserWarning) except UserWarning: @@ -160,28 +166,29 @@ def test_filterwarnings(self): # Test filterwarnings(). # Implicitly also tests resetwarnings(). - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.filterwarnings("error", "", Warning, "", 0) self.assertRaises(UserWarning, self.module.warn, 'convert to error') self.module.resetwarnings() text = 'handle normally' self.module.warn(text) - self.assertEqual(str(w.message), text) - self.assert_(w.category is UserWarning) + self.assertEqual(str(w[-1].message), text) + self.assert_(w[-1].category is UserWarning) self.module.filterwarnings("ignore", "", Warning, "", 0) text = 'filtered out' self.module.warn(text) - self.assertNotEqual(str(w.message), text) + self.assertNotEqual(str(w[-1].message), text) self.module.resetwarnings() self.module.filterwarnings("error", "hex*", Warning, "", 0) self.assertRaises(UserWarning, self.module.warn, 'hex/oct') text = 'nonmatching text' self.module.warn(text) - self.assertEqual(str(w.message), text) - self.assert_(w.category is UserWarning) + self.assertEqual(str(w[-1].message), text) + self.assert_(w[-1].category is UserWarning) class CFilterTests(BaseTest, FilterTests): module = c_warnings @@ -195,40 +202,51 @@ """Test warnings.warn() and warnings.warn_explicit().""" def test_message(self): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: for i in range(4): text = 'multi %d' %i # Different text on each call. self.module.warn(text) - self.assertEqual(str(w.message), text) - self.assert_(w.category is UserWarning) + self.assertEqual(str(w[-1].message), text) + self.assert_(w[-1].category is UserWarning) def test_filename(self): with warnings_state(self.module): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: warning_tests.inner("spam1") - self.assertEqual(os.path.basename(w.filename), "warning_tests.py") + self.assertEqual(os.path.basename(w[-1].filename), + "warning_tests.py") warning_tests.outer("spam2") - self.assertEqual(os.path.basename(w.filename), "warning_tests.py") + self.assertEqual(os.path.basename(w[-1].filename), + "warning_tests.py") def test_stacklevel(self): # Test stacklevel argument # make sure all messages are different, so the warning won't be skipped with warnings_state(self.module): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: warning_tests.inner("spam3", stacklevel=1) - self.assertEqual(os.path.basename(w.filename), "warning_tests.py") + self.assertEqual(os.path.basename(w[-1].filename), + "warning_tests.py") warning_tests.outer("spam4", stacklevel=1) - self.assertEqual(os.path.basename(w.filename), "warning_tests.py") + self.assertEqual(os.path.basename(w[-1].filename), + "warning_tests.py") warning_tests.inner("spam5", stacklevel=2) - self.assertEqual(os.path.basename(w.filename), "test_warnings.py") + self.assertEqual(os.path.basename(w[-1].filename), + "test_warnings.py") warning_tests.outer("spam6", stacklevel=2) - self.assertEqual(os.path.basename(w.filename), "warning_tests.py") + self.assertEqual(os.path.basename(w[-1].filename), + "warning_tests.py") warning_tests.outer("spam6.5", stacklevel=3) - self.assertEqual(os.path.basename(w.filename), "test_warnings.py") + self.assertEqual(os.path.basename(w[-1].filename), + "test_warnings.py") warning_tests.inner("spam7", stacklevel=9999) - self.assertEqual(os.path.basename(w.filename), "sys") + self.assertEqual(os.path.basename(w[-1].filename), + "sys") def test_missing_filename_not_main(self): # If __file__ is not specified and __main__ is not the module name, @@ -237,9 +255,10 @@ try: del warning_tests.__file__ with warnings_state(self.module): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: warning_tests.inner("spam8", stacklevel=1) - self.assertEqual(w.filename, warning_tests.__name__) + self.assertEqual(w[-1].filename, warning_tests.__name__) finally: warning_tests.__file__ = filename @@ -254,9 +273,10 @@ del warning_tests.__file__ warning_tests.__name__ = '__main__' with warnings_state(self.module): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: warning_tests.inner('spam9', stacklevel=1) - self.assertEqual(w.filename, sys.argv[0]) + self.assertEqual(w[-1].filename, sys.argv[0]) finally: warning_tests.__file__ = filename warning_tests.__name__ = module_name @@ -272,9 +292,10 @@ warning_tests.__name__ = '__main__' del sys.argv with warnings_state(self.module): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: warning_tests.inner('spam10', stacklevel=1) - self.assertEqual(w.filename, '__main__') + self.assertEqual(w[-1].filename, '__main__') finally: warning_tests.__file__ = filename warning_tests.__name__ = module_name @@ -292,9 +313,10 @@ warning_tests.__name__ = '__main__' sys.argv = [''] with warnings_state(self.module): - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: warning_tests.inner('spam11', stacklevel=1) - self.assertEqual(w.filename, '__main__') + self.assertEqual(w[-1].filename, '__main__') finally: warning_tests.__file__ = file_name warning_tests.__name__ = module_name @@ -328,7 +350,7 @@ def test_improper_input(self): # Uses the private _setoption() function to test the parsing # of command-line warning arguments - with test_support.catch_warning(self.module): + with original_warnings.catch_warnings(module=self.module): self.assertRaises(self.module._OptionError, self.module._setoption, '1:2:3:4:5:6') self.assertRaises(self.module._OptionError, @@ -353,7 +375,7 @@ def test_filter(self): # Everything should function even if 'filters' is not in warnings. - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(module=self.module) as w: self.module.filterwarnings("error", "", Warning, "", 0) self.assertRaises(UserWarning, self.module.warn, 'convert to error') @@ -368,21 +390,22 @@ try: original_registry = self.module.onceregistry __warningregistry__ = {} - with test_support.catch_warning(self.module) as w: + with original_warnings.catch_warnings(record=True, + module=self.module) as w: self.module.resetwarnings() self.module.filterwarnings("once", category=UserWarning) self.module.warn_explicit(message, UserWarning, "file", 42) - self.failUnlessEqual(w.message, message) - w.reset() + self.failUnlessEqual(w[-1].message, message) + del w[:] self.module.warn_explicit(message, UserWarning, "file", 42) self.assertEquals(len(w), 0) # Test the resetting of onceregistry. self.module.onceregistry = {} __warningregistry__ = {} self.module.warn('onceregistry test') - self.failUnlessEqual(w.message.args, message.args) + self.failUnlessEqual(w[-1].message.args, message.args) # Removal of onceregistry is okay. - w.reset() + del w[:] del self.module.onceregistry __warningregistry__ = {} self.module.warn_explicit(message, UserWarning, "file", 42) @@ -393,7 +416,7 @@ def test_showwarning_missing(self): # Test that showwarning() missing is okay. text = 'del showwarning test' - with test_support.catch_warning(self.module): + with original_warnings.catch_warnings(module=self.module): self.module.filterwarnings("always", category=UserWarning) del self.module.showwarning with test_support.captured_output('stderr') as stream: @@ -414,7 +437,7 @@ def test_show_warning_output(self): # With showarning() missing, make sure that output is okay. text = 'test show_warning' - with test_support.catch_warning(self.module): + with original_warnings.catch_warnings(module=self.module): self.module.filterwarnings("always", category=UserWarning) del self.module.showwarning with test_support.captured_output('stderr') as stream: @@ -486,7 +509,6 @@ module = py_warnings - class CatchWarningTests(BaseTest): """Test catch_warnings().""" @@ -495,10 +517,12 @@ wmod = self.module orig_filters = wmod.filters orig_showwarning = wmod.showwarning - with wmod.catch_warnings(record=True, module=wmod): + # Ensure both showwarning and filters are restored when recording + with wmod.catch_warnings(module=wmod, record=True): wmod.filters = wmod.showwarning = object() self.assert_(wmod.filters is orig_filters) self.assert_(wmod.showwarning is orig_showwarning) + # Same test, but with recording disabled with wmod.catch_warnings(module=wmod, record=False): wmod.filters = wmod.showwarning = object() self.assert_(wmod.filters is orig_filters) @@ -506,23 +530,74 @@ def test_catch_warnings_recording(self): wmod = self.module + # Ensure warnings are recorded when requested with wmod.catch_warnings(module=wmod, record=True) as w: self.assertEqual(w, []) - self.assertRaises(AttributeError, getattr, w, 'message') + self.assert_(type(w) is list) wmod.simplefilter("always") wmod.warn("foo") - self.assertEqual(str(w.message), "foo") + self.assertEqual(str(w[-1].message), "foo") wmod.warn("bar") - self.assertEqual(str(w.message), "bar") + self.assertEqual(str(w[-1].message), "bar") self.assertEqual(str(w[0].message), "foo") self.assertEqual(str(w[1].message), "bar") - w.reset() + del w[:] self.assertEqual(w, []) + # Ensure warnings are not recorded when not requested orig_showwarning = wmod.showwarning with wmod.catch_warnings(module=wmod, record=False) as w: self.assert_(w is None) self.assert_(wmod.showwarning is orig_showwarning) + def test_catch_warnings_reentry_guard(self): + wmod = self.module + # Ensure catch_warnings is protected against incorrect usage + x = wmod.catch_warnings(module=wmod, record=True) + self.assertRaises(RuntimeError, x.__exit__) + with x: + self.assertRaises(RuntimeError, x.__enter__) + # Same test, but with recording disabled + x = wmod.catch_warnings(module=wmod, record=False) + self.assertRaises(RuntimeError, x.__exit__) + with x: + self.assertRaises(RuntimeError, x.__enter__) + + def test_catch_warnings_defaults(self): + wmod = self.module + orig_filters = wmod.filters + orig_showwarning = wmod.showwarning + # Ensure default behaviour is not to record warnings + with wmod.catch_warnings(module=wmod) as w: + self.assert_(w is None) + self.assert_(wmod.showwarning is orig_showwarning) + self.assert_(wmod.filters is not orig_filters) + self.assert_(wmod.filters is orig_filters) + if wmod is sys.modules['warnings']: + # Ensure the default module is this one + with wmod.catch_warnings() as w: + self.assert_(w is None) + self.assert_(wmod.showwarning is orig_showwarning) + self.assert_(wmod.filters is not orig_filters) + self.assert_(wmod.filters is orig_filters) + + def test_check_warnings(self): + # Explicit tests for the test_support convenience wrapper + wmod = self.module + if wmod is sys.modules['warnings']: + with test_support.check_warnings() as w: + self.assertEqual(w.warnings, []) + wmod.simplefilter("always") + wmod.warn("foo") + self.assertEqual(str(w.message), "foo") + wmod.warn("bar") + self.assertEqual(str(w.message), "bar") + self.assertEqual(str(w.warnings[0].message), "foo") + self.assertEqual(str(w.warnings[1].message), "bar") + w.reset() + self.assertEqual(w.warnings, []) + + + class CCatchWarningTests(CatchWarningTests): module = c_warnings @@ -545,7 +620,7 @@ def test_deprecation(self): # message, category, filename, lineno[, file[, line]] args = ("message", UserWarning, "file name", 42) - with test_support.catch_warning(module=self.module): + with original_warnings.catch_warnings(module=self.module): self.module.filterwarnings("error", category=DeprecationWarning) self.module.showwarning = self.bad_showwarning self.assertRaises(DeprecationWarning, self.module.warn_explicit, Modified: python/branches/tlee-ast-optimize/Lib/test/test_weakref.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/test/test_weakref.py (original) +++ python/branches/tlee-ast-optimize/Lib/test/test_weakref.py Sun Sep 21 06:05:44 2008 @@ -665,6 +665,14 @@ w = Target() + def test_init(self): + # Issue 3634 + # .__init__() doesn't check errors correctly + r = weakref.ref(Exception) + self.assertRaises(TypeError, r.__init__, 0, 0, 0, 0, 0) + # No exception should be raised here + gc.collect() + class SubclassableWeakrefTestCase(TestBase): Modified: python/branches/tlee-ast-optimize/Lib/warnings.py ============================================================================== --- python/branches/tlee-ast-optimize/Lib/warnings.py (original) +++ python/branches/tlee-ast-optimize/Lib/warnings.py Sun Sep 21 06:05:44 2008 @@ -8,7 +8,7 @@ import types __all__ = ["warn", "showwarning", "formatwarning", "filterwarnings", - "resetwarnings"] + "resetwarnings", "catch_warnings"] def warnpy3k(message, category=None, stacklevel=1): @@ -304,37 +304,20 @@ self.filename, self.lineno, self.line)) -class WarningsRecorder(list): - - """Record the result of various showwarning() calls.""" - - # Explicitly stated arguments so as to not trigger DeprecationWarning - # about adding 'line'. - def showwarning(self, *args, **kwargs): - self.append(WarningMessage(*args, **kwargs)) - - def __getattr__(self, attr): - """Return attributes from the last caught warning, or raise - AttributeError.""" - try: - return getattr(self[-1], attr) - except IndexError: - raise AttributeError("no recorded warning to read " - "{0!r} attribute from".format(attr)) - - - def reset(self): - del self[:] - - class catch_warnings(object): - """Guard the warnings filter from being permanently changed and optionally - record the details of any warnings that are issued. + """A context manager that copies and restores the warnings filter upon + exiting the context. - Context manager returns an instance of warnings.WarningRecorder which is a - list of WarningMessage instances. Attributes on WarningRecorder are - redirected to the last created WarningMessage instance. + The 'record' argument specifies whether warnings should be captured by a + custom implementation of warnings.showwarning() and be appended to a list + returned by the context manager. Otherwise None is returned by the context + manager. The objects appended to the list are arguments whose attributes + mirror the arguments to showwarning(). + + The 'module' argument is to specify an alternative module to the module + named 'warnings' and imported under that name. This argument is only useful + when testing the warnings module itself. """ @@ -346,19 +329,38 @@ keyword-only. """ - self._recorder = WarningsRecorder() if record else None + self._record = record self._module = sys.modules['warnings'] if module is None else module + self._entered = False + + def __repr__(self): + args = [] + if self._record: + args.append("record=True") + if self._module is not sys.modules['warnings']: + args.append("module=%r" % self._module) + name = type(self).__name__ + return "%s(%s)" % (name, ", ".join(args)) def __enter__(self): + if self._entered: + raise RuntimeError("Cannot enter %r twice" % self) + self._entered = True self._filters = self._module.filters self._module.filters = self._filters[:] self._showwarning = self._module.showwarning - if self._recorder is not None: - self._recorder.reset() # In case the instance is being reused. - self._module.showwarning = self._recorder.showwarning - return self._recorder + if self._record: + log = [] + def showwarning(*args, **kwargs): + log.append(WarningMessage(*args, **kwargs)) + self._module.showwarning = showwarning + return log + else: + return None def __exit__(self, *exc_info): + if not self._entered: + raise RuntimeError("Cannot exit %r without entering first" % self) self._module.filters = self._filters self._module.showwarning = self._showwarning Modified: python/branches/tlee-ast-optimize/Misc/NEWS ============================================================================== --- python/branches/tlee-ast-optimize/Misc/NEWS (original) +++ python/branches/tlee-ast-optimize/Misc/NEWS Sun Sep 21 06:05:44 2008 @@ -4,14 +4,78 @@ (editors: check NEWS.help for information about editing NEWS using ReST.) +What's New in Python 2.6 final +============================== + +*Release date: XX-XXX-2008* + +Core and Builtins +----------------- + +Library +------- + +Build +----- + +- Bug #3887: Package x64 version of CRT for AMD64 Windows binaries. + + +What's New in Python 2.6 release candidate 2? +============================================= + +*Release date: 17-Sep-2008* + +Core and Builtins +----------------- + +Extension Modules +----------------- + +- Issue #3886: Possible integer overflows in the _hashopenssl module were + closed. + +Tools/Demos +----------- + +- Issue #3850: recursion tests in Misc/find_recursion_limit.py can raise + AttributeError instead of RuntimeError, depending in which C API call + exactly the recursion limit is exceeded. Consequently, both exception types + are caught and silenced. + +Build +----- + +- Issue #3617: Include a licensing statement regarding the Microsoft + C runtime in the Windows installer. + + What's New in Python 2.6 release candidate 1? ============================================= -*Release date: XX-XXX-2008* +*Release date: 12-Sep-2008* Core and Builtins ----------------- +- Issue #3642: Suppress warning in obmalloc when size_t is larger than uint. + +- Issue #3743: In a few places, PY_FORMAT_SIZE_T was incorrectly used with + PyString_FromFormat or PyErr_Format to display size_t values. The macro + PY_FORMAT_SIZE_T is designed to select the correct format for the OS + ``printf`` function, whereas PyString_FromFormat has an independent + implementation and uses "%zd" on all platforms for size_t values. + This makes a difference on win64, where ``printf`` needs "%Id" to display + 64bit values. + +- Issue #3634: _weakref.ref(Exception).__init__() gave invalid return value on + error. + +- Issue #3777: long() applied to a float object now always return a long + object; previously an int would be returned for small values. the __long__ + method is allowed to return either an int or a long, but the behaviour of + float objects should not change to respect backward compatibility. + - Issue #3751: str.rpartition would perform a left-partition when called with a unicode argument. @@ -36,9 +100,6 @@ - Fix problem using wrong name in decimal module reported by pychecker. -- Issue #3642: Changed type of numarenas from uint to size_t - in order to silence a compilier warning on 64bit OSes. - - Silenced another compiler warning about a used but not defined function 'stringlib_contains_obj'. @@ -60,6 +121,22 @@ Library ------- +- Issue #3640: Pickling a list or a dict uses less local variables, to reduce + stack usage in the case of deeply nested objects. + +- Issue #3629: Fix sre "bytecode" validator for an end case. + +- Issue #3811: The Unicode database was updated to 5.1. + +- Issue #3781: Further warnings.catch_warnings() cleanup to prevent + silent misbehaviour when a single instance is nested in multiple + with statements, or when the methods are invoked in the wrong order. + +- Issue #3809: Fixed spurious 'test.blah' file left behind by test_logging. + +- Issue #3781: Clean up the API for warnings.catch_warnings() by having it + return a list or None rather than a custom object. + - Issue #1638033: Cookie.Morsel gained the httponly attribute. - Issue #3535: zipfile couldn't read some zip files larger than 2GB. @@ -115,9 +192,22 @@ - Issue #3643: Added a few more checks to _testcapi to prevent segfaults by exploitation of poor argument checking. +- sqlite3: Changed docstring of iterdump() to mark method as "Non-standard". + +- Issue #3103: Reduced globals symbols used by sqlite3 module and made sure all + remaining ones have "pysqlite_" prefix. + +- Issue #3846: Release the GIL during sqlite3_prepare calls. This improves + concurrent access to the same SQLite database from multiple + threads/processes. + Tests ----- +- Issue #3781: Add test.test_support.check_warnings() as a convenience + wrapper for warnings.catch_warnings() that makes it easier to check + that expected warning messages are being reported. + - Issue #3796: Some tests functions were not enabled in test_float. - Issue #3768: Move test_py3kwarn over to the new API for catch_warnings(). @@ -125,7 +215,14 @@ Build ----- -- Issue #3758: Rename the 'check' target to 'patchcheck' so as to not clash +- Issue #3833: Use a different upgrade code for Win64 installers. + +- Issue #2271: Set SecureCustomProperties so that installation will properly + use the TARGETDIR even for unprivileged users. + +- Allow passing the MSI file name to merge.py. + +- Issue #3758: Rename the 'check' target to 'patchcheck' so as to not clash with GNU build target guidelines. Modified: python/branches/tlee-ast-optimize/Misc/RPM/python-2.6.spec ============================================================================== --- python/branches/tlee-ast-optimize/Misc/RPM/python-2.6.spec (original) +++ python/branches/tlee-ast-optimize/Misc/RPM/python-2.6.spec Sun Sep 21 06:05:44 2008 @@ -34,7 +34,7 @@ %define name python #--start constants-- -%define version 2.6b3 +%define version 2.6rc2 %define libver 2.6 #--end constants-- %define release 1pydotorg Modified: python/branches/tlee-ast-optimize/Misc/find_recursionlimit.py ============================================================================== --- python/branches/tlee-ast-optimize/Misc/find_recursionlimit.py (original) +++ python/branches/tlee-ast-optimize/Misc/find_recursionlimit.py Sun Sep 21 06:05:44 2008 @@ -1,27 +1,36 @@ #! /usr/bin/env python -"""Find the maximum recursion limit that prevents core dumps +"""Find the maximum recursion limit that prevents interpreter termination. This script finds the maximum safe recursion limit on a particular platform. If you need to change the recursion limit on your system, this script will tell you a safe upper bound. To use the new limit, -call sys.setrecursionlimit. +call sys.setrecursionlimit(). This module implements several ways to create infinite recursion in Python. Different implementations end up pushing different numbers of C stack frames, depending on how many calls through Python's abstract C API occur. -After each round of tests, it prints a message -Limit of NNNN is fine. +After each round of tests, it prints a message: +"Limit of NNNN is fine". -It ends when Python causes a segmentation fault because the limit is -too high. On platforms like Mac and Windows, it should exit with a -MemoryError. +The highest printed value of "NNNN" is therefore the highest potentially +safe limit for your system (which depends on the OS, architecture, but also +the compilation flags). Please note that it is practically impossible to +test all possible recursion paths in the interpreter, so the results of +this test should not be trusted blindly -- although they give a good hint +of which values are reasonable. + +NOTE: When the C stack space allocated by your system is exceeded due +to excessive recursion, exact behaviour depends on the platform, although +the interpreter will always fail in a likely brutal way: either a +segmentation fault, a MemoryError, or just a silent abort. NB: A program that does not use __methods__ can set a higher limit. """ import sys +import itertools class RecursiveBlowup1: def __init__(self): @@ -61,6 +70,23 @@ def test_recurse(): return test_recurse() +def test_cpickle(_cache={}): + try: + import cPickle + except ImportError: + print "cannot import cPickle, skipped!" + return + l = None + for n in itertools.count(): + try: + l = _cache[n] + continue # Already tried and it works, let's save some time + except KeyError: + for i in range(100): + l = [l] + cPickle.dumps(l, protocol=-1) + _cache[n] = l + def check_limit(n, test_func_name): sys.setrecursionlimit(n) if test_func_name.startswith("test_"): @@ -70,7 +96,10 @@ test_func = globals()[test_func_name] try: test_func() - except RuntimeError: + # AttributeError can be raised because of the way e.g. PyDict_GetItem() + # silences all exceptions and returns NULL, which is usually interpreted + # as "missing attribute". + except (RuntimeError, AttributeError): pass else: print "Yikes!" @@ -83,5 +112,6 @@ check_limit(limit, "test_init") check_limit(limit, "test_getattr") check_limit(limit, "test_getitem") + check_limit(limit, "test_cpickle") print "Limit of %d is fine" % limit limit = limit + 100 Modified: python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c (original) +++ python/branches/tlee-ast-optimize/Modules/_collectionsmodule.c Sun Sep 21 06:05:44 2008 @@ -670,7 +670,7 @@ return NULL; } if (((dequeobject *)deque)->maxlen != -1) - fmt = PyString_FromFormat("deque(%%r, maxlen=%" PY_FORMAT_SIZE_T "d)", + fmt = PyString_FromFormat("deque(%%r, maxlen=%zd)", ((dequeobject *)deque)->maxlen); else fmt = PyString_FromString("deque(%r)"); Modified: python/branches/tlee-ast-optimize/Modules/_hashopenssl.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_hashopenssl.c (original) +++ python/branches/tlee-ast-optimize/Modules/_hashopenssl.c Sun Sep 21 06:05:44 2008 @@ -19,6 +19,8 @@ /* EVP is the preferred interface to hashing in OpenSSL */ #include +#define MUNCH_SIZE INT_MAX + #ifndef HASH_OBJ_CONSTRUCTOR #define HASH_OBJ_CONSTRUCTOR 0 @@ -164,9 +166,18 @@ if (!PyArg_ParseTuple(args, "s#:update", &cp, &len)) return NULL; + if (len > 0 && len <= MUNCH_SIZE) { EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); - + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } Py_INCREF(Py_None); return Py_None; } @@ -255,10 +266,21 @@ self->name = name_obj; Py_INCREF(self->name); - if (cp && len) + if (cp && len) { + if (len > 0 && len <= MUNCH_SIZE) { EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); - + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } + } + return 0; } #endif @@ -327,7 +349,7 @@ static PyObject * EVPnew(PyObject *name_obj, const EVP_MD *digest, const EVP_MD_CTX *initial_ctx, - const unsigned char *cp, unsigned int len) + const unsigned char *cp, Py_ssize_t len) { EVPobject *self; @@ -345,8 +367,20 @@ EVP_DigestInit(&self->ctx, digest); } - if (cp && len) - EVP_DigestUpdate(&self->ctx, cp, len); + if (cp && len) { + if (len > 0 && len <= MUNCH_SIZE) { + EVP_DigestUpdate(&self->ctx, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, + unsigned int)); + } else { + Py_ssize_t offset = 0; + while (len) { + unsigned int process = len > MUNCH_SIZE ? MUNCH_SIZE : len; + EVP_DigestUpdate(&self->ctx, cp + offset, process); + len -= process; + offset += process; + } + } + } return (PyObject *)self; } @@ -383,8 +417,7 @@ digest = EVP_get_digestbyname(name); - return EVPnew(name_obj, digest, NULL, cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, - unsigned int)); + return EVPnew(name_obj, digest, NULL, cp, len); } /* @@ -409,7 +442,7 @@ CONST_ ## NAME ## _name_obj, \ NULL, \ CONST_new_ ## NAME ## _ctx_p, \ - cp, Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int)); \ + cp, len); \ } /* a PyMethodDef structure for the constructor */ Modified: python/branches/tlee-ast-optimize/Modules/_multiprocessing/connection.h ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_multiprocessing/connection.h (original) +++ python/branches/tlee-ast-optimize/Modules/_multiprocessing/connection.h Sun Sep 21 06:05:44 2008 @@ -47,8 +47,8 @@ return NULL; if (handle == INVALID_HANDLE_VALUE || (Py_ssize_t)handle < 0) { - PyErr_Format(PyExc_IOError, "invalid handle %" - PY_FORMAT_SIZE_T "d", (Py_ssize_t)handle); + PyErr_Format(PyExc_IOError, "invalid handle %zd", + (Py_ssize_t)handle); return NULL; } @@ -396,7 +396,7 @@ static char *conn_type[] = {"read-only", "write-only", "read-write"}; assert(self->flags >= 1 && self->flags <= 3); - return FROM_FORMAT("<%s %s, handle %" PY_FORMAT_SIZE_T "d>", + return FROM_FORMAT("<%s %s, handle %zd>", conn_type[self->flags - 1], CONNECTION_NAME, (Py_ssize_t)self->handle); } Modified: python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.h ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.h (original) +++ python/branches/tlee-ast-optimize/Modules/_multiprocessing/multiprocessing.h Sun Sep 21 06:05:44 2008 @@ -56,7 +56,6 @@ # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN # define F_PY_SSIZE_T "i" -# define PY_FORMAT_SIZE_T "" # define PyInt_FromSsize_t(n) PyInt_FromLong((long)n) #else # define F_PY_SSIZE_T "n" Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/connection.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/connection.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/connection.c Sun Sep 21 06:05:44 2008 @@ -38,7 +38,7 @@ static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level); -void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len) +static void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg, int len) { /* in older SQLite versions, calling sqlite3_result_error in callbacks * triggers a bug in SQLite that leads either to irritating results or @@ -363,7 +363,7 @@ goto error; } - rc = _sqlite_step_with_busyhandler(statement, self); + rc = pysqlite_step(statement, self); if (rc == SQLITE_DONE) { self->inTransaction = 1; } else { @@ -406,7 +406,7 @@ goto error; } - rc = _sqlite_step_with_busyhandler(statement, self); + rc = pysqlite_step(statement, self); if (rc == SQLITE_DONE) { self->inTransaction = 0; } else { @@ -452,7 +452,7 @@ goto error; } - rc = _sqlite_step_with_busyhandler(statement, self); + rc = pysqlite_step(statement, self); if (rc == SQLITE_DONE) { self->inTransaction = 0; } else { @@ -1389,7 +1389,7 @@ {"interrupt", (PyCFunction)pysqlite_connection_interrupt, METH_NOARGS, PyDoc_STR("Abort any pending database operation. Non-standard.")}, {"iterdump", (PyCFunction)pysqlite_connection_iterdump, METH_NOARGS, - PyDoc_STR("Returns iterator to the dump of the database in an SQL text format.")}, + PyDoc_STR("Returns iterator to the dump of the database in an SQL text format. Non-standard.")}, {"__enter__", (PyCFunction)pysqlite_connection_enter, METH_NOARGS, PyDoc_STR("For context manager. Non-standard.")}, {"__exit__", (PyCFunction)pysqlite_connection_exit, METH_VARARGS, Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/cursor.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/cursor.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/cursor.c Sun Sep 21 06:05:44 2008 @@ -605,7 +605,7 @@ /* Keep trying the SQL statement until the schema stops changing. */ while (1) { /* Actually execute the SQL statement. */ - rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection); + rc = pysqlite_step(self->statement->st, self->connection); if (rc == SQLITE_DONE || rc == SQLITE_ROW) { /* If it worked, let's get out of the loop */ break; @@ -790,11 +790,13 @@ } statement_completed = 1; + Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(self->connection->db, script_cstr, -1, &statement, &script_cstr); + Py_END_ALLOW_THREADS if (rc != SQLITE_OK) { _pysqlite_seterror(self->connection->db, NULL); goto error; @@ -803,7 +805,7 @@ /* execute statement, and ignore results of SELECT statements */ rc = SQLITE_ROW; while (rc == SQLITE_ROW) { - rc = _sqlite_step_with_busyhandler(statement, self->connection); + rc = pysqlite_step(statement, self->connection); /* TODO: we probably need more error handling here */ } @@ -871,7 +873,7 @@ } if (self->statement) { - rc = _sqlite_step_with_busyhandler(self->statement->st, self->connection); + rc = pysqlite_step(self->statement->st, self->connection); if (rc != SQLITE_DONE && rc != SQLITE_ROW) { (void)pysqlite_statement_reset(self->statement); Py_DECREF(next_row); Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.c Sun Sep 21 06:05:44 2008 @@ -35,10 +35,10 @@ PyObject *psyco_adapters; -/* microprotocols_init - initialize the adapters dictionary */ +/* pysqlite_microprotocols_init - initialize the adapters dictionary */ int -microprotocols_init(PyObject *dict) +pysqlite_microprotocols_init(PyObject *dict) { /* create adapters dictionary and put it in module namespace */ if ((psyco_adapters = PyDict_New()) == NULL) { @@ -49,10 +49,10 @@ } -/* microprotocols_add - add a reverse type-caster to the dictionary */ +/* pysqlite_microprotocols_add - add a reverse type-caster to the dictionary */ int -microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast) +pysqlite_microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast) { PyObject* key; int rc; @@ -70,10 +70,10 @@ return rc; } -/* microprotocols_adapt - adapt an object to the built-in protocol */ +/* pysqlite_microprotocols_adapt - adapt an object to the built-in protocol */ PyObject * -microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt) +pysqlite_microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt) { PyObject *adapter, *key; @@ -132,11 +132,11 @@ /** module-level functions **/ PyObject * -psyco_microprotocols_adapt(pysqlite_Cursor *self, PyObject *args) +pysqlite_adapt(pysqlite_Cursor *self, PyObject *args) { PyObject *obj, *alt = NULL; PyObject *proto = (PyObject*)&pysqlite_PrepareProtocolType; if (!PyArg_ParseTuple(args, "O|OO", &obj, &proto, &alt)) return NULL; - return microprotocols_adapt(obj, proto, alt); + return pysqlite_microprotocols_adapt(obj, proto, alt); } Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.h ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.h (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/microprotocols.h Sun Sep 21 06:05:44 2008 @@ -41,15 +41,15 @@ /** exported functions **/ /* used by module.c to init the microprotocols system */ -extern int microprotocols_init(PyObject *dict); -extern int microprotocols_add( +extern int pysqlite_microprotocols_init(PyObject *dict); +extern int pysqlite_microprotocols_add( PyTypeObject *type, PyObject *proto, PyObject *cast); -extern PyObject *microprotocols_adapt( +extern PyObject *pysqlite_microprotocols_adapt( PyObject *obj, PyObject *proto, PyObject *alt); extern PyObject * - psyco_microprotocols_adapt(pysqlite_Cursor* self, PyObject *args); -#define psyco_microprotocols_adapt_doc \ + pysqlite_adapt(pysqlite_Cursor* self, PyObject *args); +#define pysqlite_adapt_doc \ "adapt(obj, protocol, alternate) -> adapt obj to given protocol. Non-standard." #endif /* !defined(PSYCOPG_MICROPROTOCOLS_H) */ Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/module.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/module.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/module.c Sun Sep 21 06:05:44 2008 @@ -160,7 +160,7 @@ pysqlite_BaseTypeAdapted = 1; } - rc = microprotocols_add(type, (PyObject*)&pysqlite_PrepareProtocolType, caster); + rc = pysqlite_microprotocols_add(type, (PyObject*)&pysqlite_PrepareProtocolType, caster); if (rc == -1) return NULL; @@ -244,8 +244,8 @@ METH_VARARGS, module_register_adapter_doc}, {"register_converter", (PyCFunction)module_register_converter, METH_VARARGS, module_register_converter_doc}, - {"adapt", (PyCFunction)psyco_microprotocols_adapt, METH_VARARGS, - psyco_microprotocols_adapt_doc}, + {"adapt", (PyCFunction)pysqlite_adapt, METH_VARARGS, + pysqlite_adapt_doc}, {"enable_callback_tracebacks", (PyCFunction)enable_callback_tracebacks, METH_VARARGS, enable_callback_tracebacks_doc}, {NULL, NULL} @@ -423,7 +423,7 @@ Py_DECREF(tmp_obj); /* initialize microprotocols layer */ - microprotocols_init(dict); + pysqlite_microprotocols_init(dict); /* initialize the default converters */ converters_init(dict); Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/statement.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/statement.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/statement.c Sun Sep 21 06:05:44 2008 @@ -79,11 +79,13 @@ sql_cstr = PyString_AsString(sql_str); + Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(connection->db, sql_cstr, -1, &self->st, &tail); + Py_END_ALLOW_THREADS self->db = connection->db; @@ -250,7 +252,7 @@ if (!_need_adapt(current_param)) { adapted = current_param; } else { - adapted = microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); + adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); if (adapted) { Py_DECREF(current_param); } else { @@ -295,7 +297,7 @@ if (!_need_adapt(current_param)) { adapted = current_param; } else { - adapted = microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); + adapted = pysqlite_microprotocols_adapt(current_param, (PyObject*)&pysqlite_PrepareProtocolType, NULL); if (adapted) { Py_DECREF(current_param); } else { @@ -328,11 +330,13 @@ sql_cstr = PyString_AsString(self->sql); + Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare(self->db, sql_cstr, -1, &new_st, &tail); + Py_END_ALLOW_THREADS if (rc == SQLITE_OK) { /* The efficient sqlite3_transfer_bindings is only available in SQLite Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/util.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/util.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/util.c Sun Sep 21 06:05:44 2008 @@ -24,7 +24,7 @@ #include "module.h" #include "connection.h" -int _sqlite_step_with_busyhandler(sqlite3_stmt* statement, pysqlite_Connection* connection) +int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection) { int rc; Modified: python/branches/tlee-ast-optimize/Modules/_sqlite/util.h ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sqlite/util.h (original) +++ python/branches/tlee-ast-optimize/Modules/_sqlite/util.h Sun Sep 21 06:05:44 2008 @@ -28,7 +28,7 @@ #include "sqlite3.h" #include "connection.h" -int _sqlite_step_with_busyhandler(sqlite3_stmt* statement, pysqlite_Connection* connection); +int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection); /** * Checks the SQLite error code and sets the appropriate DB-API exception. Modified: python/branches/tlee-ast-optimize/Modules/_sre.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/_sre.c (original) +++ python/branches/tlee-ast-optimize/Modules/_sre.c Sun Sep 21 06:05:44 2008 @@ -2781,17 +2781,18 @@ arg = *code++; \ VTRACE(("%lu (arg)\n", (unsigned long)arg)); \ } while (0) -#define GET_SKIP \ +#define GET_SKIP_ADJ(adj) \ do { \ VTRACE(("%p= ", code)); \ if (code >= end) FAIL; \ skip = *code; \ VTRACE(("%lu (skip to %p)\n", \ (unsigned long)skip, code+skip)); \ - if (code+skip < code || code+skip > end) \ + if (code+skip-adj < code || code+skip-adj > end)\ FAIL; \ code++; \ } while (0) +#define GET_SKIP GET_SKIP_ADJ(0) static int _validate_charset(SRE_CODE *code, SRE_CODE *end) @@ -3098,7 +3099,7 @@ GET_ARG; if (arg >= groups) FAIL; - GET_SKIP; + GET_SKIP_ADJ(1); code--; /* The skip is relative to the first arg! */ /* There are two possibilities here: if there is both a 'then' part and an 'else' part, the generated code looks like: Modified: python/branches/tlee-ast-optimize/Modules/cPickle.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/cPickle.c (original) +++ python/branches/tlee-ast-optimize/Modules/cPickle.c Sun Sep 21 06:05:44 2008 @@ -1515,8 +1515,8 @@ static int batch_list(Picklerobject *self, PyObject *iter) { - PyObject *obj; - PyObject *slice[BATCHSIZE]; + PyObject *obj = NULL; + PyObject *firstitem = NULL; int i, n; static char append = APPEND; @@ -1545,45 +1545,69 @@ /* proto > 0: write in batches of BATCHSIZE. */ do { - /* Get next group of (no more than) BATCHSIZE elements. */ - for (n = 0; n < BATCHSIZE; ++n) { - obj = PyIter_Next(iter); - if (obj == NULL) { - if (PyErr_Occurred()) - goto BatchFailed; - break; - } - slice[n] = obj; + /* Get first item */ + firstitem = PyIter_Next(iter); + if (firstitem == NULL) { + if (PyErr_Occurred()) + goto BatchFailed; + + /* nothing more to add */ + break; } - if (n > 1) { - /* Pump out MARK, slice[0:n], APPENDS. */ - if (self->write_func(self, &MARKv, 1) < 0) + /* Try to get a second item */ + obj = PyIter_Next(iter); + if (obj == NULL) { + if (PyErr_Occurred()) goto BatchFailed; - for (i = 0; i < n; ++i) { - if (save(self, slice[i], 0) < 0) - goto BatchFailed; - } - if (self->write_func(self, &appends, 1) < 0) - goto BatchFailed; - } - else if (n == 1) { - if (save(self, slice[0], 0) < 0) + + /* Only one item to write */ + if (save(self, firstitem, 0) < 0) goto BatchFailed; if (self->write_func(self, &append, 1) < 0) goto BatchFailed; + Py_CLEAR(firstitem); + break; } - for (i = 0; i < n; ++i) { - Py_DECREF(slice[i]); + /* More than one item to write */ + + /* Pump out MARK, items, APPENDS. */ + if (self->write_func(self, &MARKv, 1) < 0) + goto BatchFailed; + + if (save(self, firstitem, 0) < 0) + goto BatchFailed; + Py_CLEAR(firstitem); + n = 1; + + /* Fetch and save up to BATCHSIZE items */ + while (obj) { + if (save(self, obj, 0) < 0) + goto BatchFailed; + Py_CLEAR(obj); + n += 1; + + if (n == BATCHSIZE) + break; + + obj = PyIter_Next(iter); + if (obj == NULL) { + if (PyErr_Occurred()) + goto BatchFailed; + break; + } } + + if (self->write_func(self, &appends, 1) < 0) + goto BatchFailed; + } while (n == BATCHSIZE); return 0; BatchFailed: - while (--n >= 0) { - Py_DECREF(slice[n]); - } + Py_XDECREF(firstitem); + Py_XDECREF(obj); return -1; } @@ -1659,8 +1683,8 @@ static int batch_dict(Picklerobject *self, PyObject *iter) { - PyObject *p; - PyObject *slice[BATCHSIZE]; + PyObject *p = NULL; + PyObject *firstitem = NULL; int i, n; static char setitem = SETITEM; @@ -1696,56 +1720,85 @@ /* proto > 0: write in batches of BATCHSIZE. */ do { - /* Get next group of (no more than) BATCHSIZE elements. */ - for (n = 0; n < BATCHSIZE; ++n) { - p = PyIter_Next(iter); - if (p == NULL) { - if (PyErr_Occurred()) - goto BatchFailed; - break; - } - if (!PyTuple_Check(p) || PyTuple_Size(p) != 2) { - PyErr_SetString(PyExc_TypeError, "dict items " - "iterator must return 2-tuples"); + /* Get first item */ + firstitem = PyIter_Next(iter); + if (firstitem == NULL) { + if (PyErr_Occurred()) goto BatchFailed; - } - slice[n] = p; + + /* nothing more to add */ + break; + } + if (!PyTuple_Check(firstitem) || PyTuple_Size(firstitem) != 2) { + PyErr_SetString(PyExc_TypeError, "dict items " + "iterator must return 2-tuples"); + goto BatchFailed; } - if (n > 1) { - /* Pump out MARK, slice[0:n], SETITEMS. */ - if (self->write_func(self, &MARKv, 1) < 0) + /* Try to get a second item */ + p = PyIter_Next(iter); + if (p == NULL) { + if (PyErr_Occurred()) goto BatchFailed; - for (i = 0; i < n; ++i) { - p = slice[i]; - if (save(self, PyTuple_GET_ITEM(p, 0), 0) < 0) - goto BatchFailed; - if (save(self, PyTuple_GET_ITEM(p, 1), 0) < 0) - goto BatchFailed; - } - if (self->write_func(self, &setitems, 1) < 0) + + /* Only one item to write */ + if (save(self, PyTuple_GET_ITEM(firstitem, 0), 0) < 0) + goto BatchFailed; + if (save(self, PyTuple_GET_ITEM(firstitem, 1), 0) < 0) goto BatchFailed; + if (self->write_func(self, &setitem, 1) < 0) + goto BatchFailed; + Py_CLEAR(firstitem); + break; } - else if (n == 1) { - p = slice[0]; + + /* More than one item to write */ + + /* Pump out MARK, items, SETITEMS. */ + if (self->write_func(self, &MARKv, 1) < 0) + goto BatchFailed; + + if (save(self, PyTuple_GET_ITEM(firstitem, 0), 0) < 0) + goto BatchFailed; + if (save(self, PyTuple_GET_ITEM(firstitem, 1), 0) < 0) + goto BatchFailed; + Py_CLEAR(firstitem); + n = 1; + + /* Fetch and save up to BATCHSIZE items */ + while (p) { + if (!PyTuple_Check(p) || PyTuple_Size(p) != 2) { + PyErr_SetString(PyExc_TypeError, "dict items " + "iterator must return 2-tuples"); + goto BatchFailed; + } if (save(self, PyTuple_GET_ITEM(p, 0), 0) < 0) goto BatchFailed; if (save(self, PyTuple_GET_ITEM(p, 1), 0) < 0) goto BatchFailed; - if (self->write_func(self, &setitem, 1) < 0) - goto BatchFailed; - } + Py_CLEAR(p); + n += 1; + + if (n == BATCHSIZE) + break; - for (i = 0; i < n; ++i) { - Py_DECREF(slice[i]); + p = PyIter_Next(iter); + if (p == NULL) { + if (PyErr_Occurred()) + goto BatchFailed; + break; + } } + + if (self->write_func(self, &setitems, 1) < 0) + goto BatchFailed; + } while (n == BATCHSIZE); return 0; BatchFailed: - while (--n >= 0) { - Py_DECREF(slice[n]); - } + Py_XDECREF(firstitem); + Py_XDECREF(p); return -1; } Modified: python/branches/tlee-ast-optimize/Modules/config.c.in ============================================================================== --- python/branches/tlee-ast-optimize/Modules/config.c.in (original) +++ python/branches/tlee-ast-optimize/Modules/config.c.in Sun Sep 21 06:05:44 2008 @@ -52,8 +52,8 @@ /* This lives in gcmodule.c */ {"gc", initgc}, - /* This lives in _warnings.c */ - {"_warnings", _PyWarnings_Init}, + /* This lives in _warnings.c */ + {"_warnings", _PyWarnings_Init}, /* Sentinel */ {0, 0} Modified: python/branches/tlee-ast-optimize/Modules/unicodedata.c ============================================================================== --- python/branches/tlee-ast-optimize/Modules/unicodedata.c (original) +++ python/branches/tlee-ast-optimize/Modules/unicodedata.c Sun Sep 21 06:05:44 2008 @@ -1,8 +1,8 @@ /* ------------------------------------------------------------------------ - unicodedata -- Provides access to the Unicode 4.1 data base. + unicodedata -- Provides access to the Unicode 5.1 data base. - Data was extracted from the Unicode 4.1 UnicodeData.txt file. + Data was extracted from the Unicode 5.1 UnicodeData.txt file. Written by Marc-Andre Lemburg (mal at lemburg.com). Modified for Python 2.0 by Fredrik Lundh (fredrik at pythonware.com) @@ -34,6 +34,7 @@ const unsigned char bidir_changed; const unsigned char category_changed; const unsigned char decimal_changed; + const unsigned char mirrored_changed; const int numeric_changed; } change_record; @@ -354,6 +355,8 @@ const change_record *old = get_old_record(self, c); if (old->category_changed == 0) index = 0; /* unassigned */ + else if (old->mirrored_changed != 0xFF) + index = old->mirrored_changed; } return PyInt_FromLong(index); } @@ -1177,11 +1180,11 @@ "This module provides access to the Unicode Character Database which\n\ defines character properties for all Unicode characters. The data in\n\ this database is based on the UnicodeData.txt file version\n\ -4.1.0 which is publically available from ftp://ftp.unicode.org/.\n\ +5.1.0 which is publically available from ftp://ftp.unicode.org/.\n\ \n\ The module uses the same names and symbols as defined by the\n\ -UnicodeData File Format 4.1.0 (see\n\ -http://www.unicode.org/Public/4.1.0/ucd/UCD.html)."); +UnicodeData File Format 5.1.0 (see\n\ +http://www.unicode.org/Public/5.1.0/ucd/UCD.html)."); PyMODINIT_FUNC initunicodedata(void) Modified: python/branches/tlee-ast-optimize/Modules/unicodedata_db.h ============================================================================== --- python/branches/tlee-ast-optimize/Modules/unicodedata_db.h (original) +++ python/branches/tlee-ast-optimize/Modules/unicodedata_db.h Sun Sep 21 06:05:44 2008 @@ -1,6 +1,6 @@ -/* this file was generated by Tools/unicode/makeunicodedata.py 2.5 */ +/* this file was generated by Tools/unicode/makeunicodedata.py 2.6 */ -#define UNIDATA_VERSION "4.1.0" +#define UNIDATA_VERSION "5.1.0" /* a list of unique database records */ const _PyUnicode_DatabaseRecord _PyUnicode_Database_Records[] = { {0, 0, 0, 0, 0}, @@ -83,27 +83,29 @@ {4, 20, 14, 0, 5}, {4, 21, 14, 0, 5}, {4, 22, 14, 0, 5}, - {26, 0, 4, 0, 5}, + {21, 0, 4, 0, 5}, {4, 23, 14, 0, 5}, + {26, 0, 4, 0, 5}, {4, 24, 14, 0, 5}, {4, 25, 14, 0, 5}, {19, 0, 4, 0, 5}, - {14, 0, 5, 0, 5}, + {14, 0, 12, 0, 5}, + {27, 0, 5, 0, 5}, + {26, 0, 11, 0, 5}, {28, 0, 5, 0, 5}, {26, 0, 13, 0, 5}, {26, 0, 5, 0, 5}, + {4, 30, 14, 0, 5}, + {4, 31, 14, 0, 5}, + {4, 32, 14, 0, 5}, {19, 0, 5, 0, 5}, {18, 0, 5, 0, 5}, {4, 27, 14, 0, 5}, {4, 28, 14, 0, 5}, {4, 29, 14, 0, 5}, - {4, 30, 14, 0, 5}, - {4, 31, 14, 0, 5}, - {4, 32, 14, 0, 5}, {4, 33, 14, 0, 5}, {4, 34, 14, 0, 5}, {7, 0, 12, 0, 5}, - {26, 0, 11, 0, 5}, {26, 0, 12, 0, 5}, {4, 35, 14, 0, 5}, {7, 0, 9, 0, 5}, @@ -111,6 +113,8 @@ {14, 0, 15, 0, 5}, {4, 36, 14, 0, 5}, {4, 0, 14, 0, 5}, + {7, 0, 4, 0, 5}, + {18, 0, 4, 0, 5}, {5, 0, 1, 0, 5}, {4, 7, 14, 0, 5}, {4, 9, 14, 0, 5}, @@ -119,14 +123,15 @@ {9, 0, 1, 0, 5}, {4, 84, 14, 0, 5}, {4, 91, 14, 0, 5}, + {9, 0, 19, 0, 5}, {4, 0, 1, 0, 5}, {4, 103, 14, 0, 5}, {4, 107, 14, 0, 5}, {4, 118, 14, 0, 5}, {4, 122, 14, 0, 5}, {4, 216, 14, 0, 5}, - {22, 0, 19, 0, 5}, - {23, 0, 19, 0, 5}, + {22, 0, 19, 1, 5}, + {23, 0, 19, 1, 5}, {4, 129, 14, 0, 5}, {4, 130, 14, 0, 5}, {4, 132, 14, 0, 5}, @@ -134,12 +139,15 @@ {10, 0, 18, 0, 5}, {8, 0, 1, 0, 5}, {14, 0, 1, 0, 5}, - {9, 0, 19, 0, 5}, - {5, 0, 14, 0, 5}, + {5, 9, 1, 0, 5}, + {4, 234, 14, 0, 5}, + {4, 214, 14, 0, 5}, + {4, 202, 14, 0, 5}, {14, 0, 4, 0, 5}, {21, 0, 19, 0, 4}, {24, 0, 19, 0, 4}, {25, 0, 19, 0, 4}, + {22, 0, 19, 0, 5}, {24, 0, 19, 0, 5}, {11, 0, 18, 0, 5}, {12, 0, 16, 0, 5}, @@ -151,8 +159,6 @@ {26, 0, 11, 0, 4}, {20, 0, 19, 0, 5}, {27, 0, 13, 0, 5}, - {22, 0, 19, 1, 5}, - {23, 0, 19, 1, 5}, {9, 0, 9, 0, 5}, {27, 0, 10, 0, 5}, {28, 0, 11, 0, 1}, @@ -183,14 +189,17 @@ {30, 0, 1, 0, 2}, {9, 0, 1, 0, 2}, {9, 0, 19, 0, 2}, + {29, 0, 1, 0, 5}, {15, 0, 1, 0, 5}, {16, 0, 1, 0, 4}, {4, 26, 14, 0, 5}, + {23, 0, 19, 0, 5}, {20, 0, 19, 0, 2}, {26, 0, 13, 0, 2}, {26, 0, 11, 0, 2}, {27, 0, 10, 0, 2}, {21, 0, 10, 0, 2}, + {27, 0, 19, 1, 2}, {27, 0, 19, 0, 2}, {28, 0, 11, 0, 2}, {26, 0, 19, 0, 0}, @@ -222,11 +231,12 @@ {5, 216, 1, 0, 5}, {5, 226, 1, 0, 5}, {27, 0, 1, 0, 5}, + {27, 0, 1, 1, 5}, }; /* Reindexing of NFC first characters. */ -#define TOTAL_FIRST 356 -#define TOTAL_LAST 53 +#define TOTAL_FIRST 367 +#define TOTAL_LAST 54 struct reindex{int start;short count,index;}; static struct reindex nfc_first[] = { { 60, 2, 0}, @@ -327,101 +337,111 @@ { 3545, 0, 181}, { 3548, 0, 182}, { 4133, 0, 183}, - { 7734, 1, 184}, - { 7770, 1, 186}, - { 7778, 1, 188}, - { 7840, 1, 190}, - { 7864, 1, 192}, - { 7884, 1, 194}, - { 7936, 17, 196}, - { 7960, 1, 214}, - { 7968, 17, 216}, - { 7992, 1, 234}, - { 8000, 1, 236}, - { 8008, 1, 238}, - { 8016, 1, 240}, - { 8025, 0, 242}, - { 8032, 16, 243}, - { 8052, 0, 260}, - { 8060, 0, 261}, - { 8118, 0, 262}, - { 8127, 0, 263}, - { 8134, 0, 264}, - { 8182, 0, 265}, - { 8190, 0, 266}, - { 8592, 0, 267}, - { 8594, 0, 268}, - { 8596, 0, 269}, - { 8656, 0, 270}, - { 8658, 0, 271}, - { 8660, 0, 272}, - { 8707, 0, 273}, - { 8712, 0, 274}, - { 8715, 0, 275}, - { 8739, 0, 276}, - { 8741, 0, 277}, - { 8764, 0, 278}, - { 8771, 0, 279}, - { 8773, 0, 280}, - { 8776, 0, 281}, - { 8781, 0, 282}, - { 8801, 0, 283}, - { 8804, 1, 284}, - { 8818, 1, 286}, - { 8822, 1, 288}, - { 8826, 3, 290}, - { 8834, 1, 294}, - { 8838, 1, 296}, - { 8849, 1, 298}, - { 8866, 0, 300}, - { 8872, 1, 301}, - { 8875, 0, 303}, - { 8882, 3, 304}, - { 12358, 0, 308}, - { 12363, 0, 309}, - { 12365, 0, 310}, - { 12367, 0, 311}, - { 12369, 0, 312}, - { 12371, 0, 313}, - { 12373, 0, 314}, - { 12375, 0, 315}, - { 12377, 0, 316}, - { 12379, 0, 317}, - { 12381, 0, 318}, - { 12383, 0, 319}, - { 12385, 0, 320}, - { 12388, 0, 321}, - { 12390, 0, 322}, - { 12392, 0, 323}, - { 12399, 0, 324}, - { 12402, 0, 325}, - { 12405, 0, 326}, - { 12408, 0, 327}, - { 12411, 0, 328}, - { 12445, 0, 329}, - { 12454, 0, 330}, - { 12459, 0, 331}, - { 12461, 0, 332}, - { 12463, 0, 333}, - { 12465, 0, 334}, - { 12467, 0, 335}, - { 12469, 0, 336}, - { 12471, 0, 337}, - { 12473, 0, 338}, - { 12475, 0, 339}, - { 12477, 0, 340}, - { 12479, 0, 341}, - { 12481, 0, 342}, - { 12484, 0, 343}, - { 12486, 0, 344}, - { 12488, 0, 345}, - { 12495, 0, 346}, - { 12498, 0, 347}, - { 12501, 0, 348}, - { 12504, 0, 349}, - { 12507, 0, 350}, - { 12527, 3, 351}, - { 12541, 0, 355}, + { 6917, 0, 184}, + { 6919, 0, 185}, + { 6921, 0, 186}, + { 6923, 0, 187}, + { 6925, 0, 188}, + { 6929, 0, 189}, + { 6970, 0, 190}, + { 6972, 0, 191}, + { 6974, 1, 192}, + { 6978, 0, 194}, + { 7734, 1, 195}, + { 7770, 1, 197}, + { 7778, 1, 199}, + { 7840, 1, 201}, + { 7864, 1, 203}, + { 7884, 1, 205}, + { 7936, 17, 207}, + { 7960, 1, 225}, + { 7968, 17, 227}, + { 7992, 1, 245}, + { 8000, 1, 247}, + { 8008, 1, 249}, + { 8016, 1, 251}, + { 8025, 0, 253}, + { 8032, 16, 254}, + { 8052, 0, 271}, + { 8060, 0, 272}, + { 8118, 0, 273}, + { 8127, 0, 274}, + { 8134, 0, 275}, + { 8182, 0, 276}, + { 8190, 0, 277}, + { 8592, 0, 278}, + { 8594, 0, 279}, + { 8596, 0, 280}, + { 8656, 0, 281}, + { 8658, 0, 282}, + { 8660, 0, 283}, + { 8707, 0, 284}, + { 8712, 0, 285}, + { 8715, 0, 286}, + { 8739, 0, 287}, + { 8741, 0, 288}, + { 8764, 0, 289}, + { 8771, 0, 290}, + { 8773, 0, 291}, + { 8776, 0, 292}, + { 8781, 0, 293}, + { 8801, 0, 294}, + { 8804, 1, 295}, + { 8818, 1, 297}, + { 8822, 1, 299}, + { 8826, 3, 301}, + { 8834, 1, 305}, + { 8838, 1, 307}, + { 8849, 1, 309}, + { 8866, 0, 311}, + { 8872, 1, 312}, + { 8875, 0, 314}, + { 8882, 3, 315}, + { 12358, 0, 319}, + { 12363, 0, 320}, + { 12365, 0, 321}, + { 12367, 0, 322}, + { 12369, 0, 323}, + { 12371, 0, 324}, + { 12373, 0, 325}, + { 12375, 0, 326}, + { 12377, 0, 327}, + { 12379, 0, 328}, + { 12381, 0, 329}, + { 12383, 0, 330}, + { 12385, 0, 331}, + { 12388, 0, 332}, + { 12390, 0, 333}, + { 12392, 0, 334}, + { 12399, 0, 335}, + { 12402, 0, 336}, + { 12405, 0, 337}, + { 12408, 0, 338}, + { 12411, 0, 339}, + { 12445, 0, 340}, + { 12454, 0, 341}, + { 12459, 0, 342}, + { 12461, 0, 343}, + { 12463, 0, 344}, + { 12465, 0, 345}, + { 12467, 0, 346}, + { 12469, 0, 347}, + { 12471, 0, 348}, + { 12473, 0, 349}, + { 12475, 0, 350}, + { 12477, 0, 351}, + { 12479, 0, 352}, + { 12481, 0, 353}, + { 12484, 0, 354}, + { 12486, 0, 355}, + { 12488, 0, 356}, + { 12495, 0, 357}, + { 12498, 0, 358}, + { 12501, 0, 359}, + { 12504, 0, 360}, + { 12507, 0, 361}, + { 12527, 3, 362}, + { 12541, 0, 366}, {0,0,0} }; @@ -455,7 +475,8 @@ { 3535, 0, 48}, { 3551, 0, 49}, { 4142, 0, 50}, - { 12441, 1, 51}, + { 6965, 0, 51}, + { 12441, 1, 52}, {0,0,0} }; @@ -550,43 +571,44 @@ #define SHIFT 8 static unsigned char index1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 8, 8, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 51, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 52, 53, 50, 50, 50, 54, 8, 8, - 55, 56, 8, 8, 8, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 57, 58, 58, 58, 58, 58, 58, - 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 50, 60, 61, 62, 63, 64, 65, 66, 67, - 8, 68, 69, 8, 8, 8, 70, 8, 71, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 55, 52, 52, 52, 56, + 21, 57, 58, 59, 60, 61, 8, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 62, 63, 63, 63, + 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 52, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 8, 8, 8, 76, 77, 78, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 79, 80, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 72, 73, 74, 75, 76, 77, 78, - 79, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 80, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 81, 82, + 83, 84, 85, 86, 87, 88, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 89, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 90, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 52, 52, 91, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 50, 50, 81, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -703,8 +725,8 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 92, 93, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 82, 83, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -714,36 +736,35 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 84, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 84, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 94, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 94, }; static unsigned char index2[] = { @@ -777,86 +798,88 @@ 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, - 34, 34, 34, 34, 34, 34, 34, 37, 37, 34, 37, 37, 34, 34, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 28, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 28, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 37, 37, 34, 37, 37, 34, 34, 37, 34, 37, 37, + 37, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 28, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 28, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 43, 43, 42, 42, 42, 42, 42, 42, 42, 44, 44, 26, 44, 43, - 45, 43, 45, 45, 45, 43, 45, 43, 43, 46, 42, 44, 44, 44, 44, 44, 44, 26, - 26, 26, 26, 44, 26, 44, 26, 42, 42, 42, 42, 42, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 48, 49, 49, 49, 49, 48, 50, 49, 49, 49, 49, 49, - 51, 51, 49, 49, 49, 49, 51, 51, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 52, 52, 52, 52, 52, 49, 49, 49, 49, 47, 47, 47, 47, 47, 47, 47, 47, - 53, 47, 49, 49, 49, 47, 47, 47, 49, 49, 54, 47, 47, 47, 49, 49, 49, 49, - 47, 48, 49, 49, 47, 55, 56, 56, 55, 56, 56, 55, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 44, 44, 0, 0, 0, 0, 42, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 44, 44, 37, 57, 37, 37, 37, 0, 37, 0, 37, 37, 34, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 0, 38, - 38, 38, 38, 38, 38, 38, 37, 37, 34, 34, 34, 34, 34, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 34, 28, 28, 28, 28, 28, - 28, 28, 34, 34, 34, 34, 34, 0, 34, 34, 37, 37, 37, 34, 34, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 34, 34, 34, 34, 37, 34, 58, 37, 34, 37, 37, 34, 34, 37, - 37, 37, 37, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 34, 34, 34, 34, 34, 34, 34, 40, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 42, 42, 42, 42, 42, 42, 42, 44, + 44, 26, 44, 43, 45, 43, 45, 45, 45, 43, 45, 43, 43, 46, 42, 44, 44, 44, + 44, 44, 44, 26, 26, 26, 26, 44, 26, 44, 26, 42, 42, 42, 42, 42, 44, 44, + 44, 44, 44, 44, 44, 43, 44, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 49, 49, 49, 49, 48, 50, 49, + 49, 49, 49, 49, 51, 51, 49, 49, 49, 49, 51, 51, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 52, 52, 52, 52, 52, 49, 49, 49, 49, 47, 47, 47, 47, + 47, 47, 47, 47, 53, 47, 49, 49, 49, 47, 47, 47, 49, 49, 54, 47, 47, 47, + 49, 49, 49, 49, 47, 48, 49, 49, 47, 55, 56, 56, 55, 56, 56, 55, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 37, 34, 37, 34, 43, 44, 37, + 34, 0, 0, 42, 34, 34, 34, 57, 0, 0, 0, 0, 0, 44, 44, 37, 57, 37, 37, 37, + 0, 37, 0, 37, 37, 34, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 0, 38, 38, 38, 38, 38, 38, 38, 37, 37, 34, 34, 34, 34, + 34, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 34, 28, 28, 28, 28, 28, 28, 28, 34, 34, 34, 34, 34, 37, 34, 34, 37, 37, + 37, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 34, 34, 34, 37, 34, 58, 37, + 34, 37, 37, 34, 34, 37, 37, 37, 37, 38, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 34, 28, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 38, 38, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 34, 28, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 59, 60, 60, 60, 60, 0, 61, 61, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 59, 60, 60, 60, 60, 60, + 61, 61, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 37, 34, 37, - 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 0, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 0, 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, 0, 42, 62, 62, 62, 62, 62, 62, - 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 0, 0, 42, 62, 62, 62, 62, 62, 62, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 0, 62, 63, 0, 0, 0, 0, 0, 0, 64, 60, 60, 60, 60, 64, 60, - 60, 60, 65, 64, 60, 60, 60, 60, 60, 60, 64, 64, 64, 64, 64, 64, 60, 60, - 64, 60, 60, 65, 66, 60, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, 77, - 78, 79, 80, 81, 80, 82, 83, 80, 60, 64, 80, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 0, 0, 0, 0, 84, 84, 84, 80, 80, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0, 0, 86, - 87, 88, 27, 27, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 88, 0, 0, 88, 88, - 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 90, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 91, 92, 93, 94, 95, 96, 97, 98, 60, 60, 64, 64, - 60, 60, 60, 60, 60, 64, 60, 60, 0, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 100, 101, 101, 88, 89, 89, 102, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 88, 89, 60, 60, 60, 60, 60, 60, 60, 85, 61, 60, 60, 60, 60, 64, 60, 90, - 90, 60, 60, 27, 64, 60, 60, 64, 89, 89, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 89, 89, 89, 104, 104, 89, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 0, 105, 89, 106, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 60, 64, 60, 60, 64, 60, 60, 64, 64, 64, 60, 64, 64, - 60, 64, 60, 60, 60, 64, 60, 64, 60, 64, 60, 64, 60, 60, 0, 0, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 62, 63, 0, 0, 0, 0, 0, 0, 64, 60, 60, 60, 60, 64, 60, 60, 60, 65, 64, + 60, 60, 60, 60, 60, 60, 64, 64, 64, 64, 64, 64, 60, 60, 64, 60, 60, 65, + 66, 60, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 82, 60, 64, 82, 75, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 0, 0, 0, 0, 0, 85, 85, 85, 82, 82, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 86, 86, 86, 0, 0, 58, 58, 87, 88, 88, 89, 90, 91, 27, + 27, 60, 60, 60, 60, 60, 60, 60, 60, 92, 93, 94, 91, 0, 0, 91, 91, 0, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 96, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 97, 98, 99, 92, 93, 94, 100, 101, 60, 60, 64, 64, 60, + 60, 60, 60, 60, 64, 60, 60, 0, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 88, 103, 103, 91, 95, 95, 104, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 91, 95, 60, 60, 60, 60, 60, 60, 60, 86, 61, 60, 60, 60, 60, 64, 60, + 96, 96, 60, 60, 27, 64, 60, 60, 64, 95, 95, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 95, 95, 95, 106, 106, 95, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 0, 107, 95, 108, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 60, 64, 60, 60, 64, 60, 60, 64, 64, 64, 60, 64, 64, + 60, 64, 60, 60, 60, 64, 60, 64, 60, 64, 60, 64, 60, 60, 0, 0, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 60, 60, 60, 60, 60, 60, + 60, 64, 60, 111, 111, 27, 57, 57, 57, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -867,162 +890,163 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 107, 108, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 109, 40, 108, 108, 108, 107, - 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 110, 0, 0, 40, 60, - 64, 60, 60, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 107, 107, - 62, 62, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 107, 108, 108, 0, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 0, 0, 0, 40, 40, 40, 40, 0, 0, 109, 40, 108, 108, 108, - 107, 107, 107, 107, 0, 0, 108, 108, 0, 0, 108, 108, 110, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 0, 0, 0, 0, 40, 40, 0, 40, 40, 40, 107, 107, 0, 0, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 40, 40, 112, 112, 113, 113, - 113, 113, 113, 113, 59, 0, 0, 0, 0, 0, 0, 107, 107, 108, 0, 40, 40, 40, - 40, 40, 40, 0, 0, 0, 0, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 40, 0, 40, 40, 0, 40, 40, 0, 0, 109, 0, 108, 108, 108, - 107, 107, 0, 0, 0, 0, 107, 107, 0, 0, 107, 107, 110, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 40, 40, 40, 0, 40, 0, 0, 0, 0, 0, 0, 0, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 107, 107, 40, 40, 40, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 107, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 0, 40, 40, 40, 40, 40, 0, 0, 109, 40, 108, 108, 108, 107, 107, 107, - 107, 107, 0, 107, 107, 108, 0, 108, 108, 110, 0, 0, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 107, 107, 0, 0, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 107, 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, - 40, 40, 40, 0, 0, 109, 40, 108, 107, 108, 107, 107, 107, 0, 0, 0, 108, - 108, 0, 0, 108, 108, 110, 0, 0, 0, 0, 0, 0, 0, 0, 107, 108, 0, 0, 0, 0, - 40, 40, 0, 40, 40, 40, 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 59, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 40, 0, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, - 40, 0, 0, 0, 40, 40, 0, 40, 0, 40, 40, 0, 0, 0, 40, 40, 0, 0, 0, 40, 40, - 40, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, - 108, 108, 107, 108, 108, 0, 0, 0, 108, 108, 108, 0, 108, 108, 108, 110, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 113, 113, 113, 27, 27, - 27, 27, 27, 27, 112, 27, 0, 0, 0, 0, 0, 0, 108, 108, 108, 0, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 0, 0, 107, 107, - 107, 108, 108, 108, 108, 0, 107, 107, 107, 0, 107, 107, 107, 110, 0, 0, - 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 112, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 113, 40, 112, + 112, 112, 109, 109, 109, 109, 109, 109, 109, 109, 112, 112, 112, 112, + 114, 0, 0, 40, 60, 64, 60, 60, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 109, 109, 62, 62, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 62, 42, 40, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 0, 109, 112, + 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 0, 0, 40, 40, 40, 40, 0, 0, + 113, 40, 112, 112, 112, 109, 109, 109, 109, 0, 0, 112, 112, 0, 0, 112, + 112, 114, 40, 0, 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 40, 40, 0, 40, 40, + 40, 109, 109, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 40, + 40, 116, 116, 117, 117, 117, 117, 117, 117, 59, 0, 0, 0, 0, 0, 0, 109, + 109, 112, 0, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 40, 40, 0, 0, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 0, 40, 40, + 0, 0, 113, 0, 112, 112, 112, 109, 109, 0, 0, 0, 0, 109, 109, 0, 0, 109, + 109, 114, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 109, + 109, 40, 40, 40, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 112, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 113, + 40, 112, 112, 112, 109, 109, 109, 109, 109, 0, 109, 109, 112, 0, 112, + 112, 114, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 109, 109, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 112, 112, 0, 40, 40, + 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, + 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 113, 40, 112, + 109, 112, 109, 109, 109, 109, 0, 0, 112, 112, 0, 0, 112, 112, 114, 0, 0, + 0, 0, 0, 0, 0, 0, 109, 112, 0, 0, 0, 0, 40, 40, 0, 40, 40, 40, 109, 109, + 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 59, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 40, 0, 40, 40, 40, 40, 40, + 40, 0, 0, 0, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 0, 40, 40, 0, 40, 0, + 40, 40, 0, 0, 0, 40, 40, 0, 0, 0, 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 112, 112, 109, 112, 112, 0, + 0, 0, 112, 112, 112, 0, 112, 112, 112, 114, 0, 0, 40, 0, 0, 0, 0, 0, 0, + 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 117, 117, 117, 27, 27, 27, 27, 27, 27, 116, 27, + 0, 0, 0, 0, 0, 0, 112, 112, 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 0, 40, 109, 109, 109, 112, 112, 112, + 112, 0, 109, 109, 109, 0, 109, 109, 109, 114, 0, 0, 0, 0, 0, 0, 0, 118, + 119, 0, 40, 40, 0, 0, 0, 0, 0, 0, 40, 40, 109, 109, 0, 0, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 120, 120, 120, + 120, 120, 120, 120, 59, 0, 0, 112, 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 109, 40, 108, 116, 108, 108, - 108, 108, 108, 0, 116, 108, 108, 0, 108, 108, 107, 110, 0, 0, 0, 0, 0, 0, - 0, 108, 108, 0, 0, 0, 0, 0, 0, 0, 40, 0, 40, 40, 0, 0, 0, 0, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 108, 108, 108, 107, 107, 107, 0, - 0, 108, 108, 108, 0, 108, 108, 108, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 108, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 110, 0, 0, - 0, 0, 108, 108, 108, 107, 107, 107, 0, 107, 0, 108, 108, 108, 108, 108, - 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 108, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 107, 40, 40, 107, 107, 107, 107, 117, 117, 110, 0, 0, - 0, 0, 112, 40, 40, 40, 40, 40, 40, 42, 107, 118, 118, 118, 118, 107, 107, - 107, 62, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 62, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 0, 40, 0, 0, 40, 40, 0, 40, 0, - 0, 40, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, - 0, 40, 40, 40, 0, 40, 0, 40, 0, 0, 40, 40, 0, 40, 40, 40, 40, 107, 40, - 40, 107, 107, 107, 107, 119, 119, 0, 107, 107, 40, 0, 0, 40, 40, 40, 40, - 40, 0, 42, 0, 120, 120, 120, 120, 107, 107, 0, 0, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 59, 59, 59, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 59, 59, 59, 59, 59, 64, 64, 59, 59, 59, 59, 59, 59, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 59, 64, 59, 64, 59, 121, 122, 123, 122, 123, 108, 108, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 124, 125, 107, 126, 107, 107, - 107, 107, 107, 125, 125, 125, 125, 107, 108, 125, 107, 60, 60, 110, 62, - 60, 60, 40, 40, 40, 40, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, - 107, 0, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, 59, 59, 59, 59, 59, 59, - 59, 59, 64, 59, 59, 59, 59, 59, 59, 0, 0, 59, 62, 62, 0, 0, 0, 0, 0, 0, + 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 0, 113, 40, 112, 121, 112, 112, + 112, 112, 112, 0, 121, 112, 112, 0, 112, 112, 109, 114, 0, 0, 0, 0, 0, 0, + 0, 112, 112, 0, 0, 0, 0, 0, 0, 0, 40, 0, 40, 40, 109, 109, 0, 0, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 27, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 112, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 112, 112, 112, 109, 109, + 109, 109, 0, 112, 112, 112, 0, 112, 112, 112, 114, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 109, 109, 0, 0, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 117, 117, 117, 117, 117, 117, 0, 0, 0, + 59, 40, 40, 40, 40, 40, 40, 0, 0, 112, 112, 0, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 0, 0, 0, 114, 0, 0, 0, 0, 112, 112, 112, 109, 109, 109, + 0, 109, 0, 112, 112, 112, 112, 112, 112, 112, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 112, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 109, 40, 40, 109, + 109, 109, 109, 122, 122, 114, 0, 0, 0, 0, 116, 40, 40, 40, 40, 40, 40, + 42, 109, 123, 123, 123, 123, 109, 109, 109, 62, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 0, 40, 0, 0, 40, 40, 0, 40, 0, 0, 40, 0, 0, 0, 0, 0, 0, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 0, 40, 0, 0, + 40, 40, 0, 40, 40, 40, 40, 109, 40, 40, 109, 109, 109, 109, 124, 124, 0, + 109, 109, 40, 0, 0, 40, 40, 40, 40, 40, 0, 42, 0, 125, 125, 125, 125, + 109, 109, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, + 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 59, 59, 59, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 59, 59, 59, 59, 59, 64, 64, 59, + 59, 59, 59, 59, 59, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 59, 64, 59, 64, 59, + 126, 127, 128, 127, 128, 112, 112, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, + 0, 0, 129, 130, 109, 131, 109, 109, 109, 109, 109, 130, 130, 130, 130, + 109, 112, 130, 109, 60, 60, 114, 62, 60, 60, 40, 40, 40, 40, 0, 0, 0, 0, + 109, 109, 109, 109, 109, 109, 109, 109, 0, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 0, 59, 59, 59, 59, 59, 59, 59, 59, 64, 59, 59, 59, 59, 59, 59, + 0, 59, 59, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 0, 40, 40, - 0, 108, 107, 107, 107, 107, 108, 107, 0, 0, 0, 107, 109, 108, 110, 0, 0, - 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 62, 62, 62, - 62, 62, 62, 40, 40, 40, 40, 40, 40, 108, 108, 107, 107, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 112, 112, 109, 109, 109, 109, + 112, 109, 109, 109, 109, 109, 113, 112, 114, 114, 112, 112, 109, 109, 40, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 62, 62, 62, 62, 62, 62, + 40, 40, 40, 40, 40, 40, 112, 112, 109, 109, 40, 40, 40, 40, 109, 109, + 109, 40, 112, 112, 112, 40, 40, 112, 112, 112, 112, 112, 112, 112, 40, + 40, 40, 109, 109, 109, 109, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 109, 112, 112, 109, 109, 112, 112, 112, 112, 112, 112, 64, 40, + 112, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 59, + 59, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 37, 37, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, 42, 0, 0, 0, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 0, 0, 0, 0, 0, 127, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, + 42, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 132, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, - 0, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, + 40, 40, 40, 40, 40, 40, 0, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, - 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 40, 40, 40, 40, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 0, 0, 0, 0, 60, 59, 62, 62, 62, 62, 62, 62, 62, 62, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 60, 59, 62, 62, 62, 62, + 62, 62, 62, 62, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 0, 0, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, @@ -1054,58 +1078,61 @@ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, 62, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 122, 123, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 62, 62, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 133, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 127, 128, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, 62, 62, 129, 129, 129, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 107, 107, 110, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 107, 107, 110, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 107, 107, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 62, + 62, 62, 134, 134, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 109, + 109, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 109, 109, 114, 62, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 40, 40, 40, 0, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 130, - 130, 108, 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, - 108, 108, 108, 107, 108, 108, 107, 107, 107, 107, 107, 107, 107, 107, - 107, 110, 107, 62, 62, 62, 42, 62, 62, 62, 112, 40, 60, 0, 0, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, 57, - 57, 63, 57, 57, 57, 57, 107, 107, 107, 128, 0, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 135, 135, 112, 109, 109, 109, 109, 109, 109, + 109, 112, 112, 112, 112, 112, 112, 112, 112, 109, 112, 112, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 114, 109, 62, 62, 62, 42, 62, 62, 62, + 116, 40, 60, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, + 0, 0, 0, 0, 0, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 0, 0, + 0, 0, 0, 57, 57, 57, 57, 57, 57, 63, 57, 57, 57, 57, 109, 109, 109, 133, + 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 66, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 0, 107, 107, 107, 108, 108, 108, 108, 107, - 107, 132, 132, 132, 0, 0, 0, 0, 108, 108, 107, 108, 108, 108, 108, 108, - 108, 65, 60, 64, 0, 0, 0, 0, 27, 0, 0, 0, 57, 57, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 0, 0, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 109, 109, + 109, 112, 112, 112, 112, 109, 109, 112, 112, 112, 0, 0, 0, 0, 112, 112, + 109, 112, 112, 112, 112, 112, 112, 65, 60, 64, 0, 0, 0, 0, 27, 0, 0, 0, + 57, 57, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 40, 40, 40, 40, 40, 40, 40, - 108, 108, 0, 0, 0, 0, 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 0, 0, 0, 0, 57, 57, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 40, + 40, 40, 40, 40, 40, 40, 112, 112, 0, 0, 0, 0, 0, 0, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 57, 57, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 60, 64, 108, 108, 108, 0, 0, 62, 62, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 60, 64, 112, 112, + 112, 0, 0, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1114,8 +1141,34 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 109, 109, 109, 112, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 113, 112, 109, 109, 109, 109, + 109, 112, 109, 112, 112, 112, 112, 112, 109, 112, 136, 40, 40, 40, 40, + 40, 40, 40, 0, 0, 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 62, 62, 62, 62, 62, 62, 62, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, + 64, 60, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, + 0, 109, 109, 112, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 112, 109, + 109, 109, 109, 112, 112, 109, 109, 136, 0, 0, 0, 40, 40, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 112, 112, 112, 112, 112, 112, 112, 112, 109, + 109, 109, 109, 109, 109, 109, 109, 112, 112, 109, 113, 0, 0, 0, 62, 62, + 62, 62, 62, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, + 40, 40, 40, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 42, 42, 42, 42, 42, 62, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, @@ -1126,85 +1179,86 @@ 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 60, 60, - 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 34, - 34, 34, 34, 34, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 64, 60, 60, 60, 60, 60, 60, 60, 64, 60, 60, 137, 138, 64, 139, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 64, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, - 34, 37, 34, 37, 34, 37, 34, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, - 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, - 37, 37, 37, 37, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, - 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, - 37, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, 0, 0, 34, 34, - 34, 34, 34, 34, 34, 34, 0, 37, 0, 37, 0, 37, 0, 37, 34, 34, 34, 34, 34, - 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, - 41, 41, 41, 41, 41, 41, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, - 41, 41, 41, 41, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, - 41, 41, 34, 34, 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 34, 44, - 44, 44, 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 44, 44, 34, 34, - 34, 34, 0, 0, 34, 34, 37, 37, 37, 37, 0, 44, 44, 44, 34, 34, 34, 34, 34, - 34, 34, 34, 37, 37, 37, 37, 37, 44, 44, 44, 0, 0, 34, 34, 34, 0, 34, 34, - 37, 37, 37, 37, 41, 44, 44, 0, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 105, 105, 105, 130, 133, 134, 63, 63, 134, 134, 134, 22, - 57, 135, 136, 122, 137, 135, 136, 122, 137, 22, 22, 22, 57, 22, 22, 22, - 22, 138, 139, 140, 141, 142, 143, 144, 21, 145, 100, 145, 145, 100, 22, - 57, 57, 57, 29, 35, 22, 57, 57, 22, 146, 146, 57, 57, 57, 147, 148, 149, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 57, 146, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 128, 105, 105, 105, 105, 0, 0, 0, 0, 0, 0, 105, - 105, 105, 105, 105, 105, 150, 34, 0, 0, 33, 150, 150, 150, 150, 150, 151, - 151, 58, 148, 149, 28, 150, 33, 33, 33, 33, 150, 150, 150, 150, 150, 151, - 151, 58, 148, 149, 0, 42, 42, 42, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 112, 112, 112, 112, 112, 112, 112, 112, 152, 112, 112, 23, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 153, 153, 60, 60, - 60, 60, 153, 153, 153, 60, 60, 61, 61, 61, 61, 60, 61, 61, 61, 153, 153, - 60, 64, 60, 153, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 27, 37, 25, 27, 25, 27, 37, 27, 25, 34, 37, 37, 37, 34, 34, - 37, 37, 37, 28, 27, 37, 25, 27, 27, 37, 37, 37, 37, 37, 27, 27, 27, 25, - 25, 27, 37, 27, 38, 27, 37, 27, 37, 38, 37, 37, 154, 34, 37, 37, 27, 37, - 34, 40, 40, 40, 40, 34, 27, 27, 34, 34, 37, 37, 155, 58, 58, 58, 58, 37, - 34, 34, 34, 34, 27, 58, 27, 0, 0, 0, 0, 0, 0, 36, 36, 131, 131, 131, 131, - 131, 131, 36, 36, 36, 36, 131, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 129, 129, 129, 129, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 39, 39, 25, 25, 25, 25, 25, - 58, 58, 27, 27, 27, 27, 58, 27, 27, 58, 27, 27, 58, 27, 27, 27, 27, 27, - 27, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, - 27, 27, 39, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 39, 155, 157, 157, 155, - 58, 58, 39, 157, 155, 155, 157, 155, 155, 58, 39, 58, 157, 151, 158, 58, - 157, 155, 58, 58, 58, 157, 155, 155, 157, 39, 157, 157, 155, 155, 39, - 155, 39, 155, 39, 39, 39, 39, 157, 157, 155, 157, 155, 155, 155, 155, - 155, 39, 39, 39, 39, 58, 155, 58, 155, 157, 157, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 157, 155, 155, 155, 157, 58, 58, 58, 58, 58, - 157, 155, 155, 155, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 157, 39, - 155, 58, 157, 157, 157, 157, 155, 155, 157, 157, 58, 58, 157, 157, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 157, 157, 155, 155, 157, 157, 155, 155, 155, 155, 155, 58, - 58, 155, 155, 155, 155, 58, 58, 39, 58, 58, 155, 39, 58, 58, 58, 58, 58, - 58, 58, 58, 155, 155, 58, 39, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 58, 58, 58, 58, - 58, 155, 157, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 155, 155, - 155, 58, 58, 155, 155, 58, 58, 58, 58, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 58, 58, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 27, 27, 27, 27, 27, 27, 27, 27, 155, 155, - 155, 155, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 155, 155, 27, 27, 27, 27, 27, 27, 27, 159, 160, 27, 27, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, + 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, + 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, + 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, + 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, 0, 0, 34, 34, 34, 34, 34, 34, + 34, 34, 0, 37, 0, 37, 0, 37, 0, 37, 34, 34, 34, 34, 34, 34, 34, 34, 37, + 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 0, 0, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, + 41, 41, 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, 41, 41, + 34, 34, 34, 34, 34, 34, 34, 34, 41, 41, 41, 41, 41, 41, 41, 41, 34, 34, + 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 34, 44, 44, 44, 34, 34, + 34, 0, 34, 34, 37, 37, 37, 37, 41, 44, 44, 44, 34, 34, 34, 34, 0, 0, 34, + 34, 37, 37, 37, 37, 0, 44, 44, 44, 34, 34, 34, 34, 34, 34, 34, 34, 37, + 37, 37, 37, 37, 44, 44, 44, 0, 0, 34, 34, 34, 0, 34, 34, 37, 37, 37, 37, + 41, 44, 44, 0, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 107, 107, 107, 135, 140, 141, 63, 63, 141, 141, 141, 22, 57, 142, 143, + 144, 145, 142, 143, 144, 145, 22, 22, 22, 57, 22, 22, 22, 22, 146, 147, + 148, 149, 150, 151, 152, 21, 153, 88, 153, 153, 88, 22, 57, 57, 57, 29, + 35, 22, 57, 57, 22, 154, 154, 57, 57, 57, 155, 127, 128, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 58, 57, 154, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 133, 107, 107, 107, 107, 107, 0, 0, 0, 0, 0, 107, 107, 107, 107, + 107, 107, 156, 34, 0, 0, 33, 156, 156, 156, 156, 156, 157, 157, 58, 127, + 128, 28, 156, 33, 33, 33, 33, 156, 156, 156, 156, 156, 157, 157, 58, 127, + 128, 0, 42, 42, 42, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 158, 116, 116, 23, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 159, 159, 60, 60, 60, 60, 159, 159, + 159, 60, 60, 61, 61, 61, 61, 60, 61, 61, 61, 159, 159, 60, 64, 60, 159, + 159, 64, 64, 64, 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 27, 37, 25, 27, 25, 27, 37, 27, 25, 34, 37, 37, 37, 34, 34, 37, 37, 37, + 28, 27, 37, 25, 27, 27, 37, 37, 37, 37, 37, 27, 27, 27, 25, 25, 27, 37, + 27, 38, 27, 37, 27, 37, 38, 37, 37, 160, 34, 37, 37, 37, 37, 34, 40, 40, + 40, 40, 34, 27, 27, 34, 34, 37, 37, 161, 58, 58, 58, 58, 37, 34, 34, 34, + 34, 27, 58, 27, 27, 34, 59, 0, 0, 0, 36, 36, 120, 120, 120, 120, 120, + 120, 36, 36, 36, 36, 120, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 134, 134, 134, 134, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 134, 134, 134, 134, 134, 134, 134, 134, 134, 37, 34, 134, + 134, 134, 134, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, 39, 39, 25, 25, 25, 25, + 25, 58, 58, 27, 27, 27, 27, 58, 27, 27, 58, 27, 27, 58, 27, 27, 27, 27, + 27, 27, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, + 58, 27, 27, 39, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 39, 161, 163, 163, + 161, 58, 58, 39, 163, 161, 161, 163, 161, 161, 58, 39, 58, 163, 157, 164, + 58, 163, 161, 58, 58, 58, 163, 161, 161, 163, 39, 163, 163, 161, 161, 39, + 161, 39, 161, 39, 39, 39, 39, 163, 163, 161, 163, 161, 161, 161, 161, + 161, 39, 39, 39, 39, 58, 161, 58, 161, 163, 163, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 163, 161, 161, 161, 163, 58, 58, 58, 58, 58, + 163, 161, 161, 161, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 163, 39, + 161, 58, 163, 163, 163, 163, 161, 161, 163, 163, 58, 58, 163, 163, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 163, 163, 161, 161, 163, 163, 161, 161, 161, 161, 161, 58, + 58, 161, 161, 161, 161, 58, 58, 39, 58, 58, 161, 39, 58, 58, 58, 58, 58, + 58, 58, 58, 161, 161, 58, 39, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 58, 58, 58, 58, + 58, 161, 163, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, 161, 161, + 161, 58, 58, 161, 161, 58, 58, 58, 58, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 58, 58, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 27, 27, 27, 27, 27, 27, 27, 27, 161, 161, + 161, 161, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 161, 161, 27, 27, 27, 27, 27, 27, 27, 165, 166, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, @@ -1212,67 +1266,68 @@ 59, 59, 59, 59, 59, 59, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, 27, 27, 27, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 122, 123, 57, 27, 27, 27, 27, 27, 27, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, 58, 58, 58, + 58, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 120, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 131, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 36, 36, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, - 27, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, - 27, 27, 25, 39, 27, 27, 27, 27, 25, 25, 27, 27, 25, 39, 27, 27, 27, 27, - 25, 25, 25, 27, 27, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, 58, 58, - 58, 58, 58, 58, 27, 27, 27, 27, 27, 25, 25, 27, 27, 25, 27, 27, 27, 27, - 25, 25, 27, 27, 27, 27, 25, 25, 27, 27, 27, 27, 27, 27, 25, 27, 25, 27, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 25, 25, 27, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, + 25, 25, 27, 27, 25, 39, 27, 27, 27, 27, 25, 25, 27, 27, 25, 39, 27, 27, + 27, 27, 25, 25, 25, 27, 27, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 25, 25, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, + 58, 58, 58, 58, 58, 58, 27, 27, 27, 27, 27, 25, 25, 27, 27, 25, 27, 27, + 27, 27, 25, 25, 27, 27, 27, 27, 25, 25, 27, 27, 27, 27, 27, 27, 25, 27, + 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, + 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 25, 25, 25, + 27, 25, 25, 25, 25, 27, 25, 25, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 25, 27, 25, 25, 25, 27, 25, - 25, 25, 25, 27, 25, 25, 27, 39, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, - 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, 27, 27, - 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 27, 27, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 0, 27, 27, 27, 27, 0, 0, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 0, 27, 27, 27, 27, 0, 0, 0, 27, 0, - 27, 27, 27, 27, 27, 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 148, 149, - 148, 149, 148, 149, 148, 149, 148, 149, 148, 149, 148, 149, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 27, 0, 0, 0, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 0, 155, 58, 58, 155, 155, 148, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 58, 58, 58, 155, 155, 155, 155, 58, 58, 58, 58, 58, 155, 155, 155, 58, - 58, 58, 155, 155, 155, 155, 9, 10, 9, 10, 9, 10, 0, 0, 0, 0, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 0, 27, 27, + 27, 27, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 25, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 0, 27, 27, 27, + 27, 0, 0, 0, 27, 0, 27, 27, 27, 27, 27, 27, 27, 0, 0, 27, 27, 27, 27, 27, + 27, 27, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, + 128, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 27, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 0, 161, 58, 58, 161, 161, 127, 128, 58, 161, + 161, 58, 0, 161, 0, 0, 0, 58, 58, 58, 161, 161, 161, 161, 58, 58, 58, 58, + 58, 161, 161, 161, 58, 58, 58, 161, 161, 161, 161, 9, 10, 9, 10, 9, 10, + 9, 10, 127, 128, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, @@ -1286,506 +1341,599 @@ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 58, + 59, 59, 59, 59, 59, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 148, 149, 9, 10, 148, 149, 148, 149, 148, 149, 148, 149, - 148, 149, 148, 149, 148, 149, 148, 149, 148, 149, 58, 58, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 58, 58, 58, 58, 58, 58, 58, 58, 155, 58, 58, 58, 58, - 58, 58, 58, 155, 155, 155, 155, 155, 155, 58, 58, 58, 155, 58, 58, 58, - 58, 155, 155, 155, 155, 155, 58, 155, 155, 58, 58, 148, 149, 148, 149, - 155, 58, 58, 58, 58, 155, 58, 155, 155, 155, 58, 58, 155, 155, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 155, 155, 155, 155, 58, 58, - 148, 149, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 58, 155, 155, 155, 155, 58, 58, 155, 58, 155, 58, 58, 155, 58, - 155, 155, 155, 155, 58, 58, 58, 58, 58, 155, 155, 58, 58, 58, 58, 58, 58, - 155, 155, 155, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 155, 155, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 155, 155, 58, 58, 58, 58, 155, 155, 155, 155, 58, - 155, 155, 58, 58, 155, 155, 58, 58, 58, 58, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 58, 58, 155, 155, 155, 155, - 155, 155, 155, 155, 58, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 58, 58, 58, 58, 58, 155, 58, 155, 58, 58, 58, 155, 155, 155, - 155, 155, 58, 58, 58, 58, 58, 155, 155, 155, 58, 58, 58, 58, 155, 58, 58, - 58, 155, 155, 155, 155, 155, 58, 155, 58, 58, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 127, 128, 9, 10, 127, 128, + 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, 127, 128, + 127, 128, 58, 58, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 58, 58, 58, 58, 58, 58, + 58, 58, 161, 58, 58, 58, 58, 58, 58, 58, 161, 161, 161, 161, 161, 161, + 58, 58, 58, 161, 58, 58, 58, 58, 161, 161, 161, 161, 161, 58, 161, 161, + 58, 58, 127, 128, 127, 128, 161, 58, 58, 58, 58, 161, 58, 161, 161, 161, + 58, 58, 161, 161, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, 161, + 161, 161, 161, 58, 58, 127, 128, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 58, 161, 161, 161, 161, 58, 58, 161, 58, + 161, 58, 58, 161, 58, 161, 161, 161, 161, 58, 58, 58, 58, 58, 161, 161, + 58, 58, 58, 58, 58, 58, 161, 161, 161, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 161, 161, 58, 58, 58, 58, + 161, 161, 161, 161, 58, 161, 161, 58, 58, 161, 161, 58, 58, 58, 58, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 58, + 58, 161, 161, 161, 161, 161, 161, 161, 161, 58, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 58, 58, 58, 58, 58, 161, 58, 161, 58, + 58, 58, 161, 161, 161, 161, 161, 58, 58, 58, 58, 58, 161, 161, 161, 58, + 58, 58, 58, 161, 58, 58, 58, 161, 161, 161, 161, 161, 58, 161, 58, 58, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 27, 27, 58, + 58, 58, 58, 58, 58, 0, 0, 0, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 37, 34, 37, 37, 37, 34, 34, 37, 34, 37, 34, 37, 34, 37, 37, 37, 0, + 34, 37, 34, 34, 37, 34, 34, 34, 34, 34, 34, 34, 42, 0, 0, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, - 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 34, 27, 27, 27, - 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, - 131, 57, 57, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 34, 37, 34, 37, 34, 34, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, 120, 57, 57, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, - 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, - 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 57, 57, 29, 35, 29, 35, 57, 57, 57, 29, 35, 57, 29, 35, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 63, 0, 0, 0, 0, 29, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 0, 0, 0, 0, 163, 164, 164, 164, - 162, 165, 127, 166, 159, 160, 159, 160, 159, 160, 159, 160, 159, 160, - 162, 162, 159, 160, 159, 160, 159, 160, 159, 160, 167, 168, 169, 169, - 162, 166, 166, 166, 166, 166, 166, 166, 166, 166, 170, 171, 172, 173, - 174, 174, 167, 165, 165, 165, 165, 165, 162, 162, 166, 166, 166, 165, - 127, 164, 162, 27, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 0, 0, 175, 175, 176, 176, 165, 165, 127, - 167, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 164, 165, 165, 165, 127, 0, 0, 0, 0, - 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 177, 177, 178, 178, - 178, 178, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 162, 162, 0, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 162, 162, - 162, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 162, 162, 162, 162, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 0, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 162, 162, 162, 162, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 162, 162, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 162, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, + 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, + 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, + 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, + 40, 40, 40, 40, 0, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 57, 57, 29, 35, 29, 35, 57, 57, 57, 29, 35, 57, 29, 35, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 63, 57, 57, 63, 57, 29, 35, 57, 57, 29, 35, 127, + 128, 127, 128, 127, 128, 127, 128, 57, 57, 57, 57, 57, 43, 57, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 0, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 0, 0, 0, 0, 169, 170, 170, 170, 168, 171, 132, 172, 165, 166, 165, + 166, 165, 166, 165, 166, 165, 166, 168, 168, 165, 166, 165, 166, 165, + 166, 165, 166, 173, 174, 175, 175, 168, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 176, 177, 178, 179, 180, 180, 173, 171, 171, 171, 171, + 171, 168, 168, 172, 172, 172, 171, 132, 170, 168, 27, 0, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, + 181, 181, 182, 182, 171, 171, 132, 173, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 170, 171, 171, 171, 132, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 0, 183, 183, 184, 184, 184, 184, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 168, 168, 0, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 168, 168, 168, 183, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 168, 168, 168, 168, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 0, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 168, 168, + 168, 168, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 168, 168, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 168, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 165, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 0, 0, 0, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 171, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 57, 57, 57, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 0, 0, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 40, 60, + 61, 61, 61, 57, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 57, 43, 37, 34, 37, 34, + 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, + 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, + 43, 43, 43, 44, 44, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 34, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, + 34, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 42, 34, 34, 34, 34, 34, 34, + 34, 34, 37, 34, 37, 34, 37, 37, 34, 37, 34, 37, 34, 37, 34, 37, 34, 43, + 186, 186, 37, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 109, 40, 40, 40, 114, 40, 40, 40, 40, 109, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 112, 112, 109, 109, 112, 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 57, 57, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 112, + 112, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 109, 109, 109, 109, 109, 64, 64, 64, 62, 62, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 112, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 132, 40, 40, 40, 110, - 40, 40, 40, 40, 107, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 108, 108, 107, 107, 108, 27, 27, - 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 109, 109, 109, 109, 109, 109, 112, 112, 109, 109, + 112, 112, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 109, 40, 40, + 40, 40, 40, 40, 40, 40, 109, 112, 0, 0, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 0, 0, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, - 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, - 34, 0, 0, 0, 0, 0, 84, 182, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 151, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 84, 84, 84, 84, - 84, 0, 84, 0, 84, 84, 0, 84, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 86, 27, 0, 0, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 164, 164, - 164, 164, 164, 164, 164, 168, 169, 164, 0, 0, 0, 0, 0, 0, 60, 60, 60, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 167, 167, 183, 183, 168, 169, - 168, 169, 168, 169, 168, 169, 168, 169, 168, 169, 168, 169, 168, 169, - 164, 164, 168, 169, 164, 164, 164, 164, 183, 183, 183, 184, 164, 184, 0, - 164, 184, 164, 164, 167, 168, 169, 168, 169, 168, 169, 185, 164, 164, - 186, 187, 188, 188, 188, 0, 164, 189, 185, 164, 0, 0, 0, 0, 89, 89, 89, - 89, 89, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 105, 0, 190, 190, - 191, 192, 191, 190, 190, 193, 194, 190, 195, 196, 197, 196, 196, 198, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 196, 190, 199, 200, 199, - 190, 190, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 193, 190, 194, 202, 203, 202, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 193, 200, 194, 200, 193, 194, 205, 206, 207, 205, - 205, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 0, 0, 0, 208, 208, 208, 208, 208, 208, 0, - 0, 208, 208, 208, 208, 208, 208, 0, 0, 208, 208, 208, 208, 208, 208, 0, - 0, 208, 208, 208, 0, 0, 0, 192, 192, 200, 202, 210, 192, 192, 0, 211, - 212, 212, 212, 212, 211, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 213, - 213, 27, 25, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, + 0, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 85, 189, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 157, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, + 85, 85, 85, 85, 85, 0, 85, 0, 85, 85, 0, 85, 85, 0, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 144, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 89, 27, + 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 170, 170, 170, 170, 170, 170, 170, 174, 175, 170, 0, 0, 0, 0, 0, 0, 60, + 60, 60, 60, 60, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 173, 173, 191, + 191, 174, 175, 174, 175, 174, 175, 174, 175, 174, 175, 174, 175, 174, + 175, 174, 175, 170, 170, 174, 175, 170, 170, 170, 170, 191, 191, 191, + 192, 170, 192, 0, 170, 192, 170, 170, 173, 165, 166, 165, 166, 165, 166, + 193, 170, 170, 194, 195, 196, 196, 197, 0, 170, 198, 193, 170, 0, 0, 0, + 0, 95, 95, 95, 95, 95, 0, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 0, 0, 107, 0, + 199, 199, 200, 201, 200, 199, 199, 202, 203, 199, 204, 205, 206, 205, + 205, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 205, 199, 208, + 209, 208, 199, 199, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 202, 199, 203, 211, 212, 211, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 202, 209, 203, 209, 202, 203, 214, 215, + 216, 214, 214, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 218, 218, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 0, 0, 0, 217, 217, 217, 217, 217, + 217, 0, 0, 217, 217, 217, 217, 217, 217, 0, 0, 217, 217, 217, 217, 217, + 217, 0, 0, 217, 217, 217, 0, 0, 0, 201, 201, 209, 211, 219, 201, 201, 0, + 220, 221, 221, 221, 221, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, + 222, 222, 27, 25, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 62, 57, 59, 0, 0, - 0, 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 131, 131, 131, 131, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 131, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 62, 57, + 59, 0, 0, 0, 0, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 120, 120, 120, + 120, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 120, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 113, 113, 113, 113, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 129, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 0, 117, 117, 117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 134, 40, + 40, 40, 40, 40, 40, 40, 40, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 62, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 0, 62, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, - 40, 40, 40, 40, 40, 40, 40, 40, 59, 214, 214, 214, 214, 214, 0, 0, 0, 0, + 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, + 40, 62, 134, 134, 134, 134, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, + 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 0, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 84, 84, 84, 84, - 84, 0, 0, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 84, 84, 0, 0, 0, 84, - 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 0, 0, 85, 0, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 0, 85, 85, 0, 0, 0, 85, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 84, 107, 107, 107, 0, 107, 107, 0, 0, 0, 0, 0, 107, 64, 107, 60, - 84, 84, 84, 84, 0, 84, 84, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 0, - 0, 0, 60, 153, 64, 0, 0, 0, 0, 110, 215, 215, 215, 215, 215, 215, 215, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 224, + 224, 224, 224, 0, 0, 0, 0, 0, 57, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 85, 109, 109, 109, 0, 109, 109, 0, 0, 0, 0, 0, 109, 64, 109, 60, + 85, 85, 85, 85, 0, 85, 85, 85, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, + 0, 0, 60, 159, 64, 0, 0, 0, 0, 114, 224, 224, 224, 224, 224, 224, 224, + 224, 0, 0, 0, 0, 0, 0, 0, 0, 82, 82, 82, 82, 82, 82, 82, 82, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 62, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, @@ -1799,25 +1947,25 @@ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, + 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 216, 216, 153, 153, 153, 59, 59, 59, 217, - 216, 216, 216, 216, 216, 105, 105, 105, 105, 105, 105, 105, 105, 64, 64, - 64, 64, 64, 64, 64, 64, 59, 59, 60, 60, 60, 60, 60, 64, 64, 59, 59, 59, + 59, 59, 59, 59, 59, 225, 225, 159, 159, 159, 59, 59, 59, 226, 225, 225, + 225, 225, 225, 107, 107, 107, 107, 107, 107, 107, 107, 64, 64, 64, 64, + 64, 64, 64, 64, 59, 59, 60, 60, 60, 60, 60, 64, 64, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, + 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 60, 60, 60, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 27, 27, 27, 27, 60, 60, 60, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1825,118 +1973,131 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 0, - 37, 37, 0, 0, 37, 0, 0, 37, 37, 0, 0, 37, 37, 37, 37, 0, 37, 37, 37, 37, - 37, 37, 37, 37, 34, 34, 34, 34, 0, 34, 0, 34, 34, 34, 34, 34, 34, 34, 0, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 0, 37, 37, 37, 37, 0, 0, 37, - 37, 37, 37, 37, 37, 37, 37, 0, 37, 37, 37, 37, 37, 37, 37, 0, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 37, 37, 0, 37, 37, 37, 37, 0, 37, 37, 37, 37, 37, 0, - 37, 0, 0, 0, 37, 37, 37, 37, 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 37, 0, 37, 37, 0, 0, 37, 0, 0, 37, 37, 0, 0, 37, + 37, 37, 37, 0, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 0, 34, 0, + 34, 34, 34, 34, 34, 34, 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 37, 0, 37, 37, 37, 37, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 0, 37, 37, + 37, 37, 37, 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 0, 37, + 37, 37, 37, 0, 37, 37, 37, 37, 37, 0, 37, 0, 0, 0, 37, 37, 37, 37, 37, + 37, 37, 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 218, + 34, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 218, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 218, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 218, 34, 34, 34, 34, 34, 34, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 218, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 218, 34, 34, - 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 218, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 218, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 218, 34, 34, + 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 218, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 227, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 228, + 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 227, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 228, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 227, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 228, 34, 34, 34, 34, 34, 34, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 227, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 228, 34, 34, 34, 34, 34, 34, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 227, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 228, 34, 34, + 34, 34, 34, 34, 37, 34, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, @@ -1949,26 +2110,26 @@ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 0, 0, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 0, 0, }; /* decomposition data */ @@ -2071,385 +2232,388 @@ 512, 3953, 3954, 512, 3953, 3956, 512, 4018, 3968, 514, 4018, 3969, 512, 4019, 3968, 514, 4019, 3969, 512, 3953, 3968, 512, 3986, 4023, 512, 3996, 4023, 512, 4001, 4023, 512, 4006, 4023, 512, 4011, 4023, 512, 3984, 4021, - 512, 4133, 4142, 259, 4316, 259, 65, 259, 198, 259, 66, 259, 68, 259, 69, - 259, 398, 259, 71, 259, 72, 259, 73, 259, 74, 259, 75, 259, 76, 259, 77, - 259, 78, 259, 79, 259, 546, 259, 80, 259, 82, 259, 84, 259, 85, 259, 87, - 259, 97, 259, 592, 259, 593, 259, 7426, 259, 98, 259, 100, 259, 101, 259, - 601, 259, 603, 259, 604, 259, 103, 259, 107, 259, 109, 259, 331, 259, - 111, 259, 596, 259, 7446, 259, 7447, 259, 112, 259, 116, 259, 117, 259, - 7453, 259, 623, 259, 118, 259, 7461, 259, 946, 259, 947, 259, 948, 259, - 966, 259, 967, 261, 105, 261, 114, 261, 117, 261, 118, 261, 946, 261, - 947, 261, 961, 261, 966, 261, 967, 259, 1085, 259, 594, 259, 99, 259, - 597, 259, 240, 259, 604, 259, 102, 259, 607, 259, 609, 259, 613, 259, - 616, 259, 617, 259, 618, 259, 7547, 259, 669, 259, 621, 259, 7557, 259, - 671, 259, 625, 259, 624, 259, 626, 259, 627, 259, 628, 259, 629, 259, - 632, 259, 642, 259, 643, 259, 427, 259, 649, 259, 650, 259, 7452, 259, - 651, 259, 652, 259, 122, 259, 656, 259, 657, 259, 658, 259, 952, 512, 65, - 805, 512, 97, 805, 512, 66, 775, 512, 98, 775, 512, 66, 803, 512, 98, - 803, 512, 66, 817, 512, 98, 817, 512, 199, 769, 512, 231, 769, 512, 68, - 775, 512, 100, 775, 512, 68, 803, 512, 100, 803, 512, 68, 817, 512, 100, - 817, 512, 68, 807, 512, 100, 807, 512, 68, 813, 512, 100, 813, 512, 274, - 768, 512, 275, 768, 512, 274, 769, 512, 275, 769, 512, 69, 813, 512, 101, - 813, 512, 69, 816, 512, 101, 816, 512, 552, 774, 512, 553, 774, 512, 70, - 775, 512, 102, 775, 512, 71, 772, 512, 103, 772, 512, 72, 775, 512, 104, - 775, 512, 72, 803, 512, 104, 803, 512, 72, 776, 512, 104, 776, 512, 72, - 807, 512, 104, 807, 512, 72, 814, 512, 104, 814, 512, 73, 816, 512, 105, - 816, 512, 207, 769, 512, 239, 769, 512, 75, 769, 512, 107, 769, 512, 75, - 803, 512, 107, 803, 512, 75, 817, 512, 107, 817, 512, 76, 803, 512, 108, - 803, 512, 7734, 772, 512, 7735, 772, 512, 76, 817, 512, 108, 817, 512, - 76, 813, 512, 108, 813, 512, 77, 769, 512, 109, 769, 512, 77, 775, 512, - 109, 775, 512, 77, 803, 512, 109, 803, 512, 78, 775, 512, 110, 775, 512, - 78, 803, 512, 110, 803, 512, 78, 817, 512, 110, 817, 512, 78, 813, 512, - 110, 813, 512, 213, 769, 512, 245, 769, 512, 213, 776, 512, 245, 776, - 512, 332, 768, 512, 333, 768, 512, 332, 769, 512, 333, 769, 512, 80, 769, - 512, 112, 769, 512, 80, 775, 512, 112, 775, 512, 82, 775, 512, 114, 775, - 512, 82, 803, 512, 114, 803, 512, 7770, 772, 512, 7771, 772, 512, 82, - 817, 512, 114, 817, 512, 83, 775, 512, 115, 775, 512, 83, 803, 512, 115, - 803, 512, 346, 775, 512, 347, 775, 512, 352, 775, 512, 353, 775, 512, - 7778, 775, 512, 7779, 775, 512, 84, 775, 512, 116, 775, 512, 84, 803, - 512, 116, 803, 512, 84, 817, 512, 116, 817, 512, 84, 813, 512, 116, 813, - 512, 85, 804, 512, 117, 804, 512, 85, 816, 512, 117, 816, 512, 85, 813, - 512, 117, 813, 512, 360, 769, 512, 361, 769, 512, 362, 776, 512, 363, - 776, 512, 86, 771, 512, 118, 771, 512, 86, 803, 512, 118, 803, 512, 87, - 768, 512, 119, 768, 512, 87, 769, 512, 119, 769, 512, 87, 776, 512, 119, - 776, 512, 87, 775, 512, 119, 775, 512, 87, 803, 512, 119, 803, 512, 88, - 775, 512, 120, 775, 512, 88, 776, 512, 120, 776, 512, 89, 775, 512, 121, - 775, 512, 90, 770, 512, 122, 770, 512, 90, 803, 512, 122, 803, 512, 90, - 817, 512, 122, 817, 512, 104, 817, 512, 116, 776, 512, 119, 778, 512, - 121, 778, 514, 97, 702, 512, 383, 775, 512, 65, 803, 512, 97, 803, 512, - 65, 777, 512, 97, 777, 512, 194, 769, 512, 226, 769, 512, 194, 768, 512, - 226, 768, 512, 194, 777, 512, 226, 777, 512, 194, 771, 512, 226, 771, - 512, 7840, 770, 512, 7841, 770, 512, 258, 769, 512, 259, 769, 512, 258, - 768, 512, 259, 768, 512, 258, 777, 512, 259, 777, 512, 258, 771, 512, - 259, 771, 512, 7840, 774, 512, 7841, 774, 512, 69, 803, 512, 101, 803, - 512, 69, 777, 512, 101, 777, 512, 69, 771, 512, 101, 771, 512, 202, 769, - 512, 234, 769, 512, 202, 768, 512, 234, 768, 512, 202, 777, 512, 234, - 777, 512, 202, 771, 512, 234, 771, 512, 7864, 770, 512, 7865, 770, 512, - 73, 777, 512, 105, 777, 512, 73, 803, 512, 105, 803, 512, 79, 803, 512, - 111, 803, 512, 79, 777, 512, 111, 777, 512, 212, 769, 512, 244, 769, 512, - 212, 768, 512, 244, 768, 512, 212, 777, 512, 244, 777, 512, 212, 771, - 512, 244, 771, 512, 7884, 770, 512, 7885, 770, 512, 416, 769, 512, 417, - 769, 512, 416, 768, 512, 417, 768, 512, 416, 777, 512, 417, 777, 512, - 416, 771, 512, 417, 771, 512, 416, 803, 512, 417, 803, 512, 85, 803, 512, - 117, 803, 512, 85, 777, 512, 117, 777, 512, 431, 769, 512, 432, 769, 512, - 431, 768, 512, 432, 768, 512, 431, 777, 512, 432, 777, 512, 431, 771, - 512, 432, 771, 512, 431, 803, 512, 432, 803, 512, 89, 768, 512, 121, 768, - 512, 89, 803, 512, 121, 803, 512, 89, 777, 512, 121, 777, 512, 89, 771, - 512, 121, 771, 512, 945, 787, 512, 945, 788, 512, 7936, 768, 512, 7937, - 768, 512, 7936, 769, 512, 7937, 769, 512, 7936, 834, 512, 7937, 834, 512, - 913, 787, 512, 913, 788, 512, 7944, 768, 512, 7945, 768, 512, 7944, 769, - 512, 7945, 769, 512, 7944, 834, 512, 7945, 834, 512, 949, 787, 512, 949, - 788, 512, 7952, 768, 512, 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, - 917, 787, 512, 917, 788, 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, - 512, 7961, 769, 512, 951, 787, 512, 951, 788, 512, 7968, 768, 512, 7969, - 768, 512, 7968, 769, 512, 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, - 919, 787, 512, 919, 788, 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, - 512, 7977, 769, 512, 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, - 788, 512, 7984, 768, 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, - 7984, 834, 512, 7985, 834, 512, 921, 787, 512, 921, 788, 512, 7992, 768, - 512, 7993, 768, 512, 7992, 769, 512, 7993, 769, 512, 7992, 834, 512, - 7993, 834, 512, 959, 787, 512, 959, 788, 512, 8000, 768, 512, 8001, 768, - 512, 8000, 769, 512, 8001, 769, 512, 927, 787, 512, 927, 788, 512, 8008, - 768, 512, 8009, 768, 512, 8008, 769, 512, 8009, 769, 512, 965, 787, 512, - 965, 788, 512, 8016, 768, 512, 8017, 768, 512, 8016, 769, 512, 8017, 769, - 512, 8016, 834, 512, 8017, 834, 512, 933, 788, 512, 8025, 768, 512, 8025, - 769, 512, 8025, 834, 512, 969, 787, 512, 969, 788, 512, 8032, 768, 512, - 8033, 768, 512, 8032, 769, 512, 8033, 769, 512, 8032, 834, 512, 8033, - 834, 512, 937, 787, 512, 937, 788, 512, 8040, 768, 512, 8041, 768, 512, - 8040, 769, 512, 8041, 769, 512, 8040, 834, 512, 8041, 834, 512, 945, 768, - 256, 940, 512, 949, 768, 256, 941, 512, 951, 768, 256, 942, 512, 953, - 768, 256, 943, 512, 959, 768, 256, 972, 512, 965, 768, 256, 973, 512, - 969, 768, 256, 974, 512, 7936, 837, 512, 7937, 837, 512, 7938, 837, 512, - 7939, 837, 512, 7940, 837, 512, 7941, 837, 512, 7942, 837, 512, 7943, - 837, 512, 7944, 837, 512, 7945, 837, 512, 7946, 837, 512, 7947, 837, 512, - 7948, 837, 512, 7949, 837, 512, 7950, 837, 512, 7951, 837, 512, 7968, - 837, 512, 7969, 837, 512, 7970, 837, 512, 7971, 837, 512, 7972, 837, 512, - 7973, 837, 512, 7974, 837, 512, 7975, 837, 512, 7976, 837, 512, 7977, - 837, 512, 7978, 837, 512, 7979, 837, 512, 7980, 837, 512, 7981, 837, 512, - 7982, 837, 512, 7983, 837, 512, 8032, 837, 512, 8033, 837, 512, 8034, - 837, 512, 8035, 837, 512, 8036, 837, 512, 8037, 837, 512, 8038, 837, 512, - 8039, 837, 512, 8040, 837, 512, 8041, 837, 512, 8042, 837, 512, 8043, - 837, 512, 8044, 837, 512, 8045, 837, 512, 8046, 837, 512, 8047, 837, 512, - 945, 774, 512, 945, 772, 512, 8048, 837, 512, 945, 837, 512, 940, 837, - 512, 945, 834, 512, 8118, 837, 512, 913, 774, 512, 913, 772, 512, 913, - 768, 256, 902, 512, 913, 837, 514, 32, 787, 256, 953, 514, 32, 787, 514, - 32, 834, 512, 168, 834, 512, 8052, 837, 512, 951, 837, 512, 942, 837, - 512, 951, 834, 512, 8134, 837, 512, 917, 768, 256, 904, 512, 919, 768, - 256, 905, 512, 919, 837, 512, 8127, 768, 512, 8127, 769, 512, 8127, 834, - 512, 953, 774, 512, 953, 772, 512, 970, 768, 256, 912, 512, 953, 834, - 512, 970, 834, 512, 921, 774, 512, 921, 772, 512, 921, 768, 256, 906, - 512, 8190, 768, 512, 8190, 769, 512, 8190, 834, 512, 965, 774, 512, 965, - 772, 512, 971, 768, 256, 944, 512, 961, 787, 512, 961, 788, 512, 965, - 834, 512, 971, 834, 512, 933, 774, 512, 933, 772, 512, 933, 768, 256, - 910, 512, 929, 788, 512, 168, 768, 256, 901, 256, 96, 512, 8060, 837, - 512, 969, 837, 512, 974, 837, 512, 969, 834, 512, 8182, 837, 512, 927, - 768, 256, 908, 512, 937, 768, 256, 911, 512, 937, 837, 256, 180, 514, 32, - 788, 256, 8194, 256, 8195, 258, 32, 258, 32, 258, 32, 258, 32, 258, 32, - 257, 32, 258, 32, 258, 32, 258, 32, 257, 8208, 514, 32, 819, 258, 46, - 514, 46, 46, 770, 46, 46, 46, 257, 32, 514, 8242, 8242, 770, 8242, 8242, - 8242, 514, 8245, 8245, 770, 8245, 8245, 8245, 514, 33, 33, 514, 32, 773, - 514, 63, 63, 514, 63, 33, 514, 33, 63, 1026, 8242, 8242, 8242, 8242, 258, - 32, 259, 48, 259, 105, 259, 52, 259, 53, 259, 54, 259, 55, 259, 56, 259, - 57, 259, 43, 259, 8722, 259, 61, 259, 40, 259, 41, 259, 110, 261, 48, - 261, 49, 261, 50, 261, 51, 261, 52, 261, 53, 261, 54, 261, 55, 261, 56, - 261, 57, 261, 43, 261, 8722, 261, 61, 261, 40, 261, 41, 261, 97, 261, - 101, 261, 111, 261, 120, 261, 601, 514, 82, 115, 770, 97, 47, 99, 770, - 97, 47, 115, 262, 67, 514, 176, 67, 770, 99, 47, 111, 770, 99, 47, 117, - 258, 400, 514, 176, 70, 262, 103, 262, 72, 262, 72, 262, 72, 262, 104, - 262, 295, 262, 73, 262, 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, - 262, 80, 262, 81, 262, 82, 262, 82, 262, 82, 515, 83, 77, 770, 84, 69, - 76, 515, 84, 77, 262, 90, 256, 937, 262, 90, 256, 75, 256, 197, 262, 66, - 262, 67, 262, 101, 262, 69, 262, 70, 262, 77, 262, 111, 258, 1488, 258, - 1489, 258, 1490, 258, 1491, 262, 105, 770, 70, 65, 88, 262, 960, 262, - 947, 262, 915, 262, 928, 262, 8721, 262, 68, 262, 100, 262, 101, 262, - 105, 262, 106, 772, 49, 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, - 772, 50, 8260, 53, 772, 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, - 54, 772, 53, 8260, 54, 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, - 8260, 56, 772, 55, 8260, 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, - 73, 73, 73, 514, 73, 86, 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, - 73, 73, 73, 514, 73, 88, 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, - 258, 67, 258, 68, 258, 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, - 514, 105, 118, 258, 118, 514, 118, 105, 770, 118, 105, 105, 1026, 118, - 105, 105, 105, 514, 105, 120, 258, 120, 514, 120, 105, 770, 120, 105, - 105, 258, 108, 258, 99, 258, 100, 258, 109, 512, 8592, 824, 512, 8594, - 824, 512, 8596, 824, 512, 8656, 824, 512, 8660, 824, 512, 8658, 824, 512, - 8707, 824, 512, 8712, 824, 512, 8715, 824, 512, 8739, 824, 512, 8741, - 824, 514, 8747, 8747, 770, 8747, 8747, 8747, 514, 8750, 8750, 770, 8750, - 8750, 8750, 512, 8764, 824, 512, 8771, 824, 512, 8773, 824, 512, 8776, - 824, 512, 61, 824, 512, 8801, 824, 512, 8781, 824, 512, 60, 824, 512, 62, - 824, 512, 8804, 824, 512, 8805, 824, 512, 8818, 824, 512, 8819, 824, 512, - 8822, 824, 512, 8823, 824, 512, 8826, 824, 512, 8827, 824, 512, 8834, - 824, 512, 8835, 824, 512, 8838, 824, 512, 8839, 824, 512, 8866, 824, 512, - 8872, 824, 512, 8873, 824, 512, 8875, 824, 512, 8828, 824, 512, 8829, - 824, 512, 8849, 824, 512, 8850, 824, 512, 8882, 824, 512, 8883, 824, 512, - 8884, 824, 512, 8885, 824, 256, 12296, 256, 12297, 263, 49, 263, 50, 263, - 51, 263, 52, 263, 53, 263, 54, 263, 55, 263, 56, 263, 57, 519, 49, 48, - 519, 49, 49, 519, 49, 50, 519, 49, 51, 519, 49, 52, 519, 49, 53, 519, 49, - 54, 519, 49, 55, 519, 49, 56, 519, 49, 57, 519, 50, 48, 770, 40, 49, 41, - 770, 40, 50, 41, 770, 40, 51, 41, 770, 40, 52, 41, 770, 40, 53, 41, 770, - 40, 54, 41, 770, 40, 55, 41, 770, 40, 56, 41, 770, 40, 57, 41, 1026, 40, - 49, 48, 41, 1026, 40, 49, 49, 41, 1026, 40, 49, 50, 41, 1026, 40, 49, 51, - 41, 1026, 40, 49, 52, 41, 1026, 40, 49, 53, 41, 1026, 40, 49, 54, 41, - 1026, 40, 49, 55, 41, 1026, 40, 49, 56, 41, 1026, 40, 49, 57, 41, 1026, - 40, 50, 48, 41, 514, 49, 46, 514, 50, 46, 514, 51, 46, 514, 52, 46, 514, - 53, 46, 514, 54, 46, 514, 55, 46, 514, 56, 46, 514, 57, 46, 770, 49, 48, - 46, 770, 49, 49, 46, 770, 49, 50, 46, 770, 49, 51, 46, 770, 49, 52, 46, - 770, 49, 53, 46, 770, 49, 54, 46, 770, 49, 55, 46, 770, 49, 56, 46, 770, - 49, 57, 46, 770, 50, 48, 46, 770, 40, 97, 41, 770, 40, 98, 41, 770, 40, - 99, 41, 770, 40, 100, 41, 770, 40, 101, 41, 770, 40, 102, 41, 770, 40, - 103, 41, 770, 40, 104, 41, 770, 40, 105, 41, 770, 40, 106, 41, 770, 40, - 107, 41, 770, 40, 108, 41, 770, 40, 109, 41, 770, 40, 110, 41, 770, 40, - 111, 41, 770, 40, 112, 41, 770, 40, 113, 41, 770, 40, 114, 41, 770, 40, - 115, 41, 770, 40, 116, 41, 770, 40, 117, 41, 770, 40, 118, 41, 770, 40, - 119, 41, 770, 40, 120, 41, 770, 40, 121, 41, 770, 40, 122, 41, 263, 65, - 263, 66, 263, 67, 263, 68, 263, 69, 263, 70, 263, 71, 263, 72, 263, 73, - 263, 74, 263, 75, 263, 76, 263, 77, 263, 78, 263, 79, 263, 80, 263, 81, - 263, 82, 263, 83, 263, 84, 263, 85, 263, 86, 263, 87, 263, 88, 263, 89, - 263, 90, 263, 97, 263, 98, 263, 99, 263, 100, 263, 101, 263, 102, 263, - 103, 263, 104, 263, 105, 263, 106, 263, 107, 263, 108, 263, 109, 263, - 110, 263, 111, 263, 112, 263, 113, 263, 114, 263, 115, 263, 116, 263, - 117, 263, 118, 263, 119, 263, 120, 263, 121, 263, 122, 263, 48, 1026, - 8747, 8747, 8747, 8747, 770, 58, 58, 61, 514, 61, 61, 770, 61, 61, 61, - 512, 10973, 824, 259, 11617, 258, 27597, 258, 40863, 258, 19968, 258, - 20008, 258, 20022, 258, 20031, 258, 20057, 258, 20101, 258, 20108, 258, - 20128, 258, 20154, 258, 20799, 258, 20837, 258, 20843, 258, 20866, 258, - 20886, 258, 20907, 258, 20960, 258, 20981, 258, 20992, 258, 21147, 258, - 21241, 258, 21269, 258, 21274, 258, 21304, 258, 21313, 258, 21340, 258, - 21353, 258, 21378, 258, 21430, 258, 21448, 258, 21475, 258, 22231, 258, - 22303, 258, 22763, 258, 22786, 258, 22794, 258, 22805, 258, 22823, 258, - 22899, 258, 23376, 258, 23424, 258, 23544, 258, 23567, 258, 23586, 258, - 23608, 258, 23662, 258, 23665, 258, 24027, 258, 24037, 258, 24049, 258, - 24062, 258, 24178, 258, 24186, 258, 24191, 258, 24308, 258, 24318, 258, - 24331, 258, 24339, 258, 24400, 258, 24417, 258, 24435, 258, 24515, 258, - 25096, 258, 25142, 258, 25163, 258, 25903, 258, 25908, 258, 25991, 258, - 26007, 258, 26020, 258, 26041, 258, 26080, 258, 26085, 258, 26352, 258, - 26376, 258, 26408, 258, 27424, 258, 27490, 258, 27513, 258, 27571, 258, - 27595, 258, 27604, 258, 27611, 258, 27663, 258, 27668, 258, 27700, 258, - 28779, 258, 29226, 258, 29238, 258, 29243, 258, 29247, 258, 29255, 258, - 29273, 258, 29275, 258, 29356, 258, 29572, 258, 29577, 258, 29916, 258, - 29926, 258, 29976, 258, 29983, 258, 29992, 258, 30000, 258, 30091, 258, - 30098, 258, 30326, 258, 30333, 258, 30382, 258, 30399, 258, 30446, 258, - 30683, 258, 30690, 258, 30707, 258, 31034, 258, 31160, 258, 31166, 258, - 31348, 258, 31435, 258, 31481, 258, 31859, 258, 31992, 258, 32566, 258, - 32593, 258, 32650, 258, 32701, 258, 32769, 258, 32780, 258, 32786, 258, - 32819, 258, 32895, 258, 32905, 258, 33251, 258, 33258, 258, 33267, 258, - 33276, 258, 33292, 258, 33307, 258, 33311, 258, 33390, 258, 33394, 258, - 33400, 258, 34381, 258, 34411, 258, 34880, 258, 34892, 258, 34915, 258, - 35198, 258, 35211, 258, 35282, 258, 35328, 258, 35895, 258, 35910, 258, - 35925, 258, 35960, 258, 35997, 258, 36196, 258, 36208, 258, 36275, 258, - 36523, 258, 36554, 258, 36763, 258, 36784, 258, 36789, 258, 37009, 258, - 37193, 258, 37318, 258, 37324, 258, 37329, 258, 38263, 258, 38272, 258, - 38428, 258, 38582, 258, 38585, 258, 38632, 258, 38737, 258, 38750, 258, - 38754, 258, 38761, 258, 38859, 258, 38893, 258, 38899, 258, 38913, 258, - 39080, 258, 39131, 258, 39135, 258, 39318, 258, 39321, 258, 39340, 258, - 39592, 258, 39640, 258, 39647, 258, 39717, 258, 39727, 258, 39730, 258, - 39740, 258, 39770, 258, 40165, 258, 40565, 258, 40575, 258, 40613, 258, - 40635, 258, 40643, 258, 40653, 258, 40657, 258, 40697, 258, 40701, 258, - 40718, 258, 40723, 258, 40736, 258, 40763, 258, 40778, 258, 40786, 258, - 40845, 258, 40860, 258, 40864, 264, 32, 258, 12306, 258, 21313, 258, - 21316, 258, 21317, 512, 12363, 12441, 512, 12365, 12441, 512, 12367, - 12441, 512, 12369, 12441, 512, 12371, 12441, 512, 12373, 12441, 512, - 12375, 12441, 512, 12377, 12441, 512, 12379, 12441, 512, 12381, 12441, - 512, 12383, 12441, 512, 12385, 12441, 512, 12388, 12441, 512, 12390, - 12441, 512, 12392, 12441, 512, 12399, 12441, 512, 12399, 12442, 512, - 12402, 12441, 512, 12402, 12442, 512, 12405, 12441, 512, 12405, 12442, - 512, 12408, 12441, 512, 12408, 12442, 512, 12411, 12441, 512, 12411, - 12442, 512, 12358, 12441, 514, 32, 12441, 514, 32, 12442, 512, 12445, - 12441, 521, 12424, 12426, 512, 12459, 12441, 512, 12461, 12441, 512, - 12463, 12441, 512, 12465, 12441, 512, 12467, 12441, 512, 12469, 12441, - 512, 12471, 12441, 512, 12473, 12441, 512, 12475, 12441, 512, 12477, - 12441, 512, 12479, 12441, 512, 12481, 12441, 512, 12484, 12441, 512, - 12486, 12441, 512, 12488, 12441, 512, 12495, 12441, 512, 12495, 12442, - 512, 12498, 12441, 512, 12498, 12442, 512, 12501, 12441, 512, 12501, - 12442, 512, 12504, 12441, 512, 12504, 12442, 512, 12507, 12441, 512, - 12507, 12442, 512, 12454, 12441, 512, 12527, 12441, 512, 12528, 12441, - 512, 12529, 12441, 512, 12530, 12441, 512, 12541, 12441, 521, 12467, - 12488, 258, 4352, 258, 4353, 258, 4522, 258, 4354, 258, 4524, 258, 4525, - 258, 4355, 258, 4356, 258, 4357, 258, 4528, 258, 4529, 258, 4530, 258, - 4531, 258, 4532, 258, 4533, 258, 4378, 258, 4358, 258, 4359, 258, 4360, - 258, 4385, 258, 4361, 258, 4362, 258, 4363, 258, 4364, 258, 4365, 258, - 4366, 258, 4367, 258, 4368, 258, 4369, 258, 4370, 258, 4449, 258, 4450, - 258, 4451, 258, 4452, 258, 4453, 258, 4454, 258, 4455, 258, 4456, 258, - 4457, 258, 4458, 258, 4459, 258, 4460, 258, 4461, 258, 4462, 258, 4463, - 258, 4464, 258, 4465, 258, 4466, 258, 4467, 258, 4468, 258, 4469, 258, - 4448, 258, 4372, 258, 4373, 258, 4551, 258, 4552, 258, 4556, 258, 4558, - 258, 4563, 258, 4567, 258, 4569, 258, 4380, 258, 4573, 258, 4575, 258, - 4381, 258, 4382, 258, 4384, 258, 4386, 258, 4387, 258, 4391, 258, 4393, - 258, 4395, 258, 4396, 258, 4397, 258, 4398, 258, 4399, 258, 4402, 258, - 4406, 258, 4416, 258, 4423, 258, 4428, 258, 4593, 258, 4594, 258, 4439, - 258, 4440, 258, 4441, 258, 4484, 258, 4485, 258, 4488, 258, 4497, 258, - 4498, 258, 4500, 258, 4510, 258, 4513, 259, 19968, 259, 20108, 259, - 19977, 259, 22235, 259, 19978, 259, 20013, 259, 19979, 259, 30002, 259, - 20057, 259, 19993, 259, 19969, 259, 22825, 259, 22320, 259, 20154, 770, - 40, 4352, 41, 770, 40, 4354, 41, 770, 40, 4355, 41, 770, 40, 4357, 41, - 770, 40, 4358, 41, 770, 40, 4359, 41, 770, 40, 4361, 41, 770, 40, 4363, - 41, 770, 40, 4364, 41, 770, 40, 4366, 41, 770, 40, 4367, 41, 770, 40, - 4368, 41, 770, 40, 4369, 41, 770, 40, 4370, 41, 1026, 40, 4352, 4449, 41, - 1026, 40, 4354, 4449, 41, 1026, 40, 4355, 4449, 41, 1026, 40, 4357, 4449, - 41, 1026, 40, 4358, 4449, 41, 1026, 40, 4359, 4449, 41, 1026, 40, 4361, - 4449, 41, 1026, 40, 4363, 4449, 41, 1026, 40, 4364, 4449, 41, 1026, 40, - 4366, 4449, 41, 1026, 40, 4367, 4449, 41, 1026, 40, 4368, 4449, 41, 1026, - 40, 4369, 4449, 41, 1026, 40, 4370, 4449, 41, 1026, 40, 4364, 4462, 41, - 1794, 40, 4363, 4457, 4364, 4453, 4523, 41, 1538, 40, 4363, 4457, 4370, - 4462, 41, 770, 40, 19968, 41, 770, 40, 20108, 41, 770, 40, 19977, 41, - 770, 40, 22235, 41, 770, 40, 20116, 41, 770, 40, 20845, 41, 770, 40, - 19971, 41, 770, 40, 20843, 41, 770, 40, 20061, 41, 770, 40, 21313, 41, - 770, 40, 26376, 41, 770, 40, 28779, 41, 770, 40, 27700, 41, 770, 40, - 26408, 41, 770, 40, 37329, 41, 770, 40, 22303, 41, 770, 40, 26085, 41, - 770, 40, 26666, 41, 770, 40, 26377, 41, 770, 40, 31038, 41, 770, 40, - 21517, 41, 770, 40, 29305, 41, 770, 40, 36001, 41, 770, 40, 31069, 41, - 770, 40, 21172, 41, 770, 40, 20195, 41, 770, 40, 21628, 41, 770, 40, - 23398, 41, 770, 40, 30435, 41, 770, 40, 20225, 41, 770, 40, 36039, 41, - 770, 40, 21332, 41, 770, 40, 31085, 41, 770, 40, 20241, 41, 770, 40, - 33258, 41, 770, 40, 33267, 41, 778, 80, 84, 69, 519, 50, 49, 519, 50, 50, - 519, 50, 51, 519, 50, 52, 519, 50, 53, 519, 50, 54, 519, 50, 55, 519, 50, - 56, 519, 50, 57, 519, 51, 48, 519, 51, 49, 519, 51, 50, 519, 51, 51, 519, - 51, 52, 519, 51, 53, 263, 4352, 263, 4354, 263, 4355, 263, 4357, 263, - 4358, 263, 4359, 263, 4361, 263, 4363, 263, 4364, 263, 4366, 263, 4367, - 263, 4368, 263, 4369, 263, 4370, 519, 4352, 4449, 519, 4354, 4449, 519, - 4355, 4449, 519, 4357, 4449, 519, 4358, 4449, 519, 4359, 4449, 519, 4361, - 4449, 519, 4363, 4449, 519, 4364, 4449, 519, 4366, 4449, 519, 4367, 4449, - 519, 4368, 4449, 519, 4369, 4449, 519, 4370, 4449, 1287, 4366, 4449, - 4535, 4352, 4457, 1031, 4364, 4462, 4363, 4468, 519, 4363, 4462, 263, - 19968, 263, 20108, 263, 19977, 263, 22235, 263, 20116, 263, 20845, 263, - 19971, 263, 20843, 263, 20061, 263, 21313, 263, 26376, 263, 28779, 263, - 27700, 263, 26408, 263, 37329, 263, 22303, 263, 26085, 263, 26666, 263, - 26377, 263, 31038, 263, 21517, 263, 29305, 263, 36001, 263, 31069, 263, - 21172, 263, 31192, 263, 30007, 263, 22899, 263, 36969, 263, 20778, 263, - 21360, 263, 27880, 263, 38917, 263, 20241, 263, 20889, 263, 27491, 263, - 19978, 263, 20013, 263, 19979, 263, 24038, 263, 21491, 263, 21307, 263, - 23447, 263, 23398, 263, 30435, 263, 20225, 263, 36039, 263, 21332, 263, - 22812, 519, 51, 54, 519, 51, 55, 519, 51, 56, 519, 51, 57, 519, 52, 48, - 519, 52, 49, 519, 52, 50, 519, 52, 51, 519, 52, 52, 519, 52, 53, 519, 52, - 54, 519, 52, 55, 519, 52, 56, 519, 52, 57, 519, 53, 48, 514, 49, 26376, - 514, 50, 26376, 514, 51, 26376, 514, 52, 26376, 514, 53, 26376, 514, 54, - 26376, 514, 55, 26376, 514, 56, 26376, 514, 57, 26376, 770, 49, 48, - 26376, 770, 49, 49, 26376, 770, 49, 50, 26376, 522, 72, 103, 778, 101, - 114, 103, 522, 101, 86, 778, 76, 84, 68, 263, 12450, 263, 12452, 263, - 12454, 263, 12456, 263, 12458, 263, 12459, 263, 12461, 263, 12463, 263, - 12465, 263, 12467, 263, 12469, 263, 12471, 263, 12473, 263, 12475, 263, - 12477, 263, 12479, 263, 12481, 263, 12484, 263, 12486, 263, 12488, 263, - 12490, 263, 12491, 263, 12492, 263, 12493, 263, 12494, 263, 12495, 263, - 12498, 263, 12501, 263, 12504, 263, 12507, 263, 12510, 263, 12511, 263, - 12512, 263, 12513, 263, 12514, 263, 12516, 263, 12518, 263, 12520, 263, - 12521, 263, 12522, 263, 12523, 263, 12524, 263, 12525, 263, 12527, 263, - 12528, 263, 12529, 263, 12530, 1034, 12450, 12497, 12540, 12488, 1034, - 12450, 12523, 12501, 12449, 1034, 12450, 12531, 12506, 12450, 778, 12450, - 12540, 12523, 1034, 12452, 12491, 12531, 12464, 778, 12452, 12531, 12481, - 778, 12454, 12457, 12531, 1290, 12456, 12473, 12463, 12540, 12489, 1034, - 12456, 12540, 12459, 12540, 778, 12458, 12531, 12473, 778, 12458, 12540, - 12512, 778, 12459, 12452, 12522, 1034, 12459, 12521, 12483, 12488, 1034, - 12459, 12525, 12522, 12540, 778, 12460, 12525, 12531, 778, 12460, 12531, - 12510, 522, 12462, 12460, 778, 12462, 12491, 12540, 1034, 12461, 12517, - 12522, 12540, 1034, 12462, 12523, 12480, 12540, 522, 12461, 12525, 1290, - 12461, 12525, 12464, 12521, 12512, 1546, 12461, 12525, 12513, 12540, - 12488, 12523, 1290, 12461, 12525, 12527, 12483, 12488, 778, 12464, 12521, - 12512, 1290, 12464, 12521, 12512, 12488, 12531, 1290, 12463, 12523, - 12476, 12452, 12525, 1034, 12463, 12525, 12540, 12493, 778, 12465, 12540, - 12473, 778, 12467, 12523, 12490, 778, 12467, 12540, 12509, 1034, 12469, - 12452, 12463, 12523, 1290, 12469, 12531, 12481, 12540, 12512, 1034, - 12471, 12522, 12531, 12464, 778, 12475, 12531, 12481, 778, 12475, 12531, - 12488, 778, 12480, 12540, 12473, 522, 12487, 12471, 522, 12489, 12523, - 522, 12488, 12531, 522, 12490, 12494, 778, 12494, 12483, 12488, 778, - 12495, 12452, 12484, 1290, 12497, 12540, 12475, 12531, 12488, 778, 12497, - 12540, 12484, 1034, 12496, 12540, 12524, 12523, 1290, 12500, 12450, - 12473, 12488, 12523, 778, 12500, 12463, 12523, 522, 12500, 12467, 522, - 12499, 12523, 1290, 12501, 12449, 12521, 12483, 12489, 1034, 12501, - 12451, 12540, 12488, 1290, 12502, 12483, 12471, 12455, 12523, 778, 12501, - 12521, 12531, 1290, 12504, 12463, 12479, 12540, 12523, 522, 12506, 12477, - 778, 12506, 12491, 12498, 778, 12504, 12523, 12484, 778, 12506, 12531, - 12473, 778, 12506, 12540, 12472, 778, 12505, 12540, 12479, 1034, 12509, - 12452, 12531, 12488, 778, 12508, 12523, 12488, 522, 12507, 12531, 778, - 12509, 12531, 12489, 778, 12507, 12540, 12523, 778, 12507, 12540, 12531, - 1034, 12510, 12452, 12463, 12525, 778, 12510, 12452, 12523, 778, 12510, - 12483, 12495, 778, 12510, 12523, 12463, 1290, 12510, 12531, 12471, 12519, - 12531, 1034, 12511, 12463, 12525, 12531, 522, 12511, 12522, 1290, 12511, - 12522, 12496, 12540, 12523, 522, 12513, 12460, 1034, 12513, 12460, 12488, - 12531, 1034, 12513, 12540, 12488, 12523, 778, 12516, 12540, 12489, 778, - 12516, 12540, 12523, 778, 12518, 12450, 12531, 1034, 12522, 12483, 12488, - 12523, 522, 12522, 12521, 778, 12523, 12500, 12540, 1034, 12523, 12540, - 12502, 12523, 522, 12524, 12512, 1290, 12524, 12531, 12488, 12466, 12531, - 778, 12527, 12483, 12488, 514, 48, 28857, 514, 49, 28857, 514, 50, 28857, - 514, 51, 28857, 514, 52, 28857, 514, 53, 28857, 514, 54, 28857, 514, 55, - 28857, 514, 56, 28857, 514, 57, 28857, 770, 49, 48, 28857, 770, 49, 49, - 28857, 770, 49, 50, 28857, 770, 49, 51, 28857, 770, 49, 52, 28857, 770, - 49, 53, 28857, 770, 49, 54, 28857, 770, 49, 55, 28857, 770, 49, 56, - 28857, 770, 49, 57, 28857, 770, 50, 48, 28857, 770, 50, 49, 28857, 770, - 50, 50, 28857, 770, 50, 51, 28857, 770, 50, 52, 28857, 778, 104, 80, 97, - 522, 100, 97, 522, 65, 85, 778, 98, 97, 114, 522, 111, 86, 522, 112, 99, - 522, 100, 109, 778, 100, 109, 178, 778, 100, 109, 179, 522, 73, 85, 522, - 24179, 25104, 522, 26157, 21644, 522, 22823, 27491, 522, 26126, 27835, - 1034, 26666, 24335, 20250, 31038, 522, 112, 65, 522, 110, 65, 522, 956, - 65, 522, 109, 65, 522, 107, 65, 522, 75, 66, 522, 77, 66, 522, 71, 66, - 778, 99, 97, 108, 1034, 107, 99, 97, 108, 522, 112, 70, 522, 110, 70, - 522, 956, 70, 522, 956, 103, 522, 109, 103, 522, 107, 103, 522, 72, 122, - 778, 107, 72, 122, 778, 77, 72, 122, 778, 71, 72, 122, 778, 84, 72, 122, - 522, 956, 8467, 522, 109, 8467, 522, 100, 8467, 522, 107, 8467, 522, 102, - 109, 522, 110, 109, 522, 956, 109, 522, 109, 109, 522, 99, 109, 522, 107, - 109, 778, 109, 109, 178, 778, 99, 109, 178, 522, 109, 178, 778, 107, 109, - 178, 778, 109, 109, 179, 778, 99, 109, 179, 522, 109, 179, 778, 107, 109, - 179, 778, 109, 8725, 115, 1034, 109, 8725, 115, 178, 522, 80, 97, 778, - 107, 80, 97, 778, 77, 80, 97, 778, 71, 80, 97, 778, 114, 97, 100, 1290, - 114, 97, 100, 8725, 115, 1546, 114, 97, 100, 8725, 115, 178, 522, 112, - 115, 522, 110, 115, 522, 956, 115, 522, 109, 115, 522, 112, 86, 522, 110, - 86, 522, 956, 86, 522, 109, 86, 522, 107, 86, 522, 77, 86, 522, 112, 87, - 522, 110, 87, 522, 956, 87, 522, 109, 87, 522, 107, 87, 522, 77, 87, 522, - 107, 937, 522, 77, 937, 1034, 97, 46, 109, 46, 522, 66, 113, 522, 99, 99, - 522, 99, 100, 1034, 67, 8725, 107, 103, 778, 67, 111, 46, 522, 100, 66, - 522, 71, 121, 522, 104, 97, 522, 72, 80, 522, 105, 110, 522, 75, 75, 522, - 75, 77, 522, 107, 116, 522, 108, 109, 522, 108, 110, 778, 108, 111, 103, - 522, 108, 120, 522, 109, 98, 778, 109, 105, 108, 778, 109, 111, 108, 522, - 80, 72, 1034, 112, 46, 109, 46, 778, 80, 80, 77, 522, 80, 82, 522, 115, - 114, 522, 83, 118, 522, 87, 98, 778, 86, 8725, 109, 778, 65, 8725, 109, - 514, 49, 26085, 514, 50, 26085, 514, 51, 26085, 514, 52, 26085, 514, 53, - 26085, 514, 54, 26085, 514, 55, 26085, 514, 56, 26085, 514, 57, 26085, - 770, 49, 48, 26085, 770, 49, 49, 26085, 770, 49, 50, 26085, 770, 49, 51, - 26085, 770, 49, 52, 26085, 770, 49, 53, 26085, 770, 49, 54, 26085, 770, - 49, 55, 26085, 770, 49, 56, 26085, 770, 49, 57, 26085, 770, 50, 48, - 26085, 770, 50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770, - 50, 52, 26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55, - 26085, 770, 50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770, - 51, 49, 26085, 778, 103, 97, 108, 256, 35912, 256, 26356, 256, 36554, + 512, 4133, 4142, 259, 4316, 512, 6917, 6965, 512, 6919, 6965, 512, 6921, + 6965, 512, 6923, 6965, 512, 6925, 6965, 512, 6929, 6965, 512, 6970, 6965, + 512, 6972, 6965, 512, 6974, 6965, 512, 6975, 6965, 512, 6978, 6965, 259, + 65, 259, 198, 259, 66, 259, 68, 259, 69, 259, 398, 259, 71, 259, 72, 259, + 73, 259, 74, 259, 75, 259, 76, 259, 77, 259, 78, 259, 79, 259, 546, 259, + 80, 259, 82, 259, 84, 259, 85, 259, 87, 259, 97, 259, 592, 259, 593, 259, + 7426, 259, 98, 259, 100, 259, 101, 259, 601, 259, 603, 259, 604, 259, + 103, 259, 107, 259, 109, 259, 331, 259, 111, 259, 596, 259, 7446, 259, + 7447, 259, 112, 259, 116, 259, 117, 259, 7453, 259, 623, 259, 118, 259, + 7461, 259, 946, 259, 947, 259, 948, 259, 966, 259, 967, 261, 105, 261, + 114, 261, 117, 261, 118, 261, 946, 261, 947, 261, 961, 261, 966, 261, + 967, 259, 1085, 259, 594, 259, 99, 259, 597, 259, 240, 259, 604, 259, + 102, 259, 607, 259, 609, 259, 613, 259, 616, 259, 617, 259, 618, 259, + 7547, 259, 669, 259, 621, 259, 7557, 259, 671, 259, 625, 259, 624, 259, + 626, 259, 627, 259, 628, 259, 629, 259, 632, 259, 642, 259, 643, 259, + 427, 259, 649, 259, 650, 259, 7452, 259, 651, 259, 652, 259, 122, 259, + 656, 259, 657, 259, 658, 259, 952, 512, 65, 805, 512, 97, 805, 512, 66, + 775, 512, 98, 775, 512, 66, 803, 512, 98, 803, 512, 66, 817, 512, 98, + 817, 512, 199, 769, 512, 231, 769, 512, 68, 775, 512, 100, 775, 512, 68, + 803, 512, 100, 803, 512, 68, 817, 512, 100, 817, 512, 68, 807, 512, 100, + 807, 512, 68, 813, 512, 100, 813, 512, 274, 768, 512, 275, 768, 512, 274, + 769, 512, 275, 769, 512, 69, 813, 512, 101, 813, 512, 69, 816, 512, 101, + 816, 512, 552, 774, 512, 553, 774, 512, 70, 775, 512, 102, 775, 512, 71, + 772, 512, 103, 772, 512, 72, 775, 512, 104, 775, 512, 72, 803, 512, 104, + 803, 512, 72, 776, 512, 104, 776, 512, 72, 807, 512, 104, 807, 512, 72, + 814, 512, 104, 814, 512, 73, 816, 512, 105, 816, 512, 207, 769, 512, 239, + 769, 512, 75, 769, 512, 107, 769, 512, 75, 803, 512, 107, 803, 512, 75, + 817, 512, 107, 817, 512, 76, 803, 512, 108, 803, 512, 7734, 772, 512, + 7735, 772, 512, 76, 817, 512, 108, 817, 512, 76, 813, 512, 108, 813, 512, + 77, 769, 512, 109, 769, 512, 77, 775, 512, 109, 775, 512, 77, 803, 512, + 109, 803, 512, 78, 775, 512, 110, 775, 512, 78, 803, 512, 110, 803, 512, + 78, 817, 512, 110, 817, 512, 78, 813, 512, 110, 813, 512, 213, 769, 512, + 245, 769, 512, 213, 776, 512, 245, 776, 512, 332, 768, 512, 333, 768, + 512, 332, 769, 512, 333, 769, 512, 80, 769, 512, 112, 769, 512, 80, 775, + 512, 112, 775, 512, 82, 775, 512, 114, 775, 512, 82, 803, 512, 114, 803, + 512, 7770, 772, 512, 7771, 772, 512, 82, 817, 512, 114, 817, 512, 83, + 775, 512, 115, 775, 512, 83, 803, 512, 115, 803, 512, 346, 775, 512, 347, + 775, 512, 352, 775, 512, 353, 775, 512, 7778, 775, 512, 7779, 775, 512, + 84, 775, 512, 116, 775, 512, 84, 803, 512, 116, 803, 512, 84, 817, 512, + 116, 817, 512, 84, 813, 512, 116, 813, 512, 85, 804, 512, 117, 804, 512, + 85, 816, 512, 117, 816, 512, 85, 813, 512, 117, 813, 512, 360, 769, 512, + 361, 769, 512, 362, 776, 512, 363, 776, 512, 86, 771, 512, 118, 771, 512, + 86, 803, 512, 118, 803, 512, 87, 768, 512, 119, 768, 512, 87, 769, 512, + 119, 769, 512, 87, 776, 512, 119, 776, 512, 87, 775, 512, 119, 775, 512, + 87, 803, 512, 119, 803, 512, 88, 775, 512, 120, 775, 512, 88, 776, 512, + 120, 776, 512, 89, 775, 512, 121, 775, 512, 90, 770, 512, 122, 770, 512, + 90, 803, 512, 122, 803, 512, 90, 817, 512, 122, 817, 512, 104, 817, 512, + 116, 776, 512, 119, 778, 512, 121, 778, 514, 97, 702, 512, 383, 775, 512, + 65, 803, 512, 97, 803, 512, 65, 777, 512, 97, 777, 512, 194, 769, 512, + 226, 769, 512, 194, 768, 512, 226, 768, 512, 194, 777, 512, 226, 777, + 512, 194, 771, 512, 226, 771, 512, 7840, 770, 512, 7841, 770, 512, 258, + 769, 512, 259, 769, 512, 258, 768, 512, 259, 768, 512, 258, 777, 512, + 259, 777, 512, 258, 771, 512, 259, 771, 512, 7840, 774, 512, 7841, 774, + 512, 69, 803, 512, 101, 803, 512, 69, 777, 512, 101, 777, 512, 69, 771, + 512, 101, 771, 512, 202, 769, 512, 234, 769, 512, 202, 768, 512, 234, + 768, 512, 202, 777, 512, 234, 777, 512, 202, 771, 512, 234, 771, 512, + 7864, 770, 512, 7865, 770, 512, 73, 777, 512, 105, 777, 512, 73, 803, + 512, 105, 803, 512, 79, 803, 512, 111, 803, 512, 79, 777, 512, 111, 777, + 512, 212, 769, 512, 244, 769, 512, 212, 768, 512, 244, 768, 512, 212, + 777, 512, 244, 777, 512, 212, 771, 512, 244, 771, 512, 7884, 770, 512, + 7885, 770, 512, 416, 769, 512, 417, 769, 512, 416, 768, 512, 417, 768, + 512, 416, 777, 512, 417, 777, 512, 416, 771, 512, 417, 771, 512, 416, + 803, 512, 417, 803, 512, 85, 803, 512, 117, 803, 512, 85, 777, 512, 117, + 777, 512, 431, 769, 512, 432, 769, 512, 431, 768, 512, 432, 768, 512, + 431, 777, 512, 432, 777, 512, 431, 771, 512, 432, 771, 512, 431, 803, + 512, 432, 803, 512, 89, 768, 512, 121, 768, 512, 89, 803, 512, 121, 803, + 512, 89, 777, 512, 121, 777, 512, 89, 771, 512, 121, 771, 512, 945, 787, + 512, 945, 788, 512, 7936, 768, 512, 7937, 768, 512, 7936, 769, 512, 7937, + 769, 512, 7936, 834, 512, 7937, 834, 512, 913, 787, 512, 913, 788, 512, + 7944, 768, 512, 7945, 768, 512, 7944, 769, 512, 7945, 769, 512, 7944, + 834, 512, 7945, 834, 512, 949, 787, 512, 949, 788, 512, 7952, 768, 512, + 7953, 768, 512, 7952, 769, 512, 7953, 769, 512, 917, 787, 512, 917, 788, + 512, 7960, 768, 512, 7961, 768, 512, 7960, 769, 512, 7961, 769, 512, 951, + 787, 512, 951, 788, 512, 7968, 768, 512, 7969, 768, 512, 7968, 769, 512, + 7969, 769, 512, 7968, 834, 512, 7969, 834, 512, 919, 787, 512, 919, 788, + 512, 7976, 768, 512, 7977, 768, 512, 7976, 769, 512, 7977, 769, 512, + 7976, 834, 512, 7977, 834, 512, 953, 787, 512, 953, 788, 512, 7984, 768, + 512, 7985, 768, 512, 7984, 769, 512, 7985, 769, 512, 7984, 834, 512, + 7985, 834, 512, 921, 787, 512, 921, 788, 512, 7992, 768, 512, 7993, 768, + 512, 7992, 769, 512, 7993, 769, 512, 7992, 834, 512, 7993, 834, 512, 959, + 787, 512, 959, 788, 512, 8000, 768, 512, 8001, 768, 512, 8000, 769, 512, + 8001, 769, 512, 927, 787, 512, 927, 788, 512, 8008, 768, 512, 8009, 768, + 512, 8008, 769, 512, 8009, 769, 512, 965, 787, 512, 965, 788, 512, 8016, + 768, 512, 8017, 768, 512, 8016, 769, 512, 8017, 769, 512, 8016, 834, 512, + 8017, 834, 512, 933, 788, 512, 8025, 768, 512, 8025, 769, 512, 8025, 834, + 512, 969, 787, 512, 969, 788, 512, 8032, 768, 512, 8033, 768, 512, 8032, + 769, 512, 8033, 769, 512, 8032, 834, 512, 8033, 834, 512, 937, 787, 512, + 937, 788, 512, 8040, 768, 512, 8041, 768, 512, 8040, 769, 512, 8041, 769, + 512, 8040, 834, 512, 8041, 834, 512, 945, 768, 256, 940, 512, 949, 768, + 256, 941, 512, 951, 768, 256, 942, 512, 953, 768, 256, 943, 512, 959, + 768, 256, 972, 512, 965, 768, 256, 973, 512, 969, 768, 256, 974, 512, + 7936, 837, 512, 7937, 837, 512, 7938, 837, 512, 7939, 837, 512, 7940, + 837, 512, 7941, 837, 512, 7942, 837, 512, 7943, 837, 512, 7944, 837, 512, + 7945, 837, 512, 7946, 837, 512, 7947, 837, 512, 7948, 837, 512, 7949, + 837, 512, 7950, 837, 512, 7951, 837, 512, 7968, 837, 512, 7969, 837, 512, + 7970, 837, 512, 7971, 837, 512, 7972, 837, 512, 7973, 837, 512, 7974, + 837, 512, 7975, 837, 512, 7976, 837, 512, 7977, 837, 512, 7978, 837, 512, + 7979, 837, 512, 7980, 837, 512, 7981, 837, 512, 7982, 837, 512, 7983, + 837, 512, 8032, 837, 512, 8033, 837, 512, 8034, 837, 512, 8035, 837, 512, + 8036, 837, 512, 8037, 837, 512, 8038, 837, 512, 8039, 837, 512, 8040, + 837, 512, 8041, 837, 512, 8042, 837, 512, 8043, 837, 512, 8044, 837, 512, + 8045, 837, 512, 8046, 837, 512, 8047, 837, 512, 945, 774, 512, 945, 772, + 512, 8048, 837, 512, 945, 837, 512, 940, 837, 512, 945, 834, 512, 8118, + 837, 512, 913, 774, 512, 913, 772, 512, 913, 768, 256, 902, 512, 913, + 837, 514, 32, 787, 256, 953, 514, 32, 787, 514, 32, 834, 512, 168, 834, + 512, 8052, 837, 512, 951, 837, 512, 942, 837, 512, 951, 834, 512, 8134, + 837, 512, 917, 768, 256, 904, 512, 919, 768, 256, 905, 512, 919, 837, + 512, 8127, 768, 512, 8127, 769, 512, 8127, 834, 512, 953, 774, 512, 953, + 772, 512, 970, 768, 256, 912, 512, 953, 834, 512, 970, 834, 512, 921, + 774, 512, 921, 772, 512, 921, 768, 256, 906, 512, 8190, 768, 512, 8190, + 769, 512, 8190, 834, 512, 965, 774, 512, 965, 772, 512, 971, 768, 256, + 944, 512, 961, 787, 512, 961, 788, 512, 965, 834, 512, 971, 834, 512, + 933, 774, 512, 933, 772, 512, 933, 768, 256, 910, 512, 929, 788, 512, + 168, 768, 256, 901, 256, 96, 512, 8060, 837, 512, 969, 837, 512, 974, + 837, 512, 969, 834, 512, 8182, 837, 512, 927, 768, 256, 908, 512, 937, + 768, 256, 911, 512, 937, 837, 256, 180, 514, 32, 788, 256, 8194, 256, + 8195, 258, 32, 258, 32, 258, 32, 258, 32, 258, 32, 257, 32, 258, 32, 258, + 32, 258, 32, 257, 8208, 514, 32, 819, 258, 46, 514, 46, 46, 770, 46, 46, + 46, 257, 32, 514, 8242, 8242, 770, 8242, 8242, 8242, 514, 8245, 8245, + 770, 8245, 8245, 8245, 514, 33, 33, 514, 32, 773, 514, 63, 63, 514, 63, + 33, 514, 33, 63, 1026, 8242, 8242, 8242, 8242, 258, 32, 259, 48, 259, + 105, 259, 52, 259, 53, 259, 54, 259, 55, 259, 56, 259, 57, 259, 43, 259, + 8722, 259, 61, 259, 40, 259, 41, 259, 110, 261, 48, 261, 49, 261, 50, + 261, 51, 261, 52, 261, 53, 261, 54, 261, 55, 261, 56, 261, 57, 261, 43, + 261, 8722, 261, 61, 261, 40, 261, 41, 261, 97, 261, 101, 261, 111, 261, + 120, 261, 601, 514, 82, 115, 770, 97, 47, 99, 770, 97, 47, 115, 262, 67, + 514, 176, 67, 770, 99, 47, 111, 770, 99, 47, 117, 258, 400, 514, 176, 70, + 262, 103, 262, 72, 262, 72, 262, 72, 262, 104, 262, 295, 262, 73, 262, + 73, 262, 76, 262, 108, 262, 78, 514, 78, 111, 262, 80, 262, 81, 262, 82, + 262, 82, 262, 82, 515, 83, 77, 770, 84, 69, 76, 515, 84, 77, 262, 90, + 256, 937, 262, 90, 256, 75, 256, 197, 262, 66, 262, 67, 262, 101, 262, + 69, 262, 70, 262, 77, 262, 111, 258, 1488, 258, 1489, 258, 1490, 258, + 1491, 262, 105, 770, 70, 65, 88, 262, 960, 262, 947, 262, 915, 262, 928, + 262, 8721, 262, 68, 262, 100, 262, 101, 262, 105, 262, 106, 772, 49, + 8260, 51, 772, 50, 8260, 51, 772, 49, 8260, 53, 772, 50, 8260, 53, 772, + 51, 8260, 53, 772, 52, 8260, 53, 772, 49, 8260, 54, 772, 53, 8260, 54, + 772, 49, 8260, 56, 772, 51, 8260, 56, 772, 53, 8260, 56, 772, 55, 8260, + 56, 516, 49, 8260, 258, 73, 514, 73, 73, 770, 73, 73, 73, 514, 73, 86, + 258, 86, 514, 86, 73, 770, 86, 73, 73, 1026, 86, 73, 73, 73, 514, 73, 88, + 258, 88, 514, 88, 73, 770, 88, 73, 73, 258, 76, 258, 67, 258, 68, 258, + 77, 258, 105, 514, 105, 105, 770, 105, 105, 105, 514, 105, 118, 258, 118, + 514, 118, 105, 770, 118, 105, 105, 1026, 118, 105, 105, 105, 514, 105, + 120, 258, 120, 514, 120, 105, 770, 120, 105, 105, 258, 108, 258, 99, 258, + 100, 258, 109, 512, 8592, 824, 512, 8594, 824, 512, 8596, 824, 512, 8656, + 824, 512, 8660, 824, 512, 8658, 824, 512, 8707, 824, 512, 8712, 824, 512, + 8715, 824, 512, 8739, 824, 512, 8741, 824, 514, 8747, 8747, 770, 8747, + 8747, 8747, 514, 8750, 8750, 770, 8750, 8750, 8750, 512, 8764, 824, 512, + 8771, 824, 512, 8773, 824, 512, 8776, 824, 512, 61, 824, 512, 8801, 824, + 512, 8781, 824, 512, 60, 824, 512, 62, 824, 512, 8804, 824, 512, 8805, + 824, 512, 8818, 824, 512, 8819, 824, 512, 8822, 824, 512, 8823, 824, 512, + 8826, 824, 512, 8827, 824, 512, 8834, 824, 512, 8835, 824, 512, 8838, + 824, 512, 8839, 824, 512, 8866, 824, 512, 8872, 824, 512, 8873, 824, 512, + 8875, 824, 512, 8828, 824, 512, 8829, 824, 512, 8849, 824, 512, 8850, + 824, 512, 8882, 824, 512, 8883, 824, 512, 8884, 824, 512, 8885, 824, 256, + 12296, 256, 12297, 263, 49, 263, 50, 263, 51, 263, 52, 263, 53, 263, 54, + 263, 55, 263, 56, 263, 57, 519, 49, 48, 519, 49, 49, 519, 49, 50, 519, + 49, 51, 519, 49, 52, 519, 49, 53, 519, 49, 54, 519, 49, 55, 519, 49, 56, + 519, 49, 57, 519, 50, 48, 770, 40, 49, 41, 770, 40, 50, 41, 770, 40, 51, + 41, 770, 40, 52, 41, 770, 40, 53, 41, 770, 40, 54, 41, 770, 40, 55, 41, + 770, 40, 56, 41, 770, 40, 57, 41, 1026, 40, 49, 48, 41, 1026, 40, 49, 49, + 41, 1026, 40, 49, 50, 41, 1026, 40, 49, 51, 41, 1026, 40, 49, 52, 41, + 1026, 40, 49, 53, 41, 1026, 40, 49, 54, 41, 1026, 40, 49, 55, 41, 1026, + 40, 49, 56, 41, 1026, 40, 49, 57, 41, 1026, 40, 50, 48, 41, 514, 49, 46, + 514, 50, 46, 514, 51, 46, 514, 52, 46, 514, 53, 46, 514, 54, 46, 514, 55, + 46, 514, 56, 46, 514, 57, 46, 770, 49, 48, 46, 770, 49, 49, 46, 770, 49, + 50, 46, 770, 49, 51, 46, 770, 49, 52, 46, 770, 49, 53, 46, 770, 49, 54, + 46, 770, 49, 55, 46, 770, 49, 56, 46, 770, 49, 57, 46, 770, 50, 48, 46, + 770, 40, 97, 41, 770, 40, 98, 41, 770, 40, 99, 41, 770, 40, 100, 41, 770, + 40, 101, 41, 770, 40, 102, 41, 770, 40, 103, 41, 770, 40, 104, 41, 770, + 40, 105, 41, 770, 40, 106, 41, 770, 40, 107, 41, 770, 40, 108, 41, 770, + 40, 109, 41, 770, 40, 110, 41, 770, 40, 111, 41, 770, 40, 112, 41, 770, + 40, 113, 41, 770, 40, 114, 41, 770, 40, 115, 41, 770, 40, 116, 41, 770, + 40, 117, 41, 770, 40, 118, 41, 770, 40, 119, 41, 770, 40, 120, 41, 770, + 40, 121, 41, 770, 40, 122, 41, 263, 65, 263, 66, 263, 67, 263, 68, 263, + 69, 263, 70, 263, 71, 263, 72, 263, 73, 263, 74, 263, 75, 263, 76, 263, + 77, 263, 78, 263, 79, 263, 80, 263, 81, 263, 82, 263, 83, 263, 84, 263, + 85, 263, 86, 263, 87, 263, 88, 263, 89, 263, 90, 263, 97, 263, 98, 263, + 99, 263, 100, 263, 101, 263, 102, 263, 103, 263, 104, 263, 105, 263, 106, + 263, 107, 263, 108, 263, 109, 263, 110, 263, 111, 263, 112, 263, 113, + 263, 114, 263, 115, 263, 116, 263, 117, 263, 118, 263, 119, 263, 120, + 263, 121, 263, 122, 263, 48, 1026, 8747, 8747, 8747, 8747, 770, 58, 58, + 61, 514, 61, 61, 770, 61, 61, 61, 512, 10973, 824, 261, 106, 259, 86, + 259, 11617, 258, 27597, 258, 40863, 258, 19968, 258, 20008, 258, 20022, + 258, 20031, 258, 20057, 258, 20101, 258, 20108, 258, 20128, 258, 20154, + 258, 20799, 258, 20837, 258, 20843, 258, 20866, 258, 20886, 258, 20907, + 258, 20960, 258, 20981, 258, 20992, 258, 21147, 258, 21241, 258, 21269, + 258, 21274, 258, 21304, 258, 21313, 258, 21340, 258, 21353, 258, 21378, + 258, 21430, 258, 21448, 258, 21475, 258, 22231, 258, 22303, 258, 22763, + 258, 22786, 258, 22794, 258, 22805, 258, 22823, 258, 22899, 258, 23376, + 258, 23424, 258, 23544, 258, 23567, 258, 23586, 258, 23608, 258, 23662, + 258, 23665, 258, 24027, 258, 24037, 258, 24049, 258, 24062, 258, 24178, + 258, 24186, 258, 24191, 258, 24308, 258, 24318, 258, 24331, 258, 24339, + 258, 24400, 258, 24417, 258, 24435, 258, 24515, 258, 25096, 258, 25142, + 258, 25163, 258, 25903, 258, 25908, 258, 25991, 258, 26007, 258, 26020, + 258, 26041, 258, 26080, 258, 26085, 258, 26352, 258, 26376, 258, 26408, + 258, 27424, 258, 27490, 258, 27513, 258, 27571, 258, 27595, 258, 27604, + 258, 27611, 258, 27663, 258, 27668, 258, 27700, 258, 28779, 258, 29226, + 258, 29238, 258, 29243, 258, 29247, 258, 29255, 258, 29273, 258, 29275, + 258, 29356, 258, 29572, 258, 29577, 258, 29916, 258, 29926, 258, 29976, + 258, 29983, 258, 29992, 258, 30000, 258, 30091, 258, 30098, 258, 30326, + 258, 30333, 258, 30382, 258, 30399, 258, 30446, 258, 30683, 258, 30690, + 258, 30707, 258, 31034, 258, 31160, 258, 31166, 258, 31348, 258, 31435, + 258, 31481, 258, 31859, 258, 31992, 258, 32566, 258, 32593, 258, 32650, + 258, 32701, 258, 32769, 258, 32780, 258, 32786, 258, 32819, 258, 32895, + 258, 32905, 258, 33251, 258, 33258, 258, 33267, 258, 33276, 258, 33292, + 258, 33307, 258, 33311, 258, 33390, 258, 33394, 258, 33400, 258, 34381, + 258, 34411, 258, 34880, 258, 34892, 258, 34915, 258, 35198, 258, 35211, + 258, 35282, 258, 35328, 258, 35895, 258, 35910, 258, 35925, 258, 35960, + 258, 35997, 258, 36196, 258, 36208, 258, 36275, 258, 36523, 258, 36554, + 258, 36763, 258, 36784, 258, 36789, 258, 37009, 258, 37193, 258, 37318, + 258, 37324, 258, 37329, 258, 38263, 258, 38272, 258, 38428, 258, 38582, + 258, 38585, 258, 38632, 258, 38737, 258, 38750, 258, 38754, 258, 38761, + 258, 38859, 258, 38893, 258, 38899, 258, 38913, 258, 39080, 258, 39131, + 258, 39135, 258, 39318, 258, 39321, 258, 39340, 258, 39592, 258, 39640, + 258, 39647, 258, 39717, 258, 39727, 258, 39730, 258, 39740, 258, 39770, + 258, 40165, 258, 40565, 258, 40575, 258, 40613, 258, 40635, 258, 40643, + 258, 40653, 258, 40657, 258, 40697, 258, 40701, 258, 40718, 258, 40723, + 258, 40736, 258, 40763, 258, 40778, 258, 40786, 258, 40845, 258, 40860, + 258, 40864, 264, 32, 258, 12306, 258, 21313, 258, 21316, 258, 21317, 512, + 12363, 12441, 512, 12365, 12441, 512, 12367, 12441, 512, 12369, 12441, + 512, 12371, 12441, 512, 12373, 12441, 512, 12375, 12441, 512, 12377, + 12441, 512, 12379, 12441, 512, 12381, 12441, 512, 12383, 12441, 512, + 12385, 12441, 512, 12388, 12441, 512, 12390, 12441, 512, 12392, 12441, + 512, 12399, 12441, 512, 12399, 12442, 512, 12402, 12441, 512, 12402, + 12442, 512, 12405, 12441, 512, 12405, 12442, 512, 12408, 12441, 512, + 12408, 12442, 512, 12411, 12441, 512, 12411, 12442, 512, 12358, 12441, + 514, 32, 12441, 514, 32, 12442, 512, 12445, 12441, 521, 12424, 12426, + 512, 12459, 12441, 512, 12461, 12441, 512, 12463, 12441, 512, 12465, + 12441, 512, 12467, 12441, 512, 12469, 12441, 512, 12471, 12441, 512, + 12473, 12441, 512, 12475, 12441, 512, 12477, 12441, 512, 12479, 12441, + 512, 12481, 12441, 512, 12484, 12441, 512, 12486, 12441, 512, 12488, + 12441, 512, 12495, 12441, 512, 12495, 12442, 512, 12498, 12441, 512, + 12498, 12442, 512, 12501, 12441, 512, 12501, 12442, 512, 12504, 12441, + 512, 12504, 12442, 512, 12507, 12441, 512, 12507, 12442, 512, 12454, + 12441, 512, 12527, 12441, 512, 12528, 12441, 512, 12529, 12441, 512, + 12530, 12441, 512, 12541, 12441, 521, 12467, 12488, 258, 4352, 258, 4353, + 258, 4522, 258, 4354, 258, 4524, 258, 4525, 258, 4355, 258, 4356, 258, + 4357, 258, 4528, 258, 4529, 258, 4530, 258, 4531, 258, 4532, 258, 4533, + 258, 4378, 258, 4358, 258, 4359, 258, 4360, 258, 4385, 258, 4361, 258, + 4362, 258, 4363, 258, 4364, 258, 4365, 258, 4366, 258, 4367, 258, 4368, + 258, 4369, 258, 4370, 258, 4449, 258, 4450, 258, 4451, 258, 4452, 258, + 4453, 258, 4454, 258, 4455, 258, 4456, 258, 4457, 258, 4458, 258, 4459, + 258, 4460, 258, 4461, 258, 4462, 258, 4463, 258, 4464, 258, 4465, 258, + 4466, 258, 4467, 258, 4468, 258, 4469, 258, 4448, 258, 4372, 258, 4373, + 258, 4551, 258, 4552, 258, 4556, 258, 4558, 258, 4563, 258, 4567, 258, + 4569, 258, 4380, 258, 4573, 258, 4575, 258, 4381, 258, 4382, 258, 4384, + 258, 4386, 258, 4387, 258, 4391, 258, 4393, 258, 4395, 258, 4396, 258, + 4397, 258, 4398, 258, 4399, 258, 4402, 258, 4406, 258, 4416, 258, 4423, + 258, 4428, 258, 4593, 258, 4594, 258, 4439, 258, 4440, 258, 4441, 258, + 4484, 258, 4485, 258, 4488, 258, 4497, 258, 4498, 258, 4500, 258, 4510, + 258, 4513, 259, 19968, 259, 20108, 259, 19977, 259, 22235, 259, 19978, + 259, 20013, 259, 19979, 259, 30002, 259, 20057, 259, 19993, 259, 19969, + 259, 22825, 259, 22320, 259, 20154, 770, 40, 4352, 41, 770, 40, 4354, 41, + 770, 40, 4355, 41, 770, 40, 4357, 41, 770, 40, 4358, 41, 770, 40, 4359, + 41, 770, 40, 4361, 41, 770, 40, 4363, 41, 770, 40, 4364, 41, 770, 40, + 4366, 41, 770, 40, 4367, 41, 770, 40, 4368, 41, 770, 40, 4369, 41, 770, + 40, 4370, 41, 1026, 40, 4352, 4449, 41, 1026, 40, 4354, 4449, 41, 1026, + 40, 4355, 4449, 41, 1026, 40, 4357, 4449, 41, 1026, 40, 4358, 4449, 41, + 1026, 40, 4359, 4449, 41, 1026, 40, 4361, 4449, 41, 1026, 40, 4363, 4449, + 41, 1026, 40, 4364, 4449, 41, 1026, 40, 4366, 4449, 41, 1026, 40, 4367, + 4449, 41, 1026, 40, 4368, 4449, 41, 1026, 40, 4369, 4449, 41, 1026, 40, + 4370, 4449, 41, 1026, 40, 4364, 4462, 41, 1794, 40, 4363, 4457, 4364, + 4453, 4523, 41, 1538, 40, 4363, 4457, 4370, 4462, 41, 770, 40, 19968, 41, + 770, 40, 20108, 41, 770, 40, 19977, 41, 770, 40, 22235, 41, 770, 40, + 20116, 41, 770, 40, 20845, 41, 770, 40, 19971, 41, 770, 40, 20843, 41, + 770, 40, 20061, 41, 770, 40, 21313, 41, 770, 40, 26376, 41, 770, 40, + 28779, 41, 770, 40, 27700, 41, 770, 40, 26408, 41, 770, 40, 37329, 41, + 770, 40, 22303, 41, 770, 40, 26085, 41, 770, 40, 26666, 41, 770, 40, + 26377, 41, 770, 40, 31038, 41, 770, 40, 21517, 41, 770, 40, 29305, 41, + 770, 40, 36001, 41, 770, 40, 31069, 41, 770, 40, 21172, 41, 770, 40, + 20195, 41, 770, 40, 21628, 41, 770, 40, 23398, 41, 770, 40, 30435, 41, + 770, 40, 20225, 41, 770, 40, 36039, 41, 770, 40, 21332, 41, 770, 40, + 31085, 41, 770, 40, 20241, 41, 770, 40, 33258, 41, 770, 40, 33267, 41, + 778, 80, 84, 69, 519, 50, 49, 519, 50, 50, 519, 50, 51, 519, 50, 52, 519, + 50, 53, 519, 50, 54, 519, 50, 55, 519, 50, 56, 519, 50, 57, 519, 51, 48, + 519, 51, 49, 519, 51, 50, 519, 51, 51, 519, 51, 52, 519, 51, 53, 263, + 4352, 263, 4354, 263, 4355, 263, 4357, 263, 4358, 263, 4359, 263, 4361, + 263, 4363, 263, 4364, 263, 4366, 263, 4367, 263, 4368, 263, 4369, 263, + 4370, 519, 4352, 4449, 519, 4354, 4449, 519, 4355, 4449, 519, 4357, 4449, + 519, 4358, 4449, 519, 4359, 4449, 519, 4361, 4449, 519, 4363, 4449, 519, + 4364, 4449, 519, 4366, 4449, 519, 4367, 4449, 519, 4368, 4449, 519, 4369, + 4449, 519, 4370, 4449, 1287, 4366, 4449, 4535, 4352, 4457, 1031, 4364, + 4462, 4363, 4468, 519, 4363, 4462, 263, 19968, 263, 20108, 263, 19977, + 263, 22235, 263, 20116, 263, 20845, 263, 19971, 263, 20843, 263, 20061, + 263, 21313, 263, 26376, 263, 28779, 263, 27700, 263, 26408, 263, 37329, + 263, 22303, 263, 26085, 263, 26666, 263, 26377, 263, 31038, 263, 21517, + 263, 29305, 263, 36001, 263, 31069, 263, 21172, 263, 31192, 263, 30007, + 263, 22899, 263, 36969, 263, 20778, 263, 21360, 263, 27880, 263, 38917, + 263, 20241, 263, 20889, 263, 27491, 263, 19978, 263, 20013, 263, 19979, + 263, 24038, 263, 21491, 263, 21307, 263, 23447, 263, 23398, 263, 30435, + 263, 20225, 263, 36039, 263, 21332, 263, 22812, 519, 51, 54, 519, 51, 55, + 519, 51, 56, 519, 51, 57, 519, 52, 48, 519, 52, 49, 519, 52, 50, 519, 52, + 51, 519, 52, 52, 519, 52, 53, 519, 52, 54, 519, 52, 55, 519, 52, 56, 519, + 52, 57, 519, 53, 48, 514, 49, 26376, 514, 50, 26376, 514, 51, 26376, 514, + 52, 26376, 514, 53, 26376, 514, 54, 26376, 514, 55, 26376, 514, 56, + 26376, 514, 57, 26376, 770, 49, 48, 26376, 770, 49, 49, 26376, 770, 49, + 50, 26376, 522, 72, 103, 778, 101, 114, 103, 522, 101, 86, 778, 76, 84, + 68, 263, 12450, 263, 12452, 263, 12454, 263, 12456, 263, 12458, 263, + 12459, 263, 12461, 263, 12463, 263, 12465, 263, 12467, 263, 12469, 263, + 12471, 263, 12473, 263, 12475, 263, 12477, 263, 12479, 263, 12481, 263, + 12484, 263, 12486, 263, 12488, 263, 12490, 263, 12491, 263, 12492, 263, + 12493, 263, 12494, 263, 12495, 263, 12498, 263, 12501, 263, 12504, 263, + 12507, 263, 12510, 263, 12511, 263, 12512, 263, 12513, 263, 12514, 263, + 12516, 263, 12518, 263, 12520, 263, 12521, 263, 12522, 263, 12523, 263, + 12524, 263, 12525, 263, 12527, 263, 12528, 263, 12529, 263, 12530, 1034, + 12450, 12497, 12540, 12488, 1034, 12450, 12523, 12501, 12449, 1034, + 12450, 12531, 12506, 12450, 778, 12450, 12540, 12523, 1034, 12452, 12491, + 12531, 12464, 778, 12452, 12531, 12481, 778, 12454, 12457, 12531, 1290, + 12456, 12473, 12463, 12540, 12489, 1034, 12456, 12540, 12459, 12540, 778, + 12458, 12531, 12473, 778, 12458, 12540, 12512, 778, 12459, 12452, 12522, + 1034, 12459, 12521, 12483, 12488, 1034, 12459, 12525, 12522, 12540, 778, + 12460, 12525, 12531, 778, 12460, 12531, 12510, 522, 12462, 12460, 778, + 12462, 12491, 12540, 1034, 12461, 12517, 12522, 12540, 1034, 12462, + 12523, 12480, 12540, 522, 12461, 12525, 1290, 12461, 12525, 12464, 12521, + 12512, 1546, 12461, 12525, 12513, 12540, 12488, 12523, 1290, 12461, + 12525, 12527, 12483, 12488, 778, 12464, 12521, 12512, 1290, 12464, 12521, + 12512, 12488, 12531, 1290, 12463, 12523, 12476, 12452, 12525, 1034, + 12463, 12525, 12540, 12493, 778, 12465, 12540, 12473, 778, 12467, 12523, + 12490, 778, 12467, 12540, 12509, 1034, 12469, 12452, 12463, 12523, 1290, + 12469, 12531, 12481, 12540, 12512, 1034, 12471, 12522, 12531, 12464, 778, + 12475, 12531, 12481, 778, 12475, 12531, 12488, 778, 12480, 12540, 12473, + 522, 12487, 12471, 522, 12489, 12523, 522, 12488, 12531, 522, 12490, + 12494, 778, 12494, 12483, 12488, 778, 12495, 12452, 12484, 1290, 12497, + 12540, 12475, 12531, 12488, 778, 12497, 12540, 12484, 1034, 12496, 12540, + 12524, 12523, 1290, 12500, 12450, 12473, 12488, 12523, 778, 12500, 12463, + 12523, 522, 12500, 12467, 522, 12499, 12523, 1290, 12501, 12449, 12521, + 12483, 12489, 1034, 12501, 12451, 12540, 12488, 1290, 12502, 12483, + 12471, 12455, 12523, 778, 12501, 12521, 12531, 1290, 12504, 12463, 12479, + 12540, 12523, 522, 12506, 12477, 778, 12506, 12491, 12498, 778, 12504, + 12523, 12484, 778, 12506, 12531, 12473, 778, 12506, 12540, 12472, 778, + 12505, 12540, 12479, 1034, 12509, 12452, 12531, 12488, 778, 12508, 12523, + 12488, 522, 12507, 12531, 778, 12509, 12531, 12489, 778, 12507, 12540, + 12523, 778, 12507, 12540, 12531, 1034, 12510, 12452, 12463, 12525, 778, + 12510, 12452, 12523, 778, 12510, 12483, 12495, 778, 12510, 12523, 12463, + 1290, 12510, 12531, 12471, 12519, 12531, 1034, 12511, 12463, 12525, + 12531, 522, 12511, 12522, 1290, 12511, 12522, 12496, 12540, 12523, 522, + 12513, 12460, 1034, 12513, 12460, 12488, 12531, 1034, 12513, 12540, + 12488, 12523, 778, 12516, 12540, 12489, 778, 12516, 12540, 12523, 778, + 12518, 12450, 12531, 1034, 12522, 12483, 12488, 12523, 522, 12522, 12521, + 778, 12523, 12500, 12540, 1034, 12523, 12540, 12502, 12523, 522, 12524, + 12512, 1290, 12524, 12531, 12488, 12466, 12531, 778, 12527, 12483, 12488, + 514, 48, 28857, 514, 49, 28857, 514, 50, 28857, 514, 51, 28857, 514, 52, + 28857, 514, 53, 28857, 514, 54, 28857, 514, 55, 28857, 514, 56, 28857, + 514, 57, 28857, 770, 49, 48, 28857, 770, 49, 49, 28857, 770, 49, 50, + 28857, 770, 49, 51, 28857, 770, 49, 52, 28857, 770, 49, 53, 28857, 770, + 49, 54, 28857, 770, 49, 55, 28857, 770, 49, 56, 28857, 770, 49, 57, + 28857, 770, 50, 48, 28857, 770, 50, 49, 28857, 770, 50, 50, 28857, 770, + 50, 51, 28857, 770, 50, 52, 28857, 778, 104, 80, 97, 522, 100, 97, 522, + 65, 85, 778, 98, 97, 114, 522, 111, 86, 522, 112, 99, 522, 100, 109, 778, + 100, 109, 178, 778, 100, 109, 179, 522, 73, 85, 522, 24179, 25104, 522, + 26157, 21644, 522, 22823, 27491, 522, 26126, 27835, 1034, 26666, 24335, + 20250, 31038, 522, 112, 65, 522, 110, 65, 522, 956, 65, 522, 109, 65, + 522, 107, 65, 522, 75, 66, 522, 77, 66, 522, 71, 66, 778, 99, 97, 108, + 1034, 107, 99, 97, 108, 522, 112, 70, 522, 110, 70, 522, 956, 70, 522, + 956, 103, 522, 109, 103, 522, 107, 103, 522, 72, 122, 778, 107, 72, 122, + 778, 77, 72, 122, 778, 71, 72, 122, 778, 84, 72, 122, 522, 956, 8467, + 522, 109, 8467, 522, 100, 8467, 522, 107, 8467, 522, 102, 109, 522, 110, + 109, 522, 956, 109, 522, 109, 109, 522, 99, 109, 522, 107, 109, 778, 109, + 109, 178, 778, 99, 109, 178, 522, 109, 178, 778, 107, 109, 178, 778, 109, + 109, 179, 778, 99, 109, 179, 522, 109, 179, 778, 107, 109, 179, 778, 109, + 8725, 115, 1034, 109, 8725, 115, 178, 522, 80, 97, 778, 107, 80, 97, 778, + 77, 80, 97, 778, 71, 80, 97, 778, 114, 97, 100, 1290, 114, 97, 100, 8725, + 115, 1546, 114, 97, 100, 8725, 115, 178, 522, 112, 115, 522, 110, 115, + 522, 956, 115, 522, 109, 115, 522, 112, 86, 522, 110, 86, 522, 956, 86, + 522, 109, 86, 522, 107, 86, 522, 77, 86, 522, 112, 87, 522, 110, 87, 522, + 956, 87, 522, 109, 87, 522, 107, 87, 522, 77, 87, 522, 107, 937, 522, 77, + 937, 1034, 97, 46, 109, 46, 522, 66, 113, 522, 99, 99, 522, 99, 100, + 1034, 67, 8725, 107, 103, 778, 67, 111, 46, 522, 100, 66, 522, 71, 121, + 522, 104, 97, 522, 72, 80, 522, 105, 110, 522, 75, 75, 522, 75, 77, 522, + 107, 116, 522, 108, 109, 522, 108, 110, 778, 108, 111, 103, 522, 108, + 120, 522, 109, 98, 778, 109, 105, 108, 778, 109, 111, 108, 522, 80, 72, + 1034, 112, 46, 109, 46, 778, 80, 80, 77, 522, 80, 82, 522, 115, 114, 522, + 83, 118, 522, 87, 98, 778, 86, 8725, 109, 778, 65, 8725, 109, 514, 49, + 26085, 514, 50, 26085, 514, 51, 26085, 514, 52, 26085, 514, 53, 26085, + 514, 54, 26085, 514, 55, 26085, 514, 56, 26085, 514, 57, 26085, 770, 49, + 48, 26085, 770, 49, 49, 26085, 770, 49, 50, 26085, 770, 49, 51, 26085, + 770, 49, 52, 26085, 770, 49, 53, 26085, 770, 49, 54, 26085, 770, 49, 55, + 26085, 770, 49, 56, 26085, 770, 49, 57, 26085, 770, 50, 48, 26085, 770, + 50, 49, 26085, 770, 50, 50, 26085, 770, 50, 51, 26085, 770, 50, 52, + 26085, 770, 50, 53, 26085, 770, 50, 54, 26085, 770, 50, 55, 26085, 770, + 50, 56, 26085, 770, 50, 57, 26085, 770, 51, 48, 26085, 770, 51, 49, + 26085, 778, 103, 97, 108, 259, 42863, 256, 35912, 256, 26356, 256, 36554, 256, 36040, 256, 28369, 256, 20018, 256, 21477, 256, 40860, 256, 40860, 256, 22865, 256, 37329, 256, 21895, 256, 22856, 256, 25078, 256, 30313, 256, 32645, 256, 34367, 256, 34746, 256, 35064, 256, 37007, 256, 27138, @@ -2879,121 +3043,121 @@ 955, 262, 956, 262, 957, 262, 958, 262, 959, 262, 960, 262, 961, 262, 962, 262, 963, 262, 964, 262, 965, 262, 966, 262, 967, 262, 968, 262, 969, 262, 8706, 262, 1013, 262, 977, 262, 1008, 262, 981, 262, 1009, 262, - 982, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, - 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, - 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, - 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, - 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, - 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, - 55, 262, 56, 262, 57, 256, 20029, 256, 20024, 256, 20033, 256, 131362, - 256, 20320, 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256, 20633, - 256, 20711, 256, 20687, 256, 13470, 256, 132666, 256, 20813, 256, 20820, - 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, 20839, 256, 20877, - 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, - 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, - 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220, - 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329, - 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375, - 256, 133676, 256, 28784, 256, 21450, 256, 21471, 256, 133987, 256, 21483, - 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 256, 21608, - 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, 256, 21892, - 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, 256, 22294, - 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, 256, 22766, - 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, - 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, 22790, 256, 22810, - 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, 23020, 256, 23067, - 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 256, 23304, - 256, 23358, 256, 23358, 256, 137672, 256, 23491, 256, 23512, 256, 23527, - 256, 23539, 256, 138008, 256, 23551, 256, 23558, 256, 24403, 256, 23586, - 256, 14209, 256, 23648, 256, 23662, 256, 23744, 256, 23693, 256, 138724, - 256, 23875, 256, 138726, 256, 23918, 256, 23915, 256, 23932, 256, 24033, - 256, 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, - 256, 14434, 256, 139651, 256, 14460, 256, 24240, 256, 24243, 256, 24246, - 256, 24266, 256, 172946, 256, 24318, 256, 140081, 256, 140081, 256, - 33281, 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, 156122, 256, - 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, - 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 141012, 256, - 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, 24954, 256, - 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, 25074, 256, - 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256, - 25424, 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, 25475, 256, - 25572, 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, 14894, 256, - 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, 25935, 256, - 25964, 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, 15129, 256, - 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, 26368, 256, - 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, 26401, 256, - 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, 26501, 256, - 26706, 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, 26900, 256, - 15261, 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, 145059, 256, - 27355, 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, 15438, 256, - 27506, 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, 138507, 256, - 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, 256, 27751, 256, - 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024, 256, - 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, 256, 15667, 256, - 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, 256, 147294, 256, - 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, 256, 15766, 256, - 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, 256, 28997, 256, - 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, 256, 29264, 256, - 149000, 256, 29312, 256, 29333, 256, 149301, 256, 149524, 256, 29562, - 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767, - 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988, - 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, 139679, 256, - 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, 256, 16392, - 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, 151859, 256, - 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603, 256, - 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, 30924, 256, - 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, 256, 31119, - 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 153980, - 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, 154539, 256, - 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, 17056, 256, - 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, 17153, 256, - 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, 156231, 256, - 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, 256, 32762, 256, - 32773, 256, 156890, 256, 156963, 256, 32864, 256, 157096, 256, 32880, - 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086, - 256, 23221, 256, 157607, 256, 157621, 256, 144275, 256, 144284, 256, - 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419, 256, - 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510, 256, - 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, 256, 33571, 256, - 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, 256, 33740, 256, - 33756, 256, 158774, 256, 159083, 256, 158933, 256, 17707, 256, 34033, - 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, 159532, 256, 17757, - 256, 17761, 256, 159665, 256, 159954, 256, 17771, 256, 34384, 256, 34396, - 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, - 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, - 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 161383, 256, 35031, - 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 161966, 256, 162150, - 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256, 35925, - 256, 162984, 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256, 163631, - 256, 133124, 256, 36299, 256, 36284, 256, 36336, 256, 133342, 256, 36564, - 256, 36664, 256, 165330, 256, 165357, 256, 37012, 256, 37105, 256, 37137, - 256, 165678, 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, - 256, 37881, 256, 37909, 256, 166906, 256, 38283, 256, 18837, 256, 38327, - 256, 167287, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 168261, - 256, 168474, 256, 19054, 256, 19062, 256, 38880, 256, 168970, 256, 19122, - 256, 169110, 256, 38923, 256, 38923, 256, 38953, 256, 169398, 256, 39138, - 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256, 39422, 256, 19406, - 256, 170800, 256, 39698, 256, 40000, 256, 40189, 256, 19662, 256, 19693, - 256, 40295, 256, 172238, 256, 19704, 256, 172293, 256, 172558, 256, - 172689, 256, 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, - 40719, 256, 40726, 256, 40763, 256, 173568, + 982, 262, 988, 262, 989, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, + 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, + 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 262, 48, + 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, 262, 55, 262, 56, + 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, 262, 53, 262, 54, + 262, 55, 262, 56, 262, 57, 262, 48, 262, 49, 262, 50, 262, 51, 262, 52, + 262, 53, 262, 54, 262, 55, 262, 56, 262, 57, 256, 20029, 256, 20024, 256, + 20033, 256, 131362, 256, 20320, 256, 20398, 256, 20411, 256, 20482, 256, + 20602, 256, 20633, 256, 20711, 256, 20687, 256, 13470, 256, 132666, 256, + 20813, 256, 20820, 256, 20836, 256, 20855, 256, 132380, 256, 13497, 256, + 20839, 256, 20877, 256, 132427, 256, 20887, 256, 20900, 256, 20172, 256, + 20908, 256, 20917, 256, 168415, 256, 20981, 256, 20995, 256, 13535, 256, + 21051, 256, 21062, 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, + 21193, 256, 21220, 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, + 21321, 256, 21329, 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, + 21375, 256, 21375, 256, 133676, 256, 28784, 256, 21450, 256, 21471, 256, + 133987, 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, + 21576, 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, + 21859, 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, + 21954, 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, + 20999, 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, + 22578, 256, 22577, 256, 22700, 256, 136420, 256, 22770, 256, 22775, 256, + 22790, 256, 22810, 256, 22818, 256, 22882, 256, 136872, 256, 136938, 256, + 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, + 14076, 256, 23304, 256, 23358, 256, 23358, 256, 137672, 256, 23491, 256, + 23512, 256, 23527, 256, 23539, 256, 138008, 256, 23551, 256, 23558, 256, + 24403, 256, 23586, 256, 14209, 256, 23648, 256, 23662, 256, 23744, 256, + 23693, 256, 138724, 256, 23875, 256, 138726, 256, 23918, 256, 23915, 256, + 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061, 256, 24104, 256, + 24125, 256, 24169, 256, 14434, 256, 139651, 256, 14460, 256, 24240, 256, + 24243, 256, 24246, 256, 24266, 256, 172946, 256, 24318, 256, 140081, 256, + 140081, 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, 144056, 256, + 156122, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, + 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, + 141012, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, + 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, + 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, + 25300, 256, 25424, 256, 142092, 256, 25405, 256, 25340, 256, 25448, 256, + 25475, 256, 25572, 256, 142321, 256, 25634, 256, 25541, 256, 25513, 256, + 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256, + 25935, 256, 25964, 256, 143370, 256, 26083, 256, 26360, 256, 26185, 256, + 15129, 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885, 256, + 26368, 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395, 256, + 26401, 256, 26462, 256, 26451, 256, 144323, 256, 15177, 256, 26618, 256, + 26501, 256, 26706, 256, 26757, 256, 144493, 256, 26766, 256, 26655, 256, + 26900, 256, 15261, 256, 26946, 256, 27043, 256, 27114, 256, 27304, 256, + 145059, 256, 27355, 256, 15384, 256, 27425, 256, 145575, 256, 27476, 256, + 15438, 256, 27506, 256, 27551, 256, 27578, 256, 27579, 256, 146061, 256, + 138507, 256, 146170, 256, 27726, 256, 146620, 256, 27839, 256, 27853, + 256, 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, + 256, 28024, 256, 28037, 256, 146718, 256, 27956, 256, 28207, 256, 28270, + 256, 15667, 256, 28363, 256, 28359, 256, 147153, 256, 28153, 256, 28526, + 256, 147294, 256, 147342, 256, 28614, 256, 28729, 256, 28702, 256, 28699, + 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 132389, + 256, 28997, 256, 148067, 256, 29084, 256, 148395, 256, 29224, 256, 29237, + 256, 29264, 256, 149000, 256, 29312, 256, 29333, 256, 149301, 256, + 149524, 256, 29562, 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, + 16056, 256, 29767, 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, + 16155, 256, 29988, 256, 150582, 256, 30014, 256, 150674, 256, 30064, 256, + 139679, 256, 30224, 256, 151457, 256, 151480, 256, 151620, 256, 16380, + 256, 16392, 256, 30452, 256, 151795, 256, 151794, 256, 151833, 256, + 151859, 256, 30494, 256, 30495, 256, 30495, 256, 30538, 256, 16441, 256, + 30603, 256, 16454, 256, 16534, 256, 152605, 256, 30798, 256, 30860, 256, + 30924, 256, 16611, 256, 153126, 256, 31062, 256, 153242, 256, 153285, + 256, 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, + 256, 153980, 256, 154279, 256, 154279, 256, 31470, 256, 16898, 256, + 154539, 256, 31686, 256, 31689, 256, 16935, 256, 154752, 256, 31954, 256, + 17056, 256, 31976, 256, 31971, 256, 32000, 256, 155526, 256, 32099, 256, + 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 156200, 256, + 156231, 256, 17241, 256, 156377, 256, 32634, 256, 156478, 256, 32661, + 256, 32762, 256, 32773, 256, 156890, 256, 156963, 256, 32864, 256, + 157096, 256, 32880, 256, 144223, 256, 17365, 256, 32946, 256, 33027, 256, + 17419, 256, 33086, 256, 23221, 256, 157607, 256, 157621, 256, 144275, + 256, 144284, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, + 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, + 256, 33510, 256, 158524, 256, 33509, 256, 33565, 256, 33635, 256, 33709, + 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, + 256, 33740, 256, 33756, 256, 158774, 256, 159083, 256, 158933, 256, + 17707, 256, 34033, 256, 34035, 256, 34070, 256, 160714, 256, 34148, 256, + 159532, 256, 17757, 256, 17761, 256, 159665, 256, 159954, 256, 17771, + 256, 34384, 256, 34396, 256, 34407, 256, 34409, 256, 34473, 256, 34440, + 256, 34574, 256, 34530, 256, 34681, 256, 34600, 256, 34667, 256, 34694, + 256, 17879, 256, 34785, 256, 34817, 256, 17913, 256, 34912, 256, 34915, + 256, 161383, 256, 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, + 256, 161966, 256, 162150, 256, 18110, 256, 18119, 256, 35488, 256, 35565, + 256, 35722, 256, 35925, 256, 162984, 256, 36011, 256, 36033, 256, 36123, + 256, 36215, 256, 163631, 256, 133124, 256, 36299, 256, 36284, 256, 36336, + 256, 133342, 256, 36564, 256, 36664, 256, 165330, 256, 165357, 256, + 37012, 256, 37105, 256, 37137, 256, 165678, 256, 37147, 256, 37432, 256, + 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909, 256, 166906, 256, + 38283, 256, 18837, 256, 38327, 256, 167287, 256, 18918, 256, 38595, 256, + 23986, 256, 38691, 256, 168261, 256, 168474, 256, 19054, 256, 19062, 256, + 38880, 256, 168970, 256, 19122, 256, 169110, 256, 38923, 256, 38923, 256, + 38953, 256, 169398, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, + 39362, 256, 39422, 256, 19406, 256, 170800, 256, 39698, 256, 40000, 256, + 40189, 256, 19662, 256, 19693, 256, 40295, 256, 172238, 256, 19704, 256, + 172293, 256, 172558, 256, 172689, 256, 40635, 256, 19798, 256, 40697, + 256, 40702, 256, 40709, 256, 40719, 256, 40726, 256, 40763, 256, 173568, }; /* index tables for the decomposition data */ #define DECOMP_SHIFT 8 static unsigned char decomp_index1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 16, 17, 18, 19, 20, 21, 22, 23, 7, 7, 7, 7, 7, 24, - 7, 7, 25, 26, 27, 28, 29, 30, 31, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 16, 7, 17, 18, 19, 20, 21, 22, 23, 24, 7, 7, 7, 7, 7, 25, + 7, 26, 27, 28, 29, 30, 31, 32, 33, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 34, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 32, 33, 34, 35, 36, 37, - 38, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 35, 36, 37, 38, 39, 40, + 41, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -3001,8 +3165,8 @@ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 39, 7, 7, 40, 41, - 42, 43, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 42, 7, 7, 43, 44, + 45, 46, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -3014,7 +3178,7 @@ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 44, 45, 46, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 47, 48, 49, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, @@ -3352,979 +3516,1026 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1409, 0, 1412, 0, + 1415, 0, 1418, 0, 1421, 0, 0, 0, 1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1427, 0, 1430, 0, 0, 1433, 1436, 0, 1439, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1409, 1411, 1413, 0, 1415, 1417, 1419, 1421, 1423, - 1425, 1427, 1429, 1431, 1433, 1435, 0, 1437, 1439, 1441, 1443, 1445, - 1447, 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, - 1471, 0, 1473, 1475, 1477, 1479, 1481, 1483, 1485, 1487, 1489, 1491, - 1493, 1495, 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511, 1513, 1515, - 1517, 1519, 1521, 1523, 1525, 1527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1531, 1533, 1535, 1537, 1539, - 1541, 1543, 1545, 1547, 1549, 1551, 1553, 1555, 1557, 1559, 1561, 1563, - 1565, 1567, 1569, 1571, 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1587, - 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1605, 1608, 1611, 1614, 1617, 1620, 1623, 1626, - 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, 1656, 1659, 1662, - 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, 1692, 1695, 1698, - 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, 1728, 1731, 1734, - 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, 1764, 1767, 1770, - 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, 1800, 1803, 1806, - 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, 1836, 1839, 1842, - 1845, 1848, 1851, 1854, 1857, 1860, 1863, 1866, 1869, 1872, 1875, 1878, - 1881, 1884, 1887, 1890, 1893, 1896, 1899, 1902, 1905, 1908, 1911, 1914, - 1917, 1920, 1923, 1926, 1929, 1932, 1935, 1938, 1941, 1944, 1947, 1950, - 1953, 1956, 1959, 1962, 1965, 1968, 1971, 1974, 1977, 1980, 1983, 1986, - 1989, 1992, 1995, 1998, 2001, 2004, 2007, 2010, 2013, 2016, 2019, 2022, - 2025, 2028, 2031, 2034, 2037, 2040, 2043, 2046, 2049, 2052, 2055, 2058, - 2061, 2064, 2067, 2070, 0, 0, 0, 0, 2073, 2076, 2079, 2082, 2085, 2088, - 2091, 2094, 2097, 2100, 2103, 2106, 2109, 2112, 2115, 2118, 2121, 2124, - 2127, 2130, 2133, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2160, - 2163, 2166, 2169, 2172, 2175, 2178, 2181, 2184, 2187, 2190, 2193, 2196, - 2199, 2202, 2205, 2208, 2211, 2214, 2217, 2220, 2223, 2226, 2229, 2232, - 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259, 2262, 2265, 2268, - 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292, 2295, 2298, 2301, 2304, - 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328, 2331, 2334, 2337, 2340, - 0, 0, 0, 0, 0, 0, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367, - 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, 2394, 2397, 2400, 2403, - 2406, 0, 0, 2409, 2412, 2415, 2418, 2421, 2424, 0, 0, 2427, 2430, 2433, - 2436, 2439, 2442, 2445, 2448, 2451, 2454, 2457, 2460, 2463, 2466, 2469, - 2472, 2475, 2478, 2481, 2484, 2487, 2490, 2493, 2496, 2499, 2502, 2505, - 2508, 2511, 2514, 2517, 2520, 2523, 2526, 2529, 2532, 2535, 2538, 0, 0, - 2541, 2544, 2547, 2550, 2553, 2556, 0, 0, 2559, 2562, 2565, 2568, 2571, - 2574, 2577, 2580, 0, 2583, 0, 2586, 0, 2589, 0, 2592, 2595, 2598, 2601, - 2604, 2607, 2610, 2613, 2616, 2619, 2622, 2625, 2628, 2631, 2634, 2637, - 2640, 2643, 2646, 2648, 2651, 2653, 2656, 2658, 2661, 2663, 2666, 2668, - 2671, 2673, 2676, 0, 0, 2678, 2681, 2684, 2687, 2690, 2693, 2696, 2699, - 2702, 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2726, 2729, 2732, 2735, - 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759, 2762, 2765, 2768, 2771, - 2774, 2777, 2780, 2783, 2786, 2789, 2792, 2795, 2798, 2801, 2804, 2807, - 2810, 2813, 2816, 2819, 2822, 2825, 2828, 2831, 2834, 0, 2837, 2840, - 2843, 2846, 2849, 2852, 2854, 2857, 2860, 2862, 2865, 2868, 2871, 2874, - 2877, 0, 2880, 2883, 2886, 2889, 2891, 2894, 2896, 2899, 2902, 2905, - 2908, 2911, 2914, 2917, 0, 0, 2919, 2922, 2925, 2928, 2931, 2934, 0, - 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2956, 2959, 2962, 2965, 2968, - 2971, 2974, 2977, 2979, 2982, 2985, 2987, 0, 0, 2989, 2992, 2995, 0, - 2998, 3001, 3004, 3007, 3009, 3012, 3014, 3017, 3019, 0, 3022, 3024, - 3026, 3028, 3030, 3032, 3034, 3036, 3038, 3040, 3042, 0, 0, 0, 0, 0, 0, - 3044, 0, 0, 0, 0, 0, 3046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3049, - 3051, 3054, 0, 0, 0, 0, 0, 0, 0, 0, 3058, 0, 0, 0, 3060, 3063, 0, 3067, - 3070, 0, 0, 0, 0, 3074, 0, 3077, 0, 0, 0, 0, 0, 0, 0, 0, 3080, 3083, - 3086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3089, 0, 0, 0, 0, 0, 0, 0, - 3094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3096, 3098, 0, 0, - 3100, 3102, 3104, 3106, 3108, 3110, 3112, 3114, 3116, 3118, 3120, 3122, - 3124, 3126, 3128, 3130, 3132, 3134, 3136, 3138, 3140, 3142, 3144, 3146, - 3148, 3150, 3152, 0, 3154, 3156, 3158, 3160, 3162, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3167, 3171, 3175, 3177, 0, 3180, 3184, 3188, 0, 3190, - 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3207, 3209, 3211, 0, 3213, - 3215, 0, 0, 3218, 3220, 3222, 3224, 3226, 0, 0, 3228, 3231, 3235, 0, - 3238, 0, 3240, 0, 3242, 0, 3244, 3246, 3248, 3250, 0, 3252, 3254, 3256, - 0, 3258, 3260, 3262, 3264, 3266, 3268, 3270, 0, 3272, 3276, 3278, 3280, - 3282, 3284, 0, 0, 0, 0, 3286, 3288, 3290, 3292, 3294, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3296, 3300, 3304, 3308, 3312, 3316, 3320, 3324, 3328, 3332, - 3336, 3340, 3344, 3347, 3349, 3352, 3356, 3359, 3361, 3364, 3368, 3373, - 3376, 3378, 3381, 3385, 3387, 3389, 3391, 3393, 3395, 3398, 3402, 3405, - 3407, 3410, 3414, 3419, 3422, 3424, 3427, 3431, 3433, 3435, 3437, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3439, 3442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3445, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3448, 3451, 3454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3457, 0, 0, 0, 0, 3460, - 0, 0, 3463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3466, 0, 3469, 0, 0, 0, 0, 0, 3472, 3475, 0, 3479, 3482, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3486, 0, 0, 3489, 0, 0, 3492, - 0, 3495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3498, 0, 3501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3504, 3507, 3510, 3513, - 3516, 0, 0, 3519, 3522, 0, 0, 3525, 3528, 0, 0, 0, 0, 0, 0, 3531, 3534, - 0, 0, 3537, 3540, 0, 0, 3543, 3546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3549, - 3552, 3555, 3558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3561, 3564, 3567, 3570, 0, 0, 0, 0, 0, 0, 3573, 3576, - 3579, 3582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3585, 3587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442, 1444, 1446, 0, 1448, 1450, 1452, + 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, 0, 1470, 1472, 1474, + 1476, 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492, 1494, 1496, 1498, + 1500, 1502, 1504, 0, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, + 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544, + 1546, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564, 1566, 1568, + 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588, 1590, 1592, + 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1616, + 1618, 1620, 1622, 1624, 1626, 1628, 1630, 1632, 1634, 1636, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1638, 1641, 1644, 1647, 1650, 1653, + 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 1689, + 1692, 1695, 1698, 1701, 1704, 1707, 1710, 1713, 1716, 1719, 1722, 1725, + 1728, 1731, 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761, + 1764, 1767, 1770, 1773, 1776, 1779, 1782, 1785, 1788, 1791, 1794, 1797, + 1800, 1803, 1806, 1809, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, + 1836, 1839, 1842, 1845, 1848, 1851, 1854, 1857, 1860, 1863, 1866, 1869, + 1872, 1875, 1878, 1881, 1884, 1887, 1890, 1893, 1896, 1899, 1902, 1905, + 1908, 1911, 1914, 1917, 1920, 1923, 1926, 1929, 1932, 1935, 1938, 1941, + 1944, 1947, 1950, 1953, 1956, 1959, 1962, 1965, 1968, 1971, 1974, 1977, + 1980, 1983, 1986, 1989, 1992, 1995, 1998, 2001, 2004, 2007, 2010, 2013, + 2016, 2019, 2022, 2025, 2028, 2031, 2034, 2037, 2040, 2043, 2046, 2049, + 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076, 2079, 2082, 2085, + 2088, 2091, 2094, 2097, 2100, 2103, 0, 0, 0, 0, 2106, 2109, 2112, 2115, + 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142, 2145, 2148, 2151, + 2154, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178, 2181, 2184, 2187, + 2190, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, 2217, 2220, 2223, + 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259, + 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292, 2295, + 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328, 2331, + 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367, + 2370, 2373, 0, 0, 0, 0, 0, 0, 2376, 2379, 2382, 2385, 2388, 2391, 2394, + 2397, 2400, 2403, 2406, 2409, 2412, 2415, 2418, 2421, 2424, 2427, 2430, + 2433, 2436, 2439, 0, 0, 2442, 2445, 2448, 2451, 2454, 2457, 0, 0, 2460, + 2463, 2466, 2469, 2472, 2475, 2478, 2481, 2484, 2487, 2490, 2493, 2496, + 2499, 2502, 2505, 2508, 2511, 2514, 2517, 2520, 2523, 2526, 2529, 2532, + 2535, 2538, 2541, 2544, 2547, 2550, 2553, 2556, 2559, 2562, 2565, 2568, + 2571, 0, 0, 2574, 2577, 2580, 2583, 2586, 2589, 0, 0, 2592, 2595, 2598, + 2601, 2604, 2607, 2610, 2613, 0, 2616, 0, 2619, 0, 2622, 0, 2625, 2628, + 2631, 2634, 2637, 2640, 2643, 2646, 2649, 2652, 2655, 2658, 2661, 2664, + 2667, 2670, 2673, 2676, 2679, 2681, 2684, 2686, 2689, 2691, 2694, 2696, + 2699, 2701, 2704, 2706, 2709, 0, 0, 2711, 2714, 2717, 2720, 2723, 2726, + 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759, 2762, + 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, 2789, 2792, 2795, 2798, + 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, 2825, 2828, 2831, 2834, + 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, 2861, 2864, 2867, 0, + 2870, 2873, 2876, 2879, 2882, 2885, 2887, 2890, 2893, 2895, 2898, 2901, + 2904, 2907, 2910, 0, 2913, 2916, 2919, 2922, 2924, 2927, 2929, 2932, + 2935, 2938, 2941, 2944, 2947, 2950, 0, 0, 2952, 2955, 2958, 2961, 2964, + 2967, 0, 2969, 2972, 2975, 2978, 2981, 2984, 2987, 2989, 2992, 2995, + 2998, 3001, 3004, 3007, 3010, 3012, 3015, 3018, 3020, 0, 0, 3022, 3025, + 3028, 0, 3031, 3034, 3037, 3040, 3042, 3045, 3047, 3050, 3052, 0, 3055, + 3057, 3059, 3061, 3063, 3065, 3067, 3069, 3071, 3073, 3075, 0, 0, 0, 0, + 0, 0, 3077, 0, 0, 0, 0, 0, 3079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3082, 3084, 3087, 0, 0, 0, 0, 0, 0, 0, 0, 3091, 0, 0, 0, 3093, 3096, 0, + 3100, 3103, 0, 0, 0, 0, 3107, 0, 3110, 0, 0, 0, 0, 0, 0, 0, 0, 3113, + 3116, 3119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3122, 0, 0, 0, 0, 0, + 0, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3129, 3131, + 0, 0, 3133, 3135, 3137, 3139, 3141, 3143, 3145, 3147, 3149, 3151, 3153, + 3155, 3157, 3159, 3161, 3163, 3165, 3167, 3169, 3171, 3173, 3175, 3177, + 3179, 3181, 3183, 3185, 0, 3187, 3189, 3191, 3193, 3195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3197, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3200, 3204, 3208, 3210, 0, 3213, 3217, 3221, 0, + 3223, 3226, 3228, 3230, 3232, 3234, 3236, 3238, 3240, 3242, 3244, 0, + 3246, 3248, 0, 0, 3251, 3253, 3255, 3257, 3259, 0, 0, 3261, 3264, 3268, + 0, 3271, 0, 3273, 0, 3275, 0, 3277, 3279, 3281, 3283, 0, 3285, 3287, + 3289, 0, 3291, 3293, 3295, 3297, 3299, 3301, 3303, 0, 3305, 3309, 3311, + 3313, 3315, 3317, 0, 0, 0, 0, 3319, 3321, 3323, 3325, 3327, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3329, 3333, 3337, 3341, 3345, 3349, 3353, 3357, 3361, + 3365, 3369, 3373, 3377, 3380, 3382, 3385, 3389, 3392, 3394, 3397, 3401, + 3406, 3409, 3411, 3414, 3418, 3420, 3422, 3424, 3426, 3428, 3431, 3435, + 3438, 3440, 3443, 3447, 3452, 3455, 3457, 3460, 3464, 3466, 3468, 3470, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3472, 3475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3481, 3484, 3487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3490, 0, 0, 0, 0, + 3493, 0, 0, 3496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3499, 0, 3502, 0, 0, 0, 0, 0, 3505, 3508, 0, 3512, 3515, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3519, 0, 0, 3522, 0, 0, + 3525, 0, 3528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3531, 0, 3534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3537, 3540, 3543, + 3546, 3549, 0, 0, 3552, 3555, 0, 0, 3558, 3561, 0, 0, 0, 0, 0, 0, 3564, + 3567, 0, 0, 3570, 3573, 0, 0, 3576, 3579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3582, 3585, 3588, 3591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3594, 3597, 3600, 3603, 0, 0, 0, 0, 0, 0, 3606, + 3609, 3612, 3615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3618, 3620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3589, 3591, 3593, 3595, - 3597, 3599, 3601, 3603, 3605, 3607, 3610, 3613, 3616, 3619, 3622, 3625, - 3628, 3631, 3634, 3637, 3640, 3644, 3648, 3652, 3656, 3660, 3664, 3668, - 3672, 3676, 3681, 3686, 3691, 3696, 3701, 3706, 3711, 3716, 3721, 3726, - 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758, 3762, 3766, - 3770, 3774, 3778, 3782, 3786, 3790, 3794, 3798, 3802, 3806, 3810, 3814, - 3818, 3822, 3826, 3830, 3834, 3838, 3842, 3846, 3850, 3854, 3858, 3862, - 3866, 3870, 3874, 3878, 3882, 3886, 3890, 3894, 3898, 3902, 3906, 3908, - 3910, 3912, 3914, 3916, 3918, 3920, 3922, 3924, 3926, 3928, 3930, 3932, - 3934, 3936, 3938, 3940, 3942, 3944, 3946, 3948, 3950, 3952, 3954, 3956, - 3958, 3960, 3962, 3964, 3966, 3968, 3970, 3972, 3974, 3976, 3978, 3980, - 3982, 3984, 3986, 3988, 3990, 3992, 3994, 3996, 3998, 4000, 4002, 4004, - 4006, 4008, 4010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4012, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4017, 4021, 4024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3622, 3624, 3626, + 3628, 3630, 3632, 3634, 3636, 3638, 3640, 3643, 3646, 3649, 3652, 3655, + 3658, 3661, 3664, 3667, 3670, 3673, 3677, 3681, 3685, 3689, 3693, 3697, + 3701, 3705, 3709, 3714, 3719, 3724, 3729, 3734, 3739, 3744, 3749, 3754, + 3759, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3795, + 3799, 3803, 3807, 3811, 3815, 3819, 3823, 3827, 3831, 3835, 3839, 3843, + 3847, 3851, 3855, 3859, 3863, 3867, 3871, 3875, 3879, 3883, 3887, 3891, + 3895, 3899, 3903, 3907, 3911, 3915, 3919, 3923, 3927, 3931, 3935, 3939, + 3941, 3943, 3945, 3947, 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, + 3965, 3967, 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, 3985, 3987, + 3989, 3991, 3993, 3995, 3997, 3999, 4001, 4003, 4005, 4007, 4009, 4011, + 4013, 4015, 4017, 4019, 4021, 4023, 4025, 4027, 4029, 4031, 4033, 4035, + 4037, 4039, 4041, 4043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4045, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4050, 4054, 4057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4061, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4064, 4066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4035, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4037, 4039, 4041, 4043, 4045, 4047, - 4049, 4051, 4053, 4055, 4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, - 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095, - 4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, 4115, 4117, 4119, - 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135, 4137, 4139, 4141, 4143, - 4145, 4147, 4149, 4151, 4153, 4155, 4157, 4159, 4161, 4163, 4165, 4167, - 4169, 4171, 4173, 4175, 4177, 4179, 4181, 4183, 4185, 4187, 4189, 4191, - 4193, 4195, 4197, 4199, 4201, 4203, 4205, 4207, 4209, 4211, 4213, 4215, - 4217, 4219, 4221, 4223, 4225, 4227, 4229, 4231, 4233, 4235, 4237, 4239, - 4241, 4243, 4245, 4247, 4249, 4251, 4253, 4255, 4257, 4259, 4261, 4263, - 4265, 4267, 4269, 4271, 4273, 4275, 4277, 4279, 4281, 4283, 4285, 4287, - 4289, 4291, 4293, 4295, 4297, 4299, 4301, 4303, 4305, 4307, 4309, 4311, - 4313, 4315, 4317, 4319, 4321, 4323, 4325, 4327, 4329, 4331, 4333, 4335, - 4337, 4339, 4341, 4343, 4345, 4347, 4349, 4351, 4353, 4355, 4357, 4359, - 4361, 4363, 4365, 4367, 4369, 4371, 4373, 4375, 4377, 4379, 4381, 4383, - 4385, 4387, 4389, 4391, 4393, 4395, 4397, 4399, 4401, 4403, 4405, 4407, - 4409, 4411, 4413, 4415, 4417, 4419, 4421, 4423, 4425, 4427, 4429, 4431, - 4433, 4435, 4437, 4439, 4441, 4443, 4445, 4447, 4449, 4451, 4453, 4455, - 4457, 4459, 4461, 4463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4467, 0, 4469, 4471, 4473, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4475, 0, 4478, 0, 4481, 0, 4484, 0, - 4487, 0, 4490, 0, 4493, 0, 4496, 0, 4499, 0, 4502, 0, 4505, 0, 4508, 0, - 0, 4511, 0, 4514, 0, 4517, 0, 0, 0, 0, 0, 0, 4520, 4523, 0, 4526, 4529, - 0, 4532, 4535, 0, 4538, 4541, 0, 4544, 4547, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4550, 0, 0, 0, 0, 0, 0, 4553, - 4556, 0, 4559, 4562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4565, 0, 4568, - 0, 4571, 0, 4574, 0, 4577, 0, 4580, 0, 4583, 0, 4586, 0, 4589, 0, 4592, - 0, 4595, 0, 4598, 0, 0, 4601, 0, 4604, 0, 4607, 0, 0, 0, 0, 0, 0, 4610, - 4613, 0, 4616, 4619, 0, 4622, 4625, 0, 4628, 4631, 0, 4634, 4637, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4640, 0, 0, - 4643, 4646, 4649, 4652, 0, 0, 0, 4655, 4658, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4661, 4663, 4665, 4667, - 4669, 4671, 4673, 4675, 4677, 4679, 4681, 4683, 4685, 4687, 4689, 4691, - 4693, 4695, 4697, 4699, 4701, 4703, 4705, 4707, 4709, 4711, 4713, 4715, - 4717, 4719, 4721, 4723, 4725, 4727, 4729, 4731, 4733, 4735, 4737, 4739, - 4741, 4743, 4745, 4747, 4749, 4751, 4753, 4755, 4757, 4759, 4761, 4763, - 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4779, 4781, 4783, 4785, 4787, - 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, 4805, 4807, 4809, 4811, - 4813, 4815, 4817, 4819, 4821, 4823, 4825, 4827, 4829, 4831, 4833, 4835, - 4837, 4839, 4841, 4843, 4845, 4847, 0, 0, 0, 4849, 4851, 4853, 4855, - 4857, 4859, 4861, 4863, 4865, 4867, 4869, 4871, 4873, 4875, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4877, 4881, - 4885, 4889, 4893, 4897, 4901, 4905, 4909, 4913, 4917, 4921, 4925, 4929, - 4933, 4938, 4943, 4948, 4953, 4958, 4963, 4968, 4973, 4978, 4983, 4988, - 4993, 4998, 5003, 5008, 5016, 0, 5023, 5027, 5031, 5035, 5039, 5043, - 5047, 5051, 5055, 5059, 5063, 5067, 5071, 5075, 5079, 5083, 5087, 5091, - 5095, 5099, 5103, 5107, 5111, 5115, 5119, 5123, 5127, 5131, 5135, 5139, - 5143, 5147, 5151, 5155, 5159, 5163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5167, 5171, 5174, 5177, 5180, 5183, 5186, 5189, 5192, 5195, 5198, 5201, - 5204, 5207, 5210, 5213, 5216, 5218, 5220, 5222, 5224, 5226, 5228, 5230, - 5232, 5234, 5236, 5238, 5240, 5242, 5244, 5247, 5250, 5253, 5256, 5259, - 5262, 5265, 5268, 5271, 5274, 5277, 5280, 5283, 5286, 5292, 5297, 0, - 5300, 5302, 5304, 5306, 5308, 5310, 5312, 5314, 5316, 5318, 5320, 5322, - 5324, 5326, 5328, 5330, 5332, 5334, 5336, 5338, 5340, 5342, 5344, 5346, - 5348, 5350, 5352, 5354, 5356, 5358, 5360, 5362, 5364, 5366, 5368, 5370, - 5372, 5374, 5376, 5378, 5380, 5382, 5384, 5386, 5388, 5390, 5392, 5394, - 5396, 5398, 5401, 5404, 5407, 5410, 5413, 5416, 5419, 5422, 5425, 5428, - 5431, 5434, 5437, 5440, 5443, 5446, 5449, 5452, 5455, 5458, 5461, 5464, - 5467, 5470, 5474, 5478, 5482, 5485, 5489, 5492, 5496, 5498, 5500, 5502, - 5504, 5506, 5508, 5510, 5512, 5514, 5516, 5518, 5520, 5522, 5524, 5526, - 5528, 5530, 5532, 5534, 5536, 5538, 5540, 5542, 5544, 5546, 5548, 5550, - 5552, 5554, 5556, 5558, 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, - 5576, 5578, 5580, 5582, 5584, 5586, 5588, 0, 5590, 5595, 5600, 5605, - 5609, 5614, 5618, 5622, 5628, 5633, 5637, 5641, 5645, 5650, 5655, 5659, - 5663, 5666, 5670, 5675, 5680, 5683, 5689, 5696, 5702, 5706, 5712, 5718, - 5723, 5727, 5731, 5735, 5740, 5746, 5751, 5755, 5759, 5763, 5766, 5769, - 5772, 5775, 5779, 5783, 5789, 5793, 5798, 5804, 5808, 5811, 5814, 5820, - 5825, 5831, 5835, 5841, 5844, 5848, 5852, 5856, 5860, 5864, 5869, 5873, - 5876, 5880, 5884, 5888, 5893, 5897, 5901, 5905, 5911, 5916, 5919, 5925, - 5928, 5933, 5938, 5942, 5946, 5950, 5955, 5958, 5962, 5967, 5970, 5976, - 5980, 5983, 5986, 5989, 5992, 5995, 5998, 6001, 6004, 6007, 6010, 6014, - 6018, 6022, 6026, 6030, 6034, 6038, 6042, 6046, 6050, 6054, 6058, 6062, - 6066, 6070, 6074, 6077, 6080, 6084, 6087, 6090, 6093, 6097, 6101, 6104, - 6107, 6110, 6113, 6116, 6121, 6124, 6127, 6130, 6133, 6136, 6139, 6142, - 6145, 6149, 6154, 6157, 6160, 6163, 6166, 6169, 6172, 6175, 6179, 6183, - 6187, 6191, 6194, 6197, 6200, 6203, 6206, 6209, 6212, 6215, 6218, 6221, - 6225, 6229, 6232, 6236, 6240, 6244, 6247, 6251, 6255, 6260, 6263, 6267, - 6271, 6275, 6279, 6285, 6292, 6295, 6298, 6301, 6304, 6307, 6310, 6313, - 6316, 6319, 6322, 6325, 6328, 6331, 6334, 6337, 6340, 6343, 6346, 6351, - 6354, 6357, 6360, 6365, 6369, 6372, 6375, 6378, 6381, 6384, 6387, 6390, - 6393, 6396, 6399, 6403, 6406, 6409, 6413, 6417, 6420, 6425, 6429, 6432, - 6435, 6438, 6441, 6445, 6449, 6452, 6455, 6458, 6461, 6464, 6467, 6470, - 6473, 6476, 6480, 6484, 6488, 6492, 6496, 6500, 6504, 6508, 6512, 6516, - 6520, 6524, 6528, 6532, 6536, 6540, 6544, 6548, 6552, 6556, 6560, 6564, - 6568, 6570, 6572, 6574, 6576, 6578, 6580, 6582, 6584, 6586, 6588, 6590, - 6592, 6594, 6596, 6598, 6600, 6602, 6604, 6606, 6608, 6610, 6612, 6614, - 6616, 6618, 6620, 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, 6638, - 6640, 6642, 6644, 6646, 6648, 6650, 6652, 6654, 6656, 6658, 6660, 6662, - 6664, 6666, 6668, 6670, 6672, 6674, 6676, 6678, 6680, 6682, 6684, 6686, - 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, 6704, 6706, 6708, 6710, - 6712, 6714, 6716, 6718, 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, - 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, 6752, 6754, 6756, 6758, - 6760, 6762, 6764, 6766, 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, - 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, 6800, 6802, 6804, 6806, - 6808, 6810, 6812, 6814, 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, - 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, 6848, 6850, 6852, 6854, - 6856, 6858, 6860, 6862, 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, - 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, 6896, 6898, 6900, 6902, - 6904, 6906, 6908, 6910, 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, - 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, 6944, 6946, 6948, 6950, - 6952, 6954, 6956, 6958, 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, - 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, 6992, 6994, 6996, 6998, - 7000, 7002, 7004, 7006, 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, - 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, 7040, 7042, 7044, 7046, - 7048, 7050, 7052, 7054, 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, - 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, 7088, 7090, 7092, 7094, - 7096, 7098, 7100, 7102, 7104, 7106, 0, 0, 7108, 0, 7110, 0, 0, 7112, - 7114, 7116, 7118, 7120, 7122, 7124, 7126, 7128, 7130, 0, 7132, 0, 7134, - 0, 0, 7136, 7138, 0, 0, 0, 7140, 7142, 7144, 7146, 0, 0, 7148, 7150, - 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, 7168, 7170, 7172, 7174, - 7176, 7178, 7180, 7182, 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, - 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, 7216, 7218, 7220, 7222, - 7224, 7226, 7228, 7230, 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, - 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, 7264, 0, 0, 0, 0, 0, - 7266, 7268, 7270, 7272, 7274, 7276, 7278, 7280, 7282, 7284, 7286, 7288, - 7290, 7292, 7294, 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, 7312, - 7314, 7316, 7318, 7320, 7322, 7324, 7326, 7328, 7330, 7332, 7334, 7336, - 7338, 7340, 7342, 7344, 7346, 7348, 7350, 7352, 7354, 7356, 7358, 7360, - 7362, 7364, 7366, 7368, 7370, 7372, 7374, 7376, 7378, 7380, 7382, 7384, - 7386, 7388, 7390, 7392, 7394, 7396, 7398, 7400, 7402, 7404, 7406, 7408, - 7410, 7412, 7414, 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430, 7432, - 7434, 7436, 7438, 7440, 7442, 7444, 7446, 7448, 7450, 7452, 7454, 7456, - 7458, 7460, 7462, 7464, 7466, 7468, 7470, 7472, 7474, 7476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7478, 7481, 7484, 7487, 7491, 7495, 7498, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7501, 7504, 7507, 7510, 7513, 0, 0, - 0, 0, 0, 7516, 0, 7519, 7522, 7524, 7526, 7528, 7530, 7532, 7534, 7536, - 7538, 7540, 7542, 7545, 7548, 7551, 7554, 7557, 7560, 7563, 7566, 7569, - 7572, 7575, 7578, 0, 7581, 7584, 7587, 7590, 7593, 0, 7596, 0, 7599, - 7602, 0, 7605, 7608, 0, 7611, 7614, 7617, 7620, 7623, 7626, 7629, 7632, - 7635, 7638, 7641, 7643, 7645, 7647, 7649, 7651, 7653, 7655, 7657, 7659, - 7661, 7663, 7665, 7667, 7669, 7671, 7673, 7675, 7677, 7679, 7681, 7683, - 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, - 7709, 7711, 7713, 7715, 7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, - 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751, 7753, 7755, - 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, - 7781, 7783, 7785, 7787, 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, - 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823, 7825, 7827, - 7829, 7831, 7833, 7835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7837, 7839, 7841, - 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 7865, - 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7886, 7889, 7892, - 7895, 7898, 7901, 7904, 7907, 7910, 7913, 7916, 7919, 7922, 7925, 7928, - 7931, 7934, 7937, 7939, 7941, 7943, 7945, 7948, 7951, 7954, 7957, 7960, - 7963, 7966, 7969, 7972, 7975, 7978, 7981, 7984, 7987, 7990, 7993, 7996, - 7999, 8002, 8005, 8008, 8011, 8014, 8017, 8020, 8023, 8026, 8029, 8032, - 8035, 8038, 8041, 8044, 8047, 8050, 8053, 8056, 8059, 8062, 8065, 8068, - 8071, 8074, 8077, 8080, 8083, 8086, 8089, 8092, 8095, 8098, 8101, 8104, - 8107, 8110, 8113, 8116, 8119, 8122, 8125, 8128, 8131, 8134, 8137, 8140, - 8143, 8146, 8149, 8152, 8155, 8158, 8161, 8164, 8167, 8170, 8173, 8176, - 8179, 8182, 8185, 8188, 8191, 8194, 8197, 8200, 8203, 8206, 8209, 8212, - 8215, 8218, 8221, 8224, 8227, 8231, 8235, 8239, 8243, 8247, 8251, 8254, - 8257, 8260, 8263, 8266, 8269, 8272, 8275, 8278, 8281, 8284, 8287, 8290, - 8293, 8296, 8299, 8302, 8305, 8308, 8311, 8314, 8317, 8320, 8323, 8326, - 8329, 8332, 8335, 8338, 8341, 8344, 8347, 8350, 8353, 8356, 8359, 8362, - 8365, 8368, 8371, 8374, 8377, 8380, 8383, 8386, 8389, 8392, 8395, 8398, - 8401, 8404, 8407, 8410, 8413, 8416, 8419, 8422, 8425, 8428, 8431, 8434, - 8437, 8440, 8443, 8446, 8449, 8452, 8455, 8458, 8461, 8464, 8467, 8470, - 8473, 8476, 8479, 8482, 8485, 8488, 8491, 8494, 8497, 8500, 8503, 8506, - 8509, 8512, 8515, 8518, 8521, 8524, 8527, 8530, 8533, 8536, 8539, 8542, - 8545, 8548, 8551, 8554, 8557, 8560, 8563, 8566, 8569, 8572, 8575, 8578, - 8581, 8584, 8587, 8590, 8593, 8596, 8599, 8602, 8605, 8608, 8611, 8614, - 8617, 8620, 8623, 8626, 8629, 8632, 8635, 8638, 8641, 8644, 8647, 8650, - 8653, 8656, 8659, 8662, 8665, 8668, 8671, 8674, 8677, 8681, 8685, 8689, - 8692, 8695, 8698, 8701, 8704, 8707, 8710, 8713, 8716, 8719, 8722, 8725, - 8728, 8731, 8734, 8737, 8740, 8743, 8746, 8749, 8752, 8755, 8758, 8761, - 8764, 8767, 8770, 8773, 8776, 8779, 8782, 8785, 8788, 8791, 8794, 8797, - 8800, 8803, 8806, 8809, 8812, 8815, 8818, 8821, 8824, 8827, 8830, 8833, - 8836, 8839, 8842, 8845, 8848, 8851, 8854, 8857, 8860, 8863, 8866, 8869, - 8872, 8875, 8878, 8881, 8884, 8887, 8890, 8893, 8896, 8899, 8902, 8905, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8908, 8912, 8916, - 8920, 8924, 8928, 8932, 8936, 8940, 8944, 8948, 8952, 8956, 8960, 8964, - 8968, 8972, 8976, 8980, 8984, 8988, 8992, 8996, 9000, 9004, 9008, 9012, - 9016, 9020, 9024, 9028, 9032, 9036, 9040, 9044, 9048, 9052, 9056, 9060, - 9064, 9068, 9072, 9076, 9080, 9084, 9088, 9092, 9096, 9100, 9104, 9108, - 9112, 9116, 9120, 9124, 9128, 9132, 9136, 9140, 9144, 9148, 9152, 9156, - 9160, 0, 0, 9164, 9168, 9172, 9176, 9180, 9184, 9188, 9192, 9196, 9200, - 9204, 9208, 9212, 9216, 9220, 9224, 9228, 9232, 9236, 9240, 9244, 9248, - 9252, 9256, 9260, 9264, 9268, 9272, 9276, 9280, 9284, 9288, 9292, 9296, - 9300, 9304, 9308, 9312, 9316, 9320, 9324, 9328, 9332, 9336, 9340, 9344, - 9348, 9352, 9356, 9360, 9364, 9368, 9372, 9376, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9380, 9384, 9388, 9393, 9398, 9403, 9408, 9413, - 9418, 9423, 9427, 9446, 9455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9460, 9462, 9464, 9466, 9468, 9470, 9472, 9474, 9476, - 9478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9480, 9482, 9484, 9486, 9488, 9490, 9492, 9494, 9496, 9498, 9500, 9502, - 9504, 9506, 9508, 9510, 9512, 9514, 9516, 9518, 9520, 0, 0, 9522, 9524, - 9526, 9528, 9530, 9532, 9534, 9536, 9538, 9540, 9542, 9544, 0, 9546, - 9548, 9550, 9552, 9554, 9556, 9558, 9560, 9562, 9564, 9566, 9568, 9570, - 9572, 9574, 9576, 9578, 9580, 9582, 0, 9584, 9586, 9588, 9590, 0, 0, 0, - 0, 9592, 9595, 9598, 0, 9601, 0, 9604, 9607, 9610, 9613, 9616, 9619, - 9622, 9625, 9628, 9631, 9634, 9636, 9638, 9640, 9642, 9644, 9646, 9648, - 9650, 9652, 9654, 9656, 9658, 9660, 9662, 9664, 9666, 9668, 9670, 9672, - 9674, 9676, 9678, 9680, 9682, 9684, 9686, 9688, 9690, 9692, 9694, 9696, - 9698, 9700, 9702, 9704, 9706, 9708, 9710, 9712, 9714, 9716, 9718, 9720, - 9722, 9724, 9726, 9728, 9730, 9732, 9734, 9736, 9738, 9740, 9742, 9744, - 9746, 9748, 9750, 9752, 9754, 9756, 9758, 9760, 9762, 9764, 9766, 9768, - 9770, 9772, 9774, 9776, 9778, 9780, 9782, 9784, 9786, 9788, 9790, 9792, - 9794, 9796, 9798, 9800, 9802, 9804, 9806, 9808, 9810, 9812, 9814, 9816, - 9818, 9820, 9822, 9824, 9826, 9828, 9830, 9832, 9834, 9836, 9838, 9840, - 9842, 9844, 9846, 9848, 9850, 9852, 9854, 9856, 9858, 9860, 9862, 9864, - 9866, 9868, 9871, 9874, 9877, 9880, 9883, 9886, 9889, 0, 0, 0, 0, 9892, - 9894, 9896, 9898, 9900, 9902, 9904, 9906, 9908, 9910, 9912, 9914, 9916, - 9918, 9920, 9922, 9924, 9926, 9928, 9930, 9932, 9934, 9936, 9938, 9940, - 9942, 9944, 9946, 9948, 9950, 9952, 9954, 9956, 9958, 9960, 9962, 9964, - 9966, 9968, 9970, 9972, 9974, 9976, 9978, 9980, 9982, 9984, 9986, 9988, - 9990, 9992, 9994, 9996, 9998, 10000, 10002, 10004, 10006, 10008, 10010, - 10012, 10014, 10016, 10018, 10020, 10022, 10024, 10026, 10028, 10030, - 10032, 10034, 10036, 10038, 10040, 10042, 10044, 10046, 10048, 10050, - 10052, 10054, 10056, 10058, 10060, 10062, 10064, 10066, 10068, 10070, - 10072, 10074, 10076, 10078, 10080, 10082, 10084, 10086, 10088, 10090, - 10092, 10094, 10096, 10098, 10100, 10102, 10104, 10106, 10108, 10110, - 10112, 10114, 10116, 10118, 10120, 10122, 10124, 10126, 10128, 10130, - 10132, 10134, 10136, 10138, 10140, 10142, 10144, 10146, 10148, 10150, - 10152, 10154, 10156, 10158, 10160, 10162, 10164, 10166, 10168, 10170, - 10172, 10174, 10176, 10178, 10180, 10182, 10184, 10186, 10188, 10190, - 10192, 10194, 10196, 10198, 10200, 10202, 10204, 10206, 10208, 10210, - 10212, 10214, 10216, 10218, 10220, 10222, 10224, 10226, 10228, 10230, - 10232, 10234, 10236, 10238, 10240, 10242, 10244, 10246, 10248, 10250, - 10252, 10254, 10256, 10258, 10260, 10262, 10264, 10266, 10268, 10270, 0, - 0, 0, 10272, 10274, 10276, 10278, 10280, 10282, 0, 0, 10284, 10286, - 10288, 10290, 10292, 10294, 0, 0, 10296, 10298, 10300, 10302, 10304, - 10306, 0, 0, 10308, 10310, 10312, 0, 0, 0, 10314, 10316, 10318, 10320, - 10322, 10324, 10326, 0, 10328, 10330, 10332, 10334, 10336, 10338, 10340, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10342, 10345, 10348, 10351, - 10354, 10357, 10360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10363, - 10366, 10369, 10372, 10375, 10378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10381, 10383, 10385, 10387, 10389, 10391, 10393, 10395, 10397, - 10399, 10401, 10403, 10405, 10407, 10409, 10411, 10413, 10415, 10417, - 10419, 10421, 10423, 10425, 10427, 10429, 10431, 10433, 10435, 10437, - 10439, 10441, 10443, 10445, 10447, 10449, 10451, 10453, 10455, 10457, - 10459, 10461, 10463, 10465, 10467, 10469, 10471, 10473, 10475, 10477, - 10479, 10481, 10483, 10485, 10487, 10489, 10491, 10493, 10495, 10497, - 10499, 10501, 10503, 10505, 10507, 10509, 10511, 10513, 10515, 10517, - 10519, 10521, 10523, 10525, 10527, 10529, 10531, 10533, 10535, 10537, - 10539, 10541, 10543, 10545, 10547, 10549, 0, 10551, 10553, 10555, 10557, - 10559, 10561, 10563, 10565, 10567, 10569, 10571, 10573, 10575, 10577, - 10579, 10581, 10583, 10585, 10587, 10589, 10591, 10593, 10595, 10597, - 10599, 10601, 10603, 10605, 10607, 10609, 10611, 10613, 10615, 10617, - 10619, 10621, 10623, 10625, 10627, 10629, 10631, 10633, 10635, 10637, - 10639, 10641, 10643, 10645, 10647, 10649, 10651, 10653, 10655, 10657, - 10659, 10661, 10663, 10665, 10667, 10669, 10671, 10673, 10675, 10677, - 10679, 10681, 10683, 10685, 10687, 10689, 10691, 0, 10693, 10695, 0, 0, - 10697, 0, 0, 10699, 10701, 0, 0, 10703, 10705, 10707, 10709, 0, 10711, - 10713, 10715, 10717, 10719, 10721, 10723, 10725, 10727, 10729, 10731, - 10733, 0, 10735, 0, 10737, 10739, 10741, 10743, 10745, 10747, 10749, 0, - 10751, 10753, 10755, 10757, 10759, 10761, 10763, 10765, 10767, 10769, - 10771, 10773, 10775, 10777, 10779, 10781, 10783, 10785, 10787, 10789, - 10791, 10793, 10795, 10797, 10799, 10801, 10803, 10805, 10807, 10809, - 10811, 10813, 10815, 10817, 10819, 10821, 10823, 10825, 10827, 10829, - 10831, 10833, 10835, 10837, 10839, 10841, 10843, 10845, 10847, 10849, - 10851, 10853, 10855, 10857, 10859, 10861, 10863, 10865, 10867, 10869, - 10871, 10873, 10875, 10877, 10879, 0, 10881, 10883, 10885, 10887, 0, 0, - 10889, 10891, 10893, 10895, 10897, 10899, 10901, 10903, 0, 10905, 10907, - 10909, 10911, 10913, 10915, 10917, 0, 10919, 10921, 10923, 10925, 10927, - 10929, 10931, 10933, 10935, 10937, 10939, 10941, 10943, 10945, 10947, - 10949, 10951, 10953, 10955, 10957, 10959, 10961, 10963, 10965, 10967, - 10969, 10971, 10973, 0, 10975, 10977, 10979, 10981, 0, 10983, 10985, - 10987, 10989, 10991, 0, 10993, 0, 0, 0, 10995, 10997, 10999, 11001, - 11003, 11005, 11007, 0, 11009, 11011, 11013, 11015, 11017, 11019, 11021, - 11023, 11025, 11027, 11029, 11031, 11033, 11035, 11037, 11039, 11041, - 11043, 11045, 11047, 11049, 11051, 11053, 11055, 11057, 11059, 11061, - 11063, 11065, 11067, 11069, 11071, 11073, 11075, 11077, 11079, 11081, - 11083, 11085, 11087, 11089, 11091, 11093, 11095, 11097, 11099, 11101, - 11103, 11105, 11107, 11109, 11111, 11113, 11115, 11117, 11119, 11121, - 11123, 11125, 11127, 11129, 11131, 11133, 11135, 11137, 11139, 11141, - 11143, 11145, 11147, 11149, 11151, 11153, 11155, 11157, 11159, 11161, - 11163, 11165, 11167, 11169, 11171, 11173, 11175, 11177, 11179, 11181, - 11183, 11185, 11187, 11189, 11191, 11193, 11195, 11197, 11199, 11201, - 11203, 11205, 11207, 11209, 11211, 11213, 11215, 11217, 11219, 11221, - 11223, 11225, 11227, 11229, 11231, 11233, 11235, 11237, 11239, 11241, - 11243, 11245, 11247, 11249, 11251, 11253, 11255, 11257, 11259, 11261, - 11263, 11265, 11267, 11269, 11271, 11273, 11275, 11277, 11279, 11281, - 11283, 11285, 11287, 11289, 11291, 11293, 11295, 11297, 11299, 11301, - 11303, 11305, 11307, 11309, 11311, 11313, 11315, 11317, 11319, 11321, - 11323, 11325, 11327, 11329, 11331, 11333, 11335, 11337, 11339, 11341, - 11343, 11345, 11347, 11349, 11351, 11353, 11355, 11357, 11359, 11361, - 11363, 11365, 11367, 11369, 11371, 11373, 11375, 11377, 11379, 11381, - 11383, 11385, 11387, 11389, 11391, 11393, 11395, 11397, 11399, 11401, - 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, - 11423, 11425, 11427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, - 11443, 11445, 11447, 11449, 11451, 11453, 11455, 11457, 11459, 11461, - 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, - 11483, 11485, 11487, 11489, 11491, 11493, 11495, 11497, 11499, 11501, - 11503, 11505, 11507, 11509, 11511, 11513, 11515, 11517, 11519, 11521, - 11523, 11525, 11527, 11529, 11531, 11533, 11535, 11537, 11539, 11541, - 11543, 11545, 11547, 11549, 11551, 11553, 11555, 11557, 11559, 11561, - 11563, 11565, 11567, 11569, 11571, 11573, 11575, 11577, 11579, 11581, - 11583, 11585, 11587, 11589, 11591, 11593, 11595, 11597, 11599, 11601, - 11603, 11605, 11607, 11609, 11611, 11613, 11615, 11617, 11619, 11621, - 11623, 11625, 11627, 11629, 11631, 11633, 11635, 11637, 11639, 11641, - 11643, 11645, 11647, 11649, 11651, 11653, 11655, 11657, 11659, 11661, - 11663, 11665, 11667, 11669, 11671, 11673, 11675, 11677, 11679, 11681, - 11683, 11685, 11687, 0, 0, 11689, 11691, 11693, 11695, 11697, 11699, - 11701, 11703, 11705, 11707, 11709, 11711, 11713, 11715, 11717, 11719, - 11721, 11723, 11725, 11727, 11729, 11731, 11733, 11735, 11737, 11739, - 11741, 11743, 11745, 11747, 11749, 11751, 11753, 11755, 11757, 11759, - 11761, 11763, 11765, 11767, 11769, 11771, 11773, 11775, 11777, 11779, - 11781, 11783, 11785, 11787, 11789, 11791, 11793, 11795, 11797, 11799, - 11801, 11803, 11805, 11807, 11809, 11811, 11813, 11815, 11817, 11819, - 11821, 11823, 11825, 11827, 11829, 11831, 11833, 11835, 11837, 11839, - 11841, 11843, 11845, 11847, 11849, 11851, 11853, 11855, 11857, 11859, - 11861, 11863, 11865, 11867, 11869, 11871, 11873, 11875, 11877, 11879, - 11881, 11883, 11885, 11887, 11889, 11891, 11893, 11895, 11897, 11899, - 11901, 11903, 11905, 11907, 11909, 11911, 11913, 11915, 11917, 11919, - 11921, 11923, 11925, 11927, 11929, 11931, 11933, 11935, 11937, 11939, - 11941, 11943, 11945, 11947, 11949, 11951, 11953, 11955, 11957, 11959, - 11961, 11963, 11965, 11967, 11969, 11971, 11973, 11975, 11977, 11979, - 11981, 11983, 11985, 11987, 11989, 11991, 11993, 11995, 11997, 11999, - 12001, 12003, 12005, 12007, 12009, 12011, 12013, 12015, 12017, 12019, - 12021, 12023, 12025, 12027, 12029, 12031, 12033, 12035, 12037, 12039, - 12041, 12043, 12045, 12047, 12049, 12051, 12053, 12055, 12057, 12059, - 12061, 12063, 12065, 12067, 12069, 12071, 12073, 12075, 12077, 12079, - 12081, 12083, 12085, 12087, 12089, 12091, 12093, 12095, 12097, 12099, - 12101, 12103, 12105, 12107, 12109, 12111, 12113, 12115, 12117, 12119, - 12121, 12123, 12125, 12127, 12129, 12131, 12133, 12135, 12137, 12139, - 12141, 12143, 12145, 12147, 12149, 12151, 12153, 12155, 12157, 12159, - 12161, 12163, 12165, 12167, 12169, 12171, 12173, 12175, 12177, 12179, - 12181, 12183, 12185, 12187, 12189, 12191, 12193, 12195, 12197, 12199, - 12201, 12203, 12205, 12207, 12209, 12211, 12213, 12215, 12217, 12219, - 12221, 12223, 12225, 12227, 12229, 12231, 12233, 12235, 12237, 12239, - 12241, 12243, 12245, 12247, 12249, 12251, 12253, 12255, 12257, 12259, - 12261, 12263, 12265, 12267, 0, 0, 0, 0, 12269, 12271, 12273, 12275, - 12277, 12279, 12281, 12283, 12285, 12287, 12289, 12291, 12293, 12295, - 12297, 12299, 12301, 12303, 12305, 12307, 12309, 12311, 12313, 12315, - 12317, 12319, 12321, 12323, 12325, 12327, 12329, 12331, 12333, 12335, - 12337, 12339, 12341, 12343, 12345, 12347, 12349, 12351, 12353, 12355, - 12357, 12359, 12361, 12363, 12365, 12367, 12369, 12371, 12373, 12375, - 12377, 12379, 12381, 12383, 12385, 12387, 12389, 12391, 12393, 12395, - 12397, 12399, 12401, 12403, 12405, 12407, 12409, 12411, 12413, 12415, - 12417, 12419, 12421, 12423, 12425, 12427, 12429, 12431, 12433, 12435, - 12437, 12439, 12441, 12443, 12445, 12447, 12449, 12451, 12453, 12455, - 12457, 12459, 12461, 12463, 12465, 12467, 12469, 12471, 12473, 12475, - 12477, 12479, 12481, 12483, 12485, 12487, 12489, 12491, 12493, 12495, - 12497, 12499, 12501, 12503, 12505, 12507, 12509, 12511, 12513, 12515, - 12517, 12519, 12521, 12523, 12525, 12527, 12529, 12531, 12533, 12535, - 12537, 12539, 12541, 12543, 12545, 12547, 12549, 12551, 12553, 12555, - 12557, 12559, 12561, 12563, 12565, 12567, 12569, 12571, 12573, 12575, - 12577, 12579, 12581, 12583, 12585, 12587, 12589, 12591, 12593, 12595, - 12597, 12599, 12601, 12603, 12605, 12607, 12609, 12611, 12613, 12615, - 12617, 12619, 12621, 12623, 12625, 12627, 12629, 12631, 12633, 12635, - 12637, 12639, 12641, 12643, 12645, 12647, 12649, 12651, 12653, 12655, - 12657, 12659, 12661, 12663, 12665, 12667, 12669, 12671, 12673, 12675, - 12677, 12679, 12681, 12683, 12685, 12687, 12689, 12691, 12693, 12695, - 12697, 12699, 12701, 12703, 12705, 12707, 12709, 12711, 12713, 12715, - 12717, 12719, 12721, 12723, 12725, 12727, 12729, 12731, 12733, 12735, - 12737, 12739, 12741, 12743, 12745, 12747, 12749, 12751, 12753, 12755, - 12757, 12759, 12761, 12763, 12765, 12767, 12769, 12771, 12773, 12775, - 12777, 12779, 12781, 12783, 12785, 12787, 12789, 12791, 12793, 12795, - 12797, 12799, 12801, 12803, 12805, 12807, 12809, 12811, 12813, 12815, - 12817, 12819, 12821, 12823, 12825, 12827, 12829, 12831, 12833, 12835, - 12837, 12839, 12841, 12843, 12845, 12847, 12849, 12851, 12853, 12855, - 12857, 12859, 12861, 12863, 12865, 12867, 12869, 12871, 12873, 12875, - 12877, 12879, 12881, 12883, 12885, 12887, 12889, 12891, 12893, 12895, - 12897, 12899, 12901, 12903, 12905, 12907, 12909, 12911, 12913, 12915, - 12917, 12919, 12921, 12923, 12925, 12927, 12929, 12931, 12933, 12935, - 12937, 12939, 12941, 12943, 12945, 12947, 12949, 12951, 12953, 12955, - 12957, 12959, 12961, 12963, 12965, 12967, 12969, 12971, 12973, 12975, - 12977, 12979, 12981, 12983, 12985, 12987, 12989, 12991, 12993, 12995, - 12997, 12999, 13001, 13003, 13005, 13007, 13009, 13011, 13013, 13015, - 13017, 13019, 13021, 13023, 13025, 13027, 13029, 13031, 13033, 13035, - 13037, 13039, 13041, 13043, 13045, 13047, 13049, 13051, 13053, 13055, - 13057, 13059, 13061, 13063, 13065, 13067, 13069, 13071, 13073, 13075, - 13077, 13079, 13081, 13083, 13085, 13087, 13089, 13091, 13093, 13095, - 13097, 13099, 13101, 13103, 13105, 13107, 13109, 13111, 13113, 13115, - 13117, 13119, 13121, 13123, 13125, 13127, 13129, 13131, 13133, 13135, - 13137, 13139, 13141, 13143, 13145, 13147, 13149, 13151, 13153, 13155, - 13157, 13159, 13161, 13163, 13165, 13167, 13169, 13171, 13173, 13175, - 13177, 13179, 13181, 13183, 13185, 13187, 13189, 13191, 13193, 13195, - 13197, 13199, 13201, 13203, 13205, 13207, 13209, 13211, 13213, 13215, - 13217, 13219, 13221, 13223, 13225, 13227, 13229, 13231, 13233, 13235, - 13237, 13239, 13241, 13243, 13245, 13247, 13249, 13251, 13253, 13255, - 13257, 13259, 13261, 13263, 13265, 13267, 13269, 13271, 13273, 13275, - 13277, 13279, 13281, 13283, 13285, 13287, 13289, 13291, 13293, 13295, - 13297, 13299, 13301, 13303, 13305, 13307, 13309, 13311, 13313, 13315, - 13317, 13319, 13321, 13323, 13325, 13327, 13329, 13331, 13333, 13335, - 13337, 13339, 13341, 13343, 13345, 13347, 13349, 13351, 13353, 13355, - 13357, 13359, 13361, 13363, 13365, 13367, 13369, 13371, 13373, 13375, - 13377, 13379, 13381, 13383, 13385, 13387, 13389, 13391, 13393, 13395, - 13397, 13399, 13401, 13403, 13405, 13407, 13409, 13411, 13413, 13415, - 13417, 13419, 13421, 13423, 13425, 13427, 13429, 13431, 13433, 13435, - 13437, 13439, 13441, 13443, 13445, 13447, 13449, 13451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4072, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4074, 4076, 4078, 4080, 4082, 4084, 4086, 4088, + 4090, 4092, 4094, 4096, 4098, 4100, 4102, 4104, 4106, 4108, 4110, 4112, + 4114, 4116, 4118, 4120, 4122, 4124, 4126, 4128, 4130, 4132, 4134, 4136, + 4138, 4140, 4142, 4144, 4146, 4148, 4150, 4152, 4154, 4156, 4158, 4160, + 4162, 4164, 4166, 4168, 4170, 4172, 4174, 4176, 4178, 4180, 4182, 4184, + 4186, 4188, 4190, 4192, 4194, 4196, 4198, 4200, 4202, 4204, 4206, 4208, + 4210, 4212, 4214, 4216, 4218, 4220, 4222, 4224, 4226, 4228, 4230, 4232, + 4234, 4236, 4238, 4240, 4242, 4244, 4246, 4248, 4250, 4252, 4254, 4256, + 4258, 4260, 4262, 4264, 4266, 4268, 4270, 4272, 4274, 4276, 4278, 4280, + 4282, 4284, 4286, 4288, 4290, 4292, 4294, 4296, 4298, 4300, 4302, 4304, + 4306, 4308, 4310, 4312, 4314, 4316, 4318, 4320, 4322, 4324, 4326, 4328, + 4330, 4332, 4334, 4336, 4338, 4340, 4342, 4344, 4346, 4348, 4350, 4352, + 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, 4370, 4372, 4374, 4376, + 4378, 4380, 4382, 4384, 4386, 4388, 4390, 4392, 4394, 4396, 4398, 4400, + 4402, 4404, 4406, 4408, 4410, 4412, 4414, 4416, 4418, 4420, 4422, 4424, + 4426, 4428, 4430, 4432, 4434, 4436, 4438, 4440, 4442, 4444, 4446, 4448, + 4450, 4452, 4454, 4456, 4458, 4460, 4462, 4464, 4466, 4468, 4470, 4472, + 4474, 4476, 4478, 4480, 4482, 4484, 4486, 4488, 4490, 4492, 4494, 4496, + 4498, 4500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4502, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4504, 0, 4506, 4508, 4510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4512, 0, 4515, 0, 4518, 0, 4521, 0, 4524, 0, 4527, + 0, 4530, 0, 4533, 0, 4536, 0, 4539, 0, 4542, 0, 4545, 0, 0, 4548, 0, + 4551, 0, 4554, 0, 0, 0, 0, 0, 0, 4557, 4560, 0, 4563, 4566, 0, 4569, + 4572, 0, 4575, 4578, 0, 4581, 4584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4587, 0, 0, 0, 0, 0, 0, 4590, 4593, 0, + 4596, 4599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4602, 0, 4605, 0, 4608, + 0, 4611, 0, 4614, 0, 4617, 0, 4620, 0, 4623, 0, 4626, 0, 4629, 0, 4632, + 0, 4635, 0, 0, 4638, 0, 4641, 0, 4644, 0, 0, 0, 0, 0, 0, 4647, 4650, 0, + 4653, 4656, 0, 4659, 4662, 0, 4665, 4668, 0, 4671, 4674, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4677, 0, 0, 4680, + 4683, 4686, 4689, 0, 0, 0, 4692, 4695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4698, 4700, 4702, 4704, 4706, + 4708, 4710, 4712, 4714, 4716, 4718, 4720, 4722, 4724, 4726, 4728, 4730, + 4732, 4734, 4736, 4738, 4740, 4742, 4744, 4746, 4748, 4750, 4752, 4754, + 4756, 4758, 4760, 4762, 4764, 4766, 4768, 4770, 4772, 4774, 4776, 4778, + 4780, 4782, 4784, 4786, 4788, 4790, 4792, 4794, 4796, 4798, 4800, 4802, + 4804, 4806, 4808, 4810, 4812, 4814, 4816, 4818, 4820, 4822, 4824, 4826, + 4828, 4830, 4832, 4834, 4836, 4838, 4840, 4842, 4844, 4846, 4848, 4850, + 4852, 4854, 4856, 4858, 4860, 4862, 4864, 4866, 4868, 4870, 4872, 4874, + 4876, 4878, 4880, 4882, 4884, 0, 0, 0, 4886, 4888, 4890, 4892, 4894, + 4896, 4898, 4900, 4902, 4904, 4906, 4908, 4910, 4912, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4914, 4918, 4922, + 4926, 4930, 4934, 4938, 4942, 4946, 4950, 4954, 4958, 4962, 4966, 4970, + 4975, 4980, 4985, 4990, 4995, 5000, 5005, 5010, 5015, 5020, 5025, 5030, + 5035, 5040, 5045, 5053, 0, 5060, 5064, 5068, 5072, 5076, 5080, 5084, + 5088, 5092, 5096, 5100, 5104, 5108, 5112, 5116, 5120, 5124, 5128, 5132, + 5136, 5140, 5144, 5148, 5152, 5156, 5160, 5164, 5168, 5172, 5176, 5180, + 5184, 5188, 5192, 5196, 5200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5204, + 5208, 5211, 5214, 5217, 5220, 5223, 5226, 5229, 5232, 5235, 5238, 5241, + 5244, 5247, 5250, 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, 5269, + 5271, 5273, 5275, 5277, 5279, 5281, 5284, 5287, 5290, 5293, 5296, 5299, + 5302, 5305, 5308, 5311, 5314, 5317, 5320, 5323, 5329, 5334, 0, 5337, + 5339, 5341, 5343, 5345, 5347, 5349, 5351, 5353, 5355, 5357, 5359, 5361, + 5363, 5365, 5367, 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, 5385, + 5387, 5389, 5391, 5393, 5395, 5397, 5399, 5401, 5403, 5405, 5407, 5409, + 5411, 5413, 5415, 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, 5433, + 5435, 5438, 5441, 5444, 5447, 5450, 5453, 5456, 5459, 5462, 5465, 5468, + 5471, 5474, 5477, 5480, 5483, 5486, 5489, 5492, 5495, 5498, 5501, 5504, + 5507, 5511, 5515, 5519, 5522, 5526, 5529, 5533, 5535, 5537, 5539, 5541, + 5543, 5545, 5547, 5549, 5551, 5553, 5555, 5557, 5559, 5561, 5563, 5565, + 5567, 5569, 5571, 5573, 5575, 5577, 5579, 5581, 5583, 5585, 5587, 5589, + 5591, 5593, 5595, 5597, 5599, 5601, 5603, 5605, 5607, 5609, 5611, 5613, + 5615, 5617, 5619, 5621, 5623, 5625, 0, 5627, 5632, 5637, 5642, 5646, + 5651, 5655, 5659, 5665, 5670, 5674, 5678, 5682, 5687, 5692, 5696, 5700, + 5703, 5707, 5712, 5717, 5720, 5726, 5733, 5739, 5743, 5749, 5755, 5760, + 5764, 5768, 5772, 5777, 5783, 5788, 5792, 5796, 5800, 5803, 5806, 5809, + 5812, 5816, 5820, 5826, 5830, 5835, 5841, 5845, 5848, 5851, 5857, 5862, + 5868, 5872, 5878, 5881, 5885, 5889, 5893, 5897, 5901, 5906, 5910, 5913, + 5917, 5921, 5925, 5930, 5934, 5938, 5942, 5948, 5953, 5956, 5962, 5965, + 5970, 5975, 5979, 5983, 5987, 5992, 5995, 5999, 6004, 6007, 6013, 6017, + 6020, 6023, 6026, 6029, 6032, 6035, 6038, 6041, 6044, 6047, 6051, 6055, + 6059, 6063, 6067, 6071, 6075, 6079, 6083, 6087, 6091, 6095, 6099, 6103, + 6107, 6111, 6114, 6117, 6121, 6124, 6127, 6130, 6134, 6138, 6141, 6144, + 6147, 6150, 6153, 6158, 6161, 6164, 6167, 6170, 6173, 6176, 6179, 6182, + 6186, 6191, 6194, 6197, 6200, 6203, 6206, 6209, 6212, 6216, 6220, 6224, + 6228, 6231, 6234, 6237, 6240, 6243, 6246, 6249, 6252, 6255, 6258, 6262, + 6266, 6269, 6273, 6277, 6281, 6284, 6288, 6292, 6297, 6300, 6304, 6308, + 6312, 6316, 6322, 6329, 6332, 6335, 6338, 6341, 6344, 6347, 6350, 6353, + 6356, 6359, 6362, 6365, 6368, 6371, 6374, 6377, 6380, 6383, 6388, 6391, + 6394, 6397, 6402, 6406, 6409, 6412, 6415, 6418, 6421, 6424, 6427, 6430, + 6433, 6436, 6440, 6443, 6446, 6450, 6454, 6457, 6462, 6466, 6469, 6472, + 6475, 6478, 6482, 6486, 6489, 6492, 6495, 6498, 6501, 6504, 6507, 6510, + 6513, 6517, 6521, 6525, 6529, 6533, 6537, 6541, 6545, 6549, 6553, 6557, + 6561, 6565, 6569, 6573, 6577, 6581, 6585, 6589, 6593, 6597, 6601, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6605, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6607, 6609, 6611, 6613, + 6615, 6617, 6619, 6621, 6623, 6625, 6627, 6629, 6631, 6633, 6635, 6637, + 6639, 6641, 6643, 6645, 6647, 6649, 6651, 6653, 6655, 6657, 6659, 6661, + 6663, 6665, 6667, 6669, 6671, 6673, 6675, 6677, 6679, 6681, 6683, 6685, + 6687, 6689, 6691, 6693, 6695, 6697, 6699, 6701, 6703, 6705, 6707, 6709, + 6711, 6713, 6715, 6717, 6719, 6721, 6723, 6725, 6727, 6729, 6731, 6733, + 6735, 6737, 6739, 6741, 6743, 6745, 6747, 6749, 6751, 6753, 6755, 6757, + 6759, 6761, 6763, 6765, 6767, 6769, 6771, 6773, 6775, 6777, 6779, 6781, + 6783, 6785, 6787, 6789, 6791, 6793, 6795, 6797, 6799, 6801, 6803, 6805, + 6807, 6809, 6811, 6813, 6815, 6817, 6819, 6821, 6823, 6825, 6827, 6829, + 6831, 6833, 6835, 6837, 6839, 6841, 6843, 6845, 6847, 6849, 6851, 6853, + 6855, 6857, 6859, 6861, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, + 6879, 6881, 6883, 6885, 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, + 6903, 6905, 6907, 6909, 6911, 6913, 6915, 6917, 6919, 6921, 6923, 6925, + 6927, 6929, 6931, 6933, 6935, 6937, 6939, 6941, 6943, 6945, 6947, 6949, + 6951, 6953, 6955, 6957, 6959, 6961, 6963, 6965, 6967, 6969, 6971, 6973, + 6975, 6977, 6979, 6981, 6983, 6985, 6987, 6989, 6991, 6993, 6995, 6997, + 6999, 7001, 7003, 7005, 7007, 7009, 7011, 7013, 7015, 7017, 7019, 7021, + 7023, 7025, 7027, 7029, 7031, 7033, 7035, 7037, 7039, 7041, 7043, 7045, + 7047, 7049, 7051, 7053, 7055, 7057, 7059, 7061, 7063, 7065, 7067, 7069, + 7071, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7091, 7093, + 7095, 7097, 7099, 7101, 7103, 7105, 7107, 7109, 7111, 7113, 7115, 7117, + 7119, 7121, 7123, 7125, 7127, 7129, 7131, 7133, 7135, 7137, 7139, 7141, + 7143, 7145, 0, 0, 7147, 0, 7149, 0, 0, 7151, 7153, 7155, 7157, 7159, + 7161, 7163, 7165, 7167, 7169, 0, 7171, 0, 7173, 0, 0, 7175, 7177, 0, 0, + 0, 7179, 7181, 7183, 7185, 0, 0, 7187, 7189, 7191, 7193, 7195, 7197, + 7199, 7201, 7203, 7205, 7207, 7209, 7211, 7213, 7215, 7217, 7219, 7221, + 7223, 7225, 7227, 7229, 7231, 7233, 7235, 7237, 7239, 7241, 7243, 7245, + 7247, 7249, 7251, 7253, 7255, 7257, 7259, 7261, 7263, 7265, 7267, 7269, + 7271, 7273, 7275, 7277, 7279, 7281, 7283, 7285, 7287, 7289, 7291, 7293, + 7295, 7297, 7299, 7301, 7303, 0, 0, 0, 0, 0, 7305, 7307, 7309, 7311, + 7313, 7315, 7317, 7319, 7321, 7323, 7325, 7327, 7329, 7331, 7333, 7335, + 7337, 7339, 7341, 7343, 7345, 7347, 7349, 7351, 7353, 7355, 7357, 7359, + 7361, 7363, 7365, 7367, 7369, 7371, 7373, 7375, 7377, 7379, 7381, 7383, + 7385, 7387, 7389, 7391, 7393, 7395, 7397, 7399, 7401, 7403, 7405, 7407, + 7409, 7411, 7413, 7415, 7417, 7419, 7421, 7423, 7425, 7427, 7429, 7431, + 7433, 7435, 7437, 7439, 7441, 7443, 7445, 7447, 7449, 7451, 7453, 7455, + 7457, 7459, 7461, 7463, 7465, 7467, 7469, 7471, 7473, 7475, 7477, 7479, + 7481, 7483, 7485, 7487, 7489, 7491, 7493, 7495, 7497, 7499, 7501, 7503, + 7505, 7507, 7509, 7511, 7513, 7515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7517, 7520, 7523, 7526, 7530, 7534, 7537, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7540, 7543, 7546, 7549, 7552, 0, 0, 0, 0, 0, 7555, 0, 7558, + 7561, 7563, 7565, 7567, 7569, 7571, 7573, 7575, 7577, 7579, 7581, 7584, + 7587, 7590, 7593, 7596, 7599, 7602, 7605, 7608, 7611, 7614, 7617, 0, + 7620, 7623, 7626, 7629, 7632, 0, 7635, 0, 7638, 7641, 0, 7644, 7647, 0, + 7650, 7653, 7656, 7659, 7662, 7665, 7668, 7671, 7674, 7677, 7680, 7682, + 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, + 7708, 7710, 7712, 7714, 7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, + 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, 7752, 7754, + 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, + 7780, 7782, 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, + 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822, 7824, 7826, + 7828, 7830, 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, 7848, 7850, + 7852, 7854, 7856, 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7876, 7878, 7880, 7882, 7884, 7886, 7888, + 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, + 7914, 7916, 7918, 7920, 7922, 7925, 7928, 7931, 7934, 7937, 7940, 7943, + 7946, 7949, 7952, 7955, 7958, 7961, 7964, 7967, 7970, 7973, 7976, 7978, + 7980, 7982, 7984, 7987, 7990, 7993, 7996, 7999, 8002, 8005, 8008, 8011, + 8014, 8017, 8020, 8023, 8026, 8029, 8032, 8035, 8038, 8041, 8044, 8047, + 8050, 8053, 8056, 8059, 8062, 8065, 8068, 8071, 8074, 8077, 8080, 8083, + 8086, 8089, 8092, 8095, 8098, 8101, 8104, 8107, 8110, 8113, 8116, 8119, + 8122, 8125, 8128, 8131, 8134, 8137, 8140, 8143, 8146, 8149, 8152, 8155, + 8158, 8161, 8164, 8167, 8170, 8173, 8176, 8179, 8182, 8185, 8188, 8191, + 8194, 8197, 8200, 8203, 8206, 8209, 8212, 8215, 8218, 8221, 8224, 8227, + 8230, 8233, 8236, 8239, 8242, 8245, 8248, 8251, 8254, 8257, 8260, 8263, + 8266, 8270, 8274, 8278, 8282, 8286, 8290, 8293, 8296, 8299, 8302, 8305, + 8308, 8311, 8314, 8317, 8320, 8323, 8326, 8329, 8332, 8335, 8338, 8341, + 8344, 8347, 8350, 8353, 8356, 8359, 8362, 8365, 8368, 8371, 8374, 8377, + 8380, 8383, 8386, 8389, 8392, 8395, 8398, 8401, 8404, 8407, 8410, 8413, + 8416, 8419, 8422, 8425, 8428, 8431, 8434, 8437, 8440, 8443, 8446, 8449, + 8452, 8455, 8458, 8461, 8464, 8467, 8470, 8473, 8476, 8479, 8482, 8485, + 8488, 8491, 8494, 8497, 8500, 8503, 8506, 8509, 8512, 8515, 8518, 8521, + 8524, 8527, 8530, 8533, 8536, 8539, 8542, 8545, 8548, 8551, 8554, 8557, + 8560, 8563, 8566, 8569, 8572, 8575, 8578, 8581, 8584, 8587, 8590, 8593, + 8596, 8599, 8602, 8605, 8608, 8611, 8614, 8617, 8620, 8623, 8626, 8629, + 8632, 8635, 8638, 8641, 8644, 8647, 8650, 8653, 8656, 8659, 8662, 8665, + 8668, 8671, 8674, 8677, 8680, 8683, 8686, 8689, 8692, 8695, 8698, 8701, + 8704, 8707, 8710, 8713, 8716, 8720, 8724, 8728, 8731, 8734, 8737, 8740, + 8743, 8746, 8749, 8752, 8755, 8758, 8761, 8764, 8767, 8770, 8773, 8776, + 8779, 8782, 8785, 8788, 8791, 8794, 8797, 8800, 8803, 8806, 8809, 8812, + 8815, 8818, 8821, 8824, 8827, 8830, 8833, 8836, 8839, 8842, 8845, 8848, + 8851, 8854, 8857, 8860, 8863, 8866, 8869, 8872, 8875, 8878, 8881, 8884, + 8887, 8890, 8893, 8896, 8899, 8902, 8905, 8908, 8911, 8914, 8917, 8920, + 8923, 8926, 8929, 8932, 8935, 8938, 8941, 8944, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8947, 8951, 8955, 8959, 8963, 8967, 8971, + 8975, 8979, 8983, 8987, 8991, 8995, 8999, 9003, 9007, 9011, 9015, 9019, + 9023, 9027, 9031, 9035, 9039, 9043, 9047, 9051, 9055, 9059, 9063, 9067, + 9071, 9075, 9079, 9083, 9087, 9091, 9095, 9099, 9103, 9107, 9111, 9115, + 9119, 9123, 9127, 9131, 9135, 9139, 9143, 9147, 9151, 9155, 9159, 9163, + 9167, 9171, 9175, 9179, 9183, 9187, 9191, 9195, 9199, 0, 0, 9203, 9207, + 9211, 9215, 9219, 9223, 9227, 9231, 9235, 9239, 9243, 9247, 9251, 9255, + 9259, 9263, 9267, 9271, 9275, 9279, 9283, 9287, 9291, 9295, 9299, 9303, + 9307, 9311, 9315, 9319, 9323, 9327, 9331, 9335, 9339, 9343, 9347, 9351, + 9355, 9359, 9363, 9367, 9371, 9375, 9379, 9383, 9387, 9391, 9395, 9399, + 9403, 9407, 9411, 9415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9419, 9423, 9427, 9432, 9437, 9442, 9447, 9452, 9457, 9462, 9466, 9485, + 9494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9499, + 9501, 9503, 9505, 9507, 9509, 9511, 9513, 9515, 9517, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9519, 9521, 9523, 9525, + 9527, 9529, 9531, 9533, 9535, 9537, 9539, 9541, 9543, 9545, 9547, 9549, + 9551, 9553, 9555, 9557, 9559, 0, 0, 9561, 9563, 9565, 9567, 9569, 9571, + 9573, 9575, 9577, 9579, 9581, 9583, 0, 9585, 9587, 9589, 9591, 9593, + 9595, 9597, 9599, 9601, 9603, 9605, 9607, 9609, 9611, 9613, 9615, 9617, + 9619, 9621, 0, 9623, 9625, 9627, 9629, 0, 0, 0, 0, 9631, 9634, 9637, 0, + 9640, 0, 9643, 9646, 9649, 9652, 9655, 9658, 9661, 9664, 9667, 9670, + 9673, 9675, 9677, 9679, 9681, 9683, 9685, 9687, 9689, 9691, 9693, 9695, + 9697, 9699, 9701, 9703, 9705, 9707, 9709, 9711, 9713, 9715, 9717, 9719, + 9721, 9723, 9725, 9727, 9729, 9731, 9733, 9735, 9737, 9739, 9741, 9743, + 9745, 9747, 9749, 9751, 9753, 9755, 9757, 9759, 9761, 9763, 9765, 9767, + 9769, 9771, 9773, 9775, 9777, 9779, 9781, 9783, 9785, 9787, 9789, 9791, + 9793, 9795, 9797, 9799, 9801, 9803, 9805, 9807, 9809, 9811, 9813, 9815, + 9817, 9819, 9821, 9823, 9825, 9827, 9829, 9831, 9833, 9835, 9837, 9839, + 9841, 9843, 9845, 9847, 9849, 9851, 9853, 9855, 9857, 9859, 9861, 9863, + 9865, 9867, 9869, 9871, 9873, 9875, 9877, 9879, 9881, 9883, 9885, 9887, + 9889, 9891, 9893, 9895, 9897, 9899, 9901, 9903, 9905, 9907, 9910, 9913, + 9916, 9919, 9922, 9925, 9928, 0, 0, 0, 0, 9931, 9933, 9935, 9937, 9939, + 9941, 9943, 9945, 9947, 9949, 9951, 9953, 9955, 9957, 9959, 9961, 9963, + 9965, 9967, 9969, 9971, 9973, 9975, 9977, 9979, 9981, 9983, 9985, 9987, + 9989, 9991, 9993, 9995, 9997, 9999, 10001, 10003, 10005, 10007, 10009, + 10011, 10013, 10015, 10017, 10019, 10021, 10023, 10025, 10027, 10029, + 10031, 10033, 10035, 10037, 10039, 10041, 10043, 10045, 10047, 10049, + 10051, 10053, 10055, 10057, 10059, 10061, 10063, 10065, 10067, 10069, + 10071, 10073, 10075, 10077, 10079, 10081, 10083, 10085, 10087, 10089, + 10091, 10093, 10095, 10097, 10099, 10101, 10103, 10105, 10107, 10109, + 10111, 10113, 10115, 10117, 10119, 10121, 10123, 10125, 10127, 10129, + 10131, 10133, 10135, 10137, 10139, 10141, 10143, 10145, 10147, 10149, + 10151, 10153, 10155, 10157, 10159, 10161, 10163, 10165, 10167, 10169, + 10171, 10173, 10175, 10177, 10179, 10181, 10183, 10185, 10187, 10189, + 10191, 10193, 10195, 10197, 10199, 10201, 10203, 10205, 10207, 10209, + 10211, 10213, 10215, 10217, 10219, 10221, 10223, 10225, 10227, 10229, + 10231, 10233, 10235, 10237, 10239, 10241, 10243, 10245, 10247, 10249, + 10251, 10253, 10255, 10257, 10259, 10261, 10263, 10265, 10267, 10269, + 10271, 10273, 10275, 10277, 10279, 10281, 10283, 10285, 10287, 10289, + 10291, 10293, 10295, 10297, 10299, 10301, 10303, 10305, 10307, 10309, 0, + 0, 0, 10311, 10313, 10315, 10317, 10319, 10321, 0, 0, 10323, 10325, + 10327, 10329, 10331, 10333, 0, 0, 10335, 10337, 10339, 10341, 10343, + 10345, 0, 0, 10347, 10349, 10351, 0, 0, 0, 10353, 10355, 10357, 10359, + 10361, 10363, 10365, 0, 10367, 10369, 10371, 10373, 10375, 10377, 10379, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10381, 10384, 10387, 10390, + 10393, 10396, 10399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10402, + 10405, 10408, 10411, 10414, 10417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10420, 10422, 10424, 10426, 10428, 10430, 10432, 10434, 10436, + 10438, 10440, 10442, 10444, 10446, 10448, 10450, 10452, 10454, 10456, + 10458, 10460, 10462, 10464, 10466, 10468, 10470, 10472, 10474, 10476, + 10478, 10480, 10482, 10484, 10486, 10488, 10490, 10492, 10494, 10496, + 10498, 10500, 10502, 10504, 10506, 10508, 10510, 10512, 10514, 10516, + 10518, 10520, 10522, 10524, 10526, 10528, 10530, 10532, 10534, 10536, + 10538, 10540, 10542, 10544, 10546, 10548, 10550, 10552, 10554, 10556, + 10558, 10560, 10562, 10564, 10566, 10568, 10570, 10572, 10574, 10576, + 10578, 10580, 10582, 10584, 10586, 10588, 0, 10590, 10592, 10594, 10596, + 10598, 10600, 10602, 10604, 10606, 10608, 10610, 10612, 10614, 10616, + 10618, 10620, 10622, 10624, 10626, 10628, 10630, 10632, 10634, 10636, + 10638, 10640, 10642, 10644, 10646, 10648, 10650, 10652, 10654, 10656, + 10658, 10660, 10662, 10664, 10666, 10668, 10670, 10672, 10674, 10676, + 10678, 10680, 10682, 10684, 10686, 10688, 10690, 10692, 10694, 10696, + 10698, 10700, 10702, 10704, 10706, 10708, 10710, 10712, 10714, 10716, + 10718, 10720, 10722, 10724, 10726, 10728, 10730, 0, 10732, 10734, 0, 0, + 10736, 0, 0, 10738, 10740, 0, 0, 10742, 10744, 10746, 10748, 0, 10750, + 10752, 10754, 10756, 10758, 10760, 10762, 10764, 10766, 10768, 10770, + 10772, 0, 10774, 0, 10776, 10778, 10780, 10782, 10784, 10786, 10788, 0, + 10790, 10792, 10794, 10796, 10798, 10800, 10802, 10804, 10806, 10808, + 10810, 10812, 10814, 10816, 10818, 10820, 10822, 10824, 10826, 10828, + 10830, 10832, 10834, 10836, 10838, 10840, 10842, 10844, 10846, 10848, + 10850, 10852, 10854, 10856, 10858, 10860, 10862, 10864, 10866, 10868, + 10870, 10872, 10874, 10876, 10878, 10880, 10882, 10884, 10886, 10888, + 10890, 10892, 10894, 10896, 10898, 10900, 10902, 10904, 10906, 10908, + 10910, 10912, 10914, 10916, 10918, 0, 10920, 10922, 10924, 10926, 0, 0, + 10928, 10930, 10932, 10934, 10936, 10938, 10940, 10942, 0, 10944, 10946, + 10948, 10950, 10952, 10954, 10956, 0, 10958, 10960, 10962, 10964, 10966, + 10968, 10970, 10972, 10974, 10976, 10978, 10980, 10982, 10984, 10986, + 10988, 10990, 10992, 10994, 10996, 10998, 11000, 11002, 11004, 11006, + 11008, 11010, 11012, 0, 11014, 11016, 11018, 11020, 0, 11022, 11024, + 11026, 11028, 11030, 0, 11032, 0, 0, 0, 11034, 11036, 11038, 11040, + 11042, 11044, 11046, 0, 11048, 11050, 11052, 11054, 11056, 11058, 11060, + 11062, 11064, 11066, 11068, 11070, 11072, 11074, 11076, 11078, 11080, + 11082, 11084, 11086, 11088, 11090, 11092, 11094, 11096, 11098, 11100, + 11102, 11104, 11106, 11108, 11110, 11112, 11114, 11116, 11118, 11120, + 11122, 11124, 11126, 11128, 11130, 11132, 11134, 11136, 11138, 11140, + 11142, 11144, 11146, 11148, 11150, 11152, 11154, 11156, 11158, 11160, + 11162, 11164, 11166, 11168, 11170, 11172, 11174, 11176, 11178, 11180, + 11182, 11184, 11186, 11188, 11190, 11192, 11194, 11196, 11198, 11200, + 11202, 11204, 11206, 11208, 11210, 11212, 11214, 11216, 11218, 11220, + 11222, 11224, 11226, 11228, 11230, 11232, 11234, 11236, 11238, 11240, + 11242, 11244, 11246, 11248, 11250, 11252, 11254, 11256, 11258, 11260, + 11262, 11264, 11266, 11268, 11270, 11272, 11274, 11276, 11278, 11280, + 11282, 11284, 11286, 11288, 11290, 11292, 11294, 11296, 11298, 11300, + 11302, 11304, 11306, 11308, 11310, 11312, 11314, 11316, 11318, 11320, + 11322, 11324, 11326, 11328, 11330, 11332, 11334, 11336, 11338, 11340, + 11342, 11344, 11346, 11348, 11350, 11352, 11354, 11356, 11358, 11360, + 11362, 11364, 11366, 11368, 11370, 11372, 11374, 11376, 11378, 11380, + 11382, 11384, 11386, 11388, 11390, 11392, 11394, 11396, 11398, 11400, + 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420, + 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, + 11442, 11444, 11446, 11448, 11450, 11452, 11454, 11456, 11458, 11460, + 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480, + 11482, 11484, 11486, 11488, 11490, 11492, 11494, 11496, 11498, 11500, + 11502, 11504, 11506, 11508, 11510, 11512, 11514, 11516, 11518, 11520, + 11522, 11524, 11526, 11528, 11530, 11532, 11534, 11536, 11538, 11540, + 11542, 11544, 11546, 11548, 11550, 11552, 11554, 11556, 11558, 11560, + 11562, 11564, 11566, 11568, 11570, 11572, 11574, 11576, 11578, 11580, + 11582, 11584, 11586, 11588, 11590, 11592, 11594, 11596, 11598, 11600, + 11602, 11604, 11606, 11608, 11610, 11612, 11614, 11616, 11618, 11620, + 11622, 11624, 11626, 11628, 11630, 11632, 11634, 11636, 11638, 11640, + 11642, 11644, 11646, 11648, 11650, 11652, 11654, 11656, 11658, 11660, + 11662, 11664, 11666, 11668, 11670, 11672, 11674, 11676, 11678, 11680, + 11682, 11684, 11686, 11688, 11690, 11692, 11694, 11696, 11698, 11700, + 11702, 11704, 11706, 11708, 11710, 11712, 11714, 11716, 11718, 11720, + 11722, 11724, 11726, 0, 0, 11728, 11730, 11732, 11734, 11736, 11738, + 11740, 11742, 11744, 11746, 11748, 11750, 11752, 11754, 11756, 11758, + 11760, 11762, 11764, 11766, 11768, 11770, 11772, 11774, 11776, 11778, + 11780, 11782, 11784, 11786, 11788, 11790, 11792, 11794, 11796, 11798, + 11800, 11802, 11804, 11806, 11808, 11810, 11812, 11814, 11816, 11818, + 11820, 11822, 11824, 11826, 11828, 11830, 11832, 11834, 11836, 11838, + 11840, 11842, 11844, 11846, 11848, 11850, 11852, 11854, 11856, 11858, + 11860, 11862, 11864, 11866, 11868, 11870, 11872, 11874, 11876, 11878, + 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11896, 11898, + 11900, 11902, 11904, 11906, 11908, 11910, 11912, 11914, 11916, 11918, + 11920, 11922, 11924, 11926, 11928, 11930, 11932, 11934, 11936, 11938, + 11940, 11942, 11944, 11946, 11948, 11950, 11952, 11954, 11956, 11958, + 11960, 11962, 11964, 11966, 11968, 11970, 11972, 11974, 11976, 11978, + 11980, 11982, 11984, 11986, 11988, 11990, 11992, 11994, 11996, 11998, + 12000, 12002, 12004, 12006, 12008, 12010, 12012, 12014, 12016, 12018, + 12020, 12022, 12024, 12026, 12028, 12030, 12032, 12034, 12036, 12038, + 12040, 12042, 12044, 12046, 12048, 12050, 12052, 12054, 12056, 12058, + 12060, 12062, 12064, 12066, 12068, 12070, 12072, 12074, 12076, 12078, + 12080, 12082, 12084, 12086, 12088, 12090, 12092, 12094, 12096, 12098, + 12100, 12102, 12104, 12106, 12108, 12110, 12112, 12114, 12116, 12118, + 12120, 12122, 12124, 12126, 12128, 12130, 12132, 12134, 12136, 12138, + 12140, 12142, 12144, 12146, 12148, 12150, 12152, 12154, 12156, 12158, + 12160, 12162, 12164, 12166, 12168, 12170, 12172, 12174, 12176, 12178, + 12180, 12182, 12184, 12186, 12188, 12190, 12192, 12194, 12196, 12198, + 12200, 12202, 12204, 12206, 12208, 12210, 12212, 12214, 12216, 12218, + 12220, 12222, 12224, 12226, 12228, 12230, 12232, 12234, 12236, 12238, + 12240, 12242, 12244, 12246, 12248, 12250, 12252, 12254, 12256, 12258, + 12260, 12262, 12264, 12266, 12268, 12270, 12272, 12274, 12276, 12278, + 12280, 12282, 12284, 12286, 12288, 12290, 12292, 12294, 12296, 12298, + 12300, 12302, 12304, 12306, 12308, 12310, 0, 0, 12312, 12314, 12316, + 12318, 12320, 12322, 12324, 12326, 12328, 12330, 12332, 12334, 12336, + 12338, 12340, 12342, 12344, 12346, 12348, 12350, 12352, 12354, 12356, + 12358, 12360, 12362, 12364, 12366, 12368, 12370, 12372, 12374, 12376, + 12378, 12380, 12382, 12384, 12386, 12388, 12390, 12392, 12394, 12396, + 12398, 12400, 12402, 12404, 12406, 12408, 12410, 12412, 12414, 12416, + 12418, 12420, 12422, 12424, 12426, 12428, 12430, 12432, 12434, 12436, + 12438, 12440, 12442, 12444, 12446, 12448, 12450, 12452, 12454, 12456, + 12458, 12460, 12462, 12464, 12466, 12468, 12470, 12472, 12474, 12476, + 12478, 12480, 12482, 12484, 12486, 12488, 12490, 12492, 12494, 12496, + 12498, 12500, 12502, 12504, 12506, 12508, 12510, 12512, 12514, 12516, + 12518, 12520, 12522, 12524, 12526, 12528, 12530, 12532, 12534, 12536, + 12538, 12540, 12542, 12544, 12546, 12548, 12550, 12552, 12554, 12556, + 12558, 12560, 12562, 12564, 12566, 12568, 12570, 12572, 12574, 12576, + 12578, 12580, 12582, 12584, 12586, 12588, 12590, 12592, 12594, 12596, + 12598, 12600, 12602, 12604, 12606, 12608, 12610, 12612, 12614, 12616, + 12618, 12620, 12622, 12624, 12626, 12628, 12630, 12632, 12634, 12636, + 12638, 12640, 12642, 12644, 12646, 12648, 12650, 12652, 12654, 12656, + 12658, 12660, 12662, 12664, 12666, 12668, 12670, 12672, 12674, 12676, + 12678, 12680, 12682, 12684, 12686, 12688, 12690, 12692, 12694, 12696, + 12698, 12700, 12702, 12704, 12706, 12708, 12710, 12712, 12714, 12716, + 12718, 12720, 12722, 12724, 12726, 12728, 12730, 12732, 12734, 12736, + 12738, 12740, 12742, 12744, 12746, 12748, 12750, 12752, 12754, 12756, + 12758, 12760, 12762, 12764, 12766, 12768, 12770, 12772, 12774, 12776, + 12778, 12780, 12782, 12784, 12786, 12788, 12790, 12792, 12794, 12796, + 12798, 12800, 12802, 12804, 12806, 12808, 12810, 12812, 12814, 12816, + 12818, 12820, 12822, 12824, 12826, 12828, 12830, 12832, 12834, 12836, + 12838, 12840, 12842, 12844, 12846, 12848, 12850, 12852, 12854, 12856, + 12858, 12860, 12862, 12864, 12866, 12868, 12870, 12872, 12874, 12876, + 12878, 12880, 12882, 12884, 12886, 12888, 12890, 12892, 12894, 12896, + 12898, 12900, 12902, 12904, 12906, 12908, 12910, 12912, 12914, 12916, + 12918, 12920, 12922, 12924, 12926, 12928, 12930, 12932, 12934, 12936, + 12938, 12940, 12942, 12944, 12946, 12948, 12950, 12952, 12954, 12956, + 12958, 12960, 12962, 12964, 12966, 12968, 12970, 12972, 12974, 12976, + 12978, 12980, 12982, 12984, 12986, 12988, 12990, 12992, 12994, 12996, + 12998, 13000, 13002, 13004, 13006, 13008, 13010, 13012, 13014, 13016, + 13018, 13020, 13022, 13024, 13026, 13028, 13030, 13032, 13034, 13036, + 13038, 13040, 13042, 13044, 13046, 13048, 13050, 13052, 13054, 13056, + 13058, 13060, 13062, 13064, 13066, 13068, 13070, 13072, 13074, 13076, + 13078, 13080, 13082, 13084, 13086, 13088, 13090, 13092, 13094, 13096, + 13098, 13100, 13102, 13104, 13106, 13108, 13110, 13112, 13114, 13116, + 13118, 13120, 13122, 13124, 13126, 13128, 13130, 13132, 13134, 13136, + 13138, 13140, 13142, 13144, 13146, 13148, 13150, 13152, 13154, 13156, + 13158, 13160, 13162, 13164, 13166, 13168, 13170, 13172, 13174, 13176, + 13178, 13180, 13182, 13184, 13186, 13188, 13190, 13192, 13194, 13196, + 13198, 13200, 13202, 13204, 13206, 13208, 13210, 13212, 13214, 13216, + 13218, 13220, 13222, 13224, 13226, 13228, 13230, 13232, 13234, 13236, + 13238, 13240, 13242, 13244, 13246, 13248, 13250, 13252, 13254, 13256, + 13258, 13260, 13262, 13264, 13266, 13268, 13270, 13272, 13274, 13276, + 13278, 13280, 13282, 13284, 13286, 13288, 13290, 13292, 13294, 13296, + 13298, 13300, 13302, 13304, 13306, 13308, 13310, 13312, 13314, 13316, + 13318, 13320, 13322, 13324, 13326, 13328, 13330, 13332, 13334, 13336, + 13338, 13340, 13342, 13344, 13346, 13348, 13350, 13352, 13354, 13356, + 13358, 13360, 13362, 13364, 13366, 13368, 13370, 13372, 13374, 13376, + 13378, 13380, 13382, 13384, 13386, 13388, 13390, 13392, 13394, 13396, + 13398, 13400, 13402, 13404, 13406, 13408, 13410, 13412, 13414, 13416, + 13418, 13420, 13422, 13424, 13426, 13428, 13430, 13432, 13434, 13436, + 13438, 13440, 13442, 13444, 13446, 13448, 13450, 13452, 13454, 13456, + 13458, 13460, 13462, 13464, 13466, 13468, 13470, 13472, 13474, 13476, + 13478, 13480, 13482, 13484, 13486, 13488, 13490, 13492, 13494, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, }; /* NFC pairs */ #define COMP_SHIFT 3 static unsigned short comp_index[] = { - 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 4, 5, 6, 7, 0, - 0, 0, 0, 8, 9, 10, 0, 0, 0, 11, 12, 13, 0, 0, 0, 0, 14, 15, 16, 17, 0, 0, - 18, 19, 20, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, - 28, 29, 30, 0, 0, 31, 32, 33, 34, 35, 0, 0, 36, 0, 0, 0, 0, 0, 0, 37, 38, - 39, 40, 0, 0, 41, 0, 42, 43, 44, 0, 0, 45, 46, 47, 0, 0, 0, 0, 48, 49, - 50, 51, 0, 0, 52, 53, 54, 55, 0, 0, 0, 56, 57, 0, 0, 0, 0, 0, 58, 59, 60, - 61, 0, 0, 62, 63, 64, 65, 0, 0, 0, 66, 67, 68, 69, 0, 0, 70, 71, 72, 73, - 0, 0, 0, 74, 0, 75, 0, 0, 0, 0, 76, 0, 77, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, - 79, 80, 81, 0, 0, 0, 0, 82, 83, 84, 85, 0, 0, 86, 87, 88, 89, 0, 0, 0, - 90, 0, 91, 92, 0, 0, 93, 94, 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 100, 101, 102, 103, 0, 0, 0, 104, 0, 0, 0, 0, 0, 105, 106, 107, 0, 0, 0, - 0, 108, 109, 110, 111, 0, 0, 112, 113, 114, 115, 0, 0, 0, 116, 117, 0, 0, - 0, 0, 118, 0, 119, 120, 121, 0, 0, 122, 123, 124, 125, 0, 0, 0, 126, 0, - 127, 0, 0, 0, 128, 129, 130, 131, 0, 0, 0, 132, 133, 134, 135, 0, 0, 0, - 136, 0, 0, 0, 0, 0, 137, 138, 139, 140, 0, 0, 0, 141, 142, 143, 0, 0, 0, - 0, 144, 145, 146, 147, 0, 0, 148, 149, 150, 151, 0, 0, 0, 152, 0, 153, 0, - 0, 0, 154, 155, 156, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 158, 159, 160, 161, - 0, 0, 0, 162, 163, 164, 165, 0, 0, 0, 166, 0, 0, 167, 0, 0, 168, 169, 0, - 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 172, 173, 0, 0, 0, - 0, 0, 174, 0, 0, 0, 0, 0, 175, 176, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, - 178, 179, 0, 0, 0, 0, 180, 181, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, - 183, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 0, - 189, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 192, 0, 0, - 0, 0, 0, 0, 193, 194, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 196, 197, 0, 0, - 0, 0, 0, 198, 199, 0, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, - 0, 202, 203, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, - 0, 208, 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 211, - 212, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 215, 0, - 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, - 0, 0, 0, 219, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, - 222, 223, 224, 0, 0, 0, 225, 226, 227, 0, 0, 0, 0, 228, 229, 230, 0, 0, - 0, 0, 231, 232, 233, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, - 0, 236, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 242, 0, 0, - 0, 0, 0, 0, 243, 0, 0, 0, 0, 244, 245, 246, 0, 247, 0, 0, 248, 0, 249, 0, - 0, 0, 0, 250, 251, 252, 253, 0, 0, 254, 255, 256, 0, 0, 0, 0, 257, 0, - 258, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 260, 261, 262, 0, 0, 0, 0, 263, 0, - 264, 265, 0, 0, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 267, 0, 0, 268, 269, - 270, 271, 0, 0, 272, 0, 273, 0, 0, 0, 0, 274, 0, 275, 276, 277, 0, 0, - 278, 279, 0, 280, 0, 0, 281, 0, 282, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 284, - 285, 286, 0, 287, 0, 0, 288, 0, 289, 0, 290, 0, 0, 291, 0, 0, 292, 0, 0, - 293, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 295, 0, 0, 296, 0, 0, 0, 0, 0, 0, - 297, 0, 0, 0, 0, 0, 298, 299, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 301, - 302, 0, 0, 0, 0, 0, 303, 304, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 306, - 307, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 310, 311, - 0, 0, 0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 314, 0, 0, - 0, 0, 0, 315, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 320, 321, 0, 0, 0, 0, 0, 322, - 0, 0, 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 329, 0, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, - 333, 0, 0, 0, 0, 0, 0, 334, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, 339, - 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, 0, 0, 342, 0, 0, - 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, - 0, 0, 346, 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, - 349, 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 352, - 353, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 356, 0, - 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, 359, 360, 0, 0, - 0, 0, 0, 0, 361, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, - 0, 0, 364, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 367, - 368, 0, 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 371, 0, 0, - 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 373, 0, 0, 0, 374, 0, 0, 375, 0, 0, 376, - 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 379, 0, 0, - 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 382, 0, 0, 383, 0, - 0, 0, 384, 0, 0, 385, 0, 0, 386, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, 0, - 388, 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, 0, 391, 0, 0, - 0, 0, 0, 0, 392, 0, 0, 393, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 395, 0, - 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 397, 0, 0, 398, 0, 0, 399, 0, 0, 0, - 400, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 403, 0, - 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 406, 0, 0, 407, - 0, 0, 408, 0, 0, 409, 0, 0, 0, 410, 0, 0, 0, 0, 0, 411, 0, 0, 0, 0, 0, 0, - 412, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 415, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 417, 0, 0, 418, 0, 0, 419, 0, 0, 0, 420, 0, 0, - 421, 0, 0, 422, 0, 0, 423, 424, 0, 0, 425, 0, 0, 426, 0, 0, 0, 0, 0, 0, - 427, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 430, 0, - 0, 431, 0, 0, 432, 0, 0, 0, 433, 0, 0, 434, 0, 0, 435, 0, 0, 436, 437, 0, - 0, 438, 0, 0, 439, 0, 0, 0, 440, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, - 442, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 445, 0, - 0, 0, 0, 0, 446, 0, 0, 447, 448, 0, 0, 449, 0, 0, 450, 0, 0, 0, 451, 0, - 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 454, 0, 0, 0, - 0, 0, 455, 0, 0, 0, 0, 0, 0, 456, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, - 458, 0, 0, 0, 0, 0, 0, 459, 0, 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, 461, 0, - 0, 462, 0, 0, 463, 0, 0, 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, 0, 465, 0, 0, - 466, 0, 0, 467, 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, 0, - 0, 470, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, 473, - 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 476, 0, 0, - 0, 0, 0, 477, 0, 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, - 0, 480, 0, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 483, - 0, 0, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 486, 0, 0, - 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, - 0, 0, 490, 0, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 493, - 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 496, 0, 0, - 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, - 0, 0, 500, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 0, - 503, 0, 0, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, 506, 0, - 0, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, 509, 0, - 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 512, 0, 0, 0, - 0, 0, 0, 513, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, - 0, 516, 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 519, - 0, 0, 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 522, 0, 0, - 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 525, 526, 0, 0, 0, 0, - 0, 527, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 530, - 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, 533, 0, 0, - 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, - 0, 537, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, 0, 0, 540, - 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 0, 543, 0, 0, - 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, 0, 546, 0, 0, 0, 0, - 0, 0, 547, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 549, 0, 0, 0, 0, 0, 550, - 551, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 554, 0, 0, - 0, 0, 0, 0, 555, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, - 0, 0, 558, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 5, 6, 7, + 0, 0, 0, 8, 0, 9, 10, 0, 0, 11, 12, 13, 14, 0, 0, 0, 0, 15, 16, 17, 0, 0, + 0, 18, 19, 20, 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 28, 29, 30, 0, 0, 0, 31, 32, 33, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 36, + 0, 37, 38, 39, 0, 0, 40, 41, 42, 43, 0, 0, 0, 44, 45, 46, 0, 0, 0, 0, 47, + 48, 49, 50, 0, 0, 51, 52, 53, 54, 0, 0, 0, 55, 56, 0, 0, 0, 0, 0, 57, 58, + 59, 60, 0, 0, 0, 61, 62, 63, 0, 0, 0, 0, 64, 65, 66, 67, 0, 0, 68, 69, + 70, 71, 0, 0, 0, 72, 0, 73, 0, 0, 0, 0, 74, 0, 75, 0, 0, 0, 0, 76, 0, 0, + 0, 0, 0, 77, 78, 79, 0, 0, 0, 0, 80, 81, 82, 83, 0, 0, 0, 84, 85, 86, 0, + 0, 0, 0, 87, 88, 0, 89, 0, 0, 90, 91, 0, 92, 0, 0, 0, 0, 93, 94, 95, 0, + 0, 0, 96, 97, 98, 99, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 102, 0, 103, 0, + 0, 0, 104, 105, 106, 107, 0, 0, 0, 108, 109, 110, 111, 0, 0, 0, 112, 113, + 0, 0, 0, 0, 114, 115, 116, 117, 0, 0, 0, 118, 119, 120, 121, 0, 0, 0, + 122, 0, 123, 0, 0, 0, 124, 125, 126, 127, 128, 0, 0, 129, 130, 131, 132, + 0, 0, 0, 133, 134, 0, 0, 0, 0, 0, 135, 136, 137, 138, 0, 0, 139, 140, + 141, 142, 0, 0, 0, 0, 143, 144, 145, 0, 0, 0, 146, 147, 148, 149, 0, 0, + 0, 150, 0, 151, 0, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, + 0, 156, 157, 158, 0, 0, 0, 0, 159, 160, 161, 162, 0, 0, 163, 0, 0, 0, + 164, 0, 0, 165, 166, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, + 0, 0, 169, 170, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 172, 173, 0, 0, 0, + 0, 0, 174, 0, 0, 0, 0, 0, 175, 176, 0, 0, 0, 0, 0, 177, 178, 0, 0, 0, 0, + 0, 179, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, 0, 181, 182, 183, 0, 0, 0, 0, + 184, 185, 0, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 188, + 189, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 191, 192, 0, 0, 0, 0, 0, 193, + 0, 0, 0, 0, 0, 194, 195, 0, 0, 0, 0, 0, 196, 197, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 200, 201, 202, 0, 0, 0, 0, 203, 204, + 0, 0, 0, 0, 0, 205, 206, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 208, 0, 0, 0, + 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, + 0, 0, 212, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, + 215, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 218, + 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 220, 221, 222, 0, 0, 0, 0, 223, 224, + 225, 0, 0, 0, 0, 226, 227, 228, 0, 0, 0, 0, 229, 230, 231, 0, 0, 0, 0, 0, + 232, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 238, 0, 0, 0, 0, + 0, 0, 239, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, + 242, 0, 243, 244, 0, 0, 0, 245, 246, 0, 0, 0, 0, 247, 0, 248, 0, 249, 0, + 0, 250, 251, 252, 0, 0, 0, 0, 253, 0, 254, 0, 0, 0, 0, 0, 255, 0, 0, 0, + 0, 256, 257, 258, 0, 0, 0, 0, 259, 0, 260, 0, 261, 0, 0, 0, 0, 0, 262, 0, + 0, 0, 0, 0, 0, 263, 0, 0, 264, 265, 266, 0, 267, 0, 0, 268, 0, 269, 0, 0, + 0, 0, 270, 0, 271, 272, 0, 0, 0, 273, 274, 0, 275, 0, 0, 276, 0, 277, 0, + 0, 0, 0, 0, 0, 278, 0, 0, 0, 0, 279, 280, 281, 282, 0, 0, 0, 283, 284, 0, + 285, 0, 0, 286, 0, 0, 0, 287, 0, 0, 288, 0, 0, 0, 289, 0, 0, 0, 0, 0, + 290, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, + 0, 0, 294, 0, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 297, 0, 0, 0, 0, 0, 298, 299, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, + 301, 0, 0, 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 304, 0, + 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, 307, 0, 0, 0, + 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, + 0, 311, 312, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 315, 0, 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 318, 0, + 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, 321, 0, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 323, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 0, + 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, + 0, 0, 0, 328, 0, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, + 0, 331, 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 334, + 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 336, 337, 0, 0, 0, 0, 0, 0, 338, + 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 341, 0, 0, + 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, + 0, 0, 345, 346, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 0, + 0, 349, 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 0, + 352, 0, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 355, 0, + 0, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, + 0, 0, 0, 359, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 361, 362, 0, 0, 0, 0, + 0, 0, 363, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 0, 0, + 0, 366, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, 0, 369, + 370, 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 373, 0, + 0, 0, 0, 0, 374, 0, 0, 0, 0, 0, 0, 375, 0, 0, 376, 0, 0, 0, 377, 0, 0, + 378, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 381, 0, + 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 383, 0, 0, 0, 0, 0, 0, 384, 0, 0, + 385, 0, 0, 386, 0, 0, 0, 387, 0, 0, 388, 0, 0, 0, 0, 0, 0, 389, 0, 0, 0, + 0, 0, 0, 390, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, + 0, 393, 0, 0, 0, 0, 0, 0, 394, 0, 0, 395, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, + 0, 0, 397, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 399, 0, 0, 400, 0, 0, + 0, 401, 0, 0, 402, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, + 0, 0, 405, 0, 0, 0, 0, 0, 0, 406, 0, 0, 0, 0, 0, 0, 407, 0, 0, 0, 0, 0, + 0, 408, 0, 0, 409, 0, 0, 410, 0, 0, 0, 411, 0, 0, 412, 0, 0, 0, 0, 0, 0, + 413, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 0, 416, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 418, 0, 0, 419, 0, 0, 420, 0, 0, 0, + 421, 0, 0, 422, 0, 0, 423, 0, 0, 0, 424, 0, 0, 425, 0, 0, 0, 426, 0, 0, + 427, 0, 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 430, 0, + 0, 0, 0, 0, 0, 431, 0, 0, 432, 0, 0, 0, 433, 0, 0, 434, 0, 0, 435, 0, 0, + 0, 436, 0, 0, 437, 0, 0, 0, 438, 0, 0, 439, 0, 0, 440, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 444, 0, + 0, 0, 0, 0, 0, 445, 0, 0, 0, 0, 0, 0, 446, 0, 0, 447, 0, 0, 0, 448, 0, 0, + 449, 0, 0, 450, 0, 0, 0, 0, 0, 0, 451, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 453, 0, 0, 0, 0, 0, 454, 0, 0, 0, 0, 0, 0, 455, 0, 0, 0, 0, 0, 0, + 456, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 458, 0, 0, 0, 0, 0, 0, 459, 0, + 0, 0, 0, 0, 0, 460, 0, 0, 461, 0, 0, 0, 462, 0, 0, 0, 0, 0, 463, 0, 0, 0, + 0, 0, 0, 464, 0, 0, 465, 0, 0, 0, 466, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, + 0, 468, 0, 0, 0, 0, 0, 0, 469, 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, 471, + 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 0, 0, 473, 0, 0, 0, 0, 0, 0, 474, 0, + 0, 0, 0, 0, 475, 0, 0, 0, 0, 0, 0, 476, 0, 0, 0, 0, 0, 0, 477, 0, 0, 0, + 0, 0, 0, 478, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, + 0, 481, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 484, + 0, 0, 0, 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0, 0, 0, 487, 0, 0, + 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, + 0, 0, 491, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, + 0, 494, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 500, 0, 0, + 0, 0, 0, 0, 501, 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 503, 0, 0, 0, 0, + 0, 0, 504, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, 506, 0, 0, 0, 0, 0, + 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, + 0, 0, 510, 0, 0, 0, 0, 0, 0, 511, 0, 0, 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, + 513, 0, 0, 0, 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, 516, 0, + 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, 519, 0, 0, + 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, + 0, 0, 523, 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, + 526, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, + 0, 0, 0, 0, 0, 530, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0, 0, 0, 532, 0, 0, 0, + 0, 0, 0, 533, 0, 0, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 535, 0, 0, 0, 0, + 0, 536, 0, 0, 0, 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, + 539, 0, 0, 0, 0, 0, 540, 0, 0, 0, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 542, 0, + 0, 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 545, 0, 0, 0, + 0, 0, 0, 546, 0, 0, 0, 0, 0, 0, 547, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, + 0, 549, 0, 0, 0, 0, 0, 0, 550, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 552, + 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, 555, }; static unsigned short comp_data[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 0, 0, 8800, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 193, 194, 195, - 256, 258, 550, 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840, 0, 7680, - 0, 0, 260, 0, 0, 0, 0, 7682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7684, 0, 0, 0, - 0, 0, 0, 0, 0, 7686, 0, 0, 0, 262, 264, 0, 0, 0, 266, 0, 0, 0, 0, 268, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 7690, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8814, 0, 0, 0, 0, 0, 8800, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8815, 0, 0, 192, 193, 194, 195, 256, 258, 550, + 196, 7842, 197, 0, 461, 512, 514, 0, 0, 0, 7840, 0, 7680, 0, 0, 260, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7682, 0, 0, 7684, 0, 0, 0, 0, 0, 0, + 0, 0, 7686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 264, 0, 0, 0, 266, + 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 7690, + 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, 7692, 0, 0, 0, 7696, 0, 7698, 0, 0, 7694, 0, 0, 0, 200, 201, 202, 7868, 274, 276, 278, 203, 7866, 0, 0, 282, 516, 518, 0, 0, 0, 7864, 0, 0, 0, 552, 280, 7704, 0, 7706, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7710, 0, 0, 0, 0, 0, 0, 0, 500, 284, 0, 7712, 286, 288, 0, 0, 0, - 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, - 0, 0, 0, 7714, 7718, 0, 0, 0, 542, 0, 0, 0, 0, 0, 7716, 0, 0, 0, 7720, 0, - 0, 7722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, 296, 298, - 300, 304, 207, 7880, 0, 0, 463, 520, 522, 0, 0, 0, 7882, 0, 0, 0, 0, 302, - 0, 0, 7724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 0, 0, 7728, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 7730, 0, 0, 0, 310, 0, 0, 0, - 0, 7732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, 317, 0, 0, 0, 0, 0, - 7734, 0, 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7742, 0, 0, 0, 0, 7744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7746, 0, 0, 0, 504, - 323, 0, 209, 0, 0, 7748, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 7750, 0, 0, 0, - 325, 0, 7754, 0, 0, 7752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, 212, - 213, 332, 334, 558, 214, 7886, 0, 336, 465, 524, 526, 0, 0, 416, 7884, 0, - 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 7764, 0, 0, 0, 0, 7766, 0, 0, 0, 0, 0, - 0, 0, 340, 0, 0, 0, 0, 7768, 0, 0, 0, 0, 344, 528, 530, 0, 0, 0, 7770, 0, - 0, 0, 342, 0, 0, 0, 0, 7774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 348, - 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, 7778, 0, 0, 536, 350, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7786, 0, 0, 0, 0, 356, 0, 0, 0, 0, 0, - 7788, 0, 0, 538, 354, 0, 7792, 0, 0, 7790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 217, 218, 219, 360, 362, 364, 0, 220, 7910, 366, 368, 467, 532, 534, 0, - 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0, 7796, 0, 0, 0, 0, 0, 0, 7804, - 0, 0, 0, 0, 0, 7806, 0, 0, 0, 7808, 7810, 372, 0, 0, 0, 7814, 7812, 0, - 7816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7818, 7820, 0, 0, 0, 0, 0, 7922, 221, - 374, 7928, 562, 0, 7822, 376, 7926, 0, 0, 0, 0, 0, 0, 0, 0, 7924, 0, 0, - 0, 0, 377, 7824, 0, 0, 0, 379, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 7826, 0, - 0, 0, 0, 0, 0, 0, 0, 7828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 225, 226, - 227, 257, 259, 551, 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, 7841, 0, - 7681, 0, 0, 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7683, 0, 0, 7685, 0, - 0, 0, 0, 0, 0, 0, 0, 7687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 265, 0, - 0, 0, 267, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, - 0, 7691, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, - 0, 7695, 0, 0, 232, 233, 234, 7869, 275, 277, 279, 235, 7867, 0, 0, 283, - 517, 519, 0, 0, 0, 7865, 0, 0, 0, 553, 281, 7705, 0, 7707, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7711, 0, 0, 0, 0, 0, 0, 0, 501, 285, 0, 7713, 287, 289, 0, 0, - 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 293, 0, 0, 0, 7715, 7719, - 0, 0, 0, 543, 0, 0, 0, 0, 0, 7717, 0, 0, 0, 7721, 0, 0, 7723, 0, 7830, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, - 0, 464, 521, 523, 0, 0, 0, 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 0, - 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7729, - 0, 489, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 311, 0, 0, 0, 0, 7733, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 7735, 0, 0, 0, 316, 0, 7741, 0, 0, 7739, 0, 0, 0, 7743, 0, 0, 0, 0, 7745, - 0, 0, 7747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 324, 0, 241, 0, 0, - 7749, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 7751, 0, 0, 0, 326, 0, 7755, 0, 0, - 7753, 0, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, 0, 337, 466, - 525, 527, 0, 0, 417, 7885, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 7765, 0, - 0, 0, 0, 7767, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, 7769, 0, 0, 0, 0, - 345, 529, 531, 0, 0, 0, 7771, 0, 0, 0, 343, 0, 0, 0, 0, 7775, 0, 0, 0, - 347, 349, 0, 0, 0, 7777, 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 7779, 0, 0, 537, - 351, 0, 0, 0, 0, 0, 7787, 7831, 0, 0, 0, 357, 0, 0, 0, 0, 0, 7789, 0, 0, - 539, 355, 0, 7793, 0, 0, 7791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 250, - 251, 361, 363, 365, 0, 252, 7911, 367, 369, 468, 533, 535, 0, 0, 432, - 7909, 7795, 0, 0, 0, 371, 7799, 0, 7797, 0, 0, 0, 0, 0, 0, 7805, 0, 0, 0, - 0, 0, 7807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7809, 7811, 373, 0, 0, 0, - 7815, 7813, 0, 7832, 0, 0, 0, 0, 0, 0, 0, 7817, 0, 7819, 7821, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7923, 253, 375, 7929, 563, 0, 7823, 255, - 7927, 7833, 0, 0, 0, 0, 0, 0, 0, 7925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 378, 7825, 0, 0, 0, 380, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 7827, 0, 0, - 0, 0, 0, 0, 0, 0, 7829, 0, 0, 8173, 901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8129, 0, 0, 0, 0, 0, 0, 0, 0, 7846, 7844, 0, 7850, 0, 0, 0, 0, 7848, 0, - 0, 0, 0, 0, 0, 0, 0, 478, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 508, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7872, 7870, 0, 7876, 0, 0, 0, 0, 7874, 0, 0, 0, 0, 0, 7726, 0, - 0, 0, 7890, 7888, 0, 7894, 0, 0, 0, 0, 7892, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, - 0, 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475, 471, 0, 0, 469, 0, 0, 0, 0, - 0, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7847, 7845, 0, 7851, 0, 0, 0, 0, - 7849, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 0, 0, - 0, 0, 509, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7689, 0, 0, 0, 7873, - 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 0, 0, 0, 7727, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, 0, 0, 0, 0, 0, - 7757, 0, 0, 557, 0, 0, 7759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 511, 0, 0, 0, 476, 472, 0, 0, 470, 0, 0, 0, 0, 0, 0, 474, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7856, 7854, 0, 7860, 0, 0, 0, 0, 7858, 0, 0, - 0, 0, 7857, 7855, 0, 7861, 0, 0, 0, 0, 7859, 0, 0, 0, 0, 7700, 7702, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7701, 7703, 0, 0, 0, 7760, 7762, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7761, 7763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7780, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7781, 0, 0, 0, 0, 7782, 0, 0, 0, 0, - 7783, 0, 0, 0, 0, 0, 0, 0, 7800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7801, 0, 0, 7802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7803, 0, 0, 0, - 7835, 0, 0, 0, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0, 0, 0, 7902, 0, 0, 0, - 0, 0, 0, 0, 0, 7906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7901, 7899, 0, - 7905, 0, 0, 0, 0, 7903, 0, 0, 0, 0, 0, 0, 0, 0, 7907, 0, 0, 0, 7914, + 0, 0, 0, 0, 7710, 0, 0, 0, 0, 0, 0, 0, 0, 500, 284, 0, 7712, 286, 288, 0, + 0, 0, 0, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 292, 0, 0, 0, 7714, 7718, 0, 0, 0, 542, 0, 0, 0, 0, 0, 7716, 0, 0, 0, + 7720, 0, 0, 7722, 0, 0, 0, 0, 0, 204, 205, 206, 296, 298, 300, 304, 207, + 7880, 0, 0, 463, 520, 522, 0, 0, 0, 7882, 0, 0, 0, 0, 302, 0, 0, 7724, 0, + 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7728, 0, 488, 0, + 0, 0, 0, 0, 7730, 0, 0, 0, 310, 0, 0, 0, 0, 7732, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 7734, 0, + 0, 0, 315, 0, 7740, 0, 0, 7738, 0, 0, 0, 0, 7742, 0, 0, 0, 0, 7744, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7746, 0, 0, 0, 0, 504, 323, 0, 209, 0, 0, 7748, + 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 7750, 0, 0, 0, 325, 0, 7754, 0, 0, 7752, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, 212, 213, 332, 334, 558, 214, + 7886, 0, 336, 465, 524, 526, 0, 0, 416, 7884, 0, 0, 0, 0, 490, 0, 0, 0, + 0, 0, 0, 0, 0, 7764, 0, 0, 0, 0, 7766, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, + 0, 0, 7768, 0, 0, 0, 0, 344, 528, 530, 0, 0, 0, 7770, 0, 0, 0, 342, 0, 0, + 0, 0, 7774, 0, 0, 0, 0, 346, 348, 0, 0, 0, 7776, 0, 0, 0, 0, 352, 0, 0, + 0, 0, 0, 7778, 0, 0, 536, 350, 0, 0, 0, 0, 0, 0, 7786, 0, 0, 0, 0, 356, + 0, 0, 0, 0, 0, 7788, 0, 0, 538, 354, 0, 7792, 0, 0, 7790, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 217, 218, 219, 360, 362, 364, 0, 220, 7910, 366, 368, + 467, 532, 534, 0, 0, 431, 7908, 7794, 0, 0, 0, 370, 7798, 0, 7796, 0, 0, + 0, 0, 0, 0, 0, 7804, 0, 0, 0, 0, 0, 7806, 0, 0, 0, 0, 7808, 7810, 372, 0, + 0, 0, 7814, 7812, 0, 7816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7818, 7820, 0, + 0, 0, 0, 0, 0, 7922, 221, 374, 7928, 562, 0, 7822, 376, 7926, 0, 0, 0, 0, + 0, 0, 0, 0, 7924, 0, 0, 0, 0, 0, 377, 7824, 0, 0, 0, 379, 0, 0, 0, 0, + 381, 0, 0, 0, 0, 0, 7826, 0, 0, 0, 0, 0, 0, 0, 0, 7828, 0, 0, 0, 224, + 225, 226, 227, 257, 259, 551, 228, 7843, 229, 0, 462, 513, 515, 0, 0, 0, + 7841, 0, 7681, 0, 0, 261, 0, 0, 0, 0, 0, 7683, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7685, 7687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 265, 0, 0, 0, + 267, 0, 0, 0, 0, 269, 0, 231, 0, 0, 0, 0, 0, 0, 7691, 0, 0, 0, 0, 271, 0, + 0, 0, 0, 0, 7693, 0, 0, 0, 7697, 0, 7699, 0, 0, 7695, 0, 0, 0, 232, 233, + 234, 7869, 275, 277, 279, 235, 7867, 0, 0, 283, 517, 519, 0, 0, 0, 7865, + 0, 0, 0, 553, 281, 7705, 0, 7707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7711, 0, + 0, 0, 0, 0, 0, 0, 0, 501, 285, 0, 7713, 287, 289, 0, 0, 0, 0, 487, 0, + 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 7715, 7719, 0, 0, 0, + 543, 0, 0, 0, 0, 0, 7717, 0, 0, 0, 7721, 0, 0, 7723, 0, 7830, 0, 0, 0, + 236, 237, 238, 297, 299, 301, 0, 239, 7881, 0, 0, 464, 521, 523, 0, 0, 0, + 7883, 0, 0, 0, 0, 303, 0, 0, 7725, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, + 0, 0, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7729, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 489, 0, 0, 0, 0, 0, 7731, 0, 0, 0, 311, 0, 0, 0, 0, 7733, 0, 0, 0, + 0, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 7735, 0, 0, 0, + 316, 0, 7741, 0, 0, 7739, 0, 0, 0, 0, 7743, 0, 0, 0, 0, 7745, 0, 0, 7747, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 324, 0, 241, 0, 0, 7749, 0, 0, + 0, 0, 328, 0, 0, 0, 0, 0, 7751, 0, 0, 0, 326, 0, 7755, 0, 0, 7753, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 243, 244, 245, 333, 335, 559, 246, 7887, + 0, 337, 466, 525, 527, 0, 0, 417, 7885, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, + 0, 0, 0, 7765, 0, 0, 0, 0, 7767, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0, + 7769, 0, 0, 0, 0, 345, 529, 531, 0, 0, 0, 7771, 0, 0, 0, 343, 0, 0, 0, 0, + 7775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 347, 349, 0, 0, 0, 7777, 0, 0, + 0, 0, 353, 0, 0, 0, 0, 0, 7779, 0, 0, 537, 351, 0, 0, 0, 0, 0, 0, 7787, + 7831, 0, 0, 0, 357, 0, 0, 0, 0, 0, 7789, 0, 0, 539, 355, 0, 7793, 0, 0, + 7791, 0, 0, 0, 249, 250, 251, 361, 363, 365, 0, 252, 7911, 367, 369, 468, + 533, 535, 0, 0, 432, 7909, 7795, 0, 0, 0, 371, 7799, 0, 7797, 0, 0, 0, 0, + 0, 0, 0, 7805, 0, 0, 0, 0, 0, 7807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7809, 7811, 373, 0, 0, 0, 7815, 7813, 0, 7832, 0, 0, 0, 0, 0, 0, 0, 7817, + 0, 0, 7819, 7821, 0, 0, 0, 0, 0, 0, 7923, 253, 375, 7929, 563, 0, 7823, + 255, 7927, 7833, 0, 0, 0, 0, 0, 0, 0, 7925, 0, 0, 0, 0, 0, 378, 7825, 0, + 0, 0, 380, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 7827, 0, 0, 0, 0, 0, 0, 0, 0, + 7829, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8173, 901, 0, 0, 8129, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7846, 7844, 0, 7850, 0, 0, 0, 0, 7848, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 478, 0, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, + 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7688, 0, 0, 0, 0, 7872, 7870, 0, + 7876, 0, 0, 0, 0, 7874, 0, 0, 0, 0, 0, 0, 7726, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7890, 7888, 0, 7894, 0, 0, 0, 0, 7892, 0, 0, 0, 0, 0, 0, + 7756, 0, 0, 556, 0, 0, 7758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554, 0, 0, + 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475, 471, 0, 0, 469, 0, 0, 0, 0, + 0, 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7847, 7845, 0, 7851, 0, 0, 0, 0, + 7849, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 509, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7689, 0, 0, + 0, 0, 7873, 7871, 0, 7877, 0, 0, 0, 0, 7875, 0, 0, 0, 0, 0, 0, 7727, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7891, 7889, 0, 7895, 0, 0, 0, 0, 7893, + 0, 0, 0, 0, 0, 0, 7757, 0, 0, 557, 0, 0, 7759, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 555, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476, 472, 0, 0, + 470, 0, 0, 0, 0, 0, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7856, 7854, 0, + 7860, 0, 0, 0, 0, 7858, 0, 0, 0, 0, 0, 7857, 7855, 0, 7861, 0, 0, 0, 0, + 7859, 0, 0, 0, 0, 0, 7700, 7702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7701, 7703, 0, 0, 0, 0, 7760, 7762, 0, 0, 0, 0, 7761, 7763, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7780, 0, 0, 0, 0, 0, 7781, 0, 0, 0, 0, 0, 7782, 0, 0, + 0, 0, 0, 7783, 0, 0, 0, 0, 0, 0, 0, 0, 7800, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7801, 0, 0, 0, 7802, 0, 0, 0, 0, 0, 7803, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7835, 0, 0, 0, 0, 0, 0, 0, 7900, 7898, 0, 7904, 0, 0, + 0, 0, 7902, 0, 0, 0, 0, 0, 0, 0, 0, 7906, 0, 0, 0, 0, 7901, 7899, 0, + 7905, 0, 0, 0, 0, 7903, 0, 0, 0, 0, 0, 0, 0, 0, 7907, 0, 0, 0, 0, 7914, 7912, 0, 7918, 0, 0, 0, 0, 7916, 0, 0, 0, 0, 0, 0, 0, 0, 7920, 0, 0, 0, - 7915, 7913, 0, 7919, 0, 0, 0, 0, 7917, 0, 0, 0, 0, 0, 0, 0, 0, 7921, 0, - 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, - 0, 493, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 0, - 0, 0, 0, 7708, 0, 0, 0, 0, 7709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, - 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8122, 902, 0, 0, 8121, 8120, 0, 0, 0, 0, 0, 0, 0, 0, 7944, 7945, 0, - 0, 0, 0, 0, 8124, 0, 0, 0, 0, 0, 0, 0, 8136, 904, 0, 0, 0, 0, 7960, 7961, - 0, 0, 0, 0, 0, 8138, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7976, 7977, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8140, 0, 0, 0, 0, 0, 0, 0, 8154, - 906, 0, 0, 8153, 8152, 0, 938, 0, 0, 0, 0, 0, 0, 7992, 7993, 0, 0, 0, 0, - 0, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8172, 0, 0, 0, 0, 0, 8170, 910, 0, 0, 8169, 8168, 0, 939, 0, 0, 0, 0, 0, - 0, 0, 8025, 0, 0, 0, 0, 0, 8186, 911, 0, 0, 0, 0, 8040, 8041, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8188, 0, 0, 0, 0, 8116, 0, 0, 0, 0, 8132, 0, - 0, 0, 0, 0, 0, 0, 8048, 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 0, 0, 0, 0, - 7936, 7937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8118, 8115, 0, 0, 0, 0, - 0, 0, 0, 8050, 941, 0, 0, 0, 0, 7952, 7953, 0, 0, 0, 0, 0, 8052, 942, 0, - 0, 0, 0, 7968, 7969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8134, 8131, 0, - 0, 0, 0, 0, 0, 0, 8054, 943, 0, 0, 8145, 8144, 0, 970, 0, 0, 0, 0, 0, 0, - 7984, 7985, 0, 0, 0, 0, 8150, 0, 0, 0, 0, 0, 0, 0, 0, 8056, 972, 0, 0, 0, - 0, 8000, 8001, 0, 0, 0, 8164, 8165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8058, 973, 0, 0, 8161, 8160, 0, 971, 0, 0, 0, 0, 0, 0, 8016, 8017, 0, - 0, 0, 0, 8166, 0, 0, 0, 0, 0, 0, 0, 0, 8060, 974, 0, 0, 0, 0, 8032, 8033, - 0, 0, 0, 0, 8182, 8179, 0, 0, 0, 0, 0, 0, 0, 8146, 912, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8151, 0, 0, 0, 0, 0, 0, 0, 0, 8162, 944, 0, 0, 8167, 0, 0, 0, - 0, 0, 8180, 0, 0, 0, 0, 0, 0, 0, 0, 979, 0, 0, 0, 0, 0, 980, 0, 0, 0, 0, - 1031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 0, 0, 0, - 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 0, 0, 0, 0, 1238, 0, 1025, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1217, 0, 1244, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1246, 0, 0, 0, 0, 0, 1037, 0, 0, 0, 1250, 1049, 0, 1252, 0, 0, - 0, 0, 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1268, 0, 0, 0, 0, 1272, 0, 0, 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1233, 0, 1235, 0, 0, 0, 0, 0, 0, 1107, 0, 0, 0, 1104, 0, 0, 0, 0, 1239, - 0, 1105, 0, 0, 1218, 0, 1245, 0, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1117, 0, 0, 0, 1251, 1081, 0, 1253, 0, 0, 0, 0, 0, 0, - 1116, 0, 0, 1255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1263, 1118, 0, 1265, 0, 0, - 1267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1273, 0, 0, 0, 0, 1261, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1142, 0, 0, 0, 0, 1143, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1259, 0, 0, 0, 1570, 1571, 1573, 0, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1574, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 0, 2345, 0, 0, 0, 0, 2353, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356, 0, 0, 0, 0, 0, 2507, 2508, 0, 0, - 0, 0, 0, 2891, 2888, 2892, 0, 0, 0, 0, 0, 0, 2964, 0, 0, 0, 3018, 3020, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3019, 0, 0, 0, 0, 0, 0, 3144, 0, 0, 0, - 0, 0, 0, 3264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3274, 3271, 3272, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3275, 0, 0, 0, 0, 0, 0, 3402, 3404, 0, 0, 0, - 3403, 0, 0, 0, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3549, 0, 0, 0, 0, 0, 0, 0, 4134, 0, 0, 0, 0, 0, 0, 7736, 0, 0, 0, 0, - 7737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7772, 0, 0, 0, 0, 7773, 0, 0, - 0, 0, 0, 0, 7784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7785, 7852, 0, 0, - 7862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7853, 0, 0, 7863, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7879, 0, 0, 0, 0, 7896, - 0, 0, 0, 0, 7897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7938, 7940, 0, 0, 7942, - 8064, 0, 0, 0, 0, 0, 0, 0, 7939, 7941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7943, 8065, 0, 0, 0, 0, 8066, 0, 0, 0, 0, 8067, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8068, 0, 0, 0, 0, 8069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8070, 0, 0, 0, 0, 8071, 0, 0, 0, 0, 0, 0, 0, 7946, 7948, 0, 0, 7950, - 8072, 0, 0, 0, 0, 0, 0, 0, 7947, 7949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7951, 8073, 0, 0, 0, 0, 8074, 0, 0, 0, 0, 8075, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8076, 0, 0, 0, 0, 8077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8078, 0, 0, 0, 0, 8079, 0, 0, 0, 0, 0, 0, 0, 7954, 7956, 0, 0, 0, 7955, - 7957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7962, 7964, 0, 0, 0, 7963, 7965, - 0, 0, 0, 7970, 7972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7974, 8080, 0, 0, 0, - 0, 0, 0, 0, 7971, 7973, 0, 0, 7975, 8081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8082, 0, 0, 0, 0, 8083, 0, 0, 0, 0, 8084, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8085, 0, 0, 0, 0, 8086, 0, 0, 0, 0, 8087, 0, 0, 0, 0, 0, 0, - 0, 7978, 7980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7982, 8088, 0, 0, 0, 0, 0, - 0, 0, 7979, 7981, 0, 0, 7983, 8089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8090, 0, 0, 0, 0, 8091, 0, 0, 0, 0, 8092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8093, 0, 0, 0, 0, 8094, 0, 0, 0, 0, 8095, 0, 0, 0, 0, 0, 0, 0, - 7986, 7988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7990, 0, 0, 0, 0, 0, 0, 0, 0, - 7987, 7989, 0, 0, 7991, 0, 0, 0, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7998, 0, 0, 0, 0, 0, 0, 0, 0, 7995, 7997, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7999, 0, 0, 0, 0, 0, 0, 0, 0, 8002, 8004, 0, 0, 0, - 8003, 8005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8010, 8012, 0, 0, 0, 8011, - 8013, 0, 0, 0, 8018, 8020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8022, 0, 0, 0, - 0, 0, 0, 0, 0, 8019, 8021, 0, 0, 8023, 0, 0, 0, 0, 0, 0, 0, 0, 8027, - 8029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8031, 0, 0, 0, 0, 0, 0, 0, 0, 8034, - 8036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8038, 8096, 0, 0, 0, 0, 0, 0, 0, - 8035, 8037, 0, 0, 8039, 8097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8098, - 0, 0, 0, 0, 8099, 0, 0, 0, 0, 8100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8101, 0, 0, 0, 0, 8102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8103, 0, 0, - 0, 0, 0, 0, 0, 8042, 8044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8046, 8104, 0, - 0, 0, 0, 0, 0, 0, 8043, 8045, 0, 0, 8047, 8105, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8106, 0, 0, 0, 0, 8107, 0, 0, 0, 0, 8108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8109, 0, 0, 0, 0, 8110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8111, 0, 0, 0, 0, 8114, 0, 0, 0, 0, 8130, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8178, 0, 0, 0, 0, 8119, 0, 0, 0, 0, 0, 0, 0, 8141, 8142, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8143, 0, 0, 0, 0, 0, 8135, 0, 0, 0, 0, 8183, - 0, 0, 0, 0, 0, 0, 0, 8157, 8158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8159, 0, - 0, 0, 8602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8603, 0, 0, 0, 0, 8622, - 0, 0, 0, 0, 8653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8655, 0, 0, 0, 0, - 8654, 0, 0, 0, 0, 8708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8713, 0, 0, - 0, 0, 8716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8740, 0, 0, 0, 0, 8742, - 0, 0, 0, 0, 8769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8772, 0, 0, 0, 0, - 8775, 0, 0, 0, 0, 8777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8813, 0, 0, - 0, 0, 8802, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8816, 0, 0, 0, 0, 8817, - 0, 0, 0, 0, 8820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8821, 0, 0, 0, 0, - 8824, 0, 0, 0, 0, 8825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8832, 0, 0, - 0, 0, 8833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8928, 0, 0, 0, 0, 8929, - 0, 0, 0, 0, 8836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8837, 0, 0, 0, 0, - 8840, 0, 0, 0, 0, 8841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8930, 0, 0, - 0, 0, 8931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8876, 0, 0, 0, 0, 8877, - 0, 0, 0, 0, 8878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8879, 0, 0, 0, 0, - 8938, 0, 0, 0, 0, 8939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8940, 0, 0, - 0, 0, 8941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12436, 0, 0, 0, 0, 12364, - 0, 0, 0, 0, 12366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12368, 0, 0, 0, 0, - 12370, 0, 0, 0, 0, 12372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12374, 0, - 0, 0, 0, 12376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12378, 0, 0, 0, 0, - 12380, 0, 0, 0, 0, 12382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12384, 0, - 0, 0, 0, 12386, 0, 0, 0, 0, 12389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12391, 0, 0, 0, 0, 12393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12400, - 12401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12403, 12404, 0, 0, 0, 12406, - 12407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12409, 12410, 0, 0, 0, 12412, - 12413, 0, 0, 0, 12446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12532, 0, 0, - 0, 0, 12460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12462, 0, 0, 0, 0, - 12464, 0, 0, 0, 0, 12466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12468, 0, - 0, 0, 0, 12470, 0, 0, 0, 0, 12472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12474, 0, 0, 0, 0, 12476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12478, 0, - 0, 0, 0, 12480, 0, 0, 0, 0, 12482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12485, 0, 0, 0, 0, 12487, 0, 0, 0, 0, 12489, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12496, 12497, 0, 0, 0, 12499, 12500, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12502, 12503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12505, 12506, 0, 0, - 0, 12508, 12509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12535, 0, 0, 0, 0, - 12536, 0, 0, 0, 0, 12537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12538, 0, - 0, 0, 0, 12542, 0, + 0, 7915, 7913, 0, 7919, 0, 0, 0, 0, 7917, 0, 0, 0, 0, 0, 0, 0, 0, 7921, + 0, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 481, 0, 0, 0, 0, + 0, 0, 7708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7709, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 8122, + 902, 0, 0, 8121, 8120, 7944, 7945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8124, 8136, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7960, 7961, 0, 0, 0, + 0, 0, 0, 8138, 905, 0, 0, 0, 0, 7976, 7977, 0, 0, 0, 0, 0, 8140, 0, 0, 0, + 0, 0, 0, 0, 0, 8154, 906, 0, 0, 8153, 8152, 0, 938, 0, 0, 0, 0, 0, 0, + 7992, 7993, 0, 0, 0, 0, 0, 0, 8184, 908, 0, 0, 0, 0, 8008, 8009, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8172, 0, 0, 0, 0, 0, 0, 8170, 910, 0, 0, + 8169, 8168, 0, 939, 0, 0, 0, 0, 0, 0, 0, 8025, 0, 0, 0, 0, 0, 0, 8186, + 911, 0, 0, 0, 0, 8040, 8041, 0, 0, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8116, 0, 0, 0, 0, 0, 8132, 0, 0, 0, 0, 0, 0, 0, 0, 8048, + 940, 0, 0, 8113, 8112, 0, 0, 0, 0, 0, 0, 0, 0, 7936, 7937, 0, 0, 0, 0, + 8118, 8115, 0, 0, 0, 0, 0, 0, 0, 0, 8050, 941, 0, 0, 0, 0, 7952, 7953, 0, + 0, 0, 0, 0, 0, 8052, 942, 0, 0, 0, 0, 7968, 7969, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8134, 8131, 8054, 943, 0, 0, 8145, 8144, 0, 970, 0, 0, 0, 0, + 0, 0, 7984, 7985, 0, 0, 0, 0, 8150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8056, 972, + 0, 0, 0, 0, 8000, 8001, 0, 0, 0, 0, 8164, 8165, 0, 0, 0, 0, 0, 0, 8058, + 973, 0, 0, 8161, 8160, 0, 971, 0, 0, 0, 0, 0, 0, 8016, 8017, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8166, 0, 8060, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8032, 8033, 0, 0, 0, 0, 8182, 8179, 0, 0, 0, 0, 0, 0, 0, 0, 8146, + 912, 0, 0, 8151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8162, 944, 0, 0, 8167, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8180, 0, 979, 0, 0, 0, 0, 0, 980, 0, + 0, 0, 0, 0, 1031, 0, 0, 0, 1232, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 1027, 0, + 0, 0, 0, 1024, 0, 0, 0, 0, 1238, 0, 1025, 0, 0, 0, 1217, 0, 1244, 0, 0, + 0, 0, 0, 1246, 0, 0, 0, 0, 0, 0, 1037, 0, 0, 0, 1250, 1049, 0, 1252, 0, + 0, 0, 0, 0, 0, 0, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, + 1262, 1038, 0, 1264, 0, 0, 1266, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1272, 0, 0, 0, 0, 0, 1260, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, + 0, 0, 0, 0, 1107, 0, 0, 0, 0, 1104, 0, 0, 0, 0, 1239, 0, 1105, 0, 0, 0, + 1218, 0, 1245, 0, 0, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, + 1251, 1081, 0, 1253, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1255, 0, 0, 1263, 1118, 0, 1265, 0, 0, 1267, 0, 0, 1269, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1273, 0, 0, 0, 0, 0, 1261, 0, 0, 0, 0, + 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142, 0, 0, 0, 0, 0, 1143, 0, 0, + 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 1258, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1259, 0, 0, 0, 0, 1570, 1571, 1573, 0, + 0, 0, 0, 1572, 0, 0, 0, 0, 0, 1574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1730, 0, 0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 0, 0, + 2345, 0, 0, 0, 0, 0, 2353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356, + 0, 0, 0, 0, 0, 0, 2507, 2508, 0, 0, 0, 0, 0, 0, 2891, 2888, 2892, 0, 0, + 0, 0, 0, 0, 0, 2964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3018, 3020, 0, + 0, 0, 0, 3019, 0, 0, 0, 0, 0, 0, 0, 3144, 0, 0, 0, 0, 0, 0, 0, 3264, 0, + 0, 0, 0, 3274, 3271, 3272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3275, 0, + 0, 0, 0, 0, 0, 0, 3402, 3404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3403, + 0, 0, 0, 0, 0, 0, 0, 3546, 3548, 3550, 0, 0, 0, 3549, 0, 0, 0, 0, 0, 0, + 0, 0, 4134, 0, 0, 0, 0, 0, 0, 6918, 0, 0, 0, 0, 0, 6920, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6922, 0, 0, 0, 0, 0, 6924, 0, 0, 0, 0, 0, 6926, + 0, 0, 0, 0, 0, 6930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6971, 0, 0, + 0, 0, 0, 6973, 0, 0, 0, 0, 0, 6976, 0, 0, 0, 0, 0, 6977, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6979, 0, 0, 0, 0, 0, 0, 7736, 0, 0, 0, 0, 0, + 7737, 0, 0, 0, 0, 0, 7772, 0, 0, 0, 0, 0, 7773, 0, 0, 0, 0, 0, 0, 0, + 7784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7785, 0, 7852, 0, 0, 7862, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7853, 0, 0, 7863, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7878, 0, 0, 0, 0, 0, 7879, 0, 0, 0, 0, 0, 7896, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7897, 0, 0, 0, 7938, 7940, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7942, 8064, 7939, 7941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7943, 8065, + 0, 0, 0, 0, 0, 8066, 0, 0, 0, 0, 0, 8067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8068, 0, 0, 0, 0, 0, 8069, 0, 0, 0, 0, 0, 8070, 0, 0, 0, 0, 0, + 8071, 0, 0, 0, 0, 0, 0, 0, 0, 7946, 7948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7950, 8072, 7947, 7949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7951, 8073, 0, 0, + 0, 0, 0, 8074, 0, 0, 0, 0, 0, 8075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8076, 0, 0, 0, 0, 0, 8077, 0, 0, 0, 0, 0, 8078, 0, 0, 0, 0, 0, 8079, + 0, 0, 0, 0, 0, 0, 0, 0, 7954, 7956, 0, 0, 0, 0, 7955, 7957, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7962, 7964, 0, 0, 0, 0, 7963, 7965, 0, 0, 0, 0, + 7970, 7972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7974, 8080, 7971, 7973, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7975, 8081, 0, 0, 0, 0, 0, 8082, 0, 0, 0, 0, 0, + 8083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8084, 0, 0, 0, 0, 0, 8085, + 0, 0, 0, 0, 0, 8086, 0, 0, 0, 0, 0, 8087, 0, 0, 0, 0, 0, 0, 0, 0, 7978, + 7980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7982, 8088, 7979, 7981, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7983, 8089, 0, 0, 0, 0, 0, 8090, 0, 0, 0, 0, 0, 8091, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8092, 0, 0, 0, 0, 0, 8093, 0, 0, + 0, 0, 0, 8094, 0, 0, 0, 0, 0, 8095, 0, 0, 0, 0, 0, 0, 0, 0, 7986, 7988, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7990, 0, 7987, 7989, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7994, 7996, 0, 0, 7998, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7995, 7997, 0, 0, 7999, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8002, 8004, 0, 0, 0, 0, 8003, 8005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8010, 8012, 0, 0, 0, 0, 8011, 8013, 0, 0, 0, 0, 8018, 8020, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8022, 0, 8019, 8021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8027, 8029, 0, 0, 8031, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8034, 8036, 0, 0, 8038, 8096, 0, 0, 0, 0, 0, 0, 0, 0, 8035, + 8037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8039, 8097, 0, 0, 0, 0, 0, 8098, 0, + 0, 0, 0, 0, 8099, 0, 0, 0, 0, 0, 8100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 8101, 0, 0, 0, 0, 0, 8102, 0, 0, 0, 0, 0, 8103, 0, 0, 0, 0, 0, 0, + 0, 0, 8042, 8044, 0, 0, 8046, 8104, 0, 0, 0, 0, 0, 0, 0, 0, 8043, 8045, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8047, 8105, 0, 0, 0, 0, 0, 8106, 0, 0, 0, + 0, 0, 8107, 0, 0, 0, 0, 0, 8108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8109, 0, 0, 0, 0, 0, 8110, 0, 0, 0, 0, 0, 8111, 0, 0, 0, 0, 0, 8114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8130, 0, 0, 0, 0, 0, 8178, 0, 0, 0, + 0, 0, 8119, 0, 0, 0, 0, 0, 0, 0, 0, 8141, 8142, 0, 0, 8143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8135, 0, 0, 0, 0, 0, 8183, 0, 0, 0, 0, 0, + 0, 0, 0, 8157, 8158, 0, 0, 8159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8602, 0, 0, 0, 0, 0, 8603, 0, 0, 0, 0, 0, 8622, 0, 0, 0, 0, 0, 8653, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8655, 0, 0, 0, 0, 0, 8654, 0, 0, 0, + 0, 0, 8708, 0, 0, 0, 0, 0, 8713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8716, 0, 0, 0, 0, 0, 8740, 0, 0, 0, 0, 0, 8742, 0, 0, 0, 0, 0, 8769, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8772, 0, 0, 0, 0, 0, 8775, 0, 0, 0, + 0, 0, 8777, 0, 0, 0, 0, 0, 8813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8802, 0, 0, 0, 0, 0, 8816, 0, 0, 0, 0, 0, 8817, 0, 0, 0, 0, 0, 8820, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8821, 0, 0, 0, 0, 0, 8824, 0, 0, 0, + 0, 0, 8825, 0, 0, 0, 0, 0, 8832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8833, 0, 0, 0, 0, 0, 8928, 0, 0, 0, 0, 0, 8929, 0, 0, 0, 0, 0, 8836, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8837, 0, 0, 0, 0, 0, 8840, 0, 0, 0, + 0, 0, 8841, 0, 0, 0, 0, 0, 8930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8931, 0, 0, 0, 0, 0, 8876, 0, 0, 0, 0, 0, 8877, 0, 0, 0, 0, 0, 8878, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8879, 0, 0, 0, 0, 0, 8938, 0, 0, 0, + 0, 0, 8939, 0, 0, 0, 0, 0, 8940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8941, 0, 0, 0, 0, 0, 0, 12436, 0, 0, 0, 0, 0, 12364, 0, 0, 0, 0, 0, + 12366, 0, 0, 0, 0, 0, 12368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12370, 0, 0, 0, 0, 0, 12372, 0, 0, 0, 0, 0, 12374, 0, 0, 0, 0, 0, 12376, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12378, 0, 0, 0, 0, 0, 12380, 0, 0, + 0, 0, 0, 12382, 0, 0, 0, 0, 0, 12384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12386, 0, 0, 0, 0, 0, 12389, 0, 0, 0, 0, 0, 12391, 0, 0, 0, 0, 0, + 12393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12400, 12401, 0, 0, 0, 0, + 12403, 12404, 0, 0, 0, 0, 12406, 12407, 0, 0, 0, 0, 12409, 12410, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12412, 12413, 0, 0, 0, 0, 12446, 0, 0, 0, + 0, 0, 12532, 0, 0, 0, 0, 0, 12460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12462, 0, 0, 0, 0, 0, 12464, 0, 0, 0, 0, 0, 12466, 0, 0, 0, 0, 0, 12468, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12470, 0, 0, 0, 0, 0, 12472, 0, 0, + 0, 0, 0, 12474, 0, 0, 0, 0, 0, 12476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12478, 0, 0, 0, 0, 0, 12480, 0, 0, 0, 0, 0, 12482, 0, 0, 0, 0, 0, + 12485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12487, 0, 0, 0, 0, 0, + 12489, 0, 0, 0, 0, 0, 12496, 12497, 0, 0, 0, 0, 12499, 12500, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12502, 12503, 0, 0, 0, 0, 12505, 12506, 0, 0, 0, + 0, 12508, 12509, 0, 0, 0, 0, 12535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12536, 0, 0, 0, 0, 0, 12537, 0, 0, 0, 0, 0, 12538, 0, 0, 0, 0, 0, + 12542, 0, }; static const change_record change_records_3_2_0[] = { - { 255, 255, 255, 0 }, - { 11, 255, 255, 0 }, - { 10, 255, 255, 0 }, - { 19, 21, 255, 0 }, - { 255, 255, 2, 0 }, - { 255, 255, 3, 0 }, - { 255, 255, 1, 0 }, - { 255, 0, 255, 0 }, - { 255, 29, 255, 0 }, - { 14, 255, 255, 0 }, - { 255, 7, 1, 0 }, - { 255, 7, 2, 0 }, - { 255, 7, 3, 0 }, - { 255, 7, 4, 0 }, - { 255, 7, 5, 0 }, - { 255, 7, 6, 0 }, - { 255, 7, 7, 0 }, - { 255, 7, 8, 0 }, - { 255, 7, 9, 0 }, - { 255, 5, 255, 0 }, - { 15, 14, 255, 0 }, - { 255, 10, 255, 0 }, - { 18, 255, 255, 0 }, - { 19, 255, 255, 0 }, - { 255, 255, 0, 0 }, - { 255, 255, 4, 0 }, - { 255, 255, 5, 0 }, - { 255, 255, 6, 0 }, - { 255, 255, 7, 0 }, - { 255, 255, 8, 0 }, - { 255, 255, 9, 0 }, - { 9, 255, 255, 0 }, - { 255, 20, 255, 0 }, - { 255, 19, 255, 0 }, - { 15, 255, 255, 0 }, - { 255, 255, 255, -1 }, + { 255, 255, 255, 255, 0 }, + { 11, 255, 255, 255, 0 }, + { 10, 255, 255, 255, 0 }, + { 19, 21, 255, 255, 0 }, + { 255, 255, 2, 255, 0 }, + { 255, 255, 3, 255, 0 }, + { 255, 255, 1, 255, 0 }, + { 255, 0, 255, 255, 0 }, + { 255, 2, 255, 255, 0 }, + { 255, 29, 255, 255, 0 }, + { 255, 26, 255, 255, 0 }, + { 5, 255, 255, 255, 0 }, + { 14, 255, 255, 255, 0 }, + { 255, 255, 255, 0, 0 }, + { 255, 7, 1, 255, 0 }, + { 255, 7, 2, 255, 0 }, + { 255, 7, 3, 255, 0 }, + { 255, 7, 4, 255, 0 }, + { 255, 7, 5, 255, 0 }, + { 255, 7, 6, 255, 0 }, + { 255, 7, 7, 255, 0 }, + { 255, 7, 8, 255, 0 }, + { 255, 7, 9, 255, 0 }, + { 255, 5, 255, 255, 0 }, + { 15, 14, 255, 255, 0 }, + { 255, 10, 255, 255, 0 }, + { 18, 255, 255, 255, 0 }, + { 19, 255, 255, 255, 0 }, + { 255, 255, 0, 255, 0 }, + { 255, 255, 4, 255, 0 }, + { 255, 255, 5, 255, 0 }, + { 255, 255, 6, 255, 0 }, + { 255, 255, 7, 255, 0 }, + { 255, 255, 8, 255, 0 }, + { 255, 255, 9, 255, 0 }, + { 19, 30, 255, 255, 0 }, + { 255, 8, 255, 255, 0 }, + { 255, 22, 255, 255, 0 }, + { 255, 23, 255, 255, 0 }, + { 9, 255, 255, 255, 0 }, + { 255, 20, 255, 255, 0 }, + { 255, 19, 255, 255, 0 }, + { 255, 255, 255, 255, -1 }, + { 15, 255, 255, 255, 0 }, + { 255, 19, 255, 255, -1 }, }; static unsigned char changes_3_2_0_index[] = { - 0, 1, 2, 2, 3, 4, 5, 6, 2, 7, 2, 8, 9, 10, 11, 2, 2, 2, 12, 13, 14, 15, - 16, 17, 2, 18, 2, 2, 2, 2, 2, 19, 2, 20, 2, 2, 21, 22, 23, 24, 2, 2, 2, - 2, 2, 2, 2, 25, 26, 2, 27, 28, 29, 2, 2, 2, 2, 2, 30, 31, 2, 2, 2, 2, 32, - 33, 34, 2, 35, 2, 2, 36, 37, 38, 2, 2, 39, 40, 2, 41, 42, 42, 2, 2, 2, 2, - 43, 2, 44, 45, 46, 47, 48, 2, 2, 2, 2, 49, 2, 50, 51, 52, 53, 54, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 1, 2, 2, 3, 4, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 2, 2, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 2, 2, 2, 23, 24, 25, 26, 2, 2, 27, 28, 29, 30, 2, 2, + 2, 2, 2, 31, 2, 32, 33, 34, 35, 36, 37, 2, 38, 39, 40, 2, 41, 42, 2, 43, + 2, 2, 44, 45, 46, 47, 48, 2, 2, 49, 50, 51, 2, 2, 52, 53, 2, 54, 55, 55, + 2, 2, 2, 2, 56, 2, 57, 58, 59, 60, 61, 2, 2, 2, 2, 62, 63, 64, 65, 66, + 67, 68, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 55, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 69, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 56, 57, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58, 2, 59, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 70, 71, 2, 2, 2, 2, 2, 2, 2, 2, 2, 41, 41, 72, 73, 41, 74, 75, 76, 77, + 2, 78, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 60, 61, 62, 2, 2, 2, 2, 63, 64, 2, 65, 66, - 67, 68, 69, 70, 2, 2, 71, 72, 73, 74, 2, 2, 2, 2, 2, 2, 75, 2, 2, 2, 76, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 79, 80, 81, 82, 83, 2, 2, 2, + 2, 84, 85, 2, 86, 87, 88, 89, 90, 91, 2, 92, 93, 94, 95, 96, 2, 2, 2, 2, + 2, 2, 97, 2, 98, 2, 99, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 41, 41, 41, 41, 41, 41, 100, 2, 101, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4339,9 +4550,9 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 102, 2, 103, 2, 104, 2, 2, 105, 2, 2, 2, 106, 107, 108, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 77, 2, 78, 2, 2, 79, 2, 2, - 2, 80, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 109, 110, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4363,6 +4574,7 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 111, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4598,9 +4810,9 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 41, 112, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 30, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -4662,9 +4874,7 @@ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, }; static unsigned char changes_3_2_0_data[] = { @@ -4686,248 +4896,319 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 9, 0, 7, 7, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 12, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, + 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 23, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, - 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 26, 27, 28, 29, 30, 1, - 1, 0, 0, 0, 0, 24, 6, 4, 5, 25, 26, 27, 28, 29, 30, 1, 1, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 30, 31, 32, 33, 34, + 1, 1, 0, 0, 0, 0, 28, 6, 4, 5, 29, 30, 31, 32, 33, 34, 1, 1, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 7, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, + 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, + 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4935,179 +5216,274 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, + 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, + 13, 0, 0, 0, 1, 1, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 43, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 0, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 0, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, + 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0, 7, - 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, - 0, 0, 0, 7, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 0, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, + 0, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 7, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; static const change_record* get_change_3_2_0(Py_UCS4 n) Modified: python/branches/tlee-ast-optimize/Modules/unicodename_db.h ============================================================================== --- python/branches/tlee-ast-optimize/Modules/unicodename_db.h (original) +++ python/branches/tlee-ast-optimize/Modules/unicodename_db.h Sun Sep 21 06:05:44 2008 @@ -1,1247 +1,1344 @@ -/* this file was generated by Tools/unicode/makeunicodedata.py 2.5 */ +/* this file was generated by Tools/unicode/makeunicodedata.py 2.6 */ #define NAME_MAXLEN 256 /* lexicon */ static unsigned char lexicon[] = { 76, 69, 84, 84, 69, 210, 87, 73, 84, 200, 83, 77, 65, 76, 204, 83, 89, - 76, 76, 65, 66, 76, 197, 67, 65, 80, 73, 84, 65, 204, 89, 201, 67, 74, - 203, 76, 65, 84, 73, 206, 67, 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, - 217, 77, 65, 84, 72, 69, 77, 65, 84, 73, 67, 65, 204, 65, 82, 65, 66, 73, - 195, 83, 89, 77, 66, 79, 204, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, - 73, 65, 206, 83, 89, 76, 76, 65, 66, 73, 67, 211, 66, 79, 76, 196, 71, - 82, 69, 69, 203, 76, 73, 71, 65, 84, 85, 82, 197, 65, 78, 196, 77, 85, - 83, 73, 67, 65, 204, 83, 73, 71, 206, 69, 84, 72, 73, 79, 80, 73, 195, - 72, 65, 78, 71, 85, 204, 73, 84, 65, 76, 73, 195, 82, 65, 68, 73, 67, 65, - 204, 68, 73, 71, 73, 212, 83, 65, 78, 83, 45, 83, 69, 82, 73, 198, 70, - 79, 210, 67, 73, 82, 67, 76, 69, 196, 70, 73, 78, 65, 204, 83, 81, 85, - 65, 82, 197, 67, 89, 82, 73, 76, 76, 73, 195, 86, 79, 87, 69, 204, 86, - 65, 82, 73, 65, 84, 73, 79, 206, 66, 82, 65, 73, 76, 76, 197, 80, 65, 84, - 84, 69, 82, 206, 66, 89, 90, 65, 78, 84, 73, 78, 197, 82, 73, 71, 72, - 212, 73, 83, 79, 76, 65, 84, 69, 196, 76, 69, 70, 212, 194, 75, 65, 84, - 65, 75, 65, 78, 193, 75, 65, 78, 71, 88, 201, 76, 73, 78, 69, 65, 210, - 68, 79, 85, 66, 76, 197, 66, 69, 76, 79, 87, 128, 84, 73, 66, 69, 84, 65, - 206, 65, 66, 79, 86, 69, 128, 77, 79, 68, 73, 70, 73, 69, 210, 67, 79, - 77, 66, 73, 78, 73, 78, 199, 77, 69, 69, 205, 83, 73, 71, 78, 128, 68, - 79, 212, 73, 78, 73, 84, 73, 65, 204, 67, 65, 82, 82, 73, 69, 210, 65, - 82, 82, 79, 87, 128, 89, 69, 200, 77, 79, 78, 71, 79, 76, 73, 65, 206, - 86, 69, 82, 84, 73, 67, 65, 204, 65, 66, 79, 86, 197, 78, 85, 77, 66, 69, - 210, 67, 79, 80, 84, 73, 195, 75, 72, 77, 69, 210, 87, 72, 73, 84, 197, - 65, 82, 82, 79, 215, 66, 79, 216, 65, 128, 72, 69, 66, 82, 69, 215, 77, - 65, 82, 75, 128, 68, 82, 65, 87, 73, 78, 71, 211, 73, 128, 79, 128, 72, - 65, 76, 70, 87, 73, 68, 84, 200, 71, 69, 79, 82, 71, 73, 65, 206, 82, 73, - 71, 72, 84, 87, 65, 82, 68, 211, 73, 68, 69, 79, 71, 82, 65, 205, 85, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 73, 195, 84, 65, 201, 80, 65, - 82, 69, 78, 84, 72, 69, 83, 73, 90, 69, 196, 65, 76, 69, 198, 83, 67, 82, - 73, 80, 212, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 66, 76, 65, 67, - 203, 84, 79, 128, 85, 208, 70, 85, 76, 76, 87, 73, 68, 84, 200, 72, 79, - 79, 75, 128, 83, 89, 77, 66, 79, 76, 128, 68, 79, 87, 206, 70, 82, 65, - 75, 84, 85, 210, 72, 65, 200, 69, 81, 85, 65, 204, 72, 69, 65, 86, 217, - 84, 65, 199, 71, 76, 65, 71, 79, 76, 73, 84, 73, 195, 67, 72, 65, 82, 65, - 67, 84, 69, 210, 65, 82, 77, 69, 78, 73, 65, 206, 66, 69, 78, 71, 65, 76, - 201, 67, 72, 79, 83, 69, 79, 78, 199, 74, 69, 69, 205, 66, 82, 65, 67, - 75, 69, 84, 128, 72, 73, 82, 65, 71, 65, 78, 193, 87, 69, 83, 84, 45, 67, - 82, 69, 197, 84, 72, 65, 201, 83, 84, 82, 79, 75, 69, 128, 67, 72, 69, - 82, 79, 75, 69, 197, 73, 68, 69, 79, 71, 82, 65, 80, 200, 84, 87, 79, - 128, 71, 85, 74, 65, 82, 65, 84, 201, 77, 69, 68, 73, 65, 204, 74, 79, - 78, 71, 83, 69, 79, 78, 199, 75, 65, 78, 78, 65, 68, 193, 78, 69, 215, - 207, 79, 82, 73, 89, 193, 82, 85, 78, 73, 195, 84, 69, 84, 82, 65, 71, - 82, 65, 205, 68, 69, 83, 69, 82, 69, 212, 76, 85, 197, 83, 73, 78, 72, - 65, 76, 193, 84, 69, 76, 85, 71, 213, 66, 65, 82, 128, 78, 79, 84, 65, - 84, 73, 79, 206, 79, 78, 69, 128, 83, 89, 82, 73, 65, 195, 77, 65, 76, - 65, 89, 65, 76, 65, 205, 77, 89, 65, 78, 77, 65, 210, 71, 85, 82, 77, 85, - 75, 72, 201, 65, 67, 85, 84, 69, 128, 76, 73, 71, 72, 212, 72, 65, 76, - 198, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 76, 69, 70, 84, - 87, 65, 82, 68, 211, 84, 65, 77, 73, 204, 65, 80, 204, 70, 85, 78, 67, - 84, 73, 79, 78, 65, 204, 72, 65, 77, 90, 193, 84, 69, 76, 69, 71, 82, 65, - 80, 200, 74, 85, 78, 71, 83, 69, 79, 78, 199, 79, 198, 68, 65, 83, 73, - 193, 76, 73, 77, 66, 213, 77, 65, 75, 83, 85, 82, 193, 75, 72, 65, 82, - 79, 83, 72, 84, 72, 201, 76, 65, 207, 84, 207, 66, 65, 82, 194, 66, 79, - 80, 79, 77, 79, 70, 207, 72, 69, 88, 65, 71, 82, 65, 205, 77, 65, 82, - 203, 80, 83, 73, 76, 201, 77, 79, 78, 79, 83, 80, 65, 67, 197, 78, 79, - 212, 72, 79, 82, 73, 90, 79, 78, 84, 65, 204, 75, 72, 65, 200, 86, 79, - 67, 65, 76, 73, 195, 84, 72, 82, 69, 69, 128, 65, 69, 71, 69, 65, 206, - 76, 79, 87, 69, 210, 84, 73, 76, 68, 69, 128, 76, 79, 215, 84, 87, 207, - 67, 89, 80, 82, 73, 79, 212, 84, 73, 70, 73, 78, 65, 71, 200, 68, 73, 65, - 69, 82, 69, 83, 73, 83, 128, 70, 73, 86, 69, 128, 70, 79, 85, 82, 128, - 78, 85, 77, 69, 82, 65, 204, 86, 128, 65, 67, 82, 79, 80, 72, 79, 78, 73, - 195, 68, 79, 84, 211, 76, 79, 78, 199, 80, 69, 82, 83, 73, 65, 206, 65, - 78, 71, 76, 197, 72, 65, 82, 80, 79, 79, 206, 83, 73, 88, 128, 84, 79, - 78, 197, 85, 80, 80, 69, 210, 67, 73, 82, 67, 85, 77, 70, 76, 69, 216, - 71, 82, 65, 86, 69, 128, 72, 128, 65, 76, 80, 72, 193, 69, 73, 71, 72, - 84, 128, 77, 65, 67, 82, 79, 78, 128, 78, 79, 79, 206, 84, 72, 65, 65, - 78, 193, 72, 73, 71, 200, 75, 65, 128, 78, 73, 78, 69, 128, 83, 69, 86, - 69, 78, 128, 84, 72, 82, 69, 197, 84, 85, 82, 78, 69, 196, 83, 72, 65, - 86, 73, 65, 206, 83, 84, 79, 80, 128, 68, 128, 71, 128, 79, 77, 69, 71, - 193, 79, 88, 73, 65, 128, 83, 85, 66, 74, 79, 73, 78, 69, 196, 86, 65, - 82, 73, 65, 128, 89, 65, 128, 66, 128, 67, 73, 82, 67, 76, 197, 72, 65, - 128, 74, 128, 77, 65, 128, 82, 69, 86, 69, 82, 83, 69, 196, 82, 73, 71, - 72, 84, 128, 85, 80, 87, 65, 82, 68, 211, 80, 65, 83, 83, 73, 86, 69, 45, - 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, 66, 89, - 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, 78, 73, - 65, 206, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, - 67, 73, 69, 85, 67, 128, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, 76, 76, - 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 65, 78, 84, 73, 67, 76, 79, 67, - 75, 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, 67, 69, 79, 78, 71, - 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 83, - 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, - 82, 73, 69, 85, 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, 69, 85, - 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, 78, 71, 80, 73, 69, - 85, 80, 128, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, 79, 85, - 84, 80, 85, 212, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67, 72, 73, - 69, 85, 67, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, 78, 71, - 67, 73, 69, 85, 67, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 45, - 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, - 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, - 85, 84, 45, 72, 73, 69, 85, 72, 128, 84, 82, 79, 77, 73, 75, 79, 80, 65, - 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, 83, 73, - 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, 83, 73, - 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 75, 73, - 89, 69, 79, 75, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, 89, 69, - 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, - 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 73, 69, 85, 78, 71, 45, 83, 83, - 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 76, 79, 78, 71, 45, 66, 82, 65, - 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 80, 65, 82, 84, 73, 65, 76, 76, - 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 82, 73, 69, 85, 76, 45, 80, 73, - 69, 85, 80, 45, 72, 73, 69, 85, 72, 128, 83, 72, 79, 82, 84, 45, 84, 87, - 73, 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 73, 79, 83, 45, 80, 73, 69, - 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 75, 65, 84, 65, 75, 65, 78, 65, - 45, 72, 73, 82, 65, 71, 65, 78, 193, 82, 73, 69, 85, 76, 45, 80, 73, 69, - 85, 80, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, 45, 80, - 65, 78, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, - 67, 73, 69, 85, 67, 128, 77, 65, 82, 67, 65, 84, 79, 45, 83, 84, 65, 67, - 67, 65, 84, 79, 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 67, 73, - 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 83, 73, 79, 83, 45, 80, 73, 69, - 85, 80, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, 85, 77, 45, 83, 73, 79, - 83, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 72, 65, 71, 65, 76, - 204, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, 85, 78, 67, 84, 73, 79, 206, - 84, 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, 73, 83, 84, 79, 78, 128, 75, - 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, 85, 80, 72, 128, 65, 78, 84, - 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, 78, 128, 65, 67, 67, 69, 78, - 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 65, 78, 84, 73, 75, 69, 78, - 79, 75, 89, 76, 73, 83, 77, 65, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, - 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 69, 85, 67, 72, 45, 75, 72, 73, - 69, 85, 75, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 72, 73, 69, 85, - 67, 72, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, - 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 68, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 69, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 54, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 55, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 70, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 48, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 56, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 57, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 49, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 50, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 65, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 66, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 51, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 52, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 67, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 68, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 53, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 54, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 69, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 70, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 55, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 56, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 48, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 49, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, - 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 57, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 65, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 50, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 51, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 66, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 67, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 52, 128, 73, - 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 53, 128, 73, 68, 69, - 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, - 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, - 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, - 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, - 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 68, 128, 74, - 65, 76, 76, 65, 74, 65, 76, 65, 76, 79, 85, 72, 79, 85, 128, 75, 82, 65, - 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 75, 82, 65, 84, 73, - 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, 76, 79, 78, 71, 45, 66, 82, - 65, 78, 67, 72, 45, 77, 65, 68, 210, 77, 73, 69, 85, 77, 45, 83, 83, 65, - 78, 71, 83, 73, 79, 83, 128, 80, 69, 84, 65, 83, 84, 79, 75, 79, 85, 70, - 73, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, 83, 83, 65, 78, 71, 83, 73, - 79, 83, 128, 80, 83, 73, 70, 73, 83, 84, 79, 76, 89, 71, 73, 83, 77, 65, - 128, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, 78, 65, 71, 77, 65, 128, 82, - 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 84, 69, 65, - 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, 69, 196, 80, 82, 79, 83, 71, - 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 84, 69, 65, 82, 68, 82, 79, 80, - 45, 83, 80, 79, 75, 69, 196, 66, 76, 65, 67, 75, 45, 70, 69, 65, 84, 72, - 69, 82, 69, 196, 84, 82, 73, 65, 78, 71, 76, 69, 45, 72, 69, 65, 68, 69, - 196, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, 84, 73, 79, 78, 128, 72, 73, - 71, 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, 45, 185, 65, 70, 79, 82, 69, - 77, 69, 78, 84, 73, 79, 78, 69, 68, 128, 65, 82, 79, 85, 78, 68, 45, 80, - 82, 79, 70, 73, 76, 69, 128, 67, 79, 78, 67, 65, 86, 69, 45, 80, 79, 73, - 78, 84, 69, 196, 71, 79, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, - 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, 84, 73, 79, 78, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 57, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 69, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 70, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 48, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 52, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 53, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 54, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 65, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 66, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 67, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 48, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 49, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 50, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 54, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 55, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 56, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 67, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 68, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 69, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 50, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 51, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 52, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 56, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 57, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 65, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 57, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 65, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 66, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 70, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 48, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 49, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 53, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 54, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 55, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 66, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 67, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 68, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 49, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 50, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 51, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 55, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 56, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 57, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 68, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 69, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 70, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 51, - 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 52, 128, 73, 68, - 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 53, 128, 73, 68, 69, 79, 71, - 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, - 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, - 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 57, - 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 79, 83, 211, 76, 79, - 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 83, 79, 204, 76, 79, 78, 71, 45, - 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 77, 85, 76, 84, 73, 80, 76, 73, - 67, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 76, 73, 90, 65, 84, - 73, 79, 78, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 77, 65, 68, - 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, 85, 196, 83, 73, - 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 84, 69, 65, 82, 68, - 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 82, 79, 77, 73, 75, 79, 76, - 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, 83, 89, 78, 65, - 71, 77, 65, 128, 87, 72, 73, 84, 69, 45, 70, 69, 65, 84, 72, 69, 82, 69, - 196, 89, 80, 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 82, 73, 71, - 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 77, 85, 76, 84, 73, 80, 76, - 73, 67, 65, 84, 73, 79, 206, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, 79, - 87, 69, 196, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196, 75, - 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 82, 73, 69, 85, 76, - 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 84, 72, 73, - 69, 85, 84, 72, 128, 65, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, 78, - 128, 65, 83, 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217, 77, 73, 69, - 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, 80, - 65, 78, 83, 73, 79, 83, 128, 80, 65, 82, 65, 76, 76, 69, 76, 79, 71, 82, - 65, 77, 128, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 82, 128, 80, - 72, 73, 69, 85, 80, 72, 45, 80, 73, 69, 85, 80, 128, 80, 73, 69, 85, 80, - 45, 80, 72, 73, 69, 85, 80, 72, 128, 80, 73, 69, 85, 80, 45, 84, 72, 73, - 69, 85, 84, 72, 128, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, 69, - 128, 82, 73, 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83, 128, 84, 69, 84, - 65, 82, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 73, 75, 69, 85, 84, 45, - 75, 73, 89, 69, 79, 75, 128, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, 79, - 85, 78, 196, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, 65, - 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89, 65, 128, 66, 79, 84, 84, 79, - 77, 45, 76, 73, 71, 72, 84, 69, 196, 67, 72, 73, 69, 85, 67, 72, 45, 72, - 73, 69, 85, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, 67, - 128, 67, 79, 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 68, 79, 84, - 83, 45, 49, 50, 51, 52, 53, 54, 55, 56, 128, 69, 77, 66, 69, 76, 76, 73, - 83, 72, 77, 69, 78, 84, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85, - 67, 72, 128, 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 73, - 69, 85, 78, 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, - 45, 84, 72, 73, 69, 85, 84, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, - 73, 69, 85, 76, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, - 210, 77, 73, 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, 69, - 85, 78, 45, 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, 69, 85, 80, 45, 67, - 72, 73, 69, 85, 67, 72, 128, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, - 75, 72, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, - 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 83, 79, 204, 83, 72, 79, 82, 84, - 45, 84, 87, 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, - 71, 45, 89, 82, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, - 128, 83, 84, 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 69, - 82, 77, 79, 68, 89, 78, 65, 77, 73, 67, 128, 89, 85, 85, 75, 65, 76, 69, - 65, 80, 73, 78, 84, 85, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, - 78, 128, 65, 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 76, 69, 70, - 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 73, 78, 84, 69, 82, 83, 69, 67, - 84, 73, 79, 78, 128, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 76, 217, - 68, 73, 70, 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 79, 87, 78, 45, - 80, 79, 73, 78, 84, 73, 78, 199, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, - 78, 79, 206, 67, 82, 89, 80, 84, 79, 71, 82, 65, 77, 77, 73, 195, 72, 89, - 80, 72, 69, 78, 45, 77, 73, 78, 85, 83, 128, 67, 79, 78, 67, 65, 86, 69, - 45, 83, 73, 68, 69, 196, 76, 69, 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, - 212, 78, 73, 69, 85, 78, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, - 76, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 71, 72, 84, 45, 84, 79, 45, - 76, 69, 70, 212, 84, 82, 65, 78, 83, 80, 79, 83, 73, 84, 73, 79, 206, 67, - 82, 79, 83, 83, 69, 68, 45, 84, 65, 73, 76, 128, 68, 73, 77, 73, 78, 85, - 84, 73, 79, 78, 45, 49, 128, 68, 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, - 69, 196, 71, 65, 69, 84, 84, 65, 45, 80, 73, 76, 76, 65, 128, 71, 69, 79, - 77, 69, 84, 82, 73, 67, 65, 76, 76, 217, 73, 69, 85, 78, 71, 45, 75, 73, - 89, 69, 79, 75, 128, 73, 78, 84, 69, 82, 80, 79, 76, 65, 84, 73, 79, 206, - 78, 73, 69, 85, 78, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, - 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, - 85, 84, 128, 84, 72, 73, 82, 84, 89, 45, 83, 69, 67, 79, 78, 196, 84, 87, - 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 200, 84, 87, 69, 78, 84, 89, 45, - 84, 72, 82, 69, 69, 128, 65, 67, 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, + 76, 76, 65, 66, 76, 197, 83, 73, 71, 206, 67, 65, 80, 73, 84, 65, 204, + 76, 65, 84, 73, 206, 89, 201, 67, 74, 203, 65, 82, 65, 66, 73, 195, 67, + 79, 77, 80, 65, 84, 73, 66, 73, 76, 73, 84, 217, 77, 65, 84, 72, 69, 77, + 65, 84, 73, 67, 65, 204, 67, 85, 78, 69, 73, 70, 79, 82, 205, 83, 89, 77, + 66, 79, 204, 70, 79, 82, 77, 128, 67, 65, 78, 65, 68, 73, 65, 206, 83, + 89, 76, 76, 65, 66, 73, 67, 211, 66, 79, 76, 196, 71, 82, 69, 69, 203, + 76, 73, 71, 65, 84, 85, 82, 197, 68, 73, 71, 73, 212, 65, 78, 196, 77, + 85, 83, 73, 67, 65, 204, 84, 73, 77, 69, 211, 69, 84, 72, 73, 79, 80, 73, + 195, 72, 65, 78, 71, 85, 204, 73, 84, 65, 76, 73, 195, 67, 89, 82, 73, + 76, 76, 73, 195, 82, 65, 68, 73, 67, 65, 204, 83, 65, 78, 83, 45, 83, 69, + 82, 73, 198, 86, 79, 87, 69, 204, 70, 79, 210, 67, 73, 82, 67, 76, 69, + 196, 86, 65, 201, 70, 73, 78, 65, 204, 67, 79, 77, 66, 73, 78, 73, 78, + 199, 83, 81, 85, 65, 82, 197, 86, 65, 82, 73, 65, 84, 73, 79, 206, 66, + 82, 65, 73, 76, 76, 197, 80, 65, 84, 84, 69, 82, 206, 82, 73, 71, 72, + 212, 76, 69, 70, 212, 66, 89, 90, 65, 78, 84, 73, 78, 197, 73, 83, 79, + 76, 65, 84, 69, 196, 194, 65, 66, 79, 86, 69, 128, 68, 79, 85, 66, 76, + 197, 75, 65, 84, 65, 75, 65, 78, 193, 75, 65, 78, 71, 88, 201, 76, 73, + 78, 69, 65, 210, 66, 69, 76, 79, 87, 128, 77, 79, 68, 73, 70, 73, 69, + 210, 83, 73, 71, 78, 128, 84, 73, 66, 69, 84, 65, 206, 77, 69, 69, 205, + 68, 79, 212, 65, 128, 65, 82, 82, 79, 87, 128, 73, 78, 73, 84, 73, 65, + 204, 67, 65, 82, 82, 73, 69, 210, 86, 69, 82, 84, 73, 67, 65, 204, 89, + 69, 200, 87, 72, 73, 84, 197, 65, 66, 79, 86, 197, 78, 85, 77, 66, 69, + 210, 85, 128, 65, 82, 82, 79, 215, 77, 79, 78, 71, 79, 76, 73, 65, 206, + 77, 89, 65, 78, 77, 65, 210, 67, 79, 80, 84, 73, 195, 75, 72, 77, 69, + 210, 79, 128, 73, 128, 84, 73, 76, 197, 77, 65, 82, 75, 128, 66, 79, 216, + 72, 69, 66, 82, 69, 215, 80, 76, 85, 211, 68, 82, 65, 87, 73, 78, 71, + 211, 82, 73, 71, 72, 84, 87, 65, 82, 68, 211, 83, 84, 82, 79, 75, 69, + 128, 72, 65, 76, 70, 87, 73, 68, 84, 200, 66, 65, 76, 73, 78, 69, 83, + 197, 66, 76, 65, 67, 203, 71, 69, 79, 82, 71, 73, 65, 206, 72, 79, 79, + 75, 128, 73, 68, 69, 79, 71, 82, 65, 205, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 73, 195, 84, 65, 201, 65, 76, 69, 198, 80, 65, 82, 69, 78, 84, 72, + 69, 83, 73, 90, 69, 196, 68, 69, 86, 65, 78, 65, 71, 65, 82, 201, 83, 67, + 82, 73, 80, 212, 84, 79, 128, 213, 83, 89, 77, 66, 79, 76, 128, 85, 208, + 70, 85, 76, 76, 87, 73, 68, 84, 200, 72, 65, 200, 68, 79, 87, 206, 66, + 82, 65, 67, 75, 69, 84, 128, 69, 81, 85, 65, 204, 79, 198, 79, 86, 69, + 210, 84, 65, 199, 68, 79, 77, 73, 78, 207, 70, 82, 65, 75, 84, 85, 210, + 78, 85, 77, 69, 82, 73, 195, 72, 69, 65, 86, 217, 84, 87, 79, 128, 77, + 65, 76, 65, 89, 65, 76, 65, 205, 71, 76, 65, 71, 79, 76, 73, 84, 73, 195, + 67, 72, 65, 82, 65, 67, 84, 69, 210, 76, 69, 70, 84, 87, 65, 82, 68, 211, + 79, 78, 69, 128, 84, 69, 76, 85, 71, 213, 65, 82, 77, 69, 78, 73, 65, + 206, 66, 69, 78, 71, 65, 76, 201, 67, 72, 79, 83, 69, 79, 78, 199, 74, + 69, 69, 205, 77, 69, 68, 73, 65, 204, 66, 65, 82, 128, 72, 73, 82, 65, + 71, 65, 78, 193, 87, 69, 83, 84, 45, 67, 82, 69, 197, 84, 72, 65, 201, + 75, 65, 78, 78, 65, 68, 193, 67, 72, 69, 82, 79, 75, 69, 197, 72, 65, 76, + 198, 73, 68, 69, 79, 71, 82, 65, 80, 200, 79, 82, 73, 89, 193, 84, 87, + 207, 67, 72, 65, 205, 71, 85, 74, 65, 82, 65, 84, 201, 74, 79, 78, 71, + 83, 69, 79, 78, 199, 78, 69, 215, 82, 85, 78, 73, 195, 83, 65, 85, 82, + 65, 83, 72, 84, 82, 193, 84, 69, 84, 82, 65, 71, 82, 65, 205, 68, 69, 83, + 69, 82, 69, 212, 76, 85, 197, 83, 73, 78, 72, 65, 76, 193, 71, 85, 82, + 77, 85, 75, 72, 201, 78, 79, 84, 65, 84, 73, 79, 206, 83, 89, 82, 73, 65, + 195, 84, 72, 82, 69, 197, 86, 79, 67, 65, 76, 73, 195, 72, 65, 128, 65, + 67, 85, 84, 69, 128, 76, 69, 80, 67, 72, 193, 76, 73, 71, 72, 212, 70, + 79, 85, 82, 128, 68, 79, 85, 66, 76, 69, 45, 83, 84, 82, 85, 67, 203, 84, + 65, 77, 73, 204, 65, 80, 204, 70, 85, 78, 67, 84, 73, 79, 78, 65, 204, + 72, 65, 77, 90, 193, 77, 65, 82, 203, 84, 72, 82, 69, 69, 128, 84, 69, + 76, 69, 71, 82, 65, 80, 200, 79, 78, 197, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 204, 74, 85, 78, 71, 83, 69, 79, 78, 199, 66, 65, 82, 194, 68, 65, + 83, 73, 193, 70, 73, 86, 69, 128, 76, 73, 77, 66, 213, 77, 65, 75, 83, + 85, 82, 193, 66, 79, 80, 79, 77, 79, 70, 207, 75, 65, 128, 75, 72, 65, + 82, 79, 83, 72, 84, 72, 201, 76, 65, 207, 84, 207, 72, 69, 88, 65, 71, + 82, 65, 205, 76, 79, 78, 199, 83, 73, 88, 128, 76, 79, 215, 80, 83, 73, + 76, 201, 69, 73, 71, 72, 84, 128, 75, 193, 77, 79, 78, 79, 83, 80, 65, + 67, 197, 78, 79, 212, 89, 65, 128, 78, 73, 78, 69, 128, 83, 128, 83, 69, + 86, 69, 78, 128, 83, 84, 82, 79, 75, 197, 86, 128, 68, 79, 84, 211, 77, + 65, 128, 82, 69, 86, 69, 82, 83, 69, 196, 72, 73, 71, 200, 75, 72, 65, + 200, 76, 79, 87, 69, 210, 78, 75, 207, 84, 73, 76, 68, 69, 128, 84, 79, + 78, 197, 78, 85, 77, 69, 82, 65, 204, 82, 65, 128, 84, 85, 82, 78, 69, + 196, 65, 69, 71, 69, 65, 206, 72, 128, 80, 65, 128, 71, 128, 76, 65, 71, + 65, 194, 80, 72, 65, 71, 83, 45, 80, 193, 67, 89, 80, 82, 73, 79, 212, + 68, 73, 65, 69, 82, 69, 83, 73, 83, 128, 83, 85, 78, 68, 65, 78, 69, 83, + 197, 84, 73, 70, 73, 78, 65, 71, 200, 68, 128, 80, 65, 83, 83, 73, 86, + 69, 45, 80, 85, 76, 76, 45, 68, 79, 87, 78, 45, 79, 85, 84, 80, 85, 212, + 66, 89, 69, 76, 79, 82, 85, 83, 83, 73, 65, 78, 45, 85, 75, 82, 65, 73, + 78, 73, 65, 206, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, + 78, 71, 67, 73, 69, 85, 67, 128, 80, 65, 83, 83, 73, 86, 69, 45, 80, 85, + 76, 76, 45, 85, 80, 45, 79, 85, 84, 80, 85, 212, 65, 78, 84, 73, 67, 76, + 79, 67, 75, 87, 73, 83, 69, 45, 82, 79, 84, 65, 84, 69, 196, 67, 69, 79, + 78, 71, 67, 72, 73, 69, 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, + 80, 83, 73, 70, 73, 83, 84, 79, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, + 65, 128, 82, 73, 69, 85, 76, 45, 75, 65, 80, 89, 69, 79, 85, 78, 80, 73, + 69, 85, 80, 128, 75, 65, 80, 89, 69, 79, 85, 78, 83, 83, 65, 78, 71, 80, + 73, 69, 85, 80, 128, 79, 80, 69, 78, 45, 67, 73, 82, 67, 85, 73, 84, 45, + 79, 85, 84, 80, 85, 212, 67, 69, 79, 78, 71, 67, 72, 73, 69, 85, 77, 67, + 72, 73, 69, 85, 67, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 83, 83, 65, + 78, 71, 67, 73, 69, 85, 67, 128, 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, + 83, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 77, 73, 69, + 85, 77, 45, 75, 73, 89, 69, 79, 75, 128, 82, 73, 69, 85, 76, 45, 84, 73, + 75, 69, 85, 84, 45, 72, 73, 69, 85, 72, 128, 84, 82, 79, 77, 73, 75, 79, + 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, + 83, 73, 79, 83, 45, 75, 73, 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, + 83, 73, 79, 83, 45, 84, 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, + 75, 73, 89, 69, 79, 75, 45, 83, 73, 79, 83, 128, 82, 73, 69, 85, 76, 45, + 89, 69, 79, 82, 73, 78, 72, 73, 69, 85, 72, 128, 65, 67, 85, 84, 69, 45, + 71, 82, 65, 86, 69, 45, 65, 67, 85, 84, 69, 128, 67, 72, 73, 84, 85, 69, + 85, 77, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 71, 82, 65, 86, 69, 45, + 65, 67, 85, 84, 69, 45, 71, 82, 65, 86, 69, 128, 73, 69, 85, 78, 71, 45, + 83, 83, 65, 78, 71, 75, 73, 89, 69, 79, 75, 128, 76, 79, 78, 71, 45, 66, + 82, 65, 78, 67, 72, 45, 72, 65, 71, 65, 76, 204, 80, 65, 82, 84, 73, 65, + 76, 76, 89, 45, 82, 69, 67, 89, 67, 76, 69, 196, 82, 73, 69, 85, 76, 45, + 80, 73, 69, 85, 80, 45, 72, 73, 69, 85, 72, 128, 83, 72, 79, 82, 84, 45, + 84, 87, 73, 71, 45, 66, 74, 65, 82, 75, 65, 206, 83, 73, 79, 83, 45, 80, + 73, 69, 85, 80, 45, 75, 73, 89, 69, 79, 75, 128, 75, 65, 84, 65, 75, 65, + 78, 65, 45, 72, 73, 82, 65, 71, 65, 78, 193, 82, 73, 69, 85, 76, 45, 80, + 73, 69, 85, 80, 45, 83, 73, 79, 83, 128, 89, 69, 83, 73, 69, 85, 78, 71, + 45, 80, 65, 78, 83, 73, 79, 83, 128, 67, 69, 79, 78, 71, 67, 72, 73, 69, + 85, 77, 67, 73, 69, 85, 67, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 48, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 48, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 48, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, + 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, + 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, + 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 48, 45, 48, 54, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 48, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 49, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 50, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 51, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 52, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 53, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 49, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 50, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 50, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 50, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 50, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 50, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 50, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 50, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, + 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, + 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, + 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 51, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 52, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 53, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 51, 45, 48, 54, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 48, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 49, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 50, 128, 72, 79, 82, 73, 90, + 79, 78, 84, 65, 76, 45, 48, 52, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, + 78, 84, 65, 76, 45, 48, 52, 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, + 84, 65, 76, 45, 48, 52, 45, 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 45, 48, 52, 45, 48, 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, + 76, 45, 48, 53, 45, 48, 48, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, + 45, 48, 53, 45, 48, 49, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, + 48, 53, 45, 48, 50, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, + 53, 45, 48, 51, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, + 45, 48, 52, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, + 48, 53, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 53, 45, 48, + 54, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 48, + 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 49, 128, + 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 50, 128, 72, + 79, 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 51, 128, 72, 79, + 82, 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 52, 128, 72, 79, 82, + 73, 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 53, 128, 72, 79, 82, 73, + 90, 79, 78, 84, 65, 76, 45, 48, 54, 45, 48, 54, 128, 77, 65, 82, 67, 65, + 84, 79, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, 80, 73, 69, 85, 80, 45, + 83, 73, 79, 83, 45, 67, 73, 69, 85, 67, 128, 80, 73, 69, 85, 80, 45, 83, + 73, 79, 83, 45, 80, 73, 69, 85, 80, 128, 82, 73, 69, 85, 76, 45, 77, 73, + 69, 85, 77, 45, 83, 73, 79, 83, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, + 71, 45, 72, 65, 71, 65, 76, 204, 83, 79, 70, 84, 87, 65, 82, 69, 45, 70, + 85, 78, 67, 84, 73, 79, 206, 84, 82, 79, 77, 73, 75, 79, 80, 83, 73, 70, + 73, 83, 84, 79, 78, 128, 75, 65, 80, 89, 69, 79, 85, 78, 80, 72, 73, 69, + 85, 80, 72, 128, 65, 78, 84, 73, 82, 69, 83, 84, 82, 73, 67, 84, 73, 79, + 78, 128, 65, 67, 67, 69, 78, 84, 45, 83, 84, 65, 67, 67, 65, 84, 79, 128, + 65, 78, 84, 73, 75, 69, 78, 79, 75, 89, 76, 73, 83, 77, 65, 128, 67, 69, + 79, 78, 71, 67, 72, 73, 69, 85, 77, 83, 73, 79, 83, 128, 67, 72, 73, 69, + 85, 67, 72, 45, 75, 72, 73, 69, 85, 75, 72, 128, 67, 72, 73, 84, 85, 69, + 85, 77, 67, 72, 73, 69, 85, 67, 72, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 48, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 48, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 49, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 49, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 50, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 50, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 50, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 51, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 51, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 52, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 52, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 53, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 53, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 54, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 54, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 54, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 54, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 55, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 56, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 57, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 65, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 66, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 67, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 68, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 68, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 68, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 69, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 69, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 69, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 69, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 69, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 70, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 56, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 56, 70, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 56, 70, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 56, 70, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 56, 70, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 48, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 48, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 49, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 50, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 50, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 51, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 51, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 52, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 54, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 55, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 56, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 48, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 49, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 57, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 65, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 57, 67, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 50, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 51, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 66, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 67, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 65, 69, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 52, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 53, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 68, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 69, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 66, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 48, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 54, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 55, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 67, 70, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 48, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 50, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 56, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 57, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 68, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 68, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 49, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 50, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 52, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 69, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 69, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 65, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 66, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 70, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 70, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 51, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 52, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 54, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 57, 70, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 57, 70, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 67, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 68, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 48, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 53, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 54, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 56, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 69, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 48, 70, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 49, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, + 65, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 55, 128, + 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 56, 128, 73, 68, + 69, 79, 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 50, 70, 65, 49, 65, 128, 73, 68, 69, 79, 71, 82, + 65, 80, 72, 45, 50, 70, 65, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, + 72, 45, 50, 70, 65, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 50, 70, 65, 49, 68, 128, 74, 65, 76, 76, 65, 74, 65, 76, 65, 76, 79, 85, + 72, 79, 85, 128, 75, 82, 65, 84, 73, 77, 79, 75, 79, 85, 70, 73, 83, 77, + 65, 128, 75, 82, 65, 84, 73, 77, 79, 89, 80, 79, 82, 82, 79, 79, 78, 128, + 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 77, 65, 68, 210, 77, 73, + 69, 85, 77, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 69, 84, 65, + 83, 84, 79, 75, 79, 85, 70, 73, 83, 77, 65, 128, 80, 73, 69, 85, 80, 45, + 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 80, 83, 73, 70, 73, 83, 84, 79, + 76, 89, 71, 73, 83, 77, 65, 128, 80, 83, 73, 70, 73, 83, 84, 79, 83, 89, + 78, 65, 71, 77, 65, 128, 82, 73, 69, 85, 76, 45, 83, 83, 65, 78, 71, 83, + 73, 79, 83, 128, 84, 69, 65, 82, 68, 82, 79, 80, 45, 83, 72, 65, 78, 75, + 69, 196, 80, 82, 79, 83, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 84, + 69, 65, 82, 68, 82, 79, 80, 45, 83, 80, 79, 75, 69, 196, 66, 76, 65, 67, + 75, 45, 70, 69, 65, 84, 72, 69, 82, 69, 196, 84, 82, 73, 65, 78, 71, 76, + 69, 45, 72, 69, 65, 68, 69, 196, 67, 79, 78, 71, 82, 65, 84, 85, 76, 65, + 84, 73, 79, 78, 128, 72, 73, 71, 72, 45, 82, 69, 86, 69, 82, 83, 69, 68, + 45, 185, 65, 70, 79, 82, 69, 77, 69, 78, 84, 73, 79, 78, 69, 68, 128, 65, + 82, 79, 85, 78, 68, 45, 80, 82, 79, 70, 73, 76, 69, 128, 67, 79, 78, 67, + 65, 86, 69, 45, 80, 79, 73, 78, 84, 69, 196, 71, 79, 82, 71, 79, 83, 89, + 78, 84, 72, 69, 84, 79, 78, 128, 73, 68, 69, 78, 84, 73, 70, 73, 67, 65, + 84, 73, 79, 78, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 48, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 48, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 48, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 49, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 49, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 49, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 50, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 50, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 50, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 50, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 51, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 51, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 51, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 52, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 52, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 52, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 53, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 53, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 53, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 54, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 54, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 54, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 54, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 55, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 55, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 55, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 55, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 56, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 56, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 56, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 56, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 57, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 57, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 57, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 57, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 65, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 65, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 65, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 65, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 66, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 66, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 66, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 66, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 67, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 67, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 67, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 67, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 68, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 68, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 68, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 68, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 69, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 69, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 69, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 69, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 57, 70, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 57, 70, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 57, 70, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 57, 70, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 48, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 48, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 48, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 48, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 49, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 49, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 49, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 49, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 50, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 50, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 50, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 50, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 50, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 66, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 51, 67, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 51, 68, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 51, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 51, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 49, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 50, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 51, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 55, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 56, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 57, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 52, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 52, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, + 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 68, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 52, 69, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 52, 70, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 51, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 52, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 53, 53, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 57, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 65, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 53, 66, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 53, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 53, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, + 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 53, 70, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 48, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 49, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 54, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 54, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, + 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 53, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, 54, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 54, 55, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 54, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 54, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 54, + 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 55, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 55, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 55, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 55, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 56, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 56, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 56, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 56, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 56, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 57, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 57, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 57, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 57, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 65, 65, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, + 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 67, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 65, 68, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 65, 69, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 65, 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 48, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 50, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 51, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 52, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 66, 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 54, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 56, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 57, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 66, 65, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 66, 66, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 66, 67, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, + 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 69, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 66, 70, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 48, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 49, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 50, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 52, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 53, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 54, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 55, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 56, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 57, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 65, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, 66, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 67, 67, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 67, 68, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 67, 69, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 67, + 70, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 48, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 49, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 68, 50, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 68, 51, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, + 70, 65, 68, 52, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, + 53, 128, 73, 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 54, 128, 73, + 68, 69, 79, 71, 82, 65, 80, 72, 45, 70, 65, 68, 55, 128, 73, 68, 69, 79, + 71, 82, 65, 80, 72, 45, 70, 65, 68, 56, 128, 73, 68, 69, 79, 71, 82, 65, + 80, 72, 45, 70, 65, 68, 57, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, + 72, 45, 79, 83, 211, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 83, + 79, 204, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 89, 82, 128, 77, + 85, 76, 84, 73, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 80, 65, 76, 65, + 84, 65, 76, 73, 90, 65, 84, 73, 79, 78, 128, 83, 69, 83, 81, 85, 73, 81, + 85, 65, 68, 82, 65, 84, 69, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, + 45, 77, 65, 68, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 78, 65, + 85, 196, 83, 73, 79, 83, 45, 83, 83, 65, 78, 71, 83, 73, 79, 83, 128, 84, + 69, 65, 82, 68, 82, 79, 80, 45, 66, 65, 82, 66, 69, 196, 84, 82, 79, 77, + 73, 75, 79, 76, 89, 71, 73, 83, 77, 65, 128, 84, 82, 79, 77, 73, 75, 79, + 83, 89, 78, 65, 71, 77, 65, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 48, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, + 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 50, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 48, 45, 48, 51, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 48, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 48, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 48, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, + 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 49, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, 50, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 49, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 49, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 49, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 49, 45, 48, + 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 48, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 49, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 50, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 50, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 50, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, + 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 50, 45, 48, 54, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 48, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 51, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 51, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 51, 45, 48, 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, + 52, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 53, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 51, 45, 48, 54, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 52, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 52, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 52, 45, 48, 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, + 51, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 52, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 52, 45, 48, 53, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 52, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 53, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 53, 45, 48, 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, + 50, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 51, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 53, 45, 48, 52, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 53, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 53, 45, 48, 54, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 54, 45, 48, 48, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, + 49, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 50, 128, 86, + 69, 82, 84, 73, 67, 65, 76, 45, 48, 54, 45, 48, 51, 128, 86, 69, 82, 84, + 73, 67, 65, 76, 45, 48, 54, 45, 48, 52, 128, 86, 69, 82, 84, 73, 67, 65, + 76, 45, 48, 54, 45, 48, 53, 128, 86, 69, 82, 84, 73, 67, 65, 76, 45, 48, + 54, 45, 48, 54, 128, 87, 72, 73, 84, 69, 45, 70, 69, 65, 84, 72, 69, 82, + 69, 196, 89, 80, 79, 71, 69, 71, 82, 65, 77, 77, 69, 78, 73, 128, 82, 73, + 71, 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 199, 77, 85, 76, 84, 73, 80, + 76, 73, 67, 65, 84, 73, 79, 206, 82, 73, 71, 72, 84, 45, 83, 72, 65, 68, + 79, 87, 69, 196, 66, 65, 76, 76, 79, 79, 78, 45, 83, 80, 79, 75, 69, 196, + 75, 65, 80, 89, 69, 79, 85, 78, 77, 73, 69, 85, 77, 128, 82, 73, 69, 85, + 76, 45, 80, 72, 73, 69, 85, 80, 72, 128, 82, 73, 69, 85, 76, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 65, 82, 71, 79, 83, 89, 78, 84, 72, 69, 84, 79, + 78, 128, 65, 83, 89, 77, 80, 84, 79, 84, 73, 67, 65, 76, 76, 217, 77, 73, + 69, 85, 77, 45, 80, 65, 78, 83, 73, 79, 83, 128, 78, 73, 69, 85, 78, 45, + 80, 65, 78, 83, 73, 79, 83, 128, 80, 65, 82, 65, 76, 76, 69, 76, 79, 71, + 82, 65, 77, 128, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 82, 128, + 80, 72, 73, 69, 85, 80, 72, 45, 80, 73, 69, 85, 80, 128, 80, 73, 69, 85, + 80, 45, 80, 72, 73, 69, 85, 80, 72, 128, 80, 73, 69, 85, 80, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 80, 82, 69, 80, 79, 78, 68, 69, 82, 65, 78, 67, + 69, 128, 82, 73, 69, 85, 76, 45, 80, 65, 78, 83, 73, 79, 83, 128, 84, 69, + 84, 65, 82, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 73, 75, 69, 85, 84, + 45, 75, 73, 89, 69, 79, 75, 128, 84, 82, 73, 65, 78, 71, 76, 69, 45, 82, + 79, 85, 78, 196, 89, 69, 83, 73, 69, 85, 78, 71, 45, 83, 73, 79, 83, 128, + 65, 86, 65, 75, 82, 65, 72, 65, 83, 65, 78, 89, 65, 128, 66, 79, 84, 84, + 79, 77, 45, 76, 73, 71, 72, 84, 69, 196, 67, 72, 73, 69, 85, 67, 72, 45, + 72, 73, 69, 85, 72, 128, 67, 72, 73, 84, 85, 69, 85, 77, 67, 73, 69, 85, + 67, 128, 67, 72, 82, 89, 83, 65, 78, 84, 72, 69, 77, 85, 77, 128, 67, 79, + 78, 84, 69, 77, 80, 76, 65, 84, 73, 79, 78, 128, 68, 79, 84, 83, 45, 49, + 50, 51, 52, 53, 54, 55, 56, 128, 69, 77, 66, 69, 76, 76, 73, 83, 72, 77, + 69, 78, 84, 128, 73, 69, 85, 78, 71, 45, 67, 72, 73, 69, 85, 67, 72, 128, + 73, 69, 85, 78, 71, 45, 75, 72, 73, 69, 85, 75, 72, 128, 73, 69, 85, 78, + 71, 45, 80, 72, 73, 69, 85, 80, 72, 128, 73, 69, 85, 78, 71, 45, 84, 72, + 73, 69, 85, 84, 72, 128, 75, 65, 80, 89, 69, 79, 85, 78, 82, 73, 69, 85, + 76, 128, 76, 79, 78, 71, 45, 66, 82, 65, 78, 67, 72, 45, 65, 210, 77, 73, + 69, 85, 77, 45, 67, 72, 73, 69, 85, 67, 72, 128, 78, 73, 69, 85, 78, 45, + 84, 72, 73, 69, 85, 84, 72, 128, 80, 73, 69, 85, 80, 45, 67, 72, 73, 69, + 85, 67, 72, 128, 82, 73, 69, 85, 76, 45, 75, 72, 73, 69, 85, 75, 72, 128, + 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 79, 83, 211, 83, 72, 79, 82, + 84, 45, 84, 87, 73, 71, 45, 83, 79, 204, 83, 72, 79, 82, 84, 45, 84, 87, + 73, 71, 45, 84, 89, 210, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 89, + 82, 128, 83, 84, 65, 67, 67, 65, 84, 73, 83, 83, 73, 77, 79, 128, 83, 84, + 82, 73, 75, 69, 84, 72, 82, 79, 85, 71, 72, 128, 84, 72, 69, 82, 77, 79, + 68, 89, 78, 65, 77, 73, 67, 128, 89, 85, 85, 75, 65, 76, 69, 65, 80, 73, + 78, 84, 85, 128, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 78, 128, 65, + 78, 84, 73, 67, 76, 79, 67, 75, 87, 73, 83, 197, 76, 69, 70, 84, 45, 80, + 79, 73, 78, 84, 73, 78, 199, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, + 78, 128, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 76, 217, 68, 73, 70, + 70, 69, 82, 69, 78, 84, 73, 65, 76, 128, 68, 79, 87, 78, 45, 80, 79, 73, + 78, 84, 73, 78, 199, 80, 65, 82, 69, 83, 84, 73, 71, 77, 69, 78, 79, 206, + 67, 82, 89, 80, 84, 79, 71, 82, 65, 77, 77, 73, 195, 69, 71, 89, 80, 84, + 79, 76, 79, 71, 73, 67, 65, 204, 72, 89, 80, 72, 69, 78, 45, 77, 73, 78, + 85, 83, 128, 67, 79, 78, 67, 65, 86, 69, 45, 83, 73, 68, 69, 196, 76, 69, + 70, 84, 45, 84, 79, 45, 82, 73, 71, 72, 212, 78, 73, 69, 85, 78, 45, 84, + 73, 75, 69, 85, 84, 128, 82, 73, 69, 85, 76, 45, 75, 73, 89, 69, 79, 75, + 128, 82, 73, 71, 72, 84, 45, 84, 79, 45, 76, 69, 70, 212, 84, 82, 65, 78, + 83, 80, 79, 83, 73, 84, 73, 79, 206, 67, 82, 79, 83, 83, 69, 68, 45, 84, + 65, 73, 76, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 49, 128, 68, + 82, 79, 80, 45, 83, 72, 65, 68, 79, 87, 69, 196, 71, 65, 69, 84, 84, 65, + 45, 80, 73, 76, 76, 65, 128, 71, 69, 79, 77, 69, 84, 82, 73, 67, 65, 76, + 76, 217, 73, 69, 85, 78, 71, 45, 75, 73, 89, 69, 79, 75, 128, 73, 78, 84, + 69, 82, 80, 79, 76, 65, 84, 73, 79, 206, 78, 73, 69, 85, 78, 45, 75, 73, + 89, 69, 79, 75, 128, 80, 73, 69, 85, 80, 45, 84, 73, 75, 69, 85, 84, 128, + 82, 73, 69, 85, 76, 45, 84, 73, 75, 69, 85, 84, 128, 84, 72, 73, 82, 84, + 89, 45, 83, 69, 67, 79, 78, 196, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, + 72, 84, 200, 84, 87, 69, 78, 84, 89, 45, 84, 72, 82, 69, 69, 128, 65, 67, + 67, 85, 77, 85, 76, 65, 84, 73, 79, 78, 128, 65, 67, 85, 84, 69, 45, 77, + 65, 67, 82, 79, 78, 128, 65, 75, 84, 73, 69, 83, 69, 76, 83, 75, 65, 66, 128, 65, 78, 65, 84, 82, 73, 67, 72, 73, 83, 77, 65, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 45, 50, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, - 65, 72, 65, 128, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 67, - 72, 73, 84, 85, 69, 85, 77, 83, 73, 79, 83, 128, 67, 89, 76, 73, 78, 68, - 82, 73, 67, 73, 84, 89, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, - 83, 128, 68, 69, 70, 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 73, 70, - 70, 73, 67, 85, 76, 84, 73, 69, 83, 128, 68, 73, 77, 73, 78, 73, 83, 72, - 77, 69, 78, 84, 128, 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, - 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 83, 67, 79, - 78, 84, 73, 78, 85, 79, 85, 211, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, - 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 56, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, - 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 55, 56, - 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, - 45, 49, 51, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, - 54, 55, 56, 128, 69, 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 70, - 76, 69, 85, 82, 45, 68, 69, 45, 76, 73, 83, 128, 71, 82, 79, 78, 84, 72, - 73, 83, 77, 65, 84, 65, 128, 72, 89, 80, 79, 68, 73, 65, 83, 84, 79, 76, - 69, 128, 73, 67, 69, 76, 65, 78, 68, 73, 67, 45, 89, 82, 128, 73, 69, 85, - 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, 73, 78, 84, 69, 82, 83, 89, 76, - 76, 65, 66, 73, 195, 74, 85, 68, 69, 79, 45, 83, 80, 65, 78, 73, 83, 200, - 75, 73, 89, 69, 79, 75, 45, 82, 73, 69, 85, 76, 128, 76, 65, 66, 73, 65, - 76, 73, 90, 65, 84, 73, 79, 206, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, - 76, 85, 211, 77, 79, 82, 80, 72, 79, 76, 79, 71, 73, 67, 65, 204, 79, 80, - 69, 78, 45, 79, 85, 84, 76, 73, 78, 69, 196, 80, 69, 82, 80, 69, 78, 68, - 73, 67, 85, 76, 65, 210, 82, 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 48, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 51, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, - 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 55, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 48, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 55, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 50, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, - 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 57, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 50, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 54, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 57, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, - 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 54, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 52, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 53, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 56, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 53, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, - 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 49, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 54, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 54, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 54, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 56, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 55, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 49, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 55, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 55, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 53, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 55, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, - 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 56, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 51, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 49, 56, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, - 56, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 49, 56, 55, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 49, 56, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 48, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 49, 57, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 49, 57, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 51, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 49, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, - 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 55, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 49, 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 49, 57, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 49, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 48, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, - 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 50, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 48, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 56, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 50, 48, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 50, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 49, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 50, 49, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, - 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 53, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 50, 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 50, 49, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 56, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 50, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, - 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 50, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 50, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 53, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 50, 50, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 50, 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 57, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 48, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 50, 51, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, - 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 51, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 50, 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 50, 51, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 55, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 51, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, - 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 48, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 52, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 52, 128, 83, 69, 76, 69, - 67, 84, 79, 82, 45, 50, 52, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, - 50, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 55, 128, 83, - 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 50, 52, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, - 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 50, 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, - 45, 50, 53, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 52, 128, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, - 84, 79, 82, 45, 50, 53, 54, 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, - 45, 65, 210, 83, 73, 79, 83, 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, - 79, 83, 45, 75, 72, 73, 69, 85, 75, 72, 128, 83, 73, 79, 83, 45, 80, 72, - 73, 69, 85, 80, 72, 128, 83, 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, - 128, 83, 84, 82, 65, 71, 71, 73, 83, 77, 65, 84, 65, 128, 84, 72, 85, 78, - 68, 69, 82, 83, 84, 79, 82, 77, 128, 84, 73, 75, 69, 85, 84, 45, 82, 73, - 69, 85, 76, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 78, 128, 84, - 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 128, 84, 87, 69, 78, 84, 89, - 45, 83, 69, 86, 69, 78, 128, 86, 79, 87, 69, 76, 45, 67, 65, 82, 82, 73, - 69, 210, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, 89, 65, 128, 89, 79, 85, - 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 71, 82, 69, 65, 84, 69, 82, 45, - 84, 72, 65, 206, 73, 78, 83, 84, 82, 85, 77, 69, 78, 84, 65, 204, 80, 82, + 65, 72, 65, 128, 66, 82, 69, 65, 75, 84, 72, 82, 79, 85, 71, 72, 128, 66, + 82, 69, 86, 69, 45, 77, 65, 67, 82, 79, 78, 128, 67, 72, 73, 84, 85, 69, + 85, 77, 83, 73, 79, 83, 128, 67, 89, 76, 73, 78, 68, 82, 73, 67, 73, 84, + 89, 128, 68, 69, 67, 73, 83, 73, 86, 69, 78, 69, 83, 83, 128, 68, 69, 70, + 69, 67, 84, 73, 86, 69, 78, 69, 83, 211, 68, 73, 70, 70, 73, 67, 85, 76, + 84, 73, 69, 83, 128, 68, 73, 77, 73, 78, 73, 83, 72, 77, 69, 78, 84, 128, + 68, 73, 77, 73, 78, 85, 84, 73, 79, 78, 45, 50, 128, 68, 73, 77, 73, 78, + 85, 84, 73, 79, 78, 45, 51, 128, 68, 73, 83, 67, 79, 78, 84, 73, 78, 85, + 79, 85, 211, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 55, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, + 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 55, 56, + 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, + 45, 49, 50, 52, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 55, 56, 128, 69, + 85, 82, 79, 45, 67, 85, 82, 82, 69, 78, 67, 217, 70, 76, 69, 85, 82, 45, + 68, 69, 45, 76, 73, 83, 128, 71, 82, 65, 86, 69, 45, 77, 65, 67, 82, 79, + 78, 128, 71, 82, 79, 78, 84, 72, 73, 83, 77, 65, 84, 65, 128, 72, 89, 80, + 79, 68, 73, 65, 83, 84, 79, 76, 69, 128, 73, 67, 69, 76, 65, 78, 68, 73, + 67, 45, 89, 82, 128, 73, 69, 85, 78, 71, 45, 84, 73, 75, 69, 85, 84, 128, + 73, 78, 84, 69, 82, 83, 89, 76, 76, 65, 66, 73, 195, 74, 85, 68, 69, 79, + 45, 83, 80, 65, 78, 73, 83, 200, 75, 73, 89, 69, 79, 75, 45, 82, 73, 69, + 85, 76, 128, 76, 65, 66, 73, 65, 76, 73, 90, 65, 84, 73, 79, 206, 77, 65, + 67, 82, 79, 78, 45, 65, 67, 85, 84, 69, 128, 77, 65, 67, 82, 79, 78, 45, + 66, 82, 69, 86, 69, 128, 77, 65, 67, 82, 79, 78, 45, 71, 82, 65, 86, 69, + 128, 77, 73, 78, 85, 83, 45, 79, 82, 45, 80, 76, 85, 211, 77, 79, 82, 80, + 72, 79, 76, 79, 71, 73, 67, 65, 204, 79, 80, 69, 78, 45, 79, 85, 84, 76, + 73, 78, 69, 196, 80, 69, 82, 80, 69, 78, 68, 73, 67, 85, 76, 65, 210, 82, + 85, 76, 69, 45, 68, 69, 76, 65, 89, 69, 68, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, + 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 50, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 48, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 53, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 54, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 48, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 48, 57, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 49, 48, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 50, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 51, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 49, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 54, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, 55, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 49, + 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 48, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 50, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 51, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 52, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 50, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 50, 55, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 50, 56, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 48, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 49, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 51, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 52, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 53, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, + 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 51, 56, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 51, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 49, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 50, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 52, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 53, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 52, 54, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 56, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 52, 57, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 53, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 50, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 51, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, + 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 54, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 53, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 53, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 53, 57, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 48, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 54, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 54, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 51, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 54, 52, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 54, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 54, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 54, 55, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 54, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 54, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 48, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 49, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 55, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, + 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 52, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 55, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 55, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 55, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 55, 56, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 55, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 56, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 49, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 49, 56, 50, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 49, 56, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 52, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 53, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 49, 56, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 49, 56, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 56, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 49, 56, 57, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 49, 57, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, + 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 50, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 57, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 49, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 53, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 54, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 49, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, + 57, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 57, 57, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 48, 48, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 48, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 50, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 51, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 50, 48, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 50, 48, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 54, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, 55, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 50, 48, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 48, + 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 48, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 50, 49, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 50, 49, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 51, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 52, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 50, 49, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 49, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 49, 55, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 49, 56, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 49, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 48, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 49, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 50, 50, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 50, 50, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 52, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 53, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 50, 50, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, + 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 50, 56, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 50, 50, 57, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 50, 51, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 49, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 50, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 50, 51, 51, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 51, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 53, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 51, 54, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 51, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 56, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 51, 57, 128, 83, 69, 76, 69, + 67, 84, 79, 82, 45, 50, 52, 48, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 50, 52, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 50, 128, 83, + 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 51, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 50, 52, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, + 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 54, 128, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 50, 52, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, + 45, 50, 52, 56, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 52, 57, 128, + 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 48, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 50, 53, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 53, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 51, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 50, 53, 52, 128, 83, 69, 76, 69, 67, 84, 79, + 82, 45, 50, 53, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, 53, 54, + 128, 83, 72, 79, 82, 84, 45, 84, 87, 73, 71, 45, 65, 210, 83, 73, 79, 83, + 45, 67, 72, 73, 69, 85, 67, 72, 128, 83, 73, 79, 83, 45, 75, 72, 73, 69, + 85, 75, 72, 128, 83, 73, 79, 83, 45, 80, 72, 73, 69, 85, 80, 72, 128, 83, + 73, 79, 83, 45, 84, 72, 73, 69, 85, 84, 72, 128, 83, 84, 82, 65, 71, 71, + 73, 83, 77, 65, 84, 65, 128, 83, 84, 82, 65, 73, 71, 72, 84, 78, 69, 83, + 83, 128, 84, 72, 85, 78, 68, 69, 82, 83, 84, 79, 82, 77, 128, 84, 73, 75, + 69, 85, 84, 45, 82, 73, 69, 85, 76, 128, 84, 82, 65, 78, 83, 77, 73, 83, + 83, 73, 79, 78, 128, 84, 87, 69, 78, 84, 89, 45, 69, 73, 71, 72, 84, 128, + 84, 87, 69, 78, 84, 89, 45, 83, 69, 86, 69, 78, 128, 86, 79, 87, 69, 76, + 45, 67, 65, 82, 82, 73, 69, 210, 88, 83, 72, 65, 65, 89, 65, 84, 72, 73, + 89, 65, 128, 89, 79, 85, 84, 72, 70, 85, 76, 78, 69, 83, 83, 128, 71, 82, + 69, 65, 84, 69, 82, 45, 84, 72, 65, 206, 73, 78, 83, 84, 82, 85, 77, 69, + 78, 84, 65, 204, 65, 82, 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 80, 82, 69, 83, 69, 78, 84, 65, 84, 73, 79, 206, 80, 69, 82, 73, 83, 80, 79, 77, - 69, 78, 73, 128, 67, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 65, 82, - 65, 66, 73, 67, 45, 73, 78, 68, 73, 195, 80, 65, 82, 69, 78, 84, 72, 69, - 83, 73, 83, 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 78, 128, 73, 78, - 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 67, 65, 78, 68, 82, 65, 66, 73, - 78, 68, 85, 128, 69, 82, 82, 79, 82, 45, 66, 65, 82, 82, 69, 196, 83, 85, - 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 66, 76, 65, 67, 75, 45, 76, 69, - 84, 84, 69, 210, 65, 80, 80, 82, 79, 88, 73, 77, 65, 84, 69, 128, 67, 65, - 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 69, 75, 70, 79, 78, 73, 84, 73, - 75, 79, 78, 128, 74, 45, 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 82, 73, + 69, 78, 73, 128, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 83, 128, 67, 45, + 83, 73, 77, 80, 76, 73, 70, 73, 69, 196, 80, 85, 78, 67, 84, 85, 65, 84, + 73, 79, 78, 128, 73, 78, 84, 69, 82, 83, 69, 67, 84, 73, 79, 206, 67, 65, + 78, 68, 82, 65, 66, 73, 78, 68, 85, 128, 69, 82, 82, 79, 82, 45, 66, 65, + 82, 82, 69, 196, 83, 85, 66, 83, 84, 73, 84, 85, 84, 73, 79, 206, 66, 76, + 65, 67, 75, 45, 76, 69, 84, 84, 69, 210, 65, 80, 80, 82, 79, 88, 73, 77, + 65, 84, 69, 128, 67, 65, 78, 84, 73, 76, 76, 65, 84, 73, 79, 206, 69, 75, + 70, 79, 78, 73, 84, 73, 75, 79, 78, 128, 74, 45, 83, 73, 77, 80, 76, 73, + 70, 73, 69, 196, 77, 73, 68, 68, 76, 69, 45, 87, 69, 76, 83, 200, 82, 73, 69, 85, 76, 45, 72, 73, 69, 85, 72, 128, 83, 79, 85, 84, 72, 45, 83, 76, 65, 86, 69, 217, 65, 66, 66, 82, 69, 86, 73, 65, 84, 73, 79, 206, 65, 83, 84, 82, 79, 76, 79, 71, 73, 67, 65, 204, 71, 65, 89, 65, 78, 85, 75, 73, @@ -1252,60 +1349,62 @@ 69, 85, 80, 128, 83, 69, 77, 73, 67, 73, 82, 67, 85, 76, 65, 210, 83, 83, 65, 78, 71, 84, 73, 75, 69, 85, 84, 128, 65, 67, 75, 78, 79, 87, 76, 69, 68, 71, 69, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 78, 128, 73, 78, - 84, 69, 82, 83, 69, 67, 84, 73, 78, 199, 80, 73, 69, 85, 80, 45, 67, 73, - 69, 85, 67, 128, 81, 85, 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 82, 73, - 69, 85, 76, 45, 78, 73, 69, 85, 78, 128, 83, 73, 88, 84, 89, 45, 70, 79, - 85, 82, 84, 200, 84, 82, 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 87, - 69, 78, 84, 89, 45, 70, 79, 85, 82, 128, 87, 69, 68, 71, 69, 45, 84, 65, - 73, 76, 69, 196, 65, 69, 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 71, - 71, 82, 65, 86, 65, 84, 73, 79, 78, 128, 65, 77, 65, 76, 71, 65, 77, 65, - 84, 73, 79, 206, 65, 80, 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 85, - 71, 77, 69, 78, 84, 65, 84, 73, 79, 206, 67, 65, 78, 67, 69, 76, 76, 65, - 84, 73, 79, 206, 67, 73, 69, 85, 67, 45, 73, 69, 85, 78, 71, 128, 67, 79, - 78, 74, 85, 78, 67, 84, 73, 79, 78, 128, 67, 79, 78, 84, 82, 65, 67, 84, - 73, 79, 78, 128, 67, 79, 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, - 82, 80, 79, 82, 65, 84, 73, 79, 78, 128, 67, 79, 85, 78, 84, 69, 82, 66, - 79, 82, 69, 128, 67, 79, 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 68, 65, - 72, 89, 65, 65, 85, 83, 72, 45, 50, 128, 68, 69, 67, 82, 69, 83, 67, 69, - 78, 68, 79, 128, 68, 69, 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, - 78, 79, 77, 73, 78, 65, 84, 79, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, - 68, 69, 84, 128, 68, 69, 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 73, - 83, 84, 73, 78, 71, 85, 73, 83, 72, 128, 68, 79, 65, 67, 72, 65, 83, 72, - 77, 69, 69, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 54, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 55, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 55, 128, 68, 79, - 84, 83, 45, 49, 50, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 50, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, - 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, - 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 55, 128, 68, 79, - 84, 83, 45, 49, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, - 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 54, 55, 128, 68, 79, - 84, 83, 45, 50, 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, - 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 50, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, - 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, - 85, 66, 76, 69, 45, 69, 78, 68, 69, 196, 69, 65, 77, 72, 65, 78, 67, 72, - 79, 76, 76, 128, 69, 78, 76, 65, 82, 71, 69, 77, 69, 78, 84, 128, 70, 73, - 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70, 82, 79, 78, 84, 45, 84, 73, - 76, 84, 69, 196, 71, 85, 65, 82, 68, 69, 68, 78, 69, 83, 83, 128, 72, 65, - 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 73, 69, 85, 72, 45, 77, 73, - 69, 85, 77, 128, 72, 73, 69, 85, 72, 45, 78, 73, 69, 85, 78, 128, 72, 73, - 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, 69, 85, 72, 45, 82, 73, - 69, 85, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 76, 217, 73, 69, - 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, 85, 78, 71, 45, 77, 73, - 69, 85, 77, 128, 73, 69, 85, 78, 71, 45, 80, 73, 69, 85, 80, 128, 73, 78, - 84, 69, 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, 84, 69, 82, 67, 65, 76, - 65, 84, 69, 128, 73, 78, 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 75, 73, - 82, 79, 77, 69, 69, 84, 79, 82, 85, 128, 76, 65, 75, 75, 72, 65, 78, 71, - 89, 65, 79, 128, 77, 73, 69, 85, 77, 45, 72, 73, 69, 85, 72, 128, 77, 73, - 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 85, 85, 83, 73, 75, 65, 84, - 79, 65, 78, 128, 78, 65, 65, 75, 83, 73, 75, 89, 65, 89, 65, 128, 78, 69, + 84, 69, 82, 82, 79, 66, 65, 78, 71, 128, 73, 78, 84, 69, 82, 83, 69, 67, + 84, 73, 78, 199, 80, 73, 69, 85, 80, 45, 67, 73, 69, 85, 67, 128, 81, 85, + 73, 78, 68, 73, 67, 69, 83, 73, 77, 193, 82, 73, 69, 85, 76, 45, 78, 73, + 69, 85, 78, 128, 83, 73, 88, 84, 89, 45, 70, 79, 85, 82, 84, 200, 84, 82, + 73, 84, 73, 77, 79, 82, 73, 79, 78, 128, 84, 87, 69, 78, 84, 89, 45, 70, + 79, 85, 82, 128, 87, 69, 68, 71, 69, 45, 84, 65, 73, 76, 69, 196, 65, 69, + 83, 67, 85, 76, 65, 80, 73, 85, 83, 128, 65, 71, 71, 82, 65, 86, 65, 84, + 73, 79, 78, 128, 65, 77, 65, 76, 71, 65, 77, 65, 84, 73, 79, 206, 65, 80, + 80, 76, 73, 67, 65, 84, 73, 79, 78, 128, 65, 85, 71, 77, 69, 78, 84, 65, + 84, 73, 79, 206, 67, 65, 78, 67, 69, 76, 76, 65, 84, 73, 79, 206, 67, 73, + 69, 85, 67, 45, 73, 69, 85, 78, 71, 128, 67, 79, 78, 74, 85, 78, 67, 84, + 73, 79, 78, 128, 67, 79, 78, 84, 82, 65, 67, 84, 73, 79, 78, 128, 67, 79, + 78, 84, 82, 65, 82, 73, 69, 84, 89, 128, 67, 79, 82, 80, 79, 82, 65, 84, + 73, 79, 78, 128, 67, 79, 85, 78, 84, 69, 82, 66, 79, 82, 69, 128, 67, 79, + 85, 78, 84, 69, 82, 83, 73, 78, 75, 128, 68, 65, 72, 89, 65, 65, 85, 83, + 72, 45, 50, 128, 68, 69, 67, 82, 69, 83, 67, 69, 78, 68, 79, 128, 68, 69, + 76, 73, 86, 69, 82, 65, 78, 67, 69, 128, 68, 69, 78, 79, 77, 73, 78, 65, + 84, 79, 82, 128, 68, 69, 82, 69, 84, 45, 72, 73, 68, 69, 84, 128, 68, 69, + 86, 69, 76, 79, 80, 77, 69, 78, 84, 128, 68, 73, 83, 84, 73, 78, 71, 85, + 73, 83, 72, 128, 68, 79, 65, 67, 72, 65, 83, 72, 77, 69, 69, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, + 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 50, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 55, 56, 128, 68, 79, + 84, 83, 45, 50, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, + 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 54, 55, 56, 128, 68, 79, 85, 66, 76, 69, 45, 69, + 78, 68, 69, 196, 69, 65, 77, 72, 65, 78, 67, 72, 79, 76, 76, 128, 69, 78, + 76, 65, 82, 71, 69, 77, 69, 78, 84, 128, 69, 88, 67, 76, 65, 77, 65, 84, + 73, 79, 78, 128, 70, 73, 78, 71, 69, 82, 78, 65, 73, 76, 83, 128, 70, 82, + 79, 78, 84, 45, 84, 73, 76, 84, 69, 196, 71, 85, 65, 82, 68, 69, 68, 78, + 69, 83, 83, 128, 72, 65, 85, 80, 84, 83, 84, 73, 77, 77, 69, 128, 72, 73, + 69, 85, 72, 45, 77, 73, 69, 85, 77, 128, 72, 73, 69, 85, 72, 45, 78, 73, + 69, 85, 78, 128, 72, 73, 69, 85, 72, 45, 80, 73, 69, 85, 80, 128, 72, 73, + 69, 85, 72, 45, 82, 73, 69, 85, 76, 128, 72, 79, 82, 73, 90, 79, 78, 84, + 65, 76, 76, 217, 73, 69, 85, 78, 71, 45, 67, 73, 69, 85, 67, 128, 73, 69, + 85, 78, 71, 45, 77, 73, 69, 85, 77, 128, 73, 69, 85, 78, 71, 45, 80, 73, + 69, 85, 80, 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 78, 128, 73, 78, + 84, 69, 82, 67, 65, 76, 65, 84, 69, 128, 74, 73, 72, 86, 65, 77, 85, 76, + 73, 89, 65, 128, 75, 73, 82, 79, 77, 69, 69, 84, 79, 82, 85, 128, 76, 65, + 75, 75, 72, 65, 78, 71, 89, 65, 79, 128, 77, 73, 69, 85, 77, 45, 72, 73, + 69, 85, 72, 128, 77, 73, 69, 85, 77, 45, 82, 73, 69, 85, 76, 128, 77, 85, + 85, 83, 73, 75, 65, 84, 79, 65, 78, 128, 78, 65, 65, 75, 83, 73, 75, 89, + 65, 89, 65, 128, 78, 65, 83, 65, 76, 73, 90, 65, 84, 73, 79, 206, 78, 69, 66, 69, 78, 83, 84, 73, 77, 77, 69, 128, 78, 73, 69, 85, 78, 45, 80, 73, 69, 85, 80, 128, 78, 79, 78, 45, 66, 82, 69, 65, 75, 73, 78, 199, 79, 66, 83, 84, 82, 85, 67, 84, 73, 79, 78, 128, 80, 65, 82, 65, 75, 76, 73, 84, @@ -1376,1322 +1475,1488 @@ 45, 57, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 53, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 57, 56, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 57, 57, 128, 83, 80, 82, 69, 67, 72, 71, 69, - 83, 65, 78, 199, 83, 85, 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 84, 69, - 84, 82, 65, 70, 79, 78, 73, 65, 83, 128, 84, 72, 65, 78, 84, 72, 65, 75, - 72, 65, 84, 128, 84, 72, 82, 69, 69, 45, 80, 69, 82, 45, 69, 205, 84, 79, - 65, 78, 68, 65, 75, 72, 73, 65, 84, 128, 84, 82, 65, 78, 83, 77, 73, 83, - 83, 73, 79, 206, 84, 87, 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, - 69, 78, 84, 89, 45, 78, 73, 78, 69, 128, 85, 78, 65, 83, 80, 73, 82, 65, - 84, 69, 68, 128, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 128, 83, 85, 80, - 69, 82, 83, 67, 82, 73, 80, 212, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, - 128, 80, 85, 78, 67, 84, 85, 65, 84, 73, 79, 206, 73, 78, 68, 69, 80, 69, - 78, 68, 69, 78, 212, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78, 201, 69, 88, - 67, 76, 65, 77, 65, 84, 73, 79, 206, 68, 69, 83, 67, 82, 73, 80, 84, 73, - 79, 206, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 211, 68, 79, 85, 66, 76, - 69, 45, 76, 73, 78, 197, 77, 65, 72, 65, 65, 80, 82, 65, 65, 78, 193, 65, - 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 85, 80, 45, 80, 79, 73, 78, 84, - 73, 78, 199, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78, 197, 73, 77, 80, 69, - 82, 70, 69, 67, 84, 85, 205, 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, - 65, 82, 82, 79, 87, 45, 84, 65, 73, 76, 128, 68, 79, 65, 67, 72, 65, 83, - 72, 77, 69, 197, 65, 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 76, 84, - 69, 82, 78, 65, 84, 73, 86, 197, 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, - 128, 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, - 73, 78, 69, 65, 210, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, - 80, 79, 83, 73, 84, 73, 79, 78, 128, 82, 73, 69, 85, 76, 45, 83, 73, 79, - 83, 128, 83, 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 83, 65, 78, 71, - 73, 69, 85, 78, 71, 128, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 65, - 69, 68, 65, 45, 80, 73, 76, 76, 65, 128, 67, 79, 78, 83, 69, 67, 85, 84, - 73, 86, 197, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 69, 78, 84, 69, - 82, 80, 82, 73, 83, 69, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, - 77, 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, 77, 79, 78, 79, 71, 82, 65, - 77, 77, 79, 211, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 73, 69, - 85, 78, 45, 83, 73, 79, 83, 128, 79, 86, 69, 82, 76, 65, 80, 80, 73, 78, - 199, 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 75, 76, - 73, 84, 73, 75, 201, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 69, - 82, 67, 85, 83, 83, 73, 86, 69, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79, - 78, 128, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67, 84, 73, - 76, 73, 78, 69, 65, 210, 82, 69, 80, 76, 65, 67, 69, 77, 69, 78, 212, 83, - 65, 76, 76, 65, 76, 76, 65, 72, 79, 213, 83, 73, 79, 83, 45, 78, 73, 69, - 85, 78, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, - 71, 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, - 83, 83, 65, 78, 71, 82, 73, 69, 85, 76, 128, 84, 65, 66, 85, 76, 65, 84, - 73, 79, 78, 128, 84, 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84, 72, 69, - 77, 65, 84, 73, 83, 77, 79, 211, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, - 128, 84, 87, 69, 78, 84, 89, 45, 84, 87, 79, 128, 65, 76, 84, 69, 82, 78, - 65, 84, 73, 79, 206, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, - 84, 73, 75, 69, 78, 79, 77, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, - 65, 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 83, 128, 65, 83, 84, 69, 82, - 73, 83, 67, 85, 83, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 66, - 65, 67, 75, 45, 84, 73, 76, 84, 69, 196, 66, 65, 82, 73, 89, 79, 79, 83, - 65, 78, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 67, 73, 82, 67, - 85, 76, 65, 84, 73, 79, 206, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, - 67, 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 76, 73, 65, - 78, 67, 69, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 78, - 84, 69, 78, 84, 73, 79, 78, 128, 67, 79, 82, 82, 69, 83, 80, 79, 78, 68, - 211, 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 68, 69, 70, 73, 78, 73, - 84, 73, 79, 78, 128, 68, 69, 78, 79, 77, 73, 78, 65, 84, 79, 210, 68, 73, - 65, 69, 82, 69, 83, 73, 90, 69, 196, 68, 73, 77, 69, 78, 83, 73, 79, 78, - 65, 204, 68, 73, 82, 69, 67, 84, 73, 79, 78, 65, 204, 68, 73, 83, 80, 69, - 82, 83, 73, 79, 78, 128, 68, 73, 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, - 73, 86, 69, 82, 71, 69, 78, 67, 69, 128, 68, 79, 84, 83, 45, 49, 50, 51, - 52, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 54, 128, 68, 79, 84, 83, - 45, 49, 50, 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 56, 128, - 68, 79, 84, 83, 45, 49, 50, 51, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, - 51, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 56, 128, 68, 79, 84, - 83, 45, 49, 50, 51, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 49, 50, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, - 50, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 55, 128, 68, 79, - 84, 83, 45, 49, 50, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, - 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, - 49, 50, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 55, 128, 68, - 79, 84, 83, 45, 49, 50, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, - 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 54, 55, 56, 128, 68, 79, 84, 83, - 45, 49, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 55, 128, - 68, 79, 84, 83, 45, 49, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, - 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 56, 128, 68, 79, 84, - 83, 45, 49, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, - 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, - 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 54, 55, 56, 128, 68, 79, - 84, 83, 45, 49, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, - 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 49, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 53, 54, 55, 56, 128, 68, - 79, 84, 83, 45, 50, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, - 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 56, 128, 68, 79, 84, 83, - 45, 50, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 56, 128, - 68, 79, 84, 83, 45, 50, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, - 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 56, 128, 68, 79, 84, - 83, 45, 50, 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 54, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, - 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 55, 56, 128, 68, 79, - 84, 83, 45, 50, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, - 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, - 51, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, - 79, 84, 83, 45, 51, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, - 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 56, 128, 69, 75, 83, 84, - 82, 69, 80, 84, 79, 78, 128, 69, 77, 66, 82, 79, 73, 68, 69, 82, 89, 128, - 69, 78, 67, 79, 85, 78, 84, 69, 82, 83, 128, 69, 78, 84, 72, 85, 83, 73, - 65, 83, 77, 128, 69, 81, 85, 73, 65, 78, 71, 85, 76, 65, 210, 69, 88, 72, - 65, 85, 83, 84, 73, 79, 78, 128, 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, - 128, 70, 69, 76, 76, 79, 87, 83, 72, 73, 80, 128, 70, 79, 82, 77, 65, 84, - 84, 73, 78, 71, 128, 70, 79, 85, 82, 45, 80, 69, 82, 45, 69, 205, 70, 79, - 85, 82, 45, 83, 84, 82, 73, 78, 199, 72, 66, 65, 83, 65, 45, 69, 83, 65, - 83, 193, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 89, 80, 72, 69, - 78, 65, 84, 73, 79, 206, 73, 77, 73, 68, 73, 65, 82, 71, 79, 78, 128, 73, - 77, 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 78, 70, 79, 82, 77, 65, 84, - 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196, 75, 73, 82, 79, - 71, 85, 82, 65, 77, 85, 128, 75, 85, 78, 68, 68, 65, 76, 73, 89, 65, 128, - 76, 69, 70, 84, 45, 83, 72, 65, 68, 69, 196, 76, 73, 77, 73, 84, 65, 84, - 73, 79, 78, 128, 77, 69, 77, 66, 69, 82, 83, 72, 73, 80, 128, 78, 65, 78, + 76, 69, 67, 84, 79, 82, 45, 57, 57, 128, 83, 69, 77, 73, 83, 69, 88, 84, + 73, 76, 69, 128, 83, 80, 82, 69, 67, 72, 71, 69, 83, 65, 78, 199, 83, 85, + 80, 69, 82, 73, 77, 80, 79, 83, 69, 196, 84, 69, 84, 82, 65, 70, 79, 78, + 73, 65, 83, 128, 84, 72, 65, 78, 84, 72, 65, 75, 72, 65, 84, 128, 84, 72, + 82, 69, 69, 45, 80, 69, 82, 45, 69, 205, 84, 79, 65, 78, 68, 65, 75, 72, + 73, 65, 84, 128, 84, 82, 65, 78, 83, 77, 73, 83, 83, 73, 79, 206, 84, 87, + 69, 78, 84, 89, 45, 70, 73, 86, 69, 128, 84, 87, 69, 78, 84, 89, 45, 78, + 73, 78, 69, 128, 85, 78, 65, 83, 80, 73, 82, 65, 84, 69, 68, 128, 85, 80, + 65, 68, 72, 77, 65, 78, 73, 89, 65, 128, 80, 85, 78, 67, 84, 85, 65, 84, + 73, 79, 206, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 128, 83, 85, 80, 69, + 82, 83, 67, 82, 73, 80, 212, 72, 79, 82, 73, 90, 79, 78, 84, 65, 76, 128, + 69, 88, 67, 76, 65, 77, 65, 84, 73, 79, 206, 73, 78, 68, 69, 80, 69, 78, + 68, 69, 78, 212, 80, 69, 82, 73, 83, 80, 79, 77, 69, 78, 201, 68, 69, 83, + 67, 82, 73, 80, 84, 73, 79, 206, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, + 211, 68, 79, 85, 66, 76, 69, 45, 76, 73, 78, 197, 77, 65, 72, 65, 65, 80, + 82, 65, 65, 78, 193, 65, 80, 79, 83, 84, 82, 79, 80, 72, 69, 128, 67, 72, + 65, 82, 65, 67, 84, 69, 82, 83, 128, 85, 80, 45, 80, 79, 73, 78, 84, 73, + 78, 199, 83, 73, 78, 71, 76, 69, 45, 76, 73, 78, 197, 73, 77, 80, 69, 82, + 70, 69, 67, 84, 85, 205, 82, 73, 71, 72, 84, 87, 65, 82, 68, 83, 128, 65, + 82, 82, 79, 87, 45, 84, 65, 73, 76, 128, 68, 79, 65, 67, 72, 65, 83, 72, + 77, 69, 197, 65, 69, 76, 65, 45, 80, 73, 76, 76, 65, 128, 65, 76, 84, 69, + 82, 78, 65, 84, 73, 86, 197, 67, 79, 77, 80, 76, 69, 84, 73, 79, 78, 128, + 73, 78, 84, 69, 71, 82, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 73, + 78, 69, 65, 210, 79, 80, 69, 78, 45, 72, 69, 65, 68, 69, 196, 79, 80, 80, + 79, 83, 73, 84, 73, 79, 78, 128, 82, 73, 69, 85, 76, 45, 83, 73, 79, 83, + 128, 83, 69, 77, 73, 45, 86, 79, 73, 67, 69, 196, 83, 83, 65, 78, 71, 73, + 69, 85, 78, 71, 128, 83, 85, 80, 82, 65, 76, 73, 78, 69, 65, 210, 65, 69, + 68, 65, 45, 80, 73, 76, 76, 65, 128, 67, 79, 78, 83, 69, 67, 85, 84, 73, + 86, 197, 68, 73, 86, 73, 78, 65, 84, 73, 79, 78, 128, 69, 78, 84, 69, 82, + 80, 82, 73, 83, 69, 128, 73, 77, 80, 69, 82, 70, 69, 67, 84, 65, 128, 77, + 79, 78, 79, 70, 79, 78, 73, 65, 83, 128, 77, 79, 78, 79, 71, 82, 65, 77, + 77, 79, 211, 78, 65, 65, 83, 73, 75, 89, 65, 89, 65, 128, 78, 73, 69, 85, + 78, 45, 83, 73, 79, 83, 128, 79, 86, 69, 82, 76, 65, 80, 80, 73, 78, 199, + 80, 65, 82, 65, 75, 65, 76, 69, 83, 77, 193, 80, 65, 82, 65, 75, 76, 73, + 84, 73, 75, 201, 80, 65, 82, 84, 78, 69, 82, 83, 72, 73, 208, 80, 69, 82, + 67, 85, 83, 83, 73, 86, 69, 128, 80, 82, 79, 80, 79, 82, 84, 73, 79, 78, + 128, 82, 69, 67, 84, 65, 78, 71, 85, 76, 65, 210, 82, 69, 67, 84, 73, 76, + 73, 78, 69, 65, 210, 82, 69, 80, 76, 65, 67, 69, 77, 69, 78, 212, 83, 65, + 76, 76, 65, 76, 76, 65, 72, 79, 213, 83, 73, 79, 83, 45, 78, 73, 69, 85, + 78, 128, 83, 73, 79, 83, 45, 82, 73, 69, 85, 76, 128, 83, 83, 65, 78, 71, + 72, 73, 69, 85, 72, 128, 83, 83, 65, 78, 71, 78, 73, 69, 85, 78, 128, 83, + 83, 65, 78, 71, 82, 73, 69, 85, 76, 128, 84, 65, 66, 85, 76, 65, 84, 73, + 79, 78, 128, 84, 69, 84, 82, 65, 83, 73, 77, 79, 85, 128, 84, 72, 69, 77, + 65, 84, 73, 83, 77, 79, 211, 84, 87, 69, 78, 84, 89, 45, 79, 78, 69, 128, + 84, 87, 69, 78, 84, 89, 45, 84, 87, 79, 128, 65, 76, 84, 69, 82, 78, 65, + 84, 73, 79, 206, 65, 78, 71, 75, 72, 65, 78, 75, 72, 85, 128, 65, 78, 84, + 73, 75, 69, 78, 79, 77, 65, 128, 65, 78, 85, 83, 86, 65, 82, 65, 89, 65, + 128, 65, 80, 79, 83, 84, 82, 79, 70, 79, 83, 128, 65, 83, 84, 69, 82, 73, + 83, 67, 85, 83, 128, 65, 85, 82, 65, 77, 65, 90, 68, 65, 65, 128, 66, 65, + 67, 75, 45, 84, 73, 76, 84, 69, 196, 66, 65, 82, 73, 89, 79, 79, 83, 65, + 78, 128, 66, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 67, 73, 82, 67, 85, + 76, 65, 84, 73, 79, 206, 67, 76, 85, 66, 45, 83, 80, 79, 75, 69, 196, 67, + 79, 77, 80, 76, 69, 77, 69, 78, 84, 128, 67, 79, 77, 80, 76, 73, 65, 78, + 67, 69, 128, 67, 79, 77, 80, 79, 83, 73, 84, 73, 79, 206, 67, 79, 78, 84, + 69, 78, 84, 73, 79, 78, 128, 67, 79, 82, 82, 69, 83, 80, 79, 78, 68, 211, + 67, 82, 79, 83, 83, 66, 79, 78, 69, 83, 128, 68, 65, 71, 66, 65, 83, 73, + 78, 78, 65, 128, 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 128, 68, 69, 78, + 79, 77, 73, 78, 65, 84, 79, 210, 68, 73, 65, 69, 82, 69, 83, 73, 90, 69, + 196, 68, 73, 77, 69, 78, 83, 73, 79, 78, 65, 204, 68, 73, 82, 69, 67, 84, + 73, 79, 78, 65, 204, 68, 73, 83, 80, 69, 82, 83, 73, 79, 78, 128, 68, 73, + 83, 84, 79, 82, 84, 73, 79, 78, 128, 68, 73, 86, 69, 82, 71, 69, 78, 67, + 69, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, + 49, 50, 51, 52, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 52, 55, 128, 68, + 79, 84, 83, 45, 49, 50, 51, 52, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, + 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 55, 128, 68, 79, 84, 83, + 45, 49, 50, 51, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 55, 128, + 68, 79, 84, 83, 45, 49, 50, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, + 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 54, 128, 68, 79, 84, + 83, 45, 49, 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, 56, + 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, + 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, + 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, + 49, 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 54, 128, 68, + 79, 84, 83, 45, 49, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, + 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 55, 128, 68, 79, 84, 83, + 45, 49, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 55, 56, 128, + 68, 79, 84, 83, 45, 49, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 55, 56, 128, 68, 79, 84, + 83, 45, 49, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 55, + 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, + 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 56, 128, 68, 79, + 84, 83, 45, 49, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, + 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, + 50, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 55, 128, 68, + 79, 84, 83, 45, 50, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, + 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 55, 128, 68, 79, 84, 83, + 45, 50, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 55, 56, 128, + 68, 79, 84, 83, 45, 50, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, + 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 56, 128, 68, 79, 84, + 83, 45, 50, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 54, 55, 56, + 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, + 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 56, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55, + 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 56, 128, 68, 79, 84, 83, 45, + 52, 53, 54, 55, 56, 128, 69, 75, 83, 84, 82, 69, 80, 84, 79, 78, 128, 69, + 77, 66, 82, 79, 73, 68, 69, 82, 89, 128, 69, 78, 67, 79, 85, 78, 84, 69, + 82, 83, 128, 69, 78, 84, 72, 85, 83, 73, 65, 83, 77, 128, 69, 81, 85, 73, + 65, 78, 71, 85, 76, 65, 210, 69, 88, 72, 65, 85, 83, 84, 73, 79, 78, 128, + 70, 65, 72, 82, 69, 78, 72, 69, 73, 84, 128, 70, 69, 76, 76, 79, 87, 83, + 72, 73, 80, 128, 70, 79, 82, 77, 65, 84, 84, 73, 78, 71, 128, 70, 79, 85, + 82, 45, 80, 69, 82, 45, 69, 205, 70, 79, 85, 82, 45, 83, 84, 82, 73, 78, + 199, 71, 66, 65, 75, 85, 82, 85, 78, 69, 78, 128, 72, 66, 65, 83, 65, 45, + 69, 83, 65, 83, 193, 72, 79, 77, 79, 84, 72, 69, 84, 73, 67, 128, 72, 89, + 80, 72, 69, 78, 65, 84, 73, 79, 206, 73, 77, 73, 68, 73, 65, 82, 71, 79, + 78, 128, 73, 77, 73, 70, 84, 72, 79, 82, 79, 78, 128, 73, 78, 70, 79, 82, + 77, 65, 84, 73, 79, 206, 73, 78, 84, 69, 82, 76, 79, 67, 75, 69, 196, 75, + 73, 82, 79, 71, 85, 82, 65, 77, 85, 128, 75, 85, 78, 68, 68, 65, 76, 73, + 89, 65, 128, 76, 65, 74, 65, 78, 89, 65, 76, 65, 78, 128, 76, 69, 70, 84, + 45, 83, 72, 65, 68, 69, 196, 76, 69, 78, 71, 84, 72, 69, 78, 69, 82, 128, + 76, 73, 77, 73, 84, 65, 84, 73, 79, 78, 128, 77, 69, 77, 66, 69, 82, 83, + 72, 73, 80, 128, 77, 85, 76, 84, 73, 79, 67, 85, 76, 65, 210, 78, 65, 78, 71, 77, 79, 78, 84, 72, 79, 128, 78, 79, 78, 45, 74, 79, 73, 78, 69, 82, 128, 78, 79, 78, 70, 79, 82, 75, 73, 78, 71, 128, 79, 80, 80, 82, 69, 83, 83, 73, 79, 78, 128, 80, 65, 76, 65, 84, 65, 76, 73, 90, 69, 196, 80, 65, - 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 79, 83, 83, 69, 83, 83, 73, 79, - 78, 128, 80, 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, 79, 74, 69, - 67, 84, 73, 86, 69, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197, 82, - 65, 72, 77, 65, 84, 85, 76, 76, 65, 200, 82, 69, 83, 73, 83, 84, 65, 78, - 67, 69, 128, 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 79, - 76, 85, 84, 73, 79, 78, 128, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, - 83, 69, 76, 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, - 82, 45, 50, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, - 69, 67, 84, 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, - 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67, 84, - 79, 82, 45, 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 128, 83, 69, - 76, 69, 67, 84, 79, 82, 45, 57, 128, 83, 72, 65, 76, 83, 72, 69, 76, 69, - 84, 128, 83, 73, 79, 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, - 73, 69, 85, 78, 71, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77, 128, 83, - 83, 65, 78, 71, 65, 82, 65, 69, 65, 128, 83, 84, 65, 78, 68, 83, 84, 73, - 76, 76, 128, 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 83, - 84, 73, 84, 85, 84, 69, 128, 83, 89, 78, 67, 72, 82, 79, 78, 79, 85, 211, - 84, 69, 82, 77, 73, 78, 65, 84, 79, 82, 128, 84, 72, 73, 82, 84, 89, 45, - 79, 78, 69, 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 82, 65, - 78, 83, 86, 69, 82, 83, 65, 204, 84, 87, 69, 78, 84, 89, 45, 83, 73, 88, - 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 89, 128, 87, 73, 68, 69, 45, 72, - 69, 65, 68, 69, 196, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128, 76, 69, 83, - 83, 45, 84, 72, 65, 78, 128, 65, 78, 78, 79, 84, 65, 84, 73, 79, 206, 69, - 81, 85, 73, 86, 65, 76, 69, 78, 212, 83, 69, 80, 65, 82, 65, 84, 79, 82, - 128, 65, 82, 82, 79, 87, 72, 69, 65, 68, 128, 65, 76, 80, 65, 80, 82, 65, - 65, 78, 193, 68, 79, 87, 78, 87, 65, 82, 68, 83, 128, 69, 88, 84, 69, 78, - 83, 73, 79, 78, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, 210, 80, 72, 65, - 82, 89, 78, 71, 69, 65, 204, 80, 82, 79, 76, 65, 84, 73, 79, 78, 197, 83, - 69, 77, 73, 67, 79, 76, 79, 78, 128, 84, 85, 82, 78, 83, 84, 73, 76, 69, - 128, 84, 87, 79, 45, 72, 69, 65, 68, 69, 196, 65, 77, 80, 69, 82, 83, 65, - 78, 68, 128, 76, 69, 70, 84, 87, 65, 82, 68, 83, 128, 84, 82, 79, 69, 90, - 69, 78, 73, 65, 206, 67, 79, 77, 77, 69, 82, 67, 73, 65, 204, 83, 69, 77, - 73, 68, 73, 82, 69, 67, 212, 83, 69, 86, 69, 78, 84, 69, 69, 78, 128, 87, - 79, 79, 68, 83, 45, 67, 82, 69, 197, 66, 65, 67, 75, 83, 76, 65, 83, 72, - 128, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 69, 88, 84, 82, 65, 45, 72, - 73, 71, 200, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, 73, 77, 80, 69, 82, - 70, 69, 67, 84, 193, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 82, 69, 67, - 84, 65, 78, 71, 76, 69, 128, 86, 69, 82, 84, 73, 67, 65, 76, 76, 217, 67, - 79, 78, 84, 65, 73, 78, 73, 78, 199, 68, 69, 76, 73, 77, 73, 84, 69, 82, - 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 128, 69, 80, 73, 68, 65, 85, 82, - 69, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 79, 85, 82, 71, - 76, 65, 83, 83, 128, 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83, 69, 77, - 73, 77, 73, 78, 73, 77, 193, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 84, - 82, 73, 65, 78, 71, 85, 76, 65, 210, 65, 80, 79, 83, 84, 82, 79, 70, 79, - 201, 65, 80, 79, 83, 84, 82, 79, 70, 79, 211, 65, 82, 80, 69, 71, 71, 73, - 65, 84, 207, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206, 67, 69, 78, 84, 82, - 69, 76, 73, 78, 197, 67, 72, 65, 82, 65, 67, 84, 69, 82, 128, 67, 79, 80, - 82, 79, 68, 85, 67, 84, 128, 67, 82, 79, 83, 83, 72, 65, 84, 67, 200, 69, - 77, 66, 69, 68, 68, 73, 78, 71, 128, 70, 73, 78, 65, 78, 67, 73, 65, 76, - 128, 70, 79, 76, 76, 79, 87, 73, 78, 71, 128, 70, 82, 69, 84, 66, 79, 65, - 82, 68, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, 71, 79, 82, 84, 72, - 77, 73, 75, 79, 206, 73, 67, 72, 73, 77, 65, 84, 79, 83, 128, 75, 72, 65, - 75, 65, 83, 83, 73, 65, 206, 80, 65, 65, 45, 80, 73, 76, 76, 65, 128, 80, - 65, 82, 65, 80, 72, 82, 65, 83, 197, 80, 69, 78, 84, 65, 83, 69, 77, 69, - 128, 80, 72, 73, 76, 73, 80, 80, 73, 78, 197, 83, 69, 77, 73, 67, 73, 82, - 67, 76, 197, 83, 85, 77, 77, 65, 84, 73, 79, 78, 128, 83, 85, 80, 69, 82, - 86, 73, 83, 69, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49, 128, 83, 89, 77, - 66, 79, 76, 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83, - 89, 77, 66, 79, 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, - 128, 83, 89, 77, 66, 79, 76, 45, 49, 56, 128, 83, 89, 77, 66, 79, 76, 45, - 49, 57, 128, 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89, 77, 66, 79, - 76, 45, 50, 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77, - 66, 79, 76, 45, 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, - 89, 77, 66, 79, 76, 45, 53, 51, 128, 83, 89, 77, 66, 79, 76, 45, 53, 52, - 128, 84, 69, 76, 69, 80, 72, 79, 78, 69, 128, 84, 69, 84, 82, 65, 83, 69, - 77, 69, 128, 84, 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 77, 79, - 76, 79, 45, 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, 82, 73, - 71, 82, 65, 77, 77, 79, 211, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 65, - 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 66, 85, 78, 68, 65, 78, 67, 69, - 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, 65, 78, 84, 73, 70, 79, 78, - 73, 65, 128, 65, 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 82, 45, 82, 65, - 72, 69, 69, 77, 128, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 84, 84, - 69, 78, 84, 73, 79, 78, 128, 66, 65, 67, 75, 83, 80, 65, 67, 69, 128, 66, - 69, 71, 73, 78, 78, 73, 78, 71, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, - 197, 67, 65, 80, 82, 73, 67, 79, 82, 78, 128, 67, 72, 65, 86, 73, 89, 65, - 78, 73, 128, 67, 76, 79, 83, 69, 78, 69, 83, 83, 128, 67, 79, 77, 80, 76, - 69, 84, 69, 68, 128, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, 80, - 89, 82, 73, 71, 72, 84, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, 68, - 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 69, 80, 65, 82, 84, 85, 82, 69, - 128, 68, 69, 83, 67, 69, 78, 68, 73, 78, 199, 68, 73, 70, 70, 69, 82, 69, - 78, 67, 197, 68, 73, 70, 70, 73, 67, 85, 76, 84, 217, 68, 79, 84, 83, 45, - 49, 50, 51, 52, 128, 68, 79, 84, 83, 45, 49, 50, 51, 53, 128, 68, 79, 84, - 83, 45, 49, 50, 51, 54, 128, 68, 79, 84, 83, 45, 49, 50, 51, 55, 128, 68, - 79, 84, 83, 45, 49, 50, 51, 56, 128, 68, 79, 84, 83, 45, 49, 50, 52, 53, - 128, 68, 79, 84, 83, 45, 49, 50, 52, 54, 128, 68, 79, 84, 83, 45, 49, 50, - 52, 55, 128, 68, 79, 84, 83, 45, 49, 50, 52, 56, 128, 68, 79, 84, 83, 45, - 49, 50, 53, 54, 128, 68, 79, 84, 83, 45, 49, 50, 53, 55, 128, 68, 79, 84, - 83, 45, 49, 50, 53, 56, 128, 68, 79, 84, 83, 45, 49, 50, 54, 55, 128, 68, - 79, 84, 83, 45, 49, 50, 54, 56, 128, 68, 79, 84, 83, 45, 49, 50, 55, 56, - 128, 68, 79, 84, 83, 45, 49, 51, 52, 53, 128, 68, 79, 84, 83, 45, 49, 51, - 52, 54, 128, 68, 79, 84, 83, 45, 49, 51, 52, 55, 128, 68, 79, 84, 83, 45, - 49, 51, 52, 56, 128, 68, 79, 84, 83, 45, 49, 51, 53, 54, 128, 68, 79, 84, - 83, 45, 49, 51, 53, 55, 128, 68, 79, 84, 83, 45, 49, 51, 53, 56, 128, 68, - 79, 84, 83, 45, 49, 51, 54, 55, 128, 68, 79, 84, 83, 45, 49, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 49, 51, 55, 56, 128, 68, 79, 84, 83, 45, 49, 52, - 53, 54, 128, 68, 79, 84, 83, 45, 49, 52, 53, 55, 128, 68, 79, 84, 83, 45, - 49, 52, 53, 56, 128, 68, 79, 84, 83, 45, 49, 52, 54, 55, 128, 68, 79, 84, - 83, 45, 49, 52, 54, 56, 128, 68, 79, 84, 83, 45, 49, 52, 55, 56, 128, 68, - 79, 84, 83, 45, 49, 53, 54, 55, 128, 68, 79, 84, 83, 45, 49, 53, 54, 56, - 128, 68, 79, 84, 83, 45, 49, 53, 55, 56, 128, 68, 79, 84, 83, 45, 49, 54, - 55, 56, 128, 68, 79, 84, 83, 45, 50, 51, 52, 53, 128, 68, 79, 84, 83, 45, - 50, 51, 52, 54, 128, 68, 79, 84, 83, 45, 50, 51, 52, 55, 128, 68, 79, 84, - 83, 45, 50, 51, 52, 56, 128, 68, 79, 84, 83, 45, 50, 51, 53, 54, 128, 68, - 79, 84, 83, 45, 50, 51, 53, 55, 128, 68, 79, 84, 83, 45, 50, 51, 53, 56, - 128, 68, 79, 84, 83, 45, 50, 51, 54, 55, 128, 68, 79, 84, 83, 45, 50, 51, - 54, 56, 128, 68, 79, 84, 83, 45, 50, 51, 55, 56, 128, 68, 79, 84, 83, 45, - 50, 52, 53, 54, 128, 68, 79, 84, 83, 45, 50, 52, 53, 55, 128, 68, 79, 84, - 83, 45, 50, 52, 53, 56, 128, 68, 79, 84, 83, 45, 50, 52, 54, 55, 128, 68, - 79, 84, 83, 45, 50, 52, 54, 56, 128, 68, 79, 84, 83, 45, 50, 52, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 53, 54, 55, 128, 68, 79, 84, 83, 45, 50, 53, - 54, 56, 128, 68, 79, 84, 83, 45, 50, 53, 55, 56, 128, 68, 79, 84, 83, 45, - 50, 54, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 54, 128, 68, 79, 84, - 83, 45, 51, 52, 53, 55, 128, 68, 79, 84, 83, 45, 51, 52, 53, 56, 128, 68, - 79, 84, 83, 45, 51, 52, 54, 55, 128, 68, 79, 84, 83, 45, 51, 52, 54, 56, - 128, 68, 79, 84, 83, 45, 51, 52, 55, 56, 128, 68, 79, 84, 83, 45, 51, 53, - 54, 55, 128, 68, 79, 84, 83, 45, 51, 53, 54, 56, 128, 68, 79, 84, 83, 45, - 51, 53, 55, 56, 128, 68, 79, 84, 83, 45, 51, 54, 55, 56, 128, 68, 79, 84, - 83, 45, 52, 53, 54, 55, 128, 68, 79, 84, 83, 45, 52, 53, 54, 56, 128, 68, - 79, 84, 83, 45, 52, 53, 55, 56, 128, 68, 79, 84, 83, 45, 52, 54, 55, 56, - 128, 68, 79, 84, 83, 45, 53, 54, 55, 56, 128, 69, 69, 66, 69, 69, 70, 73, - 76, 73, 128, 69, 78, 65, 82, 77, 79, 78, 73, 79, 211, 69, 78, 68, 69, 65, - 86, 79, 85, 82, 128, 69, 78, 68, 79, 70, 79, 78, 79, 78, 128, 69, 83, 84, - 73, 77, 65, 84, 69, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, 69, - 89, 66, 69, 89, 70, 73, 76, 73, 128, 70, 79, 79, 84, 83, 84, 79, 79, 76, - 128, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 82, 73, 67, 65, 84, 73, - 86, 69, 128, 71, 65, 84, 72, 69, 82, 73, 78, 71, 128, 71, 69, 77, 73, 78, - 65, 84, 73, 79, 206, 71, 78, 65, 86, 73, 89, 65, 78, 73, 128, 71, 79, 82, - 71, 79, 84, 69, 82, 73, 128, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, 71, - 85, 82, 65, 77, 85, 84, 79, 78, 128, 72, 69, 75, 85, 84, 65, 65, 82, 85, - 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 89, 83, 84, 69, 82, 69, - 83, 73, 211, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, 84, - 72, 79, 82, 65, 128, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, 67, - 82, 69, 77, 69, 78, 84, 128, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, 73, - 78, 70, 76, 85, 69, 78, 67, 69, 128, 73, 78, 78, 79, 67, 69, 78, 67, 69, - 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 74, 69, 82, 85, 83, 65, 76, - 69, 77, 128, 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 69, 77, 80, 72, - 82, 69, 78, 71, 128, 75, 69, 78, 84, 73, 77, 65, 84, 65, 128, 75, 73, 82, - 79, 87, 65, 84, 84, 79, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, 75, - 85, 82, 85, 90, 69, 73, 82, 79, 128, 76, 65, 66, 79, 85, 82, 73, 78, 71, - 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 73, 71, 72, 84, 78, 73, - 78, 71, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 84, 69, 82, - 73, 65, 76, 83, 128, 77, 69, 84, 79, 66, 69, 76, 85, 83, 128, 77, 73, 82, - 73, 66, 65, 65, 82, 85, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, 77, - 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 85, 75, 80, 72, 82, 69, 78, 71, - 128, 78, 73, 71, 71, 65, 72, 73, 84, 65, 128, 79, 65, 66, 79, 65, 70, 73, - 76, 73, 128, 79, 79, 66, 79, 79, 70, 73, 76, 73, 128, 79, 82, 84, 72, 79, - 71, 79, 78, 65, 204, 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 82, - 65, 71, 82, 65, 80, 72, 128, 80, 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, - 73, 84, 67, 72, 70, 79, 82, 75, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, - 128, 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 79, 82, 82, 69, 67, 84, - 85, 83, 128, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, - 77, 85, 79, 89, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211, 81, 85, 65, - 84, 69, 82, 78, 73, 79, 206, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, - 85, 83, 72, 83, 72, 65, 89, 65, 128, 82, 69, 71, 73, 83, 84, 69, 82, 69, - 196, 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 80, 82, 69, 83, 69, - 78, 84, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83, 85, 80, - 73, 78, 85, 83, 128, 82, 73, 71, 72, 84, 45, 83, 73, 68, 197, 83, 67, 65, - 78, 68, 73, 67, 85, 83, 128, 83, 69, 80, 84, 69, 77, 66, 69, 82, 128, 83, - 69, 86, 69, 82, 65, 78, 67, 69, 128, 83, 72, 65, 86, 73, 89, 65, 78, 73, - 128, 83, 72, 79, 82, 84, 69, 78, 69, 82, 128, 83, 72, 79, 85, 76, 68, 69, - 82, 69, 196, 83, 73, 88, 45, 80, 69, 82, 45, 69, 205, 83, 73, 88, 45, 83, - 84, 82, 73, 78, 199, 83, 84, 82, 79, 75, 69, 45, 49, 48, 128, 83, 84, 82, - 79, 75, 69, 45, 49, 49, 128, 83, 85, 66, 83, 84, 73, 84, 85, 84, 197, 83, - 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 89, 77, 66, 79, 76, 45, 49, 48, - 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77, 66, 79, 76, 45, - 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, 79, - 76, 45, 50, 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 50, 128, 83, 89, 77, - 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66, 79, 76, 45, 50, 54, 128, 83, - 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76, 45, 50, 57, - 128, 83, 89, 77, 66, 79, 76, 45, 51, 48, 128, 83, 89, 77, 66, 79, 76, 45, - 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83, 89, 77, 66, 79, - 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, 77, - 66, 79, 76, 45, 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 52, 48, 128, 83, - 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52, 51, - 128, 83, 89, 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, 45, - 52, 55, 128, 83, 89, 77, 66, 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, 79, - 76, 45, 52, 57, 128, 83, 89, 82, 77, 65, 84, 73, 75, 73, 128, 84, 65, 75, - 72, 65, 76, 76, 85, 83, 128, 84, 65, 87, 69, 76, 76, 69, 77, 69, 212, 84, - 72, 69, 82, 69, 70, 79, 82, 69, 128, 84, 72, 82, 69, 69, 45, 76, 73, 78, - 197, 84, 82, 73, 70, 79, 76, 73, 65, 84, 197, 84, 82, 73, 70, 79, 78, 73, - 65, 83, 128, 84, 82, 73, 71, 79, 82, 71, 79, 78, 128, 84, 85, 84, 69, 89, - 65, 83, 65, 84, 128, 86, 73, 83, 65, 82, 71, 65, 89, 65, 128, 87, 65, 83, - 83, 65, 76, 76, 65, 77, 128, 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, - 79, 82, 68, 83, 80, 65, 67, 69, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, - 128, 76, 69, 83, 83, 45, 84, 72, 65, 206, 68, 79, 87, 78, 87, 65, 82, 68, - 211, 84, 82, 73, 65, 78, 71, 76, 69, 128, 79, 80, 69, 82, 65, 84, 79, 82, - 128, 83, 85, 66, 83, 67, 82, 73, 80, 212, 84, 72, 79, 85, 83, 65, 78, 68, - 128, 85, 78, 68, 69, 82, 66, 65, 82, 128, 81, 85, 79, 84, 65, 84, 73, 79, - 206, 65, 83, 84, 69, 82, 73, 83, 75, 128, 79, 82, 78, 65, 77, 69, 78, 84, - 128, 82, 69, 84, 82, 79, 70, 76, 69, 216, 65, 82, 67, 72, 65, 73, 79, 78, - 128, 68, 73, 65, 69, 82, 69, 83, 73, 211, 66, 76, 65, 67, 75, 70, 79, 79, - 212, 68, 69, 78, 84, 73, 83, 84, 82, 217, 68, 73, 65, 76, 89, 84, 73, 75, - 193, 73, 78, 84, 69, 71, 82, 65, 76, 128, 65, 78, 85, 83, 86, 65, 82, 65, - 128, 86, 69, 82, 84, 73, 67, 65, 76, 128, 76, 69, 70, 84, 45, 83, 84, 69, - 205, 82, 69, 67, 89, 67, 76, 73, 78, 199, 65, 66, 75, 72, 65, 83, 73, 65, - 206, 68, 73, 65, 76, 69, 67, 84, 45, 208, 68, 79, 68, 69, 75, 65, 84, 65, - 128, 69, 76, 76, 73, 80, 83, 73, 83, 128, 81, 85, 65, 68, 82, 65, 78, 84, - 128, 81, 85, 65, 68, 82, 85, 80, 76, 197, 68, 73, 65, 84, 79, 78, 73, 75, - 201, 69, 78, 67, 76, 79, 83, 73, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, - 128, 80, 76, 65, 83, 84, 73, 67, 83, 128, 65, 82, 82, 79, 87, 72, 69, 65, - 196, 73, 84, 69, 82, 65, 84, 73, 79, 206, 78, 79, 84, 69, 72, 69, 65, 68, - 128, 78, 85, 77, 69, 82, 65, 84, 79, 210, 65, 86, 65, 71, 82, 65, 72, 65, - 128, 69, 73, 71, 72, 84, 69, 69, 78, 128, 70, 79, 85, 82, 84, 69, 69, 78, - 128, 78, 73, 78, 69, 84, 69, 69, 78, 128, 83, 85, 80, 69, 82, 83, 69, 84, - 128, 84, 72, 73, 82, 84, 69, 69, 78, 128, 68, 73, 65, 71, 79, 78, 65, 76, - 128, 69, 88, 84, 82, 65, 45, 76, 79, 215, 70, 76, 79, 82, 69, 84, 84, 69, - 128, 73, 68, 69, 78, 84, 73, 67, 65, 204, 75, 69, 78, 84, 73, 77, 65, 84, - 193, 80, 65, 82, 65, 71, 82, 65, 80, 200, 82, 69, 76, 65, 84, 73, 79, 78, - 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 69, 66, 65, 84, 66, 69, 73, - 212, 83, 69, 80, 65, 82, 65, 84, 79, 210, 65, 76, 84, 69, 82, 78, 65, 84, - 197, 68, 68, 65, 89, 65, 78, 78, 65, 128, 68, 69, 80, 65, 82, 84, 73, 78, - 199, 70, 65, 78, 69, 82, 79, 83, 73, 211, 70, 73, 83, 72, 72, 79, 79, 75, - 128, 73, 78, 70, 73, 78, 73, 84, 89, 128, 77, 79, 85, 78, 84, 65, 73, 78, - 128, 77, 85, 76, 84, 73, 77, 65, 80, 128, 77, 85, 85, 82, 68, 72, 65, 74, - 193, 80, 65, 82, 65, 76, 76, 69, 76, 128, 80, 82, 69, 67, 69, 68, 69, 83, - 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 80, 72, 69, 82, 73, 67, 65, - 204, 83, 85, 66, 76, 73, 78, 69, 65, 210, 83, 85, 67, 67, 69, 69, 68, 83, - 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 84, 69, 76, 69, 80, 72, 79, 78, - 197, 84, 72, 79, 85, 83, 65, 78, 68, 211, 89, 69, 83, 73, 69, 85, 78, 71, - 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 67, 65, 85, 76, 68, 82, 79, 78, - 128, 67, 79, 78, 83, 84, 65, 78, 84, 128, 68, 73, 70, 79, 78, 73, 65, 83, - 128, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 82, 65, 67, 72, 77, 65, 83, - 128, 70, 76, 65, 84, 84, 69, 78, 69, 196, 71, 65, 82, 83, 72, 85, 78, 73, - 128, 71, 65, 84, 72, 69, 82, 73, 78, 199, 71, 76, 73, 83, 83, 65, 78, 68, - 207, 71, 82, 69, 71, 79, 82, 73, 65, 206, 73, 78, 67, 82, 69, 65, 83, 69, - 128, 73, 78, 83, 69, 82, 84, 73, 79, 206, 73, 78, 86, 73, 83, 73, 66, 76, - 197, 73, 83, 45, 80, 73, 76, 76, 65, 128, 79, 86, 69, 82, 82, 73, 68, 69, - 128, 79, 89, 82, 65, 78, 73, 83, 77, 193, 80, 69, 68, 69, 83, 84, 65, 76, - 128, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80, 82, 65, 77, 45, 66, 85, 79, - 206, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 79, 76, 79, 78, 71, 69, - 196, 80, 82, 79, 80, 69, 76, 76, 69, 210, 82, 69, 83, 79, 85, 82, 67, 69, - 128, 82, 69, 83, 80, 79, 78, 83, 69, 128, 82, 69, 86, 69, 82, 83, 69, 68, - 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 85, 66, 71, 82, 79, 85, 80, - 128, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 89, 77, 66, 79, 76, 45, 49, - 128, 83, 89, 77, 66, 79, 76, 45, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52, - 128, 83, 89, 77, 66, 79, 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, 45, 55, - 128, 83, 89, 77, 66, 79, 76, 45, 56, 128, 83, 89, 77, 77, 69, 84, 82, 73, - 195, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 82, 73, 83, 73, 77, 79, 85, - 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 85, 78, 68, 69, 82, 76, 73, 78, - 197, 85, 78, 68, 69, 82, 84, 73, 69, 128, 85, 78, 73, 86, 69, 82, 83, 65, - 204, 65, 68, 68, 82, 69, 83, 83, 69, 196, 65, 69, 69, 89, 65, 78, 78, 65, - 128, 65, 73, 82, 80, 76, 65, 78, 69, 128, 65, 78, 85, 68, 65, 84, 84, 65, - 128, 65, 80, 79, 68, 69, 88, 73, 65, 128, 65, 80, 79, 84, 72, 69, 77, 65, - 128, 65, 80, 80, 82, 79, 65, 67, 72, 128, 65, 81, 85, 65, 82, 73, 85, 83, - 128, 65, 82, 45, 82, 65, 72, 77, 65, 206, 65, 82, 65, 69, 65, 45, 69, 79, - 128, 65, 82, 71, 79, 84, 69, 82, 73, 128, 65, 82, 73, 83, 84, 69, 82, 65, - 128, 65, 83, 67, 69, 78, 68, 73, 78, 199, 65, 83, 84, 69, 82, 73, 83, 75, - 211, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 84, 84, 72, 65, 67, 65, 78, - 128, 66, 65, 67, 75, 83, 76, 65, 83, 200, 66, 69, 86, 69, 82, 65, 71, 69, - 128, 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 83, 69, 67, 84, 73, 78, - 199, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 82, 65, 78, 67, 72, 73, 78, - 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, 85, 83, 83, 89, 69, 82, 85, - 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 82, 89, 83, 84, 73, 65, - 206, 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 84, 84, 65, 87, 65, - 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 76, 73, 77, 65, 67, 85, 83, - 128, 67, 79, 78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 71, 82, 85, 69, 78, - 212, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 84, 79, 85, 82, 69, - 196, 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 82, 69, 83, 67, 69, 78, 84, - 128, 68, 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 82, 75, 69, 78, 73, 78, - 199, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 69, 67, 69, 77, 66, 69, 82, - 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68, 69, 76, 73, 77, 73, 84, 69, - 210, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 71, 79, 82, 71, 79, 78, - 128, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 79, 84, 83, 45, 49, 50, 51, - 128, 68, 79, 84, 83, 45, 49, 50, 52, 128, 68, 79, 84, 83, 45, 49, 50, 53, - 128, 68, 79, 84, 83, 45, 49, 50, 54, 128, 68, 79, 84, 83, 45, 49, 50, 55, - 128, 68, 79, 84, 83, 45, 49, 50, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, - 128, 68, 79, 84, 83, 45, 49, 51, 53, 128, 68, 79, 84, 83, 45, 49, 51, 54, - 128, 68, 79, 84, 83, 45, 49, 51, 55, 128, 68, 79, 84, 83, 45, 49, 51, 56, - 128, 68, 79, 84, 83, 45, 49, 52, 53, 128, 68, 79, 84, 83, 45, 49, 52, 54, - 128, 68, 79, 84, 83, 45, 49, 52, 55, 128, 68, 79, 84, 83, 45, 49, 52, 56, - 128, 68, 79, 84, 83, 45, 49, 53, 54, 128, 68, 79, 84, 83, 45, 49, 53, 55, - 128, 68, 79, 84, 83, 45, 49, 53, 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, - 128, 68, 79, 84, 83, 45, 49, 54, 56, 128, 68, 79, 84, 83, 45, 49, 55, 56, - 128, 68, 79, 84, 83, 45, 50, 51, 52, 128, 68, 79, 84, 83, 45, 50, 51, 53, - 128, 68, 79, 84, 83, 45, 50, 51, 54, 128, 68, 79, 84, 83, 45, 50, 51, 55, - 128, 68, 79, 84, 83, 45, 50, 51, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, - 128, 68, 79, 84, 83, 45, 50, 52, 54, 128, 68, 79, 84, 83, 45, 50, 52, 55, - 128, 68, 79, 84, 83, 45, 50, 52, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, - 128, 68, 79, 84, 83, 45, 50, 53, 55, 128, 68, 79, 84, 83, 45, 50, 53, 56, - 128, 68, 79, 84, 83, 45, 50, 54, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, - 128, 68, 79, 84, 83, 45, 50, 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, - 128, 68, 79, 84, 83, 45, 51, 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 55, - 128, 68, 79, 84, 83, 45, 51, 52, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, - 128, 68, 79, 84, 83, 45, 51, 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 56, - 128, 68, 79, 84, 83, 45, 51, 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56, - 128, 68, 79, 84, 83, 45, 51, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, - 128, 68, 79, 84, 83, 45, 52, 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 56, - 128, 68, 79, 84, 83, 45, 52, 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, - 128, 68, 79, 84, 83, 45, 52, 55, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, - 128, 68, 79, 84, 83, 45, 53, 54, 56, 128, 68, 79, 84, 83, 45, 53, 55, 56, - 128, 68, 79, 84, 83, 45, 54, 55, 56, 128, 68, 79, 84, 84, 69, 68, 45, 76, - 128, 68, 79, 84, 84, 69, 68, 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 80, - 128, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 86, 73, 83, 86, 65, 82, 65, - 128, 69, 68, 73, 84, 79, 82, 73, 65, 204, 69, 78, 86, 69, 76, 79, 80, 69, - 128, 69, 80, 69, 71, 69, 82, 77, 65, 128, 69, 83, 84, 73, 77, 65, 84, 69, - 196, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 84, 69, 82, 78, 73, 84, 89, - 128, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 84, 72, 65, 84, 65, 78, - 128, 70, 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, 83, 84, 73, 86, 65, 76, - 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, 45, 50, - 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, 73, 86, 69, 45, 76, 73, 78, - 197, 70, 79, 85, 82, 45, 76, 73, 78, 197, 70, 82, 65, 71, 77, 69, 78, 84, - 128, 70, 82, 65, 71, 82, 65, 78, 84, 128, 70, 85, 76, 76, 78, 69, 83, 83, - 128, 70, 85, 78, 67, 84, 73, 79, 78, 128, 71, 69, 78, 73, 84, 73, 86, 69, - 128, 71, 69, 79, 77, 69, 84, 82, 73, 195, 72, 65, 78, 45, 65, 75, 65, 84, - 128, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 77, 79, 78, 73, 67, - 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 85, 65, 82, 65, 68, 68, 79, - 128, 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, 79, 78, 79, 78, - 128, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 82, 69, 65, 83, 69, - 211, 73, 82, 85, 89, 65, 78, 78, 65, 128, 74, 65, 86, 73, 89, 65, 78, 73, - 128, 75, 65, 83, 82, 65, 84, 65, 78, 128, 75, 65, 84, 72, 73, 83, 84, 73, - 128, 75, 69, 89, 66, 79, 65, 82, 68, 128, 75, 79, 78, 84, 69, 86, 77, 65, - 128, 75, 82, 69, 77, 65, 83, 84, 73, 128, 76, 65, 82, 89, 78, 71, 69, 65, - 204, 76, 69, 70, 84, 45, 83, 73, 68, 197, 76, 73, 65, 66, 73, 76, 73, 84, - 217, 76, 79, 67, 65, 84, 73, 86, 69, 128, 76, 79, 82, 82, 65, 73, 78, 69, - 128, 77, 65, 72, 65, 80, 65, 75, 72, 128, 77, 65, 73, 77, 65, 76, 65, 73, - 128, 77, 65, 73, 89, 65, 77, 79, 75, 128, 77, 65, 78, 71, 65, 76, 65, 77, - 128, 77, 65, 83, 67, 85, 76, 73, 78, 197, 77, 69, 68, 73, 67, 73, 78, 69, - 128, 77, 69, 83, 83, 69, 78, 73, 65, 206, 77, 73, 78, 73, 83, 84, 69, 82, - 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 78, 73, 75, 72, 65, 72, 73, 84, - 128, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78, 79, 86, 69, 77, 66, 69, 82, - 128, 79, 86, 69, 82, 76, 65, 73, 68, 128, 80, 65, 65, 83, 69, 78, 84, 79, - 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65, 76, 79, 67, 72, 75, 65, - 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 82, 73, 67, 72, 79, 78, - 128, 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 69, 76, 65, 83, 84, 79, 78, - 128, 80, 69, 82, 77, 65, 78, 69, 78, 212, 80, 73, 84, 67, 72, 70, 79, 82, - 203, 80, 76, 69, 84, 72, 82, 79, 78, 128, 80, 79, 82, 82, 69, 67, 84, 85, - 211, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 80, 73, 73, - 128, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79, 71, 82, 69, 83, 83, - 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 81, 65, 73, 82, 84, 72, 82, 65, - 128, 81, 85, 65, 82, 84, 69, 82, 83, 128, 81, 85, 69, 83, 84, 73, 79, 78, - 128, 82, 69, 67, 69, 80, 84, 73, 86, 197, 82, 69, 67, 79, 82, 68, 69, 82, - 128, 82, 69, 67, 79, 82, 68, 73, 78, 199, 82, 69, 67, 84, 65, 78, 71, 76, - 197, 82, 69, 70, 69, 82, 69, 78, 67, 197, 82, 69, 76, 73, 71, 73, 79, 78, - 128, 82, 69, 78, 84, 79, 71, 69, 78, 128, 82, 73, 71, 72, 84, 72, 65, 78, - 196, 82, 85, 75, 75, 65, 75, 72, 65, 128, 83, 65, 78, 84, 73, 73, 77, 85, - 128, 83, 65, 88, 73, 77, 65, 84, 65, 128, 83, 67, 65, 78, 68, 73, 67, 85, - 211, 83, 67, 79, 82, 80, 73, 85, 83, 128, 83, 69, 77, 73, 67, 79, 76, 79, - 206, 83, 69, 86, 69, 78, 84, 69, 69, 206, 83, 72, 65, 77, 82, 79, 67, 75, - 128, 83, 72, 69, 45, 71, 79, 65, 84, 128, 83, 73, 67, 75, 78, 69, 83, 83, - 128, 83, 80, 76, 73, 84, 84, 73, 78, 199, 83, 84, 65, 76, 76, 73, 79, 78, - 128, 83, 84, 79, 80, 80, 65, 71, 69, 128, 83, 84, 79, 80, 80, 73, 78, 71, - 128, 83, 84, 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 84, 67, 72, 69, - 196, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75, 69, 45, 50, - 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, 45, 52, - 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, 45, 54, - 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, 45, 56, - 128, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 85, 73, 84, 65, 66, 76, 69, - 128, 83, 85, 82, 82, 79, 85, 78, 68, 128, 83, 89, 77, 66, 79, 76, 45, 51, - 128, 83, 89, 77, 66, 79, 76, 45, 54, 128, 83, 89, 77, 66, 79, 76, 45, 57, - 128, 83, 89, 77, 77, 69, 84, 82, 89, 128, 83, 89, 78, 68, 69, 83, 77, 79, - 211, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 69, 84, 82, 65, 80, 76, 73, - 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 82, 69, 65, 68, 73, 78, 71, - 128, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 79, 77, 73, 75, 79, 78, - 128, 84, 82, 85, 78, 67, 65, 84, 69, 196, 85, 73, 76, 76, 69, 65, 78, 78, - 128, 85, 77, 66, 82, 69, 76, 76, 65, 128, 85, 78, 68, 69, 82, 68, 79, 84, - 128, 85, 78, 77, 65, 82, 82, 73, 69, 196, 86, 69, 82, 83, 73, 67, 76, 69, - 128, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 83, 65, 76, 76, 65, 77, - 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 80, 79, 75, 82, 73, 83, 73, - 211, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 87, 65, 82, 65, 75, 65, 89, - 128, 73, 78, 86, 69, 82, 84, 69, 196, 78, 69, 71, 65, 84, 73, 86, 197, - 85, 71, 65, 82, 73, 84, 73, 195, 66, 85, 71, 73, 78, 69, 83, 197, 72, 85, - 78, 68, 82, 69, 68, 128, 67, 69, 68, 73, 76, 76, 65, 128, 84, 82, 73, 65, - 78, 71, 76, 197, 78, 79, 84, 69, 72, 69, 65, 196, 83, 85, 80, 69, 82, 83, - 69, 212, 70, 82, 65, 67, 84, 73, 79, 206, 81, 85, 69, 83, 84, 73, 79, - 206, 84, 65, 71, 66, 65, 78, 87, 193, 81, 85, 65, 68, 82, 65, 78, 212, - 68, 73, 65, 71, 79, 78, 65, 204, 85, 80, 83, 73, 76, 79, 78, 128, 79, 86, - 69, 82, 76, 65, 89, 128, 77, 65, 82, 84, 89, 82, 73, 193, 79, 86, 69, 82, - 66, 65, 82, 128, 68, 73, 65, 77, 79, 78, 68, 128, 69, 80, 83, 73, 76, 79, - 78, 128, 72, 65, 78, 71, 90, 72, 79, 213, 73, 78, 84, 69, 71, 82, 65, - 204, 77, 69, 65, 83, 85, 82, 69, 196, 79, 77, 73, 67, 82, 79, 78, 128, - 84, 79, 82, 84, 79, 73, 83, 197, 79, 82, 78, 65, 77, 69, 78, 212, 86, 73, - 83, 65, 82, 71, 65, 128, 69, 88, 84, 69, 78, 68, 69, 196, 72, 65, 82, 80, - 79, 79, 78, 128, 80, 82, 69, 67, 69, 68, 69, 211, 83, 79, 76, 73, 68, 85, - 83, 128, 83, 85, 67, 67, 69, 69, 68, 211, 84, 72, 69, 83, 80, 73, 65, - 206, 67, 79, 78, 84, 65, 73, 78, 211, 68, 73, 71, 82, 65, 80, 72, 128, - 77, 69, 84, 82, 73, 67, 65, 204, 77, 79, 78, 79, 71, 82, 65, 205, 67, 82, - 79, 83, 83, 73, 78, 199, 83, 73, 77, 65, 78, 83, 73, 211, 83, 84, 65, 84, - 69, 82, 83, 128, 83, 85, 66, 85, 78, 73, 84, 128, 83, 73, 68, 69, 87, 65, - 89, 211, 83, 81, 85, 65, 82, 69, 68, 128, 84, 65, 76, 69, 78, 84, 83, - 128, 84, 72, 79, 85, 83, 65, 78, 196, 66, 65, 82, 76, 73, 78, 69, 128, - 68, 73, 86, 73, 83, 73, 79, 206, 73, 79, 84, 73, 70, 73, 69, 196, 80, 65, - 82, 65, 76, 76, 69, 204, 83, 73, 88, 84, 69, 69, 78, 128, 83, 85, 66, 71, - 82, 79, 85, 208, 83, 85, 82, 82, 79, 85, 78, 196, 85, 80, 87, 65, 82, 68, - 83, 128, 70, 73, 70, 84, 69, 69, 78, 128, 79, 80, 69, 82, 65, 84, 79, - 210, 79, 82, 73, 71, 73, 78, 65, 204, 68, 73, 65, 83, 84, 79, 76, 201, - 68, 73, 86, 73, 68, 69, 82, 128, 70, 65, 84, 72, 65, 84, 65, 206, 73, 90, - 72, 73, 84, 83, 65, 128, 77, 89, 83, 76, 73, 84, 69, 128, 80, 79, 73, 78, - 84, 69, 82, 128, 83, 84, 82, 65, 73, 71, 72, 212, 65, 83, 84, 69, 82, 73, - 83, 203, 66, 65, 89, 65, 78, 78, 65, 128, 67, 72, 82, 79, 78, 79, 78, - 128, 68, 73, 71, 79, 82, 71, 79, 206, 69, 73, 71, 72, 84, 72, 83, 128, - 70, 73, 78, 71, 69, 82, 69, 196, 71, 65, 89, 65, 78, 78, 65, 128, 72, 65, - 82, 75, 76, 69, 65, 206, 74, 65, 89, 65, 78, 78, 65, 128, 75, 79, 82, 79, - 78, 73, 83, 128, 76, 69, 65, 84, 72, 69, 82, 128, 76, 79, 90, 69, 78, 71, - 69, 128, 77, 65, 75, 83, 85, 82, 65, 128, 78, 79, 45, 66, 82, 69, 65, - 203, 80, 73, 78, 87, 72, 69, 69, 204, 81, 85, 65, 82, 84, 69, 82, 211, - 82, 69, 80, 69, 65, 84, 69, 196, 83, 65, 89, 65, 78, 78, 65, 128, 83, 69, - 76, 69, 67, 84, 79, 210, 83, 81, 85, 73, 71, 71, 76, 197, 84, 69, 84, 65, - 82, 84, 79, 211, 84, 82, 79, 77, 73, 75, 79, 206, 65, 67, 84, 73, 86, 65, - 84, 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 75, 72, 77, 73, 77, 73, - 195, 65, 80, 79, 68, 69, 82, 77, 193, 65, 82, 73, 83, 84, 69, 82, 193, - 66, 69, 84, 87, 69, 69, 78, 128, 66, 73, 76, 65, 66, 73, 65, 204, 67, 65, - 89, 65, 78, 78, 65, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 72, 65, 82, - 73, 79, 84, 128, 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 82, 79, 78, 79, - 85, 128, 67, 76, 79, 84, 72, 69, 83, 128, 67, 79, 82, 78, 69, 82, 83, - 128, 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 80, 45, 66, 85, 79, 206, - 68, 65, 80, 45, 77, 85, 79, 217, 68, 65, 80, 45, 80, 82, 65, 205, 68, 69, - 89, 84, 69, 82, 79, 211, 68, 73, 71, 65, 77, 77, 65, 128, 68, 73, 83, 73, - 77, 79, 85, 128, 69, 77, 80, 72, 65, 83, 73, 211, 70, 69, 77, 73, 78, 73, - 78, 197, 70, 69, 82, 77, 65, 84, 65, 128, 70, 73, 83, 72, 72, 79, 79, - 203, 71, 76, 65, 71, 79, 76, 73, 128, 73, 78, 72, 69, 82, 69, 78, 212, - 73, 78, 84, 69, 82, 73, 79, 210, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, - 89, 65, 78, 78, 65, 128, 75, 79, 77, 66, 85, 86, 65, 128, 76, 45, 83, 72, - 65, 80, 69, 196, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 89, 65, 78, 78, - 65, 128, 76, 74, 85, 68, 73, 74, 69, 128, 76, 79, 71, 79, 84, 89, 80, - 197, 77, 69, 65, 83, 85, 82, 69, 128, 77, 85, 76, 84, 73, 83, 69, 212, - 78, 65, 89, 65, 78, 78, 65, 128, 79, 77, 73, 83, 83, 73, 79, 206, 80, 65, - 89, 65, 78, 78, 65, 128, 80, 69, 68, 69, 83, 84, 65, 204, 80, 69, 84, 65, - 76, 76, 69, 196, 80, 82, 65, 77, 45, 66, 69, 201, 80, 82, 65, 77, 45, 80, - 73, 201, 81, 85, 65, 82, 84, 69, 82, 128, 82, 71, 89, 73, 78, 71, 83, - 128, 83, 45, 83, 72, 65, 80, 69, 196, 83, 69, 77, 73, 83, 79, 70, 212, - 83, 69, 77, 75, 65, 84, 72, 128, 83, 69, 86, 69, 78, 84, 89, 128, 83, 72, - 65, 80, 73, 78, 71, 128, 83, 72, 84, 65, 80, 73, 67, 128, 83, 79, 67, 73, - 69, 84, 89, 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 69, 67, 73, 65, - 76, 128, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, 82, 79, 75, 69, 83, - 128, 84, 72, 69, 83, 69, 79, 83, 128, 84, 72, 85, 78, 68, 69, 82, 128, - 84, 82, 73, 83, 69, 77, 69, 128, 85, 66, 65, 68, 65, 77, 65, 128, 87, 65, - 73, 84, 73, 78, 71, 128, 90, 72, 73, 86, 69, 84, 69, 128, 65, 65, 89, 65, - 78, 78, 65, 128, 65, 66, 65, 70, 73, 76, 73, 128, 65, 68, 86, 65, 78, 67, - 69, 128, 65, 69, 89, 65, 78, 78, 65, 128, 65, 73, 89, 65, 78, 78, 65, - 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 86, 69, 79, 76, 65, 210, - 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 85, 76, 65, 82, 128, 65, 78, - 85, 83, 86, 65, 82, 193, 65, 80, 79, 84, 72, 69, 83, 128, 65, 82, 65, 69, - 65, 45, 73, 128, 65, 82, 65, 69, 65, 45, 85, 128, 65, 82, 67, 72, 65, 73, - 79, 206, 65, 82, 79, 85, 83, 73, 78, 199, 65, 85, 89, 65, 78, 78, 65, - 128, 66, 65, 65, 82, 69, 82, 85, 128, 66, 65, 73, 82, 75, 65, 78, 128, - 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 73, 69, 82, 128, 66, 65, - 84, 72, 84, 85, 66, 128, 66, 69, 67, 65, 85, 83, 69, 128, 66, 69, 76, 71, - 84, 72, 79, 210, 66, 69, 82, 75, 65, 78, 65, 206, 66, 73, 68, 69, 78, 84, - 65, 204, 66, 79, 85, 78, 68, 65, 82, 217, 66, 82, 65, 75, 67, 69, 84, - 128, 66, 82, 73, 83, 84, 76, 69, 128, 66, 85, 85, 77, 73, 83, 72, 128, - 67, 65, 69, 83, 85, 82, 65, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, - 82, 82, 73, 65, 71, 197, 67, 69, 76, 83, 73, 85, 83, 128, 67, 72, 65, 77, - 73, 76, 73, 128, 67, 76, 73, 78, 71, 73, 78, 199, 67, 79, 77, 80, 65, 82, - 69, 128, 67, 79, 78, 83, 84, 65, 78, 212, 67, 79, 78, 84, 65, 67, 84, - 128, 67, 79, 82, 79, 78, 73, 83, 128, 67, 79, 82, 82, 69, 67, 84, 128, - 67, 82, 69, 65, 84, 73, 86, 197, 67, 82, 69, 83, 67, 69, 78, 212, 67, 82, - 85, 90, 69, 73, 82, 207, 67, 85, 83, 84, 79, 77, 69, 210, 67, 87, 69, 79, - 82, 84, 72, 128, 67, 89, 80, 69, 82, 85, 83, 128, 67, 89, 82, 69, 78, 65, - 73, 195, 68, 65, 71, 65, 76, 71, 65, 128, 68, 69, 67, 65, 89, 69, 68, - 128, 68, 69, 89, 84, 69, 82, 79, 213, 68, 72, 65, 76, 65, 84, 72, 128, - 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 84, 79, 78, 79, 206, 68, 73, - 71, 82, 65, 77, 77, 193, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, 80, 76, - 79, 85, 78, 128, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 86, 73, 68, 69, - 83, 128, 68, 79, 84, 83, 45, 49, 50, 128, 68, 79, 84, 83, 45, 49, 51, - 128, 68, 79, 84, 83, 45, 49, 52, 128, 68, 79, 84, 83, 45, 49, 53, 128, - 68, 79, 84, 83, 45, 49, 54, 128, 68, 79, 84, 83, 45, 49, 55, 128, 68, 79, - 84, 83, 45, 49, 56, 128, 68, 79, 84, 83, 45, 50, 51, 128, 68, 79, 84, 83, - 45, 50, 52, 128, 68, 79, 84, 83, 45, 50, 53, 128, 68, 79, 84, 83, 45, 50, - 54, 128, 68, 79, 84, 83, 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 56, - 128, 68, 79, 84, 83, 45, 51, 52, 128, 68, 79, 84, 83, 45, 51, 53, 128, - 68, 79, 84, 83, 45, 51, 54, 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, - 84, 83, 45, 51, 56, 128, 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, - 45, 52, 54, 128, 68, 79, 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, - 56, 128, 68, 79, 84, 83, 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, 55, - 128, 68, 79, 84, 83, 45, 53, 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, - 68, 79, 84, 83, 45, 54, 56, 128, 68, 79, 84, 83, 45, 55, 56, 128, 68, 82, - 65, 67, 72, 77, 65, 128, 68, 82, 65, 70, 84, 73, 78, 199, 69, 65, 66, 72, - 65, 68, 72, 128, 69, 65, 68, 72, 65, 68, 72, 128, 69, 66, 69, 70, 73, 76, - 73, 128, 69, 73, 71, 72, 84, 69, 69, 206, 69, 76, 65, 70, 82, 79, 78, - 128, 69, 76, 69, 67, 84, 82, 73, 195, 69, 78, 81, 85, 73, 82, 89, 128, - 69, 78, 84, 69, 82, 73, 78, 199, 69, 84, 78, 65, 72, 84, 65, 128, 69, 86, - 69, 78, 73, 78, 71, 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, 89, 65, - 78, 78, 65, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 73, 83, 72, 69, 89, - 69, 128, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79, 79, 84, 78, 79, 84, - 197, 70, 79, 85, 82, 84, 69, 69, 206, 70, 82, 79, 87, 78, 73, 78, 199, - 71, 65, 82, 77, 69, 78, 84, 128, 71, 73, 82, 85, 68, 65, 65, 128, 71, 82, - 65, 80, 72, 69, 77, 197, 72, 65, 70, 85, 75, 72, 65, 128, 72, 65, 76, 65, - 78, 84, 65, 128, 72, 65, 76, 66, 69, 82, 68, 128, 72, 65, 83, 65, 78, 84, - 65, 128, 72, 65, 89, 65, 78, 78, 65, 128, 72, 69, 65, 68, 73, 78, 71, - 128, 72, 69, 65, 86, 69, 78, 76, 217, 73, 45, 65, 82, 65, 69, 65, 128, - 73, 66, 73, 70, 73, 76, 73, 128, 73, 67, 72, 65, 68, 73, 78, 128, 73, 73, - 89, 65, 78, 78, 65, 128, 73, 78, 68, 73, 82, 69, 67, 212, 73, 78, 70, 73, - 78, 73, 84, 217, 73, 78, 84, 69, 82, 69, 83, 212, 73, 79, 68, 72, 65, 68, - 72, 128, 74, 65, 78, 85, 65, 82, 89, 128, 74, 65, 80, 65, 78, 69, 83, - 197, 74, 85, 80, 73, 84, 69, 82, 128, 75, 65, 75, 65, 66, 65, 84, 128, - 75, 65, 82, 65, 84, 84, 79, 128, 75, 65, 82, 79, 82, 73, 73, 128, 75, 73, - 78, 83, 72, 73, 80, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 79, 77, - 85, 85, 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 76, 65, 78, 71, 85, 65, - 71, 197, 76, 79, 67, 65, 84, 73, 79, 206, 77, 65, 73, 75, 85, 82, 79, - 128, 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 78, 83, 89, 79, 78, 128, - 77, 65, 82, 66, 85, 84, 65, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, - 82, 82, 73, 65, 71, 197, 77, 65, 82, 82, 89, 73, 78, 199, 77, 65, 83, 83, - 73, 78, 71, 128, 77, 65, 89, 65, 78, 78, 65, 128, 77, 69, 71, 65, 84, 79, - 78, 128, 77, 69, 82, 67, 85, 82, 89, 128, 77, 69, 84, 82, 69, 84, 69, - 211, 77, 73, 75, 85, 82, 79, 78, 128, 77, 73, 76, 76, 73, 79, 78, 211, - 77, 79, 68, 69, 83, 84, 89, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77, 79, - 82, 78, 73, 78, 71, 128, 77, 85, 76, 84, 73, 80, 76, 197, 78, 65, 84, 73, - 79, 78, 65, 204, 78, 69, 71, 65, 84, 73, 79, 206, 78, 69, 80, 84, 85, 78, - 69, 128, 78, 69, 87, 76, 73, 78, 69, 128, 78, 71, 69, 65, 68, 65, 76, - 128, 78, 73, 75, 65, 72, 73, 84, 128, 78, 73, 78, 69, 84, 69, 69, 206, - 79, 66, 79, 70, 73, 76, 73, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 78, - 69, 45, 76, 73, 78, 197, 79, 78, 69, 83, 69, 76, 70, 128, 79, 79, 89, 65, - 78, 78, 65, 128, 79, 82, 84, 72, 79, 68, 79, 216, 79, 85, 84, 76, 73, 78, - 69, 128, 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 76, 76, 65, 87, 65, - 128, 80, 65, 84, 84, 69, 82, 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, - 80, 69, 84, 65, 83, 77, 65, 128, 80, 69, 84, 65, 83, 84, 73, 128, 80, 72, - 73, 78, 84, 72, 85, 128, 80, 72, 85, 84, 72, 65, 79, 128, 80, 79, 68, 65, - 84, 85, 83, 128, 80, 82, 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69, 68, - 69, 196, 80, 82, 69, 86, 73, 79, 85, 211, 80, 82, 73, 86, 65, 84, 69, - 128, 80, 82, 79, 80, 69, 82, 84, 217, 82, 65, 75, 72, 65, 78, 71, 128, - 82, 65, 80, 73, 83, 77, 65, 128, 82, 65, 89, 65, 78, 78, 65, 128, 82, 69, - 65, 72, 77, 85, 75, 128, 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 84, 82, - 69, 65, 84, 128, 82, 73, 84, 84, 79, 82, 85, 128, 82, 85, 85, 66, 85, 82, - 85, 128, 83, 65, 73, 75, 85, 82, 85, 128, 83, 65, 76, 84, 73, 82, 69, - 128, 83, 65, 77, 80, 72, 65, 79, 128, 83, 65, 78, 89, 79, 79, 71, 193, - 83, 67, 72, 79, 76, 65, 82, 128, 83, 67, 82, 85, 80, 76, 69, 128, 83, 69, - 71, 77, 69, 78, 84, 128, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 78, 75, + 78, 65, 69, 76, 65, 69, 78, 71, 128, 80, 65, 78, 69, 85, 76, 69, 85, 78, + 71, 128, 80, 65, 84, 72, 65, 77, 65, 83, 65, 84, 128, 80, 69, 68, 69, 83, + 84, 82, 73, 65, 78, 128, 80, 79, 83, 83, 69, 83, 83, 73, 79, 78, 128, 80, + 82, 79, 74, 69, 67, 84, 73, 79, 78, 128, 80, 82, 79, 74, 69, 67, 84, 73, + 86, 69, 128, 82, 65, 68, 73, 79, 65, 67, 84, 73, 86, 197, 82, 65, 72, 77, + 65, 84, 85, 76, 76, 65, 200, 82, 69, 83, 73, 83, 84, 65, 78, 67, 69, 128, + 82, 69, 83, 79, 76, 85, 84, 73, 79, 78, 128, 82, 69, 86, 79, 76, 85, 84, + 73, 79, 78, 128, 83, 65, 67, 82, 73, 70, 73, 67, 73, 65, 204, 83, 69, 76, + 69, 67, 84, 79, 82, 45, 49, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 50, + 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 51, 128, 83, 69, 76, 69, 67, 84, + 79, 82, 45, 52, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 53, 128, 83, 69, + 76, 69, 67, 84, 79, 82, 45, 54, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, + 55, 128, 83, 69, 76, 69, 67, 84, 79, 82, 45, 56, 128, 83, 69, 76, 69, 67, + 84, 79, 82, 45, 57, 128, 83, 72, 65, 76, 83, 72, 69, 76, 69, 84, 128, 83, + 73, 79, 83, 45, 72, 73, 69, 85, 72, 128, 83, 73, 79, 83, 45, 73, 69, 85, + 78, 71, 128, 83, 73, 79, 83, 45, 77, 73, 69, 85, 77, 128, 83, 83, 65, 78, + 71, 65, 82, 65, 69, 65, 128, 83, 84, 65, 78, 68, 83, 84, 73, 76, 76, 128, + 83, 85, 66, 80, 85, 78, 67, 84, 73, 83, 128, 83, 85, 66, 83, 84, 73, 84, + 85, 84, 69, 128, 83, 89, 78, 67, 72, 82, 79, 78, 79, 85, 211, 84, 69, 82, + 77, 73, 78, 65, 84, 79, 82, 128, 84, 72, 73, 82, 84, 89, 45, 79, 78, 69, + 128, 84, 79, 80, 45, 76, 73, 71, 72, 84, 69, 196, 84, 82, 65, 78, 83, 86, + 69, 82, 83, 65, 204, 84, 87, 69, 78, 84, 89, 45, 83, 73, 88, 128, 86, 69, + 82, 84, 73, 67, 65, 76, 76, 89, 128, 87, 73, 68, 69, 45, 72, 69, 65, 68, + 69, 196, 65, 67, 82, 79, 80, 72, 79, 78, 73, 195, 67, 73, 82, 67, 85, 77, + 70, 76, 69, 216, 68, 69, 83, 67, 69, 78, 68, 69, 82, 128, 80, 72, 79, 69, + 78, 73, 67, 73, 65, 206, 76, 69, 83, 83, 45, 84, 72, 65, 78, 128, 65, 78, + 78, 79, 84, 65, 84, 73, 79, 206, 69, 81, 85, 73, 86, 65, 76, 69, 78, 212, + 83, 69, 80, 65, 82, 65, 84, 79, 82, 128, 84, 87, 79, 45, 72, 69, 65, 68, + 69, 196, 65, 82, 82, 79, 87, 72, 69, 65, 68, 128, 68, 79, 87, 78, 87, 65, + 82, 68, 83, 128, 65, 76, 80, 65, 80, 82, 65, 65, 78, 193, 69, 88, 84, 69, + 78, 83, 73, 79, 78, 128, 76, 69, 78, 84, 73, 67, 85, 76, 65, 210, 80, 72, + 65, 82, 89, 78, 71, 69, 65, 204, 80, 82, 79, 76, 65, 84, 73, 79, 78, 197, + 83, 69, 77, 73, 67, 79, 76, 79, 78, 128, 84, 85, 82, 78, 83, 84, 73, 76, + 69, 128, 65, 77, 80, 69, 82, 83, 65, 78, 68, 128, 76, 69, 70, 84, 87, 65, + 82, 68, 83, 128, 84, 82, 79, 69, 90, 69, 78, 73, 65, 206, 67, 79, 77, 77, + 69, 82, 67, 73, 65, 204, 69, 80, 73, 71, 82, 65, 80, 72, 73, 195, 83, 69, + 77, 73, 68, 73, 82, 69, 67, 212, 83, 69, 86, 69, 78, 84, 69, 69, 78, 128, + 87, 79, 79, 68, 83, 45, 67, 82, 69, 197, 66, 65, 67, 75, 83, 76, 65, 83, + 72, 128, 68, 73, 65, 76, 89, 84, 73, 75, 65, 128, 69, 88, 84, 82, 65, 45, + 72, 73, 71, 200, 70, 73, 88, 69, 68, 45, 70, 79, 82, 205, 73, 77, 80, 69, + 82, 70, 69, 67, 84, 193, 73, 78, 68, 73, 67, 65, 84, 79, 82, 128, 82, 69, + 67, 84, 65, 78, 71, 76, 69, 128, 82, 73, 71, 72, 84, 45, 72, 65, 78, 196, + 84, 82, 73, 65, 78, 71, 85, 76, 65, 210, 86, 69, 82, 84, 73, 67, 65, 76, + 76, 217, 67, 79, 78, 84, 65, 73, 78, 73, 78, 199, 68, 69, 76, 73, 77, 73, + 84, 69, 82, 128, 69, 78, 67, 76, 79, 83, 85, 82, 69, 128, 69, 80, 73, 68, + 65, 85, 82, 69, 65, 206, 72, 69, 82, 77, 73, 79, 78, 73, 65, 206, 72, 79, + 85, 82, 71, 76, 65, 83, 83, 128, 77, 65, 72, 65, 80, 82, 65, 78, 65, 128, + 83, 69, 77, 73, 66, 82, 69, 86, 73, 211, 83, 69, 77, 73, 77, 73, 78, 73, + 77, 193, 83, 78, 79, 87, 70, 76, 65, 75, 69, 128, 65, 80, 79, 83, 84, 82, + 79, 70, 79, 201, 65, 80, 79, 83, 84, 82, 79, 70, 79, 211, 65, 82, 80, 69, + 71, 71, 73, 65, 84, 207, 65, 84, 72, 65, 80, 65, 83, 67, 65, 206, 67, 69, + 78, 84, 82, 69, 76, 73, 78, 197, 67, 72, 65, 82, 65, 67, 84, 69, 82, 128, + 67, 79, 80, 82, 79, 68, 85, 67, 84, 128, 67, 82, 79, 83, 83, 72, 65, 84, + 67, 200, 67, 85, 65, 84, 82, 73, 76, 76, 79, 128, 68, 69, 83, 67, 69, 78, + 68, 73, 78, 199, 69, 77, 66, 69, 68, 68, 73, 78, 71, 128, 70, 73, 78, 65, + 78, 67, 73, 65, 76, 128, 70, 79, 76, 76, 79, 87, 73, 78, 71, 128, 70, 82, + 69, 84, 66, 79, 65, 82, 68, 128, 71, 69, 82, 83, 72, 65, 89, 73, 77, 128, + 71, 79, 82, 84, 72, 77, 73, 75, 79, 206, 73, 67, 72, 73, 77, 65, 84, 79, + 83, 128, 75, 72, 65, 75, 65, 83, 83, 73, 65, 206, 80, 65, 65, 45, 80, 73, + 76, 76, 65, 128, 80, 65, 77, 80, 72, 89, 76, 73, 65, 206, 80, 65, 82, 65, + 80, 72, 82, 65, 83, 197, 80, 69, 78, 84, 65, 83, 69, 77, 69, 128, 80, 72, + 73, 76, 73, 80, 80, 73, 78, 197, 83, 69, 77, 73, 67, 73, 82, 67, 76, 197, + 83, 85, 77, 77, 65, 84, 73, 79, 78, 128, 83, 85, 80, 69, 82, 86, 73, 83, + 69, 128, 83, 89, 77, 66, 79, 76, 45, 49, 49, 128, 83, 89, 77, 66, 79, 76, + 45, 49, 50, 128, 83, 89, 77, 66, 79, 76, 45, 49, 51, 128, 83, 89, 77, 66, + 79, 76, 45, 49, 52, 128, 83, 89, 77, 66, 79, 76, 45, 49, 55, 128, 83, 89, + 77, 66, 79, 76, 45, 49, 56, 128, 83, 89, 77, 66, 79, 76, 45, 49, 57, 128, + 83, 89, 77, 66, 79, 76, 45, 50, 51, 128, 83, 89, 77, 66, 79, 76, 45, 50, + 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 48, 128, 83, 89, 77, 66, 79, 76, + 45, 53, 49, 128, 83, 89, 77, 66, 79, 76, 45, 53, 50, 128, 83, 89, 77, 66, + 79, 76, 45, 53, 51, 128, 83, 89, 77, 66, 79, 76, 45, 53, 52, 128, 84, 69, + 76, 69, 80, 72, 79, 78, 69, 128, 84, 69, 84, 82, 65, 83, 69, 77, 69, 128, + 84, 82, 69, 77, 79, 76, 79, 45, 49, 128, 84, 82, 69, 77, 79, 76, 79, 45, + 50, 128, 84, 82, 69, 77, 79, 76, 79, 45, 51, 128, 84, 82, 73, 71, 82, 65, + 77, 77, 79, 211, 84, 82, 79, 75, 85, 84, 65, 83, 84, 201, 86, 73, 83, 73, + 71, 79, 84, 72, 73, 195, 65, 65, 66, 65, 65, 70, 73, 76, 73, 128, 65, 66, + 85, 78, 68, 65, 78, 67, 69, 128, 65, 76, 45, 76, 65, 75, 85, 78, 65, 128, + 65, 76, 80, 65, 80, 82, 65, 78, 65, 128, 65, 78, 84, 73, 70, 79, 78, 73, + 65, 128, 65, 80, 80, 82, 79, 65, 67, 72, 69, 211, 65, 82, 45, 82, 65, 72, + 69, 69, 77, 128, 65, 83, 83, 69, 82, 84, 73, 79, 78, 128, 65, 84, 84, 69, + 78, 84, 73, 79, 78, 128, 66, 65, 67, 75, 83, 80, 65, 67, 69, 128, 66, 69, + 71, 73, 78, 78, 73, 78, 71, 128, 66, 73, 66, 76, 69, 45, 67, 82, 69, 197, + 66, 79, 79, 77, 69, 82, 65, 78, 71, 128, 67, 65, 80, 82, 73, 67, 79, 82, + 78, 128, 67, 72, 65, 86, 73, 89, 65, 78, 73, 128, 67, 76, 79, 83, 69, 78, + 69, 83, 83, 128, 67, 79, 77, 80, 76, 69, 84, 69, 68, 128, 67, 79, 78, 74, + 79, 73, 78, 73, 78, 199, 67, 79, 78, 83, 84, 65, 78, 67, 89, 128, 67, 79, + 80, 89, 82, 73, 71, 72, 84, 128, 68, 65, 72, 89, 65, 65, 85, 83, 72, 128, + 68, 65, 82, 75, 69, 78, 73, 78, 71, 128, 68, 69, 80, 65, 82, 84, 85, 82, + 69, 128, 68, 73, 70, 70, 69, 82, 69, 78, 67, 197, 68, 73, 70, 70, 73, 67, + 85, 76, 84, 217, 68, 79, 84, 83, 45, 49, 50, 51, 52, 128, 68, 79, 84, 83, + 45, 49, 50, 51, 53, 128, 68, 79, 84, 83, 45, 49, 50, 51, 54, 128, 68, 79, + 84, 83, 45, 49, 50, 51, 55, 128, 68, 79, 84, 83, 45, 49, 50, 51, 56, 128, + 68, 79, 84, 83, 45, 49, 50, 52, 53, 128, 68, 79, 84, 83, 45, 49, 50, 52, + 54, 128, 68, 79, 84, 83, 45, 49, 50, 52, 55, 128, 68, 79, 84, 83, 45, 49, + 50, 52, 56, 128, 68, 79, 84, 83, 45, 49, 50, 53, 54, 128, 68, 79, 84, 83, + 45, 49, 50, 53, 55, 128, 68, 79, 84, 83, 45, 49, 50, 53, 56, 128, 68, 79, + 84, 83, 45, 49, 50, 54, 55, 128, 68, 79, 84, 83, 45, 49, 50, 54, 56, 128, + 68, 79, 84, 83, 45, 49, 50, 55, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, + 53, 128, 68, 79, 84, 83, 45, 49, 51, 52, 54, 128, 68, 79, 84, 83, 45, 49, + 51, 52, 55, 128, 68, 79, 84, 83, 45, 49, 51, 52, 56, 128, 68, 79, 84, 83, + 45, 49, 51, 53, 54, 128, 68, 79, 84, 83, 45, 49, 51, 53, 55, 128, 68, 79, + 84, 83, 45, 49, 51, 53, 56, 128, 68, 79, 84, 83, 45, 49, 51, 54, 55, 128, + 68, 79, 84, 83, 45, 49, 51, 54, 56, 128, 68, 79, 84, 83, 45, 49, 51, 55, + 56, 128, 68, 79, 84, 83, 45, 49, 52, 53, 54, 128, 68, 79, 84, 83, 45, 49, + 52, 53, 55, 128, 68, 79, 84, 83, 45, 49, 52, 53, 56, 128, 68, 79, 84, 83, + 45, 49, 52, 54, 55, 128, 68, 79, 84, 83, 45, 49, 52, 54, 56, 128, 68, 79, + 84, 83, 45, 49, 52, 55, 56, 128, 68, 79, 84, 83, 45, 49, 53, 54, 55, 128, + 68, 79, 84, 83, 45, 49, 53, 54, 56, 128, 68, 79, 84, 83, 45, 49, 53, 55, + 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, 56, 128, 68, 79, 84, 83, 45, 50, + 51, 52, 53, 128, 68, 79, 84, 83, 45, 50, 51, 52, 54, 128, 68, 79, 84, 83, + 45, 50, 51, 52, 55, 128, 68, 79, 84, 83, 45, 50, 51, 52, 56, 128, 68, 79, + 84, 83, 45, 50, 51, 53, 54, 128, 68, 79, 84, 83, 45, 50, 51, 53, 55, 128, + 68, 79, 84, 83, 45, 50, 51, 53, 56, 128, 68, 79, 84, 83, 45, 50, 51, 54, + 55, 128, 68, 79, 84, 83, 45, 50, 51, 54, 56, 128, 68, 79, 84, 83, 45, 50, + 51, 55, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 54, 128, 68, 79, 84, 83, + 45, 50, 52, 53, 55, 128, 68, 79, 84, 83, 45, 50, 52, 53, 56, 128, 68, 79, + 84, 83, 45, 50, 52, 54, 55, 128, 68, 79, 84, 83, 45, 50, 52, 54, 56, 128, + 68, 79, 84, 83, 45, 50, 52, 55, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, + 55, 128, 68, 79, 84, 83, 45, 50, 53, 54, 56, 128, 68, 79, 84, 83, 45, 50, + 53, 55, 56, 128, 68, 79, 84, 83, 45, 50, 54, 55, 56, 128, 68, 79, 84, 83, + 45, 51, 52, 53, 54, 128, 68, 79, 84, 83, 45, 51, 52, 53, 55, 128, 68, 79, + 84, 83, 45, 51, 52, 53, 56, 128, 68, 79, 84, 83, 45, 51, 52, 54, 55, 128, + 68, 79, 84, 83, 45, 51, 52, 54, 56, 128, 68, 79, 84, 83, 45, 51, 52, 55, + 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 55, 128, 68, 79, 84, 83, 45, 51, + 53, 54, 56, 128, 68, 79, 84, 83, 45, 51, 53, 55, 56, 128, 68, 79, 84, 83, + 45, 51, 54, 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 55, 128, 68, 79, + 84, 83, 45, 52, 53, 54, 56, 128, 68, 79, 84, 83, 45, 52, 53, 55, 56, 128, + 68, 79, 84, 83, 45, 52, 54, 55, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, + 56, 128, 69, 69, 66, 69, 69, 70, 73, 76, 73, 128, 69, 76, 69, 67, 84, 82, + 73, 67, 65, 204, 69, 78, 65, 82, 77, 79, 78, 73, 79, 211, 69, 78, 68, 69, + 65, 86, 79, 85, 82, 128, 69, 78, 68, 79, 70, 79, 78, 79, 78, 128, 69, 83, + 84, 73, 77, 65, 84, 69, 83, 128, 69, 88, 67, 69, 76, 76, 69, 78, 84, 128, + 69, 89, 66, 69, 89, 70, 73, 76, 73, 128, 70, 79, 79, 84, 83, 84, 79, 79, + 76, 128, 70, 79, 83, 84, 69, 82, 73, 78, 71, 128, 70, 82, 73, 67, 65, 84, + 73, 86, 69, 128, 71, 65, 84, 72, 69, 82, 73, 78, 71, 128, 71, 69, 77, 73, + 78, 65, 84, 73, 79, 206, 71, 78, 65, 86, 73, 89, 65, 78, 73, 128, 71, 79, + 82, 71, 79, 84, 69, 82, 73, 128, 71, 82, 69, 65, 84, 78, 69, 83, 83, 128, + 71, 85, 82, 65, 77, 85, 84, 79, 78, 128, 72, 69, 75, 85, 84, 65, 65, 82, + 85, 128, 72, 79, 77, 79, 84, 72, 69, 84, 73, 195, 72, 89, 83, 84, 69, 82, + 69, 83, 73, 211, 73, 76, 85, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, + 84, 72, 79, 82, 65, 128, 73, 78, 67, 79, 77, 80, 76, 69, 84, 197, 73, 78, + 67, 82, 69, 77, 69, 78, 84, 128, 73, 78, 68, 85, 83, 84, 82, 73, 65, 204, + 73, 78, 70, 76, 85, 69, 78, 67, 69, 128, 73, 78, 78, 79, 67, 69, 78, 67, + 69, 128, 73, 82, 85, 85, 89, 65, 78, 78, 65, 128, 74, 69, 82, 85, 83, 65, + 76, 69, 77, 128, 75, 65, 84, 65, 86, 65, 83, 77, 65, 128, 75, 69, 77, 80, + 72, 82, 69, 78, 71, 128, 75, 69, 78, 84, 73, 77, 65, 84, 65, 128, 75, 73, + 82, 79, 87, 65, 84, 84, 79, 128, 75, 82, 65, 84, 73, 77, 65, 84, 65, 128, + 75, 85, 82, 85, 90, 69, 73, 82, 79, 128, 76, 65, 66, 79, 85, 82, 73, 78, + 71, 128, 76, 72, 65, 86, 73, 89, 65, 78, 73, 128, 76, 73, 71, 72, 84, 78, + 73, 78, 71, 128, 77, 65, 73, 84, 65, 73, 75, 72, 85, 128, 77, 65, 84, 69, + 82, 73, 65, 76, 83, 128, 77, 69, 84, 79, 66, 69, 76, 85, 83, 128, 77, 73, + 82, 73, 66, 65, 65, 82, 85, 128, 77, 79, 78, 79, 83, 84, 65, 66, 76, 197, + 77, 79, 79, 83, 69, 45, 67, 82, 69, 197, 77, 85, 45, 71, 65, 65, 72, 76, + 65, 193, 77, 85, 75, 80, 72, 82, 69, 78, 71, 128, 78, 73, 71, 71, 65, 72, + 73, 84, 65, 128, 78, 73, 71, 73, 68, 65, 69, 83, 72, 128, 78, 73, 71, 73, + 68, 65, 77, 73, 78, 128, 79, 65, 66, 79, 65, 70, 73, 76, 73, 128, 79, 79, + 66, 79, 79, 70, 73, 76, 73, 128, 79, 82, 84, 72, 79, 71, 79, 78, 65, 204, + 80, 65, 73, 89, 65, 78, 78, 79, 73, 128, 80, 65, 77, 73, 78, 71, 75, 65, + 76, 128, 80, 65, 77, 85, 78, 71, 75, 65, 72, 128, 80, 65, 78, 71, 76, 65, + 89, 65, 82, 128, 80, 65, 78, 71, 87, 73, 83, 65, 68, 128, 80, 65, 82, 65, + 71, 82, 65, 80, 72, 128, 80, 73, 65, 83, 85, 84, 79, 82, 85, 128, 80, 73, + 84, 67, 72, 70, 79, 82, 75, 128, 80, 73, 90, 90, 73, 67, 65, 84, 79, 128, + 80, 76, 85, 83, 45, 77, 73, 78, 85, 211, 80, 79, 82, 82, 69, 67, 84, 85, + 83, 128, 80, 82, 65, 77, 45, 66, 85, 79, 78, 128, 80, 82, 65, 77, 45, 77, + 85, 79, 89, 128, 80, 82, 79, 84, 79, 86, 65, 82, 89, 211, 81, 85, 65, 84, + 69, 82, 78, 73, 79, 206, 81, 85, 69, 83, 84, 73, 79, 78, 69, 196, 81, 85, + 83, 72, 83, 72, 65, 89, 65, 128, 82, 69, 71, 73, 83, 84, 69, 82, 69, 196, + 82, 69, 76, 65, 84, 73, 79, 78, 65, 204, 82, 69, 80, 82, 69, 83, 69, 78, + 84, 128, 82, 69, 83, 73, 68, 69, 78, 67, 69, 128, 82, 69, 83, 85, 80, 73, + 78, 85, 83, 128, 82, 73, 71, 72, 84, 45, 83, 73, 68, 197, 83, 67, 65, 78, + 68, 73, 67, 85, 83, 128, 83, 69, 80, 84, 69, 77, 66, 69, 82, 128, 83, 69, + 83, 84, 69, 82, 84, 73, 85, 211, 83, 69, 86, 69, 82, 65, 78, 67, 69, 128, + 83, 72, 65, 86, 73, 89, 65, 78, 73, 128, 83, 72, 79, 82, 84, 69, 78, 69, + 82, 128, 83, 72, 79, 85, 76, 68, 69, 82, 69, 196, 83, 73, 88, 45, 80, 69, + 82, 45, 69, 205, 83, 73, 88, 45, 83, 84, 82, 73, 78, 199, 83, 84, 82, 79, + 75, 69, 45, 49, 48, 128, 83, 84, 82, 79, 75, 69, 45, 49, 49, 128, 83, 85, + 66, 83, 84, 73, 84, 85, 84, 197, 83, 85, 80, 69, 82, 70, 73, 88, 69, 196, + 83, 85, 83, 80, 69, 78, 83, 73, 79, 206, 83, 89, 77, 66, 79, 76, 45, 49, + 48, 128, 83, 89, 77, 66, 79, 76, 45, 49, 53, 128, 83, 89, 77, 66, 79, 76, + 45, 49, 54, 128, 83, 89, 77, 66, 79, 76, 45, 50, 48, 128, 83, 89, 77, 66, + 79, 76, 45, 50, 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 50, 128, 83, 89, + 77, 66, 79, 76, 45, 50, 53, 128, 83, 89, 77, 66, 79, 76, 45, 50, 54, 128, + 83, 89, 77, 66, 79, 76, 45, 50, 55, 128, 83, 89, 77, 66, 79, 76, 45, 50, + 57, 128, 83, 89, 77, 66, 79, 76, 45, 51, 48, 128, 83, 89, 77, 66, 79, 76, + 45, 51, 50, 128, 83, 89, 77, 66, 79, 76, 45, 51, 54, 128, 83, 89, 77, 66, + 79, 76, 45, 51, 55, 128, 83, 89, 77, 66, 79, 76, 45, 51, 56, 128, 83, 89, + 77, 66, 79, 76, 45, 51, 57, 128, 83, 89, 77, 66, 79, 76, 45, 52, 48, 128, + 83, 89, 77, 66, 79, 76, 45, 52, 50, 128, 83, 89, 77, 66, 79, 76, 45, 52, + 51, 128, 83, 89, 77, 66, 79, 76, 45, 52, 53, 128, 83, 89, 77, 66, 79, 76, + 45, 52, 55, 128, 83, 89, 77, 66, 79, 76, 45, 52, 56, 128, 83, 89, 77, 66, + 79, 76, 45, 52, 57, 128, 83, 89, 82, 77, 65, 84, 73, 75, 73, 128, 84, 65, + 75, 72, 65, 76, 76, 85, 83, 128, 84, 65, 87, 69, 76, 76, 69, 77, 69, 212, + 84, 72, 69, 82, 69, 70, 79, 82, 69, 128, 84, 72, 82, 69, 69, 45, 76, 73, + 78, 197, 84, 82, 65, 80, 69, 90, 73, 85, 77, 128, 84, 82, 73, 70, 79, 76, + 73, 65, 84, 197, 84, 82, 73, 70, 79, 78, 73, 65, 83, 128, 84, 82, 73, 71, + 79, 82, 71, 79, 78, 128, 84, 85, 84, 69, 89, 65, 83, 65, 84, 128, 86, 73, + 83, 65, 82, 71, 65, 89, 65, 128, 87, 65, 83, 83, 65, 76, 76, 65, 77, 128, + 87, 72, 69, 69, 76, 67, 72, 65, 73, 210, 87, 79, 82, 68, 83, 80, 65, 67, + 69, 128, 89, 80, 79, 75, 82, 73, 83, 73, 83, 128, 83, 85, 66, 74, 79, 73, + 78, 69, 196, 76, 69, 83, 83, 45, 84, 72, 65, 206, 68, 79, 87, 78, 87, 65, + 82, 68, 211, 79, 80, 69, 82, 65, 84, 79, 82, 128, 84, 82, 73, 65, 78, 71, + 76, 69, 128, 67, 79, 78, 83, 79, 78, 65, 78, 212, 83, 85, 66, 83, 67, 82, + 73, 80, 212, 84, 72, 79, 85, 83, 65, 78, 68, 128, 85, 78, 68, 69, 82, 66, + 65, 82, 128, 65, 83, 84, 69, 82, 73, 83, 75, 128, 81, 85, 79, 84, 65, 84, + 73, 79, 206, 79, 82, 78, 65, 77, 69, 78, 84, 128, 82, 69, 84, 82, 79, 70, + 76, 69, 216, 65, 82, 67, 72, 65, 73, 79, 78, 128, 68, 73, 65, 69, 82, 69, + 83, 73, 211, 66, 76, 65, 67, 75, 70, 79, 79, 212, 68, 69, 78, 84, 73, 83, + 84, 82, 217, 65, 78, 85, 83, 86, 65, 82, 65, 128, 68, 73, 65, 76, 89, 84, + 73, 75, 193, 73, 78, 84, 69, 71, 82, 65, 76, 128, 86, 69, 82, 84, 73, 67, + 65, 76, 128, 76, 69, 70, 84, 45, 83, 84, 69, 205, 81, 85, 65, 68, 82, 85, + 80, 76, 197, 82, 69, 67, 89, 67, 76, 73, 78, 199, 65, 82, 82, 79, 87, 72, + 69, 65, 196, 65, 66, 75, 72, 65, 83, 73, 65, 206, 68, 73, 65, 76, 69, 67, + 84, 45, 208, 68, 79, 68, 69, 75, 65, 84, 65, 128, 69, 76, 76, 73, 80, 83, + 73, 83, 128, 81, 85, 65, 68, 82, 65, 78, 84, 128, 65, 86, 65, 71, 82, 65, + 72, 65, 128, 68, 73, 65, 84, 79, 78, 73, 75, 201, 69, 78, 67, 76, 79, 83, + 73, 78, 199, 79, 86, 69, 82, 76, 73, 78, 69, 128, 80, 76, 65, 83, 84, 73, + 67, 83, 128, 73, 84, 69, 82, 65, 84, 73, 79, 206, 78, 79, 84, 69, 72, 69, + 65, 68, 128, 78, 85, 77, 69, 82, 65, 84, 79, 210, 83, 85, 80, 69, 82, 83, + 69, 84, 128, 69, 73, 71, 72, 84, 69, 69, 78, 128, 70, 76, 65, 84, 84, 69, + 78, 69, 196, 70, 79, 85, 82, 84, 69, 69, 78, 128, 76, 69, 70, 84, 45, 72, + 65, 78, 196, 78, 73, 78, 69, 84, 69, 69, 78, 128, 84, 72, 73, 82, 84, 69, + 69, 78, 128, 65, 76, 84, 69, 82, 78, 65, 84, 197, 68, 73, 65, 71, 79, 78, + 65, 76, 128, 69, 88, 84, 82, 65, 45, 76, 79, 215, 70, 76, 79, 82, 69, 84, + 84, 69, 128, 73, 68, 69, 78, 84, 73, 67, 65, 204, 75, 69, 78, 84, 73, 77, + 65, 84, 193, 77, 79, 78, 79, 67, 85, 76, 65, 210, 80, 65, 82, 65, 71, 82, + 65, 80, 200, 80, 69, 78, 84, 65, 71, 79, 78, 128, 82, 69, 76, 65, 84, 73, + 79, 78, 128, 83, 67, 73, 83, 83, 79, 82, 83, 128, 83, 69, 66, 65, 84, 66, + 69, 73, 212, 83, 69, 80, 65, 82, 65, 84, 79, 210, 68, 68, 65, 89, 65, 78, + 78, 65, 128, 68, 69, 80, 65, 82, 84, 73, 78, 199, 70, 65, 78, 69, 82, 79, + 83, 73, 211, 70, 73, 83, 72, 72, 79, 79, 75, 128, 73, 78, 70, 73, 78, 73, + 84, 89, 128, 73, 78, 86, 73, 83, 73, 66, 76, 197, 77, 79, 78, 79, 71, 82, + 65, 80, 200, 77, 79, 85, 78, 84, 65, 73, 78, 128, 77, 85, 76, 84, 73, 77, + 65, 80, 128, 77, 85, 85, 82, 68, 72, 65, 74, 193, 80, 65, 82, 65, 76, 76, + 69, 76, 128, 80, 82, 69, 67, 69, 68, 69, 83, 128, 82, 69, 86, 69, 82, 83, + 69, 68, 128, 83, 73, 88, 84, 69, 69, 78, 84, 200, 83, 80, 72, 69, 82, 73, + 67, 65, 204, 83, 85, 66, 76, 73, 78, 69, 65, 210, 83, 85, 67, 67, 69, 69, + 68, 83, 128, 83, 85, 77, 77, 65, 84, 73, 79, 206, 84, 69, 76, 69, 80, 72, + 79, 78, 197, 84, 72, 79, 85, 83, 65, 78, 68, 211, 89, 69, 83, 73, 69, 85, + 78, 71, 128, 65, 76, 76, 73, 65, 78, 67, 69, 128, 66, 73, 78, 79, 67, 85, + 76, 65, 210, 67, 65, 85, 76, 68, 82, 79, 78, 128, 67, 79, 78, 83, 84, 65, + 78, 84, 128, 67, 85, 65, 84, 82, 73, 76, 76, 207, 68, 73, 70, 79, 78, 73, + 65, 83, 128, 68, 73, 71, 82, 65, 77, 77, 79, 211, 68, 82, 65, 67, 72, 77, + 65, 83, 128, 70, 76, 79, 85, 82, 73, 83, 72, 128, 71, 65, 82, 83, 72, 85, + 78, 73, 128, 71, 65, 84, 72, 69, 82, 73, 78, 199, 71, 76, 73, 83, 83, 65, + 78, 68, 207, 71, 82, 69, 71, 79, 82, 73, 65, 206, 73, 78, 67, 82, 69, 65, + 83, 69, 128, 73, 78, 83, 69, 82, 84, 73, 79, 206, 73, 83, 45, 80, 73, 76, + 76, 65, 128, 79, 86, 69, 82, 82, 73, 68, 69, 128, 79, 89, 82, 65, 78, 73, + 83, 77, 193, 80, 65, 76, 79, 67, 72, 75, 65, 128, 80, 69, 68, 69, 83, 84, + 65, 76, 128, 80, 78, 69, 85, 77, 65, 84, 65, 128, 80, 82, 65, 77, 45, 66, + 85, 79, 206, 80, 82, 65, 77, 45, 77, 85, 79, 217, 80, 82, 69, 67, 69, 68, + 73, 78, 199, 80, 82, 79, 76, 79, 78, 71, 69, 196, 80, 82, 79, 80, 69, 76, + 76, 69, 210, 81, 85, 65, 82, 84, 69, 82, 83, 128, 82, 69, 83, 79, 85, 82, + 67, 69, 128, 82, 69, 83, 80, 79, 78, 83, 69, 128, 83, 65, 76, 84, 73, 76, + 76, 79, 128, 83, 69, 77, 73, 86, 79, 87, 69, 204, 83, 85, 66, 71, 82, 79, + 85, 80, 128, 83, 87, 65, 80, 80, 73, 78, 71, 128, 83, 89, 77, 66, 79, 76, + 45, 49, 128, 83, 89, 77, 66, 79, 76, 45, 50, 128, 83, 89, 77, 66, 79, 76, + 45, 52, 128, 83, 89, 77, 66, 79, 76, 45, 53, 128, 83, 89, 77, 66, 79, 76, + 45, 55, 128, 83, 89, 77, 66, 79, 76, 45, 56, 128, 83, 89, 77, 77, 69, 84, + 82, 73, 195, 84, 79, 71, 69, 84, 72, 69, 82, 128, 84, 82, 69, 83, 73, 76, + 76, 79, 128, 84, 82, 73, 67, 79, 76, 79, 78, 128, 84, 82, 73, 83, 73, 77, + 79, 85, 128, 84, 84, 65, 89, 65, 78, 78, 65, 128, 84, 84, 85, 68, 68, 65, + 65, 71, 128, 85, 78, 68, 69, 82, 76, 73, 78, 197, 85, 78, 68, 69, 82, 84, + 73, 69, 128, 85, 78, 73, 86, 69, 82, 83, 65, 204, 65, 68, 68, 82, 69, 83, + 83, 69, 196, 65, 69, 69, 89, 65, 78, 78, 65, 128, 65, 73, 82, 80, 76, 65, + 78, 69, 128, 65, 78, 85, 68, 65, 84, 84, 65, 128, 65, 80, 79, 68, 69, 88, + 73, 65, 128, 65, 80, 79, 84, 72, 69, 77, 65, 128, 65, 80, 80, 82, 79, 65, + 67, 72, 128, 65, 81, 85, 65, 82, 73, 85, 83, 128, 65, 82, 45, 82, 65, 72, + 77, 65, 206, 65, 82, 65, 69, 65, 45, 69, 79, 128, 65, 82, 71, 79, 84, 69, + 82, 73, 128, 65, 82, 73, 83, 84, 69, 82, 65, 128, 65, 83, 67, 69, 78, 68, + 73, 78, 199, 65, 83, 80, 73, 82, 65, 84, 69, 196, 65, 83, 84, 69, 82, 73, + 83, 75, 211, 65, 83, 84, 69, 82, 73, 83, 77, 128, 65, 84, 84, 72, 65, 67, + 65, 78, 128, 66, 65, 67, 75, 83, 76, 65, 83, 200, 66, 69, 86, 69, 82, 65, + 71, 69, 128, 66, 73, 79, 72, 65, 90, 65, 82, 196, 66, 73, 83, 69, 67, 84, + 73, 78, 199, 66, 73, 83, 77, 73, 76, 76, 65, 200, 66, 82, 65, 78, 67, 72, + 73, 78, 199, 66, 85, 76, 76, 83, 69, 89, 69, 128, 66, 85, 83, 83, 89, 69, + 82, 85, 128, 67, 65, 68, 85, 67, 69, 85, 83, 128, 67, 65, 82, 80, 69, 78, + 84, 82, 217, 67, 65, 82, 89, 83, 84, 73, 65, 206, 67, 69, 78, 84, 85, 82, + 73, 65, 204, 67, 72, 65, 77, 73, 76, 79, 78, 128, 67, 72, 65, 84, 84, 65, + 87, 65, 128, 67, 73, 86, 73, 76, 73, 65, 78, 128, 67, 76, 73, 77, 65, 67, + 85, 83, 128, 67, 79, 78, 70, 76, 73, 67, 84, 128, 67, 79, 78, 71, 82, 85, + 69, 78, 212, 67, 79, 78, 74, 85, 71, 65, 84, 197, 67, 79, 78, 84, 79, 85, + 82, 69, 196, 67, 79, 80, 89, 82, 73, 71, 72, 212, 67, 82, 69, 83, 67, 69, + 78, 84, 128, 68, 65, 77, 77, 65, 84, 65, 78, 128, 68, 65, 82, 75, 69, 78, + 73, 78, 199, 68, 65, 86, 73, 89, 65, 78, 73, 128, 68, 69, 67, 69, 77, 66, + 69, 82, 128, 68, 69, 67, 82, 69, 65, 83, 69, 128, 68, 69, 76, 73, 77, 73, + 84, 69, 210, 68, 73, 70, 84, 79, 71, 71, 79, 211, 68, 73, 71, 79, 82, 71, + 79, 78, 128, 68, 73, 77, 69, 78, 83, 73, 79, 206, 68, 73, 86, 73, 83, 73, + 79, 78, 128, 68, 79, 84, 83, 45, 49, 50, 51, 128, 68, 79, 84, 83, 45, 49, + 50, 52, 128, 68, 79, 84, 83, 45, 49, 50, 53, 128, 68, 79, 84, 83, 45, 49, + 50, 54, 128, 68, 79, 84, 83, 45, 49, 50, 55, 128, 68, 79, 84, 83, 45, 49, + 50, 56, 128, 68, 79, 84, 83, 45, 49, 51, 52, 128, 68, 79, 84, 83, 45, 49, + 51, 53, 128, 68, 79, 84, 83, 45, 49, 51, 54, 128, 68, 79, 84, 83, 45, 49, + 51, 55, 128, 68, 79, 84, 83, 45, 49, 51, 56, 128, 68, 79, 84, 83, 45, 49, + 52, 53, 128, 68, 79, 84, 83, 45, 49, 52, 54, 128, 68, 79, 84, 83, 45, 49, + 52, 55, 128, 68, 79, 84, 83, 45, 49, 52, 56, 128, 68, 79, 84, 83, 45, 49, + 53, 54, 128, 68, 79, 84, 83, 45, 49, 53, 55, 128, 68, 79, 84, 83, 45, 49, + 53, 56, 128, 68, 79, 84, 83, 45, 49, 54, 55, 128, 68, 79, 84, 83, 45, 49, + 54, 56, 128, 68, 79, 84, 83, 45, 49, 55, 56, 128, 68, 79, 84, 83, 45, 50, + 51, 52, 128, 68, 79, 84, 83, 45, 50, 51, 53, 128, 68, 79, 84, 83, 45, 50, + 51, 54, 128, 68, 79, 84, 83, 45, 50, 51, 55, 128, 68, 79, 84, 83, 45, 50, + 51, 56, 128, 68, 79, 84, 83, 45, 50, 52, 53, 128, 68, 79, 84, 83, 45, 50, + 52, 54, 128, 68, 79, 84, 83, 45, 50, 52, 55, 128, 68, 79, 84, 83, 45, 50, + 52, 56, 128, 68, 79, 84, 83, 45, 50, 53, 54, 128, 68, 79, 84, 83, 45, 50, + 53, 55, 128, 68, 79, 84, 83, 45, 50, 53, 56, 128, 68, 79, 84, 83, 45, 50, + 54, 55, 128, 68, 79, 84, 83, 45, 50, 54, 56, 128, 68, 79, 84, 83, 45, 50, + 55, 56, 128, 68, 79, 84, 83, 45, 51, 52, 53, 128, 68, 79, 84, 83, 45, 51, + 52, 54, 128, 68, 79, 84, 83, 45, 51, 52, 55, 128, 68, 79, 84, 83, 45, 51, + 52, 56, 128, 68, 79, 84, 83, 45, 51, 53, 54, 128, 68, 79, 84, 83, 45, 51, + 53, 55, 128, 68, 79, 84, 83, 45, 51, 53, 56, 128, 68, 79, 84, 83, 45, 51, + 54, 55, 128, 68, 79, 84, 83, 45, 51, 54, 56, 128, 68, 79, 84, 83, 45, 51, + 55, 56, 128, 68, 79, 84, 83, 45, 52, 53, 54, 128, 68, 79, 84, 83, 45, 52, + 53, 55, 128, 68, 79, 84, 83, 45, 52, 53, 56, 128, 68, 79, 84, 83, 45, 52, + 54, 55, 128, 68, 79, 84, 83, 45, 52, 54, 56, 128, 68, 79, 84, 83, 45, 52, + 55, 56, 128, 68, 79, 84, 83, 45, 53, 54, 55, 128, 68, 79, 84, 83, 45, 53, + 54, 56, 128, 68, 79, 84, 83, 45, 53, 55, 56, 128, 68, 79, 84, 83, 45, 54, + 55, 56, 128, 68, 79, 84, 84, 69, 68, 45, 76, 128, 68, 79, 84, 84, 69, 68, + 45, 78, 128, 68, 79, 84, 84, 69, 68, 45, 80, 128, 68, 85, 80, 79, 78, 68, + 73, 85, 211, 68, 85, 82, 65, 84, 73, 79, 78, 128, 68, 86, 73, 83, 86, 65, + 82, 65, 128, 69, 68, 73, 84, 79, 82, 73, 65, 204, 69, 78, 86, 69, 76, 79, + 80, 69, 128, 69, 80, 69, 71, 69, 82, 77, 65, 128, 69, 83, 84, 73, 77, 65, + 84, 69, 196, 69, 83, 85, 75, 85, 85, 68, 79, 128, 69, 84, 69, 82, 78, 73, + 84, 89, 128, 70, 65, 67, 83, 73, 77, 73, 76, 197, 70, 65, 84, 72, 65, 84, + 65, 78, 128, 70, 69, 66, 82, 85, 65, 82, 89, 128, 70, 69, 83, 84, 73, 86, + 65, 76, 128, 70, 73, 71, 85, 82, 69, 45, 49, 128, 70, 73, 71, 85, 82, 69, + 45, 50, 128, 70, 73, 71, 85, 82, 69, 45, 51, 128, 70, 73, 86, 69, 45, 76, + 73, 78, 197, 70, 76, 65, 84, 78, 69, 83, 83, 128, 70, 79, 85, 82, 45, 76, + 73, 78, 197, 70, 82, 65, 71, 77, 69, 78, 84, 128, 70, 82, 65, 71, 82, 65, + 78, 84, 128, 70, 85, 76, 76, 78, 69, 83, 83, 128, 70, 85, 78, 67, 84, 73, + 79, 78, 128, 71, 65, 85, 78, 84, 76, 69, 84, 128, 71, 69, 78, 73, 84, 73, + 86, 69, 128, 71, 69, 79, 77, 69, 84, 82, 73, 195, 72, 65, 78, 45, 65, 75, + 65, 84, 128, 72, 65, 82, 68, 78, 69, 83, 83, 128, 72, 65, 82, 77, 79, 78, + 73, 67, 128, 72, 69, 82, 77, 73, 84, 73, 65, 206, 72, 85, 65, 82, 65, 68, + 68, 79, 128, 73, 76, 85, 89, 65, 78, 78, 65, 128, 73, 77, 73, 70, 79, 78, + 79, 78, 128, 73, 78, 67, 76, 85, 68, 73, 78, 199, 73, 78, 67, 82, 69, 65, + 83, 69, 211, 73, 78, 86, 69, 82, 84, 69, 68, 128, 73, 82, 85, 89, 65, 78, + 78, 65, 128, 74, 65, 86, 73, 89, 65, 78, 73, 128, 75, 65, 83, 82, 65, 84, + 65, 78, 128, 75, 65, 84, 72, 73, 83, 84, 73, 128, 75, 69, 89, 66, 79, 65, + 82, 68, 128, 75, 79, 78, 84, 69, 86, 77, 65, 128, 75, 82, 69, 77, 65, 83, + 84, 73, 128, 76, 65, 82, 89, 78, 71, 69, 65, 204, 76, 69, 70, 84, 45, 83, + 73, 68, 197, 76, 73, 65, 66, 73, 76, 73, 84, 217, 76, 79, 67, 65, 84, 73, + 86, 69, 128, 76, 79, 82, 82, 65, 73, 78, 69, 128, 77, 65, 72, 65, 80, 65, + 75, 72, 128, 77, 65, 73, 77, 65, 76, 65, 73, 128, 77, 65, 73, 89, 65, 77, + 79, 75, 128, 77, 65, 78, 65, 67, 76, 69, 83, 128, 77, 65, 78, 71, 65, 76, + 65, 77, 128, 77, 65, 83, 67, 85, 76, 73, 78, 197, 77, 69, 68, 73, 67, 73, + 78, 69, 128, 77, 69, 83, 83, 69, 78, 73, 65, 206, 77, 73, 78, 73, 83, 84, + 69, 82, 128, 77, 85, 76, 84, 73, 83, 69, 84, 128, 78, 73, 75, 72, 65, 72, + 73, 84, 128, 78, 79, 82, 84, 72, 87, 69, 83, 212, 78, 79, 86, 69, 77, 66, + 69, 82, 128, 79, 86, 69, 82, 76, 65, 73, 68, 128, 80, 65, 65, 83, 69, 78, + 84, 79, 128, 80, 65, 73, 82, 84, 72, 82, 65, 128, 80, 65, 77, 69, 78, 69, + 78, 71, 128, 80, 65, 77, 85, 68, 80, 79, 68, 128, 80, 65, 78, 71, 72, 85, + 76, 85, 128, 80, 65, 78, 79, 76, 79, 78, 71, 128, 80, 65, 78, 89, 65, 75, + 82, 65, 128, 80, 65, 78, 89, 69, 67, 69, 75, 128, 80, 65, 82, 73, 67, 72, + 79, 78, 128, 80, 65, 86, 73, 89, 65, 78, 73, 128, 80, 69, 76, 65, 83, 84, + 79, 78, 128, 80, 69, 82, 77, 65, 78, 69, 78, 212, 80, 72, 65, 65, 82, 75, + 65, 65, 128, 80, 73, 84, 67, 72, 70, 79, 82, 203, 80, 76, 69, 84, 72, 82, + 79, 78, 128, 80, 79, 75, 82, 89, 84, 73, 69, 128, 80, 79, 82, 82, 69, 67, + 84, 85, 211, 80, 82, 65, 77, 45, 66, 69, 73, 128, 80, 82, 65, 77, 45, 80, + 73, 73, 128, 80, 82, 79, 70, 79, 85, 78, 68, 128, 80, 82, 79, 71, 82, 69, + 83, 83, 128, 80, 83, 73, 70, 73, 83, 84, 79, 206, 81, 65, 73, 82, 84, 72, + 82, 65, 128, 81, 85, 69, 83, 84, 73, 79, 78, 128, 81, 85, 73, 78, 65, 82, + 73, 85, 211, 81, 85, 73, 78, 67, 85, 78, 88, 128, 82, 69, 67, 69, 80, 84, + 73, 86, 197, 82, 69, 67, 79, 82, 68, 69, 82, 128, 82, 69, 67, 79, 82, 68, + 73, 78, 199, 82, 69, 67, 84, 65, 78, 71, 76, 197, 82, 69, 70, 69, 82, 69, + 78, 67, 197, 82, 69, 76, 73, 71, 73, 79, 78, 128, 82, 69, 78, 84, 79, 71, + 69, 78, 128, 82, 73, 71, 72, 84, 72, 65, 78, 196, 82, 85, 75, 75, 65, 75, + 72, 65, 128, 83, 65, 77, 65, 82, 73, 84, 65, 206, 83, 65, 78, 84, 73, 73, + 77, 85, 128, 83, 65, 88, 73, 77, 65, 84, 65, 128, 83, 67, 65, 78, 68, 73, + 67, 85, 211, 83, 67, 79, 82, 80, 73, 85, 83, 128, 83, 69, 77, 73, 67, 79, + 76, 79, 206, 83, 69, 86, 69, 78, 84, 69, 69, 206, 83, 72, 65, 77, 82, 79, + 67, 75, 128, 83, 72, 69, 45, 71, 79, 65, 84, 128, 83, 72, 69, 83, 72, 76, + 65, 77, 128, 83, 73, 67, 75, 78, 69, 83, 83, 128, 83, 80, 76, 73, 84, 84, + 73, 78, 199, 83, 84, 65, 76, 76, 73, 79, 78, 128, 83, 84, 79, 80, 80, 65, + 71, 69, 128, 83, 84, 79, 80, 80, 73, 78, 71, 128, 83, 84, 82, 65, 73, 78, + 69, 82, 128, 83, 84, 82, 69, 78, 71, 84, 72, 128, 83, 84, 82, 69, 84, 67, + 72, 69, 196, 83, 84, 82, 79, 75, 69, 45, 49, 128, 83, 84, 82, 79, 75, 69, + 45, 50, 128, 83, 84, 82, 79, 75, 69, 45, 51, 128, 83, 84, 82, 79, 75, 69, + 45, 52, 128, 83, 84, 82, 79, 75, 69, 45, 53, 128, 83, 84, 82, 79, 75, 69, + 45, 54, 128, 83, 84, 82, 79, 75, 69, 45, 55, 128, 83, 84, 82, 79, 75, 69, + 45, 56, 128, 83, 84, 82, 79, 75, 69, 45, 57, 128, 83, 85, 73, 84, 65, 66, + 76, 69, 128, 83, 85, 82, 82, 79, 85, 78, 68, 128, 83, 89, 77, 66, 79, 76, + 45, 51, 128, 83, 89, 77, 66, 79, 76, 45, 54, 128, 83, 89, 77, 66, 79, 76, + 45, 57, 128, 83, 89, 77, 77, 69, 84, 82, 89, 128, 83, 89, 78, 68, 69, 83, + 77, 79, 211, 84, 65, 86, 73, 89, 65, 78, 73, 128, 84, 69, 84, 82, 65, 80, + 76, 73, 128, 84, 79, 82, 67, 85, 76, 85, 83, 128, 84, 82, 69, 65, 68, 73, + 78, 71, 128, 84, 82, 79, 77, 73, 75, 79, 78, 128, 84, 82, 85, 78, 67, 65, + 84, 69, 196, 85, 73, 76, 76, 69, 65, 78, 78, 128, 85, 77, 66, 82, 69, 76, + 76, 65, 128, 85, 78, 68, 69, 82, 68, 79, 84, 128, 85, 78, 77, 65, 82, 82, + 73, 69, 196, 86, 69, 82, 83, 73, 67, 76, 69, 128, 86, 79, 73, 67, 69, 76, + 69, 83, 211, 87, 65, 78, 68, 69, 82, 69, 82, 128, 87, 65, 83, 65, 76, 76, + 65, 77, 128, 89, 65, 77, 65, 75, 75, 65, 78, 128, 89, 80, 79, 75, 82, 73, + 83, 73, 211, 90, 65, 86, 73, 89, 65, 78, 73, 128, 90, 87, 65, 82, 65, 75, + 65, 89, 128, 80, 72, 65, 73, 83, 84, 79, 211, 73, 78, 86, 69, 82, 84, 69, + 196, 78, 69, 71, 65, 84, 73, 86, 197, 85, 71, 65, 82, 73, 84, 73, 195, + 66, 85, 71, 73, 78, 69, 83, 197, 68, 73, 65, 71, 79, 78, 65, 204, 72, 85, + 78, 68, 82, 69, 68, 128, 70, 82, 65, 67, 84, 73, 79, 206, 67, 82, 79, 83, + 83, 73, 78, 199, 67, 69, 68, 73, 76, 76, 65, 128, 84, 82, 73, 65, 78, 71, + 76, 197, 69, 88, 84, 69, 78, 68, 69, 196, 81, 85, 69, 83, 84, 73, 79, + 206, 83, 85, 80, 69, 82, 83, 69, 212, 78, 79, 84, 69, 72, 69, 65, 196, + 67, 79, 85, 78, 84, 73, 78, 199, 84, 65, 71, 66, 65, 78, 87, 193, 79, 86, + 69, 82, 76, 65, 89, 128, 81, 85, 65, 68, 82, 65, 78, 212, 84, 79, 82, 84, + 79, 73, 83, 197, 68, 73, 65, 77, 79, 78, 68, 128, 83, 81, 85, 65, 82, 69, + 68, 128, 85, 80, 83, 73, 76, 79, 78, 128, 73, 79, 84, 73, 70, 73, 69, + 196, 77, 65, 82, 84, 89, 82, 73, 193, 79, 86, 69, 82, 66, 65, 82, 128, + 69, 80, 83, 73, 76, 79, 78, 128, 72, 65, 78, 71, 90, 72, 79, 213, 73, 78, + 84, 69, 71, 82, 65, 204, 77, 69, 65, 83, 85, 82, 69, 196, 79, 77, 73, 67, + 82, 79, 78, 128, 86, 73, 83, 65, 82, 71, 65, 128, 79, 82, 78, 65, 77, 69, + 78, 212, 83, 79, 76, 73, 68, 85, 83, 128, 72, 65, 82, 80, 79, 79, 78, + 128, 80, 82, 69, 67, 69, 68, 69, 211, 83, 85, 67, 67, 69, 69, 68, 211, + 84, 72, 69, 83, 80, 73, 65, 206, 66, 65, 77, 66, 79, 79, 83, 128, 67, 73, + 82, 67, 76, 69, 83, 128, 67, 79, 78, 84, 65, 73, 78, 211, 68, 73, 71, 82, + 65, 80, 72, 128, 77, 69, 84, 82, 73, 67, 65, 204, 77, 79, 78, 79, 71, 82, + 65, 205, 83, 73, 68, 69, 87, 65, 89, 211, 84, 72, 79, 85, 83, 65, 78, + 196, 79, 80, 69, 82, 65, 84, 79, 210, 79, 80, 80, 79, 83, 73, 78, 199, + 83, 73, 77, 65, 78, 83, 73, 211, 83, 84, 65, 84, 69, 82, 83, 128, 83, 85, + 66, 85, 78, 73, 84, 128, 76, 79, 90, 69, 78, 71, 69, 128, 84, 65, 76, 69, + 78, 84, 83, 128, 66, 65, 82, 76, 73, 78, 69, 128, 68, 73, 71, 65, 77, 77, + 65, 128, 68, 73, 86, 73, 83, 73, 79, 206, 80, 65, 82, 65, 76, 76, 69, + 204, 83, 72, 69, 83, 72, 73, 71, 128, 83, 73, 88, 84, 69, 69, 78, 128, + 83, 85, 66, 71, 82, 79, 85, 208, 83, 85, 82, 82, 79, 85, 78, 196, 85, 80, + 87, 65, 82, 68, 83, 128, 68, 73, 86, 73, 68, 69, 82, 128, 70, 73, 70, 84, + 69, 69, 78, 128, 79, 82, 73, 71, 73, 78, 65, 204, 82, 79, 84, 85, 78, 68, + 65, 128, 65, 83, 84, 69, 82, 73, 83, 203, 68, 73, 65, 83, 84, 79, 76, + 201, 68, 82, 65, 85, 71, 72, 84, 211, 69, 76, 76, 73, 80, 83, 69, 128, + 70, 65, 84, 72, 65, 84, 65, 206, 73, 90, 72, 73, 84, 83, 65, 128, 77, 73, + 76, 76, 73, 79, 78, 211, 77, 89, 83, 76, 73, 84, 69, 128, 80, 79, 73, 78, + 84, 69, 82, 128, 81, 85, 65, 82, 84, 69, 82, 128, 83, 81, 85, 73, 71, 71, + 76, 197, 83, 84, 82, 65, 73, 71, 72, 212, 65, 83, 83, 89, 82, 73, 65, + 206, 66, 65, 89, 65, 78, 78, 65, 128, 67, 72, 82, 79, 78, 79, 78, 128, + 68, 73, 71, 79, 82, 71, 79, 206, 69, 73, 71, 72, 84, 72, 83, 128, 70, 73, + 78, 71, 69, 82, 69, 196, 71, 65, 89, 65, 78, 78, 65, 128, 72, 65, 82, 75, + 76, 69, 65, 206, 72, 69, 88, 65, 71, 79, 78, 128, 74, 65, 89, 65, 78, 78, + 65, 128, 74, 69, 71, 79, 71, 65, 78, 128, 75, 79, 82, 79, 78, 73, 83, + 128, 76, 69, 65, 84, 72, 69, 82, 128, 77, 65, 75, 83, 85, 82, 65, 128, + 78, 79, 45, 66, 82, 69, 65, 203, 80, 73, 78, 87, 72, 69, 69, 204, 81, 85, + 65, 82, 84, 69, 82, 211, 82, 69, 80, 69, 65, 84, 69, 196, 83, 65, 89, 65, + 78, 78, 65, 128, 83, 69, 76, 69, 67, 84, 79, 210, 84, 69, 84, 65, 82, 84, + 79, 211, 84, 82, 79, 77, 73, 75, 79, 206, 65, 67, 84, 73, 86, 65, 84, + 197, 65, 67, 84, 85, 65, 76, 76, 217, 65, 75, 72, 77, 73, 77, 73, 195, + 65, 80, 79, 68, 69, 82, 77, 193, 65, 82, 73, 83, 84, 69, 82, 193, 66, 69, + 84, 87, 69, 69, 78, 128, 66, 73, 76, 65, 66, 73, 65, 204, 67, 65, 89, 65, + 78, 78, 65, 128, 67, 69, 73, 76, 73, 78, 71, 128, 67, 72, 65, 82, 73, 79, + 84, 128, 67, 72, 79, 82, 69, 86, 77, 193, 67, 72, 82, 79, 78, 79, 85, + 128, 67, 76, 79, 84, 72, 69, 83, 128, 67, 79, 82, 78, 69, 82, 83, 128, + 68, 65, 77, 77, 65, 84, 65, 206, 68, 65, 80, 45, 66, 85, 79, 206, 68, 65, + 80, 45, 77, 85, 79, 217, 68, 65, 80, 45, 80, 82, 65, 205, 68, 69, 89, 84, + 69, 82, 79, 211, 68, 73, 82, 69, 67, 84, 76, 217, 68, 73, 83, 73, 77, 79, + 85, 128, 69, 77, 80, 72, 65, 83, 73, 211, 70, 69, 77, 73, 78, 73, 78, + 197, 70, 69, 82, 77, 65, 84, 65, 128, 70, 73, 83, 72, 72, 79, 79, 203, + 71, 76, 65, 71, 79, 76, 73, 128, 73, 78, 72, 69, 82, 69, 78, 212, 73, 78, + 84, 69, 82, 73, 79, 210, 75, 65, 83, 82, 65, 84, 65, 206, 75, 65, 89, 65, + 78, 78, 65, 128, 75, 79, 77, 66, 85, 86, 65, 128, 76, 45, 83, 72, 65, 80, + 69, 196, 76, 65, 84, 73, 78, 65, 84, 197, 76, 65, 89, 65, 78, 78, 65, + 128, 76, 74, 85, 68, 73, 74, 69, 128, 76, 79, 71, 79, 84, 89, 80, 197, + 77, 69, 65, 83, 85, 82, 69, 128, 77, 85, 76, 84, 73, 80, 76, 197, 77, 85, + 76, 84, 73, 83, 69, 212, 78, 65, 89, 65, 78, 78, 65, 128, 78, 85, 84, 73, + 76, 76, 85, 128, 79, 77, 73, 83, 83, 73, 79, 206, 80, 65, 89, 65, 78, 78, + 65, 128, 80, 65, 89, 69, 82, 79, 75, 128, 80, 69, 68, 69, 83, 84, 65, + 204, 80, 69, 84, 65, 76, 76, 69, 196, 80, 82, 65, 77, 45, 66, 69, 201, + 80, 82, 65, 77, 45, 80, 73, 201, 82, 71, 89, 73, 78, 71, 83, 128, 83, 45, + 83, 72, 65, 80, 69, 196, 83, 69, 77, 73, 83, 79, 70, 212, 83, 69, 77, 75, + 65, 84, 72, 128, 83, 69, 86, 69, 78, 84, 89, 128, 83, 72, 65, 80, 73, 78, + 71, 128, 83, 72, 84, 65, 80, 73, 67, 128, 83, 79, 67, 73, 69, 84, 89, + 128, 83, 80, 65, 82, 75, 76, 69, 128, 83, 80, 69, 67, 73, 65, 76, 128, + 83, 81, 85, 73, 82, 82, 69, 204, 83, 84, 65, 78, 68, 65, 82, 196, 83, 84, + 82, 79, 75, 69, 83, 128, 84, 72, 69, 83, 69, 79, 83, 128, 84, 72, 85, 78, + 68, 69, 82, 128, 84, 82, 73, 83, 69, 77, 69, 128, 85, 66, 65, 68, 65, 77, + 65, 128, 87, 65, 73, 84, 73, 78, 71, 128, 90, 72, 73, 86, 69, 84, 69, + 128, 65, 65, 89, 65, 78, 78, 65, 128, 65, 66, 65, 70, 73, 76, 73, 128, + 65, 68, 86, 65, 78, 67, 69, 128, 65, 69, 89, 65, 78, 78, 65, 128, 65, 73, + 89, 65, 78, 78, 65, 128, 65, 76, 69, 77, 66, 73, 67, 128, 65, 76, 86, 69, + 79, 76, 65, 210, 65, 78, 71, 83, 84, 82, 79, 205, 65, 78, 71, 85, 76, 65, + 82, 128, 65, 78, 85, 83, 86, 65, 82, 193, 65, 80, 79, 84, 72, 69, 83, + 128, 65, 82, 65, 69, 65, 45, 73, 128, 65, 82, 65, 69, 65, 45, 85, 128, + 65, 82, 67, 72, 65, 73, 79, 206, 65, 82, 79, 85, 83, 73, 78, 199, 65, 85, + 89, 65, 78, 78, 65, 128, 66, 65, 65, 82, 69, 82, 85, 128, 66, 65, 73, 82, + 75, 65, 78, 128, 66, 65, 82, 82, 69, 75, 72, 128, 66, 65, 82, 82, 73, 69, + 82, 128, 66, 65, 84, 72, 84, 85, 66, 128, 66, 69, 67, 65, 85, 83, 69, + 128, 66, 69, 69, 72, 73, 86, 69, 128, 66, 69, 76, 71, 84, 72, 79, 210, + 66, 69, 82, 75, 65, 78, 65, 206, 66, 73, 68, 69, 78, 84, 65, 204, 66, 79, + 85, 78, 68, 65, 82, 217, 66, 82, 65, 75, 67, 69, 84, 128, 66, 82, 73, 83, + 84, 76, 69, 128, 66, 85, 85, 77, 73, 83, 72, 128, 67, 65, 69, 83, 85, 82, + 65, 128, 67, 65, 80, 73, 84, 65, 76, 128, 67, 65, 80, 84, 73, 86, 69, + 128, 67, 65, 82, 82, 73, 65, 71, 197, 67, 69, 76, 83, 73, 85, 83, 128, + 67, 72, 65, 77, 73, 76, 73, 128, 67, 76, 73, 78, 71, 73, 78, 199, 67, 79, + 77, 80, 65, 82, 69, 128, 67, 79, 78, 83, 84, 65, 78, 212, 67, 79, 78, 84, + 65, 67, 84, 128, 67, 79, 82, 79, 78, 73, 83, 128, 67, 79, 82, 82, 69, 67, + 84, 128, 67, 82, 69, 65, 84, 73, 86, 197, 67, 82, 69, 83, 67, 69, 78, + 212, 67, 82, 85, 90, 69, 73, 82, 207, 67, 85, 82, 82, 69, 78, 84, 128, + 67, 85, 83, 84, 79, 77, 69, 210, 67, 87, 69, 79, 82, 84, 72, 128, 67, 89, + 80, 69, 82, 85, 83, 128, 67, 89, 82, 69, 78, 65, 73, 195, 68, 65, 71, 65, + 76, 71, 65, 128, 68, 69, 67, 65, 89, 69, 68, 128, 68, 69, 78, 65, 82, 73, + 85, 211, 68, 69, 89, 84, 69, 82, 79, 213, 68, 72, 65, 76, 65, 84, 72, + 128, 68, 73, 65, 77, 69, 84, 69, 210, 68, 73, 65, 84, 79, 78, 79, 206, + 68, 73, 71, 82, 65, 77, 77, 193, 68, 73, 77, 77, 73, 78, 71, 128, 68, 73, + 80, 76, 79, 85, 78, 128, 68, 73, 86, 73, 68, 69, 83, 128, 68, 79, 84, 83, + 45, 49, 50, 128, 68, 79, 84, 83, 45, 49, 51, 128, 68, 79, 84, 83, 45, 49, + 52, 128, 68, 79, 84, 83, 45, 49, 53, 128, 68, 79, 84, 83, 45, 49, 54, + 128, 68, 79, 84, 83, 45, 49, 55, 128, 68, 79, 84, 83, 45, 49, 56, 128, + 68, 79, 84, 83, 45, 50, 51, 128, 68, 79, 84, 83, 45, 50, 52, 128, 68, 79, + 84, 83, 45, 50, 53, 128, 68, 79, 84, 83, 45, 50, 54, 128, 68, 79, 84, 83, + 45, 50, 55, 128, 68, 79, 84, 83, 45, 50, 56, 128, 68, 79, 84, 83, 45, 51, + 52, 128, 68, 79, 84, 83, 45, 51, 53, 128, 68, 79, 84, 83, 45, 51, 54, + 128, 68, 79, 84, 83, 45, 51, 55, 128, 68, 79, 84, 83, 45, 51, 56, 128, + 68, 79, 84, 83, 45, 52, 53, 128, 68, 79, 84, 83, 45, 52, 54, 128, 68, 79, + 84, 83, 45, 52, 55, 128, 68, 79, 84, 83, 45, 52, 56, 128, 68, 79, 84, 83, + 45, 53, 54, 128, 68, 79, 84, 83, 45, 53, 55, 128, 68, 79, 84, 83, 45, 53, + 56, 128, 68, 79, 84, 83, 45, 54, 55, 128, 68, 79, 84, 83, 45, 54, 56, + 128, 68, 79, 84, 83, 45, 55, 56, 128, 68, 82, 65, 67, 72, 77, 65, 128, + 68, 82, 65, 70, 84, 73, 78, 199, 69, 65, 66, 72, 65, 68, 72, 128, 69, 65, + 68, 72, 65, 68, 72, 128, 69, 66, 69, 70, 73, 76, 73, 128, 69, 73, 71, 72, + 84, 69, 69, 206, 69, 76, 65, 70, 82, 79, 78, 128, 69, 76, 69, 67, 84, 82, + 73, 195, 69, 77, 80, 72, 65, 84, 73, 195, 69, 78, 81, 85, 73, 82, 89, + 128, 69, 78, 84, 69, 82, 73, 78, 199, 69, 84, 78, 65, 72, 84, 65, 128, + 69, 86, 69, 78, 73, 78, 71, 128, 70, 65, 73, 76, 85, 82, 69, 128, 70, 65, + 89, 65, 78, 78, 65, 128, 70, 69, 65, 84, 72, 69, 82, 128, 70, 73, 83, 72, + 69, 89, 69, 128, 70, 79, 78, 71, 77, 65, 78, 128, 70, 79, 79, 84, 78, 79, + 84, 197, 70, 79, 85, 82, 84, 69, 69, 206, 70, 82, 79, 87, 78, 73, 78, + 199, 71, 65, 82, 77, 69, 78, 84, 128, 71, 69, 83, 72, 84, 73, 78, 128, + 71, 73, 82, 85, 68, 65, 65, 128, 71, 82, 65, 80, 72, 69, 77, 197, 72, 65, + 70, 85, 75, 72, 65, 128, 72, 65, 76, 65, 78, 84, 65, 128, 72, 65, 76, 66, + 69, 82, 68, 128, 72, 65, 83, 65, 78, 84, 65, 128, 72, 65, 89, 65, 78, 78, + 65, 128, 72, 69, 65, 68, 73, 78, 71, 128, 72, 69, 65, 86, 69, 78, 76, + 217, 73, 45, 65, 82, 65, 69, 65, 128, 73, 66, 73, 70, 73, 76, 73, 128, + 73, 67, 72, 65, 68, 73, 78, 128, 73, 73, 89, 65, 78, 78, 65, 128, 73, 76, + 73, 77, 77, 85, 51, 128, 73, 76, 73, 77, 77, 85, 52, 128, 73, 78, 68, 73, + 82, 69, 67, 212, 73, 78, 70, 73, 78, 73, 84, 217, 73, 78, 84, 69, 82, 69, + 83, 212, 73, 79, 68, 72, 65, 68, 72, 128, 74, 65, 78, 85, 65, 82, 89, + 128, 74, 65, 80, 65, 78, 69, 83, 197, 74, 85, 80, 73, 84, 69, 82, 128, + 75, 65, 75, 65, 66, 65, 84, 128, 75, 65, 82, 65, 84, 84, 79, 128, 75, 65, + 82, 79, 82, 73, 73, 128, 75, 69, 77, 66, 65, 78, 71, 128, 75, 73, 78, 83, + 72, 73, 80, 128, 75, 79, 78, 84, 69, 86, 77, 193, 75, 79, 79, 77, 85, 85, + 84, 128, 75, 85, 82, 79, 79, 78, 69, 128, 76, 65, 78, 71, 85, 65, 71, + 197, 76, 79, 67, 65, 84, 73, 79, 206, 77, 65, 73, 75, 85, 82, 79, 128, + 77, 65, 73, 77, 85, 65, 78, 128, 77, 65, 78, 83, 89, 79, 78, 128, 77, 65, + 82, 66, 85, 84, 65, 128, 77, 65, 82, 67, 65, 84, 79, 128, 77, 65, 82, 82, + 73, 65, 71, 197, 77, 65, 82, 82, 89, 73, 78, 199, 77, 65, 83, 83, 73, 78, + 71, 128, 77, 65, 84, 84, 79, 67, 75, 128, 77, 65, 89, 65, 78, 78, 65, + 128, 77, 69, 71, 65, 84, 79, 78, 128, 77, 69, 82, 67, 85, 82, 89, 128, + 77, 69, 84, 82, 69, 84, 69, 211, 77, 73, 75, 85, 82, 79, 78, 128, 77, 79, + 68, 69, 83, 84, 89, 128, 77, 79, 72, 65, 77, 77, 65, 196, 77, 79, 82, 78, + 73, 78, 71, 128, 78, 65, 84, 73, 79, 78, 65, 204, 78, 69, 71, 65, 84, 73, + 79, 206, 78, 69, 80, 84, 85, 78, 69, 128, 78, 69, 87, 76, 73, 78, 69, + 128, 78, 71, 69, 65, 68, 65, 76, 128, 78, 73, 75, 65, 72, 73, 84, 128, + 78, 73, 78, 69, 84, 69, 69, 206, 78, 89, 73, 78, 45, 68, 79, 128, 79, 66, + 79, 70, 73, 76, 73, 128, 79, 67, 84, 79, 66, 69, 82, 128, 79, 78, 69, 45, + 76, 73, 78, 197, 79, 78, 69, 83, 69, 76, 70, 128, 79, 79, 89, 65, 78, 78, + 65, 128, 79, 82, 84, 72, 79, 68, 79, 216, 79, 85, 84, 76, 73, 78, 69, + 128, 80, 65, 67, 75, 73, 78, 71, 128, 80, 65, 76, 76, 65, 87, 65, 128, + 80, 65, 77, 65, 65, 69, 72, 128, 80, 65, 77, 69, 80, 69, 84, 128, 80, 65, + 78, 89, 73, 75, 85, 128, 80, 65, 78, 89, 85, 75, 85, 128, 80, 65, 80, 89, + 82, 85, 83, 128, 80, 65, 82, 69, 82, 69, 78, 128, 80, 65, 84, 84, 69, 82, + 78, 128, 80, 69, 76, 65, 83, 84, 79, 206, 80, 69, 84, 65, 83, 77, 65, + 128, 80, 69, 84, 65, 83, 84, 73, 128, 80, 72, 73, 78, 84, 72, 85, 128, + 80, 72, 85, 84, 72, 65, 79, 128, 80, 79, 68, 65, 84, 85, 83, 128, 80, 82, + 69, 67, 69, 68, 69, 128, 80, 82, 69, 67, 69, 68, 69, 196, 80, 82, 69, 86, + 73, 79, 85, 211, 80, 82, 73, 86, 65, 84, 69, 128, 80, 82, 79, 80, 69, 82, + 84, 217, 82, 65, 75, 72, 65, 78, 71, 128, 82, 65, 80, 73, 83, 77, 65, + 128, 82, 65, 89, 65, 78, 78, 65, 128, 82, 69, 65, 72, 77, 85, 75, 128, + 82, 69, 76, 69, 65, 83, 69, 128, 82, 69, 82, 69, 75, 65, 78, 128, 82, 69, + 84, 82, 69, 65, 84, 128, 82, 73, 84, 84, 79, 82, 85, 128, 82, 79, 83, 69, + 84, 84, 69, 128, 82, 85, 85, 66, 85, 82, 85, 128, 83, 65, 73, 75, 85, 82, + 85, 128, 83, 65, 76, 84, 73, 82, 69, 128, 83, 65, 77, 80, 72, 65, 79, + 128, 83, 65, 78, 89, 79, 79, 71, 193, 83, 67, 72, 79, 76, 65, 82, 128, + 83, 67, 82, 85, 80, 76, 69, 128, 83, 69, 71, 77, 69, 78, 84, 128, 83, 69, + 77, 85, 78, 67, 73, 193, 83, 73, 77, 73, 76, 65, 82, 128, 83, 73, 78, 75, 73, 78, 71, 128, 83, 73, 82, 73, 78, 71, 85, 128, 83, 73, 88, 45, 76, 73, - 78, 197, 83, 78, 79, 87, 77, 65, 78, 128, 83, 80, 73, 82, 65, 78, 84, - 128, 83, 80, 82, 73, 78, 71, 83, 128, 83, 81, 85, 65, 82, 69, 83, 128, - 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, 65, 86, 82, 79, 83, 128, 83, 84, - 65, 86, 82, 79, 85, 128, 83, 84, 82, 65, 84, 73, 65, 206, 83, 84, 82, 73, - 67, 84, 76, 217, 83, 85, 66, 74, 69, 67, 84, 128, 83, 85, 67, 67, 69, 69, - 68, 128, 83, 89, 78, 69, 86, 77, 65, 128, 84, 65, 73, 83, 89, 79, 85, - 128, 84, 65, 84, 87, 69, 69, 76, 128, 84, 67, 72, 69, 72, 69, 72, 128, - 84, 69, 83, 83, 65, 82, 79, 206, 84, 69, 83, 83, 69, 82, 65, 128, 84, 72, - 73, 82, 84, 69, 69, 206, 84, 72, 85, 82, 73, 83, 65, 218, 84, 73, 78, 65, - 71, 77, 65, 128, 84, 73, 82, 79, 78, 73, 65, 206, 84, 79, 82, 67, 85, 76, - 85, 211, 84, 82, 73, 73, 83, 65, 80, 128, 84, 82, 89, 66, 76, 73, 79, - 206, 84, 86, 73, 77, 65, 68, 85, 210, 84, 87, 79, 45, 76, 73, 78, 197, - 85, 45, 69, 79, 45, 69, 85, 128, 85, 66, 85, 70, 73, 76, 73, 128, 85, 77, - 66, 82, 69, 76, 76, 193, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 89, 65, - 78, 78, 65, 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 76, 76, 65, 71, - 69, 128, 86, 79, 73, 67, 73, 78, 71, 128, 87, 65, 83, 65, 76, 76, 65, - 205, 87, 65, 83, 84, 73, 78, 71, 128, 89, 65, 89, 65, 78, 78, 65, 128, - 89, 79, 85, 84, 72, 70, 85, 204, 89, 80, 79, 82, 82, 79, 73, 128, 79, 83, - 77, 65, 78, 89, 193, 67, 73, 82, 67, 76, 69, 128, 66, 82, 65, 67, 75, 69, - 212, 85, 80, 83, 73, 76, 79, 206, 65, 67, 67, 69, 78, 84, 128, 68, 73, - 78, 71, 66, 65, 212, 69, 80, 83, 73, 76, 79, 206, 83, 76, 65, 78, 84, 69, - 196, 83, 81, 85, 65, 82, 69, 128, 72, 65, 78, 85, 78, 79, 207, 68, 65, - 71, 69, 83, 72, 128, 71, 76, 79, 84, 84, 65, 204, 84, 65, 71, 65, 76, 79, - 199, 79, 77, 73, 67, 82, 79, 206, 80, 65, 76, 65, 84, 65, 204, 78, 65, - 83, 75, 65, 80, 201, 67, 79, 82, 78, 69, 82, 128, 69, 76, 69, 77, 69, 78, - 212, 66, 85, 76, 76, 69, 84, 128, 68, 79, 84, 76, 69, 83, 211, 79, 71, - 79, 78, 69, 75, 128, 86, 73, 82, 65, 77, 65, 128, 75, 73, 82, 71, 72, 73, - 218, 82, 69, 86, 69, 82, 83, 197, 68, 73, 65, 77, 79, 78, 196, 84, 87, - 69, 78, 84, 89, 128, 68, 79, 85, 66, 76, 69, 128, 78, 69, 73, 84, 72, 69, - 210, 81, 85, 65, 82, 84, 69, 210, 83, 73, 77, 73, 76, 65, 210, 83, 73, - 78, 71, 76, 69, 128, 83, 79, 76, 73, 68, 85, 211, 83, 81, 85, 65, 82, 69, - 196, 67, 72, 73, 78, 69, 83, 197, 78, 85, 78, 65, 86, 73, 203, 83, 85, - 66, 83, 69, 84, 128, 84, 72, 45, 67, 82, 69, 197, 84, 82, 73, 71, 82, 65, - 205, 65, 82, 75, 84, 73, 75, 207, 69, 76, 69, 86, 69, 78, 128, 72, 85, - 78, 68, 82, 69, 196, 72, 89, 80, 72, 69, 78, 128, 73, 78, 83, 73, 68, 69, - 128, 77, 65, 82, 75, 69, 82, 128, 79, 80, 69, 78, 73, 78, 199, 84, 87, - 69, 76, 86, 69, 128, 69, 73, 71, 72, 84, 72, 211, 80, 65, 82, 84, 73, 65, - 204, 84, 72, 73, 82, 84, 89, 128, 86, 82, 65, 67, 72, 89, 128, 65, 82, - 82, 79, 87, 83, 128, 70, 65, 76, 76, 73, 78, 199, 79, 66, 76, 73, 81, 85, - 197, 80, 69, 82, 67, 69, 78, 212, 84, 72, 82, 79, 85, 71, 200, 67, 69, + 78, 197, 83, 76, 65, 86, 79, 78, 73, 195, 83, 78, 79, 87, 77, 65, 78, + 128, 83, 80, 73, 82, 65, 78, 84, 128, 83, 80, 82, 73, 78, 71, 83, 128, + 83, 81, 85, 65, 82, 69, 83, 128, 83, 84, 65, 85, 82, 79, 83, 128, 83, 84, + 65, 86, 82, 79, 83, 128, 83, 84, 65, 86, 82, 79, 85, 128, 83, 84, 82, 65, + 84, 73, 65, 206, 83, 84, 82, 73, 67, 84, 76, 217, 83, 85, 66, 74, 69, 67, + 84, 128, 83, 85, 67, 67, 69, 69, 68, 128, 83, 89, 78, 69, 86, 77, 65, + 128, 84, 65, 73, 76, 76, 69, 83, 211, 84, 65, 73, 83, 89, 79, 85, 128, + 84, 65, 84, 84, 79, 79, 69, 196, 84, 65, 84, 87, 69, 69, 76, 128, 84, 67, + 72, 69, 72, 69, 72, 128, 84, 69, 83, 83, 65, 82, 79, 206, 84, 69, 83, 83, + 69, 82, 65, 128, 84, 72, 73, 82, 84, 69, 69, 206, 84, 72, 85, 82, 73, 83, + 65, 218, 84, 73, 78, 65, 71, 77, 65, 128, 84, 73, 82, 79, 78, 73, 65, + 206, 84, 79, 82, 67, 85, 76, 85, 211, 84, 82, 73, 73, 83, 65, 80, 128, + 84, 82, 89, 66, 76, 73, 79, 206, 84, 84, 85, 68, 68, 65, 71, 128, 84, 86, + 73, 77, 65, 68, 85, 210, 84, 87, 79, 45, 76, 73, 78, 197, 85, 45, 69, 79, + 45, 69, 85, 128, 85, 66, 85, 70, 73, 76, 73, 128, 85, 77, 66, 82, 69, 76, + 76, 193, 86, 65, 83, 84, 78, 69, 83, 211, 86, 65, 89, 65, 78, 78, 65, + 128, 86, 73, 69, 87, 68, 65, 84, 193, 86, 73, 76, 76, 65, 71, 69, 128, + 86, 79, 73, 67, 73, 78, 71, 128, 87, 65, 83, 65, 76, 76, 65, 205, 87, 65, + 83, 84, 73, 78, 71, 128, 89, 65, 89, 65, 78, 78, 65, 128, 89, 79, 85, 84, + 72, 70, 85, 204, 89, 80, 79, 82, 82, 79, 73, 128, 72, 65, 82, 80, 79, 79, + 206, 80, 69, 82, 83, 73, 65, 206, 83, 72, 65, 86, 73, 65, 206, 85, 80, + 87, 65, 82, 68, 211, 77, 65, 72, 74, 79, 78, 199, 67, 73, 82, 67, 76, 69, + 128, 79, 83, 77, 65, 78, 89, 193, 66, 82, 65, 67, 75, 69, 212, 85, 80, + 83, 73, 76, 79, 206, 65, 67, 67, 69, 78, 84, 128, 68, 73, 78, 71, 66, 65, + 212, 83, 81, 85, 65, 82, 69, 128, 69, 80, 83, 73, 76, 79, 206, 83, 76, + 65, 78, 84, 69, 196, 86, 65, 82, 73, 65, 78, 212, 71, 76, 79, 84, 84, 65, + 204, 72, 65, 78, 85, 78, 79, 207, 68, 65, 71, 69, 83, 72, 128, 84, 65, + 71, 65, 76, 79, 199, 79, 77, 73, 67, 82, 79, 206, 80, 65, 76, 65, 84, 65, + 204, 82, 69, 86, 69, 82, 83, 197, 73, 78, 83, 85, 76, 65, 210, 78, 65, + 83, 75, 65, 80, 201, 67, 79, 82, 78, 69, 82, 128, 68, 73, 65, 77, 79, 78, + 196, 84, 72, 82, 79, 85, 71, 200, 86, 73, 82, 65, 77, 65, 128, 69, 76, + 69, 77, 69, 78, 212, 66, 85, 76, 76, 69, 84, 128, 68, 79, 84, 76, 69, 83, + 211, 79, 71, 79, 78, 69, 75, 128, 84, 69, 68, 85, 78, 71, 128, 75, 73, + 82, 71, 72, 73, 218, 83, 81, 85, 65, 82, 69, 196, 84, 87, 69, 78, 84, 89, + 128, 81, 85, 65, 82, 84, 69, 210, 83, 79, 76, 73, 68, 85, 211, 68, 79, + 85, 66, 76, 69, 128, 72, 85, 78, 68, 82, 69, 196, 73, 78, 83, 73, 68, 69, + 128, 78, 69, 73, 84, 72, 69, 210, 83, 73, 77, 73, 76, 65, 210, 83, 73, + 78, 71, 76, 69, 128, 83, 85, 66, 83, 69, 84, 128, 87, 69, 83, 84, 69, 82, + 206, 67, 72, 73, 78, 69, 83, 197, 78, 85, 78, 65, 86, 73, 203, 84, 72, + 45, 67, 82, 69, 197, 84, 82, 73, 71, 82, 65, 205, 65, 82, 75, 84, 73, 75, + 207, 69, 76, 69, 86, 69, 78, 128, 72, 89, 80, 72, 69, 78, 128, 77, 65, + 82, 75, 69, 82, 128, 79, 80, 69, 78, 73, 78, 199, 84, 87, 69, 76, 86, 69, + 128, 65, 82, 82, 79, 87, 83, 128, 68, 82, 65, 71, 79, 78, 128, 69, 73, + 71, 72, 84, 72, 211, 75, 65, 83, 75, 65, 76, 128, 79, 66, 76, 73, 81, 85, + 197, 80, 65, 82, 84, 73, 65, 204, 84, 72, 73, 82, 84, 89, 128, 86, 82, + 65, 67, 72, 89, 128, 65, 82, 67, 72, 65, 73, 195, 70, 65, 76, 76, 73, 78, + 199, 77, 69, 65, 83, 85, 82, 197, 80, 69, 82, 67, 69, 78, 212, 67, 69, 68, 73, 76, 76, 193, 67, 79, 78, 84, 82, 79, 204, 67, 85, 82, 86, 73, 78, 199, 68, 73, 71, 82, 65, 80, 200, 69, 81, 85, 65, 76, 83, 128, 70, 73, 76, 76, 69, 82, 128, 71, 65, 78, 71, 73, 65, 128, 73, 78, 86, 69, 82, 83, - 197, 73, 79, 84, 65, 84, 69, 196, 75, 69, 78, 84, 73, 77, 193, 77, 69, - 65, 83, 85, 82, 197, 82, 79, 85, 78, 68, 69, 196, 83, 65, 78, 89, 65, 75, - 193, 84, 67, 72, 69, 72, 69, 200, 84, 79, 80, 66, 65, 82, 128, 84, 85, - 82, 84, 76, 69, 128, 89, 73, 68, 68, 73, 83, 200, 45, 75, 72, 89, 73, 76, - 128, 66, 79, 84, 84, 79, 77, 128, 67, 69, 78, 84, 82, 69, 128, 67, 69, - 78, 84, 82, 69, 196, 67, 79, 78, 84, 65, 73, 206, 67, 79, 78, 84, 79, 85, - 210, 67, 82, 79, 83, 83, 69, 196, 68, 65, 78, 84, 65, 74, 193, 68, 73, - 86, 73, 68, 69, 196, 68, 79, 84, 84, 69, 68, 128, 68, 82, 65, 71, 79, 78, - 128, 70, 73, 70, 84, 72, 83, 128, 72, 69, 65, 86, 69, 78, 128, 75, 79, - 77, 66, 85, 86, 193, 75, 82, 65, 84, 73, 77, 193, 76, 69, 65, 68, 69, 82, - 128, 77, 65, 82, 66, 85, 84, 193, 77, 69, 77, 66, 69, 82, 128, 78, 65, - 84, 85, 82, 65, 204, 78, 73, 78, 69, 84, 89, 128, 80, 69, 78, 67, 73, 76, - 128, 81, 65, 77, 65, 84, 83, 128, 83, 75, 76, 73, 82, 79, 206, 83, 79, - 71, 68, 73, 65, 206, 83, 84, 73, 71, 77, 65, 128, 83, 89, 78, 65, 71, 77, - 193, 84, 65, 65, 76, 85, 74, 193, 84, 72, 69, 83, 69, 79, 211, 84, 79, - 78, 71, 85, 69, 128, 65, 67, 65, 68, 69, 77, 217, 65, 67, 67, 79, 85, 78, - 212, 65, 78, 67, 72, 79, 82, 128, 65, 78, 67, 79, 82, 65, 128, 65, 80, - 76, 79, 85, 78, 128, 65, 82, 67, 72, 65, 73, 195, 66, 65, 76, 85, 68, 65, - 128, 66, 65, 77, 66, 79, 79, 128, 66, 65, 83, 72, 75, 73, 210, 66, 73, - 78, 68, 73, 78, 199, 66, 73, 83, 72, 79, 80, 128, 66, 79, 87, 84, 73, 69, - 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 82, 73, 86, 73, 128, 67, 76, - 85, 83, 84, 69, 210, 68, 65, 71, 71, 69, 82, 128, 68, 65, 80, 45, 66, 69, - 201, 68, 65, 80, 45, 80, 73, 201, 68, 69, 67, 73, 77, 65, 204, 68, 73, - 86, 73, 68, 69, 128, 68, 74, 69, 82, 86, 73, 128, 68, 79, 85, 66, 76, 69, - 196, 68, 82, 65, 67, 72, 77, 193, 69, 65, 82, 84, 72, 76, 217, 69, 73, - 71, 72, 84, 89, 128, 69, 83, 67, 65, 80, 69, 128, 70, 69, 65, 84, 72, 69, - 210, 70, 76, 69, 88, 85, 83, 128, 71, 69, 82, 69, 83, 72, 128, 71, 72, - 85, 78, 78, 65, 128, 71, 82, 69, 65, 84, 69, 210, 72, 79, 76, 68, 73, 78, - 199, 73, 78, 72, 73, 66, 73, 212, 73, 83, 83, 72, 65, 82, 128, 73, 90, - 72, 73, 84, 83, 193, 75, 69, 69, 80, 73, 78, 199, 75, 72, 73, 69, 85, 75, - 200, 75, 76, 65, 83, 77, 65, 128, 75, 78, 73, 71, 72, 84, 128, 75, 79, - 82, 65, 78, 73, 195, 76, 69, 71, 69, 84, 79, 211, 77, 65, 76, 65, 75, 79, - 206, 77, 65, 82, 75, 45, 49, 128, 77, 65, 82, 75, 45, 50, 128, 77, 79, - 82, 84, 65, 82, 128, 78, 69, 71, 65, 84, 69, 196, 78, 79, 84, 67, 72, 69, - 196, 79, 82, 68, 73, 78, 65, 204, 80, 72, 73, 69, 85, 80, 200, 80, 72, - 82, 65, 83, 69, 128, 80, 73, 76, 67, 82, 79, 215, 80, 76, 65, 71, 73, 79, - 211, 80, 79, 75, 79, 74, 73, 128, 82, 69, 84, 85, 82, 78, 128, 82, 73, - 75, 82, 73, 75, 128, 83, 69, 82, 73, 70, 83, 128, 83, 72, 65, 80, 69, 83, - 128, 83, 73, 88, 84, 69, 69, 206, 83, 76, 79, 80, 73, 78, 199, 83, 77, - 65, 76, 76, 69, 210, 83, 77, 73, 76, 73, 78, 199, 83, 80, 69, 69, 67, 72, - 128, 83, 80, 73, 68, 69, 82, 217, 84, 65, 77, 73, 78, 71, 128, 84, 69, - 76, 69, 73, 65, 128, 84, 69, 76, 73, 83, 72, 193, 84, 69, 83, 83, 69, 82, - 193, 84, 72, 69, 84, 72, 69, 128, 84, 72, 73, 69, 85, 84, 200, 84, 72, - 82, 69, 65, 68, 128, 84, 72, 82, 69, 69, 45, 196, 84, 86, 82, 73, 68, 79, - 128, 85, 80, 84, 85, 82, 78, 128, 89, 69, 76, 76, 79, 87, 128, 89, 79, - 45, 89, 65, 69, 128, 89, 85, 45, 89, 69, 79, 128, 90, 69, 77, 76, 74, 65, - 128, 65, 66, 89, 83, 77, 65, 204, 65, 70, 71, 72, 65, 78, 201, 65, 70, - 82, 73, 67, 65, 206, 65, 72, 65, 71, 71, 65, 210, 65, 73, 72, 86, 85, 83, - 128, 65, 73, 86, 73, 76, 73, 203, 65, 76, 65, 89, 72, 69, 128, 65, 76, - 73, 71, 78, 69, 196, 65, 78, 78, 85, 73, 84, 217, 65, 80, 65, 65, 84, 79, - 128, 65, 82, 65, 69, 65, 69, 128, 65, 82, 77, 79, 85, 82, 128, 65, 82, - 82, 73, 86, 69, 128, 65, 82, 83, 69, 79, 83, 128, 65, 82, 85, 72, 85, 65, - 128, 65, 83, 67, 69, 78, 84, 128, 65, 85, 71, 85, 83, 84, 128, 65, 85, - 83, 84, 82, 65, 204, 65, 86, 69, 82, 65, 71, 197, 66, 65, 68, 71, 69, 82, + 197, 73, 79, 84, 65, 84, 69, 196, 75, 69, 78, 84, 73, 77, 193, 82, 79, + 85, 78, 68, 69, 196, 83, 65, 78, 89, 65, 75, 193, 84, 67, 72, 69, 72, 69, + 200, 84, 79, 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, + 78, 69, 45, 53, 128, 84, 79, 80, 66, 65, 82, 128, 84, 85, 82, 84, 76, 69, + 128, 89, 73, 68, 68, 73, 83, 200, 45, 75, 72, 89, 73, 76, 128, 65, 83, + 72, 71, 65, 66, 128, 66, 65, 77, 66, 79, 79, 128, 66, 79, 84, 84, 79, 77, + 128, 67, 69, 78, 84, 82, 69, 128, 67, 69, 78, 84, 82, 69, 196, 67, 79, + 78, 84, 65, 73, 206, 67, 79, 78, 84, 79, 85, 210, 67, 79, 85, 78, 67, 73, + 204, 67, 82, 79, 83, 83, 69, 196, 68, 65, 78, 84, 65, 74, 193, 68, 73, + 86, 73, 68, 69, 196, 68, 79, 84, 84, 69, 68, 128, 69, 65, 83, 84, 69, 82, + 206, 70, 73, 70, 84, 72, 83, 128, 72, 69, 65, 86, 69, 78, 128, 75, 79, + 77, 66, 85, 86, 193, 75, 82, 65, 84, 73, 77, 193, 75, 85, 83, 72, 85, 50, + 128, 76, 69, 65, 68, 69, 82, 128, 77, 65, 82, 66, 85, 84, 193, 77, 69, + 77, 66, 69, 82, 128, 78, 65, 84, 85, 82, 65, 204, 78, 73, 78, 69, 84, 89, + 128, 80, 69, 78, 67, 73, 76, 128, 81, 65, 77, 65, 84, 83, 128, 83, 75, + 76, 73, 82, 79, 206, 83, 79, 71, 68, 73, 65, 206, 83, 84, 73, 71, 77, 65, + 128, 83, 89, 78, 65, 71, 77, 193, 84, 65, 65, 76, 85, 74, 193, 84, 72, + 69, 83, 69, 79, 211, 84, 79, 78, 71, 85, 69, 128, 65, 67, 65, 68, 69, 77, + 217, 65, 67, 67, 79, 85, 78, 212, 65, 78, 67, 72, 79, 82, 128, 65, 78, + 67, 79, 82, 65, 128, 65, 80, 76, 79, 85, 78, 128, 66, 65, 76, 85, 68, 65, + 128, 66, 65, 83, 72, 75, 73, 210, 66, 69, 78, 90, 69, 78, 197, 66, 73, + 78, 68, 73, 78, 199, 66, 73, 83, 72, 79, 80, 128, 66, 76, 69, 78, 68, 69, + 196, 66, 79, 87, 84, 73, 69, 128, 66, 82, 65, 78, 67, 72, 128, 67, 69, + 82, 45, 87, 65, 128, 67, 72, 73, 69, 85, 67, 200, 67, 72, 82, 73, 86, 73, + 128, 67, 76, 85, 83, 84, 69, 210, 68, 65, 71, 71, 69, 82, 128, 68, 65, + 80, 45, 66, 69, 201, 68, 65, 80, 45, 80, 73, 201, 68, 69, 67, 73, 77, 65, + 204, 68, 73, 86, 73, 68, 69, 128, 68, 74, 69, 82, 86, 73, 128, 68, 79, + 85, 66, 76, 69, 196, 68, 82, 65, 67, 72, 77, 193, 69, 65, 82, 84, 72, 76, + 217, 69, 73, 71, 72, 84, 89, 128, 69, 83, 67, 65, 80, 69, 128, 70, 69, + 65, 84, 72, 69, 210, 70, 76, 69, 88, 85, 83, 128, 71, 69, 82, 69, 83, 72, + 128, 71, 72, 85, 78, 78, 65, 128, 71, 82, 69, 65, 84, 69, 210, 72, 69, + 76, 77, 69, 84, 128, 72, 79, 76, 68, 73, 78, 199, 73, 78, 72, 73, 66, 73, + 212, 73, 83, 83, 72, 65, 82, 128, 73, 90, 72, 73, 84, 83, 193, 75, 65, + 86, 89, 75, 65, 128, 75, 69, 69, 80, 73, 78, 199, 75, 72, 73, 69, 85, 75, + 200, 75, 73, 83, 73, 77, 53, 128, 75, 76, 65, 83, 77, 65, 128, 75, 78, + 73, 71, 72, 84, 128, 75, 79, 82, 65, 78, 73, 195, 76, 69, 71, 69, 84, 79, + 211, 77, 65, 76, 65, 75, 79, 206, 77, 65, 82, 75, 45, 49, 128, 77, 65, + 82, 75, 45, 50, 128, 77, 79, 82, 84, 65, 82, 128, 77, 85, 67, 65, 65, 68, + 128, 78, 69, 71, 65, 84, 69, 196, 78, 69, 85, 84, 82, 65, 204, 78, 79, + 84, 67, 72, 69, 196, 79, 82, 68, 73, 78, 65, 204, 80, 65, 76, 65, 85, 78, + 199, 80, 72, 73, 69, 85, 80, 200, 80, 72, 82, 65, 83, 69, 128, 80, 73, + 76, 67, 82, 79, 215, 80, 76, 65, 71, 73, 79, 211, 80, 76, 79, 80, 72, 85, + 128, 80, 79, 75, 79, 74, 73, 128, 82, 69, 84, 85, 82, 78, 128, 82, 73, + 75, 82, 73, 75, 128, 83, 69, 82, 73, 70, 83, 128, 83, 69, 88, 84, 85, 76, + 193, 83, 72, 65, 80, 69, 83, 128, 83, 73, 88, 84, 69, 69, 206, 83, 76, + 79, 80, 73, 78, 199, 83, 77, 65, 76, 76, 69, 210, 83, 77, 73, 76, 73, 78, + 199, 83, 80, 69, 69, 67, 72, 128, 83, 80, 73, 68, 69, 82, 217, 83, 85, + 82, 65, 78, 71, 128, 84, 65, 45, 82, 79, 76, 128, 84, 65, 77, 73, 78, 71, + 128, 84, 69, 76, 69, 73, 65, 128, 84, 69, 76, 73, 83, 72, 193, 84, 69, + 83, 83, 69, 82, 193, 84, 72, 69, 84, 72, 69, 128, 84, 72, 73, 69, 85, 84, + 200, 84, 72, 82, 69, 65, 68, 128, 84, 72, 82, 69, 69, 45, 196, 84, 79, + 78, 69, 45, 52, 128, 84, 79, 78, 69, 45, 54, 128, 84, 86, 82, 73, 68, 79, + 128, 85, 80, 84, 85, 82, 78, 128, 87, 79, 76, 79, 83, 79, 128, 89, 69, + 76, 76, 79, 87, 128, 89, 79, 45, 89, 65, 69, 128, 89, 85, 45, 89, 69, 79, + 128, 90, 69, 77, 76, 74, 65, 128, 90, 69, 77, 76, 89, 65, 128, 65, 66, + 89, 83, 77, 65, 204, 65, 70, 71, 72, 65, 78, 201, 65, 70, 82, 73, 67, 65, + 206, 65, 72, 65, 71, 71, 65, 210, 65, 73, 72, 86, 85, 83, 128, 65, 73, + 75, 65, 82, 65, 128, 65, 73, 86, 73, 76, 73, 203, 65, 76, 65, 89, 72, 69, + 128, 65, 76, 73, 71, 78, 69, 196, 65, 78, 78, 85, 73, 84, 217, 65, 80, + 65, 65, 84, 79, 128, 65, 82, 65, 69, 65, 69, 128, 65, 82, 77, 79, 85, 82, + 128, 65, 82, 82, 73, 86, 69, 128, 65, 82, 83, 69, 79, 83, 128, 65, 82, + 85, 72, 85, 65, 128, 65, 83, 67, 69, 78, 84, 128, 65, 85, 71, 85, 83, 84, + 128, 65, 85, 83, 84, 82, 65, 204, 65, 85, 84, 85, 77, 78, 128, 65, 86, + 69, 82, 65, 71, 197, 66, 65, 68, 71, 69, 82, 128, 66, 65, 72, 65, 82, 50, 128, 66, 65, 73, 77, 65, 73, 128, 66, 65, 78, 84, 79, 67, 128, 66, 65, - 82, 76, 69, 89, 128, 66, 65, 82, 82, 69, 69, 128, 66, 69, 78, 90, 69, 78, - 197, 66, 69, 84, 87, 69, 69, 206, 66, 69, 89, 89, 65, 76, 128, 66, 73, - 84, 84, 69, 82, 128, 66, 79, 82, 85, 84, 79, 128, 66, 82, 65, 78, 67, 72, - 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 79, 78, 90, 69, 128, 66, 85, - 67, 75, 76, 69, 128, 67, 65, 78, 67, 69, 76, 128, 67, 65, 78, 67, 69, 82, - 128, 67, 65, 84, 65, 87, 65, 128, 67, 65, 85, 84, 73, 79, 206, 67, 72, - 65, 77, 75, 79, 128, 67, 72, 65, 78, 71, 69, 128, 67, 72, 65, 82, 73, 79, - 212, 67, 72, 69, 86, 82, 79, 206, 67, 72, 73, 82, 69, 84, 128, 67, 72, + 82, 76, 69, 89, 128, 66, 65, 82, 82, 69, 69, 128, 66, 69, 84, 87, 69, 69, + 206, 66, 69, 89, 89, 65, 76, 128, 66, 73, 84, 84, 69, 82, 128, 66, 79, + 82, 85, 84, 79, 128, 66, 82, 69, 86, 73, 83, 128, 66, 82, 79, 78, 90, 69, + 128, 66, 85, 67, 75, 76, 69, 128, 67, 65, 78, 67, 69, 76, 128, 67, 65, + 78, 67, 69, 82, 128, 67, 65, 78, 68, 82, 65, 128, 67, 65, 84, 65, 87, 65, + 128, 67, 65, 85, 84, 73, 79, 206, 67, 72, 65, 77, 75, 79, 128, 67, 72, + 65, 78, 71, 69, 128, 67, 72, 65, 82, 73, 79, 212, 67, 72, 69, 86, 82, 79, + 206, 67, 72, 73, 82, 69, 84, 128, 67, 72, 73, 82, 79, 78, 128, 67, 72, 85, 82, 67, 72, 128, 67, 76, 69, 70, 45, 49, 128, 67, 76, 69, 70, 45, 50, 128, 67, 76, 73, 86, 73, 83, 128, 67, 76, 79, 83, 69, 68, 128, 67, 79, - 70, 70, 73, 78, 128, 67, 79, 78, 73, 67, 65, 204, 67, 79, 82, 80, 83, 69, - 128, 67, 85, 82, 82, 69, 78, 212, 68, 65, 65, 68, 72, 85, 128, 68, 65, - 76, 65, 84, 72, 128, 68, 65, 77, 65, 82, 85, 128, 68, 65, 83, 69, 73, 65, - 128, 68, 68, 65, 72, 65, 76, 128, 68, 69, 76, 69, 84, 69, 128, 68, 69, - 76, 80, 72, 73, 195, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 82, 77, 65, - 128, 68, 73, 69, 83, 73, 83, 128, 68, 73, 80, 80, 69, 82, 128, 68, 73, - 86, 79, 82, 67, 197, 68, 79, 84, 83, 45, 49, 128, 68, 79, 84, 83, 45, 50, - 128, 68, 79, 84, 83, 45, 51, 128, 68, 79, 84, 83, 45, 52, 128, 68, 79, - 84, 83, 45, 53, 128, 68, 79, 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 55, - 128, 68, 79, 84, 83, 45, 56, 128, 68, 85, 84, 73, 69, 83, 128, 69, 73, - 71, 72, 84, 72, 128, 69, 78, 65, 82, 88, 73, 211, 69, 88, 67, 69, 83, 83, - 128, 69, 88, 73, 83, 84, 83, 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, - 67, 69, 45, 50, 128, 70, 65, 67, 69, 45, 51, 128, 70, 65, 67, 69, 45, 52, - 128, 70, 65, 67, 69, 45, 53, 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, - 77, 73, 76, 89, 128, 70, 65, 84, 72, 69, 82, 128, 70, 69, 77, 65, 76, 69, - 128, 70, 69, 82, 77, 65, 84, 193, 70, 73, 70, 84, 69, 69, 206, 70, 76, - 65, 71, 45, 49, 128, 70, 76, 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 51, - 128, 70, 76, 65, 71, 45, 52, 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, - 73, 71, 72, 84, 128, 70, 76, 79, 87, 69, 82, 128, 70, 79, 82, 67, 69, 83, - 128, 70, 85, 78, 69, 82, 65, 204, 71, 69, 68, 79, 76, 65, 128, 71, 69, - 77, 73, 78, 73, 128, 71, 69, 78, 69, 82, 73, 195, 71, 72, 65, 73, 78, 85, - 128, 71, 72, 65, 77, 65, 76, 128, 71, 82, 79, 85, 78, 68, 128, 71, 85, - 65, 82, 65, 78, 201, 72, 65, 70, 85, 75, 72, 128, 72, 69, 73, 83, 69, 73, - 128, 72, 69, 76, 77, 69, 84, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, - 82, 77, 69, 83, 128, 72, 69, 82, 85, 84, 85, 128, 72, 82, 89, 86, 78, 73, - 193, 72, 85, 73, 73, 84, 79, 128, 73, 45, 66, 69, 65, 77, 128, 73, 77, - 73, 83, 69, 79, 211, 73, 78, 71, 87, 65, 90, 128, 73, 78, 73, 78, 71, 85, - 128, 73, 78, 83, 69, 67, 84, 128, 73, 78, 83, 85, 76, 65, 210, 74, 79, - 73, 78, 69, 68, 128, 75, 65, 78, 65, 75, 79, 128, 75, 65, 78, 84, 65, 74, - 193, 75, 69, 70, 85, 76, 65, 128, 75, 69, 89, 67, 65, 80, 128, 75, 72, - 79, 77, 85, 84, 128, 75, 76, 73, 84, 79, 78, 128, 75, 79, 82, 85, 78, 65, + 70, 70, 73, 78, 128, 67, 79, 76, 85, 77, 78, 128, 67, 79, 78, 73, 67, 65, + 204, 67, 79, 82, 80, 83, 69, 128, 67, 85, 82, 82, 69, 78, 212, 68, 65, + 65, 68, 72, 85, 128, 68, 65, 76, 65, 84, 72, 128, 68, 65, 77, 65, 82, 85, + 128, 68, 65, 83, 69, 73, 65, 128, 68, 68, 65, 72, 65, 76, 128, 68, 69, + 76, 69, 84, 69, 128, 68, 69, 76, 80, 72, 73, 195, 68, 69, 78, 78, 69, 78, + 128, 68, 72, 65, 65, 76, 85, 128, 68, 72, 65, 82, 77, 65, 128, 68, 73, + 69, 83, 73, 83, 128, 68, 73, 77, 73, 68, 73, 193, 68, 73, 80, 80, 69, 82, + 128, 68, 73, 86, 79, 82, 67, 197, 68, 79, 76, 73, 85, 77, 128, 68, 79, + 84, 83, 45, 49, 128, 68, 79, 84, 83, 45, 50, 128, 68, 79, 84, 83, 45, 51, + 128, 68, 79, 84, 83, 45, 52, 128, 68, 79, 84, 83, 45, 53, 128, 68, 79, + 84, 83, 45, 54, 128, 68, 79, 84, 83, 45, 55, 128, 68, 79, 84, 83, 45, 56, + 128, 68, 85, 84, 73, 69, 83, 128, 69, 73, 71, 72, 84, 72, 128, 69, 78, + 65, 82, 88, 73, 211, 69, 88, 67, 69, 83, 83, 128, 69, 88, 73, 83, 84, 83, + 128, 70, 65, 67, 69, 45, 49, 128, 70, 65, 67, 69, 45, 50, 128, 70, 65, + 67, 69, 45, 51, 128, 70, 65, 67, 69, 45, 52, 128, 70, 65, 67, 69, 45, 53, + 128, 70, 65, 67, 69, 45, 54, 128, 70, 65, 77, 73, 76, 89, 128, 70, 65, + 84, 72, 69, 82, 128, 70, 69, 77, 65, 76, 69, 128, 70, 69, 82, 77, 65, 84, + 193, 70, 73, 70, 84, 69, 69, 206, 70, 76, 65, 71, 45, 49, 128, 70, 76, + 65, 71, 45, 50, 128, 70, 76, 65, 71, 45, 51, 128, 70, 76, 65, 71, 45, 52, + 128, 70, 76, 65, 71, 45, 53, 128, 70, 76, 73, 71, 72, 84, 128, 70, 76, + 79, 87, 69, 82, 128, 70, 79, 82, 67, 69, 83, 128, 70, 85, 78, 69, 82, 65, + 204, 71, 65, 83, 72, 65, 78, 128, 71, 69, 68, 79, 76, 65, 128, 71, 69, + 77, 73, 78, 73, 128, 71, 69, 78, 69, 82, 73, 195, 71, 69, 83, 72, 84, 73, + 206, 71, 72, 65, 73, 78, 85, 128, 71, 72, 65, 77, 65, 76, 128, 71, 82, + 65, 84, 69, 82, 128, 71, 82, 79, 85, 78, 68, 128, 71, 85, 65, 82, 65, 78, + 201, 71, 85, 82, 85, 83, 72, 128, 72, 65, 70, 85, 75, 72, 128, 72, 69, + 73, 83, 69, 73, 128, 72, 69, 82, 65, 69, 85, 205, 72, 69, 82, 77, 69, 83, + 128, 72, 69, 82, 85, 84, 85, 128, 72, 82, 89, 86, 78, 73, 193, 72, 85, + 73, 73, 84, 79, 128, 73, 45, 66, 69, 65, 77, 128, 73, 76, 73, 77, 77, 85, + 128, 73, 77, 73, 83, 69, 79, 211, 73, 78, 71, 87, 65, 90, 128, 73, 78, + 73, 78, 71, 85, 128, 73, 78, 83, 69, 67, 84, 128, 74, 79, 73, 78, 69, 68, + 128, 75, 65, 78, 65, 75, 79, 128, 75, 65, 78, 84, 65, 74, 193, 75, 69, + 70, 85, 76, 65, 128, 75, 69, 77, 80, 76, 73, 128, 75, 69, 77, 80, 85, 76, + 128, 75, 69, 89, 67, 65, 80, 128, 75, 72, 79, 77, 85, 84, 128, 75, 76, + 73, 84, 79, 78, 128, 75, 79, 82, 85, 78, 65, 128, 75, 87, 85, 51, 49, 56, 128, 75, 89, 65, 84, 72, 79, 211, 75, 89, 85, 82, 73, 73, 128, 76, 65, - 77, 65, 68, 72, 128, 76, 65, 84, 69, 82, 65, 204, 76, 69, 71, 73, 79, 78, - 128, 76, 69, 73, 77, 77, 65, 128, 76, 69, 84, 84, 69, 82, 128, 76, 73, - 77, 73, 84, 69, 196, 76, 73, 78, 69, 45, 49, 128, 76, 73, 78, 69, 45, 51, - 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 57, 128, 76, 73, - 78, 75, 73, 78, 199, 76, 79, 90, 69, 78, 71, 197, 77, 65, 73, 68, 69, 78, - 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 82, 75, 45, 51, 128, 77, 65, - 82, 75, 45, 52, 128, 77, 65, 82, 85, 75, 85, 128, 77, 65, 84, 82, 73, 88, - 128, 77, 65, 88, 73, 77, 65, 128, 77, 69, 68, 73, 85, 77, 128, 77, 69, - 71, 65, 76, 73, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, 84, 82, 73, 65, - 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 76, 76, 69, 84, 128, 77, 73, - 78, 73, 77, 65, 128, 77, 79, 68, 69, 76, 83, 128, 77, 79, 84, 72, 69, 82, - 128, 77, 85, 81, 68, 65, 77, 128, 78, 65, 85, 84, 72, 83, 128, 78, 69, - 78, 65, 78, 79, 128, 78, 73, 82, 85, 71, 85, 128, 78, 79, 75, 72, 85, 75, - 128, 78, 79, 77, 73, 78, 65, 204, 78, 85, 77, 66, 69, 82, 128, 78, 85, - 78, 65, 86, 85, 212, 79, 66, 69, 76, 79, 83, 128, 79, 77, 65, 76, 79, 78, - 128, 79, 80, 69, 78, 45, 80, 128, 79, 80, 80, 79, 83, 69, 128, 79, 82, - 73, 71, 73, 78, 128, 79, 84, 72, 65, 76, 65, 206, 80, 65, 76, 85, 84, 65, + 72, 83, 72, 85, 128, 76, 65, 77, 65, 68, 72, 128, 76, 65, 84, 69, 82, 65, + 204, 76, 69, 71, 73, 79, 78, 128, 76, 69, 73, 77, 77, 65, 128, 76, 69, + 84, 84, 69, 82, 128, 76, 73, 76, 73, 84, 72, 128, 76, 73, 77, 73, 84, 69, + 196, 76, 73, 77, 77, 85, 50, 128, 76, 73, 78, 69, 45, 49, 128, 76, 73, + 78, 69, 45, 51, 128, 76, 73, 78, 69, 45, 55, 128, 76, 73, 78, 69, 45, 57, + 128, 76, 73, 78, 75, 73, 78, 199, 76, 79, 90, 69, 78, 71, 197, 77, 65, + 73, 68, 69, 78, 128, 77, 65, 76, 84, 69, 83, 197, 77, 65, 82, 75, 45, 51, + 128, 77, 65, 82, 75, 45, 52, 128, 77, 65, 82, 85, 75, 85, 128, 77, 65, + 84, 82, 73, 88, 128, 77, 65, 88, 73, 77, 65, 128, 77, 69, 68, 73, 85, 77, + 128, 77, 69, 71, 65, 76, 73, 128, 77, 69, 82, 75, 72, 65, 128, 77, 69, + 84, 82, 73, 65, 128, 77, 73, 68, 76, 73, 78, 197, 77, 73, 76, 76, 69, 84, + 128, 77, 73, 78, 73, 77, 65, 128, 77, 79, 68, 69, 76, 83, 128, 77, 79, + 84, 72, 69, 82, 128, 77, 85, 78, 83, 85, 66, 128, 77, 85, 81, 68, 65, 77, + 128, 77, 85, 82, 71, 85, 50, 128, 78, 65, 85, 84, 72, 83, 128, 78, 69, + 78, 65, 78, 79, 128, 78, 69, 85, 84, 69, 82, 128, 78, 73, 78, 68, 65, 50, + 128, 78, 73, 82, 85, 71, 85, 128, 78, 79, 75, 72, 85, 75, 128, 78, 79, + 77, 73, 78, 65, 204, 78, 85, 77, 66, 69, 82, 128, 78, 85, 78, 65, 86, 85, + 212, 79, 66, 69, 76, 79, 83, 128, 79, 77, 65, 76, 79, 78, 128, 79, 80, + 69, 78, 45, 80, 128, 79, 80, 80, 79, 83, 69, 128, 79, 82, 67, 72, 73, 68, + 128, 79, 82, 73, 71, 73, 78, 128, 79, 84, 72, 65, 76, 65, 206, 80, 65, + 76, 76, 65, 83, 128, 80, 65, 76, 85, 84, 65, 128, 80, 65, 77, 65, 68, 65, 128, 80, 65, 83, 72, 84, 65, 128, 80, 69, 78, 73, 72, 73, 128, 80, 69, 82, 83, 79, 78, 128, 80, 73, 75, 85, 82, 85, 128, 80, 73, 80, 73, 78, 71, 128, 80, 73, 83, 67, 69, 83, 128, 80, 79, 73, 78, 84, 79, 128, 80, 82, 69, 67, 69, 68, 197, 80, 82, 69, 70, 65, 67, 197, 80, 82, 79, 68, 85, 67, 212, 80, 85, 82, 73, 84, 89, 128, 80, 85, 83, 72, 73, 78, 199, 81, 69, - 84, 65, 78, 65, 128, 81, 85, 66, 85, 84, 83, 128, 82, 69, 80, 69, 65, 84, - 128, 82, 73, 84, 85, 65, 76, 128, 82, 85, 78, 79, 85, 84, 128, 83, 65, - 65, 68, 72, 85, 128, 83, 65, 74, 68, 65, 72, 128, 83, 65, 77, 69, 75, 72, - 128, 83, 65, 78, 78, 89, 65, 128, 83, 65, 84, 85, 82, 78, 128, 83, 67, - 65, 76, 69, 83, 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 73, 80, 84, - 128, 83, 69, 65, 71, 85, 76, 204, 83, 69, 67, 79, 78, 68, 128, 83, 69, - 67, 82, 69, 84, 128, 83, 69, 67, 84, 79, 82, 128, 83, 69, 73, 83, 77, 65, - 128, 83, 69, 82, 86, 73, 67, 197, 83, 69, 86, 69, 78, 84, 217, 83, 72, - 65, 68, 68, 65, 128, 83, 72, 65, 75, 84, 73, 128, 83, 72, 69, 69, 78, 85, - 128, 83, 72, 79, 82, 84, 83, 128, 83, 72, 85, 70, 70, 76, 197, 83, 73, - 67, 75, 76, 69, 128, 83, 73, 88, 84, 72, 83, 128, 83, 76, 79, 87, 76, 89, - 128, 83, 80, 65, 84, 72, 73, 128, 83, 80, 73, 82, 73, 84, 128, 83, 80, - 82, 79, 85, 84, 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 82, 65, 73, 70, - 128, 83, 84, 82, 73, 68, 69, 128, 83, 84, 82, 79, 75, 69, 211, 83, 85, - 66, 73, 84, 79, 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 82, 70, 65, 67, - 197, 83, 87, 79, 82, 68, 83, 128, 83, 89, 78, 65, 70, 73, 128, 83, 89, - 79, 85, 87, 65, 128, 84, 65, 84, 87, 69, 69, 204, 84, 65, 85, 82, 85, 83, + 84, 65, 78, 65, 128, 81, 85, 66, 85, 84, 83, 128, 82, 65, 77, 66, 65, 84, + 128, 82, 69, 80, 69, 65, 84, 128, 82, 73, 84, 85, 65, 76, 128, 82, 85, + 78, 79, 85, 84, 128, 83, 65, 65, 68, 72, 85, 128, 83, 65, 74, 68, 65, 72, + 128, 83, 65, 77, 69, 75, 72, 128, 83, 65, 78, 71, 65, 50, 128, 83, 65, + 78, 78, 89, 65, 128, 83, 65, 84, 85, 82, 78, 128, 83, 67, 65, 76, 69, 83, + 128, 83, 67, 82, 69, 69, 78, 128, 83, 67, 82, 73, 80, 84, 128, 83, 69, + 65, 71, 85, 76, 204, 83, 69, 67, 79, 78, 68, 128, 83, 69, 67, 82, 69, 84, + 128, 83, 69, 67, 84, 79, 82, 128, 83, 69, 73, 83, 77, 65, 128, 83, 69, + 82, 86, 73, 67, 197, 83, 69, 86, 69, 78, 84, 217, 83, 69, 88, 84, 65, 78, + 211, 83, 72, 65, 68, 68, 65, 128, 83, 72, 65, 75, 84, 73, 128, 83, 72, + 69, 69, 78, 85, 128, 83, 72, 69, 83, 72, 50, 128, 83, 72, 69, 83, 72, 73, + 199, 83, 72, 73, 69, 76, 68, 128, 83, 72, 73, 78, 73, 71, 128, 83, 72, + 79, 82, 84, 83, 128, 83, 72, 85, 66, 85, 82, 128, 83, 72, 85, 70, 70, 76, + 197, 83, 73, 67, 75, 76, 69, 128, 83, 73, 76, 73, 81, 85, 193, 83, 73, + 88, 84, 72, 83, 128, 83, 76, 79, 87, 76, 89, 128, 83, 80, 65, 67, 73, 78, + 199, 83, 80, 65, 84, 72, 73, 128, 83, 80, 73, 82, 65, 76, 128, 83, 80, + 73, 82, 73, 84, 128, 83, 80, 82, 73, 78, 71, 128, 83, 80, 82, 79, 85, 84, + 128, 83, 84, 65, 86, 82, 79, 211, 83, 84, 82, 65, 73, 70, 128, 83, 84, + 82, 73, 68, 69, 128, 83, 84, 82, 79, 75, 69, 211, 83, 85, 66, 73, 84, 79, + 128, 83, 85, 67, 67, 69, 69, 196, 83, 85, 77, 65, 83, 72, 128, 83, 85, + 77, 77, 69, 82, 128, 83, 85, 82, 70, 65, 67, 197, 83, 87, 79, 82, 68, 83, + 128, 83, 89, 78, 65, 70, 73, 128, 83, 89, 79, 85, 87, 65, 128, 84, 65, + 76, 73, 78, 71, 128, 84, 65, 84, 87, 69, 69, 204, 84, 65, 85, 82, 85, 83, 128, 84, 69, 78, 85, 84, 79, 128, 84, 72, 65, 65, 76, 85, 128, 84, 72, 65, 72, 65, 78, 128, 84, 72, 65, 78, 78, 65, 128, 84, 72, 73, 82, 68, 83, 128, 84, 72, 73, 85, 84, 72, 128, 84, 73, 80, 69, 72, 65, 128, 84, 79, - 78, 69, 45, 50, 128, 84, 79, 78, 69, 45, 51, 128, 84, 79, 78, 69, 45, 52, - 128, 84, 79, 78, 69, 45, 53, 128, 84, 79, 78, 69, 45, 54, 128, 84, 82, - 73, 80, 76, 73, 128, 84, 82, 73, 80, 79, 68, 128, 84, 83, 72, 85, 71, 83, - 128, 84, 84, 69, 72, 69, 72, 128, 84, 85, 82, 66, 65, 78, 128, 85, 80, - 82, 73, 71, 72, 212, 85, 80, 87, 65, 82, 68, 128, 85, 82, 65, 78, 85, 83, - 128, 86, 65, 76, 76, 69, 89, 128, 86, 65, 82, 69, 73, 65, 201, 86, 65, - 82, 73, 65, 78, 212, 86, 65, 82, 73, 75, 65, 128, 86, 73, 67, 84, 79, 82, - 217, 86, 73, 82, 73, 65, 77, 128, 86, 73, 83, 65, 82, 71, 193, 86, 79, - 76, 84, 65, 71, 197, 87, 65, 82, 78, 73, 78, 199, 87, 69, 65, 80, 79, 78, - 128, 87, 72, 69, 69, 76, 69, 196, 87, 82, 73, 84, 73, 78, 199, 89, 70, - 69, 83, 73, 83, 128, 89, 79, 45, 89, 69, 79, 128, 89, 80, 83, 73, 76, 73, - 128, 83, 89, 76, 79, 84, 201, 67, 65, 82, 79, 78, 128, 66, 82, 69, 86, - 69, 128, 66, 76, 65, 67, 75, 128, 77, 73, 68, 68, 76, 197, 65, 67, 67, - 69, 78, 212, 84, 82, 73, 80, 76, 197, 68, 79, 84, 84, 69, 196, 83, 84, - 82, 79, 75, 197, 86, 69, 83, 83, 69, 204, 69, 81, 85, 65, 76, 211, 71, - 79, 84, 72, 73, 195, 72, 69, 65, 86, 89, 128, 83, 73, 78, 71, 76, 197, - 66, 76, 79, 67, 75, 128, 77, 65, 78, 67, 72, 213, 84, 79, 78, 79, 83, - 128, 66, 79, 84, 84, 79, 205, 70, 84, 72, 79, 82, 193, 77, 69, 68, 73, - 85, 205, 79, 77, 69, 71, 65, 128, 83, 73, 71, 77, 65, 128, 65, 76, 80, - 72, 65, 128, 67, 76, 79, 83, 69, 196, 68, 65, 83, 73, 65, 128, 83, 85, - 66, 83, 69, 212, 67, 79, 77, 77, 65, 128, 68, 69, 76, 84, 65, 128, 86, - 85, 76, 71, 65, 210, 67, 79, 82, 78, 69, 210, 69, 81, 85, 65, 76, 128, - 76, 65, 77, 68, 65, 128, 67, 82, 79, 83, 83, 128, 73, 67, 72, 79, 83, - 128, 83, 65, 89, 73, 83, 201, 84, 72, 69, 84, 65, 128, 87, 72, 73, 84, - 69, 128, 65, 76, 77, 79, 83, 212, 75, 65, 80, 80, 65, 128, 77, 65, 67, - 82, 79, 206, 78, 85, 66, 73, 65, 206, 89, 45, 67, 82, 69, 197, 66, 69, - 83, 73, 68, 197, 67, 69, 78, 84, 82, 197, 83, 72, 65, 68, 68, 193, 84, - 87, 69, 78, 84, 217, 69, 65, 82, 84, 72, 128, 70, 73, 70, 84, 89, 128, - 76, 69, 78, 71, 84, 200, 78, 79, 82, 77, 65, 204, 84, 72, 73, 82, 84, - 217, 68, 65, 83, 72, 69, 196, 68, 73, 71, 82, 65, 205, 80, 82, 73, 77, - 69, 128, 85, 78, 73, 79, 78, 128, 67, 65, 78, 68, 82, 193, 82, 69, 80, - 69, 65, 212, 84, 69, 77, 80, 85, 211, 84, 85, 65, 82, 69, 199, 76, 85, - 78, 65, 84, 197, 82, 73, 83, 73, 78, 199, 82, 84, 65, 71, 83, 128, 68, - 73, 69, 83, 73, 211, 68, 73, 80, 76, 73, 128, 73, 78, 68, 69, 88, 128, - 75, 79, 80, 80, 65, 128, 78, 65, 66, 76, 65, 128, 78, 85, 75, 84, 65, - 128, 79, 84, 84, 65, 86, 193, 82, 65, 73, 83, 69, 196, 83, 67, 72, 87, - 65, 128, 83, 72, 73, 77, 65, 128, 83, 84, 65, 70, 70, 128, 89, 70, 69, - 83, 73, 211, 66, 65, 76, 76, 79, 212, 66, 65, 82, 82, 69, 197, 67, 76, - 73, 67, 75, 128, 67, 85, 66, 69, 68, 128, 67, 85, 82, 86, 69, 196, 70, - 69, 77, 65, 76, 197, 70, 69, 78, 67, 69, 128, 75, 79, 82, 69, 65, 206, - 76, 69, 73, 77, 77, 193, 76, 73, 84, 84, 76, 197, 78, 69, 83, 84, 69, - 196, 85, 73, 71, 72, 85, 210, 87, 65, 84, 69, 82, 128, 87, 69, 73, 71, - 72, 212, 65, 76, 65, 89, 72, 197, 66, 65, 83, 83, 65, 128, 66, 82, 73, - 68, 71, 197, 67, 72, 82, 79, 77, 193, 68, 65, 78, 68, 65, 128, 68, 69, - 71, 82, 69, 197, 68, 69, 86, 73, 67, 197, 68, 79, 76, 76, 65, 210, 80, - 65, 73, 82, 69, 196, 80, 65, 84, 65, 72, 128, 80, 73, 69, 67, 69, 128, - 80, 79, 69, 84, 82, 217, 83, 65, 77, 80, 73, 128, 83, 75, 69, 87, 69, - 196, 84, 73, 77, 69, 83, 128, 84, 84, 69, 72, 69, 200, 87, 73, 71, 71, - 76, 217, 90, 73, 71, 90, 65, 199, 65, 82, 79, 85, 78, 196, 65, 82, 83, - 69, 79, 211, 66, 82, 79, 75, 69, 206, 67, 65, 82, 69, 84, 128, 67, 76, - 73, 70, 70, 128, 67, 76, 79, 84, 72, 128, 68, 65, 71, 69, 83, 200, 68, - 65, 77, 77, 65, 128, 70, 76, 79, 82, 65, 204, 70, 79, 82, 84, 89, 128, - 72, 69, 65, 82, 84, 128, 76, 65, 77, 69, 68, 128, 77, 65, 80, 73, 81, - 128, 78, 45, 67, 82, 69, 197, 80, 79, 83, 84, 65, 204, 80, 84, 72, 65, - 72, 193, 83, 67, 72, 69, 77, 193, 83, 69, 71, 79, 76, 128, 83, 72, 65, - 68, 69, 128, 83, 77, 65, 76, 76, 128, 83, 84, 82, 69, 83, 211, 84, 72, - 79, 82, 78, 128, 84, 73, 84, 76, 79, 128, 84, 79, 79, 84, 72, 128, 86, - 65, 82, 69, 73, 193, 87, 72, 69, 65, 84, 128, 90, 81, 65, 80, 72, 193, - 65, 76, 65, 80, 72, 128, 66, 69, 65, 77, 69, 196, 66, 69, 82, 66, 69, - 210, 66, 73, 78, 65, 82, 217, 66, 73, 78, 68, 73, 128, 66, 79, 87, 84, - 73, 197, 67, 72, 69, 67, 75, 128, 67, 85, 82, 86, 69, 128, 68, 65, 76, - 68, 65, 128, 68, 65, 76, 69, 84, 128, 68, 68, 65, 72, 65, 204, 68, 69, - 65, 84, 72, 128, 68, 79, 66, 82, 79, 128, 68, 90, 69, 76, 79, 128, 69, - 84, 69, 82, 79, 206, 70, 65, 67, 84, 79, 210, 70, 73, 71, 85, 82, 197, - 70, 76, 79, 79, 82, 128, 70, 79, 82, 75, 69, 196, 70, 82, 73, 84, 85, - 128, 71, 65, 80, 80, 69, 196, 71, 69, 78, 73, 75, 201, 71, 72, 65, 73, - 78, 128, 71, 72, 79, 83, 84, 128, 71, 72, 85, 78, 78, 193, 71, 78, 89, - 73, 83, 128, 71, 79, 82, 71, 73, 128, 72, 65, 77, 77, 69, 210, 72, 65, - 77, 90, 65, 128, 72, 73, 82, 73, 81, 128, 72, 79, 76, 65, 77, 128, 72, - 79, 82, 83, 69, 128, 72, 87, 65, 73, 82, 128, 73, 65, 85, 68, 65, 128, - 75, 65, 90, 65, 75, 200, 75, 73, 89, 69, 79, 203, 75, 76, 65, 83, 77, - 193, 76, 65, 66, 79, 82, 128, 76, 65, 82, 71, 69, 210, 76, 65, 85, 76, - 65, 128, 76, 69, 83, 83, 69, 210, 77, 69, 84, 65, 76, 128, 77, 79, 85, - 84, 72, 128, 78, 65, 83, 72, 73, 128, 78, 79, 84, 69, 83, 128, 79, 71, - 79, 78, 69, 203, 79, 76, 73, 71, 79, 206, 79, 82, 78, 65, 84, 197, 80, - 73, 65, 83, 77, 193, 80, 76, 65, 78, 67, 203, 80, 79, 73, 78, 84, 128, - 80, 79, 87, 69, 82, 128, 80, 82, 79, 84, 79, 211, 81, 65, 84, 65, 78, - 128, 81, 85, 69, 69, 78, 128, 81, 85, 73, 76, 76, 128, 82, 69, 65, 67, - 72, 128, 82, 71, 89, 65, 78, 128, 82, 73, 84, 83, 73, 128, 83, 67, 82, - 69, 69, 206, 83, 69, 71, 78, 79, 128, 83, 69, 82, 73, 70, 211, 83, 69, - 83, 65, 77, 197, 83, 72, 65, 78, 71, 128, 83, 72, 65, 82, 80, 128, 83, - 72, 67, 72, 65, 128, 83, 72, 69, 69, 80, 128, 83, 72, 69, 76, 70, 128, - 83, 72, 69, 76, 76, 128, 83, 72, 79, 82, 84, 211, 83, 72, 87, 65, 65, - 128, 83, 72, 87, 73, 73, 128, 83, 72, 87, 79, 79, 128, 83, 73, 71, 78, - 83, 128, 83, 73, 78, 68, 72, 201, 83, 73, 88, 84, 89, 128, 83, 76, 79, - 86, 79, 128, 83, 80, 69, 65, 82, 128, 83, 80, 73, 82, 73, 212, 83, 84, - 79, 67, 75, 128, 83, 84, 85, 68, 89, 128, 83, 85, 75, 85, 78, 128, 84, - 65, 78, 78, 69, 196, 84, 69, 76, 79, 85, 211, 84, 72, 87, 65, 65, 128, - 84, 73, 71, 69, 82, 128, 84, 73, 75, 69, 85, 212, 84, 82, 85, 78, 75, - 128, 84, 83, 65, 68, 73, 128, 84, 83, 72, 69, 71, 128, 84, 83, 72, 69, - 83, 128, 84, 87, 69, 76, 86, 197, 87, 65, 84, 67, 72, 128, 87, 79, 77, - 65, 78, 128, 89, 69, 83, 84, 85, 128, 89, 79, 45, 89, 65, 128, 89, 85, - 45, 89, 69, 128, 90, 90, 73, 69, 84, 128, 45, 67, 72, 65, 76, 128, 45, - 75, 72, 89, 85, 196, 45, 80, 72, 82, 85, 128, 65, 68, 68, 65, 75, 128, - 65, 71, 65, 73, 78, 128, 65, 72, 83, 68, 65, 128, 65, 76, 73, 70, 85, - 128, 65, 77, 79, 85, 78, 212, 65, 78, 80, 69, 65, 128, 65, 80, 65, 82, - 84, 128, 65, 80, 82, 73, 76, 128, 65, 82, 69, 80, 65, 128, 65, 82, 73, - 69, 83, 128, 65, 82, 76, 65, 85, 199, 65, 82, 79, 85, 82, 193, 65, 82, - 82, 65, 89, 128, 65, 82, 84, 65, 66, 197, 66, 66, 73, 69, 80, 128, 66, - 66, 73, 69, 84, 128, 66, 66, 73, 69, 88, 128, 66, 66, 85, 79, 80, 128, - 66, 66, 85, 79, 88, 128, 66, 66, 85, 82, 88, 128, 66, 69, 69, 84, 65, - 128, 66, 69, 70, 79, 82, 197, 66, 69, 72, 69, 72, 128, 66, 69, 73, 84, - 72, 128, 66, 72, 69, 84, 72, 128, 66, 73, 82, 71, 65, 128, 66, 73, 84, - 73, 78, 199, 66, 76, 65, 78, 75, 128, 66, 76, 79, 79, 68, 128, 66, 82, - 65, 67, 69, 128, 66, 82, 65, 78, 67, 200, 66, 82, 69, 65, 84, 200, 66, - 82, 85, 83, 72, 128, 66, 83, 84, 65, 82, 128, 66, 85, 76, 76, 69, 212, - 67, 65, 77, 78, 85, 195, 67, 65, 78, 67, 69, 204, 67, 65, 85, 68, 65, - 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 69, 69, 128, 67, 69, 65, 76, - 67, 128, 67, 69, 73, 82, 84, 128, 67, 72, 65, 68, 65, 128, 67, 72, 65, - 73, 82, 128, 67, 72, 65, 78, 71, 128, 67, 72, 73, 76, 68, 128, 67, 72, - 73, 78, 71, 128, 67, 72, 79, 75, 69, 128, 67, 72, 85, 76, 65, 128, 67, - 72, 85, 79, 80, 128, 67, 72, 85, 79, 84, 128, 67, 72, 85, 79, 88, 128, - 67, 72, 85, 82, 88, 128, 67, 72, 89, 82, 88, 128, 67, 76, 79, 85, 68, - 128, 67, 79, 69, 78, 71, 128, 67, 79, 76, 79, 82, 128, 67, 79, 77, 69, - 84, 128, 67, 79, 77, 73, 78, 199, 67, 79, 77, 77, 79, 206, 67, 79, 86, - 69, 82, 128, 67, 82, 69, 68, 73, 212, 67, 82, 79, 73, 88, 128, 68, 65, - 65, 83, 85, 128, 68, 65, 76, 65, 84, 200, 68, 65, 82, 71, 65, 128, 68, - 65, 86, 73, 68, 128, 68, 68, 68, 72, 65, 128, 68, 68, 73, 69, 80, 128, - 68, 68, 73, 69, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, 88, - 128, 68, 68, 85, 82, 88, 128, 68, 69, 76, 69, 84, 197, 68, 69, 82, 69, - 84, 128, 68, 73, 70, 65, 84, 128, 68, 73, 80, 84, 69, 128, 68, 73, 86, - 73, 68, 197, 68, 79, 77, 65, 73, 206, 68, 79, 85, 66, 84, 128, 68, 82, - 73, 86, 69, 128, 68, 82, 79, 80, 83, 128, 69, 69, 75, 65, 65, 128, 69, - 73, 71, 72, 84, 217, 69, 76, 69, 86, 69, 206, 69, 76, 73, 70, 73, 128, - 69, 78, 84, 69, 82, 128, 69, 79, 76, 72, 88, 128, 69, 81, 85, 73, 68, - 128, 69, 85, 45, 69, 85, 128, 69, 88, 73, 83, 84, 128, 70, 65, 65, 70, - 85, 128, 70, 65, 73, 72, 85, 128, 70, 65, 84, 72, 65, 128, 70, 69, 65, - 82, 78, 128, 70, 72, 84, 79, 82, 193, 70, 73, 69, 76, 68, 128, 70, 73, - 70, 84, 72, 128, 70, 73, 71, 72, 84, 128, 70, 73, 76, 76, 69, 196, 70, - 73, 78, 73, 84, 197, 70, 76, 79, 87, 69, 210, 70, 76, 85, 84, 69, 128, - 70, 79, 76, 76, 89, 128, 70, 79, 82, 67, 69, 128, 70, 79, 82, 84, 69, - 128, 70, 82, 65, 77, 69, 128, 70, 82, 69, 78, 67, 200, 70, 82, 79, 87, - 78, 128, 71, 65, 65, 70, 85, 128, 71, 65, 68, 79, 76, 128, 71, 65, 77, - 65, 76, 128, 71, 65, 77, 76, 65, 128, 71, 65, 78, 77, 65, 128, 71, 65, - 82, 79, 78, 128, 71, 69, 78, 84, 76, 197, 71, 69, 82, 69, 83, 200, 71, - 69, 82, 77, 65, 206, 71, 71, 73, 69, 80, 128, 71, 71, 73, 69, 88, 128, - 71, 71, 85, 79, 80, 128, 71, 71, 85, 79, 84, 128, 71, 71, 85, 79, 88, - 128, 71, 71, 85, 82, 88, 128, 71, 71, 87, 65, 65, 128, 71, 71, 87, 69, - 69, 128, 71, 73, 77, 69, 76, 128, 71, 73, 78, 73, 73, 128, 71, 76, 69, - 73, 67, 200, 71, 82, 65, 67, 69, 128, 71, 82, 65, 73, 78, 128, 71, 82, - 65, 83, 83, 128, 72, 45, 84, 89, 80, 197, 72, 65, 45, 72, 65, 128, 72, + 78, 69, 45, 49, 128, 84, 82, 73, 80, 76, 73, 128, 84, 82, 73, 80, 79, 68, + 128, 84, 83, 72, 79, 79, 75, 128, 84, 83, 72, 85, 71, 83, 128, 84, 84, + 69, 72, 69, 72, 128, 84, 85, 82, 66, 65, 78, 128, 85, 80, 82, 73, 71, 72, + 212, 85, 80, 87, 65, 82, 68, 128, 85, 82, 65, 78, 85, 83, 128, 85, 83, + 72, 85, 77, 88, 128, 86, 65, 76, 76, 69, 89, 128, 86, 65, 82, 69, 73, 65, + 201, 86, 65, 82, 73, 75, 65, 128, 86, 73, 67, 84, 79, 82, 217, 86, 73, + 82, 73, 65, 77, 128, 86, 73, 83, 65, 82, 71, 193, 86, 79, 76, 84, 65, 71, + 197, 87, 65, 82, 78, 73, 78, 199, 87, 69, 65, 80, 79, 78, 128, 87, 72, + 69, 69, 76, 69, 196, 87, 73, 78, 84, 69, 82, 128, 87, 82, 73, 84, 73, 78, + 199, 89, 65, 75, 65, 83, 72, 128, 89, 70, 69, 83, 73, 83, 128, 89, 79, + 45, 89, 69, 79, 128, 89, 80, 83, 73, 76, 73, 128, 84, 72, 65, 65, 78, + 193, 67, 65, 82, 73, 65, 206, 86, 65, 82, 73, 65, 128, 83, 89, 76, 79, + 84, 201, 67, 65, 82, 79, 78, 128, 77, 73, 68, 68, 76, 197, 66, 76, 65, + 67, 75, 128, 82, 69, 74, 65, 78, 199, 65, 67, 67, 69, 78, 212, 84, 82, + 73, 80, 76, 197, 68, 79, 84, 84, 69, 196, 69, 81, 85, 65, 76, 211, 76, + 89, 67, 73, 65, 206, 86, 69, 83, 83, 69, 204, 76, 89, 68, 73, 65, 206, + 75, 73, 83, 73, 77, 181, 67, 76, 79, 83, 69, 196, 66, 79, 84, 84, 79, + 205, 77, 69, 68, 73, 85, 205, 83, 73, 78, 71, 76, 197, 72, 69, 65, 86, + 89, 128, 77, 65, 78, 67, 72, 213, 66, 76, 79, 67, 75, 128, 67, 79, 77, + 77, 65, 128, 79, 77, 69, 71, 65, 128, 84, 79, 78, 79, 83, 128, 65, 76, + 80, 72, 65, 128, 70, 84, 72, 79, 82, 193, 83, 73, 71, 77, 65, 128, 68, + 65, 83, 73, 65, 128, 68, 69, 76, 84, 65, 128, 83, 85, 66, 83, 69, 212, + 65, 76, 77, 79, 83, 212, 67, 79, 82, 78, 69, 210, 86, 85, 76, 71, 65, + 210, 69, 81, 85, 65, 76, 128, 76, 65, 77, 68, 65, 128, 77, 65, 67, 82, + 79, 206, 67, 82, 79, 83, 83, 128, 73, 67, 72, 79, 83, 128, 78, 73, 78, + 68, 65, 178, 83, 65, 89, 73, 83, 201, 84, 72, 69, 84, 65, 128, 87, 72, + 73, 84, 69, 128, 75, 65, 80, 80, 65, 128, 78, 85, 66, 73, 65, 206, 89, + 45, 67, 82, 69, 197, 66, 69, 83, 73, 68, 197, 67, 69, 78, 84, 82, 197, + 83, 72, 65, 68, 68, 193, 84, 87, 69, 78, 84, 217, 69, 65, 82, 84, 72, + 128, 70, 73, 70, 84, 89, 128, 76, 69, 78, 71, 84, 200, 76, 73, 84, 84, + 76, 197, 76, 85, 78, 65, 84, 197, 78, 79, 82, 77, 65, 204, 82, 65, 73, + 83, 69, 196, 84, 72, 73, 82, 84, 217, 67, 65, 78, 68, 82, 193, 68, 65, + 78, 68, 65, 128, 68, 65, 83, 72, 69, 196, 68, 73, 71, 82, 65, 205, 71, + 69, 83, 72, 50, 128, 80, 82, 73, 77, 69, 128, 82, 73, 83, 73, 78, 199, + 83, 72, 65, 82, 50, 128, 85, 78, 73, 79, 78, 128, 82, 69, 80, 69, 65, + 212, 84, 69, 77, 80, 85, 211, 84, 85, 65, 82, 69, 199, 66, 65, 82, 82, + 69, 197, 78, 85, 75, 84, 65, 128, 80, 79, 87, 69, 82, 211, 82, 84, 65, + 71, 83, 128, 83, 65, 83, 65, 75, 128, 67, 72, 73, 76, 76, 213, 68, 73, + 69, 83, 73, 211, 68, 73, 80, 76, 73, 128, 73, 78, 68, 69, 88, 128, 75, + 79, 80, 80, 65, 128, 78, 65, 66, 76, 65, 128, 79, 84, 84, 65, 86, 193, + 83, 65, 77, 80, 73, 128, 83, 67, 72, 87, 65, 128, 83, 72, 73, 77, 65, + 128, 83, 84, 65, 70, 70, 128, 89, 70, 69, 83, 73, 211, 66, 65, 76, 76, + 79, 212, 66, 82, 79, 75, 69, 206, 67, 76, 73, 67, 75, 128, 67, 85, 66, + 69, 68, 128, 67, 85, 82, 86, 69, 196, 70, 69, 77, 65, 76, 197, 70, 69, + 78, 67, 69, 128, 71, 69, 83, 72, 85, 128, 75, 65, 83, 75, 65, 204, 75, + 79, 82, 69, 65, 206, 76, 65, 71, 65, 66, 128, 76, 69, 73, 77, 77, 193, + 78, 69, 83, 84, 69, 196, 83, 72, 65, 82, 85, 128, 83, 84, 82, 69, 83, + 211, 84, 73, 77, 69, 83, 128, 85, 73, 71, 72, 85, 210, 87, 65, 84, 69, + 82, 128, 87, 69, 73, 71, 72, 212, 90, 73, 71, 90, 65, 199, 65, 76, 65, + 89, 72, 197, 66, 65, 76, 65, 71, 128, 66, 65, 83, 83, 65, 128, 66, 82, + 73, 68, 71, 197, 67, 72, 82, 79, 77, 193, 68, 65, 77, 77, 65, 128, 68, + 69, 71, 82, 69, 197, 68, 69, 86, 73, 67, 197, 68, 79, 76, 76, 65, 210, + 68, 90, 69, 76, 79, 128, 69, 82, 73, 78, 50, 128, 76, 85, 71, 65, 76, + 128, 80, 65, 73, 82, 69, 196, 80, 65, 84, 65, 72, 128, 80, 73, 69, 67, + 69, 128, 80, 79, 69, 84, 82, 217, 81, 85, 73, 76, 76, 128, 83, 75, 69, + 87, 69, 196, 84, 84, 69, 72, 69, 200, 87, 73, 71, 71, 76, 217, 65, 82, + 79, 85, 78, 196, 65, 82, 83, 69, 79, 211, 66, 85, 76, 85, 71, 128, 67, + 65, 82, 69, 84, 128, 67, 76, 73, 70, 70, 128, 67, 76, 79, 84, 72, 128, + 68, 65, 71, 69, 83, 200, 68, 74, 69, 82, 86, 128, 70, 76, 79, 82, 65, + 204, 70, 79, 82, 84, 89, 128, 72, 69, 65, 82, 84, 128, 76, 65, 77, 69, + 68, 128, 77, 65, 80, 73, 81, 128, 78, 45, 67, 82, 69, 197, 79, 71, 79, + 78, 69, 203, 80, 79, 73, 78, 84, 128, 80, 79, 83, 84, 65, 204, 80, 84, + 72, 65, 72, 193, 83, 67, 72, 69, 77, 193, 83, 69, 71, 79, 76, 128, 83, + 72, 65, 68, 69, 128, 83, 72, 67, 72, 65, 128, 83, 77, 65, 76, 76, 128, + 84, 65, 76, 73, 78, 199, 84, 72, 73, 82, 68, 211, 84, 72, 79, 82, 78, + 128, 84, 73, 84, 76, 79, 128, 84, 79, 79, 84, 72, 128, 84, 83, 72, 69, + 71, 128, 86, 65, 82, 69, 73, 193, 87, 72, 69, 65, 84, 128, 87, 79, 77, + 65, 78, 128, 90, 81, 65, 80, 72, 193, 65, 76, 65, 80, 72, 128, 66, 69, + 65, 77, 69, 196, 66, 69, 82, 66, 69, 210, 66, 73, 78, 65, 82, 217, 66, + 73, 78, 68, 73, 128, 66, 79, 87, 84, 73, 197, 67, 72, 69, 67, 75, 128, + 67, 72, 73, 76, 68, 128, 67, 85, 82, 86, 69, 128, 68, 65, 76, 68, 65, + 128, 68, 65, 76, 69, 84, 128, 68, 68, 65, 72, 65, 204, 68, 69, 65, 84, + 72, 128, 68, 79, 66, 82, 79, 128, 69, 83, 72, 69, 51, 128, 69, 84, 69, + 82, 79, 206, 70, 65, 67, 84, 79, 210, 70, 65, 84, 72, 65, 128, 70, 73, + 71, 85, 82, 197, 70, 76, 79, 79, 82, 128, 70, 76, 85, 84, 69, 128, 70, + 79, 82, 75, 69, 196, 70, 82, 73, 84, 85, 128, 71, 65, 80, 80, 69, 196, + 71, 69, 78, 73, 75, 201, 71, 72, 65, 73, 78, 128, 71, 72, 79, 83, 84, + 128, 71, 72, 85, 78, 78, 193, 71, 78, 89, 73, 83, 128, 71, 79, 82, 71, + 73, 128, 72, 65, 77, 77, 69, 210, 72, 65, 77, 90, 65, 128, 72, 73, 82, + 73, 81, 128, 72, 79, 76, 65, 77, 128, 72, 79, 82, 83, 69, 128, 72, 87, + 65, 73, 82, 128, 72, 89, 80, 72, 69, 206, 73, 65, 85, 68, 65, 128, 75, + 65, 83, 82, 65, 128, 75, 65, 90, 65, 75, 200, 75, 73, 89, 69, 79, 203, + 75, 76, 65, 83, 77, 193, 76, 65, 66, 79, 82, 128, 76, 65, 71, 65, 82, + 128, 76, 65, 82, 71, 69, 210, 76, 65, 85, 76, 65, 128, 76, 69, 78, 71, + 65, 128, 76, 69, 83, 83, 69, 210, 76, 79, 78, 71, 65, 128, 77, 65, 83, + 72, 50, 128, 77, 69, 84, 65, 76, 128, 77, 79, 85, 84, 72, 128, 78, 65, + 83, 72, 73, 128, 78, 79, 84, 67, 72, 128, 78, 79, 84, 69, 83, 128, 78, + 85, 78, 85, 90, 128, 79, 76, 73, 71, 79, 206, 79, 82, 78, 65, 84, 197, + 80, 73, 65, 83, 77, 193, 80, 73, 82, 73, 71, 128, 80, 76, 65, 78, 67, + 203, 80, 79, 87, 69, 82, 128, 80, 82, 79, 84, 79, 211, 81, 65, 84, 65, + 78, 128, 81, 85, 69, 69, 78, 128, 82, 69, 65, 67, 72, 128, 82, 71, 89, + 65, 78, 128, 82, 73, 84, 83, 73, 128, 82, 78, 89, 73, 78, 199, 83, 67, + 82, 69, 69, 206, 83, 69, 71, 78, 79, 128, 83, 69, 82, 73, 70, 211, 83, + 69, 83, 65, 77, 197, 83, 72, 65, 78, 71, 128, 83, 72, 65, 82, 80, 128, + 83, 72, 69, 69, 80, 128, 83, 72, 69, 76, 70, 128, 83, 72, 69, 76, 76, + 128, 83, 72, 69, 83, 72, 128, 83, 72, 79, 82, 84, 211, 83, 72, 87, 65, + 65, 128, 83, 72, 87, 73, 73, 128, 83, 72, 87, 79, 79, 128, 83, 73, 71, + 78, 83, 128, 83, 73, 76, 65, 51, 128, 83, 73, 78, 68, 72, 201, 83, 73, + 88, 84, 72, 128, 83, 73, 88, 84, 89, 128, 83, 76, 79, 86, 79, 128, 83, + 80, 69, 65, 82, 128, 83, 80, 73, 82, 73, 212, 83, 84, 79, 67, 75, 128, + 83, 84, 85, 68, 89, 128, 83, 85, 72, 85, 82, 128, 83, 85, 75, 85, 78, + 128, 84, 65, 78, 78, 69, 196, 84, 69, 76, 79, 85, 211, 84, 72, 87, 65, + 65, 128, 84, 73, 71, 69, 82, 128, 84, 73, 75, 69, 85, 212, 84, 82, 85, + 78, 75, 128, 84, 83, 65, 68, 73, 128, 84, 83, 72, 69, 83, 128, 84, 87, + 69, 76, 86, 197, 85, 82, 85, 68, 65, 128, 87, 65, 84, 67, 72, 128, 89, + 69, 83, 84, 85, 128, 89, 79, 45, 89, 65, 128, 89, 85, 45, 89, 69, 128, + 90, 90, 73, 69, 84, 128, 45, 67, 72, 65, 76, 128, 45, 75, 72, 89, 85, + 196, 45, 80, 72, 82, 85, 128, 65, 68, 68, 65, 75, 128, 65, 71, 65, 73, + 78, 128, 65, 72, 83, 68, 65, 128, 65, 75, 65, 82, 65, 128, 65, 76, 69, + 80, 72, 128, 65, 76, 73, 70, 85, 128, 65, 77, 79, 85, 78, 212, 65, 78, + 80, 69, 65, 128, 65, 78, 83, 72, 69, 128, 65, 80, 65, 82, 84, 128, 65, + 80, 82, 73, 76, 128, 65, 82, 69, 80, 65, 128, 65, 82, 73, 69, 83, 128, + 65, 82, 75, 65, 66, 128, 65, 82, 76, 65, 85, 199, 65, 82, 79, 85, 82, + 193, 65, 82, 82, 65, 89, 128, 65, 82, 84, 65, 66, 197, 65, 83, 65, 76, + 50, 128, 65, 83, 89, 85, 82, 193, 66, 65, 82, 65, 50, 128, 66, 66, 73, + 69, 80, 128, 66, 66, 73, 69, 84, 128, 66, 66, 73, 69, 88, 128, 66, 66, + 85, 79, 80, 128, 66, 66, 85, 79, 88, 128, 66, 66, 85, 82, 88, 128, 66, + 69, 69, 84, 65, 128, 66, 69, 70, 79, 82, 197, 66, 69, 72, 69, 72, 128, + 66, 69, 73, 84, 72, 128, 66, 69, 78, 68, 69, 128, 66, 72, 69, 84, 72, + 128, 66, 73, 82, 71, 65, 128, 66, 73, 83, 65, 72, 128, 66, 73, 84, 73, + 78, 199, 66, 76, 65, 78, 75, 128, 66, 76, 79, 79, 68, 128, 66, 82, 65, + 67, 69, 128, 66, 82, 65, 78, 67, 200, 66, 82, 69, 65, 84, 200, 66, 82, + 85, 83, 72, 128, 66, 83, 84, 65, 82, 128, 66, 85, 76, 76, 69, 212, 67, + 65, 76, 89, 65, 128, 67, 65, 77, 78, 85, 195, 67, 65, 78, 67, 69, 204, + 67, 65, 85, 68, 65, 128, 67, 67, 72, 65, 65, 128, 67, 67, 72, 69, 69, + 128, 67, 69, 65, 76, 67, 128, 67, 69, 67, 69, 75, 128, 67, 69, 73, 82, + 84, 128, 67, 69, 82, 69, 83, 128, 67, 72, 65, 68, 65, 128, 67, 72, 65, + 73, 82, 128, 67, 72, 65, 78, 71, 128, 67, 72, 73, 78, 71, 128, 67, 72, + 79, 75, 69, 128, 67, 72, 85, 76, 65, 128, 67, 72, 85, 79, 80, 128, 67, + 72, 85, 79, 84, 128, 67, 72, 85, 79, 88, 128, 67, 72, 85, 82, 88, 128, + 67, 72, 89, 82, 88, 128, 67, 76, 79, 85, 68, 128, 67, 79, 69, 78, 71, + 128, 67, 79, 76, 79, 82, 128, 67, 79, 77, 69, 84, 128, 67, 79, 77, 73, + 78, 199, 67, 79, 77, 77, 79, 206, 67, 79, 86, 69, 82, 128, 67, 82, 69, + 68, 73, 212, 67, 82, 79, 73, 88, 128, 68, 65, 65, 83, 85, 128, 68, 65, + 69, 78, 71, 128, 68, 65, 73, 78, 71, 128, 68, 65, 76, 65, 84, 200, 68, + 65, 82, 65, 51, 128, 68, 65, 82, 65, 52, 128, 68, 65, 82, 71, 65, 128, + 68, 65, 86, 73, 68, 128, 68, 68, 68, 72, 65, 128, 68, 68, 73, 69, 80, + 128, 68, 68, 73, 69, 88, 128, 68, 68, 85, 79, 80, 128, 68, 68, 85, 79, + 88, 128, 68, 68, 85, 82, 88, 128, 68, 69, 76, 69, 84, 197, 68, 69, 82, + 69, 84, 128, 68, 69, 85, 78, 71, 128, 68, 72, 72, 69, 69, 128, 68, 72, + 72, 79, 79, 128, 68, 73, 70, 65, 84, 128, 68, 73, 80, 84, 69, 128, 68, + 73, 86, 73, 68, 197, 68, 79, 77, 65, 73, 206, 68, 79, 79, 78, 71, 128, + 68, 79, 85, 66, 84, 128, 68, 82, 73, 86, 69, 128, 68, 82, 79, 80, 83, + 128, 68, 85, 71, 85, 68, 128, 69, 65, 71, 76, 69, 128, 69, 69, 75, 65, + 65, 128, 69, 73, 71, 72, 84, 217, 69, 75, 65, 82, 65, 128, 69, 76, 69, + 86, 69, 206, 69, 76, 73, 70, 73, 128, 69, 78, 68, 69, 80, 128, 69, 78, + 84, 69, 82, 128, 69, 79, 76, 72, 88, 128, 69, 81, 85, 73, 68, 128, 69, + 83, 45, 84, 69, 128, 69, 83, 72, 49, 54, 128, 69, 83, 72, 50, 49, 128, + 69, 85, 45, 69, 85, 128, 69, 88, 73, 83, 84, 128, 70, 65, 65, 70, 85, + 128, 70, 65, 73, 72, 85, 128, 70, 69, 65, 82, 78, 128, 70, 69, 69, 78, + 71, 128, 70, 72, 84, 79, 82, 193, 70, 73, 69, 76, 68, 128, 70, 73, 70, + 84, 72, 128, 70, 73, 71, 72, 84, 128, 70, 73, 76, 76, 69, 196, 70, 73, + 78, 73, 84, 197, 70, 76, 79, 87, 69, 210, 70, 79, 76, 76, 89, 128, 70, + 79, 82, 67, 69, 128, 70, 79, 82, 84, 69, 128, 70, 82, 65, 77, 69, 128, + 70, 82, 69, 78, 67, 200, 70, 82, 79, 87, 78, 128, 71, 65, 65, 70, 85, + 128, 71, 65, 68, 79, 76, 128, 71, 65, 77, 65, 76, 128, 71, 65, 77, 76, + 65, 128, 71, 65, 78, 77, 65, 128, 71, 65, 82, 79, 78, 128, 71, 69, 78, + 84, 76, 197, 71, 69, 82, 69, 83, 200, 71, 69, 82, 77, 65, 206, 71, 71, + 73, 69, 80, 128, 71, 71, 73, 69, 88, 128, 71, 71, 85, 79, 80, 128, 71, + 71, 85, 79, 84, 128, 71, 71, 85, 79, 88, 128, 71, 71, 85, 82, 88, 128, + 71, 71, 87, 65, 65, 128, 71, 71, 87, 69, 69, 128, 71, 73, 68, 73, 77, + 128, 71, 73, 77, 69, 76, 128, 71, 73, 78, 73, 73, 128, 71, 73, 83, 65, + 76, 128, 71, 76, 69, 73, 67, 200, 71, 82, 65, 67, 69, 128, 71, 82, 65, + 73, 78, 128, 71, 82, 65, 83, 83, 128, 71, 85, 82, 85, 78, 128, 72, 45, + 84, 89, 80, 197, 72, 65, 45, 72, 65, 128, 72, 65, 65, 82, 85, 128, 72, 65, 71, 76, 65, 218, 72, 65, 73, 84, 85, 128, 72, 65, 78, 68, 83, 128, - 72, 69, 65, 86, 69, 206, 72, 73, 68, 73, 78, 199, 72, 76, 73, 69, 80, - 128, 72, 76, 73, 69, 88, 128, 72, 76, 85, 79, 80, 128, 72, 76, 85, 79, - 88, 128, 72, 76, 85, 82, 88, 128, 72, 76, 89, 82, 88, 128, 72, 77, 73, - 69, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, 85, 79, 80, 128, 72, 77, - 85, 79, 88, 128, 72, 77, 85, 82, 88, 128, 72, 77, 89, 82, 88, 128, 72, - 78, 73, 69, 80, 128, 72, 78, 73, 69, 84, 128, 72, 78, 73, 69, 88, 128, - 72, 78, 85, 79, 88, 128, 72, 79, 79, 82, 85, 128, 72, 79, 85, 83, 69, - 128, 72, 85, 77, 65, 78, 128, 72, 85, 82, 65, 78, 128, 72, 88, 73, 69, - 80, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, 69, 88, 128, 72, 88, 85, - 79, 80, 128, 72, 88, 85, 79, 84, 128, 72, 88, 85, 79, 88, 128, 72, 89, - 80, 72, 69, 206, 73, 67, 72, 79, 85, 128, 73, 71, 71, 87, 83, 128, 73, - 78, 78, 69, 82, 128, 73, 83, 65, 75, 73, 193, 74, 74, 73, 69, 80, 128, - 74, 74, 73, 69, 84, 128, 74, 74, 73, 69, 88, 128, 74, 74, 85, 79, 80, - 128, 74, 74, 85, 79, 88, 128, 74, 74, 85, 82, 88, 128, 74, 79, 89, 79, - 85, 211, 74, 85, 68, 71, 69, 128, 74, 85, 69, 85, 73, 128, 75, 65, 65, - 70, 85, 128, 75, 65, 73, 82, 73, 128, 75, 65, 83, 82, 65, 128, 75, 65, - 84, 65, 86, 193, 75, 65, 85, 78, 65, 128, 75, 69, 69, 83, 85, 128, 75, - 69, 72, 69, 72, 128, 75, 69, 76, 86, 73, 206, 75, 69, 78, 65, 84, 128, - 75, 72, 65, 78, 68, 193, 75, 72, 65, 80, 72, 128, 75, 72, 85, 65, 84, - 128, 75, 72, 87, 65, 73, 128, 75, 78, 73, 70, 69, 128, 75, 79, 79, 80, - 79, 128, 75, 85, 83, 77, 65, 128, 75, 88, 87, 65, 65, 128, 75, 88, 87, - 69, 69, 128, 76, 45, 84, 89, 80, 197, 76, 65, 65, 77, 85, 128, 76, 65, - 71, 85, 83, 128, 76, 65, 77, 66, 68, 193, 76, 65, 85, 75, 65, 218, 76, - 69, 77, 79, 73, 128, 76, 73, 66, 82, 65, 128, 76, 73, 77, 73, 84, 128, - 76, 73, 78, 69, 83, 128, 76, 73, 81, 85, 73, 196, 76, 79, 78, 71, 65, - 128, 76, 79, 84, 85, 83, 128, 76, 79, 85, 82, 69, 128, 77, 65, 68, 68, - 65, 128, 77, 65, 68, 68, 65, 200, 77, 65, 72, 72, 65, 128, 77, 65, 73, - 82, 85, 128, 77, 65, 78, 78, 65, 128, 77, 65, 78, 78, 65, 218, 77, 65, - 81, 65, 70, 128, 77, 65, 82, 67, 72, 128, 77, 65, 83, 79, 82, 193, 77, - 69, 69, 77, 85, 128, 77, 69, 73, 90, 73, 128, 77, 69, 76, 79, 78, 128, - 77, 69, 77, 66, 69, 210, 77, 69, 82, 75, 72, 193, 77, 69, 84, 69, 71, - 128, 77, 69, 90, 90, 79, 128, 77, 71, 73, 69, 88, 128, 77, 71, 85, 79, - 80, 128, 77, 71, 85, 79, 88, 128, 77, 71, 85, 82, 88, 128, 77, 73, 75, - 82, 73, 128, 77, 73, 75, 82, 79, 206, 77, 73, 82, 69, 68, 128, 77, 73, - 83, 82, 65, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 85, 76, 207, 77, - 79, 78, 84, 72, 128, 77, 79, 85, 78, 68, 128, 77, 85, 78, 65, 72, 128, - 77, 85, 83, 73, 67, 128, 78, 65, 82, 82, 79, 215, 78, 65, 85, 68, 73, - 218, 78, 65, 88, 73, 65, 206, 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, - 88, 128, 78, 66, 85, 82, 88, 128, 78, 66, 89, 82, 88, 128, 78, 68, 73, - 69, 88, 128, 78, 68, 85, 82, 88, 128, 78, 71, 65, 65, 73, 128, 78, 71, - 73, 69, 80, 128, 78, 71, 73, 69, 88, 128, 78, 71, 79, 69, 72, 128, 78, - 71, 85, 79, 84, 128, 78, 71, 85, 79, 88, 128, 78, 73, 78, 69, 84, 217, + 72, 65, 84, 72, 73, 128, 72, 69, 65, 86, 69, 206, 72, 73, 68, 73, 78, + 199, 72, 76, 73, 69, 80, 128, 72, 76, 73, 69, 88, 128, 72, 76, 85, 79, + 80, 128, 72, 76, 85, 79, 88, 128, 72, 76, 85, 82, 88, 128, 72, 76, 89, + 82, 88, 128, 72, 77, 73, 69, 80, 128, 72, 77, 73, 69, 88, 128, 72, 77, + 85, 79, 80, 128, 72, 77, 85, 79, 88, 128, 72, 77, 85, 82, 88, 128, 72, + 77, 89, 82, 88, 128, 72, 78, 73, 69, 80, 128, 72, 78, 73, 69, 84, 128, + 72, 78, 73, 69, 88, 128, 72, 78, 85, 79, 88, 128, 72, 79, 79, 82, 85, + 128, 72, 79, 85, 83, 69, 128, 72, 85, 77, 65, 78, 128, 72, 85, 82, 65, + 78, 128, 72, 88, 73, 69, 80, 128, 72, 88, 73, 69, 84, 128, 72, 88, 73, + 69, 88, 128, 72, 88, 85, 79, 80, 128, 72, 88, 85, 79, 84, 128, 72, 88, + 85, 79, 88, 128, 72, 90, 90, 90, 71, 128, 73, 67, 72, 79, 85, 128, 73, + 71, 71, 87, 83, 128, 73, 76, 73, 77, 77, 213, 73, 77, 73, 78, 51, 128, + 73, 78, 78, 69, 82, 128, 73, 83, 65, 75, 73, 193, 74, 74, 73, 69, 80, + 128, 74, 74, 73, 69, 84, 128, 74, 74, 73, 69, 88, 128, 74, 74, 85, 79, + 80, 128, 74, 74, 85, 79, 88, 128, 74, 74, 85, 82, 88, 128, 74, 79, 75, + 69, 82, 128, 74, 79, 89, 79, 85, 211, 74, 85, 68, 71, 69, 128, 74, 85, + 69, 85, 73, 128, 75, 65, 65, 70, 85, 128, 75, 65, 73, 82, 73, 128, 75, + 65, 80, 65, 76, 128, 75, 65, 84, 65, 86, 193, 75, 65, 85, 78, 65, 128, + 75, 69, 69, 78, 71, 128, 75, 69, 69, 83, 85, 128, 75, 69, 72, 69, 72, + 128, 75, 69, 76, 86, 73, 206, 75, 69, 77, 80, 76, 201, 75, 69, 77, 80, + 85, 204, 75, 69, 78, 65, 84, 128, 75, 69, 83, 72, 50, 128, 75, 72, 65, + 78, 68, 193, 75, 72, 65, 80, 72, 128, 75, 72, 85, 65, 84, 128, 75, 72, + 87, 65, 73, 128, 75, 73, 83, 65, 76, 128, 75, 78, 73, 70, 69, 128, 75, + 79, 79, 80, 79, 128, 75, 85, 83, 77, 65, 128, 75, 88, 87, 65, 65, 128, + 75, 88, 87, 69, 69, 128, 76, 45, 84, 89, 80, 197, 76, 65, 65, 77, 85, + 128, 76, 65, 71, 85, 83, 128, 76, 65, 77, 66, 68, 193, 76, 65, 84, 73, + 75, 128, 76, 65, 85, 75, 65, 218, 76, 69, 77, 79, 73, 128, 76, 73, 66, + 82, 65, 128, 76, 73, 77, 73, 84, 128, 76, 73, 78, 69, 83, 128, 76, 73, + 81, 85, 73, 196, 76, 79, 84, 85, 83, 128, 76, 79, 85, 82, 69, 128, 77, + 65, 68, 68, 65, 128, 77, 65, 68, 68, 65, 200, 77, 65, 72, 72, 65, 128, + 77, 65, 73, 82, 85, 128, 77, 65, 78, 78, 65, 128, 77, 65, 78, 78, 65, + 218, 77, 65, 81, 65, 70, 128, 77, 65, 82, 67, 72, 128, 77, 65, 83, 79, + 82, 193, 77, 69, 69, 77, 85, 128, 77, 69, 73, 90, 73, 128, 77, 69, 76, + 79, 78, 128, 77, 69, 77, 66, 69, 210, 77, 69, 82, 75, 72, 193, 77, 69, + 84, 69, 71, 128, 77, 69, 90, 90, 79, 128, 77, 71, 66, 69, 69, 128, 77, + 71, 66, 79, 79, 128, 77, 71, 73, 69, 88, 128, 77, 71, 85, 79, 80, 128, + 77, 71, 85, 79, 88, 128, 77, 71, 85, 82, 88, 128, 77, 73, 75, 82, 73, + 128, 77, 73, 75, 82, 79, 206, 77, 73, 82, 69, 68, 128, 77, 73, 83, 82, + 65, 128, 77, 79, 68, 69, 76, 128, 77, 79, 68, 85, 76, 207, 77, 79, 78, + 84, 72, 128, 77, 79, 85, 78, 68, 128, 77, 85, 78, 65, 72, 128, 77, 85, + 83, 72, 51, 128, 77, 85, 83, 73, 67, 128, 78, 65, 71, 65, 82, 128, 78, + 65, 82, 82, 79, 215, 78, 65, 85, 68, 73, 218, 78, 65, 88, 73, 65, 206, + 78, 66, 73, 69, 80, 128, 78, 66, 73, 69, 88, 128, 78, 66, 85, 82, 88, + 128, 78, 66, 89, 82, 88, 128, 78, 68, 73, 69, 88, 128, 78, 68, 85, 82, + 88, 128, 78, 71, 65, 65, 73, 128, 78, 71, 71, 69, 69, 128, 78, 71, 71, + 69, 78, 128, 78, 71, 71, 79, 79, 128, 78, 71, 73, 69, 80, 128, 78, 71, + 73, 69, 88, 128, 78, 71, 79, 69, 72, 128, 78, 71, 85, 79, 84, 128, 78, + 71, 85, 79, 88, 128, 78, 73, 78, 69, 84, 217, 78, 73, 83, 65, 71, 128, 78, 74, 73, 69, 80, 128, 78, 74, 73, 69, 84, 128, 78, 74, 73, 69, 88, 128, 78, 74, 85, 79, 88, 128, 78, 74, 85, 82, 88, 128, 78, 74, 89, 82, 88, 128, 78, 78, 71, 65, 65, 128, 78, 78, 71, 73, 73, 128, 78, 78, 71, - 79, 79, 128, 78, 79, 79, 78, 85, 128, 78, 79, 84, 67, 72, 128, 78, 79, - 84, 84, 79, 128, 78, 82, 85, 82, 88, 128, 78, 82, 89, 82, 88, 128, 78, - 85, 77, 69, 82, 207, 78, 89, 73, 69, 80, 128, 78, 89, 73, 69, 84, 128, - 78, 89, 73, 69, 88, 128, 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 88, - 128, 78, 90, 73, 69, 80, 128, 78, 90, 73, 69, 88, 128, 78, 90, 85, 79, - 88, 128, 78, 90, 85, 82, 88, 128, 78, 90, 89, 82, 88, 128, 79, 66, 74, - 69, 67, 212, 79, 74, 69, 79, 78, 128, 79, 76, 73, 86, 69, 128, 79, 78, + 79, 79, 128, 78, 79, 79, 78, 85, 128, 78, 79, 84, 84, 79, 128, 78, 82, + 85, 82, 88, 128, 78, 82, 89, 82, 88, 128, 78, 85, 77, 69, 82, 207, 78, + 89, 73, 69, 80, 128, 78, 89, 73, 69, 84, 128, 78, 89, 73, 69, 88, 128, + 78, 89, 85, 79, 80, 128, 78, 89, 85, 79, 88, 128, 78, 90, 73, 69, 80, + 128, 78, 90, 73, 69, 88, 128, 78, 90, 85, 79, 88, 128, 78, 90, 85, 82, + 88, 128, 78, 90, 89, 82, 88, 128, 79, 66, 74, 69, 67, 212, 79, 74, 69, + 79, 78, 128, 79, 75, 65, 82, 65, 128, 79, 76, 73, 86, 69, 128, 79, 78, 75, 65, 82, 128, 79, 80, 84, 73, 79, 206, 79, 84, 72, 65, 76, 128, 79, 85, 78, 75, 73, 193, 79, 88, 69, 73, 65, 201, 80, 65, 65, 84, 85, 128, - 80, 65, 83, 69, 81, 128, 80, 65, 83, 85, 81, 128, 80, 65, 84, 65, 75, - 128, 80, 65, 90, 69, 82, 128, 80, 69, 65, 67, 69, 128, 80, 69, 69, 90, - 73, 128, 80, 69, 72, 69, 72, 128, 80, 69, 73, 84, 72, 128, 80, 69, 78, - 83, 85, 128, 80, 69, 79, 82, 84, 200, 80, 69, 82, 84, 72, 207, 80, 69, - 83, 69, 84, 193, 80, 72, 78, 65, 69, 203, 80, 72, 85, 78, 71, 128, 80, - 73, 65, 78, 79, 128, 80, 76, 85, 84, 79, 128, 80, 79, 69, 84, 73, 195, - 80, 79, 78, 68, 79, 128, 80, 82, 73, 78, 84, 128, 80, 82, 79, 79, 70, - 128, 80, 82, 79, 86, 69, 128, 81, 65, 65, 70, 85, 128, 81, 65, 68, 77, - 65, 128, 81, 65, 77, 65, 84, 211, 81, 65, 82, 78, 69, 217, 81, 72, 87, - 65, 65, 128, 81, 72, 87, 69, 69, 128, 82, 45, 67, 82, 69, 197, 82, 65, - 73, 68, 65, 128, 82, 65, 83, 72, 65, 128, 82, 65, 83, 79, 85, 204, 82, - 65, 84, 73, 79, 128, 82, 69, 67, 79, 82, 196, 82, 69, 84, 85, 82, 206, - 82, 69, 86, 73, 65, 128, 82, 69, 86, 77, 65, 128, 82, 72, 79, 84, 73, - 195, 82, 73, 86, 69, 82, 128, 82, 78, 79, 79, 78, 128, 82, 79, 66, 65, - 84, 128, 82, 82, 85, 79, 88, 128, 82, 82, 85, 82, 88, 128, 82, 82, 89, - 82, 88, 128, 82, 85, 80, 73, 73, 128, 82, 87, 65, 72, 65, 128, 83, 65, - 68, 72, 69, 128, 83, 65, 70, 72, 65, 128, 83, 65, 77, 69, 75, 200, 83, - 65, 77, 75, 65, 128, 83, 65, 77, 89, 79, 203, 83, 65, 78, 65, 72, 128, - 83, 65, 85, 73, 76, 128, 83, 69, 69, 78, 85, 128, 83, 69, 73, 83, 77, - 193, 83, 69, 78, 84, 73, 128, 83, 72, 69, 69, 78, 128, 83, 72, 69, 81, - 69, 204, 83, 72, 69, 86, 65, 128, 83, 72, 73, 73, 78, 128, 83, 72, 79, - 79, 84, 128, 83, 72, 79, 82, 84, 128, 83, 72, 85, 79, 80, 128, 83, 72, - 85, 79, 88, 128, 83, 72, 85, 82, 88, 128, 83, 72, 89, 82, 88, 128, 83, - 73, 88, 84, 72, 128, 83, 76, 65, 86, 69, 128, 83, 76, 73, 67, 69, 128, - 83, 76, 79, 80, 69, 128, 83, 77, 69, 65, 82, 128, 83, 77, 73, 76, 69, - 128, 83, 78, 65, 75, 69, 128, 83, 78, 79, 85, 84, 128, 83, 79, 85, 78, - 68, 128, 83, 79, 87, 73, 76, 207, 83, 80, 73, 67, 69, 128, 83, 80, 79, - 79, 78, 128, 83, 80, 85, 78, 71, 211, 83, 81, 85, 73, 83, 200, 83, 83, - 73, 69, 80, 128, 83, 83, 73, 69, 88, 128, 83, 83, 89, 82, 88, 128, 83, - 84, 65, 78, 68, 128, 83, 84, 65, 82, 75, 128, 83, 84, 69, 65, 77, 128, - 83, 84, 79, 78, 69, 128, 83, 84, 79, 86, 69, 128, 83, 87, 69, 69, 84, - 128, 83, 87, 79, 82, 68, 128, 83, 89, 82, 77, 65, 128, 84, 65, 76, 69, - 78, 212, 84, 65, 80, 69, 82, 128, 84, 67, 72, 69, 72, 128, 84, 69, 73, - 87, 83, 128, 84, 69, 86, 73, 82, 128, 84, 72, 73, 71, 72, 128, 84, 72, - 73, 82, 68, 128, 84, 72, 73, 82, 68, 211, 84, 72, 73, 84, 65, 128, 84, - 72, 79, 78, 71, 128, 84, 72, 85, 78, 71, 128, 84, 73, 78, 78, 69, 128, - 84, 73, 80, 80, 73, 128, 84, 76, 72, 69, 69, 128, 84, 82, 65, 67, 75, - 128, 84, 82, 73, 84, 79, 211, 84, 82, 85, 84, 72, 128, 84, 83, 69, 82, - 69, 128, 84, 84, 83, 69, 69, 128, 84, 84, 84, 72, 65, 128, 84, 85, 71, - 82, 73, 203, 84, 85, 82, 79, 50, 128, 84, 89, 80, 69, 45, 177, 84, 89, - 80, 69, 45, 178, 84, 89, 80, 69, 45, 179, 84, 89, 80, 69, 45, 180, 84, - 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 182, 84, 89, 80, 69, 45, 183, - 85, 78, 73, 84, 89, 128, 85, 80, 87, 65, 82, 196, 86, 65, 65, 86, 85, - 128, 86, 65, 83, 73, 83, 128, 86, 65, 84, 72, 89, 128, 86, 69, 67, 84, - 79, 210, 86, 69, 82, 71, 69, 128, 86, 73, 82, 71, 65, 128, 86, 73, 82, - 71, 79, 128, 86, 79, 76, 85, 77, 197, 87, 65, 65, 86, 85, 128, 87, 65, - 83, 76, 65, 128, 87, 72, 69, 69, 76, 128, 87, 73, 78, 74, 65, 128, 87, - 82, 69, 65, 84, 200, 87, 82, 79, 78, 71, 128, 88, 69, 83, 84, 69, 211, - 89, 65, 45, 89, 79, 128, 89, 65, 65, 68, 79, 128, 89, 65, 65, 82, 85, - 128, 89, 65, 68, 68, 72, 128, 89, 65, 71, 72, 72, 128, 89, 65, 75, 72, - 72, 128, 89, 69, 79, 45, 79, 128, 89, 69, 79, 45, 85, 128, 89, 69, 84, - 73, 86, 128, 89, 73, 90, 69, 84, 128, 89, 85, 45, 69, 79, 128, 90, 65, - 82, 81, 65, 128, 90, 65, 89, 73, 78, 128, 90, 72, 65, 73, 78, 128, 90, - 72, 85, 79, 80, 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, 82, 88, 128, - 90, 72, 89, 82, 88, 128, 90, 73, 76, 68, 69, 128, 90, 73, 78, 79, 82, - 128, 90, 89, 71, 79, 83, 128, 90, 90, 73, 69, 80, 128, 90, 90, 73, 69, - 88, 128, 90, 90, 85, 82, 88, 128, 90, 90, 89, 82, 88, 128, 78, 65, 71, - 82, 201, 83, 72, 79, 82, 212, 83, 72, 69, 69, 206, 90, 69, 82, 79, 128, - 82, 79, 77, 65, 206, 84, 73, 76, 68, 197, 76, 69, 70, 84, 128, 79, 71, - 72, 65, 205, 86, 79, 67, 65, 204, 78, 79, 82, 84, 200, 67, 85, 82, 76, - 217, 65, 84, 84, 73, 195, 83, 79, 85, 84, 200, 66, 69, 76, 79, 215, 66, - 85, 72, 73, 196, 80, 79, 73, 78, 212, 84, 65, 67, 75, 128, 68, 65, 83, - 72, 128, 68, 79, 87, 78, 128, 73, 79, 84, 65, 128, 78, 45, 65, 82, 217, - 82, 69, 83, 84, 128, 71, 72, 65, 73, 206, 65, 67, 85, 84, 197, 66, 69, - 84, 65, 128, 66, 82, 69, 86, 197, 67, 79, 77, 77, 193, 71, 82, 65, 86, - 197, 75, 79, 69, 84, 128, 86, 65, 82, 73, 193, 90, 69, 84, 65, 128, 67, - 72, 69, 83, 211, 67, 85, 82, 76, 128, 83, 72, 69, 76, 204, 84, 72, 69, - 84, 193, 83, 79, 85, 78, 196, 85, 78, 73, 79, 206, 65, 76, 69, 70, 128, - 65, 84, 84, 65, 203, 68, 79, 84, 83, 128, 70, 79, 82, 84, 217, 72, 65, - 76, 70, 128, 78, 79, 84, 69, 128, 84, 79, 78, 65, 204, 73, 77, 65, 71, - 197, 80, 76, 85, 83, 128, 65, 71, 79, 71, 201, 69, 77, 80, 84, 217, 72, - 69, 65, 82, 212, 83, 85, 73, 84, 128, 70, 73, 70, 84, 217, 70, 73, 76, - 76, 128, 75, 65, 84, 79, 128, 75, 69, 72, 69, 200, 76, 65, 82, 71, 197, - 83, 72, 65, 68, 128, 66, 69, 71, 73, 206, 67, 65, 82, 69, 212, 70, 65, - 82, 83, 201, 70, 73, 82, 69, 128, 72, 79, 82, 73, 128, 75, 65, 80, 80, - 193, 77, 79, 79, 78, 128, 83, 69, 86, 69, 206, 83, 72, 69, 73, 128, 83, - 72, 73, 78, 128, 83, 85, 78, 71, 128, 84, 73, 67, 75, 128, 67, 76, 69, - 70, 128, 67, 82, 79, 83, 211, 70, 65, 84, 72, 193, 70, 73, 82, 83, 212, - 77, 65, 68, 68, 193, 81, 85, 65, 68, 128, 82, 85, 80, 69, 197, 83, 73, - 71, 77, 193, 83, 84, 69, 77, 128, 84, 67, 72, 69, 200, 84, 73, 77, 69, - 211, 84, 83, 72, 69, 199, 89, 65, 78, 71, 128, 65, 76, 84, 65, 128, 66, - 69, 72, 69, 200, 67, 72, 69, 67, 203, 67, 82, 79, 80, 128, 68, 65, 77, - 77, 193, 70, 73, 84, 65, 128, 71, 82, 69, 65, 212, 72, 65, 78, 68, 128, - 73, 90, 72, 69, 128, 74, 79, 73, 78, 128, 75, 65, 80, 65, 128, 75, 65, - 83, 82, 193, 75, 72, 69, 73, 128, 75, 87, 65, 65, 128, 76, 79, 78, 71, - 128, 78, 71, 79, 69, 200, 79, 66, 79, 76, 211, 80, 69, 72, 69, 200, 82, + 80, 65, 78, 84, 73, 128, 80, 65, 83, 69, 81, 128, 80, 65, 83, 85, 81, + 128, 80, 65, 84, 65, 75, 128, 80, 65, 90, 69, 82, 128, 80, 69, 65, 67, + 69, 128, 80, 69, 69, 90, 73, 128, 80, 69, 72, 69, 72, 128, 80, 69, 73, + 84, 72, 128, 80, 69, 78, 83, 85, 128, 80, 69, 79, 82, 84, 200, 80, 69, + 80, 69, 84, 128, 80, 69, 82, 84, 72, 207, 80, 69, 83, 69, 84, 193, 80, + 69, 83, 72, 50, 128, 80, 72, 78, 65, 69, 203, 80, 72, 85, 78, 71, 128, + 80, 73, 65, 78, 79, 128, 80, 76, 85, 77, 69, 196, 80, 76, 85, 84, 79, + 128, 80, 79, 69, 84, 73, 195, 80, 79, 78, 68, 79, 128, 80, 82, 73, 78, + 84, 128, 80, 82, 79, 79, 70, 128, 80, 82, 79, 86, 69, 128, 81, 65, 65, + 70, 85, 128, 81, 65, 68, 77, 65, 128, 81, 65, 77, 65, 84, 211, 81, 65, + 82, 78, 69, 217, 81, 72, 87, 65, 65, 128, 81, 72, 87, 69, 69, 128, 82, + 45, 67, 82, 69, 197, 82, 65, 73, 68, 65, 128, 82, 65, 83, 72, 65, 128, + 82, 65, 83, 79, 85, 204, 82, 65, 84, 73, 79, 128, 82, 69, 67, 79, 82, + 196, 82, 69, 76, 65, 65, 128, 82, 69, 84, 85, 82, 206, 82, 69, 86, 73, + 65, 128, 82, 69, 86, 77, 65, 128, 82, 72, 79, 84, 73, 195, 82, 73, 67, + 69, 77, 128, 82, 73, 86, 69, 82, 128, 82, 78, 79, 79, 78, 128, 82, 79, + 66, 65, 84, 128, 82, 82, 85, 79, 88, 128, 82, 82, 85, 82, 88, 128, 82, + 82, 89, 82, 88, 128, 82, 85, 80, 73, 73, 128, 82, 87, 65, 72, 65, 128, + 83, 65, 68, 72, 69, 128, 83, 65, 70, 72, 65, 128, 83, 65, 77, 69, 75, + 200, 83, 65, 77, 75, 65, 128, 83, 65, 77, 89, 79, 203, 83, 65, 78, 65, + 72, 128, 83, 65, 85, 73, 76, 128, 83, 69, 69, 78, 85, 128, 83, 69, 73, + 83, 77, 193, 83, 69, 78, 84, 73, 128, 83, 72, 65, 66, 54, 128, 83, 72, + 69, 69, 78, 128, 83, 72, 69, 71, 57, 128, 83, 72, 69, 81, 69, 204, 83, + 72, 69, 86, 65, 128, 83, 72, 73, 73, 78, 128, 83, 72, 73, 84, 65, 128, + 83, 72, 79, 79, 84, 128, 83, 72, 79, 82, 84, 128, 83, 72, 85, 79, 80, + 128, 83, 72, 85, 79, 88, 128, 83, 72, 85, 82, 88, 128, 83, 72, 89, 82, + 88, 128, 83, 73, 88, 84, 72, 211, 83, 76, 65, 86, 69, 128, 83, 76, 73, + 67, 69, 128, 83, 76, 73, 78, 71, 128, 83, 76, 79, 80, 69, 128, 83, 77, + 69, 65, 82, 128, 83, 77, 73, 76, 69, 128, 83, 78, 65, 75, 69, 128, 83, + 78, 79, 85, 84, 128, 83, 79, 85, 78, 68, 128, 83, 79, 87, 73, 76, 207, + 83, 80, 73, 67, 69, 128, 83, 80, 79, 79, 78, 128, 83, 80, 85, 78, 71, + 211, 83, 81, 85, 73, 83, 200, 83, 83, 73, 69, 80, 128, 83, 83, 73, 69, + 88, 128, 83, 83, 89, 82, 88, 128, 83, 84, 65, 78, 68, 128, 83, 84, 65, + 82, 75, 128, 83, 84, 69, 65, 77, 128, 83, 84, 79, 78, 69, 128, 83, 84, + 79, 86, 69, 128, 83, 87, 69, 69, 84, 128, 83, 87, 79, 82, 68, 128, 83, + 89, 82, 77, 65, 128, 84, 65, 76, 69, 78, 212, 84, 65, 80, 69, 82, 128, + 84, 67, 72, 69, 72, 128, 84, 69, 71, 69, 72, 128, 84, 69, 73, 87, 83, + 128, 84, 69, 86, 73, 82, 128, 84, 72, 73, 71, 72, 128, 84, 72, 73, 82, + 68, 128, 84, 72, 73, 84, 65, 128, 84, 72, 79, 78, 71, 128, 84, 72, 85, + 78, 71, 128, 84, 72, 89, 79, 79, 205, 84, 73, 65, 82, 65, 128, 84, 73, + 78, 78, 69, 128, 84, 73, 80, 80, 73, 128, 84, 76, 72, 69, 69, 128, 84, + 82, 65, 67, 75, 128, 84, 82, 73, 84, 79, 211, 84, 82, 85, 84, 72, 128, + 84, 83, 69, 82, 69, 128, 84, 83, 72, 79, 79, 203, 84, 84, 83, 69, 69, + 128, 84, 84, 84, 72, 65, 128, 84, 85, 71, 82, 73, 203, 84, 85, 78, 78, + 89, 128, 84, 85, 82, 79, 50, 128, 84, 85, 85, 77, 85, 128, 84, 89, 80, + 69, 45, 177, 84, 89, 80, 69, 45, 178, 84, 89, 80, 69, 45, 179, 84, 89, + 80, 69, 45, 180, 84, 89, 80, 69, 45, 181, 84, 89, 80, 69, 45, 182, 84, + 89, 80, 69, 45, 183, 85, 68, 65, 65, 84, 128, 85, 75, 65, 82, 65, 128, + 85, 77, 66, 73, 78, 128, 85, 78, 73, 84, 89, 128, 85, 80, 87, 65, 82, + 196, 85, 83, 83, 85, 51, 128, 85, 84, 85, 75, 73, 128, 86, 65, 65, 86, + 85, 128, 86, 65, 83, 73, 83, 128, 86, 65, 84, 72, 89, 128, 86, 69, 67, + 84, 79, 210, 86, 69, 82, 71, 69, 128, 86, 69, 83, 84, 65, 128, 86, 73, + 82, 71, 65, 128, 86, 73, 82, 71, 79, 128, 86, 79, 76, 85, 77, 197, 86, + 90, 77, 69, 84, 128, 87, 65, 65, 86, 85, 128, 87, 65, 83, 76, 65, 128, + 87, 72, 69, 69, 76, 128, 87, 73, 78, 68, 85, 128, 87, 73, 78, 74, 65, + 128, 87, 82, 69, 65, 84, 200, 87, 82, 79, 78, 71, 128, 88, 69, 83, 84, + 69, 211, 89, 65, 45, 89, 79, 128, 89, 65, 65, 68, 79, 128, 89, 65, 65, + 82, 85, 128, 89, 65, 68, 68, 72, 128, 89, 65, 71, 72, 72, 128, 89, 65, + 75, 72, 72, 128, 89, 69, 79, 45, 79, 128, 89, 69, 79, 45, 85, 128, 89, + 69, 84, 73, 86, 128, 89, 73, 90, 69, 84, 128, 89, 85, 45, 69, 79, 128, + 90, 65, 82, 81, 65, 128, 90, 65, 89, 73, 78, 128, 90, 72, 65, 73, 78, + 128, 90, 72, 85, 79, 80, 128, 90, 72, 85, 79, 88, 128, 90, 72, 85, 82, + 88, 128, 90, 72, 89, 82, 88, 128, 90, 73, 76, 68, 69, 128, 90, 73, 78, + 79, 82, 128, 90, 85, 66, 85, 82, 128, 90, 89, 71, 79, 83, 128, 90, 90, + 73, 69, 80, 128, 90, 90, 73, 69, 88, 128, 90, 90, 85, 82, 88, 128, 90, + 90, 89, 82, 88, 128, 85, 80, 80, 69, 210, 82, 79, 77, 65, 206, 75, 65, + 89, 65, 200, 65, 76, 80, 72, 193, 83, 84, 79, 80, 128, 67, 72, 73, 75, + 201, 79, 77, 69, 71, 193, 79, 88, 73, 65, 128, 83, 72, 79, 82, 212, 90, + 69, 82, 79, 128, 78, 65, 71, 82, 201, 84, 73, 76, 68, 197, 83, 72, 69, + 69, 206, 71, 85, 78, 85, 128, 84, 69, 78, 85, 128, 76, 69, 70, 84, 128, + 78, 79, 82, 84, 200, 79, 71, 72, 65, 205, 86, 79, 67, 65, 204, 67, 85, + 82, 76, 217, 65, 84, 84, 73, 195, 83, 79, 85, 84, 200, 80, 79, 73, 78, + 212, 66, 69, 76, 79, 215, 66, 85, 72, 73, 196, 73, 79, 84, 65, 128, 82, + 69, 83, 84, 128, 84, 65, 67, 75, 128, 68, 65, 83, 72, 128, 68, 79, 87, + 78, 128, 75, 65, 82, 69, 206, 78, 45, 65, 82, 217, 83, 69, 86, 69, 206, + 68, 73, 83, 72, 128, 71, 72, 65, 73, 206, 83, 72, 69, 76, 204, 65, 67, + 85, 84, 197, 66, 69, 84, 65, 128, 66, 82, 69, 86, 197, 67, 79, 77, 77, + 193, 71, 82, 65, 86, 197, 75, 79, 69, 84, 128, 86, 65, 82, 73, 193, 67, + 85, 82, 76, 128, 68, 79, 84, 83, 128, 72, 65, 76, 70, 128, 76, 65, 71, + 65, 210, 90, 69, 84, 65, 128, 65, 76, 69, 70, 128, 67, 72, 69, 83, 211, + 70, 65, 82, 83, 201, 78, 85, 78, 85, 218, 84, 72, 69, 84, 193, 80, 76, + 85, 83, 128, 83, 79, 85, 78, 196, 85, 78, 73, 79, 206, 65, 84, 84, 65, + 203, 70, 79, 82, 84, 217, 76, 65, 82, 71, 197, 78, 79, 84, 69, 128, 84, + 65, 75, 52, 128, 84, 79, 78, 65, 204, 70, 73, 70, 84, 217, 73, 77, 65, + 71, 197, 75, 69, 72, 69, 200, 83, 72, 65, 68, 128, 65, 71, 79, 71, 201, + 69, 77, 80, 84, 217, 72, 69, 65, 82, 212, 83, 73, 71, 77, 193, 83, 85, + 73, 84, 128, 87, 73, 78, 68, 128, 70, 73, 76, 76, 128, 75, 65, 84, 79, + 128, 76, 79, 79, 80, 128, 83, 72, 73, 78, 128, 66, 69, 71, 73, 206, 67, + 65, 82, 69, 212, 70, 73, 82, 69, 128, 71, 73, 83, 72, 128, 72, 79, 82, + 73, 128, 75, 65, 80, 80, 193, 77, 79, 79, 78, 128, 83, 72, 69, 73, 128, + 83, 84, 69, 77, 128, 83, 85, 78, 71, 128, 84, 73, 67, 75, 128, 66, 65, + 67, 75, 128, 66, 65, 78, 50, 128, 67, 76, 69, 70, 128, 67, 82, 79, 83, + 211, 70, 65, 84, 72, 193, 70, 73, 82, 83, 212, 70, 73, 84, 65, 128, 71, + 82, 69, 65, 212, 77, 65, 68, 68, 193, 77, 85, 83, 72, 128, 78, 68, 79, + 76, 197, 81, 85, 65, 68, 128, 82, 79, 79, 84, 128, 82, 85, 80, 69, 197, + 83, 72, 65, 82, 208, 84, 67, 72, 69, 200, 84, 72, 69, 69, 128, 84, 72, + 73, 82, 196, 84, 83, 72, 65, 128, 84, 83, 72, 69, 199, 89, 65, 78, 71, + 128, 65, 76, 84, 65, 128, 66, 69, 72, 69, 200, 67, 72, 69, 67, 203, 67, + 82, 79, 80, 128, 68, 65, 77, 77, 193, 71, 65, 78, 50, 128, 71, 73, 82, + 50, 128, 72, 65, 78, 68, 128, 73, 90, 72, 69, 128, 74, 79, 73, 78, 128, + 75, 65, 68, 51, 128, 75, 65, 80, 65, 128, 75, 65, 83, 82, 193, 75, 72, + 69, 73, 128, 75, 87, 65, 65, 128, 77, 85, 83, 72, 179, 78, 71, 79, 69, + 200, 79, 66, 79, 76, 211, 80, 69, 72, 69, 200, 80, 73, 82, 73, 199, 82, 65, 70, 69, 128, 82, 78, 79, 79, 206, 82, 84, 65, 71, 211, 83, 67, 72, - 87, 193, 83, 72, 65, 82, 208, 84, 72, 65, 65, 128, 84, 72, 69, 69, 128, - 86, 65, 78, 69, 128, 87, 65, 86, 69, 128, 87, 73, 78, 68, 128, 65, 76, - 76, 79, 128, 66, 73, 82, 68, 128, 67, 65, 82, 79, 206, 67, 72, 65, 82, - 128, 67, 72, 73, 78, 128, 67, 72, 82, 79, 193, 67, 73, 69, 85, 195, 67, - 87, 65, 65, 128, 68, 69, 76, 84, 193, 70, 79, 79, 84, 128, 71, 72, 65, - 78, 128, 71, 79, 76, 68, 128, 71, 82, 65, 83, 211, 72, 65, 84, 65, 198, - 73, 69, 85, 78, 199, 74, 72, 65, 78, 128, 75, 69, 84, 84, 201, 75, 72, - 65, 82, 128, 76, 76, 76, 65, 128, 76, 79, 79, 80, 128, 77, 78, 65, 83, - 128, 77, 85, 83, 73, 195, 77, 87, 65, 65, 128, 78, 87, 65, 65, 128, 79, - 85, 84, 69, 210, 79, 88, 69, 73, 193, 80, 65, 80, 69, 210, 80, 69, 68, - 65, 204, 80, 72, 65, 82, 128, 80, 79, 76, 69, 128, 80, 82, 73, 77, 197, - 80, 87, 65, 65, 128, 82, 79, 79, 84, 128, 83, 69, 69, 78, 128, 83, 72, - 87, 65, 128, 83, 73, 76, 75, 128, 83, 73, 77, 65, 128, 83, 84, 65, 82, - 212, 83, 87, 65, 65, 128, 83, 87, 65, 83, 200, 84, 72, 73, 73, 128, 84, - 72, 73, 82, 196, 84, 83, 72, 65, 128, 84, 84, 72, 79, 128, 84, 87, 65, - 65, 128, 87, 73, 78, 69, 128, 89, 65, 71, 72, 128, 89, 65, 90, 72, 128, - 89, 73, 87, 78, 128, 89, 87, 65, 65, 128, 90, 72, 65, 82, 128, 90, 72, - 69, 69, 128, 45, 68, 90, 85, 196, 65, 76, 70, 65, 128, 65, 80, 69, 83, - 207, 65, 82, 71, 73, 128, 66, 66, 85, 84, 128, 66, 69, 65, 84, 128, 66, - 76, 65, 68, 197, 66, 76, 85, 69, 128, 66, 79, 78, 69, 128, 66, 82, 85, - 83, 200, 66, 85, 75, 89, 128, 66, 90, 85, 78, 199, 67, 65, 82, 84, 128, - 67, 85, 79, 80, 128, 67, 85, 82, 86, 197, 67, 87, 73, 73, 128, 67, 87, - 79, 79, 128, 68, 65, 76, 69, 212, 68, 68, 85, 82, 128, 68, 69, 69, 82, - 128, 68, 90, 72, 65, 128, 68, 90, 72, 69, 128, 68, 90, 74, 69, 128, 69, + 87, 193, 83, 72, 73, 68, 128, 83, 72, 87, 69, 128, 84, 72, 65, 65, 128, + 84, 72, 79, 82, 206, 84, 85, 71, 50, 128, 86, 65, 78, 69, 128, 87, 65, + 86, 69, 128, 90, 72, 69, 69, 128, 65, 76, 76, 79, 128, 66, 73, 82, 68, + 128, 67, 65, 82, 73, 203, 67, 65, 82, 79, 206, 67, 67, 72, 69, 128, 67, + 72, 65, 82, 128, 67, 72, 73, 78, 128, 67, 72, 82, 79, 193, 67, 73, 69, + 85, 195, 67, 87, 65, 65, 128, 68, 69, 76, 84, 193, 70, 79, 79, 84, 128, + 71, 72, 65, 78, 128, 71, 79, 76, 68, 128, 71, 82, 65, 83, 211, 72, 65, + 84, 65, 198, 73, 69, 85, 78, 199, 74, 72, 65, 78, 128, 75, 69, 84, 84, + 201, 75, 72, 65, 82, 128, 76, 73, 83, 72, 128, 76, 76, 76, 65, 128, 76, + 85, 71, 65, 204, 77, 78, 65, 83, 128, 77, 85, 82, 68, 193, 77, 85, 83, + 73, 195, 77, 87, 65, 65, 128, 78, 65, 71, 65, 128, 78, 87, 65, 65, 128, + 79, 85, 84, 69, 210, 79, 88, 69, 73, 193, 80, 65, 80, 69, 210, 80, 69, + 68, 65, 204, 80, 72, 65, 82, 128, 80, 79, 76, 69, 128, 80, 82, 73, 77, + 197, 80, 87, 65, 65, 128, 83, 69, 69, 78, 128, 83, 72, 65, 51, 128, 83, + 72, 65, 82, 178, 83, 72, 69, 69, 128, 83, 72, 73, 84, 193, 83, 72, 87, + 65, 128, 83, 73, 76, 75, 128, 83, 73, 77, 65, 128, 83, 84, 65, 82, 212, + 83, 87, 65, 65, 128, 83, 87, 65, 83, 200, 84, 72, 73, 73, 128, 84, 72, + 79, 79, 128, 84, 82, 69, 69, 128, 84, 84, 72, 79, 128, 84, 87, 65, 65, + 128, 87, 73, 78, 69, 128, 89, 65, 71, 72, 128, 89, 65, 90, 72, 128, 89, + 73, 87, 78, 128, 89, 87, 65, 65, 128, 90, 65, 73, 78, 128, 90, 72, 65, + 82, 128, 45, 68, 90, 85, 196, 65, 76, 69, 85, 212, 65, 76, 70, 65, 128, + 65, 77, 65, 82, 128, 65, 80, 69, 83, 207, 65, 82, 71, 73, 128, 66, 66, + 85, 84, 128, 66, 69, 65, 84, 128, 66, 76, 65, 68, 197, 66, 76, 85, 69, + 128, 66, 79, 78, 69, 128, 66, 82, 79, 65, 196, 66, 82, 85, 83, 200, 66, + 85, 75, 89, 128, 66, 90, 85, 78, 199, 67, 65, 82, 84, 128, 67, 85, 79, + 80, 128, 67, 85, 82, 86, 197, 67, 87, 73, 73, 128, 67, 87, 79, 79, 128, + 68, 65, 76, 69, 212, 68, 65, 78, 71, 128, 68, 68, 85, 82, 128, 68, 69, + 69, 82, 128, 68, 73, 77, 50, 128, 68, 90, 72, 65, 128, 68, 90, 72, 69, + 128, 68, 90, 74, 69, 128, 68, 90, 87, 69, 128, 68, 90, 90, 69, 128, 69, 65, 82, 84, 200, 69, 82, 65, 83, 197, 70, 69, 69, 68, 128, 70, 73, 83, 72, 128, 70, 76, 65, 71, 128, 70, 76, 65, 84, 128, 70, 82, 79, 71, 128, - 70, 87, 65, 65, 128, 71, 65, 84, 69, 128, 71, 67, 73, 71, 128, 71, 71, - 79, 80, 128, 71, 71, 85, 79, 128, 71, 72, 65, 68, 128, 71, 72, 72, 65, - 128, 71, 73, 77, 69, 204, 71, 79, 65, 76, 128, 71, 82, 65, 67, 197, 71, - 83, 85, 77, 128, 71, 89, 65, 83, 128, 71, 89, 79, 78, 128, 72, 65, 84, - 69, 128, 72, 65, 86, 69, 128, 72, 66, 65, 83, 193, 72, 69, 82, 85, 128, - 72, 72, 65, 65, 128, 72, 73, 69, 85, 200, 72, 88, 73, 84, 128, 72, 88, - 79, 80, 128, 72, 88, 85, 79, 128, 74, 65, 68, 69, 128, 74, 69, 69, 77, - 128, 74, 72, 69, 72, 128, 74, 74, 73, 69, 128, 74, 74, 85, 84, 128, 75, - 65, 75, 79, 128, 75, 72, 65, 72, 128, 75, 72, 65, 78, 199, 75, 72, 72, - 65, 128, 75, 78, 73, 70, 197, 75, 83, 83, 65, 128, 75, 87, 73, 73, 128, - 75, 87, 79, 79, 128, 76, 69, 65, 70, 128, 76, 73, 87, 78, 128, 76, 79, - 78, 71, 193, 76, 79, 87, 45, 185, 76, 87, 65, 65, 128, 76, 87, 73, 73, - 128, 76, 87, 79, 79, 128, 77, 69, 65, 84, 128, 77, 69, 69, 77, 128, 77, - 69, 69, 84, 128, 77, 69, 83, 79, 128, 77, 73, 69, 85, 205, 77, 79, 85, - 78, 196, 77, 87, 73, 73, 128, 77, 87, 79, 79, 128, 78, 65, 77, 69, 128, - 78, 65, 78, 65, 128, 78, 66, 73, 69, 128, 78, 73, 69, 85, 206, 78, 78, - 78, 65, 128, 78, 79, 68, 69, 128, 78, 89, 73, 80, 128, 78, 89, 79, 80, - 128, 78, 90, 85, 80, 128, 80, 65, 87, 78, 128, 80, 73, 69, 85, 208, 80, - 73, 87, 82, 128, 80, 76, 65, 67, 197, 80, 79, 85, 78, 196, 80, 87, 73, - 73, 128, 80, 87, 79, 79, 128, 81, 85, 79, 84, 197, 82, 65, 89, 83, 128, - 82, 66, 65, 83, 193, 82, 73, 69, 85, 204, 82, 73, 83, 72, 128, 82, 79, - 79, 75, 128, 82, 87, 65, 65, 128, 83, 65, 76, 76, 193, 83, 65, 76, 84, - 128, 83, 69, 65, 76, 128, 83, 72, 65, 65, 128, 83, 72, 65, 84, 128, 83, - 72, 69, 69, 128, 83, 72, 72, 65, 128, 83, 72, 73, 70, 212, 83, 72, 79, - 71, 201, 83, 72, 85, 82, 128, 83, 72, 87, 69, 128, 83, 72, 87, 73, 128, - 83, 72, 87, 79, 128, 83, 76, 85, 82, 128, 83, 77, 65, 83, 200, 83, 78, - 79, 85, 212, 83, 80, 65, 68, 197, 83, 81, 85, 65, 212, 83, 84, 65, 70, - 198, 83, 85, 75, 85, 206, 83, 87, 73, 73, 128, 83, 87, 79, 79, 128, 84, - 69, 88, 84, 128, 84, 72, 69, 82, 197, 84, 72, 79, 79, 128, 84, 73, 77, - 69, 128, 84, 73, 87, 78, 128, 84, 76, 72, 65, 128, 84, 76, 72, 69, 128, - 84, 76, 72, 73, 128, 84, 76, 72, 79, 128, 84, 82, 69, 69, 128, 84, 82, - 85, 69, 128, 84, 83, 72, 69, 128, 84, 87, 73, 73, 128, 84, 87, 79, 79, - 128, 85, 78, 68, 69, 210, 86, 69, 68, 69, 128, 86, 73, 68, 65, 128, 87, - 65, 76, 75, 128, 87, 65, 83, 76, 193, 87, 65, 84, 69, 210, 87, 72, 79, - 76, 197, 87, 79, 79, 68, 128, 87, 79, 79, 76, 128, 87, 89, 78, 78, 128, - 89, 65, 75, 72, 128, 89, 65, 84, 73, 128, 89, 69, 82, 73, 128, 89, 79, - 45, 73, 128, 89, 79, 71, 72, 128, 89, 85, 45, 73, 128, 89, 87, 73, 73, - 128, 89, 87, 79, 79, 128, 90, 65, 73, 78, 128, 90, 65, 81, 69, 198, 90, - 65, 84, 65, 128, 90, 76, 65, 77, 193, 45, 67, 72, 65, 210, 65, 69, 83, - 67, 128, 65, 70, 84, 69, 210, 65, 72, 83, 65, 128, 65, 73, 76, 77, 128, - 65, 73, 78, 78, 128, 65, 75, 66, 65, 210, 65, 76, 71, 73, 218, 65, 76, + 70, 87, 65, 65, 128, 71, 65, 66, 65, 128, 71, 65, 84, 69, 128, 71, 67, + 73, 71, 128, 71, 71, 79, 80, 128, 71, 71, 85, 79, 128, 71, 72, 65, 68, + 128, 71, 72, 72, 65, 128, 71, 73, 77, 69, 204, 71, 79, 65, 76, 128, 71, + 82, 65, 67, 197, 71, 83, 85, 77, 128, 71, 85, 82, 55, 128, 71, 89, 65, + 83, 128, 71, 89, 79, 78, 128, 72, 65, 84, 69, 128, 72, 65, 86, 69, 128, + 72, 66, 65, 83, 193, 72, 69, 78, 71, 128, 72, 69, 82, 85, 128, 72, 72, + 65, 65, 128, 72, 73, 69, 85, 200, 72, 85, 66, 50, 128, 72, 88, 73, 84, + 128, 72, 88, 79, 80, 128, 72, 88, 85, 79, 128, 73, 77, 73, 78, 128, 74, + 65, 68, 69, 128, 74, 69, 69, 77, 128, 74, 72, 69, 72, 128, 74, 74, 73, + 69, 128, 74, 74, 85, 84, 128, 75, 65, 68, 50, 128, 75, 65, 68, 53, 128, + 75, 65, 75, 79, 128, 75, 72, 65, 72, 128, 75, 72, 65, 78, 199, 75, 72, + 72, 65, 128, 75, 78, 73, 70, 197, 75, 83, 83, 65, 128, 75, 87, 73, 73, + 128, 75, 87, 79, 79, 128, 76, 69, 65, 70, 128, 76, 69, 78, 71, 193, 76, + 73, 87, 78, 128, 76, 79, 78, 71, 193, 76, 79, 87, 45, 185, 76, 87, 65, + 65, 128, 76, 87, 73, 73, 128, 76, 87, 79, 79, 128, 77, 69, 65, 84, 128, + 77, 69, 69, 77, 128, 77, 69, 69, 84, 128, 77, 69, 83, 79, 128, 77, 73, + 69, 85, 205, 77, 73, 76, 76, 197, 77, 79, 85, 78, 196, 77, 87, 73, 73, + 128, 77, 87, 79, 79, 128, 78, 65, 77, 69, 128, 78, 65, 78, 65, 128, 78, + 66, 73, 69, 128, 78, 71, 71, 65, 128, 78, 73, 69, 85, 206, 78, 78, 78, + 65, 128, 78, 79, 68, 69, 128, 78, 89, 69, 69, 128, 78, 89, 73, 80, 128, + 78, 89, 79, 80, 128, 78, 90, 85, 80, 128, 80, 65, 87, 78, 128, 80, 73, + 69, 85, 208, 80, 73, 87, 82, 128, 80, 76, 65, 67, 197, 80, 79, 85, 78, + 196, 80, 87, 73, 73, 128, 80, 87, 79, 79, 128, 81, 85, 79, 84, 197, 82, + 65, 89, 83, 128, 82, 66, 65, 83, 193, 82, 73, 69, 85, 204, 82, 79, 79, + 75, 128, 82, 85, 77, 65, 201, 82, 87, 65, 65, 128, 83, 65, 68, 69, 128, + 83, 65, 76, 76, 193, 83, 65, 76, 84, 128, 83, 69, 65, 76, 128, 83, 72, + 65, 65, 128, 83, 72, 65, 84, 128, 83, 72, 72, 65, 128, 83, 72, 73, 70, + 212, 83, 72, 79, 71, 201, 83, 72, 79, 79, 128, 83, 72, 85, 82, 128, 83, + 72, 87, 73, 128, 83, 72, 87, 79, 128, 83, 73, 71, 52, 128, 83, 76, 85, + 82, 128, 83, 77, 65, 83, 200, 83, 78, 79, 85, 212, 83, 80, 65, 68, 197, + 83, 81, 85, 65, 212, 83, 84, 65, 70, 198, 83, 85, 75, 85, 206, 83, 87, + 73, 73, 128, 83, 87, 79, 79, 128, 84, 67, 72, 69, 128, 84, 69, 88, 84, + 128, 84, 72, 69, 82, 197, 84, 73, 77, 69, 128, 84, 73, 87, 78, 128, 84, + 76, 72, 65, 128, 84, 76, 72, 69, 128, 84, 76, 72, 73, 128, 84, 76, 72, + 79, 128, 84, 82, 85, 69, 128, 84, 83, 72, 69, 128, 84, 83, 83, 69, 128, + 84, 83, 87, 69, 128, 84, 87, 73, 73, 128, 84, 87, 79, 79, 128, 85, 78, + 68, 69, 210, 86, 69, 68, 69, 128, 86, 69, 78, 68, 128, 86, 73, 68, 65, + 128, 87, 65, 76, 75, 128, 87, 65, 83, 76, 193, 87, 65, 84, 69, 210, 87, + 72, 79, 76, 197, 87, 79, 79, 68, 128, 87, 79, 79, 76, 128, 87, 89, 78, + 78, 128, 89, 65, 75, 72, 128, 89, 65, 84, 73, 128, 89, 69, 82, 73, 128, + 89, 79, 45, 73, 128, 89, 79, 71, 72, 128, 89, 85, 45, 73, 128, 89, 87, + 73, 73, 128, 89, 87, 79, 79, 128, 90, 65, 81, 69, 198, 90, 65, 84, 65, + 128, 90, 72, 87, 69, 128, 90, 76, 65, 77, 193, 45, 67, 72, 65, 210, 65, + 68, 69, 71, 128, 65, 69, 83, 67, 128, 65, 70, 84, 69, 210, 65, 72, 65, + 68, 128, 65, 72, 83, 65, 128, 65, 73, 76, 77, 128, 65, 73, 78, 78, 128, + 65, 75, 65, 82, 193, 65, 75, 66, 65, 210, 65, 76, 71, 73, 218, 65, 76, 76, 65, 200, 65, 76, 80, 65, 128, 65, 77, 80, 83, 128, 65, 78, 72, 85, - 128, 65, 78, 75, 72, 128, 65, 78, 83, 85, 218, 65, 82, 77, 89, 128, 65, - 84, 78, 65, 200, 65, 85, 78, 78, 128, 65, 89, 65, 72, 128, 66, 48, 49, - 56, 128, 66, 48, 49, 57, 128, 66, 48, 50, 50, 128, 66, 48, 51, 52, 128, - 66, 48, 52, 55, 128, 66, 48, 52, 57, 128, 66, 48, 53, 54, 128, 66, 48, - 54, 51, 128, 66, 48, 54, 52, 128, 66, 48, 55, 57, 128, 66, 48, 56, 50, - 128, 66, 48, 56, 51, 128, 66, 48, 56, 54, 128, 66, 48, 56, 57, 128, 66, - 49, 48, 53, 198, 66, 49, 48, 53, 205, 66, 49, 48, 54, 198, 66, 49, 48, - 54, 205, 66, 49, 48, 55, 198, 66, 49, 48, 55, 205, 66, 49, 48, 56, 198, - 66, 49, 48, 56, 205, 66, 49, 48, 57, 198, 66, 49, 48, 57, 205, 66, 49, - 51, 50, 128, 66, 49, 52, 50, 128, 66, 49, 52, 54, 128, 66, 49, 53, 48, - 128, 66, 49, 53, 50, 128, 66, 49, 53, 51, 128, 66, 49, 53, 52, 128, 66, - 49, 53, 53, 128, 66, 49, 53, 55, 128, 66, 49, 53, 56, 128, 66, 49, 54, - 48, 128, 66, 49, 54, 49, 128, 66, 49, 54, 52, 128, 66, 49, 54, 53, 128, - 66, 49, 54, 54, 128, 66, 49, 54, 55, 128, 66, 49, 54, 56, 128, 66, 49, - 54, 57, 128, 66, 49, 55, 48, 128, 66, 49, 55, 49, 128, 66, 49, 55, 50, - 128, 66, 49, 55, 52, 128, 66, 49, 55, 55, 128, 66, 49, 55, 56, 128, 66, - 49, 55, 57, 128, 66, 49, 56, 48, 128, 66, 49, 56, 49, 128, 66, 49, 56, - 50, 128, 66, 49, 56, 51, 128, 66, 49, 56, 52, 128, 66, 49, 56, 53, 128, - 66, 49, 56, 57, 128, 66, 49, 57, 48, 128, 66, 50, 48, 48, 128, 66, 50, - 48, 49, 128, 66, 50, 48, 50, 128, 66, 50, 48, 51, 128, 66, 50, 48, 52, - 128, 66, 50, 48, 53, 128, 66, 50, 48, 54, 128, 66, 50, 48, 55, 128, 66, - 50, 48, 56, 128, 66, 50, 48, 57, 128, 66, 50, 49, 48, 128, 66, 50, 49, - 49, 128, 66, 50, 49, 50, 128, 66, 50, 49, 51, 128, 66, 50, 49, 52, 128, - 66, 50, 49, 53, 128, 66, 50, 49, 54, 128, 66, 50, 49, 55, 128, 66, 50, - 49, 56, 128, 66, 50, 49, 57, 128, 66, 50, 50, 49, 128, 66, 50, 50, 50, - 128, 66, 50, 50, 54, 128, 66, 50, 50, 55, 128, 66, 50, 50, 56, 128, 66, - 50, 50, 57, 128, 66, 50, 51, 50, 128, 66, 50, 51, 52, 128, 66, 50, 51, - 54, 128, 66, 50, 52, 53, 128, 66, 50, 52, 54, 128, 66, 50, 52, 56, 128, - 66, 50, 52, 57, 128, 66, 50, 53, 48, 128, 66, 50, 53, 49, 128, 66, 50, - 53, 50, 128, 66, 50, 53, 51, 128, 66, 50, 53, 53, 128, 66, 50, 53, 54, - 128, 66, 50, 53, 55, 128, 66, 50, 53, 56, 128, 66, 50, 53, 57, 128, 66, - 51, 48, 53, 128, 66, 65, 67, 75, 128, 66, 65, 71, 65, 128, 66, 65, 72, - 84, 128, 66, 65, 82, 83, 128, 66, 65, 83, 69, 128, 66, 66, 65, 80, 128, - 66, 66, 65, 84, 128, 66, 66, 65, 88, 128, 66, 66, 69, 80, 128, 66, 66, - 69, 88, 128, 66, 66, 73, 69, 128, 66, 66, 73, 80, 128, 66, 66, 73, 84, - 128, 66, 66, 73, 88, 128, 66, 66, 79, 80, 128, 66, 66, 79, 84, 128, 66, - 66, 79, 88, 128, 66, 66, 85, 79, 128, 66, 66, 85, 80, 128, 66, 66, 85, - 82, 128, 66, 66, 85, 88, 128, 66, 66, 89, 80, 128, 66, 66, 89, 84, 128, - 66, 66, 89, 88, 128, 66, 67, 65, 68, 128, 66, 69, 65, 78, 128, 66, 69, - 69, 72, 128, 66, 69, 76, 76, 128, 66, 69, 76, 84, 128, 66, 69, 78, 68, - 128, 66, 69, 79, 82, 195, 66, 69, 84, 72, 128, 66, 73, 82, 85, 128, 66, - 76, 65, 78, 203, 66, 79, 65, 82, 128, 66, 79, 65, 84, 128, 66, 79, 68, - 89, 128, 66, 83, 68, 85, 211, 66, 83, 75, 65, 173, 66, 83, 75, 85, 210, - 66, 85, 76, 76, 128, 66, 85, 77, 80, 217, 66, 87, 69, 69, 128, 67, 65, - 65, 73, 128, 67, 65, 76, 67, 128, 67, 65, 76, 76, 128, 67, 65, 80, 79, - 128, 67, 65, 86, 69, 128, 67, 65, 89, 78, 128, 67, 67, 65, 65, 128, 67, - 67, 69, 69, 128, 67, 67, 72, 65, 128, 67, 67, 72, 69, 128, 67, 67, 72, - 73, 128, 67, 67, 72, 79, 128, 67, 67, 72, 85, 128, 67, 72, 65, 78, 128, - 67, 72, 65, 80, 128, 67, 72, 65, 84, 128, 67, 72, 65, 88, 128, 67, 72, - 69, 80, 128, 67, 72, 69, 84, 128, 67, 72, 69, 88, 128, 67, 72, 79, 65, - 128, 67, 72, 79, 69, 128, 67, 72, 79, 80, 128, 67, 72, 79, 84, 128, 67, - 72, 79, 88, 128, 67, 72, 85, 79, 128, 67, 72, 85, 80, 128, 67, 72, 85, - 82, 128, 67, 72, 85, 88, 128, 67, 72, 89, 80, 128, 67, 72, 89, 82, 128, - 67, 72, 89, 84, 128, 67, 72, 89, 88, 128, 67, 73, 69, 80, 128, 67, 73, - 69, 84, 128, 67, 73, 69, 88, 128, 67, 76, 65, 78, 128, 67, 76, 65, 87, - 128, 67, 76, 69, 65, 210, 67, 76, 79, 83, 197, 67, 79, 68, 65, 128, 67, - 79, 76, 76, 128, 67, 79, 80, 89, 128, 67, 85, 79, 88, 128, 67, 85, 82, - 88, 128, 67, 89, 82, 88, 128, 68, 65, 71, 65, 218, 68, 65, 71, 83, 128, - 68, 65, 73, 82, 128, 68, 65, 77, 80, 128, 68, 65, 82, 84, 128, 68, 68, - 65, 65, 128, 68, 68, 65, 76, 128, 68, 68, 65, 80, 128, 68, 68, 65, 84, - 128, 68, 68, 65, 88, 128, 68, 68, 69, 69, 128, 68, 68, 69, 80, 128, 68, - 68, 69, 88, 128, 68, 68, 72, 79, 128, 68, 68, 73, 69, 128, 68, 68, 73, - 80, 128, 68, 68, 73, 84, 128, 68, 68, 73, 88, 128, 68, 68, 79, 65, 128, - 68, 68, 79, 80, 128, 68, 68, 79, 84, 128, 68, 68, 79, 88, 128, 68, 68, - 85, 79, 128, 68, 68, 85, 80, 128, 68, 68, 85, 84, 128, 68, 68, 85, 88, - 128, 68, 68, 87, 65, 128, 68, 69, 65, 68, 128, 68, 69, 66, 73, 212, 68, - 69, 69, 76, 128, 68, 69, 72, 73, 128, 68, 69, 75, 65, 128, 68, 69, 83, - 73, 128, 68, 72, 65, 76, 128, 68, 73, 80, 76, 201, 68, 73, 83, 72, 128, - 68, 73, 84, 84, 207, 68, 76, 69, 69, 128, 68, 79, 73, 84, 128, 68, 79, - 79, 82, 128, 68, 79, 82, 85, 128, 68, 82, 85, 77, 128, 68, 89, 69, 72, - 128, 68, 90, 69, 69, 128, 69, 72, 87, 65, 218, 69, 74, 69, 67, 212, 69, + 128, 65, 78, 75, 72, 128, 65, 78, 83, 85, 218, 65, 80, 73, 78, 128, 65, + 82, 65, 68, 128, 65, 82, 77, 89, 128, 65, 83, 72, 57, 128, 65, 84, 78, + 65, 200, 65, 85, 78, 78, 128, 65, 89, 65, 72, 128, 66, 48, 49, 56, 128, + 66, 48, 49, 57, 128, 66, 48, 50, 50, 128, 66, 48, 51, 52, 128, 66, 48, + 52, 55, 128, 66, 48, 52, 57, 128, 66, 48, 53, 54, 128, 66, 48, 54, 51, + 128, 66, 48, 54, 52, 128, 66, 48, 55, 57, 128, 66, 48, 56, 50, 128, 66, + 48, 56, 51, 128, 66, 48, 56, 54, 128, 66, 48, 56, 57, 128, 66, 49, 48, + 53, 198, 66, 49, 48, 53, 205, 66, 49, 48, 54, 198, 66, 49, 48, 54, 205, + 66, 49, 48, 55, 198, 66, 49, 48, 55, 205, 66, 49, 48, 56, 198, 66, 49, + 48, 56, 205, 66, 49, 48, 57, 198, 66, 49, 48, 57, 205, 66, 49, 51, 50, + 128, 66, 49, 52, 50, 128, 66, 49, 52, 54, 128, 66, 49, 53, 48, 128, 66, + 49, 53, 50, 128, 66, 49, 53, 51, 128, 66, 49, 53, 52, 128, 66, 49, 53, + 53, 128, 66, 49, 53, 55, 128, 66, 49, 53, 56, 128, 66, 49, 54, 48, 128, + 66, 49, 54, 49, 128, 66, 49, 54, 52, 128, 66, 49, 54, 53, 128, 66, 49, + 54, 54, 128, 66, 49, 54, 55, 128, 66, 49, 54, 56, 128, 66, 49, 54, 57, + 128, 66, 49, 55, 48, 128, 66, 49, 55, 49, 128, 66, 49, 55, 50, 128, 66, + 49, 55, 52, 128, 66, 49, 55, 55, 128, 66, 49, 55, 56, 128, 66, 49, 55, + 57, 128, 66, 49, 56, 48, 128, 66, 49, 56, 49, 128, 66, 49, 56, 50, 128, + 66, 49, 56, 51, 128, 66, 49, 56, 52, 128, 66, 49, 56, 53, 128, 66, 49, + 56, 57, 128, 66, 49, 57, 48, 128, 66, 50, 48, 48, 128, 66, 50, 48, 49, + 128, 66, 50, 48, 50, 128, 66, 50, 48, 51, 128, 66, 50, 48, 52, 128, 66, + 50, 48, 53, 128, 66, 50, 48, 54, 128, 66, 50, 48, 55, 128, 66, 50, 48, + 56, 128, 66, 50, 48, 57, 128, 66, 50, 49, 48, 128, 66, 50, 49, 49, 128, + 66, 50, 49, 50, 128, 66, 50, 49, 51, 128, 66, 50, 49, 52, 128, 66, 50, + 49, 53, 128, 66, 50, 49, 54, 128, 66, 50, 49, 55, 128, 66, 50, 49, 56, + 128, 66, 50, 49, 57, 128, 66, 50, 50, 49, 128, 66, 50, 50, 50, 128, 66, + 50, 50, 54, 128, 66, 50, 50, 55, 128, 66, 50, 50, 56, 128, 66, 50, 50, + 57, 128, 66, 50, 51, 50, 128, 66, 50, 51, 52, 128, 66, 50, 51, 54, 128, + 66, 50, 52, 53, 128, 66, 50, 52, 54, 128, 66, 50, 52, 56, 128, 66, 50, + 52, 57, 128, 66, 50, 53, 48, 128, 66, 50, 53, 49, 128, 66, 50, 53, 50, + 128, 66, 50, 53, 51, 128, 66, 50, 53, 53, 128, 66, 50, 53, 54, 128, 66, + 50, 53, 55, 128, 66, 50, 53, 56, 128, 66, 50, 53, 57, 128, 66, 51, 48, + 53, 128, 66, 65, 71, 51, 128, 66, 65, 71, 65, 128, 66, 65, 72, 84, 128, + 66, 65, 78, 68, 128, 66, 65, 82, 83, 128, 66, 65, 83, 69, 128, 66, 66, + 65, 80, 128, 66, 66, 65, 84, 128, 66, 66, 65, 88, 128, 66, 66, 69, 80, + 128, 66, 66, 69, 88, 128, 66, 66, 73, 69, 128, 66, 66, 73, 80, 128, 66, + 66, 73, 84, 128, 66, 66, 73, 88, 128, 66, 66, 79, 80, 128, 66, 66, 79, + 84, 128, 66, 66, 79, 88, 128, 66, 66, 85, 79, 128, 66, 66, 85, 80, 128, + 66, 66, 85, 82, 128, 66, 66, 85, 88, 128, 66, 66, 89, 80, 128, 66, 66, + 89, 84, 128, 66, 66, 89, 88, 128, 66, 67, 65, 68, 128, 66, 69, 65, 78, + 128, 66, 69, 69, 72, 128, 66, 69, 76, 76, 128, 66, 69, 76, 84, 128, 66, + 69, 78, 68, 128, 66, 69, 79, 82, 195, 66, 69, 84, 72, 128, 66, 72, 69, + 69, 128, 66, 72, 79, 79, 128, 66, 73, 82, 85, 128, 66, 76, 65, 78, 203, + 66, 79, 65, 82, 128, 66, 79, 65, 84, 128, 66, 79, 68, 89, 128, 66, 83, + 68, 85, 211, 66, 83, 75, 65, 173, 66, 83, 75, 85, 210, 66, 85, 76, 76, + 128, 66, 85, 76, 76, 211, 66, 85, 76, 85, 199, 66, 85, 77, 80, 217, 66, + 85, 82, 50, 128, 66, 87, 69, 69, 128, 67, 45, 49, 56, 128, 67, 45, 51, + 57, 128, 67, 65, 65, 73, 128, 67, 65, 76, 67, 128, 67, 65, 76, 76, 128, + 67, 65, 76, 89, 193, 67, 65, 80, 79, 128, 67, 65, 86, 69, 128, 67, 65, + 89, 78, 128, 67, 67, 65, 65, 128, 67, 67, 69, 69, 128, 67, 67, 72, 65, + 128, 67, 67, 72, 73, 128, 67, 67, 72, 79, 128, 67, 67, 72, 85, 128, 67, + 72, 65, 78, 128, 67, 72, 65, 80, 128, 67, 72, 65, 84, 128, 67, 72, 65, + 88, 128, 67, 72, 69, 80, 128, 67, 72, 69, 84, 128, 67, 72, 69, 88, 128, + 67, 72, 72, 65, 128, 67, 72, 79, 65, 128, 67, 72, 79, 69, 128, 67, 72, + 79, 80, 128, 67, 72, 79, 84, 128, 67, 72, 79, 88, 128, 67, 72, 85, 79, + 128, 67, 72, 85, 80, 128, 67, 72, 85, 82, 128, 67, 72, 85, 88, 128, 67, + 72, 89, 80, 128, 67, 72, 89, 82, 128, 67, 72, 89, 84, 128, 67, 72, 89, + 88, 128, 67, 73, 69, 80, 128, 67, 73, 69, 84, 128, 67, 73, 69, 88, 128, + 67, 76, 65, 78, 128, 67, 76, 65, 87, 128, 67, 76, 69, 65, 210, 67, 76, + 79, 83, 197, 67, 76, 85, 66, 128, 67, 79, 68, 65, 128, 67, 79, 76, 76, + 128, 67, 79, 77, 66, 128, 67, 79, 80, 89, 128, 67, 85, 79, 88, 128, 67, + 85, 82, 88, 128, 67, 89, 82, 88, 128, 68, 65, 71, 65, 218, 68, 65, 71, + 83, 128, 68, 65, 73, 82, 128, 68, 65, 77, 80, 128, 68, 65, 82, 84, 128, + 68, 68, 65, 65, 128, 68, 68, 65, 76, 128, 68, 68, 65, 80, 128, 68, 68, + 65, 84, 128, 68, 68, 65, 88, 128, 68, 68, 68, 65, 128, 68, 68, 69, 69, + 128, 68, 68, 69, 80, 128, 68, 68, 69, 88, 128, 68, 68, 72, 79, 128, 68, + 68, 73, 69, 128, 68, 68, 73, 80, 128, 68, 68, 73, 84, 128, 68, 68, 73, + 88, 128, 68, 68, 79, 65, 128, 68, 68, 79, 80, 128, 68, 68, 79, 84, 128, + 68, 68, 79, 88, 128, 68, 68, 85, 79, 128, 68, 68, 85, 80, 128, 68, 68, + 85, 84, 128, 68, 68, 85, 88, 128, 68, 68, 87, 65, 128, 68, 69, 65, 68, + 128, 68, 69, 66, 73, 212, 68, 69, 69, 76, 128, 68, 69, 72, 73, 128, 68, + 69, 75, 65, 128, 68, 69, 76, 84, 128, 68, 69, 78, 71, 128, 68, 69, 83, + 73, 128, 68, 72, 65, 76, 128, 68, 72, 69, 69, 128, 68, 72, 72, 65, 128, + 68, 72, 72, 69, 128, 68, 72, 72, 73, 128, 68, 72, 72, 79, 128, 68, 72, + 72, 85, 128, 68, 72, 79, 79, 128, 68, 73, 80, 76, 201, 68, 73, 84, 84, + 207, 68, 75, 65, 82, 128, 68, 76, 69, 69, 128, 68, 79, 45, 79, 128, 68, + 79, 73, 84, 128, 68, 79, 78, 71, 128, 68, 79, 79, 82, 128, 68, 79, 82, + 85, 128, 68, 79, 86, 69, 128, 68, 82, 85, 77, 128, 68, 85, 66, 50, 128, + 68, 85, 78, 51, 128, 68, 85, 78, 52, 128, 68, 85, 82, 50, 128, 68, 89, + 69, 72, 128, 68, 90, 69, 69, 128, 69, 65, 82, 76, 217, 69, 68, 73, 78, + 128, 69, 71, 73, 82, 128, 69, 72, 87, 65, 218, 69, 74, 69, 67, 212, 69, 78, 84, 69, 210, 69, 84, 72, 69, 204, 69, 85, 45, 85, 128, 69, 85, 76, - 69, 210, 70, 65, 65, 73, 128, 70, 65, 78, 71, 128, 70, 76, 73, 80, 128, - 70, 79, 82, 77, 211, 70, 82, 65, 78, 195, 70, 85, 82, 88, 128, 70, 85, - 83, 69, 128, 70, 87, 69, 69, 128, 71, 65, 77, 65, 204, 71, 68, 65, 78, - 128, 71, 69, 65, 82, 128, 71, 71, 65, 65, 128, 71, 71, 65, 80, 128, 71, - 71, 65, 84, 128, 71, 71, 65, 88, 128, 71, 71, 69, 69, 128, 71, 71, 69, - 80, 128, 71, 71, 69, 84, 128, 71, 71, 69, 88, 128, 71, 71, 73, 69, 128, - 71, 71, 73, 84, 128, 71, 71, 73, 88, 128, 71, 71, 79, 84, 128, 71, 71, - 79, 88, 128, 71, 71, 85, 80, 128, 71, 71, 85, 82, 128, 71, 71, 85, 84, - 128, 71, 71, 85, 88, 128, 71, 71, 87, 65, 128, 71, 71, 87, 69, 128, 71, - 71, 87, 73, 128, 71, 72, 69, 69, 128, 71, 73, 66, 65, 128, 71, 73, 69, - 84, 128, 71, 73, 71, 65, 128, 71, 79, 73, 78, 199, 71, 79, 82, 84, 128, - 71, 85, 69, 72, 128, 71, 89, 65, 65, 128, 71, 89, 69, 69, 128, 72, 65, - 69, 71, 204, 72, 65, 71, 76, 128, 72, 69, 77, 80, 128, 72, 72, 69, 69, - 128, 72, 72, 87, 65, 128, 72, 73, 69, 88, 128, 72, 73, 90, 66, 128, 72, - 76, 65, 80, 128, 72, 76, 65, 84, 128, 72, 76, 65, 88, 128, 72, 76, 69, - 80, 128, 72, 76, 69, 88, 128, 72, 76, 73, 69, 128, 72, 76, 73, 80, 128, - 72, 76, 73, 84, 128, 72, 76, 73, 88, 128, 72, 76, 79, 80, 128, 72, 76, - 79, 88, 128, 72, 76, 85, 79, 128, 72, 76, 85, 80, 128, 72, 76, 85, 82, - 128, 72, 76, 85, 84, 128, 72, 76, 85, 88, 128, 72, 76, 89, 80, 128, 72, - 76, 89, 82, 128, 72, 76, 89, 84, 128, 72, 76, 89, 88, 128, 72, 77, 65, - 80, 128, 72, 77, 65, 84, 128, 72, 77, 65, 88, 128, 72, 77, 73, 69, 128, - 72, 77, 73, 80, 128, 72, 77, 73, 84, 128, 72, 77, 73, 88, 128, 72, 77, - 79, 80, 128, 72, 77, 79, 84, 128, 72, 77, 79, 88, 128, 72, 77, 85, 79, - 128, 72, 77, 85, 80, 128, 72, 77, 85, 82, 128, 72, 77, 85, 84, 128, 72, - 77, 85, 88, 128, 72, 77, 89, 80, 128, 72, 77, 89, 82, 128, 72, 77, 89, - 88, 128, 72, 78, 65, 80, 128, 72, 78, 65, 84, 128, 72, 78, 65, 88, 128, - 72, 78, 69, 80, 128, 72, 78, 69, 88, 128, 72, 78, 73, 69, 128, 72, 78, - 73, 80, 128, 72, 78, 73, 84, 128, 72, 78, 73, 88, 128, 72, 78, 79, 80, - 128, 72, 78, 79, 84, 128, 72, 78, 79, 88, 128, 72, 78, 85, 79, 128, 72, - 78, 85, 84, 128, 72, 79, 79, 78, 128, 72, 79, 84, 65, 128, 72, 80, 87, - 71, 128, 72, 85, 77, 65, 206, 72, 88, 65, 80, 128, 72, 88, 65, 84, 128, - 72, 88, 65, 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 88, 128, 72, 88, - 73, 69, 128, 72, 88, 73, 80, 128, 72, 88, 73, 88, 128, 72, 88, 79, 84, - 128, 72, 88, 79, 88, 128, 72, 90, 87, 71, 128, 72, 90, 90, 80, 128, 72, - 90, 90, 90, 128, 73, 45, 69, 85, 128, 73, 45, 89, 65, 128, 73, 68, 76, - 69, 128, 73, 70, 73, 78, 128, 73, 76, 85, 89, 128, 73, 78, 67, 72, 128, - 73, 78, 78, 69, 210, 73, 78, 78, 78, 128, 73, 78, 84, 73, 128, 73, 83, - 79, 78, 128, 73, 84, 69, 77, 128, 73, 85, 74, 65, 128, 74, 69, 82, 65, + 69, 210, 69, 90, 69, 78, 128, 70, 65, 65, 73, 128, 70, 65, 78, 71, 128, + 70, 76, 73, 80, 128, 70, 79, 82, 77, 211, 70, 82, 65, 78, 195, 70, 85, + 82, 88, 128, 70, 85, 83, 69, 128, 70, 87, 69, 69, 128, 71, 65, 77, 65, + 204, 71, 65, 77, 76, 128, 71, 65, 82, 51, 128, 71, 66, 69, 78, 128, 71, + 66, 79, 78, 128, 71, 68, 65, 78, 128, 71, 69, 65, 82, 128, 71, 69, 68, + 69, 128, 71, 71, 65, 65, 128, 71, 71, 65, 80, 128, 71, 71, 65, 84, 128, + 71, 71, 65, 88, 128, 71, 71, 69, 80, 128, 71, 71, 69, 84, 128, 71, 71, + 69, 88, 128, 71, 71, 73, 69, 128, 71, 71, 73, 84, 128, 71, 71, 73, 88, + 128, 71, 71, 79, 84, 128, 71, 71, 79, 88, 128, 71, 71, 85, 80, 128, 71, + 71, 85, 82, 128, 71, 71, 85, 84, 128, 71, 71, 85, 88, 128, 71, 71, 87, + 65, 128, 71, 71, 87, 69, 128, 71, 71, 87, 73, 128, 71, 72, 69, 69, 128, + 71, 72, 87, 65, 128, 71, 73, 66, 65, 128, 71, 73, 69, 84, 128, 71, 73, + 71, 65, 128, 71, 73, 82, 51, 128, 71, 79, 73, 78, 199, 71, 79, 78, 71, + 128, 71, 79, 82, 65, 128, 71, 79, 82, 84, 128, 71, 82, 69, 69, 206, 71, + 85, 69, 72, 128, 71, 89, 65, 65, 128, 71, 89, 69, 69, 128, 72, 65, 69, + 71, 204, 72, 65, 71, 76, 128, 72, 65, 83, 69, 210, 72, 69, 77, 80, 128, + 72, 72, 87, 65, 128, 72, 73, 68, 69, 128, 72, 73, 69, 88, 128, 72, 73, + 90, 66, 128, 72, 76, 65, 80, 128, 72, 76, 65, 84, 128, 72, 76, 65, 88, + 128, 72, 76, 69, 80, 128, 72, 76, 69, 88, 128, 72, 76, 73, 69, 128, 72, + 76, 73, 80, 128, 72, 76, 73, 84, 128, 72, 76, 73, 88, 128, 72, 76, 79, + 80, 128, 72, 76, 79, 88, 128, 72, 76, 85, 79, 128, 72, 76, 85, 80, 128, + 72, 76, 85, 82, 128, 72, 76, 85, 84, 128, 72, 76, 85, 88, 128, 72, 76, + 89, 80, 128, 72, 76, 89, 82, 128, 72, 76, 89, 84, 128, 72, 76, 89, 88, + 128, 72, 77, 65, 80, 128, 72, 77, 65, 84, 128, 72, 77, 65, 88, 128, 72, + 77, 73, 69, 128, 72, 77, 73, 80, 128, 72, 77, 73, 84, 128, 72, 77, 73, + 88, 128, 72, 77, 79, 80, 128, 72, 77, 79, 84, 128, 72, 77, 79, 88, 128, + 72, 77, 85, 79, 128, 72, 77, 85, 80, 128, 72, 77, 85, 82, 128, 72, 77, + 85, 84, 128, 72, 77, 85, 88, 128, 72, 77, 89, 80, 128, 72, 77, 89, 82, + 128, 72, 77, 89, 88, 128, 72, 78, 65, 80, 128, 72, 78, 65, 84, 128, 72, + 78, 65, 88, 128, 72, 78, 69, 80, 128, 72, 78, 69, 88, 128, 72, 78, 73, + 69, 128, 72, 78, 73, 80, 128, 72, 78, 73, 84, 128, 72, 78, 73, 88, 128, + 72, 78, 79, 80, 128, 72, 78, 79, 84, 128, 72, 78, 79, 88, 128, 72, 78, + 85, 79, 128, 72, 78, 85, 84, 128, 72, 79, 76, 65, 205, 72, 79, 79, 78, + 128, 72, 79, 84, 65, 128, 72, 80, 87, 71, 128, 72, 85, 76, 50, 128, 72, + 85, 77, 65, 206, 72, 88, 65, 80, 128, 72, 88, 65, 84, 128, 72, 88, 65, + 88, 128, 72, 88, 69, 80, 128, 72, 88, 69, 88, 128, 72, 88, 73, 69, 128, + 72, 88, 73, 80, 128, 72, 88, 73, 88, 128, 72, 88, 79, 84, 128, 72, 88, + 79, 88, 128, 72, 88, 87, 71, 128, 72, 90, 87, 71, 128, 72, 90, 90, 80, + 128, 72, 90, 90, 90, 128, 73, 45, 69, 85, 128, 73, 45, 89, 65, 128, 73, + 68, 76, 69, 128, 73, 70, 73, 78, 128, 73, 75, 65, 82, 193, 73, 76, 85, + 84, 128, 73, 76, 85, 89, 128, 73, 78, 67, 72, 128, 73, 78, 78, 69, 210, + 73, 78, 78, 78, 128, 73, 78, 84, 73, 128, 73, 83, 79, 78, 128, 73, 84, + 69, 77, 128, 73, 85, 74, 65, 128, 74, 69, 82, 65, 128, 74, 69, 82, 65, 206, 74, 74, 69, 69, 128, 74, 74, 73, 80, 128, 74, 74, 73, 84, 128, 74, 74, 73, 88, 128, 74, 74, 79, 80, 128, 74, 74, 79, 84, 128, 74, 74, 79, 88, 128, 74, 74, 85, 79, 128, 74, 74, 85, 80, 128, 74, 74, 85, 82, 128, 74, 74, 85, 88, 128, 74, 74, 89, 80, 128, 74, 74, 89, 84, 128, 74, 74, - 89, 88, 128, 74, 85, 76, 89, 128, 74, 85, 78, 69, 128, 74, 85, 79, 84, - 128, 75, 65, 65, 70, 128, 75, 65, 65, 73, 128, 75, 65, 80, 72, 128, 75, - 65, 80, 79, 128, 75, 67, 65, 76, 128, 75, 72, 65, 65, 128, 75, 72, 65, - 73, 128, 75, 72, 65, 78, 128, 75, 72, 69, 69, 128, 75, 72, 79, 78, 128, - 75, 73, 67, 75, 128, 75, 73, 69, 80, 128, 75, 73, 69, 88, 128, 75, 73, - 82, 79, 128, 75, 75, 69, 69, 128, 75, 79, 77, 66, 213, 75, 79, 84, 79, - 128, 75, 85, 79, 80, 128, 75, 85, 79, 88, 128, 75, 85, 82, 84, 128, 75, - 85, 82, 88, 128, 75, 85, 85, 72, 128, 75, 87, 69, 69, 128, 75, 88, 65, - 65, 128, 75, 88, 69, 69, 128, 75, 88, 87, 65, 128, 75, 88, 87, 69, 128, - 75, 88, 87, 73, 128, 75, 89, 65, 65, 128, 75, 89, 69, 69, 128, 76, 65, - 65, 73, 128, 76, 65, 65, 78, 128, 76, 65, 69, 86, 128, 76, 65, 77, 69, - 128, 76, 65, 77, 69, 196, 76, 68, 65, 78, 128, 76, 69, 69, 75, 128, 76, - 69, 71, 83, 128, 76, 69, 86, 69, 204, 76, 69, 90, 72, 128, 76, 72, 65, - 65, 128, 76, 72, 73, 73, 128, 76, 72, 79, 79, 128, 76, 73, 69, 84, 128, - 76, 73, 70, 69, 128, 76, 73, 84, 82, 193, 76, 79, 76, 76, 128, 76, 79, - 79, 84, 128, 76, 85, 73, 83, 128, 76, 85, 79, 84, 128, 77, 65, 65, 73, - 128, 77, 65, 82, 69, 128, 77, 69, 82, 73, 128, 77, 69, 83, 72, 128, 77, + 89, 88, 128, 74, 79, 78, 71, 128, 74, 85, 76, 89, 128, 74, 85, 78, 69, + 128, 74, 85, 78, 79, 128, 74, 85, 79, 84, 128, 75, 65, 65, 70, 128, 75, + 65, 65, 73, 128, 75, 65, 68, 52, 128, 75, 65, 77, 50, 128, 75, 65, 77, + 52, 128, 75, 65, 78, 71, 128, 75, 65, 80, 72, 128, 75, 65, 80, 79, 128, + 75, 67, 65, 76, 128, 75, 72, 65, 65, 128, 75, 72, 65, 73, 128, 75, 72, + 65, 78, 128, 75, 72, 69, 69, 128, 75, 72, 79, 78, 128, 75, 73, 67, 75, + 128, 75, 73, 69, 80, 128, 75, 73, 69, 88, 128, 75, 73, 82, 79, 128, 75, + 73, 83, 72, 128, 75, 75, 69, 69, 128, 75, 79, 77, 66, 213, 75, 79, 84, + 79, 128, 75, 80, 65, 78, 128, 75, 80, 69, 69, 128, 75, 80, 69, 78, 128, + 75, 80, 79, 79, 128, 75, 85, 78, 71, 128, 75, 85, 79, 80, 128, 75, 85, + 79, 88, 128, 75, 85, 82, 84, 128, 75, 85, 82, 88, 128, 75, 85, 85, 72, + 128, 75, 87, 69, 69, 128, 75, 88, 65, 65, 128, 75, 88, 69, 69, 128, 75, + 88, 87, 65, 128, 75, 88, 87, 69, 128, 75, 88, 87, 73, 128, 75, 89, 65, + 65, 128, 75, 89, 69, 69, 128, 76, 65, 65, 73, 128, 76, 65, 65, 78, 128, + 76, 65, 67, 65, 128, 76, 65, 69, 86, 128, 76, 65, 77, 68, 128, 76, 65, + 77, 69, 128, 76, 65, 77, 69, 196, 76, 68, 65, 78, 128, 76, 69, 69, 75, + 128, 76, 69, 71, 83, 128, 76, 69, 86, 69, 204, 76, 69, 90, 72, 128, 76, + 72, 65, 65, 128, 76, 72, 73, 73, 128, 76, 72, 79, 79, 128, 76, 73, 69, + 84, 128, 76, 73, 70, 69, 128, 76, 73, 76, 89, 128, 76, 73, 84, 82, 193, + 76, 79, 76, 76, 128, 76, 79, 79, 84, 128, 76, 85, 73, 83, 128, 76, 85, + 79, 84, 128, 77, 65, 65, 73, 128, 77, 65, 68, 85, 128, 77, 65, 82, 69, + 128, 77, 66, 69, 69, 128, 77, 69, 82, 73, 128, 77, 69, 83, 72, 128, 77, 69, 83, 73, 128, 77, 71, 65, 80, 128, 77, 71, 65, 84, 128, 77, 71, 65, - 88, 128, 77, 71, 69, 80, 128, 77, 71, 69, 88, 128, 77, 71, 73, 69, 128, - 77, 71, 79, 80, 128, 77, 71, 79, 84, 128, 77, 71, 79, 88, 128, 77, 71, - 85, 79, 128, 77, 71, 85, 80, 128, 77, 71, 85, 82, 128, 77, 71, 85, 84, - 128, 77, 71, 85, 88, 128, 77, 73, 67, 82, 207, 77, 73, 73, 78, 128, 77, - 73, 76, 76, 197, 77, 73, 77, 69, 128, 77, 73, 78, 89, 128, 77, 73, 82, - 73, 128, 77, 78, 89, 65, 205, 77, 79, 78, 84, 200, 77, 79, 85, 84, 200, - 77, 79, 86, 69, 196, 77, 85, 73, 78, 128, 77, 85, 76, 84, 201, 77, 85, - 79, 84, 128, 77, 87, 69, 69, 128, 78, 65, 65, 73, 128, 78, 65, 73, 82, - 193, 78, 65, 78, 68, 128, 78, 66, 65, 80, 128, 78, 66, 65, 84, 128, 78, - 66, 65, 88, 128, 78, 66, 73, 80, 128, 78, 66, 73, 84, 128, 78, 66, 73, - 88, 128, 78, 66, 79, 80, 128, 78, 66, 79, 84, 128, 78, 66, 79, 88, 128, - 78, 66, 85, 80, 128, 78, 66, 85, 82, 128, 78, 66, 85, 84, 128, 78, 66, - 85, 88, 128, 78, 66, 89, 80, 128, 78, 66, 89, 82, 128, 78, 66, 89, 84, - 128, 78, 66, 89, 88, 128, 78, 68, 65, 80, 128, 78, 68, 65, 84, 128, 78, - 68, 65, 88, 128, 78, 68, 69, 80, 128, 78, 68, 73, 69, 128, 78, 68, 73, - 80, 128, 78, 68, 73, 84, 128, 78, 68, 73, 88, 128, 78, 68, 79, 80, 128, - 78, 68, 79, 84, 128, 78, 68, 79, 88, 128, 78, 68, 85, 80, 128, 78, 68, - 85, 82, 128, 78, 68, 85, 84, 128, 78, 68, 85, 88, 128, 78, 71, 65, 73, - 128, 78, 71, 65, 80, 128, 78, 71, 65, 84, 128, 78, 71, 65, 88, 128, 78, - 71, 69, 80, 128, 78, 71, 69, 88, 128, 78, 71, 73, 69, 128, 78, 71, 75, - 65, 128, 78, 71, 79, 80, 128, 78, 71, 79, 84, 128, 78, 71, 79, 88, 128, - 78, 71, 85, 79, 128, 78, 74, 73, 69, 128, 78, 74, 73, 80, 128, 78, 74, - 73, 84, 128, 78, 74, 73, 88, 128, 78, 74, 79, 80, 128, 78, 74, 79, 84, + 88, 128, 77, 71, 66, 65, 128, 77, 71, 66, 69, 128, 77, 71, 66, 73, 128, + 77, 71, 66, 79, 128, 77, 71, 66, 85, 128, 77, 71, 69, 80, 128, 77, 71, + 69, 88, 128, 77, 71, 73, 69, 128, 77, 71, 79, 80, 128, 77, 71, 79, 84, + 128, 77, 71, 79, 88, 128, 77, 71, 85, 79, 128, 77, 71, 85, 80, 128, 77, + 71, 85, 82, 128, 77, 71, 85, 84, 128, 77, 71, 85, 88, 128, 77, 73, 67, + 82, 207, 77, 73, 73, 78, 128, 77, 73, 77, 69, 128, 77, 73, 78, 89, 128, + 77, 73, 82, 73, 128, 77, 78, 89, 65, 205, 77, 79, 78, 84, 200, 77, 79, + 85, 84, 200, 77, 79, 86, 69, 196, 77, 85, 73, 78, 128, 77, 85, 76, 84, + 201, 77, 85, 79, 84, 128, 77, 87, 69, 69, 128, 78, 65, 65, 73, 128, 78, + 65, 73, 82, 193, 78, 65, 77, 50, 128, 78, 65, 78, 68, 128, 78, 66, 65, + 80, 128, 78, 66, 65, 84, 128, 78, 66, 65, 88, 128, 78, 66, 73, 80, 128, + 78, 66, 73, 84, 128, 78, 66, 73, 88, 128, 78, 66, 79, 80, 128, 78, 66, + 79, 84, 128, 78, 66, 79, 88, 128, 78, 66, 85, 80, 128, 78, 66, 85, 82, + 128, 78, 66, 85, 84, 128, 78, 66, 85, 88, 128, 78, 66, 89, 80, 128, 78, + 66, 89, 82, 128, 78, 66, 89, 84, 128, 78, 66, 89, 88, 128, 78, 68, 65, + 80, 128, 78, 68, 65, 84, 128, 78, 68, 65, 88, 128, 78, 68, 69, 69, 128, + 78, 68, 73, 69, 128, 78, 68, 73, 80, 128, 78, 68, 73, 84, 128, 78, 68, + 73, 88, 128, 78, 68, 79, 79, 128, 78, 68, 79, 80, 128, 78, 68, 79, 84, + 128, 78, 68, 79, 88, 128, 78, 68, 85, 80, 128, 78, 68, 85, 82, 128, 78, + 68, 85, 84, 128, 78, 68, 85, 88, 128, 78, 71, 65, 73, 128, 78, 71, 65, + 78, 128, 78, 71, 65, 80, 128, 78, 71, 65, 84, 128, 78, 71, 65, 88, 128, + 78, 71, 69, 78, 128, 78, 71, 69, 80, 128, 78, 71, 69, 88, 128, 78, 71, + 71, 69, 128, 78, 71, 71, 73, 128, 78, 71, 71, 79, 128, 78, 71, 71, 85, + 128, 78, 71, 73, 69, 128, 78, 71, 75, 65, 128, 78, 71, 79, 78, 128, 78, + 71, 79, 80, 128, 78, 71, 79, 84, 128, 78, 71, 79, 88, 128, 78, 71, 85, + 79, 128, 78, 72, 74, 65, 128, 78, 72, 85, 69, 128, 78, 74, 69, 69, 128, + 78, 74, 73, 69, 128, 78, 74, 73, 80, 128, 78, 74, 73, 84, 128, 78, 74, + 73, 88, 128, 78, 74, 79, 79, 128, 78, 74, 79, 80, 128, 78, 74, 79, 84, 128, 78, 74, 79, 88, 128, 78, 74, 85, 79, 128, 78, 74, 85, 80, 128, 78, 74, 85, 82, 128, 78, 74, 85, 88, 128, 78, 74, 89, 80, 128, 78, 74, 89, 82, 128, 78, 74, 89, 84, 128, 78, 74, 89, 88, 128, 78, 78, 71, 65, 128, @@ -2700,6089 +2965,7377 @@ 128, 78, 82, 69, 84, 128, 78, 82, 69, 88, 128, 78, 82, 79, 80, 128, 78, 82, 79, 88, 128, 78, 82, 85, 80, 128, 78, 82, 85, 82, 128, 78, 82, 85, 84, 128, 78, 82, 85, 88, 128, 78, 82, 89, 80, 128, 78, 82, 89, 82, 128, - 78, 82, 89, 84, 128, 78, 82, 89, 88, 128, 78, 85, 76, 76, 128, 78, 85, - 79, 80, 128, 78, 85, 82, 88, 128, 78, 85, 85, 78, 128, 78, 89, 65, 65, - 128, 78, 89, 67, 65, 128, 78, 89, 69, 69, 128, 78, 89, 69, 72, 128, 78, - 89, 73, 69, 128, 78, 89, 73, 84, 128, 78, 89, 73, 88, 128, 78, 89, 79, - 65, 128, 78, 89, 79, 84, 128, 78, 89, 79, 88, 128, 78, 89, 85, 79, 128, - 78, 89, 85, 80, 128, 78, 89, 85, 84, 128, 78, 89, 85, 88, 128, 78, 89, - 87, 65, 128, 78, 90, 65, 80, 128, 78, 90, 65, 84, 128, 78, 90, 65, 88, - 128, 78, 90, 69, 88, 128, 78, 90, 73, 69, 128, 78, 90, 73, 80, 128, 78, - 90, 73, 84, 128, 78, 90, 73, 88, 128, 78, 90, 79, 80, 128, 78, 90, 79, - 88, 128, 78, 90, 85, 79, 128, 78, 90, 85, 82, 128, 78, 90, 85, 88, 128, - 78, 90, 89, 80, 128, 78, 90, 89, 82, 128, 78, 90, 89, 84, 128, 78, 90, - 89, 88, 128, 79, 45, 69, 79, 128, 79, 45, 89, 69, 128, 79, 78, 83, 85, - 128, 79, 79, 77, 85, 128, 79, 79, 90, 69, 128, 79, 85, 78, 67, 197, 80, - 65, 65, 73, 128, 80, 65, 68, 77, 193, 80, 65, 82, 65, 128, 80, 69, 65, - 67, 197, 80, 69, 69, 80, 128, 80, 69, 78, 78, 217, 80, 69, 83, 79, 128, - 80, 72, 65, 65, 128, 80, 72, 65, 78, 128, 80, 72, 69, 69, 128, 80, 72, - 79, 65, 128, 80, 72, 87, 65, 128, 80, 73, 67, 75, 128, 80, 73, 69, 80, - 128, 80, 73, 69, 88, 128, 80, 73, 75, 79, 128, 80, 76, 79, 87, 128, 80, - 82, 65, 77, 128, 80, 82, 73, 78, 212, 80, 85, 79, 80, 128, 80, 85, 79, - 88, 128, 80, 85, 82, 88, 128, 80, 87, 69, 69, 128, 80, 89, 82, 88, 128, - 81, 65, 65, 70, 128, 81, 65, 65, 73, 128, 81, 65, 80, 72, 128, 81, 72, - 65, 65, 128, 81, 72, 69, 69, 128, 81, 72, 87, 65, 128, 81, 72, 87, 69, - 128, 81, 72, 87, 73, 128, 81, 73, 69, 80, 128, 81, 73, 69, 84, 128, 81, - 73, 69, 88, 128, 81, 79, 80, 65, 128, 81, 85, 79, 80, 128, 81, 85, 79, - 84, 128, 81, 85, 79, 88, 128, 81, 85, 82, 88, 128, 81, 85, 85, 86, 128, - 81, 87, 65, 65, 128, 81, 87, 69, 69, 128, 81, 89, 65, 65, 128, 81, 89, - 69, 69, 128, 81, 89, 82, 88, 128, 82, 65, 65, 73, 128, 82, 65, 73, 68, - 207, 82, 65, 78, 71, 197, 82, 69, 77, 85, 128, 82, 73, 67, 69, 128, 82, - 73, 69, 76, 128, 82, 73, 82, 65, 128, 82, 79, 65, 82, 128, 82, 82, 65, - 88, 128, 82, 82, 69, 72, 128, 82, 82, 69, 80, 128, 82, 82, 69, 84, 128, - 82, 82, 69, 88, 128, 82, 82, 79, 80, 128, 82, 82, 79, 84, 128, 82, 82, - 79, 88, 128, 82, 82, 85, 79, 128, 82, 82, 85, 80, 128, 82, 82, 85, 82, - 128, 82, 82, 85, 84, 128, 82, 82, 85, 88, 128, 82, 82, 89, 80, 128, 82, - 82, 89, 82, 128, 82, 82, 89, 84, 128, 82, 82, 89, 88, 128, 82, 85, 73, - 83, 128, 82, 85, 76, 69, 128, 82, 85, 79, 80, 128, 82, 85, 83, 73, 128, - 83, 65, 45, 73, 128, 83, 65, 65, 73, 128, 83, 65, 68, 69, 128, 83, 65, - 73, 76, 128, 83, 65, 76, 65, 128, 83, 65, 76, 65, 205, 83, 66, 82, 85, - 204, 83, 67, 87, 65, 128, 83, 68, 79, 78, 199, 83, 72, 65, 80, 128, 83, - 72, 65, 88, 128, 83, 72, 69, 80, 128, 83, 72, 69, 84, 128, 83, 72, 69, - 88, 128, 83, 72, 73, 73, 128, 83, 72, 73, 77, 193, 83, 72, 79, 65, 128, - 83, 72, 79, 79, 128, 83, 72, 79, 84, 128, 83, 72, 79, 88, 128, 83, 72, - 85, 79, 128, 83, 72, 85, 80, 128, 83, 72, 85, 84, 128, 83, 72, 85, 88, - 128, 83, 72, 89, 80, 128, 83, 72, 89, 82, 128, 83, 72, 89, 84, 128, 83, - 72, 89, 88, 128, 83, 73, 71, 69, 204, 83, 73, 88, 84, 217, 83, 75, 73, - 78, 128, 83, 75, 85, 76, 204, 83, 75, 87, 65, 128, 83, 78, 65, 75, 197, - 83, 80, 79, 84, 128, 83, 80, 87, 65, 128, 83, 83, 65, 65, 128, 83, 83, - 65, 80, 128, 83, 83, 65, 84, 128, 83, 83, 65, 88, 128, 83, 83, 69, 69, - 128, 83, 83, 69, 80, 128, 83, 83, 69, 88, 128, 83, 83, 73, 69, 128, 83, - 83, 73, 80, 128, 83, 83, 73, 84, 128, 83, 83, 73, 88, 128, 83, 83, 79, - 80, 128, 83, 83, 79, 84, 128, 83, 83, 79, 88, 128, 83, 83, 85, 80, 128, - 83, 83, 85, 84, 128, 83, 83, 85, 88, 128, 83, 83, 89, 80, 128, 83, 83, - 89, 82, 128, 83, 83, 89, 84, 128, 83, 83, 89, 88, 128, 83, 84, 65, 78, - 128, 83, 84, 69, 80, 128, 83, 84, 73, 76, 197, 83, 84, 73, 76, 204, 83, - 84, 87, 65, 128, 83, 85, 79, 80, 128, 83, 85, 79, 88, 128, 83, 85, 82, - 88, 128, 83, 87, 85, 78, 199, 83, 90, 65, 65, 128, 83, 90, 69, 69, 128, - 83, 90, 87, 65, 128, 83, 90, 87, 71, 128, 84, 65, 65, 73, 128, 84, 65, - 75, 69, 128, 84, 65, 76, 76, 128, 84, 69, 45, 85, 128, 84, 69, 78, 84, - 128, 84, 69, 84, 72, 128, 84, 72, 69, 72, 128, 84, 72, 69, 77, 193, 84, - 72, 69, 89, 128, 84, 72, 79, 65, 128, 84, 72, 85, 82, 211, 84, 72, 87, - 65, 128, 84, 73, 69, 80, 128, 84, 73, 69, 88, 128, 84, 73, 71, 72, 212, - 84, 73, 78, 89, 128, 84, 73, 87, 65, 218, 84, 76, 69, 69, 128, 84, 76, - 72, 85, 128, 84, 79, 84, 65, 204, 84, 82, 65, 68, 197, 84, 82, 73, 79, - 206, 84, 83, 65, 65, 128, 84, 83, 65, 68, 201, 84, 83, 87, 65, 128, 84, - 84, 65, 65, 128, 84, 84, 69, 69, 128, 84, 84, 69, 72, 128, 84, 84, 72, - 69, 128, 84, 84, 72, 73, 128, 84, 84, 83, 65, 128, 84, 84, 83, 69, 128, - 84, 84, 83, 73, 128, 84, 84, 83, 79, 128, 84, 84, 83, 85, 128, 84, 85, - 79, 80, 128, 84, 85, 79, 84, 128, 84, 85, 79, 88, 128, 84, 85, 82, 88, - 128, 84, 90, 65, 65, 128, 84, 90, 69, 69, 128, 84, 90, 79, 65, 128, 85, - 45, 65, 69, 128, 85, 65, 84, 72, 128, 86, 73, 69, 80, 128, 86, 73, 69, - 84, 128, 86, 73, 69, 88, 128, 86, 85, 82, 88, 128, 86, 89, 82, 88, 128, - 87, 65, 69, 78, 128, 87, 65, 76, 76, 128, 87, 69, 76, 76, 128, 87, 69, - 83, 84, 128, 87, 79, 82, 75, 128, 87, 82, 65, 80, 128, 87, 85, 78, 74, - 207, 87, 85, 79, 80, 128, 87, 85, 79, 88, 128, 88, 73, 82, 79, 206, 88, - 89, 65, 65, 128, 88, 89, 69, 69, 128, 88, 89, 82, 88, 128, 89, 65, 45, - 79, 128, 89, 65, 65, 73, 128, 89, 65, 66, 72, 128, 89, 65, 67, 72, 128, - 89, 65, 68, 68, 128, 89, 65, 68, 72, 128, 89, 65, 71, 78, 128, 89, 65, - 72, 72, 128, 89, 65, 82, 82, 128, 89, 65, 83, 72, 128, 89, 65, 83, 83, - 128, 89, 65, 84, 72, 128, 89, 65, 84, 84, 128, 89, 65, 90, 90, 128, 89, - 69, 82, 65, 200, 89, 73, 45, 85, 128, 89, 73, 78, 71, 128, 89, 79, 45, - 79, 128, 89, 79, 77, 79, 128, 89, 79, 82, 73, 128, 89, 85, 45, 65, 128, - 89, 85, 45, 69, 128, 89, 85, 45, 85, 128, 89, 85, 65, 78, 128, 89, 85, - 68, 72, 128, 89, 85, 79, 84, 128, 89, 85, 82, 88, 128, 89, 89, 82, 88, - 128, 90, 65, 89, 73, 206, 90, 72, 65, 65, 128, 90, 72, 65, 80, 128, 90, - 72, 65, 84, 128, 90, 72, 65, 88, 128, 90, 72, 69, 80, 128, 90, 72, 69, - 84, 128, 90, 72, 69, 88, 128, 90, 72, 79, 80, 128, 90, 72, 79, 84, 128, - 90, 72, 79, 88, 128, 90, 72, 85, 79, 128, 90, 72, 85, 80, 128, 90, 72, - 85, 82, 128, 90, 72, 85, 84, 128, 90, 72, 85, 88, 128, 90, 72, 87, 65, - 128, 90, 72, 89, 80, 128, 90, 72, 89, 82, 128, 90, 72, 89, 84, 128, 90, - 72, 89, 88, 128, 90, 85, 79, 80, 128, 90, 90, 65, 65, 128, 90, 90, 65, - 80, 128, 90, 90, 65, 84, 128, 90, 90, 65, 88, 128, 90, 90, 69, 69, 128, - 90, 90, 69, 80, 128, 90, 90, 69, 88, 128, 90, 90, 73, 69, 128, 90, 90, - 73, 80, 128, 90, 90, 73, 84, 128, 90, 90, 73, 88, 128, 90, 90, 79, 80, - 128, 90, 90, 79, 88, 128, 90, 90, 85, 80, 128, 90, 90, 85, 82, 128, 90, - 90, 85, 88, 128, 90, 90, 89, 80, 128, 90, 90, 89, 82, 128, 90, 90, 89, - 84, 128, 90, 90, 89, 88, 128, 79, 80, 69, 206, 70, 85, 76, 204, 83, 69, - 69, 206, 73, 79, 84, 193, 69, 65, 83, 212, 70, 82, 79, 205, 84, 79, 68, - 207, 70, 73, 86, 197, 72, 79, 85, 210, 84, 69, 78, 128, 83, 73, 66, 197, - 70, 79, 85, 210, 79, 86, 69, 210, 72, 79, 82, 206, 81, 85, 65, 196, 68, - 65, 83, 200, 78, 69, 79, 128, 80, 72, 73, 128, 80, 83, 73, 128, 84, 72, - 69, 200, 75, 79, 77, 201, 82, 72, 79, 128, 89, 85, 83, 128, 71, 72, 65, - 128, 79, 88, 73, 193, 82, 79, 67, 128, 66, 72, 65, 128, 83, 65, 82, 193, - 84, 65, 67, 203, 84, 65, 85, 128, 68, 79, 69, 211, 74, 72, 65, 128, 82, - 82, 65, 128, 87, 73, 68, 197, 82, 68, 69, 204, 83, 72, 73, 206, 87, 65, - 86, 217, 90, 65, 73, 206, 68, 73, 71, 193, 83, 72, 79, 128, 65, 82, 67, - 128, 75, 65, 70, 128, 76, 69, 71, 128, 83, 84, 79, 208, 84, 65, 77, 128, - 89, 65, 78, 199, 68, 90, 69, 128, 71, 72, 69, 128, 71, 79, 65, 204, 71, - 84, 69, 210, 78, 85, 78, 128, 78, 89, 79, 128, 83, 84, 65, 210, 83, 85, - 78, 128, 84, 65, 73, 204, 87, 65, 86, 197, 87, 65, 87, 128, 87, 79, 82, - 196, 90, 69, 82, 207, 65, 80, 76, 201, 66, 69, 69, 200, 67, 76, 69, 198, - 68, 74, 69, 128, 68, 75, 65, 210, 68, 89, 69, 200, 68, 90, 65, 128, 69, - 73, 69, 128, 70, 69, 72, 128, 70, 73, 83, 200, 71, 65, 78, 128, 71, 85, - 69, 200, 72, 73, 69, 128, 75, 83, 73, 128, 76, 65, 77, 197, 76, 74, 69, - 128, 77, 69, 77, 128, 77, 71, 79, 128, 77, 85, 67, 200, 77, 87, 65, 128, - 78, 65, 77, 197, 78, 65, 82, 128, 78, 74, 69, 128, 78, 79, 87, 128, 78, - 87, 65, 128, 78, 89, 69, 200, 78, 89, 73, 128, 79, 79, 85, 128, 80, 69, - 69, 128, 82, 65, 65, 128, 84, 72, 69, 206, 84, 73, 67, 203, 84, 84, 69, - 200, 89, 79, 68, 128, 66, 65, 83, 197, 66, 69, 69, 128, 66, 79, 87, 128, - 66, 90, 72, 201, 67, 79, 87, 128, 68, 79, 78, 128, 70, 76, 65, 212, 70, - 82, 69, 197, 72, 65, 69, 128, 74, 73, 76, 128, 75, 69, 72, 128, 75, 72, - 73, 128, 75, 72, 79, 128, 75, 87, 69, 128, 75, 87, 73, 128, 76, 65, 83, - 128, 76, 79, 79, 128, 76, 87, 65, 128, 77, 69, 78, 128, 77, 87, 69, 128, - 77, 87, 73, 128, 78, 65, 65, 128, 78, 89, 73, 211, 80, 65, 82, 128, 80, - 69, 72, 128, 80, 72, 79, 128, 80, 87, 69, 128, 80, 87, 73, 128, 81, 65, - 65, 128, 81, 65, 82, 128, 82, 65, 69, 128, 82, 72, 65, 128, 83, 72, 79, - 197, 83, 72, 85, 128, 83, 83, 73, 128, 83, 83, 79, 128, 83, 83, 85, 128, - 84, 72, 65, 204, 84, 79, 79, 128, 84, 87, 69, 128, 86, 69, 69, 128, 86, - 73, 78, 128, 87, 65, 69, 128, 87, 65, 76, 203, 87, 69, 79, 128, 88, 65, - 78, 128, 88, 69, 72, 128, 89, 65, 75, 128, 89, 65, 84, 128, 89, 89, 65, - 128, 90, 69, 78, 128, 65, 76, 76, 201, 65, 89, 66, 128, 65, 90, 85, 128, - 66, 65, 65, 128, 66, 69, 72, 128, 66, 69, 78, 128, 66, 79, 76, 212, 66, - 87, 65, 128, 67, 73, 80, 128, 67, 76, 85, 194, 67, 79, 79, 128, 67, 85, - 80, 128, 67, 87, 69, 128, 67, 87, 73, 128, 67, 87, 79, 128, 67, 89, 80, - 128, 67, 89, 84, 128, 68, 68, 65, 204, 68, 68, 69, 128, 68, 68, 73, 128, - 68, 68, 85, 128, 68, 69, 73, 128, 68, 74, 65, 128, 68, 76, 65, 128, 68, - 79, 71, 128, 68, 82, 85, 205, 69, 87, 69, 128, 70, 65, 65, 128, 70, 69, - 69, 128, 70, 69, 73, 128, 70, 76, 89, 128, 70, 85, 82, 128, 70, 85, 83, - 193, 70, 87, 65, 128, 71, 65, 89, 128, 71, 71, 65, 128, 71, 71, 69, 128, - 71, 71, 73, 128, 71, 71, 79, 128, 71, 71, 85, 128, 71, 72, 79, 128, 71, - 73, 77, 128, 71, 74, 69, 128, 72, 65, 82, 196, 72, 77, 79, 128, 72, 78, - 65, 128, 73, 83, 79, 206, 74, 74, 73, 128, 74, 74, 79, 128, 74, 74, 85, - 128, 74, 74, 89, 128, 75, 65, 73, 128, 75, 69, 78, 128, 75, 72, 69, 128, - 75, 73, 84, 128, 75, 74, 69, 128, 75, 75, 65, 128, 75, 79, 79, 128, 75, - 86, 65, 128, 75, 87, 79, 128, 76, 65, 65, 128, 76, 87, 69, 128, 76, 87, - 73, 128, 76, 87, 79, 128, 77, 65, 65, 128, 77, 79, 79, 128, 77, 79, 79, - 206, 77, 80, 65, 128, 77, 87, 79, 128, 78, 69, 69, 128, 78, 71, 65, 211, - 78, 73, 66, 128, 78, 79, 79, 128, 78, 82, 65, 128, 78, 87, 69, 128, 78, - 89, 85, 128, 79, 72, 77, 128, 79, 73, 76, 128, 79, 75, 84, 207, 79, 78, - 78, 128, 79, 84, 85, 128, 80, 65, 65, 128, 80, 65, 82, 212, 80, 65, 84, - 200, 80, 72, 85, 210, 80, 79, 76, 201, 80, 79, 79, 128, 80, 85, 84, 128, - 80, 87, 79, 128, 80, 89, 84, 128, 81, 65, 73, 128, 81, 73, 73, 128, 81, + 78, 82, 89, 84, 128, 78, 82, 89, 88, 128, 78, 85, 49, 49, 128, 78, 85, + 76, 76, 128, 78, 85, 79, 80, 128, 78, 85, 82, 88, 128, 78, 85, 85, 78, + 128, 78, 89, 65, 65, 128, 78, 89, 67, 65, 128, 78, 89, 69, 72, 128, 78, + 89, 73, 69, 128, 78, 89, 73, 84, 128, 78, 89, 73, 88, 128, 78, 89, 74, + 65, 128, 78, 89, 79, 65, 128, 78, 89, 79, 79, 128, 78, 89, 79, 84, 128, + 78, 89, 79, 88, 128, 78, 89, 85, 79, 128, 78, 89, 85, 80, 128, 78, 89, + 85, 84, 128, 78, 89, 85, 88, 128, 78, 89, 87, 65, 128, 78, 90, 65, 80, + 128, 78, 90, 65, 84, 128, 78, 90, 65, 88, 128, 78, 90, 69, 88, 128, 78, + 90, 73, 69, 128, 78, 90, 73, 80, 128, 78, 90, 73, 84, 128, 78, 90, 73, + 88, 128, 78, 90, 79, 80, 128, 78, 90, 79, 88, 128, 78, 90, 85, 79, 128, + 78, 90, 85, 82, 128, 78, 90, 85, 88, 128, 78, 90, 89, 80, 128, 78, 90, + 89, 82, 128, 78, 90, 89, 84, 128, 78, 90, 89, 88, 128, 79, 45, 69, 79, + 128, 79, 45, 89, 69, 128, 79, 75, 65, 82, 193, 79, 78, 83, 85, 128, 79, + 79, 77, 85, 128, 79, 79, 90, 69, 128, 79, 85, 78, 67, 197, 80, 65, 65, + 73, 128, 80, 65, 68, 77, 193, 80, 65, 78, 71, 128, 80, 65, 82, 65, 128, + 80, 69, 65, 67, 197, 80, 69, 69, 80, 128, 80, 69, 78, 78, 217, 80, 69, + 80, 69, 212, 80, 69, 83, 79, 128, 80, 72, 65, 65, 128, 80, 72, 65, 78, + 128, 80, 72, 69, 69, 128, 80, 72, 79, 65, 128, 80, 72, 87, 65, 128, 80, + 73, 67, 75, 128, 80, 73, 69, 80, 128, 80, 73, 69, 88, 128, 80, 73, 75, + 79, 128, 80, 76, 65, 75, 128, 80, 76, 65, 78, 197, 80, 76, 79, 87, 128, + 80, 76, 85, 75, 128, 80, 76, 85, 77, 128, 80, 82, 65, 77, 128, 80, 82, + 73, 78, 212, 80, 85, 78, 71, 128, 80, 85, 79, 80, 128, 80, 85, 79, 88, + 128, 80, 85, 82, 88, 128, 80, 87, 69, 69, 128, 80, 89, 82, 88, 128, 81, + 65, 65, 70, 128, 81, 65, 65, 73, 128, 81, 65, 80, 72, 128, 81, 72, 65, + 65, 128, 81, 72, 69, 69, 128, 81, 72, 87, 65, 128, 81, 72, 87, 69, 128, + 81, 72, 87, 73, 128, 81, 73, 69, 80, 128, 81, 73, 69, 84, 128, 81, 73, + 69, 88, 128, 81, 79, 80, 65, 128, 81, 85, 79, 80, 128, 81, 85, 79, 84, + 128, 81, 85, 79, 88, 128, 81, 85, 82, 88, 128, 81, 85, 85, 86, 128, 81, + 87, 65, 65, 128, 81, 87, 69, 69, 128, 81, 89, 65, 65, 128, 81, 89, 69, + 69, 128, 81, 89, 82, 88, 128, 82, 65, 65, 73, 128, 82, 65, 73, 68, 207, + 82, 65, 78, 71, 197, 82, 69, 77, 85, 128, 82, 73, 67, 69, 128, 82, 73, + 69, 76, 128, 82, 73, 82, 65, 128, 82, 79, 65, 82, 128, 82, 79, 83, 72, + 128, 82, 82, 65, 88, 128, 82, 82, 69, 72, 128, 82, 82, 69, 80, 128, 82, + 82, 69, 84, 128, 82, 82, 69, 88, 128, 82, 82, 79, 80, 128, 82, 82, 79, + 84, 128, 82, 82, 79, 88, 128, 82, 82, 85, 79, 128, 82, 82, 85, 80, 128, + 82, 82, 85, 82, 128, 82, 82, 85, 84, 128, 82, 82, 85, 88, 128, 82, 82, + 89, 80, 128, 82, 82, 89, 82, 128, 82, 82, 89, 84, 128, 82, 82, 89, 88, + 128, 82, 85, 73, 83, 128, 82, 85, 76, 69, 128, 82, 85, 79, 80, 128, 82, + 85, 83, 73, 128, 83, 65, 45, 73, 128, 83, 65, 65, 73, 128, 83, 65, 71, + 65, 128, 83, 65, 73, 76, 128, 83, 65, 76, 65, 128, 83, 65, 76, 65, 205, + 83, 65, 80, 65, 128, 83, 65, 82, 73, 128, 83, 66, 82, 85, 204, 83, 67, + 87, 65, 128, 83, 68, 79, 78, 199, 83, 69, 77, 75, 128, 83, 72, 65, 54, + 128, 83, 72, 65, 80, 128, 83, 72, 65, 82, 213, 83, 72, 65, 88, 128, 83, + 72, 69, 78, 128, 83, 72, 69, 80, 128, 83, 72, 69, 84, 128, 83, 72, 69, + 88, 128, 83, 72, 73, 73, 128, 83, 72, 73, 77, 128, 83, 72, 73, 77, 193, + 83, 72, 73, 82, 128, 83, 72, 79, 65, 128, 83, 72, 79, 84, 128, 83, 72, + 79, 88, 128, 83, 72, 85, 79, 128, 83, 72, 85, 80, 128, 83, 72, 85, 84, + 128, 83, 72, 85, 88, 128, 83, 72, 89, 65, 128, 83, 72, 89, 80, 128, 83, + 72, 89, 82, 128, 83, 72, 89, 84, 128, 83, 72, 89, 88, 128, 83, 73, 71, + 69, 204, 83, 73, 75, 50, 128, 83, 73, 75, 73, 128, 83, 73, 88, 84, 217, + 83, 75, 73, 78, 128, 83, 75, 85, 76, 204, 83, 75, 87, 65, 128, 83, 78, + 65, 75, 197, 83, 80, 79, 84, 128, 83, 80, 87, 65, 128, 83, 83, 65, 65, + 128, 83, 83, 65, 80, 128, 83, 83, 65, 84, 128, 83, 83, 65, 88, 128, 83, + 83, 69, 69, 128, 83, 83, 69, 80, 128, 83, 83, 69, 88, 128, 83, 83, 73, + 69, 128, 83, 83, 73, 80, 128, 83, 83, 73, 84, 128, 83, 83, 73, 88, 128, + 83, 83, 79, 80, 128, 83, 83, 79, 84, 128, 83, 83, 79, 88, 128, 83, 83, + 85, 80, 128, 83, 83, 85, 84, 128, 83, 83, 85, 88, 128, 83, 83, 89, 80, + 128, 83, 83, 89, 82, 128, 83, 83, 89, 84, 128, 83, 83, 89, 88, 128, 83, + 84, 65, 78, 128, 83, 84, 69, 80, 128, 83, 84, 73, 76, 197, 83, 84, 73, + 76, 204, 83, 84, 87, 65, 128, 83, 85, 68, 50, 128, 83, 85, 75, 85, 128, + 83, 85, 79, 80, 128, 83, 85, 79, 88, 128, 83, 85, 82, 57, 128, 83, 85, + 82, 88, 128, 83, 87, 85, 78, 199, 83, 90, 65, 65, 128, 83, 90, 69, 69, + 128, 83, 90, 87, 65, 128, 83, 90, 87, 71, 128, 84, 65, 65, 73, 128, 84, + 65, 75, 69, 128, 84, 65, 76, 76, 128, 84, 69, 45, 85, 128, 84, 69, 78, + 84, 128, 84, 69, 84, 72, 128, 84, 72, 69, 72, 128, 84, 72, 69, 77, 193, + 84, 72, 69, 89, 128, 84, 72, 79, 65, 128, 84, 72, 85, 82, 211, 84, 72, + 87, 65, 128, 84, 73, 69, 80, 128, 84, 73, 69, 88, 128, 84, 73, 71, 72, + 212, 84, 73, 78, 89, 128, 84, 73, 87, 65, 218, 84, 76, 69, 69, 128, 84, + 76, 72, 85, 128, 84, 79, 78, 71, 128, 84, 79, 84, 65, 204, 84, 82, 65, + 68, 197, 84, 82, 73, 79, 206, 84, 83, 65, 65, 128, 84, 83, 65, 68, 201, + 84, 83, 87, 65, 128, 84, 84, 65, 65, 128, 84, 84, 69, 69, 128, 84, 84, + 69, 72, 128, 84, 84, 72, 69, 128, 84, 84, 72, 73, 128, 84, 84, 83, 65, + 128, 84, 84, 83, 69, 128, 84, 84, 83, 73, 128, 84, 84, 83, 79, 128, 84, + 84, 83, 85, 128, 84, 85, 79, 80, 128, 84, 85, 79, 84, 128, 84, 85, 79, + 88, 128, 84, 85, 82, 88, 128, 84, 90, 65, 65, 128, 84, 90, 69, 69, 128, + 84, 90, 79, 65, 128, 85, 45, 65, 69, 128, 85, 65, 84, 72, 128, 85, 68, + 85, 71, 128, 85, 75, 65, 82, 193, 85, 77, 85, 77, 128, 85, 82, 73, 51, + 128, 85, 82, 85, 68, 193, 85, 83, 72, 50, 128, 85, 83, 72, 88, 128, 85, + 83, 83, 85, 128, 85, 85, 85, 50, 128, 85, 85, 85, 51, 128, 85, 85, 85, + 85, 128, 86, 73, 69, 80, 128, 86, 73, 69, 84, 128, 86, 73, 69, 88, 128, + 86, 73, 78, 69, 128, 86, 85, 82, 88, 128, 86, 89, 82, 88, 128, 87, 65, + 69, 78, 128, 87, 65, 76, 76, 128, 87, 69, 76, 76, 128, 87, 69, 83, 84, + 128, 87, 79, 79, 78, 128, 87, 79, 82, 75, 128, 87, 82, 65, 80, 128, 87, + 85, 78, 74, 207, 87, 85, 79, 80, 128, 87, 85, 79, 88, 128, 88, 73, 82, + 79, 206, 88, 89, 65, 65, 128, 88, 89, 69, 69, 128, 88, 89, 82, 88, 128, + 89, 65, 45, 79, 128, 89, 65, 65, 73, 128, 89, 65, 66, 72, 128, 89, 65, + 67, 72, 128, 89, 65, 68, 68, 128, 89, 65, 68, 72, 128, 89, 65, 71, 78, + 128, 89, 65, 72, 72, 128, 89, 65, 82, 82, 128, 89, 65, 83, 72, 128, 89, + 65, 83, 83, 128, 89, 65, 84, 72, 128, 89, 65, 84, 84, 128, 89, 65, 90, + 90, 128, 89, 69, 82, 65, 200, 89, 73, 45, 85, 128, 89, 73, 78, 71, 128, + 89, 79, 45, 79, 128, 89, 79, 77, 79, 128, 89, 79, 82, 73, 128, 89, 85, + 45, 65, 128, 89, 85, 45, 69, 128, 89, 85, 45, 85, 128, 89, 85, 65, 78, + 128, 89, 85, 68, 72, 128, 89, 85, 79, 84, 128, 89, 85, 82, 88, 128, 89, + 89, 82, 88, 128, 90, 65, 77, 88, 128, 90, 65, 89, 73, 206, 90, 72, 65, + 65, 128, 90, 72, 65, 80, 128, 90, 72, 65, 84, 128, 90, 72, 65, 88, 128, + 90, 72, 69, 80, 128, 90, 72, 69, 84, 128, 90, 72, 69, 88, 128, 90, 72, + 79, 79, 128, 90, 72, 79, 80, 128, 90, 72, 79, 84, 128, 90, 72, 79, 88, + 128, 90, 72, 85, 79, 128, 90, 72, 85, 80, 128, 90, 72, 85, 82, 128, 90, + 72, 85, 84, 128, 90, 72, 85, 88, 128, 90, 72, 87, 65, 128, 90, 72, 89, + 80, 128, 90, 72, 89, 82, 128, 90, 72, 89, 84, 128, 90, 72, 89, 88, 128, + 90, 73, 90, 50, 128, 90, 85, 79, 80, 128, 90, 90, 65, 65, 128, 90, 90, + 65, 80, 128, 90, 90, 65, 84, 128, 90, 90, 65, 88, 128, 90, 90, 69, 69, + 128, 90, 90, 69, 80, 128, 90, 90, 69, 88, 128, 90, 90, 73, 69, 128, 90, + 90, 73, 80, 128, 90, 90, 73, 84, 128, 90, 90, 73, 88, 128, 90, 90, 79, + 80, 128, 90, 90, 79, 88, 128, 90, 90, 85, 80, 128, 90, 90, 85, 82, 128, + 90, 90, 85, 88, 128, 90, 90, 89, 80, 128, 90, 90, 89, 82, 128, 90, 90, + 89, 84, 128, 90, 90, 89, 88, 128, 79, 80, 69, 206, 68, 73, 83, 195, 70, + 73, 86, 197, 70, 79, 85, 210, 70, 85, 76, 204, 83, 69, 69, 206, 83, 72, + 65, 206, 73, 79, 84, 193, 69, 65, 83, 212, 70, 82, 79, 205, 84, 79, 68, + 207, 84, 69, 78, 128, 72, 79, 85, 210, 89, 85, 83, 128, 83, 73, 66, 197, + 68, 65, 83, 200, 81, 85, 65, 196, 69, 90, 69, 206, 78, 69, 79, 128, 78, + 85, 78, 128, 80, 72, 73, 128, 66, 72, 65, 128, 71, 65, 78, 178, 71, 72, + 65, 128, 80, 83, 73, 128, 84, 72, 69, 200, 66, 65, 68, 128, 75, 79, 77, + 201, 82, 72, 79, 128, 79, 88, 73, 193, 82, 79, 67, 128, 84, 65, 85, 128, + 74, 72, 65, 128, 83, 65, 82, 193, 84, 65, 67, 203, 68, 79, 69, 211, 75, + 85, 82, 128, 82, 82, 65, 128, 83, 72, 73, 205, 82, 68, 69, 204, 85, 78, + 73, 212, 73, 71, 73, 128, 83, 72, 65, 179, 84, 65, 73, 204, 84, 69, 78, + 211, 87, 65, 86, 217, 87, 73, 68, 197, 71, 73, 83, 200, 83, 72, 73, 206, + 83, 72, 79, 128, 90, 65, 73, 206, 68, 73, 71, 193, 68, 90, 65, 128, 68, + 90, 69, 128, 75, 65, 70, 128, 76, 65, 76, 128, 76, 69, 71, 128, 77, 85, + 83, 200, 87, 79, 82, 196, 65, 82, 67, 128, 71, 72, 69, 128, 75, 65, 75, + 128, 78, 89, 79, 128, 83, 84, 79, 208, 84, 65, 77, 128, 87, 65, 86, 197, + 89, 65, 78, 199, 89, 65, 84, 128, 90, 69, 82, 207, 68, 85, 78, 179, 71, + 73, 82, 179, 71, 79, 65, 204, 71, 84, 69, 210, 71, 85, 78, 213, 72, 85, + 66, 178, 77, 69, 77, 128, 78, 65, 71, 193, 78, 74, 69, 128, 78, 89, 73, + 128, 80, 65, 80, 128, 82, 72, 65, 128, 83, 72, 73, 210, 83, 84, 65, 210, + 83, 85, 78, 128, 84, 87, 69, 128, 87, 65, 87, 128, 89, 79, 68, 128, 65, + 80, 76, 201, 66, 66, 65, 128, 66, 69, 69, 200, 66, 79, 87, 128, 67, 76, + 69, 198, 68, 74, 69, 128, 68, 75, 65, 210, 68, 89, 69, 200, 69, 73, 69, + 128, 70, 69, 72, 128, 70, 73, 83, 200, 71, 73, 52, 128, 71, 85, 69, 200, + 72, 73, 69, 128, 73, 68, 73, 205, 75, 83, 73, 128, 75, 85, 51, 128, 76, + 65, 77, 197, 76, 74, 69, 128, 76, 79, 79, 128, 77, 71, 79, 128, 77, 85, + 67, 200, 77, 87, 65, 128, 78, 65, 77, 197, 78, 65, 82, 128, 78, 79, 87, + 128, 78, 87, 65, 128, 78, 89, 69, 200, 78, 89, 73, 211, 79, 79, 85, 128, + 80, 72, 79, 128, 82, 65, 65, 128, 83, 65, 82, 128, 83, 71, 65, 215, 83, + 79, 79, 128, 84, 65, 71, 128, 84, 72, 69, 206, 84, 73, 67, 203, 84, 79, + 79, 128, 84, 84, 69, 200, 84, 85, 71, 178, 84, 85, 82, 128, 86, 69, 69, + 128, 86, 69, 82, 217, 89, 69, 82, 128, 89, 69, 82, 213, 66, 65, 76, 128, + 66, 65, 83, 197, 66, 90, 72, 201, 67, 79, 79, 128, 67, 79, 87, 128, 67, + 87, 73, 128, 68, 79, 78, 128, 68, 85, 66, 128, 68, 87, 69, 128, 70, 65, + 65, 128, 70, 69, 69, 128, 70, 76, 65, 212, 70, 82, 69, 197, 72, 65, 69, + 128, 74, 73, 76, 128, 74, 79, 78, 193, 75, 69, 72, 128, 75, 72, 73, 128, + 75, 72, 79, 128, 75, 73, 68, 128, 75, 75, 65, 128, 75, 79, 79, 128, 75, + 87, 69, 128, 75, 87, 73, 128, 76, 85, 50, 128, 76, 85, 76, 128, 76, 87, + 65, 128, 77, 69, 78, 128, 77, 79, 79, 128, 77, 79, 79, 206, 77, 87, 69, + 128, 77, 87, 73, 128, 78, 65, 65, 128, 78, 69, 69, 128, 78, 79, 79, 128, + 78, 89, 85, 128, 80, 65, 82, 128, 80, 69, 72, 128, 80, 87, 69, 128, 80, + 87, 73, 128, 81, 65, 65, 128, 81, 65, 82, 128, 82, 65, 69, 128, 82, 69, + 80, 193, 83, 72, 79, 197, 83, 83, 73, 128, 83, 83, 79, 128, 83, 85, 82, + 128, 84, 65, 66, 128, 84, 69, 84, 128, 84, 72, 65, 204, 85, 77, 85, 205, + 86, 65, 86, 128, 86, 73, 78, 128, 87, 65, 69, 128, 87, 65, 76, 203, 87, + 65, 85, 128, 87, 69, 79, 128, 88, 65, 78, 128, 88, 69, 72, 128, 89, 65, + 75, 128, 89, 89, 65, 128, 90, 72, 73, 128, 90, 72, 79, 128, 90, 72, 85, + 128, 65, 76, 76, 201, 65, 83, 72, 178, 65, 88, 69, 128, 65, 89, 66, 128, + 65, 90, 85, 128, 66, 65, 65, 128, 66, 65, 67, 203, 66, 65, 78, 178, 66, + 66, 69, 128, 66, 69, 72, 128, 66, 69, 84, 128, 66, 72, 79, 128, 66, 79, + 76, 212, 66, 82, 68, 193, 66, 87, 65, 128, 67, 65, 84, 128, 67, 73, 80, + 128, 67, 76, 85, 194, 67, 79, 78, 128, 67, 85, 66, 197, 67, 85, 80, 128, + 67, 87, 69, 128, 67, 87, 79, 128, 67, 89, 80, 128, 67, 89, 84, 128, 68, + 65, 78, 199, 68, 65, 82, 128, 68, 65, 84, 197, 68, 68, 65, 204, 68, 68, + 69, 128, 68, 68, 73, 128, 68, 68, 85, 128, 68, 69, 73, 128, 68, 73, 66, + 128, 68, 74, 65, 128, 68, 76, 65, 128, 68, 79, 71, 128, 68, 82, 85, 205, + 68, 85, 78, 128, 69, 82, 82, 128, 69, 87, 69, 128, 70, 69, 73, 128, 70, + 76, 89, 128, 70, 79, 79, 128, 70, 85, 82, 128, 70, 85, 83, 193, 70, 87, + 65, 128, 71, 65, 68, 128, 71, 65, 89, 128, 71, 72, 79, 128, 71, 73, 77, + 128, 71, 73, 82, 178, 71, 74, 69, 128, 72, 65, 82, 196, 72, 76, 65, 128, + 72, 77, 79, 128, 72, 78, 65, 128, 73, 77, 73, 206, 73, 83, 79, 206, 74, + 74, 65, 128, 74, 74, 73, 128, 74, 74, 79, 128, 74, 74, 85, 128, 74, 74, + 89, 128, 75, 65, 50, 128, 75, 65, 66, 193, 75, 65, 73, 128, 75, 69, 78, + 128, 75, 72, 69, 128, 75, 73, 84, 128, 75, 74, 69, 128, 75, 80, 65, 128, + 75, 85, 76, 128, 75, 86, 65, 128, 75, 87, 79, 128, 76, 73, 68, 128, 76, + 87, 69, 128, 76, 87, 73, 128, 76, 87, 79, 128, 77, 65, 65, 128, 77, 66, + 65, 128, 77, 68, 85, 206, 77, 80, 65, 128, 77, 85, 71, 128, 77, 87, 79, + 128, 78, 71, 65, 211, 78, 73, 66, 128, 78, 74, 73, 128, 78, 74, 79, 128, + 78, 74, 85, 128, 78, 82, 65, 128, 78, 87, 69, 128, 78, 89, 69, 128, 79, + 72, 77, 128, 79, 73, 76, 128, 79, 75, 84, 207, 79, 78, 78, 128, 79, 84, + 85, 128, 80, 65, 65, 128, 80, 65, 82, 212, 80, 65, 84, 200, 80, 72, 85, + 210, 80, 76, 65, 128, 80, 79, 76, 201, 80, 85, 84, 128, 80, 87, 79, 128, + 80, 89, 84, 128, 81, 65, 73, 128, 81, 73, 73, 128, 81, 79, 70, 128, 81, 79, 84, 128, 81, 85, 79, 128, 81, 85, 85, 128, 82, 71, 89, 193, 82, 78, - 65, 205, 82, 82, 69, 200, 82, 82, 79, 128, 83, 69, 72, 128, 83, 72, 65, - 196, 83, 72, 79, 199, 83, 72, 89, 128, 83, 73, 79, 211, 83, 74, 69, 128, - 83, 79, 79, 128, 83, 79, 85, 128, 83, 83, 69, 128, 83, 87, 69, 128, 83, - 87, 73, 128, 83, 87, 79, 128, 84, 65, 71, 128, 84, 65, 84, 128, 84, 65, - 86, 128, 84, 69, 84, 128, 84, 74, 69, 128, 84, 76, 65, 128, 84, 76, 73, - 128, 84, 76, 85, 128, 84, 79, 84, 128, 84, 82, 69, 197, 84, 84, 73, 128, - 84, 87, 73, 128, 85, 83, 69, 196, 86, 65, 86, 128, 86, 69, 80, 128, 86, - 69, 82, 217, 86, 69, 87, 128, 86, 79, 85, 128, 86, 85, 82, 128, 87, 65, - 85, 128, 88, 86, 65, 128, 89, 65, 74, 128, 89, 65, 81, 128, 89, 65, 90, - 128, 89, 69, 65, 210, 89, 69, 82, 213, 89, 70, 69, 206, 89, 79, 79, 128, - 89, 87, 69, 128, 89, 87, 73, 128, 89, 87, 79, 128, 90, 72, 73, 128, 90, - 72, 79, 128, 90, 72, 85, 128, 90, 79, 84, 128, 90, 90, 65, 128, 90, 90, - 69, 128, 90, 90, 73, 128, 90, 90, 85, 128, 65, 65, 89, 128, 65, 68, 65, - 203, 65, 77, 66, 193, 65, 82, 67, 200, 65, 84, 79, 205, 65, 85, 69, 128, - 65, 87, 69, 128, 65, 88, 69, 128, 65, 89, 69, 210, 66, 48, 48, 177, 66, - 48, 48, 178, 66, 48, 48, 179, 66, 48, 48, 180, 66, 48, 48, 181, 66, 48, - 48, 182, 66, 48, 48, 183, 66, 48, 48, 184, 66, 48, 48, 185, 66, 48, 49, - 176, 66, 48, 49, 177, 66, 48, 49, 178, 66, 48, 49, 179, 66, 48, 49, 180, - 66, 48, 49, 181, 66, 48, 49, 182, 66, 48, 49, 183, 66, 48, 50, 176, 66, - 48, 50, 177, 66, 48, 50, 179, 66, 48, 50, 180, 66, 48, 50, 181, 66, 48, - 50, 182, 66, 48, 50, 183, 66, 48, 50, 184, 66, 48, 50, 185, 66, 48, 51, - 176, 66, 48, 51, 177, 66, 48, 51, 178, 66, 48, 51, 179, 66, 48, 51, 182, - 66, 48, 51, 183, 66, 48, 51, 184, 66, 48, 51, 185, 66, 48, 52, 176, 66, - 48, 52, 177, 66, 48, 52, 178, 66, 48, 52, 179, 66, 48, 52, 180, 66, 48, - 52, 181, 66, 48, 52, 182, 66, 48, 52, 184, 66, 48, 53, 176, 66, 48, 53, - 177, 66, 48, 53, 178, 66, 48, 53, 179, 66, 48, 53, 180, 66, 48, 53, 181, - 66, 48, 53, 183, 66, 48, 53, 184, 66, 48, 53, 185, 66, 48, 54, 176, 66, - 48, 54, 177, 66, 48, 54, 178, 66, 48, 54, 181, 66, 48, 54, 182, 66, 48, - 54, 183, 66, 48, 54, 184, 66, 48, 54, 185, 66, 48, 55, 176, 66, 48, 55, - 177, 66, 48, 55, 178, 66, 48, 55, 179, 66, 48, 55, 180, 66, 48, 55, 181, - 66, 48, 55, 182, 66, 48, 55, 183, 66, 48, 55, 184, 66, 48, 56, 176, 66, - 48, 56, 177, 66, 48, 56, 181, 66, 48, 56, 183, 66, 48, 57, 176, 66, 48, - 57, 177, 66, 49, 48, 176, 66, 49, 48, 178, 66, 49, 48, 180, 66, 49, 48, - 181, 66, 49, 50, 176, 66, 49, 50, 177, 66, 49, 50, 178, 66, 49, 50, 179, - 66, 49, 50, 181, 66, 49, 50, 183, 66, 49, 50, 184, 66, 49, 51, 176, 66, - 49, 51, 177, 66, 49, 51, 179, 66, 49, 51, 181, 66, 49, 52, 176, 66, 49, - 52, 177, 66, 49, 52, 181, 66, 49, 53, 177, 66, 49, 53, 182, 66, 49, 53, - 185, 66, 49, 54, 178, 66, 49, 54, 179, 66, 49, 55, 179, 66, 49, 55, 182, - 66, 49, 57, 177, 66, 50, 50, 176, 66, 50, 50, 181, 66, 50, 51, 176, 66, - 50, 51, 177, 66, 50, 51, 179, 66, 50, 52, 176, 66, 50, 52, 177, 66, 50, - 52, 178, 66, 50, 52, 179, 66, 50, 52, 183, 66, 50, 53, 180, 66, 65, 78, - 203, 66, 66, 65, 128, 66, 66, 69, 128, 66, 66, 73, 128, 66, 66, 79, 128, + 65, 205, 82, 79, 79, 128, 82, 82, 69, 200, 82, 82, 79, 128, 83, 69, 72, + 128, 83, 71, 65, 194, 83, 72, 65, 196, 83, 72, 73, 196, 83, 72, 79, 199, + 83, 72, 89, 128, 83, 73, 71, 128, 83, 73, 71, 180, 83, 73, 79, 211, 83, + 74, 69, 128, 83, 79, 85, 128, 83, 87, 73, 128, 83, 87, 79, 128, 84, 65, + 84, 128, 84, 65, 86, 128, 84, 73, 82, 128, 84, 74, 69, 128, 84, 76, 65, + 128, 84, 76, 73, 128, 84, 76, 85, 128, 84, 79, 84, 128, 84, 82, 69, 197, + 84, 84, 73, 128, 84, 85, 75, 128, 84, 85, 77, 128, 84, 87, 73, 128, 85, + 83, 69, 196, 86, 69, 80, 128, 86, 69, 87, 128, 86, 79, 85, 128, 86, 85, + 82, 128, 88, 86, 65, 128, 89, 65, 74, 128, 89, 65, 81, 128, 89, 65, 90, + 128, 89, 69, 65, 210, 89, 70, 69, 206, 89, 87, 69, 128, 89, 87, 73, 128, + 89, 87, 79, 128, 90, 73, 68, 193, 90, 79, 79, 128, 90, 79, 84, 128, 90, + 90, 65, 128, 90, 90, 73, 128, 90, 90, 85, 128, 65, 65, 74, 128, 65, 65, + 75, 128, 65, 65, 77, 128, 65, 65, 87, 128, 65, 65, 89, 128, 65, 68, 65, + 203, 65, 68, 69, 199, 65, 77, 65, 210, 65, 77, 66, 193, 65, 82, 65, 196, + 65, 82, 67, 200, 65, 84, 79, 205, 65, 85, 69, 128, 65, 87, 69, 128, 65, + 89, 69, 210, 66, 48, 48, 177, 66, 48, 48, 178, 66, 48, 48, 179, 66, 48, + 48, 180, 66, 48, 48, 181, 66, 48, 48, 182, 66, 48, 48, 183, 66, 48, 48, + 184, 66, 48, 48, 185, 66, 48, 49, 176, 66, 48, 49, 177, 66, 48, 49, 178, + 66, 48, 49, 179, 66, 48, 49, 180, 66, 48, 49, 181, 66, 48, 49, 182, 66, + 48, 49, 183, 66, 48, 50, 176, 66, 48, 50, 177, 66, 48, 50, 179, 66, 48, + 50, 180, 66, 48, 50, 181, 66, 48, 50, 182, 66, 48, 50, 183, 66, 48, 50, + 184, 66, 48, 50, 185, 66, 48, 51, 176, 66, 48, 51, 177, 66, 48, 51, 178, + 66, 48, 51, 179, 66, 48, 51, 182, 66, 48, 51, 183, 66, 48, 51, 184, 66, + 48, 51, 185, 66, 48, 52, 176, 66, 48, 52, 177, 66, 48, 52, 178, 66, 48, + 52, 179, 66, 48, 52, 180, 66, 48, 52, 181, 66, 48, 52, 182, 66, 48, 52, + 184, 66, 48, 53, 176, 66, 48, 53, 177, 66, 48, 53, 178, 66, 48, 53, 179, + 66, 48, 53, 180, 66, 48, 53, 181, 66, 48, 53, 183, 66, 48, 53, 184, 66, + 48, 53, 185, 66, 48, 54, 176, 66, 48, 54, 177, 66, 48, 54, 178, 66, 48, + 54, 181, 66, 48, 54, 182, 66, 48, 54, 183, 66, 48, 54, 184, 66, 48, 54, + 185, 66, 48, 55, 176, 66, 48, 55, 177, 66, 48, 55, 178, 66, 48, 55, 179, + 66, 48, 55, 180, 66, 48, 55, 181, 66, 48, 55, 182, 66, 48, 55, 183, 66, + 48, 55, 184, 66, 48, 56, 176, 66, 48, 56, 177, 66, 48, 56, 181, 66, 48, + 56, 183, 66, 48, 57, 176, 66, 48, 57, 177, 66, 49, 48, 176, 66, 49, 48, + 178, 66, 49, 48, 180, 66, 49, 48, 181, 66, 49, 50, 176, 66, 49, 50, 177, + 66, 49, 50, 178, 66, 49, 50, 179, 66, 49, 50, 181, 66, 49, 50, 183, 66, + 49, 50, 184, 66, 49, 51, 176, 66, 49, 51, 177, 66, 49, 51, 179, 66, 49, + 51, 181, 66, 49, 52, 176, 66, 49, 52, 177, 66, 49, 52, 181, 66, 49, 53, + 177, 66, 49, 53, 182, 66, 49, 53, 185, 66, 49, 54, 178, 66, 49, 54, 179, + 66, 49, 55, 179, 66, 49, 55, 182, 66, 49, 57, 177, 66, 50, 50, 176, 66, + 50, 50, 181, 66, 50, 51, 176, 66, 50, 51, 177, 66, 50, 51, 179, 66, 50, + 52, 176, 66, 50, 52, 177, 66, 50, 52, 178, 66, 50, 52, 179, 66, 50, 52, + 183, 66, 50, 53, 180, 66, 65, 78, 203, 66, 66, 73, 128, 66, 66, 79, 128, 66, 66, 85, 128, 66, 66, 89, 128, 66, 67, 65, 196, 66, 69, 76, 204, 66, - 69, 76, 212, 66, 69, 84, 128, 66, 69, 84, 193, 66, 72, 79, 128, 66, 73, - 66, 128, 66, 73, 71, 128, 66, 75, 65, 173, 66, 79, 65, 128, 66, 87, 69, - 128, 66, 87, 73, 128, 66, 88, 71, 128, 67, 65, 68, 193, 67, 65, 78, 199, - 67, 65, 82, 197, 67, 65, 84, 128, 67, 65, 88, 128, 67, 67, 65, 128, 67, - 67, 69, 128, 67, 67, 73, 128, 67, 67, 79, 128, 67, 67, 85, 128, 67, 69, - 68, 201, 67, 69, 78, 128, 67, 69, 80, 128, 67, 69, 88, 128, 67, 72, 65, - 196, 67, 72, 69, 206, 67, 73, 69, 128, 67, 73, 73, 128, 67, 73, 84, 128, - 67, 73, 88, 128, 67, 79, 65, 128, 67, 79, 80, 128, 67, 79, 84, 128, 67, - 79, 88, 128, 67, 85, 66, 197, 67, 85, 79, 128, 67, 85, 82, 128, 67, 85, + 69, 76, 212, 66, 69, 84, 193, 66, 72, 69, 128, 66, 72, 73, 128, 66, 72, + 85, 128, 66, 73, 66, 128, 66, 73, 71, 128, 66, 75, 65, 173, 66, 79, 65, + 128, 66, 85, 82, 213, 66, 87, 69, 128, 66, 87, 73, 128, 66, 88, 71, 128, + 67, 65, 68, 193, 67, 65, 78, 199, 67, 65, 82, 197, 67, 65, 88, 128, 67, + 67, 65, 128, 67, 67, 69, 128, 67, 67, 73, 128, 67, 67, 79, 128, 67, 67, + 85, 128, 67, 69, 68, 201, 67, 69, 78, 128, 67, 69, 80, 128, 67, 69, 88, + 128, 67, 72, 65, 196, 67, 72, 69, 206, 67, 73, 69, 128, 67, 73, 73, 128, + 67, 73, 84, 128, 67, 73, 88, 128, 67, 79, 65, 128, 67, 79, 80, 128, 67, + 79, 84, 128, 67, 79, 88, 128, 67, 85, 79, 128, 67, 85, 82, 128, 67, 85, 84, 128, 67, 85, 88, 128, 67, 89, 65, 128, 67, 89, 82, 128, 67, 89, 88, 128, 68, 65, 68, 128, 68, 65, 69, 199, 68, 65, 77, 208, 68, 65, 82, 203, - 68, 65, 84, 197, 68, 69, 75, 128, 68, 69, 90, 200, 68, 76, 73, 128, 68, + 68, 69, 75, 128, 68, 69, 90, 200, 68, 72, 73, 128, 68, 76, 73, 128, 68, 76, 79, 128, 68, 76, 85, 128, 68, 82, 73, 204, 68, 82, 89, 128, 68, 85, - 76, 128, 68, 87, 69, 128, 68, 87, 79, 128, 68, 89, 79, 128, 68, 90, 73, - 128, 68, 90, 79, 128, 68, 90, 85, 128, 69, 71, 71, 128, 69, 73, 83, 128, - 69, 75, 83, 128, 69, 78, 78, 128, 69, 78, 79, 211, 69, 79, 72, 128, 69, - 82, 71, 128, 69, 82, 82, 128, 69, 85, 82, 207, 69, 88, 79, 128, 70, 65, - 78, 128, 70, 65, 80, 128, 70, 65, 88, 128, 70, 69, 69, 196, 70, 69, 72, - 213, 70, 69, 78, 199, 70, 69, 79, 200, 70, 70, 73, 128, 70, 70, 76, 128, - 70, 73, 73, 128, 70, 73, 76, 197, 70, 73, 76, 204, 70, 73, 80, 128, 70, - 73, 84, 128, 70, 73, 88, 128, 70, 79, 79, 128, 70, 79, 80, 128, 70, 79, - 88, 128, 70, 85, 80, 128, 70, 85, 84, 128, 70, 85, 88, 128, 70, 87, 69, - 128, 70, 87, 73, 128, 70, 89, 65, 128, 70, 89, 80, 128, 70, 89, 84, 128, - 70, 89, 88, 128, 71, 65, 70, 128, 71, 65, 71, 128, 71, 65, 76, 128, 71, - 65, 82, 128, 71, 67, 65, 206, 71, 69, 66, 207, 71, 69, 84, 193, 71, 72, - 73, 128, 71, 72, 85, 128, 71, 72, 90, 128, 71, 73, 80, 128, 71, 79, 65, - 128, 71, 80, 65, 128, 71, 83, 85, 205, 71, 89, 65, 128, 71, 89, 69, 128, - 71, 89, 70, 213, 71, 89, 73, 128, 71, 89, 79, 128, 71, 89, 85, 128, 72, - 69, 76, 205, 72, 69, 78, 199, 72, 72, 69, 128, 72, 72, 73, 128, 72, 72, - 79, 128, 72, 72, 85, 128, 72, 76, 65, 128, 72, 76, 69, 128, 72, 76, 73, - 128, 72, 76, 79, 128, 72, 76, 85, 128, 72, 76, 89, 128, 72, 77, 73, 128, - 72, 77, 85, 128, 72, 77, 89, 128, 72, 78, 69, 128, 72, 78, 73, 128, 72, - 80, 65, 128, 72, 87, 85, 128, 72, 88, 65, 128, 72, 88, 69, 128, 72, 88, - 73, 128, 72, 88, 79, 128, 72, 90, 71, 128, 72, 90, 84, 128, 72, 90, 87, - 128, 72, 90, 90, 128, 73, 45, 65, 128, 73, 45, 79, 128, 73, 79, 82, 128, - 74, 65, 65, 128, 74, 65, 82, 128, 74, 69, 72, 128, 74, 69, 82, 128, 74, - 72, 79, 128, 74, 73, 65, 128, 74, 74, 65, 128, 74, 74, 69, 128, 74, 79, - 65, 128, 74, 79, 89, 128, 74, 87, 65, 128, 75, 65, 72, 128, 75, 65, 80, - 128, 75, 65, 85, 206, 75, 65, 88, 128, 75, 69, 80, 128, 75, 69, 88, 128, - 75, 69, 89, 128, 75, 72, 90, 128, 75, 73, 69, 128, 75, 73, 72, 128, 75, - 73, 73, 128, 75, 73, 80, 128, 75, 73, 88, 128, 75, 75, 69, 128, 75, 75, - 73, 128, 75, 75, 79, 128, 75, 75, 85, 128, 75, 79, 65, 128, 75, 79, 72, - 128, 75, 79, 80, 128, 75, 79, 84, 128, 75, 79, 88, 128, 75, 80, 65, 128, - 75, 82, 65, 128, 75, 85, 79, 128, 75, 85, 80, 128, 75, 85, 82, 128, 75, - 85, 84, 128, 75, 85, 88, 128, 75, 88, 65, 128, 75, 88, 69, 128, 75, 88, - 73, 128, 75, 88, 79, 128, 75, 88, 85, 128, 75, 89, 65, 128, 75, 89, 69, - 128, 75, 89, 73, 128, 75, 89, 79, 128, 75, 89, 85, 128, 76, 65, 69, 128, - 76, 65, 71, 213, 76, 65, 83, 212, 76, 65, 90, 217, 76, 69, 79, 128, 76, - 72, 65, 199, 76, 73, 68, 128, 76, 73, 73, 128, 76, 73, 78, 203, 76, 73, - 82, 193, 76, 79, 65, 128, 76, 79, 71, 128, 76, 79, 71, 210, 76, 79, 84, - 128, 76, 89, 89, 128, 77, 65, 83, 213, 77, 65, 89, 128, 77, 67, 72, 213, - 77, 68, 85, 206, 77, 69, 84, 193, 77, 69, 88, 128, 77, 71, 65, 128, 77, - 71, 69, 128, 77, 71, 85, 128, 77, 72, 90, 128, 77, 73, 73, 128, 77, 73, - 76, 128, 77, 73, 76, 204, 77, 73, 77, 128, 77, 79, 65, 128, 77, 79, 76, - 128, 77, 89, 65, 128, 77, 89, 84, 128, 78, 65, 71, 128, 78, 65, 79, 211, - 78, 66, 65, 128, 78, 66, 73, 128, 78, 66, 79, 128, 78, 66, 85, 128, 78, - 66, 89, 128, 78, 68, 69, 128, 78, 69, 78, 128, 78, 69, 84, 128, 78, 69, - 88, 212, 78, 71, 71, 128, 78, 74, 73, 128, 78, 74, 79, 128, 78, 74, 85, - 128, 78, 74, 89, 128, 78, 78, 71, 128, 78, 78, 79, 128, 78, 79, 65, 128, - 78, 82, 69, 128, 78, 82, 79, 128, 78, 82, 85, 128, 78, 82, 89, 128, 78, - 85, 76, 204, 78, 85, 80, 128, 78, 85, 82, 128, 78, 85, 88, 128, 78, 89, - 69, 128, 78, 90, 65, 128, 78, 90, 73, 128, 78, 90, 85, 128, 78, 90, 89, - 128, 79, 45, 69, 128, 79, 65, 75, 128, 79, 65, 89, 128, 79, 66, 79, 204, - 80, 65, 80, 128, 80, 65, 84, 128, 80, 65, 88, 128, 80, 72, 85, 128, 80, - 73, 69, 128, 80, 73, 71, 128, 80, 73, 80, 128, 80, 73, 84, 128, 80, 73, - 88, 128, 80, 76, 65, 128, 80, 79, 65, 128, 80, 79, 80, 128, 80, 79, 88, - 128, 80, 80, 77, 128, 80, 85, 50, 128, 80, 85, 79, 128, 80, 85, 80, 128, - 80, 85, 82, 128, 80, 85, 88, 128, 80, 89, 80, 128, 80, 89, 82, 128, 80, - 89, 88, 128, 81, 65, 76, 193, 81, 65, 81, 128, 81, 65, 85, 128, 81, 69, - 69, 128, 81, 72, 65, 128, 81, 72, 69, 128, 81, 72, 73, 128, 81, 72, 79, - 128, 81, 72, 85, 128, 81, 73, 69, 128, 81, 73, 80, 128, 81, 73, 84, 128, - 81, 73, 88, 128, 81, 79, 65, 128, 81, 79, 70, 128, 81, 79, 79, 128, 81, - 79, 80, 128, 81, 79, 88, 128, 81, 85, 65, 128, 81, 85, 69, 128, 81, 85, - 73, 128, 81, 85, 75, 128, 81, 85, 80, 128, 81, 85, 82, 128, 81, 85, 84, - 128, 81, 85, 86, 128, 81, 85, 88, 128, 81, 87, 65, 128, 81, 87, 69, 128, - 81, 87, 73, 128, 81, 89, 65, 128, 81, 89, 69, 128, 81, 89, 73, 128, 81, - 89, 79, 128, 81, 89, 80, 128, 81, 89, 82, 128, 81, 89, 84, 128, 81, 89, - 85, 128, 81, 89, 88, 128, 82, 65, 50, 128, 82, 65, 51, 128, 82, 65, 68, - 128, 82, 65, 68, 201, 82, 65, 73, 206, 82, 65, 77, 211, 82, 69, 73, 196, - 82, 73, 80, 128, 82, 74, 69, 128, 82, 74, 69, 211, 82, 79, 65, 128, 82, - 79, 79, 128, 82, 82, 69, 128, 82, 82, 85, 128, 82, 82, 89, 128, 82, 85, - 65, 128, 82, 85, 78, 128, 82, 87, 65, 128, 82, 89, 65, 128, 82, 89, 89, - 128, 83, 45, 87, 128, 83, 65, 68, 128, 83, 65, 89, 128, 83, 66, 85, 194, - 83, 71, 65, 194, 83, 71, 79, 210, 83, 71, 82, 193, 83, 73, 73, 128, 83, - 73, 78, 197, 83, 75, 87, 128, 83, 78, 65, 208, 83, 79, 65, 128, 83, 79, - 87, 128, 83, 83, 89, 128, 83, 85, 65, 128, 83, 85, 79, 128, 83, 85, 82, - 128, 83, 90, 65, 128, 83, 90, 69, 128, 83, 90, 73, 128, 83, 90, 79, 128, - 83, 90, 85, 128, 84, 65, 50, 128, 84, 65, 79, 128, 84, 65, 80, 128, 84, - 65, 80, 197, 84, 65, 87, 128, 84, 65, 88, 128, 84, 69, 83, 200, 84, 69, - 84, 200, 84, 69, 88, 128, 84, 72, 69, 211, 84, 72, 73, 206, 84, 72, 90, - 128, 84, 73, 73, 128, 84, 73, 80, 128, 84, 73, 84, 128, 84, 73, 88, 128, - 84, 76, 86, 128, 84, 79, 65, 128, 84, 79, 88, 128, 84, 82, 73, 128, 84, - 83, 86, 128, 84, 84, 72, 128, 84, 84, 85, 128, 84, 85, 79, 128, 84, 85, - 80, 128, 84, 85, 82, 128, 84, 85, 84, 128, 84, 85, 88, 128, 84, 89, 65, - 128, 84, 89, 69, 128, 84, 89, 73, 128, 84, 89, 79, 128, 84, 90, 65, 128, - 84, 90, 69, 128, 84, 90, 73, 128, 84, 90, 79, 128, 84, 90, 85, 128, 85, - 69, 69, 128, 85, 69, 89, 128, 85, 78, 68, 207, 85, 78, 73, 212, 85, 82, - 85, 218, 86, 65, 65, 128, 86, 65, 80, 128, 86, 65, 84, 128, 86, 65, 88, - 128, 86, 69, 72, 128, 86, 69, 88, 128, 86, 73, 69, 128, 86, 73, 80, 128, - 86, 73, 84, 128, 86, 73, 88, 128, 86, 79, 73, 196, 86, 79, 80, 128, 86, - 79, 84, 128, 86, 79, 87, 128, 86, 79, 88, 128, 86, 85, 80, 128, 86, 85, - 84, 128, 86, 85, 88, 128, 86, 87, 65, 128, 86, 89, 80, 128, 86, 89, 82, - 128, 86, 89, 84, 128, 86, 89, 88, 128, 87, 65, 80, 128, 87, 65, 84, 128, - 87, 65, 88, 128, 87, 69, 80, 128, 87, 69, 88, 128, 87, 79, 65, 128, 87, - 79, 69, 128, 87, 79, 80, 128, 87, 79, 82, 203, 87, 79, 88, 128, 87, 85, - 79, 128, 87, 89, 78, 206, 88, 79, 65, 128, 88, 79, 82, 128, 88, 89, 65, - 128, 88, 89, 69, 128, 88, 89, 73, 128, 88, 89, 79, 128, 88, 89, 80, 128, - 88, 89, 82, 128, 88, 89, 84, 128, 88, 89, 85, 128, 88, 89, 88, 128, 89, - 65, 66, 128, 89, 65, 68, 128, 89, 65, 70, 128, 89, 65, 71, 128, 89, 65, - 77, 128, 89, 65, 80, 128, 89, 65, 82, 128, 89, 65, 86, 128, 89, 65, 87, - 128, 89, 65, 89, 128, 89, 69, 65, 128, 89, 69, 87, 128, 89, 69, 89, 128, - 89, 73, 73, 128, 89, 85, 68, 200, 89, 85, 82, 128, 89, 89, 80, 128, 89, - 89, 82, 128, 89, 89, 84, 128, 89, 89, 88, 128, 90, 65, 72, 128, 90, 72, - 89, 128, 90, 76, 65, 128, 90, 79, 79, 128, 90, 82, 65, 128, 90, 85, 84, - 128, 90, 90, 89, 128, 75, 65, 198, 66, 69, 200, 68, 65, 217, 84, 72, 197, - 70, 69, 200, 68, 65, 196, 83, 65, 196, 69, 78, 196, 81, 65, 198, 84, 65, - 200, 65, 82, 195, 78, 79, 210, 76, 69, 203, 77, 65, 201, 79, 67, 210, 66, - 73, 199, 82, 72, 207, 84, 69, 206, 87, 65, 215, 89, 73, 199, 67, 72, 197, - 77, 71, 207, 65, 82, 205, 66, 85, 212, 67, 85, 205, 71, 72, 197, 78, 69, - 207, 80, 85, 128, 84, 73, 208, 71, 65, 198, 75, 72, 207, 90, 65, 200, 68, - 73, 197, 80, 72, 201, 90, 72, 197, 80, 72, 207, 81, 73, 128, 81, 85, 128, - 83, 73, 216, 67, 72, 207, 77, 69, 206, 77, 73, 196, 78, 69, 212, 80, 69, - 200, 81, 79, 128, 86, 69, 200, 89, 79, 196, 66, 65, 199, 66, 69, 212, 68, - 89, 207, 70, 79, 128, 72, 65, 193, 75, 65, 201, 78, 65, 199, 81, 69, 128, - 82, 65, 196, 83, 73, 206, 86, 65, 214, 45, 85, 205, 67, 72, 201, 68, 65, - 208, 68, 85, 204, 68, 90, 128, 69, 88, 207, 71, 82, 213, 71, 85, 199, 72, - 79, 212, 72, 80, 128, 72, 86, 128, 73, 74, 128, 73, 85, 128, 73, 89, 128, - 74, 69, 200, 74, 79, 212, 75, 69, 217, 75, 71, 128, 75, 75, 128, 76, 74, - 128, 77, 73, 199, 78, 74, 128, 78, 85, 206, 78, 86, 128, 78, 89, 201, 79, - 72, 205, 80, 65, 215, 81, 79, 207, 82, 68, 207, 83, 85, 206, 83, 87, 128, - 87, 79, 206, 89, 69, 206, 89, 85, 211, 65, 78, 207, 66, 69, 206, 66, 79, - 215, 66, 81, 128, 67, 77, 128, 67, 85, 212, 68, 76, 128, 68, 77, 128, 68, - 82, 217, 68, 86, 128, 69, 67, 200, 70, 77, 128, 70, 89, 128, 71, 66, 128, - 71, 86, 128, 71, 89, 128, 72, 71, 128, 72, 75, 128, 73, 83, 211, 75, 66, - 128, 75, 73, 208, 75, 76, 128, 75, 77, 128, 75, 84, 128, 75, 86, 128, 76, + 72, 128, 68, 85, 76, 128, 68, 85, 77, 128, 68, 87, 79, 128, 68, 89, 79, + 128, 68, 90, 73, 128, 68, 90, 79, 128, 68, 90, 85, 128, 69, 68, 68, 128, + 69, 71, 71, 128, 69, 73, 83, 128, 69, 75, 83, 128, 69, 78, 78, 128, 69, + 78, 79, 211, 69, 79, 72, 128, 69, 82, 71, 128, 69, 83, 72, 178, 69, 85, + 82, 207, 69, 88, 79, 128, 70, 65, 78, 128, 70, 65, 80, 128, 70, 65, 88, + 128, 70, 69, 69, 196, 70, 69, 72, 213, 70, 69, 78, 199, 70, 69, 79, 200, + 70, 70, 73, 128, 70, 70, 76, 128, 70, 73, 73, 128, 70, 73, 76, 197, 70, + 73, 76, 204, 70, 73, 80, 128, 70, 73, 84, 128, 70, 73, 88, 128, 70, 76, + 65, 128, 70, 79, 80, 128, 70, 79, 88, 128, 70, 85, 80, 128, 70, 85, 84, + 128, 70, 85, 88, 128, 70, 87, 69, 128, 70, 87, 73, 128, 70, 89, 65, 128, + 70, 89, 80, 128, 70, 89, 84, 128, 70, 89, 88, 128, 71, 65, 66, 193, 71, + 65, 70, 128, 71, 65, 71, 128, 71, 65, 77, 128, 71, 67, 65, 206, 71, 69, + 66, 193, 71, 69, 66, 207, 71, 69, 84, 193, 71, 72, 73, 128, 71, 72, 85, + 128, 71, 72, 90, 128, 71, 73, 80, 128, 71, 76, 65, 128, 71, 79, 65, 128, + 71, 80, 65, 128, 71, 83, 85, 205, 71, 85, 76, 128, 71, 85, 77, 128, 71, + 89, 65, 128, 71, 89, 69, 128, 71, 89, 70, 213, 71, 89, 73, 128, 71, 89, + 79, 128, 71, 89, 85, 128, 72, 69, 76, 205, 72, 69, 78, 199, 72, 76, 69, + 128, 72, 76, 73, 128, 72, 76, 79, 128, 72, 76, 85, 128, 72, 76, 89, 128, + 72, 77, 73, 128, 72, 77, 85, 128, 72, 77, 89, 128, 72, 78, 69, 128, 72, + 78, 73, 128, 72, 80, 65, 128, 72, 85, 78, 128, 72, 87, 85, 128, 72, 88, + 65, 128, 72, 88, 69, 128, 72, 88, 73, 128, 72, 88, 79, 128, 72, 90, 71, + 128, 72, 90, 84, 128, 72, 90, 87, 128, 72, 90, 90, 128, 73, 45, 65, 128, + 73, 45, 79, 128, 73, 76, 50, 128, 73, 79, 82, 128, 74, 65, 65, 128, 74, + 65, 82, 128, 74, 69, 72, 128, 74, 69, 82, 128, 74, 72, 79, 128, 74, 73, + 65, 128, 74, 74, 69, 128, 74, 79, 65, 128, 74, 79, 89, 128, 74, 87, 65, + 128, 75, 65, 68, 179, 75, 65, 68, 181, 75, 65, 80, 128, 75, 65, 85, 206, + 75, 65, 88, 128, 75, 69, 80, 128, 75, 69, 88, 128, 75, 69, 89, 128, 75, + 72, 79, 212, 75, 72, 90, 128, 75, 73, 69, 128, 75, 73, 72, 128, 75, 73, + 73, 128, 75, 73, 80, 128, 75, 73, 88, 128, 75, 75, 69, 128, 75, 75, 73, + 128, 75, 75, 79, 128, 75, 75, 85, 128, 75, 76, 65, 128, 75, 79, 65, 128, + 75, 79, 72, 128, 75, 79, 80, 128, 75, 79, 84, 128, 75, 79, 88, 128, 75, + 80, 69, 128, 75, 80, 73, 128, 75, 80, 79, 128, 75, 80, 85, 128, 75, 85, + 52, 128, 75, 85, 55, 128, 75, 85, 79, 128, 75, 85, 80, 128, 75, 85, 84, + 128, 75, 85, 88, 128, 75, 88, 65, 128, 75, 88, 69, 128, 75, 88, 73, 128, + 75, 88, 79, 128, 75, 88, 85, 128, 75, 89, 65, 128, 75, 89, 69, 128, 75, + 89, 73, 128, 75, 89, 79, 128, 75, 89, 85, 128, 76, 65, 69, 128, 76, 65, + 71, 213, 76, 65, 83, 212, 76, 65, 84, 197, 76, 65, 90, 217, 76, 68, 50, + 128, 76, 69, 79, 128, 76, 72, 65, 199, 76, 73, 73, 128, 76, 73, 76, 128, + 76, 73, 78, 203, 76, 73, 82, 193, 76, 79, 65, 128, 76, 79, 71, 128, 76, + 79, 71, 210, 76, 79, 84, 128, 76, 85, 51, 128, 76, 85, 72, 128, 76, 89, + 89, 128, 77, 65, 50, 128, 77, 65, 72, 128, 77, 65, 83, 213, 77, 65, 89, + 128, 77, 66, 50, 128, 77, 66, 51, 128, 77, 66, 52, 128, 77, 66, 69, 128, + 77, 66, 73, 128, 77, 66, 79, 128, 77, 66, 85, 128, 77, 67, 72, 213, 77, + 69, 84, 193, 77, 69, 88, 128, 77, 71, 65, 128, 77, 71, 69, 128, 77, 71, + 85, 128, 77, 72, 90, 128, 77, 73, 73, 128, 77, 73, 76, 128, 77, 73, 76, + 204, 77, 73, 77, 128, 77, 79, 65, 128, 77, 79, 76, 128, 77, 85, 69, 128, + 77, 89, 65, 128, 77, 89, 84, 128, 78, 65, 50, 128, 78, 65, 71, 128, 78, + 65, 77, 128, 78, 65, 79, 211, 78, 66, 65, 128, 78, 66, 73, 128, 78, 66, + 79, 128, 78, 66, 85, 128, 78, 66, 89, 128, 78, 69, 84, 128, 78, 69, 88, + 212, 78, 71, 71, 128, 78, 72, 65, 128, 78, 73, 50, 128, 78, 73, 77, 128, + 78, 74, 89, 128, 78, 78, 71, 128, 78, 78, 79, 128, 78, 79, 65, 128, 78, + 82, 69, 128, 78, 82, 79, 128, 78, 82, 85, 128, 78, 82, 89, 128, 78, 85, + 69, 128, 78, 85, 76, 204, 78, 85, 77, 128, 78, 85, 80, 128, 78, 85, 82, + 128, 78, 85, 88, 128, 78, 89, 69, 212, 78, 90, 65, 128, 78, 90, 73, 128, + 78, 90, 85, 128, 78, 90, 89, 128, 79, 45, 69, 128, 79, 65, 75, 128, 79, + 65, 89, 128, 79, 66, 79, 204, 79, 84, 84, 128, 80, 65, 68, 128, 80, 65, + 76, 205, 80, 65, 84, 128, 80, 65, 88, 128, 80, 73, 69, 128, 80, 73, 71, + 128, 80, 73, 80, 128, 80, 73, 84, 128, 80, 73, 88, 128, 80, 79, 65, 128, + 80, 79, 80, 128, 80, 79, 88, 128, 80, 80, 77, 128, 80, 85, 50, 128, 80, + 85, 79, 128, 80, 85, 80, 128, 80, 85, 82, 128, 80, 85, 88, 128, 80, 89, + 80, 128, 80, 89, 82, 128, 80, 89, 88, 128, 81, 65, 76, 193, 81, 65, 81, + 128, 81, 65, 85, 128, 81, 69, 69, 128, 81, 72, 65, 128, 81, 72, 69, 128, + 81, 72, 73, 128, 81, 72, 79, 128, 81, 72, 85, 128, 81, 73, 69, 128, 81, + 73, 80, 128, 81, 73, 84, 128, 81, 73, 88, 128, 81, 79, 65, 128, 81, 79, + 79, 128, 81, 79, 80, 128, 81, 79, 88, 128, 81, 85, 65, 128, 81, 85, 69, + 128, 81, 85, 73, 128, 81, 85, 75, 128, 81, 85, 80, 128, 81, 85, 82, 128, + 81, 85, 84, 128, 81, 85, 86, 128, 81, 85, 88, 128, 81, 87, 65, 128, 81, + 87, 69, 128, 81, 87, 73, 128, 81, 89, 65, 128, 81, 89, 69, 128, 81, 89, + 73, 128, 81, 89, 79, 128, 81, 89, 80, 128, 81, 89, 82, 128, 81, 89, 84, + 128, 81, 89, 85, 128, 81, 89, 88, 128, 82, 65, 66, 128, 82, 65, 68, 201, + 82, 65, 73, 206, 82, 65, 77, 211, 82, 69, 73, 196, 82, 73, 80, 128, 82, + 74, 69, 128, 82, 74, 69, 211, 82, 79, 65, 128, 82, 82, 69, 128, 82, 82, + 85, 128, 82, 82, 89, 128, 82, 85, 65, 128, 82, 87, 65, 128, 82, 89, 65, + 128, 82, 89, 89, 128, 83, 45, 87, 128, 83, 65, 87, 128, 83, 65, 89, 128, + 83, 66, 85, 194, 83, 71, 79, 210, 83, 71, 82, 193, 83, 72, 85, 178, 83, + 73, 73, 128, 83, 73, 75, 178, 83, 73, 78, 197, 83, 75, 87, 128, 83, 78, + 65, 208, 83, 79, 65, 128, 83, 79, 87, 128, 83, 83, 89, 128, 83, 84, 50, + 128, 83, 85, 65, 128, 83, 85, 68, 128, 83, 85, 75, 213, 83, 85, 79, 128, + 83, 87, 71, 128, 83, 87, 90, 128, 83, 89, 65, 128, 83, 90, 65, 128, 83, + 90, 69, 128, 83, 90, 73, 128, 83, 90, 79, 128, 83, 90, 85, 128, 83, 90, + 90, 128, 84, 65, 50, 128, 84, 65, 76, 204, 84, 65, 79, 128, 84, 65, 80, + 128, 84, 65, 80, 197, 84, 65, 87, 128, 84, 65, 88, 128, 84, 69, 78, 213, + 84, 69, 83, 200, 84, 69, 84, 200, 84, 69, 88, 128, 84, 72, 69, 211, 84, + 72, 73, 206, 84, 72, 90, 128, 84, 73, 73, 128, 84, 73, 76, 128, 84, 73, + 80, 128, 84, 73, 84, 128, 84, 73, 88, 128, 84, 76, 86, 128, 84, 79, 65, + 128, 84, 79, 88, 128, 84, 82, 73, 128, 84, 83, 86, 128, 84, 84, 50, 128, + 84, 84, 72, 128, 84, 84, 85, 128, 84, 85, 79, 128, 84, 85, 80, 128, 84, + 85, 84, 128, 84, 85, 88, 128, 84, 89, 65, 128, 84, 89, 69, 128, 84, 89, + 73, 128, 84, 89, 79, 128, 84, 90, 65, 128, 84, 90, 69, 128, 84, 90, 73, + 128, 84, 90, 73, 210, 84, 90, 79, 128, 84, 90, 85, 128, 85, 69, 69, 128, + 85, 69, 89, 128, 85, 78, 68, 207, 85, 82, 52, 128, 85, 82, 73, 128, 85, + 82, 85, 218, 85, 90, 51, 128, 85, 90, 85, 128, 86, 65, 65, 128, 86, 65, + 80, 128, 86, 65, 84, 128, 86, 65, 88, 128, 86, 69, 72, 128, 86, 69, 88, + 128, 86, 73, 69, 128, 86, 73, 80, 128, 86, 73, 84, 128, 86, 73, 88, 128, + 86, 79, 73, 196, 86, 79, 79, 128, 86, 79, 80, 128, 86, 79, 84, 128, 86, + 79, 87, 128, 86, 79, 88, 128, 86, 85, 80, 128, 86, 85, 84, 128, 86, 85, + 88, 128, 86, 87, 65, 128, 86, 89, 80, 128, 86, 89, 82, 128, 86, 89, 84, + 128, 86, 89, 88, 128, 87, 65, 78, 128, 87, 65, 80, 128, 87, 65, 84, 128, + 87, 65, 88, 128, 87, 69, 78, 128, 87, 69, 80, 128, 87, 69, 88, 128, 87, + 73, 78, 128, 87, 79, 65, 128, 87, 79, 69, 128, 87, 79, 78, 128, 87, 79, + 80, 128, 87, 79, 82, 203, 87, 79, 88, 128, 87, 85, 78, 128, 87, 85, 79, + 128, 87, 89, 78, 206, 88, 79, 65, 128, 88, 79, 82, 128, 88, 89, 65, 128, + 88, 89, 69, 128, 88, 89, 73, 128, 88, 89, 79, 128, 88, 89, 80, 128, 88, + 89, 82, 128, 88, 89, 84, 128, 88, 89, 85, 128, 88, 89, 88, 128, 89, 65, + 66, 128, 89, 65, 68, 128, 89, 65, 70, 128, 89, 65, 71, 128, 89, 65, 77, + 128, 89, 65, 80, 128, 89, 65, 86, 128, 89, 65, 87, 128, 89, 65, 89, 128, + 89, 69, 65, 128, 89, 69, 87, 128, 89, 69, 89, 128, 89, 73, 73, 128, 89, + 85, 68, 200, 89, 85, 82, 128, 89, 89, 80, 128, 89, 89, 82, 128, 89, 89, + 84, 128, 89, 89, 88, 128, 90, 65, 71, 128, 90, 65, 72, 128, 90, 65, 73, + 128, 90, 69, 50, 128, 90, 72, 89, 128, 90, 73, 51, 128, 90, 73, 66, 128, + 90, 73, 71, 128, 90, 76, 65, 128, 90, 82, 65, 128, 90, 85, 53, 128, 90, + 85, 77, 128, 90, 85, 84, 128, 90, 90, 89, 128, 71, 65, 178, 75, 65, 198, + 66, 69, 200, 68, 65, 217, 84, 72, 197, 70, 69, 200, 76, 85, 178, 68, 65, + 196, 68, 65, 199, 83, 65, 196, 84, 65, 200, 83, 65, 199, 69, 78, 196, 81, + 65, 198, 82, 79, 196, 65, 66, 178, 83, 73, 216, 78, 85, 206, 65, 82, 195, + 73, 71, 201, 78, 79, 210, 66, 73, 199, 80, 87, 207, 84, 69, 206, 87, 65, + 215, 89, 73, 199, 76, 69, 203, 77, 71, 207, 79, 67, 210, 83, 72, 197, 71, + 72, 197, 82, 72, 207, 67, 72, 197, 65, 82, 205, 66, 85, 212, 67, 85, 205, + 71, 65, 196, 78, 69, 207, 84, 73, 208, 85, 82, 178, 71, 65, 198, 75, 72, + 207, 90, 65, 200, 68, 73, 197, 80, 72, 201, 90, 72, 197, 71, 85, 178, 71, + 85, 196, 80, 72, 207, 81, 73, 128, 81, 85, 128, 84, 65, 194, 84, 73, 210, + 67, 72, 207, 70, 79, 128, 75, 65, 201, 77, 69, 206, 77, 73, 196, 78, 65, + 199, 78, 69, 212, 79, 68, 196, 80, 69, 200, 81, 79, 128, 86, 69, 200, 89, + 79, 196, 66, 65, 199, 66, 69, 212, 68, 89, 207, 71, 73, 180, 72, 65, 193, + 75, 75, 128, 76, 65, 204, 76, 85, 205, 81, 69, 128, 83, 73, 206, 85, 76, + 213, 86, 65, 214, 45, 85, 205, 66, 85, 210, 67, 72, 201, 68, 65, 208, 68, + 85, 204, 68, 90, 128, 69, 88, 207, 71, 82, 213, 71, 85, 199, 72, 71, 128, + 72, 80, 128, 72, 86, 128, 73, 74, 128, 73, 85, 128, 73, 89, 128, 74, 69, + 200, 74, 79, 212, 75, 65, 203, 75, 69, 217, 75, 71, 128, 75, 85, 204, 76, + 74, 128, 77, 73, 199, 77, 77, 128, 78, 73, 205, 78, 74, 128, 78, 86, 128, + 78, 89, 201, 79, 72, 205, 79, 86, 128, 80, 65, 215, 81, 79, 207, 82, 68, + 207, 83, 72, 213, 83, 85, 206, 83, 87, 128, 84, 90, 128, 87, 79, 206, 89, + 69, 206, 89, 85, 211, 65, 78, 207, 66, 65, 204, 66, 69, 206, 66, 79, 215, + 66, 81, 128, 67, 77, 128, 67, 85, 212, 68, 73, 206, 68, 76, 128, 68, 77, + 128, 68, 82, 217, 68, 85, 194, 68, 86, 128, 69, 67, 200, 70, 77, 128, 70, + 89, 128, 71, 66, 128, 71, 85, 205, 71, 86, 128, 71, 89, 128, 72, 75, 128, + 73, 83, 211, 75, 65, 178, 75, 66, 128, 75, 73, 196, 75, 73, 208, 75, 76, + 128, 75, 77, 128, 75, 84, 128, 75, 85, 179, 75, 85, 180, 75, 86, 128, 76, 65, 215, 76, 67, 197, 76, 67, 201, 76, 72, 128, 76, 78, 128, 76, 88, 128, - 77, 66, 128, 77, 69, 205, 77, 71, 128, 77, 72, 128, 77, 76, 128, 77, 77, - 128, 77, 83, 128, 77, 86, 128, 77, 87, 128, 78, 65, 193, 78, 70, 128, 78, - 71, 207, 78, 72, 128, 78, 77, 128, 78, 87, 128, 78, 89, 196, 79, 86, 128, - 80, 67, 128, 80, 69, 211, 80, 70, 128, 80, 79, 208, 80, 82, 128, 80, 86, - 128, 80, 87, 128, 81, 79, 198, 81, 89, 128, 82, 73, 206, 82, 74, 197, 82, - 85, 194, 83, 78, 193, 83, 79, 198, 83, 82, 128, 84, 65, 213, 84, 65, 214, - 84, 69, 197, 84, 69, 212, 84, 73, 210, 84, 82, 128, 86, 69, 197, 86, 69, - 215, 87, 66, 128, 87, 86, 128, 88, 89, 128, 89, 65, 210, 89, 86, 128, 90, - 76, 193, 66, 217, 77, 213, 65, 197, 89, 213, 68, 218, 90, 197, 75, 205, - 67, 205, 68, 205, 75, 213, 77, 205, 68, 194, 76, 218, 77, 194, 77, 207, - 77, 214, 77, 215, 80, 207, 81, 208, 84, 195, 202, 209, + 77, 69, 205, 77, 71, 128, 77, 72, 128, 77, 83, 128, 77, 85, 199, 77, 86, + 128, 77, 87, 128, 78, 65, 193, 78, 70, 128, 78, 71, 207, 78, 72, 128, 78, + 77, 128, 78, 87, 128, 78, 89, 196, 79, 66, 128, 80, 50, 128, 80, 65, 208, + 80, 67, 128, 80, 68, 128, 80, 69, 211, 80, 70, 128, 80, 71, 128, 80, 79, + 208, 80, 82, 128, 80, 86, 128, 80, 87, 128, 80, 90, 128, 81, 79, 198, 81, + 89, 128, 82, 73, 206, 82, 74, 197, 82, 85, 194, 83, 71, 128, 83, 78, 193, + 83, 79, 198, 83, 80, 128, 83, 82, 128, 83, 85, 210, 83, 90, 128, 84, 65, + 213, 84, 65, 214, 84, 69, 197, 84, 69, 212, 84, 78, 128, 84, 82, 128, 85, + 90, 179, 86, 69, 197, 86, 69, 215, 87, 66, 128, 87, 86, 128, 88, 89, 128, + 89, 65, 210, 89, 86, 128, 90, 65, 204, 90, 73, 194, 90, 76, 193, 90, 85, + 181, 66, 217, 65, 197, 69, 178, 89, 213, 66, 201, 68, 218, 90, 197, 68, + 213, 75, 205, 67, 205, 68, 205, 77, 205, 67, 193, 68, 194, 76, 218, 77, + 194, 77, 207, 77, 214, 77, 215, 80, 207, 81, 208, 84, 195, 90, 201, 202, + 209, }; static unsigned short lexicon_offset[] = { - 0, 0, 6, 10, 15, 23, 30, 32, 35, 40, 53, 65, 71, 77, 82, 90, 99, 103, - 108, 116, 119, 126, 130, 138, 144, 150, 157, 162, 172, 175, 182, 187, - 193, 201, 206, 215, 222, 229, 238, 243, 251, 255, 256, 264, 270, 276, - 282, 288, 295, 301, 309, 318, 322, 327, 330, 337, 344, 350, 353, 362, - 370, 375, 381, 387, 392, 397, 402, 405, 407, 413, 418, 426, 299, 428, - 430, 439, 100, 447, 457, 465, 467, 478, 481, 494, 498, 504, 514, 519, - 522, 524, 533, 538, 545, 549, 556, 559, 564, 569, 572, 582, 591, 599, - 606, 614, 618, 626, 634, 643, 647, 654, 662, 671, 675, 683, 689, 698, - 705, 708, 709, 714, 719, 728, 735, 738, 745, 751, 755, 763, 173, 767, - 773, 782, 750, 789, 263, 797, 803, 808, 812, 825, 834, 839, 842, 852, - 753, 857, 866, 875, 877, 882, 887, 894, 904, 907, 909, 913, 921, 22, 929, - 933, 938, 947, 543, 950, 960, 964, 971, 977, 983, 988, 994, 997, 1000, - 80, 1007, 1015, 1025, 1030, 1035, 1042, 1044, 1054, 779, 1058, 1062, - 1069, 1074, 1081, 1085, 1089, 1094, 1104, 1110, 1023, 1112, 1117, 1123, - 325, 1130, 1134, 1140, 1144, 1147, 1152, 1158, 1163, 1083, 1169, 1176, - 1181, 1183, 1185, 1190, 1195, 624, 1204, 1210, 1213, 1215, 1221, 31, - 1224, 1226, 1179, 1229, 1237, 1243, 1250, 1274, 1296, 1318, 1340, 1361, - 1382, 1402, 1422, 1441, 1460, 1479, 1498, 1517, 1536, 1555, 1574, 1592, - 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1789, 1806, - 1823, 1840, 1857, 1874, 1891, 1908, 1925, 1942, 1959, 1975, 1991, 2007, - 2023, 2039, 2055, 2071, 2087, 2103, 2119, 2135, 2151, 2167, 2183, 2199, - 2215, 2231, 2247, 2263, 2279, 2295, 2311, 2327, 2343, 2359, 2375, 2391, - 2407, 2423, 2439, 2455, 2471, 2487, 2503, 2519, 2535, 2551, 2567, 2583, - 2599, 2615, 2631, 2647, 2663, 2679, 2695, 2711, 2727, 2743, 2759, 2775, - 2791, 2807, 2823, 2839, 2855, 2871, 2887, 2903, 2919, 2935, 2951, 2967, - 2983, 2999, 3015, 3031, 3047, 3063, 3079, 3095, 3111, 3127, 3143, 3159, - 3175, 3191, 3207, 3223, 3239, 3255, 3271, 3287, 3303, 3319, 3335, 3351, - 3367, 3383, 3399, 3415, 3431, 3447, 3463, 3479, 3495, 3511, 3527, 3543, - 3559, 3575, 3591, 3607, 3623, 3639, 3655, 3671, 3687, 3703, 3719, 3735, - 3751, 3767, 3783, 3799, 3815, 3831, 3847, 3863, 3879, 3895, 3911, 3927, - 3943, 3959, 3975, 3991, 4007, 4023, 4039, 4055, 4071, 4087, 4103, 4119, - 4135, 4151, 4167, 4183, 4199, 4215, 4231, 4247, 4263, 4279, 4295, 4311, - 4327, 4343, 4359, 4375, 4391, 4407, 4423, 4439, 4455, 4471, 4487, 4503, - 4519, 4535, 4551, 4567, 4583, 4599, 4615, 4631, 4647, 4663, 4679, 4695, - 4711, 4727, 4743, 4759, 4775, 4791, 4807, 4823, 4839, 4855, 4871, 4887, - 4903, 4919, 4935, 4951, 4967, 4983, 4999, 5015, 5031, 5047, 5063, 5079, - 5095, 5111, 5127, 5143, 5159, 5175, 5191, 5207, 5223, 5239, 5255, 5271, - 5287, 5303, 5319, 5335, 5351, 5367, 5383, 5399, 5415, 5431, 5447, 5463, - 5479, 5495, 5511, 5527, 5543, 5559, 5575, 5591, 5607, 5623, 5639, 5655, - 5671, 5687, 5703, 5719, 5735, 5751, 5767, 5783, 5799, 5815, 5831, 5847, - 5863, 5879, 5895, 5911, 5927, 5943, 5959, 5975, 5991, 6007, 6023, 6039, - 6055, 6071, 6087, 6103, 6119, 6135, 6151, 6167, 6183, 6199, 6215, 6231, - 6247, 6263, 6279, 6295, 6311, 6327, 6343, 6359, 6375, 6391, 6407, 6423, - 6439, 6455, 6471, 6487, 6503, 6519, 6535, 6551, 6567, 6583, 6599, 6615, - 6631, 6647, 6663, 6679, 6695, 6711, 6727, 6743, 6759, 6775, 6791, 6807, - 6823, 6839, 6855, 6871, 6887, 6903, 6919, 6935, 6951, 6967, 6983, 6999, - 7015, 7031, 7047, 7063, 7079, 7095, 7111, 7127, 7143, 7159, 7175, 7191, - 7207, 7223, 7239, 7255, 7271, 7287, 7303, 7319, 7335, 7351, 7367, 7383, - 7399, 7415, 7431, 7447, 7463, 7479, 7495, 7511, 7527, 7543, 7559, 7575, - 7591, 7607, 7623, 7639, 7655, 7671, 7687, 7703, 7719, 7735, 7751, 7767, - 7783, 7799, 7815, 7831, 7847, 7863, 7879, 7895, 7911, 7927, 7943, 7959, - 7975, 7991, 8007, 8023, 8039, 8055, 8071, 8087, 8103, 8119, 8135, 8151, - 8167, 8183, 8199, 8215, 8231, 8247, 8263, 8279, 8295, 8311, 8327, 8343, - 8359, 8375, 8391, 8407, 8423, 8439, 8455, 8471, 8487, 8503, 8519, 8535, - 8551, 8567, 8583, 8599, 8615, 8631, 8647, 8663, 8679, 8695, 8711, 8727, - 8743, 8759, 8775, 8791, 8807, 8823, 8839, 8855, 8871, 8887, 8903, 8919, - 8935, 8951, 8967, 8983, 8999, 9015, 9031, 9047, 9063, 9079, 9095, 9111, - 9127, 9143, 9159, 9175, 9191, 9207, 9223, 9239, 9255, 9271, 9287, 9303, - 9319, 9335, 9351, 9367, 9383, 9399, 9415, 9431, 9447, 9463, 9479, 9495, - 9511, 9527, 9543, 9559, 9575, 9591, 9607, 9623, 9639, 9655, 9671, 9687, - 9703, 9719, 9735, 9751, 9767, 9783, 9799, 9815, 9831, 9847, 9863, 9879, - 9895, 9911, 9927, 9943, 9959, 9975, 9991, 10007, 10023, 10039, 10055, - 10071, 10087, 10103, 10119, 10135, 10151, 10167, 10183, 10199, 10215, - 10231, 10247, 10263, 10279, 10295, 10311, 10327, 10343, 10359, 10375, - 10391, 10407, 10423, 10439, 10455, 10471, 10487, 10503, 10519, 10535, - 10551, 10567, 10583, 10599, 10615, 10631, 10647, 10663, 10679, 10695, - 10711, 10727, 10743, 10759, 10775, 10791, 10807, 10823, 10839, 10855, - 10871, 10887, 10903, 10919, 10934, 10949, 10964, 10979, 10994, 11009, - 11024, 11039, 11054, 11069, 11084, 11099, 11114, 11129, 11144, 11159, - 11174, 11189, 11204, 11219, 11234, 11249, 11264, 11279, 11294, 11309, - 11324, 11339, 11354, 11369, 11384, 11399, 11414, 11429, 11444, 11459, - 11474, 11489, 11504, 11519, 11534, 11549, 11564, 11579, 11594, 11609, - 11624, 11639, 11654, 11669, 11684, 11699, 11714, 11729, 11744, 11759, - 11774, 11789, 11804, 11819, 11834, 11849, 11864, 11879, 11894, 11909, - 11924, 11939, 11954, 11969, 11984, 11999, 12014, 12029, 12044, 12059, - 12074, 12089, 12104, 12119, 12134, 12149, 12164, 12179, 12194, 12209, - 12224, 12239, 12254, 12269, 12284, 12299, 12314, 12329, 12344, 12359, - 12374, 12389, 12404, 12419, 12434, 12449, 12464, 12479, 12494, 12509, - 12524, 12539, 12554, 12569, 12584, 12599, 12614, 12629, 12644, 12659, - 12674, 12689, 12704, 12719, 12734, 12749, 12764, 12779, 12794, 12809, - 12824, 12839, 12854, 12869, 12884, 12899, 12914, 12929, 12944, 12959, - 12974, 12989, 13004, 13019, 13034, 13049, 13064, 13079, 13094, 13109, - 13124, 13139, 13154, 13169, 13184, 13199, 13214, 13229, 13244, 13259, - 13274, 13289, 13304, 13319, 13334, 13349, 13364, 13379, 13394, 13409, - 13424, 13439, 13454, 13469, 13484, 13499, 13514, 13529, 13544, 13559, - 13574, 13589, 13604, 13619, 13634, 13649, 13664, 13679, 13694, 13709, - 13724, 13739, 13754, 13769, 13784, 13799, 13814, 13829, 13844, 13859, - 13874, 13889, 13904, 13919, 13934, 13949, 13964, 13979, 13994, 14009, - 14024, 14039, 14054, 14069, 14084, 14099, 14114, 14129, 14144, 14159, - 14174, 14189, 14204, 14219, 14234, 14249, 14264, 14279, 14294, 14309, - 14324, 14339, 14354, 14369, 14384, 14399, 14414, 14429, 14444, 14459, - 14474, 14489, 14504, 14519, 14534, 14549, 14564, 14579, 14594, 14609, - 14624, 14639, 14654, 14669, 14684, 14699, 14714, 14729, 14744, 14759, - 14774, 14789, 14804, 14819, 14834, 14849, 14864, 14879, 14894, 14909, - 14924, 14939, 14954, 14969, 14984, 14999, 15014, 15029, 15044, 15059, - 15074, 15089, 15104, 15119, 15134, 15149, 15164, 15179, 15194, 15209, - 15224, 15239, 15254, 15269, 15284, 15299, 15314, 15329, 15344, 15359, - 15374, 15389, 15404, 15419, 15434, 15449, 15464, 15479, 15494, 15509, - 15524, 15539, 15554, 15569, 15584, 15599, 15614, 15629, 15644, 15659, - 15674, 15689, 15704, 15719, 15734, 15749, 15764, 15779, 15794, 15809, - 15824, 15839, 15854, 15869, 15884, 15899, 15914, 15929, 15944, 15959, - 15974, 15989, 16004, 16019, 16034, 16049, 16064, 16079, 16094, 16109, - 16124, 16139, 16154, 16169, 16184, 16199, 16214, 16229, 16244, 16259, - 16274, 16289, 16304, 16319, 16334, 16349, 16364, 16379, 16394, 16409, - 16424, 16439, 16454, 16469, 16484, 16499, 16514, 16529, 16544, 16559, - 16574, 16589, 16604, 16619, 16634, 16649, 16664, 16679, 16694, 16709, - 16724, 16739, 16754, 16769, 16784, 16799, 16814, 16829, 16844, 16859, - 16874, 16889, 16904, 16919, 16934, 16949, 16964, 16979, 16994, 17009, - 17024, 17039, 17054, 17069, 17084, 17099, 17114, 17129, 17144, 17159, - 17174, 17189, 17204, 17219, 17234, 17249, 17264, 17279, 17294, 17309, - 17324, 17339, 17354, 17369, 17384, 17399, 17414, 17429, 17444, 17459, - 17474, 17489, 17504, 17519, 17534, 17549, 17564, 17579, 17594, 17609, - 17624, 17639, 17654, 17669, 17684, 17699, 17714, 17729, 17744, 17759, - 17774, 17789, 17804, 17819, 17834, 17849, 17864, 17879, 17894, 17909, - 17924, 17939, 17954, 17969, 17984, 17999, 18014, 18029, 18044, 18059, - 18074, 18089, 18104, 18119, 18134, 18149, 18164, 18179, 18194, 18209, - 18224, 18239, 18254, 18269, 18283, 18297, 18311, 18325, 18339, 1408, - 18353, 18367, 18381, 18395, 18409, 18423, 18437, 18451, 18465, 18479, - 18493, 18507, 18521, 18535, 18549, 18563, 18577, 18591, 18605, 18619, - 18633, 18647, 18661, 18675, 18689, 18703, 1809, 18717, 18731, 18745, - 18759, 18773, 18787, 18801, 18815, 18829, 18843, 18857, 18871, 18885, - 18899, 18913, 18927, 18941, 18954, 18967, 18980, 18993, 19006, 19019, - 19032, 19045, 19058, 19071, 19084, 19097, 19110, 19123, 19136, 19149, - 19162, 19175, 19188, 19201, 19214, 19227, 19240, 1759, 19253, 19266, - 19279, 19292, 19305, 19318, 19331, 19344, 19357, 19370, 19383, 19396, - 19409, 19422, 19435, 19448, 19461, 19474, 19487, 19500, 19513, 19526, - 19539, 19552, 19565, 19578, 19591, 19604, 19617, 19630, 19643, 19656, - 19669, 19682, 19695, 19708, 19721, 1523, 19734, 19747, 19760, 19773, - 19786, 19799, 19812, 19825, 19838, 19851, 19864, 19877, 19890, 19903, - 19916, 19929, 19942, 19955, 19968, 19981, 19994, 20007, 20020, 20033, - 20046, 20059, 20072, 20085, 20098, 20111, 20124, 20137, 20150, 20163, - 20176, 20189, 20202, 20215, 20228, 20241, 20254, 20267, 20280, 20293, - 20306, 20319, 20332, 20345, 20358, 20371, 20384, 20397, 20410, 20423, - 20436, 20449, 20462, 20475, 20488, 20501, 20514, 20527, 20540, 20553, - 20566, 20579, 20592, 20605, 20618, 20631, 20644, 20657, 20670, 20683, - 20696, 20709, 20722, 20735, 20748, 20761, 20774, 20787, 20800, 20813, - 20826, 20839, 20852, 20865, 20878, 20891, 20904, 20917, 20930, 20943, - 20956, 20969, 20982, 20995, 21008, 21021, 21034, 21047, 21060, 21073, - 21086, 21099, 21112, 21125, 21138, 21151, 21164, 21177, 21190, 21203, - 21216, 21229, 21242, 21255, 21268, 21281, 21294, 21307, 21320, 21333, - 21346, 21359, 21372, 21385, 21398, 21411, 21424, 21437, 21450, 21463, - 21476, 21489, 21502, 21515, 21528, 21541, 21554, 21567, 21580, 21593, - 21606, 21619, 21632, 21645, 21658, 21671, 21684, 21697, 21710, 21723, - 21736, 21749, 21762, 21775, 21788, 21801, 21814, 21827, 21840, 21853, - 21866, 21879, 21892, 21905, 21918, 21931, 21944, 21957, 21970, 21983, - 21996, 22009, 22022, 22034, 22046, 22058, 22070, 22082, 22094, 22106, - 22118, 22130, 22142, 22154, 22166, 22178, 22190, 22202, 22214, 22226, - 22238, 1670, 22250, 22262, 22274, 1616, 22286, 22298, 22310, 22322, - 22334, 22346, 22358, 1505, 1598, 22370, 1634, 22382, 22394, 22406, 22418, - 22430, 22442, 22454, 22466, 22478, 22490, 22502, 22514, 22526, 22538, - 22550, 22562, 22574, 22586, 22598, 22610, 22622, 22634, 22646, 22658, - 22670, 22682, 22694, 22706, 22718, 22730, 22742, 22754, 22766, 22778, - 22790, 22802, 22814, 22826, 22838, 22850, 22862, 22874, 22886, 22898, - 22910, 22922, 22934, 22946, 22958, 22970, 22982, 22994, 23006, 23018, - 23030, 23042, 23054, 23066, 23078, 23090, 23102, 23114, 23126, 23138, - 23150, 23162, 23174, 23186, 23198, 23210, 23222, 23234, 23246, 23258, - 23270, 23282, 23294, 23306, 23318, 23330, 23342, 23354, 23366, 23378, - 23390, 23402, 23414, 1390, 23426, 23438, 23450, 1724, 23462, 23474, - 23486, 23498, 23510, 23522, 23534, 23546, 23558, 23570, 23582, 23594, - 23606, 23618, 23630, 23642, 23654, 23666, 23678, 23690, 23702, 23714, - 23726, 23738, 23750, 23762, 23774, 23786, 23798, 23810, 23822, 23834, - 23846, 23858, 23870, 23882, 23894, 23906, 23918, 23930, 23942, 23954, - 23966, 23978, 23990, 24002, 24014, 24026, 24038, 24050, 24062, 24074, - 24086, 24098, 24110, 24122, 24134, 24146, 24158, 24170, 24182, 24194, - 24206, 24218, 24230, 24242, 24254, 24266, 24278, 24290, 24302, 24314, - 24326, 24338, 24350, 24362, 24374, 24386, 24398, 24410, 24422, 24434, - 24446, 24458, 24470, 24482, 24494, 24506, 24518, 24530, 24542, 24554, - 24566, 24578, 24590, 24602, 24614, 24626, 24638, 24650, 24662, 24674, - 24686, 24698, 24710, 24722, 24734, 24746, 24758, 24770, 24781, 24792, - 24803, 24814, 24825, 24836, 24847, 24858, 24869, 24880, 24891, 24902, - 24913, 24924, 24935, 24946, 24957, 1795, 24968, 24979, 24990, 25001, - 25012, 25023, 25034, 25045, 25056, 1880, 1307, 25067, 1430, 25078, 25089, - 25100, 25111, 25122, 25133, 1897, 25144, 25155, 25166, 25177, 25188, - 25199, 25210, 25221, 25232, 25243, 25254, 25265, 25276, 25287, 1863, - 25298, 25309, 25320, 25331, 25342, 25353, 25364, 25375, 25386, 25397, - 25408, 25419, 25430, 25441, 25452, 25463, 25474, 25485, 25496, 25507, - 25518, 25529, 25540, 25551, 25562, 25573, 25584, 25595, 25606, 25617, - 25628, 25639, 25650, 25661, 25672, 25683, 25694, 25705, 25716, 25727, - 25738, 25749, 25760, 25771, 25782, 25793, 25804, 25815, 25826, 25837, - 25848, 25859, 25870, 25881, 25892, 25903, 25914, 25925, 25936, 25947, - 25958, 25969, 25980, 25991, 26002, 26013, 26024, 26035, 26046, 26057, - 26068, 26079, 26090, 26101, 26112, 26123, 26134, 26145, 26156, 26167, - 26178, 26189, 26200, 26211, 26222, 26233, 26244, 26255, 26266, 26277, - 26288, 26299, 26310, 26321, 26332, 26343, 26354, 26365, 26376, 26387, - 26398, 26409, 26420, 26431, 26442, 26453, 18580, 26464, 26475, 26486, - 26497, 26508, 26519, 26530, 26541, 26552, 26563, 26574, 26585, 26596, - 26607, 26618, 26629, 26640, 26651, 26662, 26673, 26684, 26695, 26706, - 26717, 26728, 26739, 26750, 26761, 26772, 26783, 26794, 26805, 26816, - 26827, 26838, 26849, 26860, 26871, 26882, 26893, 26904, 26915, 26926, - 26937, 26948, 26959, 26970, 26981, 26992, 27003, 27013, 27023, 27033, - 27043, 27053, 27063, 27073, 27083, 27093, 27103, 27113, 27123, 27133, - 27143, 27153, 27163, 27173, 27183, 27193, 27203, 22072, 27213, 27223, - 27233, 27243, 27253, 27263, 27273, 27283, 1372, 27293, 27303, 27313, - 27323, 27333, 27343, 27353, 27363, 27373, 27383, 27393, 27403, 27413, - 27423, 27433, 27443, 27453, 27463, 27473, 27483, 27493, 27503, 27513, - 27523, 27533, 27543, 27553, 27563, 27573, 27583, 27593, 27603, 27613, - 27623, 27633, 27643, 27653, 27663, 27673, 27683, 27693, 27703, 27713, - 27723, 27733, 27743, 27753, 27763, 27773, 27783, 27793, 27803, 27813, - 27823, 27833, 27843, 27853, 27863, 27873, 27883, 27893, 27903, 27913, - 27923, 27933, 27943, 27953, 27963, 27973, 27983, 27993, 19490, 28003, - 22672, 28013, 28023, 28033, 28043, 28053, 28063, 28073, 28083, 28093, - 28103, 28113, 28123, 28133, 28143, 28153, 28163, 28173, 28183, 28193, - 28203, 28213, 28223, 28233, 28243, 28253, 28263, 28273, 28283, 28293, - 28303, 28313, 28323, 28333, 28343, 28353, 28363, 28373, 28383, 28393, - 28403, 28413, 28423, 28433, 28443, 28453, 28463, 28473, 28483, 28493, - 28503, 28513, 28523, 28533, 28543, 28553, 28563, 28573, 28583, 28593, - 28603, 28613, 28623, 28633, 28643, 28653, 28663, 28673, 28683, 28693, - 28703, 28713, 28723, 28733, 28743, 28753, 28763, 28773, 28783, 28793, - 28803, 28813, 28823, 28833, 28843, 28853, 28863, 28873, 28883, 28893, - 28903, 28913, 28923, 28933, 28943, 28953, 28963, 28973, 28983, 28993, - 29003, 29013, 29023, 29033, 29043, 29053, 29063, 29073, 29083, 29093, - 29103, 29113, 29123, 29133, 29143, 29153, 29163, 29173, 29183, 29193, - 29203, 29213, 29223, 29233, 29243, 29253, 29263, 29273, 29283, 29293, - 29303, 29313, 29323, 29333, 29343, 1949, 29353, 29363, 29373, 29383, - 29393, 29403, 29413, 29423, 29433, 29443, 29453, 29463, 29473, 29483, - 29493, 29503, 29513, 29523, 29533, 29543, 29553, 29563, 29573, 29583, - 29593, 29603, 29613, 29623, 29633, 29643, 29653, 29663, 29673, 29683, - 29693, 29703, 29713, 29723, 29733, 29743, 29753, 29763, 29773, 29783, - 29793, 29803, 29813, 29823, 29833, 29843, 29853, 29863, 29873, 29883, - 29893, 29903, 29913, 29923, 29933, 29942, 29951, 29960, 29969, 29978, - 29987, 29996, 30005, 30014, 30023, 30032, 30041, 30050, 30059, 30068, - 30077, 30086, 18958, 30095, 30104, 30113, 30122, 30131, 30140, 30149, - 30158, 30167, 30176, 30185, 30194, 30203, 30212, 30221, 30230, 30239, - 30248, 30257, 30266, 30275, 30284, 30293, 30302, 30311, 30320, 30329, - 30338, 30347, 30356, 30365, 30374, 30383, 30392, 30401, 30410, 30419, - 30428, 30437, 30446, 30455, 30464, 30473, 24926, 30482, 30491, 30500, - 30509, 30518, 30527, 30536, 30545, 30554, 30563, 30572, 30581, 30590, - 30599, 30608, 30617, 30626, 30635, 30644, 30653, 30662, 30671, 30680, - 30689, 30698, 30707, 30716, 25135, 30725, 30734, 30743, 30752, 30761, - 30770, 30779, 30788, 30797, 30806, 30815, 30824, 30833, 30842, 30851, - 30860, 30869, 30878, 30887, 30896, 30905, 1287, 30914, 30923, 30932, - 30941, 30950, 30959, 30968, 30977, 30986, 30995, 31004, 31013, 31022, - 31031, 31040, 31049, 29894, 31058, 31067, 31076, 31085, 31094, 31103, - 31112, 31121, 31130, 31139, 31148, 31157, 31166, 31175, 31184, 31193, - 31202, 31211, 31220, 31229, 31238, 31247, 31256, 31265, 31274, 31283, - 31292, 31301, 31310, 31319, 31328, 31337, 31346, 31355, 31364, 31373, - 31382, 31391, 31400, 31409, 31418, 31427, 31436, 31445, 31454, 31463, - 31472, 31481, 31490, 31499, 31508, 31517, 31526, 31535, 31544, 31553, - 31562, 31571, 31580, 31589, 31598, 31607, 31616, 31625, 31634, 31643, - 31652, 31661, 31670, 31679, 31688, 31697, 31706, 31715, 31724, 31733, - 31742, 31751, 31760, 31769, 31778, 31787, 31796, 31805, 31814, 31823, - 31832, 31841, 31850, 31859, 31868, 31877, 31886, 31895, 31904, 31913, - 31922, 31931, 31940, 31949, 31958, 31967, 31976, 31985, 31994, 32003, - 32012, 32021, 32030, 32039, 32048, 32057, 32066, 32075, 32084, 32093, - 32102, 32111, 32120, 32129, 32138, 32147, 32156, 32165, 32174, 32183, - 32192, 32201, 32210, 10766, 32219, 32228, 32237, 32246, 32255, 32264, - 32273, 32282, 32291, 32300, 32309, 32318, 32327, 32336, 32345, 32354, - 32363, 32372, 32381, 32390, 32399, 32408, 32417, 32426, 32435, 32444, - 32453, 32462, 32471, 32480, 32489, 32498, 32507, 32516, 32525, 32534, - 32543, 32552, 32561, 32570, 32579, 32588, 32597, 32606, 32615, 32624, - 32633, 32642, 32651, 32660, 32669, 32678, 32687, 32696, 32705, 32714, - 32723, 1848, 32732, 32741, 32750, 32759, 32768, 32777, 32786, 32795, - 32804, 32813, 32822, 32831, 32840, 32849, 32858, 32867, 32876, 32885, - 32894, 32903, 32912, 32921, 32930, 32939, 32948, 32957, 32966, 32975, - 32984, 32993, 33002, 33011, 33020, 33029, 33038, 33047, 33056, 33065, - 33074, 33083, 33091, 33099, 33107, 33115, 18289, 33123, 33131, 33139, - 33147, 33155, 33163, 33171, 33179, 33187, 33195, 33203, 33211, 33219, - 33227, 33235, 33243, 33251, 33259, 33267, 27465, 33275, 33283, 33291, - 33299, 33307, 33315, 33323, 33331, 33339, 33347, 19609, 33355, 33363, - 33371, 33379, 33387, 33395, 33403, 18317, 33411, 33419, 33427, 33435, - 33443, 1471, 33451, 33459, 2047, 19765, 33467, 1967, 33475, 33483, 33491, - 18373, 33499, 33507, 33515, 33523, 18985, 22362, 33531, 33539, 33547, - 33555, 33563, 33571, 33579, 33587, 33595, 33603, 30402, 33611, 33619, - 33627, 33635, 33643, 33651, 33659, 33667, 33675, 33683, 33691, 1815, - 33699, 33707, 33715, 33723, 33731, 33739, 33747, 33755, 33763, 33771, - 33779, 33787, 33795, 33803, 33811, 33819, 33827, 33835, 33843, 33851, - 33859, 33867, 33875, 33883, 33891, 33899, 33907, 33915, 33923, 33931, - 33939, 33947, 33955, 33963, 33971, 33979, 33987, 33995, 34003, 34011, - 34019, 34027, 34035, 34043, 34051, 34059, 34067, 34075, 34083, 34091, - 27265, 34099, 34107, 34115, 34123, 34131, 34139, 34147, 34155, 34163, - 34171, 34179, 34187, 34195, 34203, 34211, 34219, 30906, 34227, 34235, - 34243, 34251, 34259, 34267, 34275, 34283, 34291, 34299, 34307, 34315, - 34323, 34331, 34339, 34347, 34355, 34363, 34371, 34379, 34387, 34395, - 34403, 34411, 34419, 34427, 34435, 34443, 34451, 34459, 34467, 34475, - 34483, 34491, 34499, 34507, 34515, 34523, 34531, 34539, 34547, 27325, - 34555, 34563, 34571, 34579, 34587, 34595, 34603, 34611, 34619, 34627, - 34635, 34643, 34651, 34659, 34667, 34675, 34683, 26467, 34691, 34699, - 34707, 34715, 34723, 34731, 34739, 34747, 34755, 34763, 34771, 34779, - 34787, 34795, 34803, 34811, 34819, 34827, 34835, 34843, 34851, 34859, - 34867, 34875, 34883, 34891, 34899, 34907, 34915, 34923, 34931, 34939, - 34947, 34955, 34963, 34971, 34979, 34987, 34995, 30951, 35003, 35011, - 35019, 35027, 35035, 35043, 35051, 35059, 35067, 35075, 35083, 35091, - 35099, 26588, 35107, 35115, 1934, 35123, 35131, 35139, 35147, 35155, - 35163, 35171, 35179, 32706, 35187, 35195, 35203, 35211, 35219, 35227, - 35235, 35243, 35251, 35259, 35267, 35275, 35283, 35291, 35299, 35307, - 35315, 35323, 35331, 35339, 2015, 35347, 35355, 10863, 35363, 35371, - 35379, 35387, 35395, 35403, 35411, 35419, 35427, 23310, 35435, 35443, - 35451, 35459, 35467, 35475, 35483, 35491, 35499, 35507, 35515, 35523, - 35531, 35539, 35547, 35555, 35563, 35571, 35579, 35587, 35595, 35603, - 35611, 35619, 35627, 35635, 35643, 35651, 35659, 35667, 35675, 35683, - 19141, 35691, 35699, 35707, 35715, 35723, 35731, 35739, 35747, 35755, - 1710, 35763, 35771, 35779, 35787, 35795, 35803, 35811, 35819, 35827, - 35835, 35843, 35851, 35859, 35867, 35875, 35883, 35891, 35899, 35907, - 35915, 35923, 35931, 35939, 35947, 35955, 35963, 35971, 35979, 35987, - 35995, 36003, 36011, 36019, 18905, 36027, 36035, 36043, 36051, 36059, - 36067, 36075, 36083, 36091, 36099, 36107, 28965, 36115, 36123, 36131, - 36139, 36147, 36155, 36163, 36171, 36179, 36187, 36195, 36202, 36209, - 36216, 36223, 36230, 19753, 36237, 36244, 36251, 36258, 36265, 36272, - 36279, 36286, 36293, 36300, 36307, 36314, 36321, 36328, 36335, 36342, - 36349, 11047, 36356, 36363, 36370, 36377, 36384, 36391, 36398, 36405, - 36412, 36419, 36426, 36433, 36440, 36447, 36454, 36461, 36468, 36475, - 36482, 36489, 36496, 36503, 36510, 36517, 1510, 36524, 36531, 1603, - 36538, 36545, 36552, 36559, 36566, 36573, 36580, 36587, 36594, 36601, - 36608, 36615, 36622, 36629, 36636, 36643, 36650, 1354, 36657, 36664, - 36671, 36678, 36685, 36692, 36699, 36706, 36713, 36720, 36727, 36734, - 36741, 36748, 36755, 36762, 36769, 36776, 36783, 26578, 36790, 36797, - 36804, 36811, 36818, 36825, 36832, 36839, 36846, 36853, 36860, 36867, - 36874, 36881, 36888, 36895, 36902, 36909, 36916, 36923, 36930, 36937, - 36944, 36951, 36958, 36965, 36972, 36979, 36986, 36993, 30187, 37000, - 37007, 37014, 37021, 37028, 37035, 37042, 37049, 37056, 37063, 37070, - 37077, 37084, 37091, 37098, 37105, 37112, 37119, 37126, 37133, 37140, - 37147, 37154, 37161, 37168, 37175, 37182, 37189, 37196, 37203, 37210, - 37217, 37224, 37231, 37238, 37245, 37252, 37259, 37266, 37273, 37280, - 22123, 37287, 37294, 37301, 37308, 37315, 37322, 37329, 37336, 37343, - 37350, 37357, 37364, 37371, 37378, 37385, 37392, 37399, 37406, 37413, - 37420, 37427, 37434, 37441, 37448, 37455, 37462, 37469, 37476, 37483, - 37490, 25291, 37497, 37504, 37511, 37518, 37525, 37532, 37539, 37546, - 37553, 37560, 37567, 30403, 37574, 37581, 37588, 37595, 37602, 37609, - 37616, 37623, 37630, 1747, 37637, 37644, 37651, 37658, 37665, 37672, - 37679, 37686, 37693, 37700, 37707, 37714, 37721, 37728, 37735, 37742, - 37749, 37756, 37763, 37770, 37777, 37784, 37791, 37798, 37805, 37812, - 37819, 37826, 37833, 37840, 37847, 37854, 37861, 37868, 37875, 37882, - 37889, 37896, 37903, 37910, 37917, 37924, 37931, 37938, 37945, 37952, - 37959, 37966, 30952, 37973, 37980, 37987, 37994, 38001, 38008, 38015, - 38022, 38029, 38036, 38043, 38050, 38057, 38064, 38071, 38078, 38085, - 38092, 38099, 38106, 38113, 38120, 38127, 38134, 38141, 38148, 38155, - 26512, 38162, 38169, 38176, 38183, 38190, 38197, 38204, 38211, 38218, - 38225, 38232, 38239, 38246, 38253, 34308, 38260, 38267, 38274, 38281, - 38288, 38295, 38302, 38309, 38316, 38323, 38330, 38337, 38344, 38351, - 38358, 38365, 38372, 38379, 38386, 38393, 38400, 38407, 38414, 38421, - 38428, 38435, 38442, 38449, 38456, 38463, 38470, 38477, 38484, 38491, - 38498, 38505, 38512, 38519, 38526, 38533, 38540, 38547, 38554, 38561, - 38568, 38575, 38582, 29166, 38589, 38596, 38603, 38610, 38617, 35596, - 38624, 38631, 38638, 38645, 38652, 38659, 38666, 38673, 38680, 38687, - 38694, 33196, 38701, 38708, 38715, 38722, 38729, 38736, 38743, 38750, - 38757, 38764, 38771, 38778, 38785, 38792, 38799, 38806, 38813, 38820, - 38827, 38834, 38841, 38848, 38855, 38862, 38869, 38876, 38883, 38890, - 38897, 38904, 30772, 38911, 38918, 38925, 38932, 23167, 38939, 38946, - 38953, 38960, 38967, 38974, 38981, 38988, 38995, 39002, 39009, 39016, - 39023, 39030, 39037, 39044, 39051, 39058, 39065, 39072, 39079, 39086, - 39093, 39100, 39107, 39114, 39121, 39128, 30970, 39135, 39142, 39149, - 28966, 39156, 39163, 39170, 39177, 39184, 39191, 39198, 39205, 39212, - 39219, 39226, 39233, 39240, 39247, 39254, 39261, 39267, 39273, 39279, - 39285, 39291, 39297, 39303, 39309, 39315, 39321, 39327, 38086, 33917, - 39333, 39339, 39345, 39351, 27927, 39357, 39363, 39369, 39375, 39381, - 39387, 39393, 39399, 27127, 39405, 39411, 39417, 39423, 39255, 39429, - 39435, 39441, 39447, 39453, 39459, 39465, 27227, 39471, 39477, 39483, - 39489, 39495, 39501, 39507, 39513, 39519, 39525, 39531, 39537, 39543, - 39549, 39555, 39561, 27287, 39567, 39573, 39579, 39585, 25061, 22148, - 39591, 19299, 28047, 39597, 39603, 39609, 39615, 19065, 39621, 39627, - 1312, 39633, 39639, 1549, 22580, 39645, 39651, 18347, 39657, 22448, - 39663, 39669, 1416, 39675, 18753, 39681, 19286, 39687, 39693, 39699, - 39705, 39711, 39717, 39723, 39729, 39735, 39741, 33613, 39747, 39753, - 39759, 39765, 27137, 39771, 39777, 39783, 39789, 39795, 39801, 39807, - 39813, 39819, 39825, 39831, 10973, 1198, 39837, 39843, 39849, 39855, - 39861, 39867, 39873, 39879, 39885, 39891, 39897, 39903, 39909, 39915, - 39921, 39927, 39933, 39939, 39945, 39951, 22460, 39957, 39963, 39969, - 39975, 39981, 39987, 39993, 39999, 40005, 40011, 40017, 40023, 40029, - 40035, 40041, 40047, 40053, 40059, 26876, 40065, 40071, 40077, 40083, - 40089, 40095, 40101, 40107, 40113, 40119, 40125, 30980, 27197, 40131, - 40137, 40143, 40149, 40155, 40161, 40167, 40173, 40179, 40185, 40191, - 40197, 40203, 40209, 40215, 40221, 40227, 40233, 40239, 40245, 40251, - 40257, 40263, 40269, 40275, 40281, 40287, 40293, 40299, 40305, 27377, - 40311, 40317, 40323, 40329, 40335, 40341, 40347, 40353, 40359, 40365, - 40371, 40377, 40383, 40389, 40395, 40401, 40407, 40413, 40419, 40425, - 40431, 40437, 40443, 40449, 40455, 40461, 40467, 40473, 40479, 40485, - 40491, 40497, 40503, 40509, 40515, 40521, 40527, 40533, 40539, 40545, - 32861, 40551, 40557, 40563, 40569, 40575, 40581, 40587, 40593, 40599, - 40605, 40611, 40617, 40623, 40629, 40635, 40641, 40647, 40653, 40659, - 40665, 40671, 40677, 40683, 40689, 40695, 40701, 40707, 40713, 26469, - 40719, 40725, 40731, 40737, 40743, 40749, 40755, 40761, 40767, 40773, - 40779, 40785, 40791, 40797, 40803, 40809, 40815, 40821, 40827, 40833, - 40839, 40845, 40851, 27367, 40857, 40863, 40869, 40875, 40881, 40887, - 40893, 40899, 40905, 40911, 40917, 40923, 40929, 40935, 40941, 40947, - 40953, 40959, 40965, 40971, 40977, 40983, 40989, 40995, 41001, 41007, - 41013, 41019, 41025, 41031, 41037, 41043, 37827, 41049, 41055, 41061, - 41067, 41073, 41079, 41085, 41091, 41097, 41103, 34469, 41109, 41115, - 41121, 41127, 41133, 41139, 41145, 41151, 41157, 41163, 41169, 41175, - 41181, 36093, 41187, 41193, 41199, 41205, 41211, 41217, 41223, 41229, - 41235, 41241, 41247, 41253, 41259, 41265, 41271, 41277, 41283, 41289, - 41295, 41301, 41307, 41313, 41319, 41325, 41331, 41337, 41343, 41349, - 41355, 41361, 41367, 41373, 41379, 41385, 41391, 41397, 41403, 41409, - 41415, 41421, 41427, 41433, 41439, 41445, 34701, 41451, 41457, 41463, - 41469, 41475, 41481, 41487, 22712, 41493, 41499, 41505, 41511, 41517, - 41523, 41529, 41535, 41541, 41547, 41553, 41559, 41565, 41571, 41577, - 41583, 41589, 41595, 41601, 41607, 41613, 41619, 41625, 41631, 41637, - 41643, 41649, 41655, 41661, 41667, 41673, 41679, 41685, 41691, 41697, - 41703, 41709, 41715, 41721, 41727, 41733, 41739, 41745, 41751, 41757, - 41763, 41769, 41775, 41781, 41787, 41793, 41799, 41805, 41811, 41817, - 41823, 41829, 41835, 41841, 41847, 41853, 41859, 41865, 41871, 41877, - 41883, 41889, 41895, 41901, 41907, 41913, 41919, 41925, 41931, 41937, - 41943, 41949, 41955, 41961, 41967, 41973, 41979, 41985, 41991, 41997, - 42003, 42009, 42015, 42021, 42027, 42033, 42039, 42045, 42051, 42057, - 42063, 42069, 42075, 42081, 42087, 42093, 42099, 42105, 42111, 42117, - 42123, 42129, 42135, 42141, 42147, 42153, 42159, 42165, 42171, 42177, - 42183, 42189, 37169, 42195, 42201, 42207, 42213, 42219, 42225, 42231, - 42237, 42243, 42249, 42255, 42261, 42267, 42273, 42279, 42285, 42291, - 42297, 42303, 42309, 42315, 42321, 42327, 42333, 42339, 42345, 42351, - 42357, 42363, 42369, 42375, 42381, 42387, 42393, 42399, 42405, 42411, - 42417, 42423, 42429, 42435, 42441, 42447, 42453, 42459, 42465, 42471, - 42477, 42483, 42489, 42495, 42501, 42507, 42513, 42519, 42525, 42531, - 42537, 42543, 42549, 42555, 42561, 42567, 42573, 42579, 42585, 42591, - 42597, 42603, 42609, 42615, 42621, 42627, 42633, 42639, 42645, 42651, - 42657, 42663, 42669, 42675, 42681, 42687, 42693, 42699, 42705, 42711, - 42717, 42723, 42729, 32393, 42735, 42741, 42747, 42753, 42759, 42765, - 42771, 42777, 42783, 42789, 42795, 42801, 42807, 42813, 42819, 42825, - 42831, 42837, 42843, 42849, 42855, 10943, 42861, 42867, 42873, 42879, - 42885, 42891, 42897, 42903, 42909, 42915, 42921, 42927, 42933, 42939, - 22496, 42945, 42951, 42957, 39122, 42963, 42969, 30989, 42975, 42981, - 42987, 42993, 42999, 43005, 43011, 43017, 43023, 43029, 43035, 43041, - 43047, 43053, 43059, 43065, 43071, 43077, 43083, 43089, 43095, 43101, - 43107, 43113, 43119, 43125, 43131, 43137, 43143, 43149, 43155, 43161, - 43167, 43173, 43179, 43185, 29087, 43191, 43197, 43203, 43209, 43215, - 43221, 43227, 43233, 43239, 43245, 43251, 43257, 43263, 43269, 43275, - 43281, 43287, 43293, 43299, 43305, 43311, 43317, 43323, 43329, 43335, - 43341, 43347, 43353, 43359, 43365, 43371, 43376, 43381, 43386, 43391, - 43396, 43401, 43406, 43411, 43416, 30198, 43421, 19157, 43426, 43431, - 40864, 43436, 43441, 43446, 28858, 43451, 43456, 43461, 43466, 43471, - 43476, 43481, 43486, 43491, 43496, 43501, 43506, 43511, 43060, 43516, - 41068, 29308, 43521, 43526, 43531, 39784, 43536, 43541, 43546, 43551, - 43556, 43561, 43566, 43571, 43576, 40024, 43581, 43586, 43591, 43596, - 43601, 32682, 43606, 43611, 43616, 43621, 43626, 43631, 43636, 43641, - 43646, 43651, 43656, 43661, 43666, 43671, 43676, 43681, 43686, 43691, - 43696, 1377, 43701, 43706, 43711, 43716, 17919, 43721, 43726, 43731, - 43736, 43741, 43746, 43751, 43756, 43761, 43766, 43771, 43776, 43781, - 43786, 40900, 43791, 43796, 43801, 43806, 43811, 43816, 43821, 43826, - 43831, 43836, 43841, 43846, 43851, 43856, 43861, 43866, 43871, 43876, - 43881, 43886, 39880, 43891, 43896, 42916, 43901, 43906, 434, 43911, - 31152, 43916, 43921, 43926, 43931, 43936, 43941, 43946, 43951, 43956, - 1153, 43961, 43966, 43971, 43976, 43981, 27058, 43986, 43991, 43996, - 44001, 44006, 44011, 39382, 44016, 44021, 44026, 44031, 44036, 44041, - 44046, 44051, 44056, 44061, 44066, 44071, 44076, 44081, 44086, 44091, - 44096, 44101, 44106, 44111, 18949, 44116, 44121, 44126, 44131, 44136, - 44141, 44146, 44151, 44156, 44161, 44166, 44171, 44176, 44181, 44186, - 44191, 43294, 44196, 38220, 44201, 44206, 44211, 44216, 44221, 44226, - 44231, 44236, 42958, 19404, 44241, 44246, 44251, 44256, 40120, 44261, - 44266, 44271, 44276, 44281, 44286, 44291, 44296, 26437, 44301, 44306, - 44311, 44316, 29288, 44321, 44326, 44331, 44336, 44341, 44346, 44351, - 44356, 44361, 44366, 44371, 44376, 44381, 44386, 44391, 44396, 44401, - 44406, 44411, 44416, 44421, 44426, 44431, 44436, 44441, 44446, 44451, - 44456, 44461, 44466, 44471, 44476, 26591, 44481, 44486, 44491, 44496, - 27388, 44501, 33830, 44506, 44511, 44516, 44521, 44526, 44531, 44536, - 44541, 44546, 44551, 44556, 44561, 44566, 44571, 44576, 44581, 44586, - 44591, 44596, 44601, 42634, 44606, 44611, 44616, 32745, 44621, 44626, - 30819, 44631, 44636, 44641, 44646, 44651, 44656, 41446, 44661, 44666, - 37100, 44671, 44676, 44681, 18572, 44686, 44691, 44696, 44701, 35590, - 44706, 44711, 44716, 44721, 44726, 44731, 36974, 38633, 44736, 44741, - 44746, 44751, 44756, 44761, 44766, 44771, 44776, 44781, 44786, 44791, - 44796, 44801, 44806, 44811, 44816, 44821, 44826, 44831, 44836, 44841, - 44846, 44851, 43054, 44856, 37275, 44861, 44866, 44871, 44876, 36358, - 44881, 44886, 44891, 44896, 44901, 44906, 44911, 44916, 44921, 44926, - 44931, 44936, 44941, 44946, 44951, 44956, 44961, 44966, 44971, 44976, - 44981, 28938, 44986, 44991, 44996, 45001, 45006, 38136, 45011, 45016, - 45021, 45026, 45031, 45036, 45041, 45046, 32934, 45051, 45056, 45061, - 45066, 45071, 45076, 45081, 45086, 45091, 45096, 45101, 45106, 45111, - 45116, 45121, 45126, 45131, 45136, 45141, 45146, 45151, 45156, 45161, - 45166, 45171, 45176, 45181, 45186, 45191, 45196, 45201, 45206, 45211, - 45216, 45221, 45226, 45231, 45236, 45241, 45246, 45251, 45256, 45261, - 45266, 45271, 45276, 45281, 45286, 45291, 45296, 45301, 45306, 45311, - 45316, 45321, 45326, 45331, 45336, 45341, 45346, 45351, 45356, 45361, - 45366, 45371, 45376, 45381, 45386, 45391, 45396, 45401, 45406, 45411, - 45416, 45421, 45426, 45431, 45436, 45441, 45446, 45451, 45456, 45461, - 45466, 45471, 45476, 45481, 45486, 45491, 45496, 45501, 45506, 45511, - 45516, 45521, 45526, 45531, 45536, 45541, 45546, 45551, 45556, 45561, - 45566, 45571, 45576, 45581, 45586, 45591, 45596, 45601, 45606, 45611, - 45616, 45621, 45626, 45631, 45636, 45641, 45646, 45651, 45656, 45661, - 45666, 45671, 45676, 45681, 45686, 45691, 45696, 45701, 45706, 45711, - 45716, 45721, 45726, 40750, 40756, 40762, 45731, 45736, 45741, 45746, - 45751, 45756, 45761, 45766, 45771, 45776, 29328, 40768, 40774, 40780, - 45781, 42142, 45786, 45791, 45796, 45801, 45806, 45811, 45816, 45821, - 45826, 45831, 45836, 45841, 45846, 40894, 45851, 45856, 45861, 45866, - 45871, 45876, 45881, 45886, 45891, 45896, 45901, 45906, 45911, 45916, - 45921, 45926, 39682, 45931, 45936, 45941, 45946, 45951, 45956, 45961, - 45966, 45971, 45976, 45981, 45986, 45991, 45996, 46001, 46006, 46011, - 46016, 46021, 46026, 46031, 46036, 46041, 46046, 46051, 46056, 46061, - 46066, 46071, 46076, 46081, 46086, 46091, 46096, 46101, 46106, 46111, - 46116, 46121, 46126, 46131, 46136, 46141, 46146, 46151, 46156, 46161, - 46166, 46171, 46176, 46181, 41074, 41080, 46186, 46191, 46196, 46201, - 46206, 46211, 46216, 46221, 41092, 41098, 46226, 46231, 30666, 46236, - 46241, 46246, 43258, 43264, 46251, 46256, 46261, 46266, 46271, 46276, - 46281, 46286, 46291, 46296, 46301, 46306, 46311, 46316, 46321, 46326, - 46331, 46336, 46341, 46346, 46351, 46356, 46361, 46366, 46371, 46376, - 46381, 46386, 46391, 46396, 46401, 46406, 46411, 46416, 46421, 46426, - 41374, 46431, 41380, 46436, 46441, 46446, 18446, 33486, 46451, 41386, - 41392, 41398, 41404, 41410, 41416, 46456, 46461, 46466, 46471, 40924, - 46476, 40810, 46481, 46486, 46491, 42976, 46496, 46501, 46506, 46511, - 46516, 46521, 46526, 46531, 46536, 46541, 46546, 46551, 46556, 46561, - 46566, 46571, 46576, 46581, 46586, 46591, 46596, 46601, 46606, 46611, - 46616, 46621, 46626, 46631, 46636, 46641, 46646, 46651, 46656, 46661, - 46666, 46671, 46676, 46681, 46686, 46691, 46696, 46701, 46706, 46711, - 46716, 46721, 46726, 46731, 46736, 46741, 46746, 46751, 46756, 46761, - 46766, 46771, 46776, 42484, 40960, 40966, 40972, 42562, 46781, 46786, - 46791, 46796, 46801, 46806, 46811, 46816, 46821, 46826, 46831, 46836, - 46841, 46846, 46851, 46856, 46861, 46866, 46871, 46876, 46881, 46886, - 46891, 46896, 46901, 46906, 41686, 41692, 41698, 46911, 46916, 46921, - 46926, 46931, 46936, 46941, 46946, 46951, 46956, 46961, 46966, 46971, - 46976, 46981, 46986, 41704, 46991, 41710, 41716, 42232, 46996, 47001, - 47006, 47011, 47016, 47021, 47026, 47031, 47036, 47041, 47046, 47051, - 47056, 47061, 47066, 47071, 47076, 47081, 47086, 47091, 47096, 47101, - 47106, 47111, 47116, 47121, 47126, 47131, 47136, 47141, 47146, 47151, - 39280, 47156, 47161, 47166, 47171, 47176, 47181, 47186, 47191, 47196, - 43024, 47201, 47206, 41500, 47211, 41506, 47216, 47221, 47226, 47231, - 47236, 41512, 47241, 41518, 41524, 41530, 47246, 38031, 47251, 47256, - 47261, 47266, 47271, 47276, 47281, 47286, 47291, 47296, 47301, 47306, - 47311, 47316, 47321, 47326, 47331, 47336, 47341, 41536, 41542, 47346, - 47351, 47356, 47361, 47366, 47371, 47376, 47381, 47386, 35374, 47391, - 47396, 41548, 47401, 41554, 29338, 41560, 47406, 47411, 47416, 47421, - 38542, 47426, 47431, 47436, 47441, 47446, 47451, 47456, 47461, 47466, - 47471, 47476, 47481, 47486, 47491, 47496, 47501, 47506, 47511, 47516, - 47521, 47526, 39646, 47531, 47536, 47541, 47546, 47551, 47556, 47561, - 47566, 47571, 47576, 47581, 42238, 47586, 47591, 47596, 47601, 47606, - 47611, 47616, 42244, 47621, 42250, 47626, 47631, 47636, 47641, 41572, - 41584, 39586, 47646, 47651, 47656, 47661, 47666, 47671, 47676, 47681, - 47686, 47691, 47696, 47701, 47706, 47711, 47716, 47721, 47726, 47731, - 38773, 47736, 47741, 47746, 47751, 47756, 47761, 47766, 47771, 47776, - 47781, 47786, 47791, 47796, 47801, 47806, 47811, 47816, 47821, 47826, - 41590, 47831, 47836, 47841, 47846, 47851, 47856, 47861, 47866, 47871, - 47876, 47881, 47886, 47891, 47896, 47901, 47906, 47911, 47916, 47921, - 47926, 47931, 47936, 47941, 47946, 47951, 47956, 47961, 47966, 47971, - 47976, 47981, 47986, 47991, 47996, 48001, 48006, 48011, 48016, 48021, - 48026, 48031, 48036, 48041, 48046, 48051, 48056, 48061, 48066, 48071, - 48076, 48081, 48086, 48091, 48096, 48101, 48106, 48111, 48116, 48121, - 48126, 48131, 48136, 48141, 48146, 48151, 48156, 48161, 48166, 48171, - 48176, 48181, 48186, 48191, 48196, 48201, 48206, 48211, 48216, 48221, - 48226, 48231, 48236, 48241, 48246, 48251, 48256, 48261, 48266, 48271, - 48276, 48281, 48286, 48291, 48296, 42520, 48301, 48306, 48311, 48316, - 48321, 48326, 48331, 48336, 48341, 48346, 48351, 48356, 48361, 48366, - 48371, 48376, 48381, 48386, 48391, 48396, 42646, 42274, 48401, 42280, - 48406, 48411, 48416, 48421, 48426, 48431, 48436, 48441, 48446, 48451, - 48456, 48461, 48466, 48471, 48476, 48481, 48486, 48491, 48496, 48501, - 48506, 48511, 48516, 48521, 48526, 48531, 48536, 48541, 42880, 42886, - 48546, 48551, 48556, 48561, 48566, 31089, 48571, 942, 48576, 48581, - 48586, 48591, 48596, 48601, 48606, 48611, 48616, 48621, 48626, 48631, - 48636, 48641, 48646, 48651, 48656, 48661, 48666, 48671, 48676, 48681, - 48686, 48691, 48696, 48701, 48706, 48711, 48716, 48721, 27328, 48726, - 48731, 42892, 48736, 48741, 48746, 48751, 48756, 48761, 48766, 48771, - 48776, 48781, 42382, 48786, 48791, 48796, 48801, 48806, 48811, 48816, - 48821, 48826, 27138, 48831, 48836, 48841, 48846, 48851, 48856, 38486, - 48861, 48866, 48871, 48876, 48881, 48886, 48891, 48896, 48901, 48906, - 48911, 48916, 48921, 48926, 48931, 48936, 48941, 48946, 48951, 48956, - 48961, 48966, 40636, 48971, 33406, 39011, 29348, 48976, 48981, 48986, - 48991, 48996, 49001, 49006, 49011, 49016, 33702, 49021, 49026, 49031, - 49036, 49041, 41620, 41626, 41632, 49046, 41650, 41836, 41842, 49051, - 49056, 49061, 49066, 49071, 49076, 49081, 49086, 49091, 49096, 49101, - 49106, 49111, 49116, 49121, 49126, 49131, 49136, 49141, 42292, 42298, - 42304, 49146, 49151, 49156, 49161, 49166, 49171, 49176, 49181, 49186, - 42310, 49191, 42316, 49196, 49201, 49206, 49211, 49216, 49221, 49226, - 49231, 49236, 49241, 49246, 49251, 49256, 49261, 49266, 49271, 49276, - 49281, 49286, 49291, 49296, 49301, 49306, 42322, 42328, 49311, 42334, - 42340, 42346, 49316, 49321, 49326, 49331, 49336, 49341, 49346, 49351, - 49356, 49361, 49366, 49371, 49376, 49381, 49386, 49391, 49396, 49401, - 49406, 49411, 49416, 602, 49420, 27259, 49424, 33007, 24876, 49428, - 49432, 49436, 33959, 42581, 49440, 49444, 19743, 41909, 26427, 49448, - 49452, 49456, 41225, 32368, 40451, 49460, 49464, 49468, 32638, 49472, - 49476, 49480, 39395, 39797, 45837, 49484, 49488, 49492, 22282, 49496, - 49500, 49504, 38858, 41069, 49508, 18601, 49512, 49516, 49520, 28969, - 49524, 49528, 49532, 49536, 39473, 45832, 49540, 33559, 27159, 45652, - 36268, 19197, 39737, 49544, 26570, 49548, 44277, 31081, 49552, 49556, - 49560, 49564, 30451, 38543, 49568, 29069, 40811, 49572, 37374, 48912, - 49576, 40895, 46937, 49580, 49584, 44857, 49588, 49592, 38914, 49596, - 43817, 23302, 45842, 49600, 49604, 49608, 49612, 260, 35095, 49616, - 49620, 25503, 49624, 49628, 39845, 49632, 30928, 40409, 49636, 49640, - 49644, 46227, 49648, 49652, 49656, 49660, 46067, 49664, 49668, 49672, - 49676, 49680, 47192, 49684, 49688, 49692, 49696, 49700, 46912, 33052, - 49704, 49708, 49712, 49716, 49720, 49724, 49728, 49732, 49736, 47732, - 33943, 49740, 49744, 49748, 49752, 49756, 49760, 49764, 48582, 49768, - 27439, 43055, 40319, 34151, 49772, 49776, 49780, 40481, 46457, 46462, - 49784, 46232, 39131, 49788, 49792, 49796, 49800, 45847, 36842, 49804, - 48442, 32125, 49808, 40523, 35775, 37332, 49812, 49816, 42239, 49820, - 37136, 24694, 45892, 38123, 49824, 49828, 49832, 49836, 48567, 49840, - 49844, 49848, 44827, 49852, 49856, 49860, 49864, 49868, 49872, 47727, - 46742, 49876, 38746, 49880, 49884, 49888, 49892, 49896, 49900, 49904, - 49908, 47742, 48307, 49912, 49916, 49920, 49924, 49928, 49932, 48877, - 31270, 37213, 48887, 49936, 22030, 49940, 1177, 48922, 48927, 29089, - 48712, 49944, 34047, 49948, 49952, 49956, 49960, 49964, 40493, 49968, - 49972, 37423, 45067, 49976, 49980, 37430, 43295, 49984, 49988, 40013, - 49992, 49996, 50000, 50004, 50008, 50012, 50016, 30739, 45667, 50020, - 45817, 38291, 34607, 50024, 50028, 50032, 50036, 50040, 50044, 50048, - 50052, 50056, 50060, 50064, 50068, 50072, 50076, 50080, 50084, 50088, - 50092, 50096, 31144, 50100, 50104, 50108, 50112, 50116, 50120, 50124, - 50128, 46342, 46347, 50132, 50136, 50140, 50144, 50148, 50152, 50156, - 50160, 46377, 50164, 40901, 43692, 50168, 50172, 42809, 50176, 50180, - 50184, 50188, 50192, 41159, 50196, 33079, 50200, 50204, 50208, 50212, - 50216, 50220, 50224, 50228, 50232, 46202, 44837, 44842, 46527, 50236, - 50240, 50244, 46587, 50248, 22750, 50252, 50256, 46637, 50260, 30748, - 50264, 50268, 50272, 50276, 50280, 35103, 50284, 50288, 50292, 50296, - 50300, 50304, 43972, 50308, 42257, 50312, 50316, 50320, 50324, 24898, - 50328, 32503, 50332, 50336, 33903, 50340, 50344, 50348, 41963, 50352, - 50356, 50360, 50364, 50368, 18447, 47747, 973, 50372, 50376, 50380, - 50384, 48587, 50388, 30289, 50392, 50396, 50400, 50404, 50408, 50412, - 50416, 50420, 50424, 50428, 50432, 48882, 50436, 50440, 50444, 50448, - 35671, 50452, 50456, 34495, 50460, 40031, 50464, 50468, 50472, 30325, - 50476, 42605, 50480, 38445, 50484, 50488, 50492, 50496, 50500, 50504, - 50508, 50512, 41417, 40487, 50516, 50520, 40403, 50524, 50528, 50532, - 50536, 50540, 47867, 50544, 47882, 47912, 50548, 50552, 50556, 48737, - 50560, 50564, 50568, 44287, 50572, 44617, 47972, 50576, 50580, 50584, - 42017, 50588, 49067, 34375, 42161, 50592, 50596, 43229, 31099, 40253, - 50600, 32989, 50604, 34559, 27229, 50608, 50612, 50616, 50620, 50624, - 50628, 50632, 50636, 50640, 50644, 50648, 50652, 50656, 50660, 50664, - 50668, 50672, 50676, 50680, 50684, 50688, 50692, 50696, 50700, 50704, - 50708, 50712, 50716, 50720, 50724, 50728, 50732, 50736, 50740, 50744, - 50748, 50752, 50756, 50760, 50764, 50768, 50772, 50776, 50780, 50784, - 50788, 50792, 50796, 50800, 50804, 50808, 50812, 50816, 50820, 50824, - 50828, 50832, 50836, 50840, 50844, 50848, 50852, 50856, 50860, 50864, - 50868, 50872, 50876, 50880, 50884, 50888, 50892, 50896, 50900, 50904, - 50908, 50912, 50916, 50920, 50924, 50928, 50932, 50936, 50940, 50944, - 50948, 50952, 50956, 50960, 50964, 50968, 50972, 50976, 50980, 50984, - 50988, 50992, 50996, 51000, 51004, 51008, 51012, 51016, 51020, 51024, - 51028, 51032, 51036, 51040, 51044, 51048, 51052, 51056, 51060, 51064, - 51068, 51072, 45597, 35295, 45607, 51076, 51080, 51084, 51088, 51092, - 51096, 51100, 32494, 51104, 51108, 45612, 51112, 51116, 45617, 51120, - 51124, 44587, 51128, 45627, 45632, 45637, 51132, 51136, 45642, 45647, - 45657, 45662, 44197, 45672, 51140, 51144, 51148, 45677, 47497, 45682, - 45687, 51152, 30100, 51156, 51160, 51164, 51168, 51172, 51176, 51180, - 51184, 51188, 51192, 45822, 51196, 51200, 51204, 51208, 51212, 36541, - 51216, 51220, 51224, 51228, 51232, 51236, 51240, 51244, 51248, 51252, - 51256, 51260, 51264, 51268, 51272, 51276, 25481, 51280, 51284, 35543, - 51288, 46052, 51292, 46057, 36135, 51296, 46062, 51300, 42071, 46072, - 39647, 51304, 46082, 46087, 46092, 46097, 46102, 46857, 51308, 51312, - 51316, 46107, 48447, 46112, 46122, 51320, 51324, 51328, 46127, 46132, - 44267, 46137, 46142, 46147, 51332, 51336, 51340, 51344, 51348, 51352, - 51356, 51360, 51364, 51368, 51372, 51376, 51380, 51384, 26339, 44552, - 51388, 51392, 51396, 51400, 41117, 51404, 51408, 51412, 51416, 51420, - 51424, 51428, 51432, 51436, 51440, 51444, 51448, 51452, 51456, 51460, - 51464, 51468, 51472, 51476, 51480, 51484, 51488, 51492, 51496, 51500, - 51504, 51508, 51512, 46327, 51516, 46332, 46337, 51520, 51524, 37010, - 46352, 51528, 46357, 51532, 51536, 51540, 46362, 51544, 46367, 46372, - 51548, 44342, 46382, 51552, 461, 51556, 44347, 46387, 46392, 46397, - 46402, 46407, 46412, 46417, 51560, 51564, 51568, 51572, 51576, 51580, - 44467, 29909, 45857, 45867, 30217, 35999, 51584, 51588, 45872, 45877, - 45882, 41939, 51592, 51596, 51600, 51604, 44117, 26394, 32359, 51608, - 51612, 51616, 51620, 51624, 51628, 34967, 51632, 51636, 51640, 51644, - 51648, 45887, 32431, 44812, 36975, 45902, 45907, 51652, 45912, 39683, - 44742, 44747, 44752, 51656, 51660, 51664, 51668, 51672, 51676, 51680, - 51684, 51688, 51692, 51696, 49142, 31198, 40751, 40643, 40763, 26405, - 45007, 51700, 41747, 36031, 48837, 51704, 51708, 51712, 51716, 51720, - 51724, 44452, 46917, 46922, 46927, 51728, 51732, 51736, 46932, 46942, - 51740, 46947, 46952, 46957, 44457, 46962, 51744, 46967, 47707, 46972, - 46977, 51748, 51752, 32089, 51756, 51760, 47067, 51764, 622, 51768, - 51772, 25426, 51776, 51780, 51784, 51788, 51792, 51796, 51800, 51804, - 51808, 51812, 51816, 51820, 22210, 51824, 51828, 51832, 51836, 51840, - 51844, 51848, 51852, 51856, 51860, 51864, 51868, 51872, 51876, 51880, - 51884, 51888, 51892, 51896, 51900, 51904, 51908, 29899, 46502, 51912, - 44317, 46512, 51916, 51920, 46517, 36331, 24777, 51924, 44832, 48847, - 51928, 51932, 51936, 46277, 51940, 46537, 46542, 51944, 51948, 51952, - 46547, 51956, 284, 46552, 46557, 46562, 44757, 46572, 46577, 46582, - 46592, 46597, 51960, 30460, 51964, 46607, 46612, 51968, 51972, 51976, - 51980, 51984, 51988, 51992, 51996, 52000, 46617, 52004, 52008, 52012, - 52016, 46622, 41891, 46632, 52020, 52024, 46642, 46647, 46652, 46657, - 46662, 38298, 46672, 52028, 46677, 52032, 46687, 52036, 42095, 52040, - 46692, 18190, 46702, 52044, 52048, 52052, 52056, 52060, 39815, 52064, - 40085, 22678, 22138, 52068, 46707, 52072, 46712, 52076, 33679, 52080, - 35871, 27879, 46717, 41429, 46722, 33407, 46732, 52084, 52088, 52092, - 52096, 52100, 52104, 52108, 46737, 43337, 46747, 52112, 52116, 52120, - 52124, 52128, 46752, 52132, 52136, 46757, 52140, 52144, 52148, 37661, - 52152, 52156, 52160, 52164, 43259, 43265, 52168, 52172, 52176, 19652, - 43001, 52180, 52184, 52188, 44187, 52192, 52196, 52200, 52204, 52208, - 52212, 52216, 52220, 52224, 48577, 52228, 52232, 41123, 52236, 52240, - 52244, 52248, 52252, 52256, 52260, 52264, 52268, 52272, 52276, 52280, - 52284, 52288, 52292, 52296, 52300, 52304, 52308, 52312, 52316, 52320, - 52324, 52328, 52332, 52336, 52340, 52344, 52348, 52352, 52356, 52360, - 52364, 52368, 52372, 52376, 52380, 52384, 52388, 52392, 52396, 52400, - 52404, 52408, 52412, 52416, 52420, 52424, 52428, 52432, 52436, 52440, - 52444, 47752, 33119, 52448, 47757, 41363, 47767, 29009, 35311, 52452, - 52456, 52460, 43073, 52464, 52468, 43792, 48332, 47777, 52472, 52476, - 52480, 52484, 52488, 48342, 47782, 47787, 47792, 47797, 52492, 52496, - 47802, 47807, 47812, 47817, 52500, 52504, 52508, 36063, 25514, 48602, - 52512, 52516, 48612, 48617, 52520, 52524, 52528, 48622, 52532, 52536, - 48627, 48632, 52540, 52544, 52548, 38648, 48642, 48647, 52552, 48652, - 52556, 30109, 52560, 44377, 52564, 48657, 52568, 48662, 48667, 48672, - 48677, 48682, 48687, 52572, 52576, 52580, 52584, 52588, 52592, 52596, - 52600, 52604, 52608, 52612, 48892, 48697, 52616, 52620, 52624, 52628, - 52632, 52636, 52640, 52644, 52648, 52652, 52656, 52660, 1955, 52664, - 52668, 52672, 52676, 52680, 52684, 52688, 52692, 52696, 52700, 52704, - 52708, 52712, 52716, 52720, 52724, 52728, 52732, 52736, 49167, 46257, - 52740, 52744, 27869, 52748, 52752, 45062, 29329, 40769, 40775, 33687, - 37276, 52756, 34447, 52760, 52764, 52768, 52772, 52776, 52780, 52784, - 52788, 52792, 52796, 52800, 52804, 52808, 52812, 52816, 52820, 52824, - 52828, 52832, 52836, 52840, 52844, 52848, 52852, 52856, 52860, 52864, - 52868, 52872, 52876, 52880, 52884, 52888, 52892, 52896, 47112, 47117, - 46807, 46812, 44422, 46817, 52900, 44427, 52904, 46822, 46827, 44432, - 47122, 47127, 47132, 52908, 52912, 52916, 52920, 52924, 52928, 52932, - 52936, 52940, 52944, 52948, 52952, 52956, 37626, 52960, 52964, 52968, - 44382, 52972, 52976, 52980, 52984, 52988, 52992, 47862, 52996, 44607, - 47872, 47877, 44612, 47887, 53000, 47892, 47897, 53004, 47902, 47907, - 53008, 53012, 53016, 53020, 53024, 47917, 47922, 47927, 49342, 47932, - 53028, 47937, 47942, 47947, 47952, 53032, 48962, 53036, 47957, 47962, - 53040, 47967, 53044, 47977, 48747, 47982, 47987, 47992, 47997, 53048, - 42474, 36675, 1086, 19640, 49781, 603, 39492, 28980, 27870, 33560, 5572, - 19198, 53052, 53055, 53058, 31190, 33296, 4804, 5060, 32504, 50381, - 45013, 53061, 37438, 39864, 50369, 32288, 38138, 49533, 5316, 53064, - 26516, 53067, 36955, 53070, 36731, 49589, 29110, 50293, 43224, 40230, - 974, 53073, 10931, 53076, 24899, 53079, 44743, 34008, 651, 38544, 42522, - 31910, 1419, 672, 4868, 6084, 51633, 18896, 49108, 53082, 26571, 23315, - 44553, 44748, 51669, 49757, 37704, 23111, 53085, 45893, 22643, 800, - 18938, 764, 40410, 44053, 991, 40086, 1155, 38446, 53088, 53091, 23171, - 53094, 41826, 28910, 25130, 41046, 32198, 53097, 38642, 23435, 40032, - 43290, 53100, 53103, 53106, 53109, 42018, 53112, 51185, 22679, 53115, - 22703, 37662, 53118, 53121, 53124, 22139, 53127, 43170, 35872, 25427, - 30929, 53130, 53133, 42468, 53136, 5124, 51093, 51305, 38992, 53139, - 30452, 50185, 53142, 11036, 27850, 36899, 51661, 31145, 53145, 38761, - 51089, 53148, 30479, 26582, 22391, 40218, 37270, 37851, 1127, 10756, - 53151, 298, 40518, 51657, 49208, 53154, 41988, 50001, 18951, 24695, 5908, - 27900, 19445, 34040, 50189, 22583, 53157, 53160, 53163, 33152, 53166, - 18448, 33080, 51085, 53169, 36000, 33800, 39936, 53172, 53175, 53178, - 29260, 36710, 53181, 53184, 18378, 53187, 36997, 43134, 53190, 12, 53193, - 53196, 5380, 51181, 49553, 53199, 39600, 31028, 623, 36096, 6148, 53202, - 53205, 53208, 53211, 33008, 1091, 34120, 53214, 53217, 22739, 53220, - 37543, 22451, 53223, 51961, 49168, 53226, 24659, 34112, 51097, 53229, - 51189, 28000, 53232, 53235, 53238, 32495, 36339, 50501, 53241, 40686, - 53244, 53247, 53250, 53253, 53256, 53259, 42594, 53262, 53265, 53268, - 53271, 53274, 53277, 53280, 52541, 53283, 26989, 31019, 53286, 53289, - 53292, 53295, 53298, 45888, 51377, 53301, 1178, 285, 53304, 53307, 53310, - 26329, 53313, 52673, 53316, 37144, 35760, 53319, 50621, 51393, 53322, - 18131, 53325, 4676, 4692, 48873, 53328, 30461, 50525, 24683, 45608, - 53331, 53334, 53337, 27440, 5348, 5364, 1476, 53340, 53343, 5588, 53346, - 53349, 53352, 53355, 53358, 47158, 24778, 6164, 51429, 53361, 53364, - 53367, 51357, 324, 53370, 53373, 53376, 53379, 51541, 38943, 27530, - 26395, 40254, 53382, 26384, 1082, 50193, 53385, 42006, 794, 53388, 53391, - 53394, 53397, 53400, 53403, 53406, 53409, 53412, 45003, 53415, 52657, - 53418, 786, 53421, 40068, 53424, 53427, 53430, 53433, 53436, 53439, - 53442, 53445, 45053, 53448, 53451, 44513, 53454, 53457, 53460, 40500, - 53463, 53466, 53469, 40776, 29340, 53472, 53475, 53478, 1972, 52233, - 53481, 53484, 41154, 53487, 53490, 45998, 53493, 53496, 53499, 53502, - 53505, 30011, 53508, 53511, 53514, 37557, 52557, 53517, 53520, 53523, - 53526, 40092, 53529, 53532, 18868, 44348, 1032, 46868, 53535, 53538, - 39336, 53541, 46773, 53544, 51149, 51881, 53547, 53550, 45813, 53553, - 44153, 53556, 52161, 19407, 416, 286, 38237, 1316, 2325, 39973, 21, 38, - 32694, 50274, 53559, 30075, 53561, 320, 36305, 53563, 36235, 42469, - 49918, 213, 44189, 53565, 479, 34049, 53518, 53567, 919, 40093, 42079, - 316, 395, 53569, 885, 30651, 204, 53571, 53329, 53573, 53575, 4, 27891, - 1102, 43604, 1115, 36466, 53577, 53579, 24834, 892, 50538, 373, 53200, - 771, 88, 51526, 703, 53581, 351, 106, 44484, 53116, 39793, 24867, 39325, - 53583, 53585, 35145, 49498, 53587, 53589, 53591, 25164, 43679, 53593, - 53595, 34617, 51966, 53597, 8, 1056, 554, 998, 36034, 39, 98, 14, 5, 161, - 102, 317, 70, 9, 52, 321, 34, 53225, 401, 171, 404, 523, 53599, 53600, + 0, 0, 6, 10, 15, 23, 27, 34, 39, 41, 44, 50, 63, 75, 84, 90, 95, 103, + 112, 116, 121, 129, 134, 137, 144, 149, 157, 163, 169, 177, 184, 194, + 199, 202, 209, 212, 217, 226, 232, 241, 248, 255, 260, 264, 273, 281, + 282, 288, 294, 302, 308, 314, 320, 328, 333, 340, 344, 347, 349, 355, + 362, 369, 377, 380, 385, 390, 396, 398, 403, 412, 419, 425, 286, 430, + 432, 434, 438, 443, 446, 452, 456, 464, 474, 481, 113, 490, 498, 503, + 511, 516, 524, 535, 538, 542, 555, 565, 571, 574, 575, 582, 584, 593, + 301, 596, 600, 608, 613, 615, 619, 622, 628, 635, 642, 647, 651, 660, + 670, 679, 688, 692, 698, 706, 713, 721, 725, 731, 735, 743, 752, 756, + 627, 763, 771, 775, 784, 789, 792, 796, 804, 813, 816, 821, 831, 840, + 847, 200, 733, 850, 857, 580, 865, 873, 879, 884, 891, 894, 900, 906, + 911, 916, 929, 22, 934, 937, 947, 952, 956, 962, 971, 974, 984, 993, 997, + 1002, 1007, 1012, 1019, 1027, 1030, 1040, 1043, 1045, 1053, 1057, 1061, + 93, 1064, 1069, 1075, 1077, 1086, 1089, 1092, 1097, 1099, 1105, 1111, + 1113, 1117, 331, 1120, 1128, 1132, 1136, 1141, 1144, 1150, 1154, 1161, + 1164, 1170, 80, 1176, 1178, 1181, 1183, 657, 1188, 1196, 1203, 1213, + 1222, 1230, 1232, 1256, 1278, 1300, 1322, 1343, 1364, 1384, 1404, 1423, + 1442, 1461, 1480, 1499, 1518, 1537, 1556, 1574, 1592, 1610, 1628, 1646, + 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1807, 1824, 1841, 1858, + 1875, 1892, 1909, 1926, 1943, 1960, 1977, 1994, 2011, 2028, 2045, 2062, + 2079, 2096, 2113, 2130, 2147, 2164, 2181, 2198, 2215, 2232, 2249, 2266, + 2283, 2300, 2317, 2334, 2351, 2368, 2385, 2402, 2419, 2436, 2453, 2470, + 2487, 2504, 2521, 2538, 2555, 2572, 2589, 2606, 2623, 2640, 2657, 2674, + 2691, 2708, 2725, 2742, 2759, 2776, 2793, 2810, 2826, 2842, 2858, 2874, + 2890, 2906, 2922, 2938, 2954, 2970, 2986, 3002, 3018, 3034, 3050, 3066, + 3082, 3098, 3114, 3130, 3146, 3162, 3178, 3194, 3210, 3226, 3242, 3258, + 3274, 3290, 3306, 3322, 3338, 3354, 3370, 3386, 3402, 3418, 3434, 3450, + 3466, 3482, 3498, 3514, 3530, 3546, 3562, 3578, 3594, 3610, 3626, 3642, + 3658, 3674, 3690, 3706, 3722, 3738, 3754, 3770, 3786, 3802, 3818, 3834, + 3850, 3866, 3882, 3898, 3914, 3930, 3946, 3962, 3978, 3994, 4010, 4026, + 4042, 4058, 4074, 4090, 4106, 4122, 4138, 4154, 4170, 4186, 4202, 4218, + 4234, 4250, 4266, 4282, 4298, 4314, 4330, 4346, 4362, 4378, 4394, 4410, + 4426, 4442, 4458, 4474, 4490, 4506, 4522, 4538, 4554, 4570, 4586, 4602, + 4618, 4634, 4650, 4666, 4682, 4698, 4714, 4730, 4746, 4762, 4778, 4794, + 4810, 4826, 4842, 4858, 4874, 4890, 4906, 4922, 4938, 4954, 4970, 4986, + 5002, 5018, 5034, 5050, 5066, 5082, 5098, 5114, 5130, 5146, 5162, 5178, + 5194, 5210, 5226, 5242, 5258, 5274, 5290, 5306, 5322, 5338, 5354, 5370, + 5386, 5402, 5418, 5434, 5450, 5466, 5482, 5498, 5514, 5530, 5546, 5562, + 5578, 5594, 5610, 5626, 5642, 5658, 5674, 5690, 5706, 5722, 5738, 5754, + 5770, 5786, 5802, 5818, 5834, 5850, 5866, 5882, 5898, 5914, 5930, 5946, + 5962, 5978, 5994, 6010, 6026, 6042, 6058, 6074, 6090, 6106, 6122, 6138, + 6154, 6170, 6186, 6202, 6218, 6234, 6250, 6266, 6282, 6298, 6314, 6330, + 6346, 6362, 6378, 6394, 6410, 6426, 6442, 6458, 6474, 6490, 6506, 6522, + 6538, 6554, 6570, 6586, 6602, 6618, 6634, 6650, 6666, 6682, 6698, 6714, + 6730, 6746, 6762, 6778, 6794, 6810, 6826, 6842, 6858, 6874, 6890, 6906, + 6922, 6938, 6954, 6970, 6986, 7002, 7018, 7034, 7050, 7066, 7082, 7098, + 7114, 7130, 7146, 7162, 7178, 7194, 7210, 7226, 7242, 7258, 7274, 7290, + 7306, 7322, 7338, 7354, 7370, 7386, 7402, 7418, 7434, 7450, 7466, 7482, + 7498, 7514, 7530, 7546, 7562, 7578, 7594, 7610, 7626, 7642, 7658, 7674, + 7690, 7706, 7722, 7738, 7754, 7770, 7786, 7802, 7818, 7834, 7850, 7866, + 7882, 7898, 7914, 7930, 7946, 7962, 7978, 7994, 8010, 8026, 8042, 8058, + 8074, 8090, 8106, 8122, 8138, 8154, 8170, 8186, 8202, 8218, 8234, 8250, + 8266, 8282, 8298, 8314, 8330, 8346, 8362, 8378, 8394, 8410, 8426, 8442, + 8458, 8474, 8490, 8506, 8522, 8538, 8554, 8570, 8586, 8602, 8618, 8634, + 8650, 8666, 8682, 8698, 8714, 8730, 8746, 8762, 8778, 8794, 8810, 8826, + 8842, 8858, 8874, 8890, 8906, 8922, 8938, 8954, 8970, 8986, 9002, 9018, + 9034, 9050, 9066, 9082, 9098, 9114, 9130, 9146, 9162, 9178, 9194, 9210, + 9226, 9242, 9258, 9274, 9290, 9306, 9322, 9338, 9354, 9370, 9386, 9402, + 9418, 9434, 9450, 9466, 9482, 9498, 9514, 9530, 9546, 9562, 9578, 9594, + 9610, 9626, 9642, 9658, 9674, 9690, 9706, 9722, 9738, 9754, 9770, 9786, + 9802, 9818, 9834, 9850, 9866, 9882, 9898, 9914, 9930, 9946, 9962, 9978, + 9994, 10010, 10026, 10042, 10058, 10074, 10090, 10106, 10122, 10138, + 10154, 10170, 10186, 10202, 10218, 10234, 10250, 10266, 10282, 10298, + 10314, 10330, 10346, 10362, 10378, 10394, 10410, 10426, 10442, 10458, + 10474, 10490, 10506, 10522, 10538, 10554, 10570, 10586, 10602, 10618, + 10634, 10650, 10666, 10682, 10698, 10714, 10730, 10746, 10762, 10778, + 10794, 10810, 10826, 10842, 10858, 10874, 10890, 10906, 10922, 10938, + 10954, 10970, 10986, 11002, 11018, 11034, 11050, 11066, 11082, 11098, + 11114, 11130, 11146, 11162, 11178, 11194, 11210, 11226, 11242, 11258, + 11274, 11290, 11306, 11322, 11338, 11354, 11370, 11386, 11402, 11418, + 11434, 11450, 11466, 11482, 11498, 11514, 11530, 11546, 11562, 11578, + 11594, 11610, 11626, 11642, 11658, 11674, 11690, 11706, 11722, 11738, + 11754, 11770, 11785, 11800, 11815, 11830, 11845, 11860, 11875, 11890, + 11905, 11920, 11935, 11950, 11965, 11980, 11995, 12010, 12025, 12040, + 12055, 12070, 12085, 12100, 12115, 12130, 12145, 12160, 12175, 12190, + 12205, 12220, 12235, 12250, 12265, 12280, 12295, 12310, 12325, 12340, + 12355, 12370, 12385, 12400, 12415, 12430, 12445, 12460, 12475, 12490, + 12505, 12520, 12535, 12550, 12565, 12580, 12595, 12610, 12625, 12640, + 12655, 12670, 12685, 12700, 12715, 12730, 12745, 12760, 12775, 12790, + 12805, 12820, 12835, 12850, 12865, 12880, 12895, 12910, 12925, 12940, + 12955, 12970, 12985, 13000, 13015, 13030, 13045, 13060, 13075, 13090, + 13105, 13120, 13135, 13150, 13165, 13180, 13195, 13210, 13225, 13240, + 13255, 13270, 13285, 13300, 13315, 13330, 13345, 13360, 13375, 13390, + 13405, 13420, 13435, 13450, 13465, 13480, 13495, 13510, 13525, 13540, + 13555, 13570, 13585, 13600, 13615, 13630, 13645, 13660, 13675, 13690, + 13705, 13720, 13735, 13750, 13765, 13780, 13795, 13810, 13825, 13840, + 13855, 13870, 13885, 13900, 13915, 13930, 13945, 13960, 13975, 13990, + 14005, 14020, 14035, 14050, 14065, 14080, 14095, 14110, 14125, 14140, + 14155, 14170, 14185, 14200, 14215, 14230, 14245, 14260, 14275, 14290, + 14305, 14320, 14335, 14350, 14365, 14380, 14395, 14410, 14425, 14440, + 14455, 14470, 14485, 14500, 14515, 14530, 14545, 14560, 14575, 14590, + 14605, 14620, 14635, 14650, 14665, 14680, 14695, 14710, 14725, 14740, + 14755, 14770, 14785, 14800, 14815, 14830, 14845, 14860, 14875, 14890, + 14905, 14920, 14935, 14950, 14965, 14980, 14995, 15010, 15025, 15040, + 15055, 15070, 15085, 15100, 15115, 15130, 15145, 15160, 15175, 15190, + 15205, 15220, 15235, 15250, 15265, 15280, 15295, 15310, 15325, 15340, + 15355, 15370, 15385, 15400, 15415, 15430, 15445, 15460, 15475, 15490, + 15505, 15520, 15535, 15550, 15565, 15580, 15595, 15610, 15625, 15640, + 15655, 15670, 15685, 15700, 15715, 15730, 15745, 15760, 15775, 15790, + 15805, 15820, 15835, 15850, 15865, 15880, 15895, 15910, 15925, 15940, + 15955, 15970, 15985, 16000, 16015, 16030, 16045, 16060, 16075, 16090, + 16105, 16120, 16135, 16150, 16165, 16180, 16195, 16210, 16225, 16240, + 16255, 16270, 16285, 16300, 16315, 16330, 16345, 16360, 16375, 16390, + 16405, 16420, 16435, 16450, 16465, 16480, 16495, 16510, 16525, 16540, + 16555, 16570, 16585, 16600, 16615, 16630, 16645, 16660, 16675, 16690, + 16705, 16720, 16735, 16750, 16765, 16780, 16795, 16810, 16825, 16840, + 16855, 16870, 16885, 16900, 16915, 16930, 16945, 16960, 16975, 16990, + 17005, 17020, 17035, 17050, 17065, 17080, 17095, 17110, 17125, 17140, + 17155, 17170, 17185, 17200, 17215, 17230, 17245, 17260, 17275, 17290, + 17305, 17320, 17335, 17350, 17365, 17380, 17395, 17410, 17425, 17440, + 17455, 17470, 17485, 17500, 17515, 17530, 17545, 17560, 17575, 17590, + 17605, 17620, 17635, 17650, 17665, 17680, 17695, 17710, 17725, 17740, + 17755, 17770, 17785, 17800, 17815, 17830, 17845, 17860, 17875, 17890, + 17905, 17920, 17935, 17950, 17965, 17980, 17995, 18010, 18025, 18040, + 18055, 18070, 18085, 18100, 18115, 18130, 18145, 18160, 18175, 18190, + 18205, 18220, 18235, 18250, 18265, 18280, 18295, 18310, 18325, 18340, + 18355, 18370, 18385, 18400, 18415, 18430, 18445, 18460, 18475, 18490, + 18505, 18520, 18535, 18550, 18565, 18580, 18595, 18610, 18625, 18640, + 18655, 18670, 18685, 18700, 18715, 18730, 18745, 18760, 18775, 18790, + 18805, 18820, 18835, 18850, 18865, 18880, 18895, 18910, 18925, 18940, + 18955, 18970, 18985, 19000, 19015, 19030, 19045, 19060, 19075, 19090, + 19105, 19120, 19135, 19150, 19165, 19180, 19195, 19210, 19225, 19240, + 19255, 19270, 19285, 19300, 19315, 19330, 19345, 19360, 19375, 19390, + 19405, 19420, 19435, 19450, 19465, 19480, 19495, 19510, 19525, 19540, + 19555, 19570, 19585, 19600, 19615, 19630, 19645, 19660, 19675, 19690, + 19705, 19720, 19735, 19750, 19765, 19780, 19795, 19810, 19825, 19840, + 19855, 19870, 19884, 19898, 19912, 19926, 19940, 1390, 19954, 19968, + 19982, 19996, 20010, 20024, 20038, 20052, 20066, 20080, 20094, 20108, + 20122, 20136, 20150, 20164, 20178, 20192, 20206, 20220, 20234, 20248, + 20262, 20276, 20290, 20304, 20318, 1827, 20332, 20346, 20360, 20374, + 20388, 20402, 20416, 20430, 20444, 20458, 20472, 20486, 20500, 20514, + 20528, 20542, 20556, 20569, 20582, 20595, 20608, 20621, 20634, 20647, + 20660, 20673, 20686, 20699, 20712, 20725, 20738, 20751, 20764, 20777, + 20790, 20803, 20816, 20829, 20842, 20855, 20868, 1777, 20881, 20894, + 20907, 20920, 20933, 20946, 20959, 20972, 20985, 20998, 21011, 21024, + 21037, 21050, 21063, 21076, 21089, 21102, 21115, 21128, 21141, 21154, + 21167, 21180, 21193, 21206, 21219, 21232, 21245, 21258, 21271, 21284, + 21297, 21310, 21323, 21336, 21349, 21362, 21375, 21388, 21401, 21414, + 21427, 21440, 1505, 21453, 21466, 21479, 21492, 21505, 21518, 21531, + 21544, 21557, 21570, 21583, 21596, 21609, 21622, 21635, 21648, 21661, + 21674, 21687, 21700, 21713, 21726, 21739, 21752, 21765, 21778, 21791, + 21804, 21817, 21830, 21843, 21856, 21869, 21882, 21895, 21908, 21921, + 21934, 21947, 21960, 21973, 21986, 21999, 22012, 22025, 22038, 22051, + 22064, 22077, 22090, 22103, 22116, 22129, 22142, 22155, 22168, 22181, + 22194, 22207, 22220, 22233, 22246, 22259, 22272, 22285, 22298, 22311, + 22324, 22337, 22350, 22363, 22376, 22389, 22402, 22415, 22428, 22441, + 22454, 22467, 22480, 22493, 22506, 22519, 22532, 22545, 22558, 22571, + 22584, 22597, 22610, 22623, 22636, 22649, 22662, 22675, 22688, 22701, + 22714, 22727, 22740, 22753, 22766, 22779, 22792, 22805, 22818, 22831, + 22844, 22857, 22870, 22883, 22896, 22909, 22922, 22935, 22948, 22961, + 22974, 22987, 23000, 23013, 23026, 23039, 23052, 23065, 23078, 23091, + 23104, 23117, 23130, 23143, 23156, 23169, 23182, 23195, 23208, 23221, + 23234, 23247, 23260, 23273, 23286, 23299, 23312, 23325, 23338, 23351, + 23364, 23377, 23390, 23403, 23416, 23429, 23442, 23455, 23468, 23481, + 23494, 23507, 23520, 23533, 23546, 23559, 23572, 23585, 23598, 23611, + 23624, 23637, 23650, 23663, 23676, 23689, 23702, 23715, 23728, 23741, + 23754, 23766, 23778, 23790, 23802, 23814, 23826, 23838, 23850, 23862, + 23874, 23886, 23898, 23910, 23922, 23934, 23946, 23958, 23970, 23982, + 1688, 23994, 24006, 24018, 1598, 24030, 24042, 24054, 24066, 24078, + 24090, 24102, 1487, 1580, 24114, 1616, 24126, 24138, 24150, 24162, 24174, + 24186, 24198, 24210, 24222, 24234, 24246, 24258, 24270, 24282, 24294, + 24306, 24318, 24330, 24342, 24354, 24366, 24378, 24390, 24402, 24414, + 24426, 24438, 24450, 24462, 24474, 24486, 24498, 24510, 24522, 24534, + 24546, 24558, 24570, 24582, 24594, 24606, 24618, 24630, 24642, 24654, + 24666, 24678, 24690, 24702, 24714, 24726, 24738, 24750, 24762, 24774, + 24786, 24798, 24810, 24822, 24834, 24846, 24858, 24870, 24882, 24894, + 24906, 24918, 24930, 24942, 24954, 24966, 24978, 24990, 25002, 25014, + 25026, 25038, 25050, 25062, 25074, 25086, 25098, 25110, 25122, 25134, + 25146, 25158, 25170, 25182, 25194, 1372, 25206, 25218, 25230, 1742, + 25242, 25254, 25266, 25278, 25290, 25302, 25314, 25326, 25338, 25350, + 25362, 25374, 25386, 25398, 25410, 25422, 25434, 25446, 25458, 25470, + 25482, 25494, 25506, 25518, 25530, 25542, 25554, 25566, 25578, 25590, + 25602, 25614, 25626, 25638, 25650, 25662, 25674, 25686, 25698, 25710, + 25722, 25734, 25746, 25758, 25770, 25782, 25794, 25806, 25818, 25830, + 25842, 25854, 25866, 25878, 25890, 25902, 25914, 25926, 25938, 25950, + 25962, 25974, 25986, 25998, 26010, 26022, 26034, 26046, 26058, 26070, + 26082, 26094, 26106, 26118, 26130, 26142, 26154, 26166, 26178, 26190, + 26202, 26214, 26226, 26238, 26250, 26262, 26274, 26286, 26298, 26310, + 26322, 26334, 26346, 26358, 26370, 26382, 26394, 26406, 26418, 26430, + 26442, 26454, 26466, 26478, 26490, 26502, 26514, 26526, 26538, 26550, + 26562, 26574, 26585, 26596, 26607, 26618, 26629, 26640, 26651, 26662, + 26673, 26684, 26695, 26706, 26717, 26728, 26739, 26750, 26761, 26772, + 1813, 26783, 26794, 26805, 26816, 26827, 26838, 26849, 26860, 26871, + 2731, 1289, 26882, 1412, 26893, 26904, 26915, 26926, 26937, 26948, 2748, + 26959, 26970, 26981, 26992, 27003, 27014, 27025, 27036, 27047, 27058, + 27069, 27080, 27091, 27102, 2714, 27113, 27124, 27135, 27146, 27157, + 27168, 27179, 27190, 27201, 27212, 27223, 27234, 27245, 27256, 27267, + 27278, 27289, 27300, 27311, 27322, 27333, 27344, 27355, 27366, 27377, + 27388, 27399, 27410, 27421, 27432, 27443, 27454, 27465, 27476, 27487, + 27498, 27509, 27520, 27531, 27542, 27553, 27564, 27575, 27586, 27597, + 27608, 27619, 27630, 27641, 27652, 27663, 27674, 27685, 27696, 27707, + 27718, 27729, 27740, 27751, 27762, 27773, 27784, 27795, 27806, 27817, + 27828, 27839, 27850, 27861, 27872, 27883, 27894, 27905, 27916, 27927, + 27938, 27949, 27960, 27971, 27982, 27993, 28004, 28015, 28026, 28037, + 28048, 28059, 28070, 28081, 28092, 28103, 28114, 28125, 28136, 28147, + 28158, 28169, 28180, 28191, 28202, 28213, 28224, 28235, 28246, 28257, + 28268, 28279, 28290, 20181, 28301, 28312, 28323, 28334, 28345, 28356, + 28367, 28378, 28389, 28400, 28411, 28422, 28433, 28444, 28455, 28466, + 28477, 28488, 28499, 28510, 28521, 28532, 28543, 28554, 28565, 28576, + 28587, 28598, 28609, 28620, 28631, 28642, 28653, 28664, 28675, 28686, + 28697, 28708, 28719, 28730, 28741, 28752, 28763, 28774, 28785, 28796, + 28807, 28818, 28829, 28840, 28851, 28862, 28873, 28884, 28895, 28906, + 28916, 28926, 28936, 28946, 28956, 28966, 28976, 28986, 28996, 29006, + 29016, 29026, 29036, 29046, 29056, 29066, 29076, 29086, 29096, 29106, + 29116, 29126, 29136, 29146, 23828, 29156, 29166, 29176, 29186, 29196, + 29206, 29216, 29226, 29236, 1354, 29246, 29256, 29266, 29276, 29286, + 29296, 29306, 29316, 29326, 29336, 29346, 29356, 29366, 29376, 29386, + 29396, 29406, 29416, 29426, 29436, 29446, 29456, 29466, 29476, 29486, + 29496, 29506, 29516, 29526, 29536, 29546, 29556, 29566, 29576, 29586, + 29596, 29606, 29616, 29626, 29636, 29646, 29656, 29666, 29676, 29686, + 29696, 29706, 29716, 29726, 29736, 29746, 29756, 29766, 29776, 29786, + 29796, 29806, 29816, 29826, 29836, 29846, 29856, 29866, 29876, 29886, + 29896, 29906, 29916, 29926, 29936, 29946, 29956, 29966, 29976, 29986, + 29996, 30006, 30016, 30026, 21157, 30036, 24428, 30046, 30056, 30066, + 30076, 30086, 30096, 30106, 30116, 30126, 30136, 30146, 30156, 30166, + 30176, 30186, 30196, 30206, 30216, 30226, 30236, 30246, 30256, 30266, + 30276, 30286, 30296, 30306, 30316, 30326, 30336, 30346, 30356, 30366, + 30376, 30386, 30396, 30406, 30416, 30426, 30436, 30446, 30456, 30466, + 30476, 30486, 30496, 30506, 30516, 30526, 30536, 30546, 30556, 30566, + 30576, 30586, 30596, 30606, 30616, 30626, 30636, 30646, 30656, 30666, + 30676, 30686, 30696, 30706, 30716, 30726, 30736, 30746, 30756, 30766, + 30776, 30786, 30796, 30806, 30816, 30826, 30836, 30846, 30856, 30866, + 30876, 30886, 30896, 30906, 30916, 30926, 30936, 30946, 30956, 30966, + 30976, 30986, 30996, 31006, 31016, 31026, 31036, 31046, 31056, 31066, + 31076, 31086, 31096, 31106, 31116, 31126, 31136, 31146, 31156, 31166, + 31176, 31186, 31196, 31206, 31216, 31226, 31236, 31246, 31256, 31266, + 31276, 31286, 31296, 31306, 31316, 31326, 31336, 31346, 31356, 31366, + 31376, 31386, 31396, 31406, 31416, 31426, 31436, 31446, 2800, 31456, + 31466, 31476, 31486, 31496, 31506, 31516, 31526, 31536, 31546, 31556, + 31566, 31576, 31586, 31596, 31606, 31616, 31626, 31636, 31646, 31656, + 31666, 31676, 31686, 31696, 31706, 31716, 31726, 31736, 31746, 31756, + 31766, 31776, 31786, 31796, 31806, 31816, 31826, 31836, 31846, 31856, + 31866, 31876, 31886, 31896, 31906, 31916, 31926, 31936, 31946, 31956, + 31966, 31976, 31986, 31996, 32006, 32016, 32026, 32036, 32046, 32056, + 32066, 32075, 32084, 32093, 32102, 32111, 32120, 32129, 32138, 32147, + 32156, 32165, 32174, 32183, 32192, 32201, 32210, 32219, 32228, 32237, + 20573, 32246, 32255, 32264, 32273, 32282, 32291, 32300, 32309, 32318, + 32327, 32336, 32345, 32354, 32363, 32372, 32381, 32390, 32399, 32408, + 32417, 32426, 32435, 32444, 32453, 32462, 32471, 32480, 32489, 32498, + 32507, 32516, 32525, 32534, 32543, 32552, 32561, 32570, 32579, 32588, + 32597, 32606, 32615, 32624, 32633, 32642, 32651, 32660, 32669, 32678, + 26741, 32687, 32696, 32705, 32714, 32723, 32732, 32741, 32750, 32759, + 32768, 32777, 32786, 32795, 32804, 32813, 32822, 32831, 32840, 32849, + 32858, 32867, 32876, 32885, 32894, 32903, 32912, 32921, 32930, 32939, + 32948, 26950, 32957, 32966, 32975, 32984, 32993, 33002, 33011, 33020, + 33029, 33038, 33047, 33056, 33065, 33074, 33083, 33092, 33101, 33110, + 33119, 33128, 33137, 33146, 33155, 33164, 33173, 33182, 1269, 33191, + 33200, 33209, 33218, 33227, 33236, 33245, 33254, 33263, 33272, 33281, + 33290, 33299, 33308, 33317, 33326, 33335, 32027, 33344, 33353, 33362, + 33371, 33380, 33389, 33398, 33407, 33416, 33425, 33434, 33443, 33452, + 33461, 33470, 33479, 33488, 33497, 33506, 33515, 33524, 33533, 33542, + 33551, 33560, 33569, 33578, 33587, 33596, 33605, 33614, 33623, 33632, + 33641, 33650, 33659, 33668, 33677, 33686, 33695, 33704, 33713, 33722, + 33731, 33740, 33749, 33758, 33767, 33776, 33785, 33794, 33803, 33812, + 33821, 33830, 33839, 33848, 33857, 33866, 33875, 33884, 33893, 33902, + 33911, 33920, 33929, 33938, 33947, 33956, 33965, 33974, 33983, 33992, + 34001, 34010, 34019, 34028, 34037, 34046, 34055, 34064, 34073, 34082, + 34091, 34100, 34109, 34118, 34127, 34136, 34145, 34154, 34163, 34172, + 34181, 34190, 34199, 34208, 34217, 34226, 34235, 34244, 34253, 34262, + 34271, 34280, 34289, 34298, 34307, 34316, 34325, 34334, 34343, 34352, + 34361, 34370, 34379, 34388, 34397, 34406, 34415, 34424, 34433, 34442, + 34451, 34460, 34469, 34478, 34487, 34496, 34505, 34514, 34523, 34532, + 34541, 34550, 34559, 11617, 34568, 34577, 34586, 34595, 34604, 34613, + 34622, 34631, 34640, 34649, 34658, 34667, 34676, 34685, 34694, 34703, + 34712, 34721, 34730, 34739, 34748, 34757, 34766, 34775, 34784, 34793, + 34802, 34811, 34820, 34829, 34838, 34847, 34856, 34865, 34874, 34883, + 34892, 34901, 34910, 34919, 34928, 34937, 34946, 34955, 34964, 34973, + 34982, 34991, 35000, 35009, 35018, 35027, 35036, 35045, 35054, 35063, + 35072, 35081, 35090, 35099, 35108, 35117, 35126, 35135, 35144, 35153, + 35162, 2699, 35171, 35180, 35189, 35198, 35207, 35216, 35225, 35234, + 35243, 35252, 35261, 35270, 35279, 35288, 35297, 35306, 35315, 35324, + 35333, 35342, 35351, 35360, 35369, 35378, 35387, 35396, 35405, 35414, + 35423, 35432, 35441, 35450, 35459, 35468, 35477, 35486, 35495, 35504, + 35513, 35522, 35531, 35539, 35547, 35555, 35563, 35571, 35579, 35587, + 35595, 19890, 35603, 35611, 35619, 35627, 35635, 35643, 35651, 35659, + 35667, 35675, 35683, 35691, 35699, 35707, 35715, 35723, 35731, 35739, + 35747, 35755, 35763, 35771, 29428, 35779, 35787, 35795, 35803, 35811, + 35819, 35827, 35835, 35843, 35851, 21276, 35859, 35867, 35875, 35883, + 35891, 35899, 35907, 35915, 35923, 35931, 35939, 21484, 19918, 35947, + 35955, 1453, 35963, 35971, 2898, 35979, 2818, 35987, 35995, 36003, 36011, + 19974, 36019, 36027, 36035, 36043, 36051, 20600, 36059, 24106, 36067, + 36075, 36083, 36091, 36099, 36107, 36115, 36123, 36131, 36139, 36147, + 36155, 36163, 36171, 32589, 36179, 36187, 36195, 36203, 36211, 36219, + 36227, 36235, 36243, 36251, 36259, 36267, 1833, 36275, 36283, 36291, + 36299, 36307, 36315, 36323, 36331, 36339, 36347, 36355, 36363, 36371, + 36379, 36387, 36395, 36403, 36411, 36419, 36427, 36435, 36443, 36451, + 36459, 36467, 36475, 36483, 36491, 36499, 36507, 36515, 36523, 36531, + 36539, 36547, 36555, 36563, 36571, 36579, 36587, 36595, 36603, 36611, + 36619, 36627, 36635, 36643, 36651, 36659, 36667, 36675, 36683, 29208, + 36691, 36699, 36707, 36715, 36723, 36731, 36739, 36747, 36755, 36763, + 36771, 36779, 36787, 36795, 36803, 36811, 33174, 36819, 36827, 36835, + 36843, 36851, 36859, 36867, 36875, 36883, 36891, 36899, 36907, 36915, + 36923, 36931, 36939, 36947, 36955, 36963, 36971, 36979, 36987, 36995, + 37003, 37011, 37019, 37027, 37035, 37043, 37051, 37059, 37067, 37075, + 37083, 37091, 37099, 37107, 37115, 37123, 37131, 37139, 37147, 37155, + 29288, 37163, 37171, 37179, 37187, 37195, 37203, 37211, 37219, 37227, + 37235, 37243, 37251, 37259, 37267, 37275, 37283, 37291, 37299, 37307, + 28304, 37315, 37323, 37331, 37339, 37347, 37355, 37363, 37371, 37379, + 37387, 37395, 37403, 37411, 37419, 37427, 37435, 37443, 37451, 37459, + 37467, 37475, 37483, 37491, 37499, 37507, 37515, 37523, 37531, 37539, + 37547, 37555, 37563, 37571, 37579, 37587, 37595, 37603, 37611, 33228, + 37619, 37627, 37635, 37643, 37651, 37659, 37667, 37675, 37683, 37691, + 37699, 37707, 37715, 37723, 28458, 37731, 37739, 2785, 37747, 37755, + 37763, 37771, 37779, 37787, 37795, 37803, 37811, 35136, 37819, 37827, + 37835, 37843, 37851, 37859, 37867, 37875, 37883, 37891, 37899, 37907, + 37915, 37923, 37931, 37939, 37947, 37955, 37963, 37971, 37979, 37987, + 37995, 2866, 38003, 38011, 11714, 38019, 38027, 38035, 38043, 38051, + 38059, 38067, 38075, 38083, 38091, 25078, 38099, 38107, 38115, 38123, + 38131, 38139, 38147, 38155, 38163, 38171, 38179, 38187, 38195, 38203, + 38211, 38219, 38227, 38235, 38243, 38251, 38259, 38267, 38275, 38283, + 38291, 38299, 38307, 38315, 38323, 38331, 38339, 38347, 38355, 38363, + 38371, 38379, 38387, 20769, 38395, 38403, 38411, 38419, 38427, 38435, + 38443, 38451, 38459, 1728, 38467, 38475, 38483, 38491, 38499, 38507, + 38515, 38523, 38531, 38539, 38547, 38555, 38563, 38571, 26434, 38579, + 38587, 38595, 38603, 38611, 38619, 38627, 38635, 38643, 38651, 38659, + 38667, 38675, 38683, 38691, 38699, 38707, 38715, 38723, 38731, 38739, + 38747, 38755, 38763, 38771, 20520, 38779, 38787, 38795, 38803, 38811, + 38819, 38827, 38835, 38843, 38851, 38859, 38867, 30998, 38875, 38883, + 38891, 38899, 38907, 38915, 38923, 38931, 38939, 38947, 38955, 38962, + 20965, 38969, 38976, 38983, 38990, 38997, 39004, 39011, 39018, 39025, + 20679, 39032, 39039, 39046, 39053, 39060, 39067, 39074, 39081, 39088, + 39095, 39102, 39109, 39116, 39123, 39130, 39137, 39144, 39151, 39158, + 39165, 39172, 39179, 39186, 11898, 39193, 39200, 39207, 39214, 39221, + 39228, 39235, 39242, 39249, 39256, 39263, 39270, 39277, 39284, 39291, + 39298, 39305, 39312, 39319, 39326, 39333, 39340, 39347, 39354, 39361, + 39368, 1492, 39375, 39382, 39389, 1585, 39396, 39403, 39410, 39417, + 39424, 39431, 39438, 39445, 39452, 39459, 39466, 39473, 39480, 39487, + 39494, 1336, 39501, 39508, 39515, 39522, 39529, 39536, 39543, 39550, + 39557, 39564, 39571, 39578, 39585, 39592, 39599, 32356, 39606, 39613, + 39620, 39627, 39634, 39641, 39648, 39655, 39662, 39669, 28448, 39676, + 39683, 39690, 39697, 39704, 39711, 39718, 39725, 39732, 39739, 23855, + 39746, 39753, 39760, 39767, 39774, 39781, 39788, 39795, 39802, 39809, + 39816, 39823, 39830, 39837, 39844, 39851, 39858, 39865, 39872, 39879, + 39886, 39893, 39900, 39907, 39914, 39921, 39928, 39935, 39942, 39949, + 39956, 39963, 39970, 39977, 39984, 39991, 39998, 40005, 40012, 40019, + 40026, 40033, 40040, 40047, 40054, 40061, 40068, 40075, 40082, 40089, + 40096, 40103, 40110, 40117, 40124, 40131, 40138, 40145, 40152, 40159, + 40166, 40173, 40180, 40187, 40194, 40201, 40208, 40215, 40222, 40229, + 40236, 40243, 40250, 40257, 40264, 40271, 40278, 40285, 33022, 40292, + 40299, 40306, 40313, 40320, 40327, 40334, 40341, 40348, 40355, 40362, + 40369, 40376, 40383, 40390, 40397, 40404, 40411, 40418, 40425, 40432, + 40439, 40446, 40453, 40460, 40467, 40474, 40481, 40488, 40495, 40502, + 27106, 40509, 40516, 40523, 40530, 40537, 40544, 40551, 40558, 40565, + 40572, 40579, 40586, 32590, 40593, 40600, 40607, 40614, 40621, 40628, + 40635, 40642, 40649, 1765, 40656, 40663, 40670, 40677, 40684, 40691, + 40698, 40705, 40712, 40719, 40726, 40733, 40740, 40747, 40754, 40761, + 40768, 40775, 40782, 40789, 40796, 40803, 40810, 40817, 40824, 40831, + 40838, 40845, 40852, 40859, 40866, 40873, 40880, 40887, 40894, 40901, + 40908, 40915, 40922, 40929, 40936, 40943, 40950, 40957, 40964, 40971, + 40978, 40985, 40992, 40999, 41006, 41013, 41020, 33229, 41027, 41034, + 41041, 41048, 41055, 41062, 41069, 41076, 41083, 41090, 41097, 41104, + 41111, 41118, 41125, 41132, 41139, 41146, 41153, 41160, 31239, 41167, + 41174, 41181, 41188, 41195, 41202, 41209, 41216, 41223, 41230, 28349, + 41237, 41244, 41251, 41258, 41265, 41272, 41279, 41286, 41293, 41300, + 41307, 41314, 41321, 41328, 36900, 41335, 41342, 41349, 41356, 41363, + 41370, 41377, 41384, 41391, 41398, 41405, 41412, 41419, 41426, 41433, + 41440, 41447, 41454, 41461, 41468, 41475, 41482, 37876, 41489, 41496, + 41503, 41510, 41517, 41524, 41531, 41538, 41545, 41552, 41559, 41566, + 41573, 41580, 41587, 41594, 41601, 41608, 41615, 41622, 41629, 41636, + 41643, 41650, 41657, 41664, 41671, 41678, 41685, 41692, 41699, 41706, + 41713, 41720, 41727, 31199, 41734, 41741, 41748, 41755, 41762, 41769, + 38252, 41776, 41783, 41790, 41797, 41804, 41811, 41818, 41825, 41832, + 41839, 41846, 41853, 41860, 35708, 41867, 41874, 41881, 41888, 41895, + 41902, 41909, 41916, 41923, 41930, 41937, 41944, 41951, 41958, 41965, + 41972, 41979, 41986, 41993, 42000, 42007, 42014, 42021, 42028, 42035, + 42042, 42049, 42056, 42063, 42070, 42077, 42084, 42091, 42098, 42105, + 42112, 42119, 42126, 42133, 42140, 42147, 42154, 42161, 42168, 42175, + 42182, 24935, 42189, 42196, 42203, 42210, 42217, 42224, 42231, 42238, + 42245, 42252, 42259, 42266, 42273, 42280, 42287, 42294, 42301, 42308, + 42315, 42322, 42329, 42336, 42343, 42350, 42357, 42364, 42371, 42378, + 33247, 42385, 42392, 42399, 42406, 30999, 42413, 42420, 42427, 42434, + 42441, 42448, 42455, 42462, 42469, 42476, 42483, 42490, 42497, 42504, + 42511, 42518, 1676, 42525, 42531, 42537, 29600, 30040, 42543, 42549, + 42555, 42561, 21434, 42567, 42573, 42579, 42585, 42591, 42597, 42603, + 29840, 42609, 42615, 41140, 42621, 42627, 42633, 35965, 42639, 42645, + 42651, 42657, 29070, 42663, 42669, 29940, 42675, 42681, 42687, 42693, + 42699, 42705, 42711, 42519, 42717, 42723, 42729, 42735, 42741, 42747, + 29170, 42753, 42759, 42765, 42771, 42777, 42783, 42789, 42795, 42801, + 42807, 42813, 42819, 42825, 29230, 42831, 42837, 42843, 42849, 42855, + 42861, 42867, 42873, 26876, 42879, 42885, 42891, 42897, 20927, 42903, + 42909, 42915, 42921, 42927, 23880, 29460, 42933, 42939, 42945, 42951, + 20693, 42957, 42963, 42969, 42975, 42981, 1294, 42987, 42993, 1531, + 24336, 42999, 43005, 19948, 43011, 24204, 43017, 1398, 20368, 43023, + 43029, 20914, 43035, 43041, 43047, 43053, 43059, 43065, 43071, 43077, + 43083, 43089, 43095, 36181, 43101, 43107, 43113, 43119, 43125, 43131, + 29080, 43137, 43143, 43149, 43155, 43161, 43167, 43173, 43179, 43185, + 43191, 43197, 43203, 43209, 43215, 43221, 43227, 43233, 24216, 11824, + 32069, 43239, 43245, 43251, 43257, 43263, 43269, 43275, 43281, 43287, + 43293, 43299, 43305, 43311, 43317, 43323, 43329, 43335, 43341, 43347, + 43353, 43359, 43365, 43371, 43377, 43383, 43389, 43395, 43401, 43407, + 43413, 43419, 43425, 43431, 43437, 43443, 43449, 43455, 43461, 43467, + 43473, 43479, 43485, 43491, 28779, 43497, 43503, 43509, 43515, 43521, + 43527, 43533, 43539, 43545, 43551, 43557, 43563, 33257, 29140, 43569, + 43575, 43581, 43587, 43593, 43599, 43605, 43611, 43617, 43623, 43629, + 43635, 43641, 43647, 43653, 43659, 43665, 43671, 43677, 43683, 43689, + 43695, 43701, 43707, 43713, 43719, 43725, 43731, 43737, 43743, 43749, + 43755, 43761, 43767, 43773, 43779, 43785, 43791, 29350, 43797, 43803, + 43809, 43815, 43821, 43827, 43833, 43839, 43845, 43851, 43857, 43863, + 43869, 43875, 43881, 43887, 43893, 43899, 43905, 43911, 43917, 43923, + 43929, 43935, 43941, 43947, 43953, 43959, 43965, 43971, 43977, 43983, + 43989, 43995, 44001, 44007, 44013, 44019, 44025, 44031, 44037, 44043, + 44049, 44055, 35309, 44061, 44067, 44073, 44079, 44085, 44091, 44097, + 44103, 44109, 44115, 44121, 44127, 44133, 44139, 44145, 44151, 44157, + 44163, 44169, 44175, 44181, 44187, 44193, 44199, 44205, 44211, 44217, + 44223, 44229, 44235, 28306, 44241, 44247, 44253, 44259, 44265, 44271, + 44277, 44283, 44289, 44295, 44301, 44307, 44313, 44319, 44325, 44331, + 44337, 44343, 44349, 44355, 44361, 44367, 44373, 44379, 44385, 44391, + 44397, 44403, 44409, 29340, 44415, 44421, 44427, 44433, 44439, 44445, + 44451, 44457, 44463, 44469, 44475, 44481, 44487, 44493, 44499, 44505, + 44511, 44517, 44523, 44529, 44535, 44541, 44547, 44553, 44559, 44565, + 44571, 44577, 44583, 44589, 44595, 44601, 44607, 44613, 44619, 40860, + 44625, 44631, 44637, 44643, 44649, 44655, 44661, 44667, 44673, 44679, + 44685, 44691, 44697, 37069, 44703, 44709, 44715, 44721, 44727, 44733, + 44739, 44745, 44751, 44757, 44763, 44769, 44775, 44781, 44787, 44793, + 44799, 44805, 44811, 44817, 44823, 38853, 44829, 44835, 44841, 44847, + 44853, 44859, 44865, 44871, 44877, 44883, 44889, 44895, 44901, 44907, + 44913, 44919, 44925, 44931, 44937, 44943, 44949, 44955, 44961, 44967, + 44973, 44979, 34661, 44985, 44991, 44997, 45003, 45009, 45015, 45021, + 45027, 45033, 45039, 45045, 45051, 45057, 45063, 45069, 45075, 45081, + 45087, 45093, 45099, 45105, 45111, 37325, 45117, 45123, 45129, 45135, + 45141, 45147, 45153, 45159, 45165, 45171, 24468, 45177, 45183, 45189, + 45195, 45201, 45207, 45213, 45219, 45225, 45231, 45237, 45243, 45249, + 45255, 45261, 45267, 45273, 45279, 45285, 45291, 45297, 45303, 45309, + 45315, 45321, 45327, 45333, 45339, 45345, 45351, 40482, 45357, 45363, + 45369, 45375, 45381, 45387, 45393, 45399, 45405, 45411, 45417, 45423, + 45429, 45435, 45441, 45447, 45453, 45459, 45465, 45471, 45477, 45483, + 45489, 45495, 45501, 45507, 45513, 45519, 45525, 45531, 45537, 45543, + 45549, 45555, 45561, 45567, 45573, 45579, 45585, 45591, 45597, 45603, + 45609, 45615, 45621, 45627, 41301, 45633, 45639, 45645, 45651, 45657, + 45663, 45669, 45675, 45681, 45687, 45693, 45699, 45705, 45711, 45717, + 45723, 45729, 45735, 45741, 45747, 45753, 45759, 45765, 45771, 45777, + 45783, 45789, 45795, 45801, 45807, 45813, 45819, 45825, 45831, 45837, + 45843, 45849, 45855, 45861, 45867, 45873, 45879, 45885, 45891, 45897, + 45903, 45909, 45915, 45921, 45927, 45933, 45939, 45945, 45951, 45957, + 45963, 40097, 45969, 45975, 45981, 45987, 45993, 45999, 46005, 46011, + 46017, 46023, 46029, 46035, 46041, 46047, 46053, 46059, 46065, 46071, + 46077, 46083, 46089, 46095, 46101, 46107, 46113, 46119, 46125, 46131, + 46137, 46143, 46149, 46155, 46161, 46167, 46173, 46179, 46185, 46191, + 46197, 46203, 46209, 46215, 46221, 46227, 46233, 46239, 46245, 46251, + 46257, 46263, 46269, 46275, 46281, 46287, 33239, 46293, 46299, 46305, + 46311, 46317, 46323, 46329, 46335, 46341, 46347, 46353, 46359, 46365, + 46371, 46377, 46383, 46389, 46395, 46401, 46407, 46413, 46419, 46425, + 46431, 46437, 46443, 46449, 46455, 46461, 46467, 46473, 46479, 46485, + 46491, 46497, 46503, 46509, 46515, 46521, 46527, 46533, 46539, 46545, + 34751, 46551, 46557, 46563, 46569, 46575, 46581, 46587, 46593, 46599, + 46605, 46611, 46617, 46623, 46629, 46635, 46641, 46647, 46653, 46659, + 46665, 46671, 46677, 46683, 46689, 46695, 11794, 46701, 46707, 46713, + 46719, 46725, 46731, 46737, 46743, 46749, 46755, 46761, 46767, 46773, + 46779, 24252, 46785, 46791, 46797, 46803, 42372, 46809, 46815, 33266, + 46821, 46827, 46833, 46839, 46845, 46851, 46857, 46863, 46869, 46875, + 46881, 46887, 46893, 46899, 46905, 46911, 46917, 46923, 46929, 46935, + 46941, 46947, 46953, 46959, 46965, 46971, 46977, 46983, 46989, 46995, + 47001, 47007, 47013, 47019, 47025, 47031, 47037, 47043, 47049, 47055, + 47061, 47067, 47073, 47079, 47085, 47091, 47097, 31120, 47103, 47109, + 47115, 47121, 47127, 47133, 47139, 47145, 47151, 47157, 47163, 47169, + 47175, 47181, 47187, 47193, 47199, 47205, 47211, 47217, 47223, 47229, + 47235, 47241, 47247, 47253, 47259, 47265, 47271, 47277, 47283, 47289, + 47295, 35013, 47300, 47305, 47310, 47315, 47320, 47325, 47330, 47335, + 47340, 47345, 47350, 47355, 47360, 47365, 47370, 20785, 47375, 47380, + 47385, 47390, 32367, 44422, 47395, 47400, 43162, 47405, 47410, 47415, + 47420, 30891, 47425, 47430, 46918, 47435, 47440, 47445, 47450, 47455, + 47460, 47465, 47470, 47475, 47480, 47485, 47490, 47495, 47500, 47505, + 44662, 46756, 47510, 47515, 47520, 47525, 31411, 47530, 47535, 47540, + 47545, 47550, 47555, 43444, 47560, 47565, 47570, 47575, 47580, 47585, + 47590, 47595, 47600, 47605, 47610, 47615, 47620, 47625, 35112, 47630, + 47635, 47640, 47645, 47650, 47655, 47660, 47665, 47670, 43786, 47675, + 47680, 47685, 47690, 47695, 47700, 47705, 47710, 1359, 47715, 47720, + 47725, 47730, 47735, 38510, 47740, 47745, 42065, 18770, 47750, 47755, + 47760, 47765, 29001, 47770, 47775, 47780, 47785, 47790, 47795, 47800, + 39692, 47805, 47810, 47815, 47820, 47825, 47830, 47835, 47840, 47845, + 44464, 47850, 47855, 47860, 47865, 47870, 47875, 47880, 47885, 47890, + 47895, 47900, 28461, 47905, 34797, 42226, 47910, 47915, 47920, 47925, + 47930, 47935, 47940, 47945, 47950, 47955, 47960, 43282, 47965, 47970, + 47975, 47980, 47985, 485, 33438, 47990, 47995, 48000, 48005, 48010, + 48015, 48020, 48025, 48030, 48035, 48040, 48045, 1100, 48050, 48055, + 48060, 48065, 48070, 48075, 48080, 48085, 48090, 48095, 48100, 48105, + 42670, 48110, 48115, 48120, 48125, 48130, 48135, 48140, 48145, 48150, + 48155, 48160, 33069, 48165, 48170, 48175, 44236, 48180, 48185, 48190, + 48195, 48200, 48205, 48210, 48215, 48220, 48225, 48230, 20564, 48235, + 48240, 48245, 48250, 48255, 48260, 48265, 48270, 48275, 48280, 48285, + 48290, 48295, 48300, 48305, 48310, 48315, 48320, 47212, 48325, 41295, + 48330, 48335, 48340, 48345, 48350, 48355, 48360, 48365, 48370, 46798, + 21071, 48375, 48380, 48385, 48390, 43558, 48395, 48400, 48405, 48410, + 48415, 48420, 48425, 48430, 48435, 48440, 48445, 48450, 28274, 48455, + 48460, 48465, 48470, 31391, 48475, 48480, 48485, 48490, 48495, 48500, + 48505, 48510, 48515, 48520, 48525, 48530, 48535, 48540, 48545, 48550, + 48555, 48560, 48565, 48570, 48575, 42778, 48580, 48585, 48590, 48595, + 48600, 48605, 48610, 48615, 48620, 48625, 48630, 48635, 48640, 48645, + 48650, 48655, 48660, 48665, 48670, 48675, 48680, 48685, 29361, 48690, + 48695, 45358, 36398, 48700, 48705, 48710, 48715, 48720, 48725, 48730, + 48735, 48740, 48745, 48750, 48755, 48760, 48765, 48770, 48775, 48780, + 48785, 48790, 48795, 48800, 48805, 46450, 48810, 48815, 48820, 48825, + 35184, 48830, 48835, 48840, 48845, 48850, 48855, 48860, 48865, 45112, + 48870, 48875, 40007, 48880, 32853, 48885, 20173, 48890, 48895, 48900, + 48905, 48910, 48915, 38246, 48920, 48925, 48930, 48935, 48940, 48945, + 39860, 41799, 48950, 48955, 48960, 48965, 48970, 48975, 48980, 48985, + 48990, 48995, 49000, 49005, 49010, 49015, 49020, 49025, 49030, 49035, + 49040, 49045, 49050, 49055, 49060, 46912, 49065, 49070, 49075, 40231, + 49080, 49085, 49090, 49095, 49100, 39104, 49105, 49110, 49115, 49120, + 49125, 49130, 49135, 49140, 49145, 49150, 49155, 49160, 49165, 49170, + 49175, 49180, 49185, 49190, 49195, 49200, 49205, 30971, 49210, 49215, + 49220, 49225, 49230, 49235, 49240, 41204, 49245, 49250, 28373, 49255, + 49260, 49265, 49270, 49275, 49280, 49285, 49290, 35382, 49295, 49300, + 27328, 49305, 49310, 49315, 49320, 49325, 49330, 49335, 49340, 49345, + 49350, 49355, 49360, 49365, 49370, 49375, 49380, 49385, 49390, 49395, + 49400, 49405, 49410, 49415, 49420, 49425, 49430, 49435, 49440, 49445, + 49450, 49455, 49460, 49465, 49470, 49475, 49480, 49485, 49490, 49495, + 49500, 49505, 49510, 49515, 49520, 49525, 49530, 49535, 49540, 49545, + 49550, 49555, 49560, 49565, 49570, 49575, 49580, 49585, 49590, 49595, + 49600, 49605, 49610, 49615, 49620, 49625, 49630, 49635, 49640, 49645, + 49650, 49655, 49660, 49665, 49670, 49675, 49680, 49685, 49690, 49695, + 49700, 49705, 49710, 49715, 49720, 49725, 49730, 49735, 49740, 49745, + 49750, 49755, 49760, 49765, 49770, 49775, 49780, 49785, 49790, 49795, + 49800, 49805, 49810, 49815, 49820, 49825, 49830, 49835, 49840, 24157, + 49845, 49850, 49855, 49860, 49865, 49870, 49875, 49880, 49885, 49890, + 49895, 49900, 49905, 49910, 49915, 49920, 49925, 49930, 49935, 49940, + 49945, 49950, 49955, 49960, 49965, 49970, 49975, 49980, 49985, 49990, + 49995, 44296, 44302, 44308, 50000, 50005, 50010, 50015, 50020, 50025, + 50030, 50035, 50040, 50045, 50050, 50055, 31431, 44314, 44320, 50060, + 44326, 50065, 45898, 50070, 50075, 50080, 50085, 50090, 50095, 50100, + 50105, 50110, 50115, 50120, 50125, 50130, 50135, 50140, 44458, 50145, + 50150, 50155, 50160, 50165, 50170, 50175, 50180, 50185, 50190, 50195, + 50200, 50205, 50210, 50215, 50220, 50225, 43030, 50230, 50235, 50240, + 50245, 50250, 50255, 50260, 50265, 50270, 50275, 50280, 50285, 50290, + 50295, 50300, 50305, 50310, 50315, 50320, 50325, 50330, 50335, 50340, + 50345, 50350, 50355, 50360, 50365, 50370, 50375, 50380, 50385, 50390, + 50395, 50400, 50405, 50410, 50415, 50420, 50425, 50430, 50435, 50440, + 50445, 50450, 50455, 50460, 50465, 50470, 50475, 50480, 50485, 50490, + 50495, 50500, 50505, 50510, 50515, 50520, 50525, 50530, 50535, 50540, + 44668, 44674, 29471, 50545, 50550, 50555, 50560, 50565, 50570, 50575, + 50580, 50585, 50590, 50595, 50600, 50605, 50610, 39181, 44686, 50615, + 44692, 50620, 50625, 50630, 32898, 50635, 50640, 50645, 50650, 50655, + 47176, 47182, 38334, 50660, 50665, 50670, 50675, 50680, 50685, 50690, + 50695, 50700, 50705, 50710, 50715, 50720, 50725, 50730, 45754, 50735, + 50740, 45760, 50745, 50750, 50755, 50760, 50765, 50770, 50775, 45922, + 50780, 50785, 50790, 50795, 50800, 50805, 50810, 50815, 50820, 50825, + 50830, 50835, 50840, 50845, 50850, 50855, 50860, 50865, 45028, 50870, + 45034, 50875, 50880, 50885, 50890, 50895, 50900, 20047, 50905, 36006, + 50910, 45040, 45046, 45052, 45058, 45064, 45070, 50915, 50920, 50925, + 50930, 44500, 50935, 50940, 44362, 44716, 50945, 50950, 50955, 46822, + 50960, 50965, 50970, 50975, 50980, 50985, 50990, 50995, 51000, 51005, + 51010, 51015, 51020, 51025, 51030, 51035, 51040, 51045, 51050, 51055, + 51060, 51065, 51070, 51075, 51080, 51085, 51090, 51095, 51100, 51105, + 51110, 51115, 51120, 51125, 51130, 51135, 51140, 51145, 51150, 51155, + 51160, 51165, 51170, 51175, 51180, 51185, 51190, 51195, 51200, 51205, + 51210, 51215, 51220, 51225, 51230, 51235, 51240, 51245, 51250, 46282, + 44530, 44536, 44542, 46366, 51255, 51260, 51265, 51270, 51275, 51280, + 51285, 51290, 51295, 51300, 51305, 51310, 51315, 51320, 51325, 51330, + 45076, 51335, 51340, 51345, 51350, 51355, 51360, 51365, 51370, 51375, + 51380, 51385, 51390, 51395, 51400, 45382, 45388, 45394, 51405, 51410, + 51415, 51420, 51425, 51430, 51435, 51440, 51445, 51450, 51455, 51460, + 51465, 51470, 51475, 51480, 51485, 51490, 45400, 51495, 45406, 45412, + 46012, 51500, 51505, 51510, 51515, 51520, 51525, 51530, 51535, 51540, + 51545, 51550, 51555, 51560, 51565, 51570, 51575, 51580, 51585, 51590, + 51595, 51600, 51605, 51610, 51615, 51620, 51625, 51630, 51635, 51640, + 51645, 51650, 51655, 51660, 51665, 51670, 51675, 51680, 51685, 51690, + 51695, 51700, 51705, 51710, 42562, 51715, 51720, 51725, 51730, 51735, + 51740, 51745, 51750, 51755, 51760, 46876, 51765, 51770, 45184, 51775, + 45190, 51780, 51785, 51790, 51795, 51800, 51805, 45196, 51810, 45202, + 45208, 45214, 51815, 51820, 41085, 51825, 51830, 39580, 51835, 51840, + 51845, 51850, 51855, 51860, 51865, 51870, 51875, 51880, 51885, 51890, + 51895, 51900, 51905, 51910, 51915, 51920, 51925, 51930, 51935, 51940, + 51945, 45220, 45226, 51950, 51955, 51960, 51965, 51970, 51975, 51980, + 51985, 38030, 51990, 51995, 45232, 52000, 45238, 31441, 45244, 52005, + 52010, 52015, 52020, 52025, 41673, 52030, 52035, 52040, 52045, 52050, + 52055, 52060, 52065, 52070, 52075, 52080, 52085, 52090, 52095, 52100, + 52105, 52110, 52115, 52120, 52125, 52130, 44818, 43000, 52135, 52140, + 52145, 52150, 52155, 52160, 52165, 52170, 52175, 52180, 52185, 52190, + 46018, 52195, 52200, 52205, 52210, 52215, 52220, 52225, 52230, 52235, + 52240, 52245, 52250, 52255, 46024, 52260, 52265, 46030, 52270, 52275, + 52280, 39790, 52285, 52290, 52295, 45256, 45268, 42928, 52300, 52305, + 52310, 52315, 52320, 52325, 52330, 52335, 52340, 52345, 52350, 52355, + 52360, 52365, 52370, 52375, 52380, 52385, 52390, 52395, 41953, 52400, + 52405, 52410, 52415, 52420, 52425, 52430, 52435, 52440, 52445, 52450, + 52455, 52460, 52465, 52470, 52475, 52480, 52485, 52490, 52495, 45274, + 52500, 52505, 52510, 52515, 52520, 52525, 52530, 52535, 52540, 52545, + 52550, 52555, 52560, 52565, 52570, 52575, 52580, 52585, 52590, 52595, + 52600, 52605, 52610, 52615, 52620, 52625, 52630, 52635, 52640, 52645, + 52650, 52655, 52660, 52665, 52670, 52675, 52680, 52685, 52690, 52695, + 52700, 52705, 52710, 52715, 52720, 52725, 52730, 52735, 52740, 52745, + 52750, 52755, 52760, 52765, 52770, 52775, 52780, 52785, 52790, 52795, + 52800, 52805, 52810, 52815, 52820, 52825, 52830, 52835, 52840, 52845, + 52850, 52855, 52860, 52865, 52870, 52875, 52880, 52885, 52890, 52895, + 52900, 52905, 52910, 52915, 52920, 52925, 52930, 52935, 52940, 52945, + 52950, 52955, 52960, 52965, 52970, 52975, 52980, 52985, 52990, 52995, + 53000, 53005, 53010, 46324, 53015, 53020, 53025, 53030, 53035, 53040, + 53045, 53050, 53055, 53060, 53065, 53070, 53075, 53080, 53085, 53090, + 53095, 53100, 53105, 53110, 53115, 46462, 46048, 53120, 46054, 53125, + 53130, 53135, 53140, 53145, 53150, 53155, 53160, 53165, 53170, 53175, + 53180, 53185, 53190, 53195, 53200, 53205, 53210, 53215, 53220, 53225, + 53230, 53235, 28219, 53240, 53245, 53250, 53255, 53260, 53265, 53270, + 53275, 53280, 53285, 53290, 53295, 53300, 46720, 46726, 53305, 53310, + 53315, 53320, 53325, 53330, 53335, 33375, 53340, 1081, 53345, 53350, + 53355, 53360, 53365, 53370, 53375, 53380, 53385, 53390, 53395, 53400, + 53405, 53410, 53415, 53420, 53425, 53430, 53435, 53440, 53445, 53450, + 53455, 53460, 53465, 53470, 53475, 53480, 53485, 53490, 53495, 53500, + 53505, 29291, 53510, 53515, 46732, 53520, 53525, 53530, 53535, 53540, + 53545, 53550, 33492, 53555, 53560, 53565, 46162, 53570, 53575, 53580, + 53585, 53590, 53595, 53600, 53605, 53610, 26437, 28230, 53615, 53620, + 53625, 53630, 53635, 53640, 53645, 41603, 53650, 53655, 53660, 53665, + 53670, 53675, 53680, 53685, 53690, 53695, 53700, 53705, 53710, 53715, + 53720, 53725, 53730, 53735, 53740, 53745, 53750, 53755, 44140, 53760, + 53765, 53770, 53775, 38574, 35934, 53780, 53785, 42282, 53790, 53795, + 53800, 53805, 53810, 53815, 31451, 53820, 53825, 53830, 53835, 53840, + 53845, 53850, 53855, 36374, 53860, 53865, 36278, 53870, 53875, 53880, + 53885, 53890, 53895, 45304, 45310, 45316, 53900, 45334, 45568, 45574, + 53905, 53910, 53915, 53920, 53925, 53930, 53935, 53940, 53945, 53950, + 53955, 53960, 53965, 53970, 53975, 53980, 53985, 53990, 53995, 46066, + 46072, 46078, 54000, 54005, 54010, 54015, 54020, 54025, 54030, 54035, + 54040, 46084, 54045, 46090, 54050, 54055, 54060, 54065, 54070, 54075, + 54080, 54085, 54090, 54095, 54100, 54105, 54110, 54115, 54120, 54125, + 54130, 54135, 54140, 54145, 54150, 54155, 54160, 54165, 54170, 46096, + 46102, 54175, 54180, 46108, 46114, 46120, 54185, 54190, 54195, 54200, + 54205, 54210, 54215, 54220, 54225, 54230, 54235, 54240, 54245, 54250, + 54255, 54260, 54265, 54270, 54275, 54280, 47941, 54285, 54289, 54293, + 54297, 709, 54301, 54305, 35446, 46385, 54309, 26680, 54313, 43769, + 54317, 36527, 54321, 43595, 28253, 54325, 43421, 29172, 35059, 54329, + 54333, 20202, 42683, 54337, 34726, 54341, 44219, 54345, 47971, 54349, + 43187, 24026, 42045, 54353, 54357, 54361, 44663, 43751, 54365, 54369, + 50131, 54373, 54377, 27428, 54381, 54385, 54389, 54393, 36511, 54397, + 54401, 54405, 54409, 54413, 54417, 54421, 36103, 48016, 54425, 42779, + 54429, 54433, 54437, 48421, 32656, 20825, 54441, 36735, 28440, 54445, + 29092, 49911, 31272, 44777, 54449, 43085, 54453, 54457, 54461, 54465, + 54469, 33367, 44363, 54473, 54477, 54481, 41429, 40351, 53701, 30052, + 54485, 47876, 41674, 54489, 54493, 54497, 28495, 54501, 54505, 54509, + 37719, 54513, 45095, 42150, 54517, 24158, 54521, 42101, 43241, 54525, + 44459, 51431, 54529, 49041, 52821, 54533, 54537, 48536, 54541, 54545, + 54549, 54553, 50621, 54557, 45755, 50136, 50381, 54561, 36239, 54565, + 54569, 54573, 54577, 54581, 51406, 35500, 298, 54585, 54589, 54593, + 54597, 54601, 51616, 53351, 54605, 27318, 46913, 43805, 54609, 54613, + 54617, 43253, 40141, 33205, 43895, 54621, 54625, 40421, 48811, 54629, + 50626, 54633, 54637, 54641, 54645, 54649, 54653, 54657, 54661, 54665, + 51756, 54669, 54673, 48791, 54677, 54681, 40862, 54685, 54689, 54693, + 54697, 54701, 54705, 54709, 54713, 54717, 54721, 54725, 54729, 52396, + 54733, 54737, 54741, 54745, 54749, 54753, 54757, 54761, 29402, 54765, + 54769, 54773, 53676, 54777, 54781, 54785, 54789, 54793, 54797, 54801, + 54805, 43973, 43985, 50916, 54809, 54813, 54817, 42381, 54821, 54825, + 50141, 39735, 54829, 54833, 53171, 54837, 34465, 54841, 54845, 53766, + 54849, 44027, 38487, 40295, 44807, 54853, 54857, 54861, 54865, 46019, + 45923, 54869, 40050, 26486, 32287, 44465, 50191, 47961, 41184, 54873, + 54877, 31332, 54881, 54885, 54889, 54893, 53326, 54897, 54901, 53336, + 54905, 54909, 46409, 41779, 50561, 54913, 54917, 54921, 24506, 54925, + 31282, 54929, 54933, 54937, 54941, 54945, 36055, 54949, 52391, 54953, + 51206, 54957, 41919, 54961, 54965, 51626, 54969, 54973, 54977, 54981, + 54985, 20048, 52406, 958, 53026, 54989, 45977, 54993, 54997, 55001, + 53801, 55005, 53666, 53671, 55009, 33574, 55013, 55017, 23762, 38375, + 47316, 53711, 53716, 31122, 53481, 36615, 55021, 55025, 55029, 55033, + 55037, 55041, 45071, 55045, 55049, 55053, 49321, 55057, 40428, 47213, + 52551, 52586, 55061, 50676, 55065, 55069, 55073, 43427, 55077, 55081, + 55085, 55089, 55093, 55097, 55101, 55105, 55109, 55113, 50736, 55117, + 55121, 55125, 55129, 32971, 55133, 50116, 41380, 55137, 50121, 37215, + 55141, 55145, 55149, 55153, 55157, 55161, 55165, 55169, 55173, 38831, + 55177, 55181, 55185, 55189, 55193, 55197, 55201, 55205, 50396, 55209, + 37855, 55213, 55217, 55221, 55225, 55229, 55233, 55237, 33430, 55241, + 55245, 55249, 55253, 55257, 55261, 41947, 55265, 55269, 51866, 50781, + 52236, 52241, 52246, 52251, 55273, 55277, 55281, 55285, 50811, 50826, + 55289, 47711, 50171, 55293, 55297, 55301, 34825, 44723, 46643, 55305, + 24494, 55309, 55313, 55317, 55321, 55325, 55329, 55333, 34861, 55337, + 55341, 35527, 51596, 55345, 55349, 55353, 55357, 55361, 55365, 55369, + 55373, 32032, 49051, 49056, 55377, 50991, 55381, 55385, 55389, 51051, + 55393, 55397, 55401, 51101, 55405, 55409, 32980, 55413, 44357, 43517, + 24434, 23870, 55417, 55421, 45089, 55425, 55429, 55433, 37727, 55437, + 55441, 55445, 55449, 55453, 55457, 48061, 55461, 46037, 55465, 55469, + 55473, 55477, 26702, 55481, 34915, 55485, 55489, 36471, 55493, 55497, + 55501, 45695, 55505, 55509, 55513, 55517, 55521, 55525, 52411, 55529, + 55533, 55537, 55541, 55545, 50596, 53356, 55549, 32413, 55553, 55557, + 55561, 55565, 55569, 55573, 55577, 55581, 55585, 55589, 49071, 49076, + 55593, 55597, 55601, 55605, 55609, 55613, 55617, 37095, 55621, 43451, + 55625, 55629, 55633, 32503, 55637, 55641, 55645, 46415, 55649, 38319, + 49316, 55653, 55657, 55661, 55665, 55669, 43979, 55673, 55677, 43889, + 55681, 55685, 55689, 55693, 52531, 52556, 55697, 55701, 55705, 53521, + 55709, 48431, 55713, 55717, 48826, 52646, 55721, 48441, 55725, 45749, + 55729, 53921, 36967, 45917, 55733, 55737, 55741, 55745, 55749, 18351, + 55753, 55757, 47147, 33385, 43703, 47521, 55761, 55765, 35428, 55769, + 55773, 37167, 55777, 55781, 55785, 55789, 55793, 55797, 55801, 55805, + 55809, 55813, 55817, 55821, 55825, 55829, 55833, 55837, 55841, 55845, + 55849, 55853, 55857, 55861, 55865, 55869, 55873, 55877, 55881, 55885, + 55889, 55893, 55897, 55901, 55905, 55909, 55913, 55917, 55921, 55925, + 55929, 55933, 55937, 55941, 55945, 55949, 55953, 55957, 55961, 55965, + 55969, 55973, 55977, 55981, 55985, 55989, 55993, 55997, 56001, 56005, + 56009, 56013, 56017, 56021, 56025, 56029, 56033, 56037, 56041, 56045, + 56049, 56053, 56057, 56061, 56065, 56069, 56073, 56077, 56081, 56085, + 56089, 56093, 56097, 56101, 56105, 56109, 56113, 56117, 56121, 56125, + 56129, 56133, 56137, 56141, 56145, 56149, 56153, 56157, 56161, 56165, + 56169, 56173, 56177, 56181, 56185, 56189, 56193, 56197, 56201, 56205, + 56209, 56213, 56217, 56221, 56225, 56229, 56233, 56237, 49856, 37943, + 49866, 56241, 56245, 56249, 56253, 56257, 34906, 56261, 56265, 49871, + 56269, 49876, 56273, 56277, 56281, 56285, 48786, 56289, 49886, 49891, + 49896, 56293, 43013, 56297, 39581, 49901, 49906, 49916, 49921, 56301, + 48326, 49931, 56305, 56309, 56313, 49936, 52101, 49941, 49946, 56317, + 32251, 56321, 56325, 56329, 56333, 56337, 56341, 56345, 56349, 56353, + 56357, 56361, 56365, 56369, 56373, 39399, 56377, 56381, 56385, 56389, + 56393, 56397, 56401, 56405, 56409, 56413, 56417, 56421, 56425, 56429, + 56433, 27296, 56437, 56441, 38191, 41653, 56445, 50361, 56449, 50366, + 38895, 50371, 56453, 45815, 44819, 43001, 56457, 46493, 56461, 40834, + 50401, 45077, 50406, 39560, 50411, 50416, 51336, 56465, 56469, 56473, + 50421, 53176, 52156, 50426, 50436, 56477, 56481, 56485, 56489, 56493, + 50441, 50446, 48406, 50451, 50456, 50461, 56497, 56501, 56505, 56509, + 56513, 56517, 29152, 56521, 56525, 56529, 56533, 56537, 56541, 56545, + 26713, 56549, 48746, 56553, 56557, 56561, 56565, 44729, 56569, 56573, + 56577, 56581, 56585, 56589, 56593, 56597, 56601, 56605, 56609, 56613, + 56617, 56621, 56625, 56629, 56633, 56637, 56641, 56645, 56649, 56653, + 56657, 56661, 56665, 56669, 56673, 56677, 56681, 50766, 50771, 50776, + 51871, 51876, 51881, 51886, 56685, 56689, 56693, 35041, 39917, 50786, + 56697, 50791, 56701, 56705, 56709, 50796, 56713, 50801, 50806, 56717, + 56721, 45935, 48501, 50816, 56725, 520, 56729, 41660, 56733, 56737, + 48506, 50821, 50831, 50836, 50841, 50846, 50851, 56741, 56745, 56749, + 56753, 56757, 56761, 48656, 32042, 20565, 50151, 50161, 38751, 56765, + 39322, 56769, 50166, 50176, 45671, 50521, 50526, 50531, 50536, 48236, + 47671, 28220, 34717, 56773, 56777, 56781, 56785, 56789, 37583, 56793, + 56797, 56801, 56805, 56809, 50186, 39861, 50201, 50206, 56813, 37671, + 56817, 50211, 43031, 48956, 48961, 56821, 56825, 56829, 56833, 56837, + 56841, 56845, 56849, 56853, 56857, 56861, 53996, 28528, 44297, 44147, + 44309, 56865, 28231, 49241, 51961, 56869, 45449, 38783, 53621, 56873, + 56877, 56881, 56885, 56889, 56893, 48631, 51411, 51416, 51421, 56897, + 56901, 52326, 51426, 51436, 56905, 51441, 51446, 51451, 48636, 51456, + 56909, 51461, 52371, 51466, 51471, 20981, 56913, 56917, 31342, 56921, + 34429, 56925, 56929, 56933, 604, 56937, 56941, 56945, 27241, 56949, + 56953, 56957, 56961, 56965, 56969, 56973, 56977, 56981, 56985, 56989, + 56993, 56997, 23942, 57001, 57005, 57009, 57013, 57017, 57021, 57025, + 34807, 57029, 57033, 44057, 57037, 57041, 57045, 57049, 57053, 57057, + 57061, 57065, 57069, 57073, 57077, 57081, 57085, 57089, 57093, 57097, + 50966, 57101, 48471, 57105, 50976, 57109, 57113, 57117, 50981, 35473, + 26592, 57121, 49046, 53631, 57125, 57129, 57133, 50691, 57137, 51001, + 51006, 57141, 57145, 57149, 51011, 57153, 316, 51016, 57157, 57161, + 51021, 51026, 48971, 51036, 51041, 51046, 51056, 51061, 57165, 57169, + 57173, 32665, 48311, 57177, 51071, 51076, 57181, 57185, 57189, 57193, + 57197, 57201, 57205, 57209, 57213, 41268, 57217, 57221, 57225, 57229, + 57233, 57237, 51081, 57241, 57245, 57249, 57253, 51086, 45629, 51096, + 44993, 57257, 57261, 51106, 51111, 57265, 20258, 51116, 51121, 51126, + 41387, 51136, 57269, 51141, 57273, 51151, 57277, 57281, 45839, 57285, + 57289, 51156, 19056, 51166, 57293, 57297, 57301, 57305, 57309, 28264, + 51171, 57313, 51176, 57317, 35943, 57321, 38599, 57325, 57329, 29892, + 51181, 57333, 51186, 35935, 51196, 47117, 57337, 57341, 57345, 57349, + 51201, 47255, 51211, 57353, 57357, 57361, 57365, 57369, 57373, 57377, + 51216, 57381, 57385, 51221, 57389, 57393, 57397, 40673, 57401, 57405, + 57409, 57413, 47177, 47183, 57417, 57421, 57425, 21332, 34798, 11638, + 57429, 57433, 57437, 51611, 57441, 57445, 48316, 40218, 57449, 57453, + 57457, 57461, 57465, 57469, 57473, 53346, 57477, 42791, 57481, 44735, + 57485, 57489, 57493, 57497, 57501, 57505, 57509, 57513, 57517, 57521, + 57525, 57529, 57533, 57537, 57541, 57545, 57549, 57553, 57557, 57561, + 57565, 57569, 57573, 57577, 57581, 57585, 57589, 57593, 57597, 57601, + 57605, 57609, 57613, 57617, 57621, 57625, 57629, 57633, 57637, 57641, + 57645, 57649, 57653, 57657, 57661, 57665, 44291, 44639, 57669, 49296, + 57673, 57677, 57681, 45299, 52416, 44267, 35583, 57685, 52421, 45017, + 52431, 31042, 37959, 57689, 57693, 57697, 46937, 57701, 47851, 53051, + 52441, 57705, 57709, 57713, 57717, 45125, 53061, 52446, 52451, 52456, + 52461, 57721, 57725, 52466, 52471, 52476, 52481, 57729, 57733, 31362, + 38815, 27329, 57737, 53371, 57741, 57745, 53381, 53386, 57749, 57753, + 42066, 57757, 53391, 57761, 57765, 57769, 53396, 53401, 57773, 57777, + 57781, 41814, 53411, 53416, 57785, 53421, 57789, 57793, 32260, 57797, + 57801, 57805, 57809, 53426, 53431, 53436, 57813, 57817, 57821, 53441, + 53446, 53451, 53456, 57825, 57829, 57833, 57837, 57841, 57845, 57849, + 46205, 57853, 57857, 57861, 57865, 57869, 57873, 53681, 57877, 53466, + 57881, 57885, 57889, 57893, 57897, 57901, 57905, 57909, 57913, 57917, + 57921, 57925, 57929, 2806, 57933, 57937, 57941, 57945, 57949, 57953, + 57957, 57961, 57965, 57969, 57973, 57977, 57981, 57985, 57989, 57993, + 57997, 58001, 58005, 58009, 54021, 50666, 58013, 58017, 34789, 29872, + 58021, 31432, 44315, 44321, 50061, 58025, 36263, 58029, 40232, 38511, + 58033, 37039, 53816, 58037, 58041, 58045, 58049, 58053, 58057, 58061, + 58065, 58069, 58073, 58077, 58081, 58085, 58089, 58093, 58097, 58101, + 58105, 58109, 58113, 58117, 58121, 58125, 58129, 58133, 58137, 58141, + 58145, 58149, 58153, 58157, 58161, 58165, 58169, 58173, 58177, 58181, + 58185, 58189, 58193, 58197, 58201, 58205, 51666, 51671, 51281, 51286, + 48596, 51291, 58209, 48601, 58213, 51296, 51301, 48606, 51676, 51681, + 51686, 58217, 58221, 58225, 58229, 58233, 58237, 58241, 58245, 58249, + 58253, 58257, 58261, 58265, 40645, 58269, 58273, 31352, 48546, 58277, + 58281, 58285, 58289, 58293, 58297, 52526, 58301, 48816, 52536, 52546, + 48821, 52561, 58305, 52566, 52571, 58309, 52576, 52581, 58313, 58317, + 58321, 58325, 58329, 58333, 58337, 52591, 52596, 52601, 58341, 54211, + 52606, 58345, 58349, 58353, 52611, 58357, 52616, 52621, 52626, 58361, + 53751, 52631, 52636, 58365, 58369, 58373, 52641, 58377, 52651, 53531, + 52656, 52661, 52666, 52671, 58381, 58385, 20826, 27429, 21320, 6423, + 36104, 35784, 46266, 39519, 33494, 710, 54790, 5911, 5655, 40436, 58388, + 6167, 34916, 58391, 58394, 49252, 39582, 34637, 54410, 43026, 53817, + 55542, 43680, 41206, 54538, 28353, 58397, 959, 1102, 54958, 6935, 58400, + 58403, 58406, 58409, 56794, 58412, 58415, 56302, 36576, 39610, 24867, + 31143, 689, 11782, 53962, 47962, 47142, 26703, 58418, 33377, 58421, + 34232, 58424, 58427, 25083, 5719, 20566, 478, 25215, 41675, 897, 648, + 58430, 43518, 24939, 20511, 50192, 46326, 58433, 20553, 1401, 1147, + 28441, 34790, 58436, 43896, 40408, 44616, 48957, 54598, 58439, 51877, + 23871, 58442, 40723, 38312, 47208, 24399, 30943, 56834, 43668, 38600, + 41808, 29853, 58445, 34547, 44562, 40674, 58448, 51887, 29453, 45558, + 58451, 26945, 58454, 58457, 58460, 48157, 24435, 32684, 27242, 58463, + 48892, 58466, 58469, 58472, 45750, 56346, 58475, 44592, 24159, 58478, + 39792, 45720, 5975, 58481, 40471, 47076, 33206, 29513, 31283, 11887, + 24459, 57026, 56826, 58484, 58487, 58490, 29913, 42256, 58493, 55322, + 58496, 46260, 58499, 58502, 285, 33431, 55094, 51882, 28397, 38856, + 56458, 58505, 24135, 40226, 58508, 2807, 39694, 44022, 56822, 58511, + 31343, 20631, 26487, 35528, 58514, 21112, 36608, 55326, 11607, 58517, + 24207, 54067, 58520, 6759, 605, 58523, 58526, 39589, 47297, 58529, 58532, + 58535, 35640, 58538, 19979, 58541, 38464, 39904, 47034, 20049, 6231, + 58544, 56342, 38296, 36368, 43332, 6999, 58547, 43704, 58550, 58553, + 58556, 58559, 58562, 35429, 58565, 31323, 58568, 58571, 24495, 913, + 48357, 58574, 58577, 5527, 5671, 12, 25095, 55026, 58580, 58583, 56350, + 54442, 58586, 42936, 34907, 33305, 44202, 48107, 58589, 58592, 1210, + 58595, 58598, 58601, 28892, 56542, 35447, 36712, 58604, 55770, 28870, + 58607, 21086, 40569, 53982, 40555, 58610, 19951, 58613, 42648, 50112, + 57166, 54022, 58616, 5703, 26451, 36704, 58619, 56254, 1458, 58622, + 30033, 58625, 54690, 58628, 58631, 6551, 34817, 55662, 58634, 58637, + 58640, 58643, 56946, 58646, 58649, 56710, 55210, 56958, 58652, 46398, + 58655, 58658, 58661, 58664, 58667, 43104, 58670, 58673, 58676, 50037, + 57774, 58679, 33296, 50302, 58682, 58685, 58688, 58691, 58694, 58697, + 50187, 58700, 39862, 58703, 317, 58706, 58709, 58712, 55226, 28155, + 58715, 58718, 57942, 58721, 40058, 632, 58724, 37032, 51357, 58727, + 55086, 56558, 58730, 18982, 58733, 5543, 53662, 33188, 42978, 58736, + 32666, 55682, 26475, 49867, 58739, 58742, 53932, 58745, 58748, 29403, + 6199, 6215, 58751, 58754, 6295, 6439, 58757, 58760, 58763, 58766, 58769, + 58772, 6679, 58775, 43944, 51717, 26593, 7015, 56594, 58778, 58781, + 47977, 58784, 56522, 330, 58787, 58790, 58793, 43560, 58796, 42193, + 35992, 20787, 28221, 21385, 58799, 28210, 1058, 55330, 53312, 58802, + 58805, 45738, 862, 58808, 58811, 58814, 58817, 58820, 58823, 58826, + 58829, 58832, 58835, 58838, 42081, 58841, 49237, 58844, 57926, 58847, + 416, 43500, 58850, 58853, 58856, 50727, 58859, 58862, 58865, 58868, + 49302, 58871, 55534, 29093, 58874, 48697, 58877, 58880, 58883, 43992, + 58886, 39001, 58889, 58892, 44322, 31443, 58895, 58898, 58901, 58904, + 58907, 58910, 58913, 2823, 57482, 58916, 58919, 44772, 58922, 58925, + 50307, 58928, 58931, 58934, 11812, 58937, 58940, 58943, 58946, 32153, + 58949, 58952, 58955, 58958, 58961, 57790, 58964, 58967, 58970, 58973, + 58976, 43524, 58979, 58982, 20483, 1297, 48507, 20696, 58985, 58988, + 58991, 58994, 51242, 58997, 56314, 57070, 59000, 59003, 59006, 59009, + 48272, 59012, 59015, 59018, 57410, 606, 1059, 3112, 441, 1402, 711, 88, + 21074, 3176, 55679, 41319, 1298, 318, 43369, 21, 37, 35124, 39121, 863, + 1186, 55419, 904, 59021, 37777, 45361, 19058, 32, 1010, 197, 383, 342, + 29214, 59023, 101, 39030, 761, 59025, 46261, 54439, 54995, 239, 829, + 48318, 59027, 210, 47628, 855, 26649, 36617, 57759, 58968, 59029, 59031, + 1025, 43525, 57807, 32820, 42985, 224, 1194, 26748, 633, 59033, 32883, + 59035, 38545, 27034, 59037, 271, 626, 57179, 388, 950, 877, 36273, 58614, + 59039, 59041, 4, 147, 28924, 26671, 1142, 24196, 54395, 59043, 300, + 53198, 28277, 42775, 58587, 32289, 55339, 56695, 59045, 59047, 540, 378, + 119, 48673, 58467, 696, 43177, 42655, 932, 32044, 32676, 1109, 42595, + 59049, 59051, 59053, 59055, 59057, 39072, 26979, 444, 59059, 59061, + 37225, 59063, 8, 802, 1115, 48798, 454, 790, 59065, 40, 38786, 5, 14, + 111, 26, 133, 49, 115, 62, 225, 9, 43, 83, 58615, 583, 402, 193, 59067, + 445, 59068, }; /* code->name phrasebook */ #define phrasebook_shift 7 -#define phrasebook_short 226 +#define phrasebook_short 222 static unsigned char phrasebook[] = { - 0, 240, 15, 233, 54, 69, 235, 51, 69, 61, 52, 240, 114, 52, 238, 107, 52, - 234, 17, 233, 59, 40, 232, 74, 38, 232, 74, 235, 52, 248, 49, 52, 240, - 27, 231, 94, 248, 37, 208, 236, 177, 26, 242, 217, 26, 127, 26, 111, 26, - 166, 26, 177, 26, 176, 26, 187, 26, 203, 26, 195, 26, 202, 240, 24, 234, - 14, 235, 44, 52, 240, 7, 52, 232, 68, 52, 236, 156, 69, 234, 20, 254, 20, - 8, 5, 1, 67, 8, 5, 1, 217, 8, 5, 1, 255, 18, 8, 5, 1, 209, 8, 5, 1, 72, - 8, 5, 1, 255, 19, 8, 5, 1, 210, 8, 5, 1, 192, 8, 5, 1, 71, 8, 5, 1, 221, - 8, 5, 1, 255, 15, 8, 5, 1, 162, 8, 5, 1, 173, 8, 5, 1, 197, 8, 5, 1, 73, - 8, 5, 1, 223, 8, 5, 1, 255, 20, 8, 5, 1, 144, 8, 5, 1, 193, 8, 5, 1, 214, - 8, 5, 1, 79, 8, 5, 1, 179, 8, 5, 1, 255, 16, 8, 5, 1, 206, 8, 5, 1, 255, - 14, 8, 5, 1, 255, 17, 40, 31, 104, 238, 75, 236, 177, 38, 31, 104, 190, - 238, 54, 170, 242, 224, 242, 245, 238, 54, 8, 3, 1, 67, 8, 3, 1, 217, 8, - 3, 1, 255, 18, 8, 3, 1, 209, 8, 3, 1, 72, 8, 3, 1, 255, 19, 8, 3, 1, 210, - 8, 3, 1, 192, 8, 3, 1, 71, 8, 3, 1, 221, 8, 3, 1, 255, 15, 8, 3, 1, 162, - 8, 3, 1, 173, 8, 3, 1, 197, 8, 3, 1, 73, 8, 3, 1, 223, 8, 3, 1, 255, 20, - 8, 3, 1, 144, 8, 3, 1, 193, 8, 3, 1, 214, 8, 3, 1, 79, 8, 3, 1, 179, 8, - 3, 1, 255, 16, 8, 3, 1, 206, 8, 3, 1, 255, 14, 8, 3, 1, 255, 17, 40, 242, - 225, 104, 59, 242, 224, 38, 242, 225, 104, 169, 236, 233, 240, 15, 236, - 145, 233, 54, 69, 249, 39, 52, 243, 246, 52, 236, 181, 52, 254, 134, 52, - 240, 129, 125, 238, 213, 52, 175, 235, 195, 52, 237, 9, 238, 205, 234, - 30, 231, 87, 45, 185, 235, 51, 69, 161, 52, 248, 186, 238, 93, 234, 245, - 52, 196, 240, 112, 52, 234, 236, 52, 233, 49, 111, 233, 49, 166, 242, - 241, 238, 54, 246, 81, 52, 238, 208, 52, 240, 1, 248, 40, 236, 151, 233, - 49, 127, 236, 58, 238, 205, 234, 30, 231, 36, 45, 185, 235, 51, 69, 240, - 30, 236, 155, 253, 125, 237, 33, 240, 30, 236, 155, 253, 125, 243, 7, - 240, 30, 236, 155, 204, 236, 84, 236, 145, 236, 156, 69, 8, 5, 1, 134, 2, - 191, 8, 5, 1, 134, 2, 135, 8, 5, 1, 134, 2, 233, 48, 8, 5, 1, 134, 2, - 169, 8, 5, 1, 134, 2, 175, 8, 5, 1, 134, 2, 248, 51, 48, 8, 5, 1, 253, - 178, 8, 5, 1, 255, 105, 2, 236, 151, 8, 5, 1, 157, 2, 191, 8, 5, 1, 157, - 2, 135, 8, 5, 1, 157, 2, 233, 48, 8, 5, 1, 157, 2, 175, 8, 5, 1, 220, 2, - 191, 8, 5, 1, 220, 2, 135, 8, 5, 1, 220, 2, 233, 48, 8, 5, 1, 220, 2, - 175, 8, 5, 1, 248, 109, 8, 5, 1, 255, 98, 2, 169, 8, 5, 1, 117, 2, 191, - 8, 5, 1, 117, 2, 135, 8, 5, 1, 117, 2, 233, 48, 8, 5, 1, 117, 2, 169, 8, - 5, 1, 117, 2, 175, 231, 37, 52, 8, 5, 1, 117, 2, 108, 8, 5, 1, 132, 2, - 191, 8, 5, 1, 132, 2, 135, 8, 5, 1, 132, 2, 233, 48, 8, 5, 1, 132, 2, - 175, 8, 5, 1, 255, 107, 2, 135, 8, 5, 1, 240, 149, 8, 3, 1, 243, 74, 193, - 8, 3, 1, 134, 2, 191, 8, 3, 1, 134, 2, 135, 8, 3, 1, 134, 2, 233, 48, 8, - 3, 1, 134, 2, 169, 8, 3, 1, 134, 2, 175, 8, 3, 1, 134, 2, 248, 51, 48, 8, - 3, 1, 253, 178, 8, 3, 1, 255, 105, 2, 236, 151, 8, 3, 1, 157, 2, 191, 8, - 3, 1, 157, 2, 135, 8, 3, 1, 157, 2, 233, 48, 8, 3, 1, 157, 2, 175, 8, 3, - 1, 220, 2, 191, 8, 3, 1, 220, 2, 135, 8, 3, 1, 220, 2, 233, 48, 8, 3, 1, - 220, 2, 175, 8, 3, 1, 248, 109, 8, 3, 1, 255, 98, 2, 169, 8, 3, 1, 117, - 2, 191, 8, 3, 1, 117, 2, 135, 8, 3, 1, 117, 2, 233, 48, 8, 3, 1, 117, 2, - 169, 8, 3, 1, 117, 2, 175, 236, 196, 52, 8, 3, 1, 117, 2, 108, 8, 3, 1, - 132, 2, 191, 8, 3, 1, 132, 2, 135, 8, 3, 1, 132, 2, 233, 48, 8, 3, 1, - 132, 2, 175, 8, 3, 1, 255, 107, 2, 135, 8, 3, 1, 240, 149, 8, 3, 1, 255, - 107, 2, 175, 8, 5, 1, 134, 2, 196, 8, 3, 1, 134, 2, 196, 8, 5, 1, 134, 2, - 239, 255, 8, 3, 1, 134, 2, 239, 255, 8, 5, 1, 134, 2, 238, 71, 8, 3, 1, - 134, 2, 238, 71, 8, 5, 1, 255, 105, 2, 135, 8, 3, 1, 255, 105, 2, 135, 8, - 5, 1, 255, 105, 2, 233, 48, 8, 3, 1, 255, 105, 2, 233, 48, 8, 5, 1, 255, - 105, 2, 53, 48, 8, 3, 1, 255, 105, 2, 53, 48, 8, 5, 1, 255, 105, 2, 239, - 254, 8, 3, 1, 255, 105, 2, 239, 254, 8, 5, 1, 255, 103, 2, 239, 254, 8, - 3, 1, 255, 103, 2, 239, 254, 8, 5, 1, 255, 103, 2, 108, 8, 3, 1, 255, - 103, 2, 108, 8, 5, 1, 157, 2, 196, 8, 3, 1, 157, 2, 196, 8, 5, 1, 157, 2, - 239, 255, 8, 3, 1, 157, 2, 239, 255, 8, 5, 1, 157, 2, 53, 48, 8, 3, 1, - 157, 2, 53, 48, 8, 5, 1, 157, 2, 238, 71, 8, 3, 1, 157, 2, 238, 71, 8, 5, - 1, 157, 2, 239, 254, 8, 3, 1, 157, 2, 239, 254, 8, 5, 1, 255, 104, 2, - 233, 48, 8, 3, 1, 255, 104, 2, 233, 48, 8, 5, 1, 255, 104, 2, 239, 255, - 8, 3, 1, 255, 104, 2, 239, 255, 8, 5, 1, 255, 104, 2, 53, 48, 8, 3, 1, - 255, 104, 2, 53, 48, 8, 5, 1, 255, 104, 2, 236, 151, 8, 3, 1, 255, 104, - 2, 236, 151, 8, 5, 1, 255, 106, 2, 233, 48, 8, 3, 1, 255, 106, 2, 233, - 48, 8, 5, 1, 255, 106, 2, 108, 8, 3, 1, 255, 106, 2, 108, 8, 5, 1, 220, - 2, 169, 8, 3, 1, 220, 2, 169, 8, 5, 1, 220, 2, 196, 8, 3, 1, 220, 2, 196, - 8, 5, 1, 220, 2, 239, 255, 8, 3, 1, 220, 2, 239, 255, 8, 5, 1, 220, 2, - 238, 71, 8, 3, 1, 220, 2, 238, 71, 8, 5, 1, 220, 2, 53, 48, 8, 3, 1, 238, - 70, 71, 8, 5, 18, 254, 99, 8, 3, 18, 254, 99, 8, 5, 1, 255, 115, 2, 233, - 48, 8, 3, 1, 255, 115, 2, 233, 48, 8, 5, 1, 255, 109, 2, 236, 151, 8, 3, - 1, 255, 109, 2, 236, 151, 8, 3, 1, 251, 164, 8, 5, 1, 255, 100, 2, 135, - 8, 3, 1, 255, 100, 2, 135, 8, 5, 1, 255, 100, 2, 236, 151, 8, 3, 1, 255, - 100, 2, 236, 151, 8, 5, 1, 255, 100, 2, 239, 254, 8, 3, 1, 255, 100, 2, - 239, 254, 8, 5, 1, 255, 100, 2, 240, 1, 248, 40, 8, 3, 1, 255, 100, 2, - 240, 1, 248, 40, 8, 5, 1, 255, 100, 2, 108, 8, 3, 1, 255, 100, 2, 108, 8, - 5, 1, 255, 98, 2, 135, 8, 3, 1, 255, 98, 2, 135, 8, 5, 1, 255, 98, 2, - 236, 151, 8, 3, 1, 255, 98, 2, 236, 151, 8, 5, 1, 255, 98, 2, 239, 254, - 8, 3, 1, 255, 98, 2, 239, 254, 8, 3, 1, 255, 98, 237, 241, 255, 25, 233, - 59, 8, 5, 1, 248, 108, 8, 3, 1, 248, 108, 8, 5, 1, 117, 2, 196, 8, 3, 1, - 117, 2, 196, 8, 5, 1, 117, 2, 239, 255, 8, 3, 1, 117, 2, 239, 255, 8, 5, - 1, 117, 2, 45, 135, 8, 3, 1, 117, 2, 45, 135, 8, 5, 18, 253, 193, 8, 3, - 18, 253, 193, 8, 5, 1, 255, 101, 2, 135, 8, 3, 1, 255, 101, 2, 135, 8, 5, - 1, 255, 101, 2, 236, 151, 8, 3, 1, 255, 101, 2, 236, 151, 8, 5, 1, 255, - 101, 2, 239, 254, 8, 3, 1, 255, 101, 2, 239, 254, 8, 5, 1, 255, 99, 2, - 135, 8, 3, 1, 255, 99, 2, 135, 8, 5, 1, 255, 99, 2, 233, 48, 8, 3, 1, - 255, 99, 2, 233, 48, 8, 5, 1, 255, 99, 2, 236, 151, 8, 3, 1, 255, 99, 2, - 236, 151, 8, 5, 1, 255, 99, 2, 239, 254, 8, 3, 1, 255, 99, 2, 239, 254, - 8, 5, 1, 255, 102, 2, 236, 151, 8, 3, 1, 255, 102, 2, 236, 151, 8, 5, 1, - 255, 102, 2, 239, 254, 8, 3, 1, 255, 102, 2, 239, 254, 8, 5, 1, 255, 102, - 2, 108, 8, 3, 1, 255, 102, 2, 108, 8, 5, 1, 132, 2, 169, 8, 3, 1, 132, 2, - 169, 8, 5, 1, 132, 2, 196, 8, 3, 1, 132, 2, 196, 8, 5, 1, 132, 2, 239, - 255, 8, 3, 1, 132, 2, 239, 255, 8, 5, 1, 132, 2, 248, 51, 48, 8, 3, 1, - 132, 2, 248, 51, 48, 8, 5, 1, 132, 2, 45, 135, 8, 3, 1, 132, 2, 45, 135, - 8, 5, 1, 132, 2, 238, 71, 8, 3, 1, 132, 2, 238, 71, 8, 5, 1, 255, 111, 2, - 233, 48, 8, 3, 1, 255, 111, 2, 233, 48, 8, 5, 1, 255, 107, 2, 233, 48, 8, - 3, 1, 255, 107, 2, 233, 48, 8, 5, 1, 255, 107, 2, 175, 8, 5, 1, 255, 97, - 2, 135, 8, 3, 1, 255, 97, 2, 135, 8, 5, 1, 255, 97, 2, 53, 48, 8, 3, 1, - 255, 97, 2, 53, 48, 8, 5, 1, 255, 97, 2, 239, 254, 8, 3, 1, 255, 97, 2, - 239, 254, 8, 3, 1, 183, 193, 8, 3, 1, 41, 2, 108, 8, 5, 1, 41, 2, 90, 8, - 5, 1, 41, 2, 238, 124, 8, 3, 1, 41, 2, 238, 124, 8, 5, 1, 188, 187, 8, 3, - 1, 188, 187, 8, 5, 1, 248, 35, 73, 8, 5, 1, 255, 105, 2, 90, 8, 3, 1, - 255, 105, 2, 90, 8, 5, 1, 238, 238, 209, 8, 5, 1, 255, 103, 2, 90, 8, 5, - 1, 255, 103, 2, 238, 124, 8, 3, 1, 255, 103, 2, 238, 124, 8, 3, 1, 205, - 240, 28, 8, 5, 1, 224, 72, 8, 5, 1, 240, 86, 8, 5, 1, 248, 35, 72, 8, 5, - 1, 255, 112, 2, 90, 8, 3, 1, 255, 112, 2, 90, 8, 5, 1, 255, 104, 2, 90, - 8, 5, 1, 240, 10, 8, 3, 1, 254, 98, 8, 5, 1, 242, 237, 8, 5, 1, 220, 2, - 108, 8, 5, 1, 255, 109, 2, 90, 8, 3, 1, 255, 109, 2, 90, 8, 3, 1, 255, - 100, 2, 125, 8, 3, 1, 241, 212, 2, 108, 8, 5, 1, 205, 173, 8, 5, 1, 255, - 98, 2, 40, 90, 8, 3, 1, 255, 98, 2, 183, 38, 248, 117, 8, 5, 1, 117, 2, - 240, 1, 169, 8, 5, 1, 117, 2, 243, 8, 8, 3, 1, 117, 2, 243, 8, 8, 5, 1, - 254, 42, 8, 3, 1, 254, 42, 8, 5, 1, 255, 114, 2, 90, 8, 3, 1, 255, 114, - 2, 90, 8, 1, 254, 135, 8, 5, 1, 188, 111, 8, 3, 1, 188, 111, 8, 5, 1, - 248, 93, 8, 1, 224, 254, 38, 243, 105, 8, 3, 1, 255, 102, 2, 238, 65, 90, - 8, 5, 1, 255, 102, 2, 90, 8, 3, 1, 255, 102, 2, 90, 8, 5, 1, 255, 102, 2, - 235, 54, 90, 8, 5, 1, 132, 2, 243, 8, 8, 3, 1, 132, 2, 243, 8, 8, 5, 1, - 236, 160, 8, 5, 1, 255, 110, 2, 90, 8, 5, 1, 255, 107, 2, 90, 8, 3, 1, - 255, 107, 2, 90, 8, 5, 1, 255, 97, 2, 108, 8, 3, 1, 255, 97, 2, 108, 8, - 5, 1, 248, 155, 8, 5, 1, 253, 244, 235, 142, 8, 3, 1, 253, 244, 235, 142, - 8, 3, 1, 253, 244, 2, 242, 226, 8, 1, 171, 2, 108, 8, 5, 1, 188, 176, 8, - 3, 1, 188, 176, 8, 1, 236, 145, 238, 62, 248, 119, 2, 108, 8, 1, 244, 54, - 8, 1, 241, 82, 240, 93, 8, 1, 239, 114, 240, 93, 8, 1, 237, 59, 240, 93, - 8, 1, 235, 54, 240, 93, 8, 5, 1, 255, 40, 2, 239, 254, 8, 5, 1, 255, 103, - 2, 3, 1, 255, 97, 2, 239, 254, 8, 3, 1, 255, 40, 2, 239, 254, 8, 5, 1, - 254, 109, 8, 5, 1, 255, 100, 2, 3, 1, 221, 8, 3, 1, 254, 109, 8, 5, 1, - 254, 113, 8, 5, 1, 255, 98, 2, 3, 1, 221, 8, 3, 1, 254, 113, 8, 5, 1, - 134, 2, 239, 254, 8, 3, 1, 134, 2, 239, 254, 8, 5, 1, 220, 2, 239, 254, - 8, 3, 1, 220, 2, 239, 254, 8, 5, 1, 117, 2, 239, 254, 8, 3, 1, 117, 2, - 239, 254, 8, 5, 1, 132, 2, 239, 254, 8, 3, 1, 132, 2, 239, 254, 8, 5, 1, - 132, 2, 235, 56, 19, 196, 8, 3, 1, 132, 2, 235, 56, 19, 196, 8, 5, 1, - 132, 2, 235, 56, 19, 135, 8, 3, 1, 132, 2, 235, 56, 19, 135, 8, 5, 1, - 132, 2, 235, 56, 19, 239, 254, 8, 3, 1, 132, 2, 235, 56, 19, 239, 254, 8, - 5, 1, 132, 2, 235, 56, 19, 191, 8, 3, 1, 132, 2, 235, 56, 19, 191, 8, 3, - 1, 205, 72, 8, 5, 1, 134, 2, 235, 56, 19, 196, 8, 3, 1, 134, 2, 235, 56, - 19, 196, 8, 5, 1, 134, 2, 53, 60, 19, 196, 8, 3, 1, 134, 2, 53, 60, 19, - 196, 8, 5, 1, 255, 30, 2, 196, 8, 3, 1, 255, 30, 2, 196, 8, 5, 1, 255, - 104, 2, 108, 8, 3, 1, 255, 104, 2, 108, 8, 5, 1, 255, 104, 2, 239, 254, - 8, 3, 1, 255, 104, 2, 239, 254, 8, 5, 1, 255, 109, 2, 239, 254, 8, 3, 1, - 255, 109, 2, 239, 254, 8, 5, 1, 117, 2, 238, 71, 8, 3, 1, 117, 2, 238, - 71, 8, 5, 1, 117, 2, 240, 204, 19, 196, 8, 3, 1, 117, 2, 240, 204, 19, - 196, 8, 5, 1, 253, 244, 2, 239, 254, 8, 3, 1, 253, 244, 2, 239, 254, 8, - 3, 1, 255, 115, 2, 239, 254, 8, 5, 1, 254, 88, 8, 5, 1, 255, 103, 2, 3, - 1, 255, 17, 8, 3, 1, 254, 88, 8, 5, 1, 255, 104, 2, 135, 8, 3, 1, 255, - 104, 2, 135, 8, 5, 1, 240, 190, 8, 5, 1, 244, 54, 8, 5, 1, 255, 98, 2, - 191, 8, 3, 1, 255, 98, 2, 191, 8, 5, 1, 134, 2, 248, 51, 60, 19, 135, 8, - 3, 1, 134, 2, 248, 51, 60, 19, 135, 8, 5, 1, 255, 30, 2, 135, 8, 3, 1, - 255, 30, 2, 135, 8, 5, 1, 117, 2, 240, 5, 19, 135, 8, 3, 1, 117, 2, 240, - 5, 19, 135, 8, 5, 1, 134, 2, 45, 191, 8, 3, 1, 134, 2, 45, 191, 8, 5, 1, - 134, 2, 236, 145, 239, 255, 8, 3, 1, 134, 2, 236, 145, 239, 255, 8, 5, 1, - 157, 2, 45, 191, 8, 3, 1, 157, 2, 45, 191, 8, 5, 1, 157, 2, 236, 145, - 239, 255, 8, 3, 1, 157, 2, 236, 145, 239, 255, 8, 5, 1, 220, 2, 45, 191, - 8, 3, 1, 220, 2, 45, 191, 8, 5, 1, 220, 2, 236, 145, 239, 255, 8, 3, 1, - 220, 2, 236, 145, 239, 255, 8, 5, 1, 117, 2, 45, 191, 8, 3, 1, 117, 2, - 45, 191, 8, 5, 1, 117, 2, 236, 145, 239, 255, 8, 3, 1, 117, 2, 236, 145, - 239, 255, 8, 5, 1, 255, 101, 2, 45, 191, 8, 3, 1, 255, 101, 2, 45, 191, - 8, 5, 1, 255, 101, 2, 236, 145, 239, 255, 8, 3, 1, 255, 101, 2, 236, 145, - 239, 255, 8, 5, 1, 132, 2, 45, 191, 8, 3, 1, 132, 2, 45, 191, 8, 5, 1, - 132, 2, 236, 145, 239, 255, 8, 3, 1, 132, 2, 236, 145, 239, 255, 8, 5, 1, - 255, 99, 2, 242, 244, 46, 8, 3, 1, 255, 99, 2, 242, 244, 46, 8, 5, 1, - 255, 102, 2, 242, 244, 46, 8, 3, 1, 255, 102, 2, 242, 244, 46, 8, 5, 1, - 244, 59, 8, 3, 1, 244, 59, 8, 5, 1, 255, 106, 2, 239, 254, 8, 3, 1, 255, - 106, 2, 239, 254, 8, 5, 1, 255, 98, 2, 183, 38, 248, 117, 8, 3, 1, 255, - 103, 2, 242, 253, 8, 5, 1, 254, 10, 8, 3, 1, 254, 10, 8, 5, 1, 255, 97, - 2, 90, 8, 3, 1, 255, 97, 2, 90, 8, 5, 1, 134, 2, 53, 48, 8, 3, 1, 134, 2, - 53, 48, 8, 5, 1, 157, 2, 236, 151, 8, 3, 1, 157, 2, 236, 151, 8, 5, 1, - 117, 2, 235, 56, 19, 196, 8, 3, 1, 117, 2, 235, 56, 19, 196, 8, 5, 1, - 117, 2, 242, 219, 19, 196, 8, 3, 1, 117, 2, 242, 219, 19, 196, 8, 5, 1, - 117, 2, 53, 48, 8, 3, 1, 117, 2, 53, 48, 8, 5, 1, 117, 2, 53, 60, 19, - 196, 8, 3, 1, 117, 2, 53, 60, 19, 196, 8, 5, 1, 255, 107, 2, 196, 8, 3, - 1, 255, 107, 2, 196, 8, 3, 1, 255, 100, 2, 242, 253, 8, 3, 1, 255, 98, 2, - 242, 253, 8, 3, 1, 255, 102, 2, 242, 253, 8, 3, 1, 238, 70, 221, 8, 3, 1, - 255, 71, 236, 182, 8, 3, 1, 255, 89, 236, 182, 8, 5, 1, 134, 2, 108, 8, - 5, 1, 255, 105, 2, 108, 8, 3, 1, 255, 105, 2, 108, 8, 5, 1, 255, 100, 2, - 125, 8, 5, 1, 255, 102, 2, 236, 159, 108, 8, 3, 1, 255, 99, 2, 243, 126, - 242, 226, 8, 3, 1, 255, 97, 2, 243, 126, 242, 226, 8, 5, 1, 238, 62, 208, - 8, 3, 1, 205, 67, 8, 3, 1, 240, 22, 8, 3, 1, 205, 240, 22, 8, 3, 1, 41, - 2, 90, 8, 3, 1, 248, 35, 73, 8, 3, 1, 255, 105, 2, 242, 253, 8, 3, 1, - 255, 103, 2, 242, 226, 8, 3, 1, 255, 103, 2, 90, 8, 3, 1, 224, 72, 8, 3, - 1, 240, 86, 8, 3, 1, 243, 73, 2, 90, 8, 3, 1, 248, 35, 72, 8, 3, 1, 224, - 248, 35, 72, 8, 3, 1, 224, 248, 35, 157, 2, 90, 8, 3, 1, 240, 23, 224, - 248, 35, 72, 8, 3, 1, 238, 70, 255, 115, 2, 108, 8, 3, 1, 255, 104, 2, - 90, 8, 3, 1, 84, 210, 8, 1, 3, 5, 210, 8, 3, 1, 240, 10, 8, 3, 1, 252, - 129, 243, 8, 8, 3, 1, 205, 192, 8, 3, 1, 255, 106, 2, 90, 8, 3, 1, 251, - 52, 2, 90, 8, 3, 1, 220, 2, 108, 8, 3, 1, 242, 237, 8, 1, 3, 5, 71, 8, 3, - 1, 255, 100, 2, 240, 1, 169, 8, 3, 1, 255, 100, 2, 244, 216, 8, 3, 1, - 255, 100, 2, 235, 54, 90, 8, 3, 1, 246, 43, 8, 3, 1, 205, 173, 8, 3, 1, - 205, 255, 108, 2, 183, 248, 117, 8, 3, 1, 255, 108, 2, 90, 8, 3, 1, 255, - 98, 2, 40, 90, 8, 3, 1, 255, 98, 2, 235, 54, 90, 8, 1, 3, 5, 197, 8, 3, - 1, 240, 60, 73, 8, 1, 3, 5, 253, 193, 8, 3, 1, 240, 23, 240, 20, 8, 3, 1, - 248, 68, 8, 3, 1, 205, 144, 8, 3, 1, 205, 255, 101, 2, 183, 248, 117, 8, - 3, 1, 205, 255, 101, 2, 90, 8, 3, 1, 255, 101, 2, 183, 248, 117, 8, 3, 1, - 255, 101, 2, 242, 226, 8, 3, 1, 255, 101, 2, 235, 100, 8, 3, 1, 224, 255, - 101, 2, 235, 100, 8, 1, 3, 5, 144, 8, 1, 3, 5, 236, 145, 144, 8, 3, 1, - 255, 99, 2, 90, 8, 3, 1, 248, 93, 8, 3, 1, 238, 70, 255, 115, 2, 240, 5, - 19, 90, 8, 3, 1, 244, 23, 224, 248, 93, 8, 3, 1, 254, 38, 2, 242, 253, 8, - 3, 1, 205, 214, 8, 3, 1, 255, 102, 2, 235, 54, 90, 8, 3, 1, 132, 125, 8, - 3, 1, 236, 160, 8, 3, 1, 255, 110, 2, 90, 8, 3, 1, 205, 179, 8, 3, 1, - 205, 255, 16, 8, 3, 1, 205, 255, 14, 8, 1, 3, 5, 255, 14, 8, 3, 1, 255, - 97, 2, 235, 54, 90, 8, 3, 1, 255, 97, 2, 242, 253, 8, 3, 1, 248, 155, 8, - 3, 1, 253, 244, 2, 242, 253, 8, 1, 238, 62, 208, 8, 1, 234, 12, 240, 59, - 234, 192, 8, 1, 236, 145, 238, 62, 208, 8, 1, 236, 110, 255, 18, 8, 1, - 236, 249, 240, 93, 8, 1, 3, 5, 217, 8, 3, 1, 240, 23, 248, 35, 72, 8, 1, - 3, 5, 255, 104, 2, 90, 8, 1, 3, 5, 192, 8, 3, 1, 255, 115, 2, 231, 101, - 8, 3, 1, 205, 255, 15, 8, 1, 3, 5, 162, 8, 3, 1, 255, 116, 2, 90, 8, 1, - 238, 62, 248, 119, 2, 108, 8, 1, 224, 238, 62, 248, 119, 2, 108, 8, 3, 1, - 255, 40, 236, 182, 8, 3, 1, 250, 192, 236, 182, 8, 3, 1, 255, 40, 238, - 112, 2, 242, 253, 8, 3, 1, 255, 94, 236, 182, 8, 3, 1, 252, 215, 236, - 182, 8, 3, 1, 255, 92, 238, 112, 2, 242, 253, 8, 3, 1, 250, 239, 236, - 182, 8, 3, 1, 255, 78, 236, 182, 8, 3, 1, 255, 79, 236, 182, 8, 1, 236, - 249, 233, 95, 8, 1, 237, 77, 233, 95, 8, 3, 1, 205, 255, 106, 2, 235, - 100, 8, 3, 1, 205, 255, 106, 2, 237, 11, 19, 242, 226, 49, 1, 3, 192, 49, - 1, 3, 255, 106, 2, 90, 49, 1, 3, 221, 49, 1, 3, 144, 49, 1, 3, 205, 144, - 49, 1, 3, 205, 255, 101, 2, 90, 49, 1, 3, 5, 236, 145, 144, 49, 1, 3, - 255, 16, 49, 1, 3, 255, 14, 49, 1, 240, 57, 49, 1, 45, 240, 57, 49, 1, - 205, 240, 27, 49, 1, 233, 59, 49, 1, 224, 240, 27, 49, 1, 38, 137, 242, - 233, 49, 1, 40, 137, 242, 233, 49, 1, 238, 62, 208, 49, 1, 224, 238, 62, - 208, 49, 1, 40, 234, 7, 49, 1, 38, 234, 7, 49, 1, 88, 234, 7, 49, 1, 92, - 234, 7, 49, 1, 190, 238, 54, 239, 254, 49, 1, 59, 242, 224, 49, 1, 196, - 49, 1, 242, 241, 238, 54, 49, 1, 242, 245, 238, 54, 49, 1, 170, 59, 242, - 224, 49, 1, 170, 196, 49, 1, 170, 242, 245, 238, 54, 49, 1, 170, 242, - 241, 238, 54, 49, 1, 234, 43, 240, 24, 49, 1, 137, 234, 43, 240, 24, 49, - 1, 238, 130, 38, 137, 242, 233, 49, 1, 238, 130, 40, 137, 242, 233, 49, - 1, 88, 242, 234, 49, 1, 92, 242, 234, 49, 1, 248, 49, 52, 49, 1, 242, - 250, 52, 239, 255, 53, 48, 248, 51, 48, 238, 71, 3, 169, 45, 242, 241, - 238, 54, 49, 1, 242, 83, 90, 49, 1, 243, 38, 238, 54, 49, 1, 3, 240, 10, - 49, 1, 3, 162, 49, 1, 3, 193, 49, 1, 3, 206, 49, 1, 3, 224, 238, 62, 208, - 49, 1, 234, 27, 188, 125, 49, 1, 200, 188, 125, 49, 1, 254, 40, 188, 125, - 49, 1, 170, 188, 125, 49, 1, 235, 87, 188, 125, 49, 1, 254, 15, 235, 98, - 188, 69, 49, 1, 248, 122, 235, 98, 188, 69, 49, 1, 238, 44, 49, 1, 233, - 47, 49, 1, 45, 233, 59, 49, 1, 170, 92, 234, 7, 49, 1, 170, 88, 234, 7, - 49, 1, 170, 40, 234, 7, 49, 1, 170, 38, 234, 7, 49, 1, 170, 242, 233, 49, - 1, 240, 1, 242, 245, 238, 54, 49, 1, 240, 1, 45, 242, 245, 238, 54, 49, - 1, 240, 1, 45, 242, 241, 238, 54, 49, 1, 170, 169, 49, 1, 240, 84, 240, - 24, 49, 1, 243, 24, 200, 243, 78, 49, 1, 253, 165, 200, 243, 78, 49, 1, - 243, 24, 170, 243, 78, 49, 1, 253, 165, 170, 243, 78, 49, 1, 240, 226, - 49, 1, 248, 35, 240, 226, 49, 1, 170, 40, 56, 50, 242, 245, 238, 54, 50, - 242, 241, 238, 54, 50, 190, 238, 54, 50, 169, 50, 196, 50, 235, 74, 50, - 239, 255, 50, 53, 48, 50, 175, 50, 248, 45, 48, 50, 248, 51, 48, 50, 45, - 242, 241, 238, 54, 50, 239, 254, 50, 59, 248, 41, 48, 50, 45, 59, 248, - 41, 48, 50, 45, 242, 245, 238, 54, 50, 232, 77, 50, 236, 145, 239, 255, - 50, 205, 242, 244, 48, 50, 242, 244, 48, 50, 224, 242, 244, 48, 50, 242, - 244, 60, 225, 50, 242, 245, 240, 2, 46, 50, 242, 241, 240, 2, 46, 50, 40, - 248, 84, 46, 50, 38, 248, 84, 46, 50, 40, 185, 48, 50, 243, 8, 50, 40, - 137, 248, 51, 46, 50, 88, 248, 84, 46, 50, 92, 248, 84, 46, 50, 248, 49, - 21, 46, 50, 242, 250, 21, 46, 50, 233, 222, 248, 45, 46, 50, 235, 54, - 248, 45, 46, 50, 53, 46, 50, 235, 56, 46, 50, 248, 51, 46, 50, 242, 244, - 46, 50, 236, 151, 50, 238, 71, 50, 59, 248, 41, 46, 50, 240, 109, 46, 50, - 236, 145, 45, 249, 239, 46, 50, 243, 86, 46, 50, 190, 240, 2, 46, 50, - 242, 243, 46, 50, 236, 145, 242, 243, 46, 50, 242, 219, 46, 50, 240, 42, - 46, 50, 170, 242, 224, 50, 45, 170, 242, 224, 50, 242, 219, 236, 161, 50, - 242, 215, 240, 5, 236, 161, 50, 183, 240, 5, 236, 161, 50, 242, 215, 238, - 83, 236, 161, 50, 183, 238, 83, 236, 161, 50, 38, 137, 248, 51, 46, 50, - 236, 145, 240, 109, 46, 50, 31, 46, 50, 239, 184, 46, 50, 255, 113, 48, - 50, 59, 169, 50, 45, 235, 74, 50, 242, 245, 188, 69, 50, 242, 241, 188, - 69, 50, 17, 232, 71, 50, 17, 236, 229, 50, 17, 235, 59, 240, 16, 50, 17, - 231, 35, 50, 240, 109, 48, 50, 240, 7, 21, 46, 50, 45, 59, 248, 41, 46, - 50, 40, 185, 46, 50, 161, 242, 219, 48, 50, 234, 200, 48, 50, 240, 40, - 95, 153, 48, 50, 40, 38, 65, 46, 50, 226, 226, 65, 46, 50, 237, 166, 238, - 140, 50, 38, 235, 76, 48, 50, 40, 137, 248, 51, 48, 50, 237, 10, 50, 255, - 113, 46, 50, 40, 235, 76, 46, 50, 38, 235, 76, 46, 50, 38, 235, 76, 19, - 88, 235, 76, 46, 50, 38, 137, 248, 51, 48, 50, 53, 60, 225, 50, 236, 219, - 46, 50, 45, 248, 51, 46, 50, 240, 126, 48, 50, 45, 242, 243, 46, 50, 45, - 239, 255, 50, 45, 196, 50, 45, 240, 42, 46, 50, 45, 169, 50, 45, 236, - 145, 239, 255, 50, 45, 77, 65, 46, 50, 8, 3, 1, 67, 50, 8, 3, 1, 72, 50, - 8, 3, 1, 71, 50, 8, 3, 1, 73, 50, 8, 3, 1, 79, 50, 8, 3, 1, 255, 18, 50, - 8, 3, 1, 209, 50, 8, 3, 1, 192, 50, 8, 3, 1, 173, 50, 8, 3, 1, 144, 50, - 8, 3, 1, 214, 50, 8, 3, 1, 179, 50, 8, 3, 1, 206, 17, 178, 52, 17, 168, - 178, 52, 17, 231, 35, 17, 236, 156, 69, 17, 240, 16, 17, 235, 59, 240, - 16, 17, 5, 1, 194, 2, 240, 16, 17, 254, 140, 238, 223, 17, 5, 1, 238, 57, - 2, 240, 16, 17, 5, 1, 253, 123, 2, 240, 16, 17, 5, 1, 248, 42, 2, 240, - 16, 17, 5, 1, 238, 64, 2, 240, 16, 17, 5, 1, 238, 53, 2, 240, 16, 17, 5, - 1, 211, 2, 240, 16, 17, 3, 1, 248, 42, 2, 235, 59, 19, 240, 16, 17, 5, 1, - 240, 22, 17, 5, 1, 242, 242, 17, 5, 1, 240, 10, 17, 5, 1, 240, 28, 17, 5, - 1, 236, 165, 17, 5, 1, 242, 251, 17, 5, 1, 248, 87, 17, 5, 1, 240, 38, - 17, 5, 1, 242, 237, 17, 5, 1, 240, 41, 17, 5, 1, 240, 33, 17, 5, 1, 253, - 154, 17, 5, 1, 253, 150, 17, 5, 1, 253, 188, 17, 5, 1, 236, 169, 17, 5, - 1, 253, 147, 17, 5, 1, 248, 73, 17, 5, 1, 240, 21, 17, 5, 1, 248, 85, 17, - 5, 1, 236, 160, 17, 5, 1, 248, 68, 17, 5, 1, 248, 67, 17, 5, 1, 248, 69, - 17, 5, 1, 240, 20, 17, 5, 1, 248, 42, 2, 234, 26, 17, 5, 1, 238, 53, 2, - 234, 26, 17, 3, 1, 194, 2, 240, 16, 17, 3, 1, 238, 57, 2, 240, 16, 17, 3, - 1, 253, 123, 2, 240, 16, 17, 3, 1, 248, 42, 2, 240, 16, 17, 3, 1, 238, - 53, 2, 235, 59, 19, 240, 16, 17, 3, 1, 240, 22, 17, 3, 1, 242, 242, 17, - 3, 1, 240, 10, 17, 3, 1, 240, 28, 17, 3, 1, 236, 165, 17, 3, 1, 242, 251, - 17, 3, 1, 248, 87, 17, 3, 1, 240, 38, 17, 3, 1, 242, 237, 17, 3, 1, 240, - 41, 17, 3, 1, 240, 33, 17, 3, 1, 253, 154, 17, 3, 1, 253, 150, 17, 3, 1, - 253, 188, 17, 3, 1, 236, 169, 17, 3, 1, 253, 147, 17, 3, 1, 248, 73, 17, - 3, 1, 30, 240, 21, 17, 3, 1, 240, 21, 17, 3, 1, 248, 85, 17, 3, 1, 236, - 160, 17, 3, 1, 248, 68, 17, 3, 1, 248, 67, 17, 3, 1, 248, 69, 17, 3, 1, - 240, 20, 17, 3, 1, 248, 42, 2, 234, 26, 17, 3, 1, 238, 53, 2, 234, 26, - 17, 3, 1, 238, 64, 2, 240, 16, 17, 3, 1, 238, 53, 2, 240, 16, 17, 3, 1, - 211, 2, 240, 16, 17, 250, 118, 91, 17, 243, 0, 91, 17, 238, 53, 2, 248, - 45, 91, 17, 238, 53, 2, 242, 241, 19, 248, 45, 91, 17, 238, 53, 2, 235, - 56, 19, 248, 45, 91, 17, 254, 11, 91, 17, 255, 29, 91, 17, 254, 65, 91, - 17, 1, 238, 162, 240, 77, 17, 3, 1, 238, 162, 240, 77, 17, 1, 238, 152, - 17, 3, 1, 238, 152, 17, 1, 237, 6, 17, 3, 1, 237, 6, 17, 1, 240, 77, 17, - 3, 1, 240, 77, 17, 1, 240, 121, 17, 3, 1, 240, 121, 62, 5, 1, 243, 32, - 62, 3, 1, 243, 32, 62, 5, 1, 249, 62, 62, 3, 1, 249, 62, 62, 5, 1, 243, - 64, 62, 3, 1, 243, 64, 62, 5, 1, 243, 28, 62, 3, 1, 243, 28, 62, 5, 1, - 238, 115, 62, 3, 1, 238, 115, 62, 5, 1, 240, 88, 62, 3, 1, 240, 88, 62, - 5, 1, 249, 53, 62, 3, 1, 249, 53, 17, 243, 29, 91, 17, 253, 218, 91, 17, - 240, 67, 243, 45, 91, 17, 1, 249, 211, 17, 5, 243, 0, 91, 17, 240, 67, - 238, 57, 91, 17, 224, 240, 67, 238, 57, 91, 17, 5, 1, 248, 110, 17, 3, 1, - 248, 110, 17, 5, 240, 67, 243, 45, 91, 17, 5, 1, 248, 134, 17, 3, 1, 248, - 134, 17, 253, 218, 2, 240, 5, 91, 17, 5, 224, 240, 67, 243, 45, 91, 17, - 5, 240, 4, 240, 67, 243, 45, 91, 17, 5, 224, 240, 4, 240, 67, 243, 45, - 91, 32, 5, 1, 255, 42, 2, 191, 32, 5, 1, 254, 100, 32, 5, 1, 248, 150, - 32, 5, 1, 249, 77, 32, 5, 1, 235, 156, 253, 237, 32, 5, 1, 248, 126, 32, - 5, 1, 226, 228, 71, 32, 5, 1, 253, 189, 32, 5, 1, 254, 24, 32, 5, 1, 248, - 165, 32, 5, 1, 248, 174, 32, 5, 1, 244, 40, 32, 5, 1, 249, 96, 32, 5, 1, - 220, 2, 191, 32, 5, 1, 242, 215, 79, 32, 5, 1, 243, 166, 32, 5, 1, 67, - 32, 5, 1, 253, 242, 32, 5, 1, 254, 12, 32, 5, 1, 248, 127, 32, 5, 1, 253, - 200, 32, 5, 1, 253, 237, 32, 5, 1, 248, 123, 32, 5, 1, 253, 228, 32, 5, - 1, 71, 32, 5, 1, 242, 215, 71, 32, 5, 1, 201, 32, 5, 1, 254, 3, 32, 5, 1, - 254, 22, 32, 5, 1, 253, 202, 32, 5, 1, 73, 32, 5, 1, 253, 175, 32, 5, 1, - 254, 4, 32, 5, 1, 254, 23, 32, 5, 1, 253, 195, 32, 5, 1, 79, 32, 5, 1, - 254, 21, 32, 5, 1, 219, 32, 5, 1, 248, 112, 32, 5, 1, 248, 88, 32, 5, 1, - 248, 46, 32, 5, 1, 240, 224, 32, 5, 1, 249, 79, 52, 32, 5, 1, 243, 83, - 32, 5, 1, 248, 186, 52, 32, 5, 1, 72, 32, 5, 1, 253, 161, 32, 5, 1, 216, - 32, 3, 1, 67, 32, 3, 1, 253, 242, 32, 3, 1, 254, 12, 32, 3, 1, 248, 127, - 32, 3, 1, 253, 200, 32, 3, 1, 253, 237, 32, 3, 1, 248, 123, 32, 3, 1, - 253, 228, 32, 3, 1, 71, 32, 3, 1, 242, 215, 71, 32, 3, 1, 201, 32, 3, 1, - 254, 3, 32, 3, 1, 254, 22, 32, 3, 1, 253, 202, 32, 3, 1, 73, 32, 3, 1, - 253, 175, 32, 3, 1, 254, 4, 32, 3, 1, 254, 23, 32, 3, 1, 253, 195, 32, 3, - 1, 79, 32, 3, 1, 254, 21, 32, 3, 1, 219, 32, 3, 1, 248, 112, 32, 3, 1, - 248, 88, 32, 3, 1, 248, 46, 32, 3, 1, 240, 224, 32, 3, 1, 249, 79, 52, - 32, 3, 1, 243, 83, 32, 3, 1, 248, 186, 52, 32, 3, 1, 72, 32, 3, 1, 253, - 161, 32, 3, 1, 216, 32, 3, 1, 255, 42, 2, 191, 32, 3, 1, 254, 100, 32, 3, - 1, 248, 150, 32, 3, 1, 249, 77, 32, 3, 1, 235, 156, 253, 237, 32, 3, 1, - 248, 126, 32, 3, 1, 226, 228, 71, 32, 3, 1, 253, 189, 32, 3, 1, 254, 24, - 32, 3, 1, 248, 165, 32, 3, 1, 248, 174, 32, 3, 1, 244, 40, 32, 3, 1, 249, - 96, 32, 3, 1, 220, 2, 191, 32, 3, 1, 242, 215, 79, 32, 3, 1, 243, 166, - 32, 5, 1, 240, 20, 32, 3, 1, 240, 20, 32, 5, 1, 249, 21, 32, 3, 1, 249, - 21, 32, 5, 1, 236, 197, 72, 32, 3, 1, 236, 197, 72, 32, 5, 1, 240, 101, - 248, 74, 32, 3, 1, 240, 101, 248, 74, 32, 5, 1, 236, 197, 240, 101, 248, - 74, 32, 3, 1, 236, 197, 240, 101, 248, 74, 32, 5, 1, 253, 213, 248, 74, - 32, 3, 1, 253, 213, 248, 74, 32, 5, 1, 236, 197, 253, 213, 248, 74, 32, - 3, 1, 236, 197, 253, 213, 248, 74, 32, 5, 1, 248, 163, 32, 3, 1, 248, - 163, 32, 5, 1, 248, 69, 32, 3, 1, 248, 69, 32, 5, 1, 243, 57, 32, 3, 1, - 243, 57, 32, 5, 1, 236, 215, 32, 3, 1, 236, 215, 32, 5, 1, 238, 192, 2, - 45, 242, 245, 238, 54, 32, 3, 1, 238, 192, 2, 45, 242, 245, 238, 54, 32, - 5, 1, 254, 130, 32, 3, 1, 254, 130, 32, 5, 1, 244, 1, 240, 20, 32, 3, 1, - 244, 1, 240, 20, 32, 5, 1, 211, 2, 240, 150, 32, 3, 1, 211, 2, 240, 150, - 32, 5, 1, 254, 67, 32, 3, 1, 254, 67, 32, 5, 1, 240, 77, 32, 3, 1, 240, - 77, 32, 235, 114, 52, 50, 32, 240, 150, 50, 32, 231, 27, 50, 32, 148, - 235, 135, 50, 32, 159, 235, 135, 50, 32, 238, 92, 235, 114, 52, 50, 32, - 237, 211, 52, 32, 5, 1, 242, 215, 220, 2, 242, 226, 32, 3, 1, 242, 215, - 220, 2, 242, 226, 32, 5, 1, 237, 36, 52, 32, 3, 1, 237, 36, 52, 32, 5, 1, - 255, 54, 2, 243, 36, 32, 3, 1, 255, 54, 2, 243, 36, 32, 5, 1, 253, 233, - 2, 238, 231, 32, 3, 1, 253, 233, 2, 238, 231, 32, 5, 1, 253, 233, 2, 108, - 32, 3, 1, 253, 233, 2, 108, 32, 5, 1, 253, 233, 2, 240, 1, 90, 32, 3, 1, - 253, 233, 2, 240, 1, 90, 32, 5, 1, 254, 16, 2, 234, 2, 32, 3, 1, 254, 16, - 2, 234, 2, 32, 5, 1, 255, 46, 2, 234, 2, 32, 3, 1, 255, 46, 2, 234, 2, - 32, 5, 1, 255, 26, 2, 234, 2, 32, 3, 1, 255, 26, 2, 234, 2, 32, 5, 1, - 255, 26, 2, 59, 108, 32, 3, 1, 255, 26, 2, 59, 108, 32, 5, 1, 255, 26, 2, - 108, 32, 3, 1, 255, 26, 2, 108, 32, 5, 1, 238, 165, 201, 32, 3, 1, 238, - 165, 201, 32, 5, 1, 255, 23, 2, 234, 2, 32, 3, 1, 255, 23, 2, 234, 2, 32, - 5, 18, 255, 23, 248, 127, 32, 3, 18, 255, 23, 248, 127, 32, 5, 1, 255, - 38, 2, 240, 1, 90, 32, 3, 1, 255, 38, 2, 240, 1, 90, 32, 5, 1, 235, 66, - 219, 32, 3, 1, 235, 66, 219, 32, 5, 1, 255, 55, 2, 234, 2, 32, 3, 1, 255, - 55, 2, 234, 2, 32, 5, 1, 255, 45, 2, 234, 2, 32, 3, 1, 255, 45, 2, 234, - 2, 32, 5, 1, 236, 218, 79, 32, 3, 1, 236, 218, 79, 32, 5, 1, 236, 218, - 132, 2, 108, 32, 3, 1, 236, 218, 132, 2, 108, 32, 5, 1, 255, 58, 2, 234, - 2, 32, 3, 1, 255, 58, 2, 234, 2, 32, 5, 18, 255, 45, 248, 112, 32, 3, 18, - 255, 45, 248, 112, 32, 5, 1, 253, 223, 2, 234, 2, 32, 3, 1, 253, 223, 2, - 234, 2, 32, 5, 1, 253, 223, 2, 59, 108, 32, 3, 1, 253, 223, 2, 59, 108, - 32, 5, 1, 244, 10, 32, 3, 1, 244, 10, 32, 5, 1, 235, 66, 248, 88, 32, 3, - 1, 235, 66, 248, 88, 32, 5, 1, 235, 66, 253, 223, 2, 234, 2, 32, 3, 1, - 235, 66, 253, 223, 2, 234, 2, 32, 1, 236, 69, 32, 5, 1, 254, 16, 2, 239, - 255, 32, 3, 1, 254, 16, 2, 239, 255, 32, 5, 1, 255, 26, 2, 90, 32, 3, 1, - 255, 26, 2, 90, 32, 5, 1, 255, 49, 2, 242, 226, 32, 3, 1, 255, 49, 2, - 242, 226, 32, 5, 1, 255, 23, 2, 90, 32, 3, 1, 255, 23, 2, 90, 32, 5, 1, - 255, 23, 2, 242, 226, 32, 3, 1, 255, 23, 2, 242, 226, 32, 5, 1, 234, 59, - 248, 88, 32, 3, 1, 234, 59, 248, 88, 32, 5, 1, 255, 28, 2, 242, 226, 32, - 3, 1, 255, 28, 2, 242, 226, 32, 5, 1, 134, 2, 239, 255, 32, 3, 1, 134, 2, - 239, 255, 32, 5, 1, 134, 2, 175, 32, 3, 1, 134, 2, 175, 32, 5, 18, 134, - 253, 237, 32, 3, 18, 134, 253, 237, 32, 5, 1, 255, 42, 2, 239, 255, 32, - 3, 1, 255, 42, 2, 239, 255, 32, 5, 1, 240, 86, 32, 3, 1, 240, 86, 32, 5, - 1, 243, 73, 2, 175, 32, 3, 1, 243, 73, 2, 175, 32, 5, 1, 254, 16, 2, 175, - 32, 3, 1, 254, 16, 2, 175, 32, 5, 1, 255, 46, 2, 175, 32, 3, 1, 255, 46, - 2, 175, 32, 5, 1, 235, 66, 248, 126, 32, 3, 1, 235, 66, 248, 126, 32, 5, - 1, 220, 2, 196, 32, 3, 1, 220, 2, 196, 32, 5, 1, 220, 2, 175, 32, 3, 1, - 220, 2, 175, 32, 5, 1, 117, 2, 175, 32, 3, 1, 117, 2, 175, 32, 5, 1, 240, - 60, 73, 32, 3, 1, 240, 60, 73, 32, 5, 1, 240, 60, 117, 2, 175, 32, 3, 1, - 240, 60, 117, 2, 175, 32, 5, 1, 157, 2, 175, 32, 3, 1, 157, 2, 175, 32, - 5, 1, 132, 2, 196, 32, 3, 1, 132, 2, 196, 32, 5, 1, 132, 2, 175, 32, 3, - 1, 132, 2, 175, 32, 5, 1, 132, 2, 45, 135, 32, 3, 1, 132, 2, 45, 135, 32, - 5, 1, 253, 223, 2, 175, 32, 3, 1, 253, 223, 2, 175, 32, 5, 1, 253, 233, - 2, 234, 2, 32, 3, 1, 253, 233, 2, 234, 2, 32, 5, 1, 249, 207, 2, 175, 32, - 3, 1, 249, 207, 2, 175, 32, 5, 1, 248, 72, 253, 200, 32, 3, 1, 248, 72, - 253, 200, 32, 5, 1, 248, 72, 248, 150, 32, 3, 1, 248, 72, 248, 150, 32, - 5, 1, 248, 72, 249, 220, 32, 3, 1, 248, 72, 249, 220, 32, 5, 1, 248, 72, - 243, 167, 32, 3, 1, 248, 72, 243, 167, 32, 5, 1, 248, 72, 248, 165, 32, - 3, 1, 248, 72, 248, 165, 32, 5, 1, 248, 72, 248, 174, 32, 3, 1, 248, 72, - 248, 174, 32, 5, 1, 248, 72, 249, 165, 32, 3, 1, 248, 72, 249, 165, 32, - 5, 1, 248, 72, 249, 178, 32, 3, 1, 248, 72, 249, 178, 100, 5, 1, 249, 28, - 100, 5, 1, 249, 32, 100, 5, 1, 249, 76, 100, 5, 1, 253, 133, 100, 5, 1, - 248, 208, 100, 5, 1, 253, 163, 100, 5, 1, 254, 36, 100, 5, 1, 254, 60, - 100, 5, 1, 87, 100, 5, 1, 248, 123, 100, 5, 1, 248, 216, 100, 5, 1, 243, - 216, 100, 5, 1, 249, 17, 100, 5, 1, 253, 152, 100, 5, 1, 249, 93, 100, 5, - 1, 253, 184, 100, 5, 1, 253, 146, 100, 5, 1, 243, 182, 100, 5, 1, 243, - 155, 100, 5, 1, 248, 228, 100, 5, 1, 253, 189, 100, 5, 1, 248, 175, 100, - 5, 1, 248, 46, 100, 5, 1, 254, 13, 100, 5, 1, 248, 57, 100, 5, 1, 248, - 237, 100, 5, 1, 243, 201, 100, 5, 1, 253, 130, 100, 5, 1, 249, 159, 100, - 5, 1, 249, 195, 100, 5, 1, 244, 32, 100, 5, 1, 248, 245, 100, 5, 1, 253, - 224, 100, 5, 1, 243, 136, 100, 5, 1, 243, 244, 100, 5, 1, 248, 218, 100, - 5, 1, 254, 118, 100, 5, 1, 248, 156, 100, 49, 1, 40, 137, 242, 233, 100, - 233, 59, 100, 237, 8, 69, 100, 233, 54, 69, 100, 240, 27, 100, 236, 156, - 69, 100, 232, 88, 69, 100, 3, 1, 249, 28, 100, 3, 1, 249, 32, 100, 3, 1, - 249, 76, 100, 3, 1, 253, 133, 100, 3, 1, 248, 208, 100, 3, 1, 253, 163, - 100, 3, 1, 254, 36, 100, 3, 1, 254, 60, 100, 3, 1, 87, 100, 3, 1, 248, - 123, 100, 3, 1, 248, 216, 100, 3, 1, 243, 216, 100, 3, 1, 249, 17, 100, - 3, 1, 253, 152, 100, 3, 1, 249, 93, 100, 3, 1, 253, 184, 100, 3, 1, 253, - 146, 100, 3, 1, 243, 182, 100, 3, 1, 243, 155, 100, 3, 1, 248, 228, 100, - 3, 1, 253, 189, 100, 3, 1, 248, 175, 100, 3, 1, 248, 46, 100, 3, 1, 254, - 13, 100, 3, 1, 248, 57, 100, 3, 1, 248, 237, 100, 3, 1, 243, 201, 100, 3, - 1, 253, 130, 100, 3, 1, 249, 159, 100, 3, 1, 249, 195, 100, 3, 1, 244, - 32, 100, 3, 1, 248, 245, 100, 3, 1, 253, 224, 100, 3, 1, 243, 136, 100, - 3, 1, 243, 244, 100, 3, 1, 248, 218, 100, 3, 1, 254, 118, 100, 3, 1, 248, - 156, 100, 3, 18, 254, 159, 243, 136, 100, 248, 37, 208, 100, 238, 93, 68, - 240, 2, 237, 152, 68, 240, 2, 240, 145, 68, 240, 2, 233, 242, 68, 240, 2, - 244, 64, 240, 212, 68, 240, 2, 244, 64, 241, 120, 68, 240, 2, 239, 222, - 68, 240, 2, 242, 81, 68, 240, 2, 242, 200, 68, 240, 2, 239, 158, 68, 240, - 2, 242, 197, 68, 240, 2, 242, 145, 68, 240, 2, 238, 186, 68, 240, 2, 241, - 126, 239, 141, 68, 240, 2, 234, 56, 68, 240, 2, 242, 71, 246, 238, 68, - 240, 2, 238, 224, 239, 80, 68, 240, 2, 242, 50, 68, 240, 2, 244, 85, 239, - 88, 68, 240, 2, 241, 250, 68, 240, 2, 236, 54, 68, 240, 2, 239, 134, 68, - 240, 2, 241, 235, 239, 106, 68, 240, 2, 241, 73, 68, 240, 2, 242, 69, 68, - 240, 2, 238, 224, 239, 171, 68, 240, 2, 247, 225, 254, 145, 247, 232, 68, - 240, 2, 252, 58, 68, 240, 2, 245, 226, 68, 240, 2, 245, 61, 68, 240, 2, - 242, 208, 68, 158, 241, 230, 238, 51, 68, 242, 232, 242, 105, 68, 242, - 232, 243, 98, 240, 145, 68, 242, 232, 243, 98, 240, 118, 68, 242, 232, - 243, 98, 238, 149, 68, 242, 232, 240, 187, 68, 242, 232, 242, 159, 68, - 242, 232, 240, 145, 68, 242, 232, 240, 118, 68, 242, 232, 238, 149, 68, - 242, 232, 240, 188, 68, 242, 232, 239, 172, 68, 242, 232, 240, 133, 128, - 240, 140, 68, 242, 232, 241, 236, 68, 233, 51, 241, 228, 68, 242, 232, - 243, 70, 68, 233, 51, 242, 47, 68, 242, 232, 248, 102, 248, 40, 68, 242, - 232, 254, 73, 248, 40, 68, 233, 51, 254, 240, 242, 48, 68, 158, 189, 248, - 40, 68, 158, 168, 248, 40, 68, 233, 51, 254, 114, 237, 167, 68, 242, 232, - 242, 70, 240, 212, 68, 1, 243, 3, 68, 1, 250, 117, 68, 1, 241, 136, 68, - 1, 240, 165, 68, 1, 253, 168, 68, 1, 249, 192, 68, 1, 242, 201, 68, 1, - 251, 54, 68, 1, 249, 176, 68, 1, 248, 193, 68, 1, 30, 248, 116, 68, 1, - 248, 116, 68, 1, 240, 139, 68, 1, 30, 248, 166, 68, 1, 248, 166, 68, 1, - 30, 248, 132, 68, 1, 248, 132, 68, 1, 239, 178, 68, 1, 243, 144, 68, 1, - 30, 253, 175, 68, 1, 253, 175, 68, 1, 30, 240, 248, 68, 1, 240, 248, 68, - 1, 252, 99, 68, 1, 243, 253, 68, 1, 243, 33, 68, 1, 249, 175, 68, 18, - 238, 126, 45, 249, 192, 68, 18, 238, 126, 254, 76, 248, 193, 68, 18, 238, - 126, 45, 248, 193, 68, 233, 51, 238, 186, 68, 233, 51, 234, 56, 11, 61, - 52, 11, 21, 242, 97, 11, 237, 159, 238, 95, 11, 21, 242, 93, 238, 237, - 52, 11, 240, 27, 11, 250, 186, 234, 6, 11, 242, 63, 244, 46, 52, 11, 21, - 241, 245, 11, 21, 233, 100, 240, 107, 235, 40, 11, 21, 240, 107, 235, - 173, 11, 21, 233, 228, 238, 242, 11, 21, 252, 127, 238, 244, 244, 80, 11, - 21, 235, 31, 11, 3, 200, 248, 137, 11, 234, 14, 11, 240, 3, 53, 233, 51, - 69, 11, 236, 156, 69, 11, 1, 240, 186, 11, 1, 83, 2, 243, 42, 48, 11, 1, - 83, 2, 143, 48, 11, 1, 253, 220, 2, 143, 48, 11, 1, 83, 2, 143, 46, 11, - 1, 57, 2, 143, 48, 11, 1, 243, 3, 11, 1, 249, 31, 11, 1, 253, 127, 237, - 200, 11, 1, 252, 213, 11, 1, 247, 142, 11, 1, 243, 200, 11, 1, 251, 45, - 11, 1, 243, 205, 11, 1, 250, 180, 11, 1, 247, 141, 11, 1, 248, 245, 11, - 1, 244, 63, 11, 1, 243, 120, 11, 1, 242, 103, 11, 1, 252, 165, 11, 1, - 250, 178, 11, 1, 248, 137, 11, 1, 253, 97, 11, 1, 248, 105, 11, 1, 240, - 180, 11, 238, 22, 11, 1, 248, 156, 11, 1, 249, 145, 11, 1, 248, 116, 11, - 1, 251, 182, 11, 1, 243, 223, 11, 1, 243, 236, 11, 1, 251, 50, 11, 1, - 248, 142, 11, 1, 83, 236, 232, 11, 1, 248, 144, 11, 236, 18, 11, 235, - 197, 11, 236, 43, 11, 241, 103, 11, 240, 134, 11, 241, 193, 11, 239, 191, - 11, 240, 240, 11, 241, 223, 48, 11, 143, 48, 11, 143, 46, 11, 235, 48, - 243, 3, 11, 236, 145, 240, 134, 11, 158, 198, 238, 187, 11, 236, 144, 11, - 33, 21, 3, 255, 110, 48, 11, 33, 21, 236, 145, 3, 255, 110, 48, 11, 33, - 21, 53, 46, 11, 224, 240, 134, 11, 243, 40, 2, 171, 243, 5, 232, 73, 26, - 242, 217, 232, 73, 26, 127, 232, 73, 26, 111, 232, 73, 26, 166, 232, 73, - 26, 177, 232, 73, 26, 176, 232, 73, 26, 187, 232, 73, 26, 203, 232, 73, - 26, 195, 232, 73, 26, 202, 11, 238, 107, 52, 11, 238, 176, 234, 6, 11, - 235, 114, 234, 6, 11, 248, 48, 238, 74, 242, 229, 11, 1, 238, 70, 249, - 31, 11, 1, 238, 70, 249, 145, 11, 1, 233, 49, 243, 3, 11, 1, 83, 242, - 182, 11, 1, 83, 2, 248, 103, 143, 48, 11, 1, 83, 2, 248, 103, 143, 46, - 11, 1, 200, 240, 186, 11, 1, 200, 143, 243, 3, 11, 1, 200, 143, 248, 142, - 11, 1, 132, 2, 143, 48, 11, 1, 200, 143, 248, 144, 11, 1, 247, 165, 11, - 1, 239, 231, 11, 1, 244, 214, 11, 1, 253, 127, 2, 242, 233, 11, 1, 253, - 127, 2, 204, 181, 60, 234, 9, 11, 1, 248, 237, 11, 1, 242, 143, 11, 1, - 241, 28, 11, 1, 94, 2, 143, 48, 11, 1, 94, 2, 171, 181, 59, 48, 11, 1, - 246, 201, 11, 1, 245, 77, 11, 1, 94, 2, 204, 181, 48, 11, 1, 242, 142, - 11, 1, 238, 23, 11, 1, 245, 37, 11, 1, 253, 199, 2, 242, 233, 11, 1, 253, - 199, 2, 53, 46, 11, 1, 253, 199, 2, 53, 242, 230, 19, 3, 248, 137, 11, 1, - 241, 71, 11, 1, 239, 38, 11, 1, 250, 208, 11, 1, 253, 199, 2, 204, 181, - 60, 234, 9, 11, 1, 253, 199, 2, 248, 58, 181, 48, 11, 1, 247, 36, 11, 1, - 253, 143, 2, 3, 179, 11, 1, 253, 143, 2, 242, 233, 11, 1, 253, 143, 2, - 53, 46, 11, 1, 253, 143, 2, 3, 255, 110, 46, 11, 1, 253, 143, 2, 53, 242, - 230, 19, 53, 48, 11, 1, 253, 143, 2, 171, 181, 48, 11, 1, 251, 112, 11, - 1, 253, 143, 2, 248, 58, 181, 48, 11, 1, 248, 39, 2, 53, 242, 230, 19, - 53, 48, 11, 1, 248, 39, 2, 204, 181, 46, 11, 1, 248, 39, 2, 204, 181, - 242, 230, 19, 204, 181, 48, 11, 1, 253, 157, 2, 171, 181, 46, 11, 1, 253, - 157, 2, 204, 181, 48, 11, 1, 253, 169, 2, 204, 181, 48, 11, 1, 253, 158, - 2, 204, 181, 48, 11, 1, 238, 70, 248, 156, 11, 1, 253, 153, 2, 53, 246, - 92, 46, 11, 1, 253, 153, 2, 53, 46, 11, 1, 253, 10, 11, 1, 253, 153, 2, - 204, 181, 46, 11, 1, 242, 53, 11, 1, 253, 167, 2, 53, 48, 11, 1, 253, - 167, 2, 204, 181, 48, 11, 1, 241, 197, 11, 1, 243, 126, 248, 116, 11, 1, - 253, 135, 2, 242, 233, 11, 1, 253, 135, 2, 53, 48, 11, 1, 254, 26, 11, 1, - 253, 135, 2, 204, 181, 46, 11, 1, 251, 5, 11, 1, 253, 246, 2, 242, 233, - 11, 1, 242, 8, 11, 1, 253, 246, 2, 171, 181, 46, 11, 1, 245, 129, 11, 1, - 253, 246, 2, 204, 181, 48, 11, 1, 182, 2, 3, 179, 11, 1, 182, 2, 53, 48, - 11, 1, 182, 2, 204, 181, 48, 11, 1, 182, 2, 204, 181, 46, 11, 1, 198, 2, - 53, 46, 11, 1, 198, 238, 187, 11, 1, 242, 85, 11, 1, 198, 2, 242, 233, - 11, 1, 198, 2, 204, 181, 48, 11, 1, 253, 124, 232, 133, 11, 1, 243, 47, - 2, 53, 48, 11, 1, 253, 124, 2, 57, 48, 11, 1, 253, 124, 243, 185, 11, 1, - 253, 124, 248, 128, 2, 143, 48, 11, 1, 253, 127, 238, 144, 243, 185, 11, - 1, 253, 220, 2, 242, 233, 11, 1, 238, 73, 253, 193, 11, 1, 253, 193, 11, - 1, 79, 11, 1, 253, 161, 11, 1, 238, 73, 253, 161, 11, 1, 253, 220, 2, - 171, 181, 48, 11, 1, 254, 12, 11, 1, 243, 26, 248, 144, 11, 1, 57, 2, - 242, 226, 11, 1, 57, 2, 3, 179, 11, 1, 253, 220, 2, 53, 48, 11, 1, 72, - 11, 1, 57, 2, 204, 181, 46, 11, 1, 57, 239, 5, 11, 1, 57, 240, 92, 2, - 143, 48, 11, 248, 37, 208, 11, 1, 253, 178, 11, 3, 200, 18, 253, 157, 2, - 182, 2, 83, 236, 232, 11, 3, 200, 18, 253, 167, 2, 182, 2, 83, 236, 232, - 11, 3, 200, 51, 54, 13, 11, 3, 200, 182, 243, 3, 11, 3, 200, 243, 200, - 11, 3, 200, 204, 243, 5, 11, 3, 200, 243, 120, 11, 253, 165, 147, 244, - 87, 11, 243, 124, 147, 254, 237, 255, 49, 245, 147, 11, 3, 200, 238, 121, - 242, 217, 11, 3, 200, 239, 234, 233, 97, 242, 217, 11, 3, 200, 238, 70, - 251, 49, 147, 243, 205, 11, 3, 200, 51, 39, 13, 11, 3, 170, 243, 120, 11, - 3, 200, 241, 222, 11, 3, 248, 142, 11, 3, 248, 144, 11, 3, 200, 248, 144, - 11, 3, 200, 243, 236, 11, 243, 245, 147, 239, 177, 11, 243, 15, 240, 46, - 170, 208, 11, 243, 15, 240, 46, 200, 208, 11, 238, 121, 200, 248, 119, 2, - 241, 109, 238, 129, 11, 3, 170, 243, 223, 11, 1, 253, 199, 2, 236, 145, - 179, 11, 1, 253, 143, 2, 236, 145, 179, 236, 174, 232, 73, 26, 242, 217, - 236, 174, 232, 73, 26, 127, 236, 174, 232, 73, 26, 111, 236, 174, 232, - 73, 26, 166, 236, 174, 232, 73, 26, 177, 236, 174, 232, 73, 26, 176, 236, - 174, 232, 73, 26, 187, 236, 174, 232, 73, 26, 203, 236, 174, 232, 73, 26, - 195, 236, 174, 232, 73, 26, 202, 11, 1, 242, 216, 2, 53, 46, 11, 1, 253, - 155, 2, 53, 46, 11, 1, 242, 240, 2, 53, 46, 11, 21, 240, 233, 234, 17, - 11, 21, 240, 233, 232, 197, 248, 228, 11, 1, 253, 124, 2, 236, 145, 179, - 129, 253, 165, 147, 234, 232, 129, 233, 80, 248, 37, 208, 129, 235, 110, - 248, 37, 208, 129, 233, 80, 240, 24, 129, 235, 110, 240, 24, 129, 163, - 240, 24, 129, 243, 14, 240, 122, 242, 220, 129, 243, 14, 240, 122, 225, - 129, 233, 80, 243, 14, 240, 122, 242, 220, 129, 235, 110, 243, 14, 240, - 122, 225, 129, 232, 121, 129, 236, 227, 239, 150, 129, 236, 227, 234, - 222, 129, 236, 227, 233, 117, 129, 232, 88, 69, 129, 1, 240, 155, 129, 1, - 233, 49, 240, 155, 129, 1, 244, 219, 129, 1, 241, 121, 129, 1, 245, 96, - 235, 123, 129, 1, 239, 35, 129, 1, 238, 70, 241, 72, 243, 255, 129, 1, - 253, 168, 129, 1, 248, 142, 129, 1, 244, 63, 129, 1, 245, 142, 129, 1, - 247, 140, 129, 1, 252, 216, 235, 123, 129, 1, 247, 238, 129, 1, 253, 87, - 253, 168, 129, 1, 246, 5, 129, 1, 239, 113, 129, 1, 251, 235, 129, 1, - 248, 132, 129, 1, 237, 37, 129, 1, 30, 237, 37, 129, 1, 72, 129, 1, 253, - 175, 129, 1, 224, 253, 175, 129, 1, 242, 92, 129, 1, 247, 6, 129, 1, 243, - 255, 129, 1, 243, 33, 129, 1, 252, 211, 129, 1, 184, 241, 30, 129, 1, - 184, 239, 84, 129, 1, 184, 237, 104, 129, 240, 143, 48, 129, 240, 143, - 46, 129, 240, 143, 238, 136, 129, 240, 154, 48, 129, 240, 154, 46, 129, - 240, 154, 238, 136, 129, 243, 252, 48, 129, 243, 252, 46, 129, 240, 4, - 244, 66, 233, 50, 129, 240, 4, 244, 66, 237, 61, 129, 243, 192, 48, 129, - 243, 192, 46, 129, 233, 205, 238, 136, 129, 243, 170, 48, 129, 243, 170, - 46, 129, 242, 91, 129, 237, 9, 248, 40, 129, 234, 244, 129, 236, 94, 129, - 171, 59, 181, 48, 129, 171, 59, 181, 46, 129, 204, 181, 48, 129, 204, - 181, 46, 129, 238, 106, 248, 41, 48, 129, 238, 106, 248, 41, 46, 129, - 241, 251, 129, 237, 71, 129, 1, 238, 151, 242, 202, 129, 1, 238, 151, - 241, 201, 129, 1, 238, 151, 254, 62, 11, 1, 253, 136, 2, 204, 181, 232, - 173, 46, 11, 1, 253, 136, 2, 53, 242, 230, 19, 204, 181, 48, 11, 1, 253, - 136, 2, 204, 181, 236, 150, 226, 226, 46, 11, 1, 253, 136, 2, 204, 181, - 236, 150, 226, 226, 242, 230, 19, 171, 181, 48, 11, 1, 253, 136, 2, 171, - 181, 242, 230, 19, 53, 48, 11, 1, 253, 136, 2, 236, 145, 3, 255, 110, 46, - 11, 1, 253, 136, 2, 3, 179, 11, 1, 94, 2, 171, 181, 48, 11, 1, 94, 2, - 204, 181, 236, 150, 226, 226, 46, 11, 1, 253, 199, 2, 171, 181, 234, 33, - 242, 230, 19, 3, 248, 137, 11, 1, 253, 199, 2, 236, 145, 3, 255, 110, 46, - 11, 1, 253, 143, 2, 108, 11, 1, 248, 39, 2, 248, 58, 181, 48, 11, 1, 253, - 158, 2, 171, 181, 48, 11, 1, 253, 158, 2, 204, 181, 236, 150, 235, 45, - 48, 11, 1, 253, 158, 2, 171, 181, 234, 33, 48, 11, 1, 253, 153, 2, 171, - 181, 46, 11, 1, 253, 153, 2, 204, 181, 236, 150, 226, 226, 46, 11, 1, - 243, 21, 2, 53, 48, 11, 1, 243, 21, 2, 204, 181, 48, 11, 1, 243, 21, 2, - 204, 181, 236, 150, 226, 226, 46, 11, 1, 51, 2, 53, 48, 11, 1, 51, 2, 53, - 46, 11, 1, 198, 2, 171, 181, 46, 11, 1, 198, 2, 3, 248, 137, 11, 1, 198, - 2, 3, 179, 11, 1, 182, 2, 125, 11, 1, 253, 143, 2, 171, 181, 234, 33, 48, - 11, 1, 253, 143, 2, 143, 48, 11, 1, 248, 39, 2, 171, 181, 234, 33, 48, - 199, 1, 248, 114, 199, 1, 234, 254, 199, 1, 242, 22, 199, 1, 248, 182, - 199, 1, 249, 30, 199, 1, 234, 218, 199, 1, 241, 191, 199, 1, 241, 8, 199, - 1, 242, 173, 199, 1, 241, 231, 199, 1, 241, 101, 199, 1, 239, 41, 199, 1, - 243, 76, 199, 1, 241, 210, 199, 1, 241, 119, 199, 1, 234, 195, 199, 1, - 242, 99, 199, 1, 235, 199, 199, 1, 236, 143, 199, 1, 236, 127, 199, 1, - 248, 191, 199, 1, 236, 72, 199, 1, 236, 42, 199, 1, 234, 100, 199, 1, - 247, 163, 199, 1, 243, 194, 199, 1, 246, 8, 199, 1, 239, 217, 199, 1, - 249, 216, 199, 1, 239, 193, 199, 1, 239, 176, 199, 1, 239, 34, 199, 1, - 87, 199, 1, 253, 222, 199, 1, 244, 74, 199, 1, 239, 83, 199, 1, 242, 68, - 199, 1, 242, 181, 199, 237, 54, 199, 234, 88, 199, 237, 176, 199, 234, - 183, 199, 238, 37, 199, 234, 229, 199, 237, 145, 199, 234, 189, 199, 237, - 223, 199, 234, 228, 199, 240, 240, 199, 1, 248, 231, 85, 21, 232, 77, 85, - 21, 235, 61, 85, 21, 236, 173, 85, 1, 242, 215, 67, 85, 1, 67, 85, 1, - 253, 140, 85, 1, 71, 85, 1, 253, 142, 85, 1, 79, 85, 1, 253, 148, 85, 1, - 165, 144, 85, 1, 165, 162, 85, 1, 240, 61, 72, 85, 1, 242, 215, 72, 85, - 1, 72, 85, 1, 253, 149, 85, 1, 240, 61, 73, 85, 1, 242, 215, 73, 85, 1, - 73, 85, 1, 253, 151, 85, 1, 201, 85, 1, 248, 61, 85, 1, 253, 139, 85, 1, - 248, 77, 85, 1, 248, 50, 85, 1, 253, 152, 85, 1, 248, 57, 85, 1, 253, - 146, 85, 1, 248, 89, 85, 1, 248, 78, 85, 1, 248, 71, 85, 1, 242, 247, 85, - 1, 248, 75, 85, 1, 242, 249, 85, 1, 248, 82, 85, 1, 253, 126, 85, 1, 248, - 55, 85, 1, 253, 133, 85, 1, 248, 76, 85, 1, 253, 131, 85, 1, 243, 234, - 85, 1, 253, 129, 85, 1, 248, 65, 85, 1, 253, 141, 85, 1, 248, 81, 85, 1, - 222, 85, 1, 216, 85, 1, 253, 130, 85, 1, 248, 96, 85, 1, 253, 134, 85, 1, - 248, 94, 85, 1, 243, 104, 85, 1, 253, 171, 85, 1, 248, 46, 85, 1, 248, - 66, 85, 1, 253, 132, 85, 1, 219, 85, 21, 240, 81, 85, 21, 235, 80, 85, - 33, 21, 253, 140, 85, 33, 21, 71, 85, 33, 21, 253, 142, 85, 33, 21, 79, - 85, 33, 21, 253, 148, 85, 33, 21, 165, 144, 85, 33, 21, 165, 253, 182, - 85, 33, 21, 240, 61, 72, 85, 33, 21, 242, 215, 72, 85, 33, 21, 72, 85, - 33, 21, 253, 149, 85, 33, 21, 240, 61, 73, 85, 33, 21, 242, 215, 73, 85, - 33, 21, 73, 85, 33, 21, 253, 151, 85, 21, 238, 72, 85, 254, 43, 85, 240, - 148, 21, 239, 233, 85, 240, 148, 21, 235, 163, 85, 242, 245, 238, 54, 85, - 242, 241, 238, 54, 85, 1, 253, 217, 85, 1, 243, 207, 85, 1, 243, 183, 85, - 1, 253, 163, 85, 1, 241, 75, 85, 1, 248, 246, 85, 1, 253, 179, 85, 1, - 249, 24, 85, 1, 165, 253, 182, 85, 1, 165, 253, 191, 85, 33, 21, 165, - 162, 85, 33, 21, 165, 253, 191, 85, 240, 111, 85, 45, 240, 111, 85, 26, - 242, 217, 85, 26, 127, 85, 26, 111, 85, 26, 166, 85, 26, 177, 85, 26, - 176, 85, 26, 187, 85, 26, 203, 85, 26, 195, 85, 26, 202, 85, 232, 88, 52, - 85, 1, 238, 62, 208, 101, 21, 232, 77, 101, 21, 235, 61, 101, 21, 236, - 173, 101, 1, 67, 101, 1, 253, 140, 101, 1, 71, 101, 1, 253, 142, 101, 1, - 79, 101, 1, 253, 148, 101, 1, 165, 144, 101, 1, 165, 162, 101, 1, 72, - 101, 1, 253, 149, 101, 1, 73, 101, 1, 253, 151, 101, 1, 201, 101, 1, 248, - 61, 101, 1, 253, 139, 101, 1, 248, 77, 101, 1, 248, 50, 101, 1, 253, 152, - 101, 1, 248, 57, 101, 1, 253, 146, 101, 1, 248, 89, 101, 1, 248, 78, 101, - 1, 248, 71, 101, 1, 242, 247, 101, 1, 248, 75, 101, 1, 242, 249, 101, 1, - 248, 82, 101, 1, 253, 126, 101, 1, 248, 55, 101, 1, 253, 133, 101, 1, - 248, 76, 101, 1, 253, 131, 101, 1, 253, 129, 101, 1, 248, 65, 101, 1, - 253, 141, 101, 1, 248, 81, 101, 1, 222, 101, 1, 216, 101, 1, 253, 130, - 101, 1, 253, 134, 101, 1, 248, 46, 101, 1, 248, 66, 101, 1, 253, 132, - 101, 1, 219, 101, 21, 240, 81, 101, 21, 235, 80, 101, 33, 21, 253, 140, - 101, 33, 21, 71, 101, 33, 21, 253, 142, 101, 33, 21, 79, 101, 33, 21, - 253, 148, 101, 33, 21, 165, 144, 101, 33, 21, 165, 253, 182, 101, 33, 21, - 72, 101, 33, 21, 253, 149, 101, 33, 21, 73, 101, 33, 21, 253, 151, 101, - 21, 238, 72, 101, 1, 241, 200, 253, 126, 101, 255, 39, 240, 51, 69, 101, - 1, 248, 96, 101, 1, 248, 246, 101, 1, 249, 24, 101, 1, 165, 253, 182, - 101, 1, 165, 253, 191, 101, 33, 21, 165, 162, 101, 33, 21, 165, 253, 191, - 101, 26, 242, 217, 101, 26, 127, 101, 26, 111, 101, 26, 166, 101, 26, - 177, 101, 26, 176, 101, 26, 187, 101, 26, 203, 101, 26, 195, 101, 26, - 202, 101, 1, 255, 63, 2, 240, 1, 235, 86, 101, 1, 255, 63, 2, 168, 235, - 86, 101, 243, 44, 69, 101, 243, 44, 52, 101, 236, 181, 235, 79, 127, 101, - 236, 181, 235, 79, 111, 101, 236, 181, 235, 79, 166, 101, 236, 181, 235, - 79, 177, 101, 236, 181, 235, 79, 253, 125, 251, 190, 249, 1, 253, 145, - 232, 129, 101, 236, 181, 233, 131, 236, 202, 101, 238, 191, 133, 21, 249, - 233, 240, 160, 133, 21, 240, 160, 133, 21, 236, 173, 133, 1, 67, 133, 1, - 253, 140, 133, 1, 71, 133, 1, 253, 142, 133, 1, 79, 133, 1, 253, 148, - 133, 1, 253, 164, 133, 1, 253, 149, 133, 1, 253, 156, 133, 1, 253, 151, - 133, 1, 201, 133, 1, 248, 61, 133, 1, 253, 139, 133, 1, 248, 77, 133, 1, - 248, 50, 133, 1, 253, 152, 133, 1, 248, 57, 133, 1, 253, 146, 133, 1, - 248, 89, 133, 1, 248, 78, 133, 1, 248, 71, 133, 1, 242, 247, 133, 1, 248, - 75, 133, 1, 242, 249, 133, 1, 248, 82, 133, 1, 253, 126, 133, 1, 248, 55, - 133, 1, 253, 133, 133, 1, 248, 76, 133, 1, 253, 131, 133, 1, 253, 129, - 133, 1, 248, 65, 133, 1, 253, 141, 133, 1, 248, 81, 133, 1, 222, 133, 1, - 216, 133, 1, 253, 130, 133, 1, 253, 134, 133, 1, 248, 94, 133, 1, 253, - 171, 133, 1, 248, 46, 133, 1, 253, 132, 133, 1, 219, 133, 21, 240, 81, - 133, 33, 21, 253, 140, 133, 33, 21, 71, 133, 33, 21, 253, 142, 133, 33, - 21, 79, 133, 33, 21, 253, 148, 133, 33, 21, 253, 164, 133, 33, 21, 253, - 149, 133, 33, 21, 253, 156, 133, 33, 21, 253, 151, 133, 21, 238, 72, 133, - 1, 243, 207, 133, 1, 243, 183, 133, 1, 253, 163, 133, 1, 248, 96, 133, 1, - 253, 179, 133, 26, 242, 217, 133, 26, 127, 133, 26, 111, 133, 26, 166, - 133, 26, 177, 133, 26, 176, 133, 26, 187, 133, 26, 203, 133, 26, 195, - 133, 26, 202, 133, 242, 154, 133, 241, 5, 133, 251, 107, 133, 253, 2, - 133, 255, 73, 242, 41, 112, 21, 232, 77, 112, 21, 235, 61, 112, 21, 236, - 173, 112, 1, 67, 112, 1, 253, 140, 112, 1, 71, 112, 1, 253, 142, 112, 1, - 79, 112, 1, 253, 148, 112, 1, 165, 144, 112, 1, 165, 162, 112, 33, 240, - 61, 72, 112, 1, 72, 112, 1, 253, 149, 112, 33, 240, 61, 73, 112, 1, 73, - 112, 1, 253, 151, 112, 1, 201, 112, 1, 248, 61, 112, 1, 253, 139, 112, 1, - 248, 77, 112, 1, 248, 50, 112, 1, 253, 152, 112, 1, 248, 57, 112, 1, 253, - 146, 112, 1, 248, 89, 112, 1, 248, 78, 112, 1, 248, 71, 112, 1, 242, 247, - 112, 1, 248, 75, 112, 1, 242, 249, 112, 1, 248, 82, 112, 1, 253, 126, - 112, 1, 248, 55, 112, 1, 253, 133, 112, 1, 248, 76, 112, 1, 253, 131, - 112, 1, 253, 129, 112, 1, 248, 65, 112, 1, 253, 141, 112, 1, 248, 81, - 112, 1, 222, 112, 1, 216, 112, 1, 253, 130, 112, 1, 253, 134, 112, 1, - 248, 94, 112, 1, 253, 171, 112, 1, 248, 46, 112, 1, 248, 66, 112, 1, 253, - 132, 112, 1, 219, 112, 21, 240, 81, 112, 21, 235, 80, 112, 33, 21, 253, - 140, 112, 33, 21, 71, 112, 33, 21, 253, 142, 112, 33, 21, 79, 112, 33, - 21, 253, 148, 112, 33, 21, 165, 144, 112, 33, 21, 165, 253, 182, 112, 33, - 21, 240, 61, 72, 112, 33, 21, 72, 112, 33, 21, 253, 149, 112, 33, 21, - 240, 61, 73, 112, 33, 21, 73, 112, 33, 21, 253, 151, 112, 21, 238, 72, - 112, 254, 43, 112, 1, 165, 253, 182, 112, 1, 165, 253, 191, 112, 33, 21, - 165, 162, 112, 33, 21, 165, 253, 191, 112, 26, 242, 217, 112, 26, 127, - 112, 26, 111, 112, 26, 166, 112, 26, 177, 112, 26, 176, 112, 26, 187, - 112, 26, 203, 112, 26, 195, 112, 26, 202, 112, 243, 44, 52, 118, 21, 232, - 77, 118, 21, 235, 61, 118, 21, 236, 173, 118, 1, 67, 118, 1, 253, 140, - 118, 1, 71, 118, 1, 253, 142, 118, 1, 79, 118, 1, 253, 148, 118, 1, 165, - 144, 118, 1, 165, 162, 118, 1, 72, 118, 1, 253, 149, 118, 1, 73, 118, 1, - 253, 151, 118, 1, 201, 118, 1, 248, 61, 118, 1, 253, 139, 118, 1, 248, - 77, 118, 1, 248, 50, 118, 1, 253, 152, 118, 1, 248, 57, 118, 1, 253, 146, - 118, 1, 248, 89, 118, 1, 248, 78, 118, 1, 248, 71, 118, 1, 242, 247, 118, - 1, 248, 75, 118, 1, 242, 249, 118, 1, 248, 82, 118, 1, 253, 126, 118, 1, - 248, 55, 118, 1, 253, 133, 118, 1, 248, 76, 118, 1, 253, 131, 118, 1, - 253, 129, 118, 1, 248, 65, 118, 1, 253, 141, 118, 1, 248, 81, 118, 1, - 222, 118, 1, 216, 118, 1, 253, 130, 118, 1, 253, 134, 118, 1, 248, 94, - 118, 1, 253, 171, 118, 1, 248, 46, 118, 1, 248, 66, 118, 1, 253, 132, - 118, 1, 219, 118, 21, 240, 81, 118, 21, 235, 80, 118, 33, 21, 253, 140, - 118, 33, 21, 71, 118, 33, 21, 253, 142, 118, 33, 21, 79, 118, 33, 21, - 253, 148, 118, 33, 21, 165, 144, 118, 33, 21, 72, 118, 33, 21, 253, 149, - 118, 33, 21, 73, 118, 33, 21, 253, 151, 118, 21, 238, 72, 118, 255, 37, - 240, 51, 69, 118, 255, 39, 240, 51, 69, 118, 1, 248, 96, 118, 1, 248, - 246, 118, 1, 249, 24, 118, 1, 165, 253, 182, 118, 1, 165, 253, 191, 118, - 26, 242, 217, 118, 26, 127, 118, 26, 111, 118, 26, 166, 118, 26, 177, - 118, 26, 176, 118, 26, 187, 118, 26, 203, 118, 26, 195, 118, 26, 202, - 118, 238, 191, 118, 1, 253, 138, 140, 21, 235, 61, 140, 21, 236, 173, - 140, 1, 67, 140, 1, 253, 140, 140, 1, 71, 140, 1, 253, 142, 140, 1, 79, - 140, 1, 253, 148, 140, 1, 72, 140, 1, 253, 164, 140, 1, 253, 149, 140, 1, - 73, 140, 1, 253, 156, 140, 1, 253, 151, 140, 1, 201, 140, 1, 248, 50, - 140, 1, 253, 152, 140, 1, 253, 146, 140, 1, 248, 78, 140, 1, 248, 71, - 140, 1, 248, 82, 140, 1, 253, 126, 140, 1, 253, 131, 140, 1, 243, 234, - 140, 1, 253, 129, 140, 1, 222, 140, 1, 216, 140, 1, 253, 130, 140, 1, - 248, 96, 140, 1, 253, 134, 140, 1, 248, 94, 140, 1, 243, 104, 140, 1, - 253, 171, 140, 1, 248, 46, 140, 1, 248, 66, 140, 1, 253, 132, 140, 1, - 219, 140, 33, 21, 253, 140, 140, 33, 21, 71, 140, 33, 21, 253, 142, 140, - 33, 21, 79, 140, 33, 21, 253, 148, 140, 33, 21, 72, 140, 33, 21, 253, - 164, 140, 33, 21, 253, 149, 140, 33, 21, 73, 140, 33, 21, 253, 156, 140, - 33, 21, 253, 151, 140, 21, 238, 72, 140, 255, 39, 240, 51, 69, 140, 26, - 242, 217, 140, 26, 127, 140, 26, 111, 140, 26, 166, 140, 26, 177, 140, - 26, 176, 140, 26, 187, 140, 26, 203, 140, 26, 195, 140, 26, 202, 140, 61, - 248, 53, 140, 61, 253, 125, 236, 149, 140, 61, 253, 125, 235, 49, 140, - 253, 137, 52, 140, 246, 90, 52, 140, 249, 206, 52, 140, 245, 59, 52, 140, - 241, 68, 52, 140, 255, 24, 60, 52, 140, 243, 44, 52, 140, 61, 52, 124, - 21, 232, 77, 124, 21, 235, 61, 124, 21, 236, 173, 124, 1, 67, 124, 1, - 253, 140, 124, 1, 71, 124, 1, 253, 142, 124, 1, 79, 124, 1, 253, 148, - 124, 1, 165, 144, 124, 1, 165, 162, 124, 1, 72, 124, 1, 253, 164, 124, 1, - 253, 149, 124, 1, 73, 124, 1, 253, 156, 124, 1, 253, 151, 124, 1, 201, - 124, 1, 248, 61, 124, 1, 253, 139, 124, 1, 248, 77, 124, 1, 248, 50, 124, - 1, 253, 152, 124, 1, 248, 57, 124, 1, 253, 146, 124, 1, 248, 89, 124, 1, - 248, 78, 124, 1, 248, 71, 124, 1, 242, 247, 124, 1, 248, 75, 124, 1, 242, - 249, 124, 1, 248, 82, 124, 1, 253, 126, 124, 1, 248, 55, 124, 1, 253, - 133, 124, 1, 248, 76, 124, 1, 253, 131, 124, 1, 253, 129, 124, 1, 248, - 65, 124, 1, 253, 141, 124, 1, 248, 81, 124, 1, 222, 124, 1, 216, 124, 1, - 253, 130, 124, 1, 248, 96, 124, 1, 253, 134, 124, 1, 248, 94, 124, 1, - 253, 171, 124, 1, 248, 46, 124, 1, 248, 66, 124, 1, 253, 132, 124, 1, - 219, 124, 33, 21, 253, 140, 124, 33, 21, 71, 124, 33, 21, 253, 142, 124, - 33, 21, 79, 124, 33, 21, 253, 148, 124, 33, 21, 165, 144, 124, 33, 21, - 165, 253, 182, 124, 33, 21, 72, 124, 33, 21, 253, 164, 124, 33, 21, 253, - 149, 124, 33, 21, 73, 124, 33, 21, 253, 156, 124, 33, 21, 253, 151, 124, - 21, 238, 72, 124, 240, 51, 69, 124, 255, 37, 240, 51, 69, 124, 1, 165, - 253, 182, 124, 1, 165, 253, 191, 124, 26, 242, 217, 124, 26, 127, 124, - 26, 111, 124, 26, 166, 124, 26, 177, 124, 26, 176, 124, 26, 187, 124, 26, - 203, 124, 26, 195, 124, 26, 202, 115, 21, 235, 61, 115, 21, 236, 173, - 115, 1, 67, 115, 1, 253, 140, 115, 1, 71, 115, 1, 253, 142, 115, 1, 79, - 115, 1, 253, 148, 115, 1, 165, 144, 115, 1, 165, 162, 115, 1, 72, 115, 1, - 253, 164, 115, 1, 253, 149, 115, 1, 73, 115, 1, 253, 156, 115, 1, 253, - 151, 115, 1, 201, 115, 1, 248, 61, 115, 1, 253, 139, 115, 1, 248, 77, - 115, 1, 248, 50, 115, 1, 253, 152, 115, 1, 248, 57, 115, 1, 253, 146, - 115, 1, 248, 89, 115, 1, 248, 78, 115, 1, 248, 71, 115, 1, 242, 247, 115, - 1, 248, 75, 115, 1, 242, 249, 115, 1, 248, 82, 115, 1, 253, 126, 115, 1, - 248, 55, 115, 1, 253, 133, 115, 1, 248, 76, 115, 1, 253, 131, 115, 1, - 253, 129, 115, 1, 248, 65, 115, 1, 253, 141, 115, 1, 248, 81, 115, 1, - 222, 115, 1, 216, 115, 1, 253, 130, 115, 1, 248, 96, 115, 1, 253, 134, - 115, 1, 248, 94, 115, 1, 253, 171, 115, 1, 248, 46, 115, 1, 248, 66, 115, - 1, 253, 132, 115, 1, 219, 115, 21, 240, 81, 115, 21, 235, 80, 115, 33, - 21, 253, 140, 115, 33, 21, 71, 115, 33, 21, 253, 142, 115, 33, 21, 79, - 115, 33, 21, 253, 148, 115, 33, 21, 165, 144, 115, 33, 21, 165, 253, 182, - 115, 33, 21, 72, 115, 33, 21, 253, 164, 115, 33, 21, 253, 149, 115, 33, - 21, 73, 115, 33, 21, 253, 156, 115, 33, 21, 253, 151, 115, 21, 238, 72, - 115, 240, 51, 69, 115, 255, 37, 240, 51, 69, 115, 1, 253, 179, 115, 1, - 165, 253, 182, 115, 1, 165, 253, 191, 115, 26, 242, 217, 115, 26, 127, - 115, 26, 111, 115, 26, 166, 115, 26, 177, 115, 26, 176, 115, 26, 187, - 115, 26, 203, 115, 26, 195, 115, 26, 202, 130, 21, 235, 61, 130, 21, 236, - 173, 130, 1, 67, 130, 1, 253, 140, 130, 1, 71, 130, 1, 253, 142, 130, 1, - 79, 130, 1, 253, 148, 130, 1, 165, 144, 130, 1, 165, 162, 130, 1, 72, - 130, 1, 253, 164, 130, 1, 253, 149, 130, 1, 73, 130, 1, 253, 156, 130, 1, - 253, 151, 130, 1, 201, 130, 1, 248, 61, 130, 1, 253, 139, 130, 1, 248, - 77, 130, 1, 248, 50, 130, 1, 253, 152, 130, 1, 248, 57, 130, 1, 253, 146, - 130, 1, 248, 89, 130, 1, 248, 78, 130, 1, 248, 71, 130, 1, 242, 247, 130, - 1, 248, 75, 130, 1, 242, 249, 130, 1, 248, 82, 130, 1, 253, 126, 130, 1, - 248, 55, 130, 1, 253, 133, 130, 1, 248, 76, 130, 1, 253, 131, 130, 1, - 253, 129, 130, 1, 248, 65, 130, 1, 253, 141, 130, 1, 248, 81, 130, 1, - 222, 130, 1, 216, 130, 1, 253, 130, 130, 1, 248, 96, 130, 1, 253, 134, - 130, 1, 248, 94, 130, 1, 243, 104, 130, 1, 253, 171, 130, 1, 248, 46, - 130, 1, 248, 66, 130, 1, 253, 132, 130, 1, 219, 130, 33, 21, 253, 140, - 130, 33, 21, 71, 130, 33, 21, 253, 142, 130, 33, 21, 79, 130, 33, 21, - 253, 148, 130, 33, 21, 165, 144, 130, 33, 21, 72, 130, 33, 21, 253, 164, - 130, 33, 21, 253, 149, 130, 33, 21, 73, 130, 33, 21, 253, 156, 130, 33, - 21, 253, 151, 130, 21, 238, 72, 130, 255, 39, 240, 51, 69, 130, 1, 165, - 253, 182, 130, 1, 165, 253, 191, 130, 26, 242, 217, 130, 26, 127, 130, - 26, 111, 130, 26, 166, 130, 26, 177, 130, 26, 176, 130, 26, 187, 130, 26, - 203, 130, 26, 195, 130, 26, 202, 123, 21, 233, 115, 123, 21, 235, 39, - 123, 1, 239, 0, 123, 1, 237, 53, 123, 1, 237, 56, 123, 1, 235, 161, 123, - 1, 239, 102, 123, 1, 237, 178, 123, 1, 239, 237, 123, 1, 238, 39, 123, 1, - 236, 41, 123, 1, 234, 209, 123, 1, 236, 37, 123, 1, 234, 202, 123, 1, - 239, 59, 123, 1, 237, 146, 123, 1, 237, 57, 123, 1, 239, 156, 123, 1, - 237, 227, 123, 1, 237, 68, 123, 1, 234, 8, 237, 16, 123, 1, 233, 58, 237, - 16, 123, 1, 234, 8, 236, 226, 123, 1, 233, 58, 236, 226, 123, 1, 239, - 105, 233, 89, 123, 1, 238, 122, 236, 226, 123, 1, 234, 8, 236, 250, 123, - 1, 233, 58, 236, 250, 123, 1, 234, 8, 236, 228, 123, 1, 233, 58, 236, - 228, 123, 1, 238, 154, 233, 89, 123, 1, 238, 154, 238, 1, 232, 185, 123, - 1, 238, 122, 236, 228, 123, 1, 234, 8, 235, 155, 123, 1, 233, 58, 235, - 155, 123, 1, 234, 8, 235, 97, 123, 1, 233, 58, 235, 97, 123, 1, 235, 104, - 237, 25, 123, 1, 238, 122, 235, 97, 123, 1, 234, 8, 237, 46, 123, 1, 233, - 58, 237, 46, 123, 1, 234, 8, 236, 222, 123, 1, 233, 58, 236, 222, 123, 1, - 238, 134, 237, 25, 123, 1, 238, 122, 236, 222, 123, 1, 234, 8, 237, 27, - 123, 1, 233, 58, 237, 27, 123, 1, 234, 8, 236, 220, 123, 1, 233, 58, 236, - 220, 123, 1, 237, 205, 123, 1, 249, 237, 236, 220, 123, 1, 238, 47, 123, - 1, 237, 247, 123, 1, 238, 134, 237, 20, 123, 1, 238, 41, 123, 1, 238, - 154, 236, 238, 123, 1, 235, 104, 236, 238, 123, 1, 238, 134, 236, 238, - 123, 1, 237, 171, 123, 1, 235, 104, 237, 20, 123, 1, 237, 155, 123, 21, - 234, 90, 123, 33, 21, 233, 67, 123, 33, 21, 243, 102, 233, 81, 123, 33, - 21, 248, 107, 233, 81, 123, 33, 21, 243, 102, 235, 130, 123, 33, 21, 248, - 107, 235, 130, 123, 33, 21, 243, 102, 234, 60, 123, 33, 21, 248, 107, - 234, 60, 123, 33, 21, 231, 104, 123, 33, 21, 237, 17, 123, 33, 21, 248, - 107, 237, 17, 123, 33, 21, 246, 18, 245, 62, 123, 33, 21, 238, 141, 254, - 64, 233, 67, 123, 33, 21, 238, 141, 254, 64, 248, 107, 233, 67, 123, 33, - 21, 238, 141, 254, 64, 232, 90, 123, 33, 21, 232, 90, 123, 33, 21, 248, - 107, 231, 104, 123, 33, 21, 248, 107, 232, 90, 123, 233, 51, 233, 214, - 107, 99, 255, 59, 249, 91, 107, 99, 253, 249, 246, 9, 107, 99, 253, 249, - 241, 202, 107, 99, 253, 249, 241, 203, 107, 99, 253, 249, 246, 12, 107, - 99, 253, 249, 237, 245, 107, 99, 254, 213, 252, 19, 107, 99, 254, 35, - 244, 253, 107, 99, 254, 35, 241, 53, 107, 99, 254, 35, 241, 51, 107, 99, - 255, 35, 253, 186, 107, 99, 254, 35, 245, 5, 107, 99, 255, 66, 247, 230, - 107, 99, 255, 48, 241, 49, 107, 99, 153, 242, 49, 107, 99, 253, 240, 243, - 127, 107, 99, 253, 240, 233, 218, 107, 99, 253, 240, 237, 237, 107, 99, - 255, 51, 252, 12, 107, 99, 255, 48, 250, 188, 107, 99, 153, 252, 208, - 107, 99, 253, 240, 242, 152, 107, 99, 253, 240, 239, 218, 107, 99, 253, - 240, 242, 151, 107, 99, 255, 51, 253, 150, 107, 99, 255, 69, 239, 2, 107, - 99, 255, 88, 252, 70, 107, 99, 254, 27, 242, 60, 107, 99, 255, 41, 253, - 179, 107, 99, 254, 27, 246, 244, 107, 99, 255, 41, 250, 233, 107, 99, - 254, 27, 238, 0, 107, 99, 255, 83, 222, 107, 99, 255, 66, 249, 20, 107, - 99, 255, 90, 252, 150, 107, 99, 253, 185, 107, 99, 255, 43, 243, 215, - 107, 99, 254, 8, 107, 99, 255, 96, 247, 191, 107, 99, 255, 35, 247, 63, - 107, 99, 255, 35, 247, 57, 107, 99, 255, 35, 252, 191, 107, 99, 255, 32, - 251, 62, 107, 99, 255, 43, 241, 55, 107, 99, 117, 248, 124, 107, 99, 255, - 32, 239, 145, 107, 99, 234, 231, 107, 99, 248, 83, 67, 107, 99, 253, 205, - 236, 32, 107, 99, 248, 83, 253, 140, 107, 99, 248, 83, 254, 32, 107, 99, - 248, 83, 71, 107, 99, 248, 83, 253, 142, 107, 99, 248, 83, 253, 252, 107, - 99, 248, 83, 252, 249, 107, 99, 248, 83, 79, 107, 99, 248, 83, 253, 148, - 107, 99, 237, 236, 107, 236, 181, 12, 244, 190, 107, 99, 248, 83, 72, - 107, 99, 248, 83, 253, 178, 107, 99, 248, 83, 73, 107, 99, 248, 83, 255, - 37, 237, 198, 107, 99, 248, 83, 255, 37, 236, 55, 107, 99, 232, 181, 107, - 99, 236, 56, 107, 99, 234, 220, 107, 99, 253, 205, 254, 90, 107, 99, 253, - 205, 248, 97, 107, 99, 253, 205, 252, 229, 107, 99, 253, 205, 235, 188, - 107, 99, 233, 41, 107, 99, 236, 63, 107, 99, 236, 141, 107, 99, 237, 158, - 107, 26, 242, 217, 107, 26, 127, 107, 26, 111, 107, 26, 166, 107, 26, - 177, 107, 26, 176, 107, 26, 187, 107, 26, 203, 107, 26, 195, 107, 26, - 202, 107, 99, 233, 113, 107, 99, 239, 108, 152, 1, 253, 190, 152, 1, 253, - 249, 243, 35, 152, 1, 253, 249, 248, 120, 152, 1, 248, 172, 152, 1, 253, - 224, 152, 1, 255, 35, 248, 120, 152, 1, 248, 133, 152, 1, 253, 225, 152, - 1, 87, 152, 1, 253, 240, 243, 35, 152, 1, 253, 240, 248, 120, 152, 1, - 253, 173, 152, 1, 254, 1, 152, 1, 253, 208, 152, 1, 254, 27, 243, 35, - 152, 1, 255, 41, 248, 120, 152, 1, 254, 27, 248, 120, 152, 1, 255, 41, - 243, 35, 152, 1, 253, 181, 152, 1, 253, 162, 152, 1, 255, 43, 243, 215, - 152, 1, 255, 43, 246, 54, 152, 1, 253, 177, 152, 1, 255, 35, 243, 35, - 152, 1, 255, 32, 243, 35, 152, 1, 73, 152, 1, 255, 32, 248, 120, 152, - 235, 69, 152, 33, 21, 67, 152, 33, 21, 253, 205, 248, 162, 152, 33, 21, - 253, 140, 152, 33, 21, 254, 32, 152, 33, 21, 71, 152, 33, 21, 253, 142, - 152, 33, 21, 255, 14, 152, 33, 21, 254, 77, 152, 33, 21, 79, 152, 33, 21, - 253, 148, 152, 33, 21, 253, 205, 251, 159, 152, 235, 143, 21, 253, 216, - 152, 235, 143, 21, 248, 133, 152, 33, 21, 72, 152, 33, 21, 254, 89, 152, - 33, 21, 73, 152, 33, 21, 254, 33, 152, 33, 21, 253, 149, 152, 255, 59, - 253, 134, 152, 188, 253, 205, 254, 90, 152, 188, 253, 205, 248, 97, 152, - 188, 253, 205, 253, 212, 152, 188, 253, 205, 239, 18, 152, 232, 118, 69, - 152, 234, 227, 152, 26, 242, 217, 152, 26, 127, 152, 26, 111, 152, 26, - 166, 152, 26, 177, 152, 26, 176, 152, 26, 187, 152, 26, 203, 152, 26, - 195, 152, 26, 202, 152, 255, 32, 253, 173, 152, 255, 32, 253, 181, 47, 4, - 254, 43, 47, 158, 248, 129, 253, 221, 253, 226, 236, 133, 67, 47, 158, - 248, 129, 253, 221, 253, 226, 254, 79, 249, 155, 250, 112, 222, 47, 158, - 248, 129, 253, 221, 253, 226, 254, 79, 248, 129, 243, 49, 222, 47, 158, - 54, 253, 221, 253, 226, 251, 224, 222, 47, 158, 238, 171, 253, 221, 253, - 226, 252, 173, 222, 47, 158, 243, 25, 253, 221, 253, 226, 249, 137, 249, - 161, 222, 47, 158, 253, 221, 253, 226, 243, 49, 249, 161, 222, 47, 158, - 247, 65, 243, 23, 47, 158, 244, 230, 253, 221, 248, 167, 47, 158, 250, - 127, 249, 162, 253, 221, 248, 167, 47, 158, 231, 143, 240, 249, 47, 158, - 235, 202, 243, 49, 241, 40, 47, 158, 243, 23, 47, 158, 248, 234, 243, 23, - 47, 158, 243, 49, 243, 23, 47, 158, 248, 234, 243, 49, 243, 23, 47, 158, - 254, 235, 250, 159, 242, 126, 243, 23, 47, 158, 249, 154, 251, 29, 243, - 23, 47, 158, 243, 25, 243, 140, 243, 72, 255, 81, 183, 248, 100, 47, 158, - 248, 129, 240, 249, 47, 237, 22, 21, 250, 158, 240, 70, 47, 237, 22, 21, - 251, 192, 240, 70, 47, 232, 89, 21, 252, 175, 251, 12, 244, 67, 240, 70, - 47, 232, 89, 21, 241, 3, 253, 129, 47, 232, 89, 21, 247, 67, 239, 230, - 47, 21, 248, 101, 248, 151, 243, 179, 47, 21, 248, 101, 248, 151, 240, - 183, 47, 21, 248, 101, 248, 151, 243, 187, 47, 21, 248, 101, 254, 66, - 243, 179, 47, 21, 248, 101, 254, 66, 240, 183, 47, 21, 248, 101, 248, - 151, 248, 101, 251, 252, 47, 26, 242, 217, 47, 26, 127, 47, 26, 111, 47, - 26, 166, 47, 26, 177, 47, 26, 176, 47, 26, 187, 47, 26, 203, 47, 26, 195, - 47, 26, 202, 47, 26, 137, 127, 47, 26, 137, 111, 47, 26, 137, 166, 47, - 26, 137, 177, 47, 26, 137, 176, 47, 26, 137, 187, 47, 26, 137, 203, 47, - 26, 137, 195, 47, 26, 137, 202, 47, 26, 137, 242, 217, 47, 158, 244, 228, - 240, 70, 47, 158, 249, 119, 243, 153, 254, 116, 253, 108, 47, 158, 243, - 25, 243, 140, 243, 72, 248, 199, 254, 112, 248, 100, 47, 158, 249, 119, - 243, 153, 252, 174, 240, 70, 47, 158, 253, 223, 248, 167, 47, 158, 254, - 129, 241, 4, 47, 158, 254, 95, 243, 72, 243, 189, 47, 158, 254, 95, 243, - 72, 243, 188, 47, 158, 254, 80, 243, 206, 243, 189, 47, 158, 254, 80, - 243, 206, 243, 188, 47, 21, 255, 8, 240, 250, 47, 21, 254, 198, 240, 250, - 47, 1, 201, 47, 1, 248, 61, 47, 1, 253, 139, 47, 1, 248, 77, 47, 1, 248, - 50, 47, 1, 253, 152, 47, 1, 248, 57, 47, 1, 253, 146, 47, 1, 248, 78, 47, - 1, 248, 71, 47, 1, 242, 247, 47, 1, 248, 75, 47, 1, 242, 249, 47, 1, 248, - 82, 47, 1, 253, 126, 47, 1, 248, 55, 47, 1, 253, 133, 47, 1, 248, 76, 47, - 1, 253, 131, 47, 1, 253, 129, 47, 1, 248, 65, 47, 1, 253, 141, 47, 1, - 248, 81, 47, 1, 222, 47, 1, 248, 90, 47, 1, 243, 130, 47, 1, 248, 153, - 47, 1, 243, 165, 47, 1, 253, 138, 47, 1, 248, 99, 47, 1, 253, 163, 47, 1, - 254, 78, 47, 1, 216, 47, 1, 253, 130, 47, 1, 253, 134, 47, 1, 248, 46, - 47, 1, 248, 66, 47, 1, 253, 132, 47, 1, 219, 47, 1, 67, 47, 1, 243, 210, - 47, 1, 234, 28, 253, 130, 47, 33, 21, 253, 140, 47, 33, 21, 71, 47, 33, - 21, 253, 142, 47, 33, 21, 79, 47, 33, 21, 253, 148, 47, 33, 21, 165, 144, - 47, 33, 21, 165, 253, 182, 47, 33, 21, 165, 162, 47, 33, 21, 165, 253, - 191, 47, 33, 21, 72, 47, 33, 21, 253, 164, 47, 33, 21, 73, 47, 33, 21, - 253, 156, 47, 21, 252, 140, 255, 91, 254, 212, 253, 160, 47, 21, 249, - 155, 244, 212, 47, 33, 21, 224, 71, 47, 33, 21, 224, 253, 142, 47, 21, - 254, 116, 255, 12, 254, 210, 253, 133, 47, 21, 254, 239, 246, 39, 47, - 158, 237, 168, 47, 158, 239, 157, 47, 21, 254, 192, 240, 70, 47, 21, 248, - 122, 240, 70, 47, 21, 254, 191, 254, 129, 248, 100, 47, 21, 251, 223, - 248, 100, 47, 21, 254, 94, 254, 148, 237, 34, 47, 21, 254, 94, 254, 200, - 237, 34, 47, 213, 1, 201, 47, 213, 1, 248, 61, 47, 213, 1, 253, 139, 47, - 213, 1, 248, 77, 47, 213, 1, 248, 50, 47, 213, 1, 253, 152, 47, 213, 1, - 248, 57, 47, 213, 1, 253, 146, 47, 213, 1, 248, 78, 47, 213, 1, 248, 71, - 47, 213, 1, 242, 247, 47, 213, 1, 248, 75, 47, 213, 1, 242, 249, 47, 213, - 1, 248, 82, 47, 213, 1, 253, 126, 47, 213, 1, 248, 55, 47, 213, 1, 253, - 133, 47, 213, 1, 248, 76, 47, 213, 1, 253, 131, 47, 213, 1, 253, 129, 47, - 213, 1, 248, 65, 47, 213, 1, 253, 141, 47, 213, 1, 248, 81, 47, 213, 1, - 222, 47, 213, 1, 248, 90, 47, 213, 1, 243, 130, 47, 213, 1, 248, 153, 47, - 213, 1, 243, 165, 47, 213, 1, 253, 138, 47, 213, 1, 248, 99, 47, 213, 1, - 253, 163, 47, 213, 1, 254, 78, 47, 213, 1, 216, 47, 213, 1, 253, 130, 47, - 213, 1, 253, 134, 47, 213, 1, 248, 46, 47, 213, 1, 248, 66, 47, 213, 1, - 253, 132, 47, 213, 1, 219, 47, 213, 1, 67, 47, 213, 1, 243, 210, 47, 213, - 1, 234, 28, 253, 138, 47, 213, 1, 234, 28, 216, 47, 213, 1, 234, 28, 253, - 130, 47, 255, 60, 255, 64, 248, 61, 47, 255, 60, 255, 64, 254, 183, 248, - 199, 254, 112, 248, 100, 47, 232, 82, 21, 96, 243, 147, 47, 232, 82, 21, - 136, 243, 147, 47, 232, 82, 21, 250, 144, 247, 138, 47, 232, 82, 21, 252, - 170, 241, 2, 47, 12, 250, 206, 253, 243, 47, 12, 254, 124, 252, 139, 47, - 12, 246, 237, 245, 97, 47, 12, 254, 124, 254, 236, 249, 154, 245, 127, - 47, 12, 249, 137, 253, 129, 47, 12, 253, 192, 253, 243, 47, 12, 253, 192, - 255, 47, 248, 234, 238, 127, 47, 12, 253, 192, 255, 47, 251, 30, 238, - 127, 47, 12, 253, 192, 255, 47, 248, 199, 238, 127, 47, 21, 248, 101, - 254, 66, 243, 187, 47, 158, 244, 229, 249, 162, 255, 57, 253, 226, 240, - 216, 47, 158, 246, 89, 253, 221, 255, 57, 253, 226, 240, 216, 131, 1, - 201, 131, 1, 248, 61, 131, 1, 253, 139, 131, 1, 248, 77, 131, 1, 248, 50, - 131, 1, 253, 152, 131, 1, 248, 57, 131, 1, 253, 146, 131, 1, 248, 89, - 131, 1, 248, 78, 131, 1, 246, 175, 131, 1, 248, 71, 131, 1, 242, 247, - 131, 1, 248, 75, 131, 1, 242, 249, 131, 1, 248, 82, 131, 1, 253, 126, - 131, 1, 248, 55, 131, 1, 253, 133, 131, 1, 248, 76, 131, 1, 253, 131, - 131, 1, 253, 129, 131, 1, 248, 65, 131, 1, 253, 141, 131, 1, 248, 81, - 131, 1, 222, 131, 1, 216, 131, 1, 253, 130, 131, 1, 253, 134, 131, 1, - 253, 138, 131, 1, 253, 132, 131, 1, 219, 131, 1, 248, 94, 131, 1, 67, - 131, 1, 71, 131, 1, 253, 142, 131, 1, 79, 131, 1, 253, 148, 131, 1, 72, - 131, 1, 73, 131, 1, 253, 151, 131, 33, 21, 253, 140, 131, 33, 21, 71, - 131, 33, 21, 253, 142, 131, 33, 21, 79, 131, 33, 21, 253, 148, 131, 33, - 21, 72, 131, 33, 21, 253, 149, 131, 21, 235, 61, 131, 21, 53, 46, 131, - 21, 236, 173, 131, 21, 238, 72, 131, 26, 242, 217, 131, 26, 127, 131, 26, - 111, 131, 26, 166, 131, 26, 177, 131, 26, 176, 131, 26, 187, 131, 26, - 203, 131, 26, 195, 131, 26, 202, 131, 21, 240, 101, 236, 210, 131, 21, - 236, 210, 131, 12, 236, 52, 131, 12, 234, 102, 131, 12, 229, 63, 131, 12, - 236, 30, 131, 1, 248, 46, 131, 1, 248, 66, 131, 1, 165, 144, 131, 1, 165, - 253, 182, 131, 1, 165, 162, 131, 1, 165, 253, 191, 131, 33, 21, 165, 144, - 131, 33, 21, 165, 253, 182, 131, 33, 21, 165, 162, 131, 33, 21, 165, 253, - 191, 75, 5, 1, 254, 19, 75, 5, 1, 248, 195, 75, 5, 1, 248, 158, 75, 5, 1, - 248, 205, 75, 5, 1, 253, 202, 75, 5, 1, 249, 11, 75, 5, 1, 249, 25, 75, - 5, 1, 248, 253, 75, 5, 1, 253, 247, 75, 5, 1, 248, 162, 75, 5, 1, 248, - 224, 75, 5, 1, 248, 131, 75, 5, 1, 248, 171, 75, 5, 1, 254, 9, 75, 5, 1, - 248, 236, 75, 5, 1, 243, 138, 75, 5, 1, 248, 243, 75, 5, 1, 248, 134, 75, - 5, 1, 248, 254, 75, 5, 1, 254, 75, 75, 5, 1, 243, 115, 75, 5, 1, 243, - 103, 75, 5, 1, 243, 95, 75, 5, 1, 248, 242, 75, 5, 1, 243, 33, 75, 5, 1, - 243, 88, 75, 5, 1, 248, 100, 75, 5, 1, 248, 217, 75, 5, 1, 248, 201, 75, - 5, 1, 243, 87, 75, 5, 1, 249, 16, 75, 5, 1, 243, 101, 75, 5, 1, 248, 212, - 75, 5, 1, 253, 168, 75, 5, 1, 248, 160, 75, 5, 1, 253, 170, 75, 5, 1, - 248, 213, 75, 5, 1, 248, 215, 75, 1, 254, 19, 75, 1, 248, 195, 75, 1, - 248, 158, 75, 1, 248, 205, 75, 1, 253, 202, 75, 1, 249, 11, 75, 1, 249, - 25, 75, 1, 248, 253, 75, 1, 253, 247, 75, 1, 248, 162, 75, 1, 248, 224, - 75, 1, 248, 131, 75, 1, 248, 171, 75, 1, 254, 9, 75, 1, 248, 236, 75, 1, - 243, 138, 75, 1, 248, 243, 75, 1, 248, 134, 75, 1, 248, 254, 75, 1, 254, - 75, 75, 1, 243, 115, 75, 1, 243, 103, 75, 1, 243, 95, 75, 1, 248, 242, - 75, 1, 243, 33, 75, 1, 243, 88, 75, 1, 248, 100, 75, 1, 248, 217, 75, 1, - 248, 201, 75, 1, 243, 87, 75, 1, 249, 16, 75, 1, 243, 101, 75, 1, 248, - 212, 75, 1, 253, 168, 75, 1, 248, 160, 75, 1, 253, 170, 75, 1, 248, 213, - 75, 1, 248, 215, 75, 1, 253, 245, 75, 1, 255, 9, 75, 1, 241, 94, 75, 1, - 205, 248, 158, 75, 1, 248, 105, 75, 235, 91, 234, 6, 49, 1, 75, 248, 171, - 23, 102, 238, 99, 23, 102, 232, 87, 23, 102, 240, 80, 23, 102, 238, 102, - 23, 102, 232, 101, 23, 102, 240, 85, 23, 102, 240, 78, 23, 102, 240, 83, - 23, 102, 233, 79, 23, 102, 243, 34, 23, 102, 234, 32, 23, 102, 240, 75, - 23, 102, 240, 71, 23, 102, 233, 77, 23, 102, 236, 195, 23, 102, 236, 198, - 23, 102, 236, 205, 23, 102, 236, 201, 23, 102, 240, 74, 23, 102, 231, - 108, 23, 102, 233, 105, 23, 102, 231, 97, 23, 102, 232, 187, 23, 102, - 231, 56, 23, 102, 232, 108, 23, 102, 233, 106, 23, 102, 232, 85, 23, 102, - 231, 71, 23, 102, 232, 92, 23, 102, 231, 40, 23, 102, 231, 109, 23, 102, - 232, 195, 23, 102, 231, 110, 23, 102, 233, 66, 23, 102, 226, 243, 23, - 102, 226, 244, 23, 102, 227, 4, 23, 102, 229, 52, 23, 102, 227, 3, 23, - 102, 232, 106, 23, 102, 231, 75, 23, 102, 231, 52, 23, 102, 231, 51, 23, - 102, 231, 41, 23, 102, 226, 235, 23, 102, 232, 99, 23, 102, 233, 102, 23, - 102, 232, 100, 23, 102, 233, 103, 23, 102, 233, 245, 23, 102, 233, 76, - 23, 102, 226, 253, 23, 102, 231, 30, 23, 102, 233, 244, 23, 102, 233, - 101, 23, 102, 232, 55, 23, 102, 232, 56, 23, 102, 232, 58, 23, 102, 232, - 57, 23, 102, 233, 243, 23, 102, 231, 120, 23, 102, 226, 247, 23, 102, - 227, 13, 23, 102, 226, 232, 23, 102, 236, 234, 23, 102, 231, 106, 23, - 102, 231, 142, 23, 102, 232, 175, 23, 102, 232, 176, 23, 102, 233, 208, - 23, 102, 231, 68, 23, 102, 233, 78, 23, 102, 232, 174, 23, 102, 231, 66, - 23, 102, 231, 70, 23, 102, 231, 69, 23, 102, 235, 115, 23, 102, 232, 119, - 23, 102, 231, 62, 23, 102, 226, 238, 23, 102, 227, 1, 23, 102, 226, 229, - 23, 102, 227, 14, 23, 102, 231, 61, 23, 102, 227, 15, 23, 102, 226, 237, - 23, 102, 231, 50, 23, 102, 227, 9, 23, 102, 233, 104, 23, 102, 232, 102, - 23, 102, 238, 114, 23, 146, 238, 114, 23, 146, 67, 23, 146, 253, 178, 23, - 146, 216, 23, 146, 249, 18, 23, 146, 254, 59, 23, 146, 72, 23, 146, 249, - 22, 23, 146, 253, 254, 23, 146, 73, 23, 146, 253, 138, 23, 146, 249, 12, - 23, 146, 253, 193, 23, 146, 253, 162, 23, 146, 79, 23, 146, 249, 14, 23, - 146, 253, 170, 23, 146, 253, 187, 23, 146, 253, 161, 23, 146, 254, 61, - 23, 146, 253, 189, 23, 146, 71, 23, 146, 249, 229, 23, 146, 249, 230, 23, - 146, 247, 211, 23, 146, 242, 189, 23, 146, 245, 83, 23, 146, 245, 84, 23, - 146, 241, 96, 23, 146, 242, 195, 23, 146, 242, 196, 23, 146, 246, 230, - 23, 146, 252, 52, 23, 146, 246, 231, 23, 146, 252, 53, 23, 146, 252, 54, - 23, 146, 240, 255, 23, 146, 238, 233, 23, 146, 239, 251, 23, 146, 247, - 231, 23, 146, 244, 58, 23, 146, 252, 247, 23, 146, 247, 180, 23, 146, - 238, 36, 23, 146, 247, 181, 23, 146, 252, 248, 23, 146, 247, 234, 23, - 146, 242, 199, 23, 146, 247, 235, 23, 146, 238, 234, 23, 146, 241, 0, 23, - 146, 247, 236, 23, 146, 244, 60, 23, 146, 245, 86, 23, 146, 241, 99, 23, - 146, 247, 226, 23, 146, 251, 97, 23, 146, 245, 223, 23, 146, 251, 98, 23, - 146, 251, 99, 23, 146, 245, 222, 23, 146, 237, 175, 23, 146, 240, 156, - 23, 146, 235, 169, 23, 146, 237, 65, 23, 146, 237, 64, 23, 146, 233, 246, - 23, 114, 238, 99, 23, 114, 232, 87, 23, 114, 232, 91, 23, 114, 240, 80, - 23, 114, 232, 93, 23, 114, 232, 94, 23, 114, 238, 102, 23, 114, 240, 85, - 23, 114, 231, 98, 23, 114, 232, 96, 23, 114, 232, 97, 23, 114, 233, 74, - 23, 114, 231, 43, 23, 114, 231, 42, 23, 114, 232, 85, 23, 114, 240, 78, - 23, 114, 240, 83, 23, 114, 233, 66, 23, 114, 243, 34, 23, 114, 234, 32, - 23, 114, 240, 75, 23, 114, 240, 71, 23, 114, 236, 195, 23, 114, 236, 198, - 23, 114, 236, 205, 23, 114, 236, 201, 23, 114, 240, 74, 23, 114, 231, - 145, 23, 114, 226, 239, 23, 114, 231, 108, 23, 114, 231, 97, 23, 114, - 233, 90, 23, 114, 231, 47, 23, 114, 231, 74, 23, 114, 231, 56, 23, 114, - 232, 61, 23, 114, 226, 245, 23, 114, 232, 108, 23, 114, 231, 111, 23, - 114, 226, 241, 23, 114, 233, 106, 23, 114, 226, 240, 23, 114, 227, 5, 23, - 114, 226, 255, 23, 114, 226, 251, 23, 114, 226, 234, 23, 114, 229, 55, - 23, 114, 231, 54, 23, 114, 231, 76, 23, 114, 226, 246, 23, 114, 231, 147, - 23, 114, 232, 183, 23, 114, 232, 92, 23, 114, 233, 86, 23, 114, 229, 50, - 23, 114, 231, 46, 23, 114, 231, 73, 23, 114, 232, 182, 23, 114, 231, 40, - 23, 114, 232, 196, 23, 114, 231, 51, 23, 114, 232, 194, 23, 114, 231, 41, - 23, 114, 232, 99, 23, 114, 232, 100, 23, 114, 233, 103, 23, 114, 233, 76, - 23, 114, 236, 234, 23, 114, 231, 106, 23, 114, 226, 248, 23, 114, 233, - 78, 23, 114, 231, 67, 23, 114, 235, 115, 23, 114, 231, 58, 23, 114, 227, - 0, 23, 114, 231, 50, 23, 114, 227, 9, 23, 114, 232, 170, 23, 114, 232, - 172, 23, 114, 232, 169, 23, 114, 232, 171, 23, 114, 232, 102, 22, 4, 219, - 22, 4, 253, 236, 22, 4, 253, 214, 22, 4, 248, 114, 22, 4, 249, 80, 22, 4, - 253, 168, 22, 4, 253, 184, 22, 4, 251, 76, 22, 4, 253, 134, 22, 4, 254, - 8, 22, 4, 253, 251, 22, 4, 249, 101, 22, 4, 249, 102, 22, 4, 253, 250, - 22, 4, 253, 216, 22, 4, 248, 227, 22, 4, 251, 56, 22, 4, 251, 60, 22, 4, - 251, 58, 22, 4, 243, 194, 22, 4, 245, 143, 22, 4, 251, 57, 22, 4, 251, - 59, 22, 4, 245, 144, 22, 4, 222, 22, 4, 253, 154, 22, 4, 253, 180, 22, 4, - 249, 110, 22, 4, 249, 111, 22, 4, 253, 206, 22, 4, 253, 181, 22, 4, 248, - 169, 22, 4, 252, 202, 22, 4, 252, 206, 22, 4, 252, 204, 22, 4, 247, 131, - 22, 4, 247, 132, 22, 4, 252, 203, 22, 4, 252, 205, 22, 4, 247, 133, 22, - 4, 253, 130, 22, 4, 253, 185, 22, 4, 253, 209, 22, 4, 248, 182, 22, 4, - 249, 153, 22, 4, 253, 194, 22, 4, 253, 160, 22, 4, 252, 157, 22, 4, 253, - 132, 22, 4, 253, 211, 22, 4, 253, 198, 22, 4, 249, 158, 22, 4, 248, 184, - 22, 4, 253, 210, 22, 4, 253, 186, 22, 4, 248, 252, 22, 4, 248, 46, 22, 4, - 248, 248, 22, 4, 248, 185, 22, 4, 244, 7, 22, 4, 244, 9, 22, 4, 248, 118, - 22, 4, 248, 110, 22, 4, 243, 121, 22, 4, 253, 217, 22, 4, 254, 29, 22, 4, - 254, 28, 22, 4, 248, 241, 22, 4, 252, 88, 22, 4, 254, 70, 22, 4, 254, 45, - 22, 4, 252, 98, 22, 4, 252, 112, 22, 4, 252, 114, 22, 4, 247, 21, 22, 4, - 247, 22, 22, 4, 252, 113, 22, 4, 252, 89, 22, 4, 252, 93, 22, 4, 252, 91, - 22, 4, 247, 7, 22, 4, 247, 8, 22, 4, 252, 90, 22, 4, 252, 92, 22, 4, 247, - 9, 22, 4, 247, 11, 22, 4, 242, 72, 22, 4, 242, 73, 22, 4, 247, 10, 22, 4, - 253, 141, 22, 4, 253, 243, 22, 4, 254, 34, 22, 4, 249, 30, 22, 4, 248, - 197, 22, 4, 253, 242, 22, 4, 254, 1, 22, 4, 249, 36, 22, 4, 253, 171, 22, - 4, 254, 49, 22, 4, 254, 48, 22, 4, 253, 6, 22, 4, 249, 10, 22, 4, 254, - 12, 22, 4, 254, 13, 22, 4, 253, 24, 22, 4, 253, 126, 22, 4, 253, 196, 22, - 4, 253, 212, 22, 4, 249, 172, 22, 4, 248, 255, 22, 4, 253, 195, 22, 4, - 87, 22, 4, 249, 7, 22, 4, 253, 152, 22, 4, 254, 84, 22, 4, 254, 55, 22, - 4, 249, 37, 22, 4, 250, 154, 22, 4, 254, 54, 22, 4, 253, 224, 22, 4, 248, - 203, 22, 4, 253, 253, 22, 4, 255, 6, 22, 4, 253, 188, 22, 4, 253, 41, 22, - 4, 253, 42, 22, 4, 254, 132, 22, 4, 254, 133, 22, 4, 253, 47, 22, 4, 253, - 53, 22, 4, 253, 55, 22, 4, 247, 206, 22, 4, 247, 207, 22, 4, 253, 54, 22, - 4, 253, 131, 22, 4, 253, 150, 22, 4, 253, 166, 22, 4, 248, 231, 22, 4, - 249, 118, 22, 4, 253, 197, 22, 4, 253, 173, 22, 4, 248, 176, 22, 4, 248, - 78, 22, 4, 249, 125, 22, 4, 248, 178, 22, 4, 246, 198, 22, 4, 246, 200, - 22, 4, 252, 46, 22, 4, 248, 133, 22, 4, 246, 212, 22, 4, 238, 62, 67, 22, - 4, 238, 62, 79, 22, 4, 238, 62, 71, 22, 4, 238, 62, 253, 140, 22, 4, 238, - 62, 253, 164, 22, 4, 238, 62, 72, 22, 4, 238, 62, 73, 22, 4, 238, 62, - 253, 138, 22, 4, 201, 22, 4, 253, 203, 22, 4, 253, 215, 22, 4, 249, 90, - 22, 4, 251, 141, 22, 4, 253, 172, 22, 4, 253, 190, 22, 4, 251, 157, 22, - 4, 248, 221, 22, 4, 248, 223, 22, 4, 243, 65, 22, 4, 246, 25, 22, 4, 248, - 222, 22, 4, 251, 170, 22, 4, 251, 174, 22, 4, 251, 172, 22, 4, 246, 26, - 22, 4, 246, 27, 22, 4, 251, 171, 22, 4, 251, 173, 22, 4, 246, 28, 22, 4, - 246, 30, 22, 4, 241, 207, 22, 4, 241, 208, 22, 4, 246, 29, 22, 4, 253, - 138, 22, 4, 254, 14, 22, 4, 253, 187, 22, 4, 248, 190, 22, 4, 249, 199, - 22, 4, 253, 170, 22, 4, 253, 177, 22, 4, 253, 34, 22, 4, 234, 12, 67, 22, - 4, 234, 12, 79, 22, 4, 234, 12, 71, 22, 4, 234, 12, 253, 140, 22, 4, 234, - 12, 253, 164, 22, 4, 234, 12, 72, 22, 4, 234, 12, 73, 22, 4, 253, 163, - 22, 4, 254, 18, 22, 4, 254, 17, 22, 4, 249, 216, 22, 4, 248, 194, 22, 4, - 253, 228, 22, 4, 253, 222, 22, 4, 253, 117, 22, 4, 248, 99, 22, 4, 249, - 219, 22, 4, 249, 217, 22, 4, 247, 245, 22, 4, 243, 139, 22, 4, 248, 123, - 22, 4, 249, 218, 22, 4, 248, 4, 22, 4, 216, 22, 4, 253, 161, 22, 4, 253, - 189, 22, 4, 248, 191, 22, 4, 248, 192, 22, 4, 253, 254, 22, 4, 253, 162, - 22, 4, 253, 84, 22, 4, 253, 133, 22, 4, 253, 232, 22, 4, 253, 201, 22, 4, - 250, 177, 22, 4, 248, 149, 22, 4, 253, 200, 22, 4, 253, 225, 22, 4, 250, - 214, 22, 4, 248, 75, 22, 4, 249, 52, 22, 4, 249, 51, 22, 4, 245, 36, 22, - 4, 245, 41, 22, 4, 249, 50, 22, 4, 248, 204, 22, 4, 245, 57, 22, 4, 253, - 146, 22, 4, 254, 25, 22, 4, 254, 7, 22, 4, 251, 110, 22, 4, 248, 161, 22, - 4, 254, 24, 22, 4, 253, 248, 22, 4, 251, 131, 22, 4, 253, 139, 22, 4, - 253, 235, 22, 4, 254, 6, 22, 4, 248, 211, 22, 4, 249, 68, 22, 4, 254, 5, - 22, 4, 253, 234, 22, 4, 251, 25, 22, 4, 251, 36, 22, 4, 251, 38, 22, 4, - 245, 134, 22, 4, 245, 135, 22, 4, 251, 37, 22, 4, 249, 70, 22, 4, 249, - 74, 22, 4, 249, 72, 22, 4, 245, 99, 22, 4, 245, 103, 22, 4, 249, 71, 22, - 4, 249, 73, 22, 4, 241, 134, 22, 4, 248, 55, 22, 4, 249, 177, 22, 4, 248, - 121, 22, 4, 243, 76, 22, 4, 243, 77, 22, 4, 248, 111, 22, 4, 248, 97, 22, - 4, 247, 147, 22, 4, 248, 57, 22, 4, 248, 200, 22, 4, 248, 67, 22, 4, 244, - 252, 22, 4, 243, 54, 22, 4, 248, 88, 22, 4, 248, 125, 22, 4, 245, 13, 22, - 4, 248, 65, 22, 4, 252, 64, 22, 4, 248, 68, 22, 4, 246, 243, 22, 4, 246, - 245, 22, 4, 249, 136, 22, 4, 248, 238, 22, 4, 246, 247, 22, 4, 248, 90, - 22, 4, 249, 5, 22, 4, 248, 140, 22, 4, 247, 160, 22, 4, 244, 39, 22, 4, - 248, 112, 22, 4, 249, 4, 22, 4, 247, 162, 22, 4, 252, 242, 22, 4, 252, - 246, 22, 4, 252, 244, 22, 4, 247, 177, 22, 4, 247, 178, 22, 4, 252, 243, - 22, 4, 252, 245, 22, 4, 247, 179, 22, 4, 253, 179, 22, 4, 254, 93, 22, 4, - 253, 245, 22, 4, 249, 60, 22, 4, 249, 61, 22, 4, 254, 62, 22, 4, 254, 63, - 22, 4, 249, 66, 22, 4, 253, 129, 22, 4, 253, 239, 22, 4, 253, 147, 22, 4, - 249, 133, 22, 4, 248, 180, 22, 4, 253, 175, 22, 4, 253, 208, 22, 4, 248, - 181, 22, 4, 252, 158, 22, 4, 251, 248, 22, 4, 251, 1, 22, 50, 234, 194, - 69, 22, 238, 213, 69, 22, 235, 42, 22, 248, 37, 208, 22, 240, 27, 22, - 234, 14, 22, 240, 24, 22, 239, 166, 240, 24, 22, 236, 156, 69, 22, 235, - 91, 234, 6, 22, 26, 127, 22, 26, 111, 22, 26, 166, 22, 26, 177, 22, 26, - 176, 22, 26, 187, 22, 26, 203, 22, 26, 195, 22, 26, 202, 22, 61, 248, 53, - 22, 61, 238, 77, 22, 61, 238, 101, 22, 61, 240, 136, 22, 61, 240, 50, 22, - 61, 240, 234, 22, 61, 237, 38, 22, 61, 238, 182, 22, 61, 238, 147, 22, - 61, 236, 149, 22, 61, 253, 219, 235, 49, 22, 4, 235, 94, 248, 169, 22, 4, - 248, 230, 22, 4, 246, 101, 22, 4, 248, 229, 22, 4, 235, 94, 249, 36, 22, - 4, 250, 136, 22, 4, 244, 237, 22, 4, 250, 135, 22, 4, 235, 94, 249, 66, - 22, 4, 251, 0, 22, 4, 245, 95, 22, 4, 250, 255, 22, 4, 235, 94, 248, 181, - 22, 4, 248, 240, 22, 4, 247, 2, 22, 4, 248, 239, 22, 243, 10, 158, 242, - 198, 22, 243, 10, 158, 241, 83, 22, 243, 10, 158, 238, 212, 22, 243, 10, - 158, 242, 215, 238, 212, 22, 243, 10, 158, 241, 84, 22, 243, 10, 158, - 241, 199, 22, 243, 10, 158, 239, 24, 22, 243, 10, 158, 241, 149, 22, 243, - 10, 158, 232, 130, 22, 243, 10, 158, 246, 22, 109, 1, 67, 109, 1, 72, - 109, 1, 71, 109, 1, 73, 109, 1, 79, 109, 1, 179, 109, 1, 253, 139, 109, - 1, 201, 109, 1, 254, 5, 109, 1, 254, 6, 109, 1, 253, 234, 109, 1, 253, - 235, 109, 1, 254, 169, 109, 1, 219, 109, 1, 253, 168, 109, 1, 253, 214, - 109, 1, 253, 184, 109, 1, 253, 236, 109, 1, 254, 98, 109, 1, 253, 134, - 109, 1, 253, 250, 109, 1, 253, 251, 109, 1, 253, 216, 109, 1, 254, 8, - 109, 1, 254, 196, 109, 1, 222, 109, 1, 253, 206, 109, 1, 253, 180, 109, - 1, 253, 181, 109, 1, 253, 154, 109, 1, 253, 131, 109, 1, 249, 83, 109, 1, - 251, 253, 109, 1, 253, 197, 109, 1, 253, 166, 109, 1, 253, 173, 109, 1, - 253, 150, 109, 1, 254, 115, 109, 1, 252, 103, 109, 1, 252, 104, 109, 1, - 252, 105, 109, 1, 249, 149, 109, 1, 249, 150, 109, 1, 252, 110, 109, 1, - 253, 132, 109, 1, 193, 109, 1, 253, 210, 109, 1, 253, 198, 109, 1, 253, - 186, 109, 1, 253, 211, 109, 1, 254, 127, 109, 1, 253, 133, 109, 1, 253, - 126, 109, 1, 253, 200, 109, 1, 253, 195, 109, 1, 253, 201, 109, 1, 253, - 212, 109, 1, 253, 225, 109, 1, 253, 232, 109, 1, 254, 158, 109, 1, 249, - 55, 109, 1, 249, 179, 109, 1, 249, 180, 109, 1, 249, 181, 109, 1, 249, - 182, 109, 1, 249, 183, 109, 1, 252, 225, 109, 1, 248, 90, 109, 1, 248, - 112, 109, 1, 248, 140, 109, 1, 249, 4, 109, 1, 249, 5, 109, 1, 252, 230, - 109, 1, 253, 138, 109, 1, 253, 170, 109, 1, 253, 187, 109, 1, 253, 177, - 109, 1, 254, 14, 109, 1, 255, 4, 109, 1, 216, 109, 1, 253, 254, 109, 1, - 253, 189, 109, 1, 253, 162, 109, 1, 253, 161, 109, 1, 255, 10, 14, 15, - 72, 14, 15, 249, 231, 14, 15, 71, 14, 15, 253, 142, 14, 15, 73, 14, 15, - 253, 156, 14, 15, 240, 44, 253, 156, 14, 15, 55, 253, 164, 14, 15, 55, - 71, 14, 15, 67, 14, 15, 253, 140, 14, 15, 253, 170, 14, 15, 106, 253, - 170, 14, 15, 253, 187, 14, 15, 106, 253, 187, 14, 15, 249, 200, 14, 15, - 106, 249, 200, 14, 15, 253, 177, 14, 15, 106, 253, 177, 14, 15, 249, 15, - 14, 15, 106, 249, 15, 14, 15, 238, 66, 249, 15, 14, 15, 253, 138, 14, 15, - 106, 253, 138, 14, 15, 248, 190, 14, 15, 106, 248, 190, 14, 15, 238, 66, - 248, 190, 14, 15, 253, 149, 14, 15, 240, 44, 255, 16, 14, 15, 238, 62, - 208, 14, 15, 30, 135, 14, 15, 30, 191, 14, 15, 30, 240, 17, 137, 242, - 233, 14, 15, 30, 253, 159, 137, 242, 233, 14, 15, 30, 38, 137, 242, 233, - 14, 15, 30, 242, 233, 14, 15, 30, 45, 135, 14, 15, 30, 45, 242, 215, 59, - 237, 45, 14, 15, 30, 240, 1, 248, 40, 14, 15, 30, 242, 215, 163, 108, 14, - 15, 30, 243, 12, 14, 15, 30, 92, 242, 234, 14, 15, 253, 202, 14, 15, 253, - 247, 14, 15, 254, 9, 14, 15, 254, 19, 14, 15, 253, 175, 14, 15, 246, 236, - 14, 15, 253, 147, 14, 15, 249, 138, 14, 15, 253, 208, 14, 15, 249, 140, - 14, 15, 240, 44, 249, 140, 14, 15, 55, 249, 80, 14, 15, 55, 253, 214, 14, - 15, 253, 129, 14, 15, 249, 133, 14, 15, 248, 239, 14, 15, 106, 248, 239, - 14, 15, 248, 240, 14, 15, 106, 248, 240, 14, 15, 243, 247, 14, 15, 106, - 243, 247, 14, 15, 249, 143, 14, 15, 106, 249, 143, 14, 15, 243, 248, 14, - 15, 106, 243, 248, 14, 15, 248, 181, 14, 15, 106, 248, 181, 14, 15, 243, - 118, 14, 15, 106, 243, 118, 14, 15, 240, 44, 243, 118, 14, 15, 223, 14, - 15, 106, 223, 14, 15, 55, 192, 14, 15, 253, 195, 14, 15, 247, 135, 14, - 15, 253, 212, 14, 15, 252, 221, 14, 15, 87, 14, 15, 249, 2, 14, 15, 240, - 44, 249, 2, 14, 15, 55, 248, 149, 14, 15, 55, 253, 201, 14, 15, 253, 126, - 14, 15, 249, 172, 14, 15, 249, 8, 14, 15, 106, 249, 8, 14, 15, 249, 189, - 14, 15, 106, 249, 189, 14, 15, 244, 42, 14, 15, 106, 244, 42, 14, 15, - 111, 14, 15, 106, 111, 14, 15, 244, 43, 14, 15, 106, 244, 43, 14, 15, - 249, 7, 14, 15, 106, 249, 7, 14, 15, 243, 132, 14, 15, 106, 243, 132, 14, - 15, 238, 66, 243, 132, 14, 15, 214, 14, 15, 249, 186, 14, 15, 249, 187, - 14, 15, 249, 6, 14, 15, 248, 71, 14, 15, 253, 172, 14, 15, 246, 4, 14, - 15, 253, 215, 14, 15, 251, 150, 14, 15, 253, 190, 14, 15, 249, 98, 14, - 15, 240, 44, 249, 98, 14, 15, 201, 14, 15, 249, 90, 14, 15, 248, 222, 14, - 15, 106, 248, 222, 14, 15, 248, 223, 14, 15, 106, 248, 223, 14, 15, 243, - 211, 14, 15, 106, 243, 211, 14, 15, 249, 100, 14, 15, 106, 249, 100, 14, - 15, 243, 212, 14, 15, 106, 243, 212, 14, 15, 248, 221, 14, 15, 106, 248, - 221, 14, 15, 243, 65, 14, 15, 106, 243, 65, 14, 15, 238, 66, 243, 65, 14, - 15, 255, 15, 14, 15, 254, 108, 14, 15, 232, 86, 248, 218, 14, 15, 232, - 86, 251, 149, 14, 15, 232, 86, 251, 158, 14, 15, 232, 86, 251, 136, 14, - 15, 254, 54, 14, 15, 244, 239, 14, 15, 254, 55, 14, 15, 250, 162, 14, 15, - 253, 224, 14, 15, 249, 42, 14, 15, 240, 44, 249, 42, 14, 15, 253, 152, - 14, 15, 249, 37, 14, 15, 249, 44, 14, 15, 106, 249, 44, 14, 15, 249, 45, - 14, 15, 106, 249, 45, 14, 15, 243, 159, 14, 15, 106, 243, 159, 14, 15, - 249, 46, 14, 15, 106, 249, 46, 14, 15, 243, 160, 14, 15, 106, 243, 160, - 14, 15, 248, 203, 14, 15, 106, 248, 203, 14, 15, 243, 91, 14, 15, 106, - 243, 91, 14, 15, 238, 66, 243, 91, 14, 15, 255, 18, 14, 15, 240, 36, 254, - 46, 14, 15, 253, 206, 14, 15, 246, 61, 14, 15, 253, 180, 14, 15, 251, - 232, 14, 15, 253, 181, 14, 15, 249, 112, 14, 15, 240, 44, 249, 112, 14, - 15, 222, 14, 15, 249, 110, 14, 15, 248, 229, 14, 15, 106, 248, 229, 14, - 15, 248, 230, 14, 15, 106, 248, 230, 14, 15, 243, 228, 14, 15, 106, 243, - 228, 14, 15, 249, 117, 14, 15, 106, 249, 117, 14, 15, 243, 229, 14, 15, - 106, 243, 229, 14, 15, 248, 169, 14, 15, 106, 248, 169, 14, 15, 243, 109, - 14, 15, 106, 243, 109, 14, 15, 238, 66, 243, 109, 14, 15, 173, 14, 15, - 106, 173, 14, 15, 254, 203, 14, 15, 234, 47, 173, 14, 15, 240, 36, 173, - 14, 15, 253, 197, 14, 15, 246, 102, 14, 15, 253, 166, 14, 15, 252, 22, - 14, 15, 253, 173, 14, 15, 249, 121, 14, 15, 240, 44, 249, 121, 14, 15, - 253, 131, 14, 15, 248, 231, 14, 15, 249, 124, 14, 15, 106, 249, 124, 14, - 15, 248, 176, 14, 15, 106, 248, 176, 14, 15, 243, 110, 14, 15, 106, 243, - 110, 14, 15, 238, 66, 243, 110, 14, 15, 197, 14, 15, 55, 254, 26, 14, 15, - 254, 214, 14, 15, 253, 250, 14, 15, 246, 33, 14, 15, 253, 251, 14, 15, - 251, 196, 14, 15, 253, 216, 14, 15, 248, 226, 14, 15, 240, 44, 248, 226, - 14, 15, 253, 134, 14, 15, 249, 101, 14, 15, 249, 106, 14, 15, 106, 249, - 106, 14, 15, 249, 107, 14, 15, 106, 249, 107, 14, 15, 243, 220, 14, 15, - 106, 243, 220, 14, 15, 249, 108, 14, 15, 106, 249, 108, 14, 15, 243, 221, - 14, 15, 106, 243, 221, 14, 15, 248, 227, 14, 15, 106, 248, 227, 14, 15, - 243, 219, 14, 15, 106, 243, 219, 14, 15, 162, 14, 15, 106, 162, 14, 15, - 113, 162, 14, 15, 253, 210, 14, 15, 247, 60, 14, 15, 253, 198, 14, 15, - 252, 177, 14, 15, 253, 186, 14, 15, 249, 166, 14, 15, 240, 44, 249, 166, - 14, 15, 253, 132, 14, 15, 249, 158, 14, 15, 249, 169, 14, 15, 106, 249, - 169, 14, 15, 249, 170, 14, 15, 106, 249, 170, 14, 15, 244, 26, 14, 15, - 106, 244, 26, 14, 15, 249, 171, 14, 15, 106, 249, 171, 14, 15, 244, 27, - 14, 15, 106, 244, 27, 14, 15, 248, 252, 14, 15, 106, 248, 252, 14, 15, - 243, 125, 14, 15, 106, 243, 125, 14, 15, 238, 66, 243, 125, 14, 15, 193, - 14, 15, 234, 47, 193, 14, 15, 254, 128, 14, 15, 235, 57, 193, 14, 15, - 234, 225, 254, 238, 14, 15, 238, 66, 252, 181, 14, 15, 238, 66, 252, 164, - 14, 15, 238, 66, 247, 98, 14, 15, 238, 66, 247, 124, 14, 15, 238, 66, - 247, 93, 14, 15, 238, 66, 247, 66, 14, 15, 248, 118, 14, 15, 248, 185, - 14, 15, 247, 73, 14, 15, 248, 110, 14, 15, 247, 76, 14, 15, 248, 46, 14, - 15, 244, 7, 14, 15, 244, 16, 14, 15, 106, 244, 16, 14, 15, 244, 17, 14, - 15, 106, 244, 17, 14, 15, 240, 230, 14, 15, 106, 240, 230, 14, 15, 244, - 18, 14, 15, 106, 244, 18, 14, 15, 240, 231, 14, 15, 106, 240, 231, 14, - 15, 243, 121, 14, 15, 106, 243, 121, 14, 15, 240, 229, 14, 15, 106, 240, - 229, 14, 15, 254, 72, 14, 15, 253, 254, 14, 15, 247, 212, 14, 15, 253, - 189, 14, 15, 253, 81, 14, 15, 253, 162, 14, 15, 249, 210, 14, 15, 240, - 44, 249, 210, 14, 15, 216, 14, 15, 248, 191, 14, 15, 249, 213, 14, 15, - 106, 249, 213, 14, 15, 249, 214, 14, 15, 106, 249, 214, 14, 15, 244, 61, - 14, 15, 106, 244, 61, 14, 15, 249, 215, 14, 15, 106, 249, 215, 14, 15, - 244, 62, 14, 15, 106, 244, 62, 14, 15, 249, 212, 14, 15, 106, 249, 212, - 14, 15, 243, 137, 14, 15, 106, 243, 137, 14, 15, 238, 66, 243, 137, 14, - 15, 255, 14, 14, 15, 234, 98, 255, 14, 14, 15, 106, 255, 14, 14, 15, 240, - 36, 253, 189, 14, 15, 253, 194, 14, 15, 242, 74, 253, 194, 14, 15, 106, - 253, 250, 14, 15, 247, 26, 14, 15, 253, 209, 14, 15, 252, 137, 14, 15, - 253, 160, 14, 15, 252, 143, 14, 15, 106, 253, 216, 14, 15, 253, 130, 14, - 15, 248, 182, 14, 15, 106, 253, 134, 14, 15, 244, 2, 14, 15, 106, 244, 2, - 14, 15, 144, 14, 15, 106, 144, 14, 15, 113, 144, 14, 15, 254, 62, 14, 15, - 245, 88, 14, 15, 253, 245, 14, 15, 250, 243, 14, 15, 254, 63, 14, 15, - 250, 249, 14, 15, 253, 179, 14, 15, 249, 60, 14, 15, 243, 177, 14, 15, - 106, 243, 177, 14, 15, 255, 19, 14, 15, 248, 111, 14, 15, 240, 141, 248, - 111, 14, 15, 248, 121, 14, 15, 240, 141, 248, 121, 14, 15, 243, 128, 14, - 15, 240, 141, 243, 128, 14, 15, 248, 97, 14, 15, 244, 30, 14, 15, 248, - 55, 14, 15, 243, 76, 14, 15, 240, 244, 14, 15, 106, 240, 244, 14, 15, - 254, 46, 14, 15, 247, 166, 14, 15, 247, 167, 14, 15, 243, 131, 14, 15, - 242, 247, 14, 15, 252, 231, 14, 15, 252, 239, 14, 15, 252, 240, 14, 15, - 252, 241, 14, 15, 252, 238, 14, 15, 238, 86, 253, 168, 14, 15, 238, 86, - 253, 214, 14, 15, 238, 86, 251, 61, 14, 15, 238, 86, 253, 184, 14, 15, - 238, 86, 251, 78, 14, 15, 238, 86, 219, 14, 15, 238, 86, 248, 114, 14, - 15, 238, 86, 192, 14, 15, 239, 148, 192, 14, 15, 254, 172, 14, 15, 247, - 5, 14, 15, 254, 28, 14, 15, 249, 147, 14, 15, 254, 45, 14, 15, 252, 100, - 14, 15, 253, 217, 14, 15, 248, 241, 14, 15, 255, 20, 14, 15, 244, 34, 14, - 15, 244, 35, 14, 15, 244, 36, 14, 15, 244, 33, 14, 15, 106, 253, 194, 14, - 15, 106, 253, 209, 14, 15, 106, 253, 160, 14, 15, 106, 253, 130, 14, 15, - 242, 5, 14, 15, 248, 232, 14, 15, 246, 147, 14, 15, 248, 172, 14, 15, - 246, 149, 14, 15, 248, 50, 14, 15, 246, 139, 14, 15, 254, 26, 14, 15, - 252, 30, 14, 15, 240, 36, 248, 118, 14, 15, 240, 36, 248, 185, 14, 15, - 240, 36, 248, 110, 14, 15, 240, 36, 248, 46, 14, 15, 234, 24, 248, 111, - 14, 15, 234, 24, 248, 121, 14, 15, 234, 24, 248, 97, 14, 15, 234, 24, - 248, 55, 14, 15, 234, 24, 254, 46, 14, 15, 249, 103, 14, 15, 246, 46, 14, - 15, 249, 104, 14, 15, 246, 47, 14, 15, 248, 225, 14, 15, 246, 44, 14, 15, - 254, 193, 14, 15, 238, 88, 248, 111, 14, 15, 238, 88, 248, 121, 14, 15, - 238, 88, 243, 128, 14, 15, 238, 88, 248, 97, 14, 15, 238, 88, 244, 30, - 14, 15, 238, 88, 248, 55, 14, 15, 238, 88, 243, 76, 14, 15, 238, 88, 254, - 46, 14, 15, 238, 241, 217, 14, 15, 235, 57, 72, 14, 15, 235, 57, 71, 14, - 15, 235, 57, 73, 14, 15, 235, 57, 67, 14, 15, 235, 57, 253, 170, 14, 15, - 235, 57, 253, 187, 14, 15, 235, 57, 253, 177, 14, 15, 235, 57, 253, 138, - 14, 15, 235, 57, 253, 197, 14, 15, 235, 57, 253, 166, 14, 15, 235, 57, - 253, 173, 14, 15, 235, 57, 253, 131, 14, 15, 235, 57, 253, 172, 14, 15, - 235, 57, 253, 215, 14, 15, 235, 57, 253, 190, 14, 15, 235, 57, 201, 14, - 15, 240, 36, 253, 168, 14, 15, 240, 36, 253, 214, 14, 15, 240, 36, 253, - 184, 14, 15, 240, 36, 219, 14, 15, 55, 251, 19, 14, 15, 55, 249, 75, 14, - 15, 55, 248, 127, 14, 15, 55, 245, 119, 14, 15, 55, 251, 18, 14, 15, 55, - 248, 77, 14, 15, 55, 253, 185, 14, 15, 55, 253, 160, 14, 15, 55, 253, - 194, 14, 15, 55, 249, 153, 14, 15, 55, 253, 209, 14, 15, 55, 253, 130, - 14, 15, 55, 254, 14, 14, 15, 55, 253, 177, 14, 15, 55, 253, 170, 14, 15, - 55, 249, 199, 14, 15, 55, 253, 187, 14, 15, 55, 253, 138, 14, 15, 55, - 251, 88, 14, 15, 55, 251, 87, 14, 15, 55, 251, 85, 14, 15, 55, 245, 208, - 14, 15, 55, 251, 86, 14, 15, 55, 251, 84, 14, 15, 55, 249, 177, 14, 15, - 55, 248, 97, 14, 15, 55, 248, 111, 14, 15, 55, 243, 77, 14, 15, 55, 248, - 121, 14, 15, 55, 248, 55, 14, 15, 55, 252, 232, 14, 15, 55, 249, 6, 14, - 15, 55, 249, 186, 14, 15, 55, 247, 164, 14, 15, 55, 249, 187, 14, 15, 55, - 248, 71, 14, 15, 55, 253, 239, 14, 15, 55, 253, 208, 14, 15, 55, 253, - 175, 14, 15, 55, 248, 180, 14, 15, 55, 253, 147, 14, 15, 55, 253, 129, - 14, 15, 55, 223, 14, 15, 55, 253, 235, 14, 15, 55, 253, 234, 14, 15, 55, - 254, 5, 14, 15, 55, 249, 68, 14, 15, 55, 254, 6, 14, 15, 55, 253, 139, - 14, 15, 55, 251, 146, 14, 15, 55, 248, 220, 14, 15, 55, 249, 94, 14, 15, - 55, 246, 11, 14, 15, 55, 248, 219, 14, 15, 55, 248, 61, 14, 15, 55, 251, - 156, 14, 15, 55, 251, 155, 14, 15, 55, 251, 153, 14, 15, 55, 246, 17, 14, - 15, 55, 251, 154, 14, 15, 55, 249, 97, 14, 15, 55, 254, 107, 14, 15, 55, - 253, 150, 14, 15, 55, 253, 173, 14, 15, 55, 253, 197, 14, 15, 55, 249, - 118, 14, 15, 55, 253, 166, 14, 15, 55, 253, 131, 14, 15, 55, 253, 154, - 14, 15, 55, 253, 181, 14, 15, 55, 253, 206, 14, 15, 55, 249, 111, 14, 15, - 55, 253, 180, 14, 15, 55, 222, 14, 15, 55, 253, 161, 14, 15, 55, 253, - 162, 14, 15, 55, 253, 254, 14, 15, 55, 248, 192, 14, 15, 55, 253, 189, - 14, 15, 55, 216, 14, 15, 55, 254, 25, 14, 15, 240, 36, 254, 25, 14, 15, - 55, 253, 248, 14, 15, 55, 254, 24, 14, 15, 55, 248, 161, 14, 15, 55, 254, - 7, 14, 15, 240, 36, 254, 7, 14, 15, 55, 253, 146, 14, 15, 55, 249, 88, - 14, 15, 55, 249, 87, 14, 15, 55, 251, 121, 14, 15, 55, 245, 238, 14, 15, - 55, 249, 86, 14, 15, 55, 251, 120, 14, 15, 55, 254, 8, 14, 15, 55, 253, - 216, 14, 15, 55, 253, 250, 14, 15, 55, 249, 102, 14, 15, 55, 253, 251, - 14, 15, 55, 253, 134, 14, 15, 55, 250, 201, 14, 15, 55, 250, 200, 14, 15, - 55, 250, 198, 14, 15, 55, 245, 70, 14, 15, 55, 250, 199, 14, 15, 55, 249, - 55, 14, 15, 55, 251, 194, 14, 15, 55, 249, 104, 14, 15, 55, 251, 193, 14, - 15, 55, 246, 45, 14, 15, 55, 249, 103, 14, 15, 55, 248, 225, 14, 15, 55, - 247, 155, 14, 15, 55, 244, 36, 14, 15, 55, 244, 34, 14, 15, 55, 242, 155, - 14, 15, 55, 244, 35, 14, 15, 55, 244, 33, 14, 15, 55, 249, 183, 14, 15, - 55, 249, 182, 14, 15, 55, 249, 180, 14, 15, 55, 247, 154, 14, 15, 55, - 249, 181, 14, 15, 55, 249, 179, 14, 15, 55, 254, 18, 14, 15, 55, 253, - 222, 14, 15, 55, 253, 228, 14, 15, 55, 248, 194, 14, 15, 55, 254, 17, 14, - 15, 55, 253, 163, 14, 15, 55, 255, 17, 14, 15, 55, 54, 255, 17, 14, 15, - 55, 250, 220, 14, 15, 55, 250, 219, 14, 15, 55, 248, 126, 14, 15, 55, - 245, 78, 14, 15, 55, 250, 218, 14, 15, 55, 248, 153, 14, 15, 55, 253, - 211, 14, 15, 55, 253, 186, 14, 15, 55, 253, 210, 14, 15, 55, 248, 184, - 14, 15, 55, 253, 198, 14, 15, 55, 253, 132, 14, 15, 55, 248, 248, 14, 15, - 55, 248, 110, 14, 15, 55, 248, 118, 14, 15, 55, 244, 9, 14, 15, 55, 248, - 185, 14, 15, 55, 248, 46, 14, 15, 55, 254, 72, 14, 15, 55, 249, 5, 14, - 15, 55, 249, 4, 14, 15, 55, 248, 112, 14, 15, 55, 244, 39, 14, 15, 55, - 248, 140, 14, 15, 55, 248, 90, 14, 15, 55, 248, 200, 14, 15, 55, 248, - 125, 14, 15, 55, 248, 88, 14, 15, 55, 243, 54, 14, 15, 55, 248, 67, 14, - 15, 55, 248, 57, 14, 15, 55, 247, 172, 14, 15, 55, 247, 171, 14, 15, 55, - 247, 169, 14, 15, 55, 242, 160, 14, 15, 55, 247, 170, 14, 15, 55, 247, - 168, 14, 15, 254, 83, 52, 14, 15, 248, 37, 208, 14, 15, 249, 146, 14, 15, - 246, 140, 14, 15, 246, 173, 14, 15, 242, 20, 14, 15, 246, 174, 14, 15, - 242, 21, 14, 15, 246, 172, 14, 15, 242, 19, 242, 221, 247, 96, 69, 242, - 221, 1, 241, 29, 242, 221, 1, 246, 55, 242, 221, 1, 241, 104, 242, 221, - 1, 247, 62, 242, 221, 1, 246, 156, 242, 221, 1, 247, 182, 242, 221, 1, - 245, 33, 242, 221, 1, 242, 153, 242, 221, 1, 245, 26, 242, 221, 1, 241, - 48, 242, 221, 1, 246, 94, 242, 221, 1, 245, 126, 242, 221, 1, 237, 220, - 242, 221, 1, 239, 205, 242, 221, 1, 247, 52, 242, 221, 1, 244, 72, 242, - 221, 1, 249, 130, 242, 221, 1, 254, 253, 242, 221, 1, 237, 144, 242, 221, - 1, 237, 182, 242, 221, 1, 237, 143, 242, 221, 1, 253, 227, 242, 221, 1, - 236, 134, 242, 221, 1, 245, 225, 242, 221, 1, 232, 163, 242, 221, 1, 242, - 54, 242, 221, 238, 184, 69, 242, 221, 224, 238, 184, 69, 119, 1, 250, - 238, 250, 240, 255, 74, 255, 19, 119, 1, 179, 119, 1, 253, 4, 255, 95, - 79, 119, 1, 254, 135, 119, 1, 255, 14, 119, 1, 255, 16, 119, 1, 238, 28, - 247, 146, 240, 149, 119, 1, 248, 109, 119, 1, 244, 82, 67, 119, 1, 255, - 86, 73, 119, 1, 255, 67, 67, 119, 1, 244, 69, 119, 1, 231, 23, 73, 119, - 1, 231, 77, 73, 119, 1, 73, 119, 1, 253, 193, 119, 1, 254, 9, 119, 1, - 247, 27, 254, 71, 252, 132, 144, 119, 1, 241, 195, 119, 1, 250, 155, 119, - 1, 251, 139, 255, 15, 119, 1, 210, 119, 1, 248, 108, 119, 1, 251, 13, - 251, 41, 210, 119, 1, 251, 9, 119, 1, 247, 198, 253, 40, 255, 16, 119, 1, - 241, 145, 192, 119, 1, 245, 138, 192, 119, 1, 226, 249, 192, 119, 1, 227, - 6, 192, 119, 1, 241, 253, 254, 218, 252, 0, 197, 119, 1, 231, 29, 197, - 119, 1, 236, 7, 119, 1, 251, 108, 255, 77, 254, 178, 71, 119, 1, 72, 119, - 1, 245, 234, 221, 119, 1, 251, 14, 119, 1, 231, 72, 253, 178, 119, 1, - 232, 54, 67, 119, 1, 251, 109, 250, 226, 119, 1, 242, 57, 242, 56, 223, - 119, 1, 244, 76, 241, 97, 119, 1, 242, 122, 193, 119, 1, 247, 89, 231, - 24, 193, 119, 1, 231, 78, 193, 119, 1, 255, 18, 119, 1, 255, 17, 119, 1, - 247, 153, 254, 249, 254, 251, 214, 119, 1, 231, 79, 214, 119, 1, 209, - 119, 1, 237, 76, 244, 218, 239, 10, 217, 119, 1, 226, 252, 217, 119, 1, - 236, 8, 119, 1, 239, 152, 119, 1, 245, 80, 255, 72, 72, 119, 1, 241, 227, - 254, 111, 173, 119, 1, 229, 49, 173, 119, 1, 231, 28, 173, 119, 1, 241, - 213, 251, 181, 251, 204, 162, 119, 1, 236, 6, 119, 1, 239, 98, 119, 1, - 251, 104, 119, 1, 245, 31, 250, 179, 209, 119, 1, 239, 155, 245, 85, 73, - 119, 1, 248, 206, 119, 1, 251, 106, 119, 1, 237, 98, 119, 1, 244, 240, - 119, 1, 241, 47, 119, 1, 247, 120, 119, 1, 231, 25, 119, 1, 231, 80, 119, - 1, 231, 141, 119, 1, 255, 20, 119, 1, 206, 119, 240, 12, 232, 75, 119, - 237, 215, 232, 75, 119, 243, 38, 232, 75, 119, 241, 16, 91, 119, 238, 34, - 91, 119, 237, 75, 91, 238, 63, 1, 67, 238, 63, 1, 71, 238, 63, 1, 79, - 238, 63, 1, 201, 238, 63, 1, 253, 139, 238, 63, 1, 248, 50, 238, 63, 1, - 253, 126, 238, 63, 1, 253, 133, 238, 63, 1, 253, 131, 238, 63, 1, 253, - 129, 238, 63, 1, 253, 141, 238, 63, 1, 222, 238, 63, 1, 216, 238, 63, 1, - 253, 134, 238, 63, 1, 253, 138, 238, 63, 1, 253, 132, 238, 63, 1, 219, - 238, 63, 33, 21, 71, 238, 63, 33, 21, 79, 238, 63, 21, 238, 72, 238, 60, - 1, 67, 238, 60, 1, 71, 238, 60, 1, 79, 238, 60, 1, 201, 238, 60, 1, 253, - 139, 238, 60, 1, 248, 50, 238, 60, 1, 253, 126, 238, 60, 1, 253, 133, - 238, 60, 1, 253, 131, 238, 60, 1, 253, 129, 238, 60, 1, 253, 141, 238, - 60, 1, 222, 238, 60, 1, 216, 238, 60, 1, 253, 130, 238, 60, 1, 253, 134, - 238, 60, 1, 253, 138, 238, 60, 1, 253, 132, 238, 60, 1, 219, 238, 60, 33, - 21, 71, 238, 60, 33, 21, 79, 238, 60, 21, 236, 70, 234, 63, 240, 12, 232, - 75, 234, 63, 45, 232, 75, 242, 231, 1, 67, 242, 231, 1, 71, 242, 231, 1, - 79, 242, 231, 1, 201, 242, 231, 1, 253, 139, 242, 231, 1, 248, 50, 242, - 231, 1, 253, 126, 242, 231, 1, 253, 133, 242, 231, 1, 253, 131, 242, 231, - 1, 253, 129, 242, 231, 1, 253, 141, 242, 231, 1, 222, 242, 231, 1, 216, - 242, 231, 1, 253, 130, 242, 231, 1, 253, 134, 242, 231, 1, 253, 138, 242, - 231, 1, 253, 132, 242, 231, 1, 219, 242, 231, 33, 21, 71, 242, 231, 33, - 21, 79, 236, 157, 1, 67, 236, 157, 1, 71, 236, 157, 1, 79, 236, 157, 1, - 201, 236, 157, 1, 253, 139, 236, 157, 1, 248, 50, 236, 157, 1, 253, 126, - 236, 157, 1, 253, 133, 236, 157, 1, 253, 131, 236, 157, 1, 253, 129, 236, - 157, 1, 253, 141, 236, 157, 1, 222, 236, 157, 1, 216, 236, 157, 1, 253, - 134, 236, 157, 1, 253, 138, 236, 157, 1, 253, 132, 236, 157, 33, 21, 71, - 236, 157, 33, 21, 79, 63, 1, 201, 63, 1, 248, 61, 63, 1, 253, 190, 63, 1, - 248, 220, 63, 1, 248, 172, 63, 1, 253, 152, 63, 1, 248, 57, 63, 1, 253, - 224, 63, 1, 248, 125, 63, 1, 248, 133, 63, 1, 253, 133, 63, 1, 242, 247, - 63, 1, 253, 225, 63, 1, 243, 131, 63, 1, 252, 31, 63, 1, 253, 126, 63, 1, - 248, 55, 63, 1, 87, 63, 1, 248, 97, 63, 1, 253, 173, 63, 1, 253, 141, 63, - 1, 248, 65, 63, 1, 253, 208, 63, 1, 248, 238, 63, 1, 253, 181, 63, 1, - 253, 162, 63, 1, 253, 160, 63, 1, 253, 216, 63, 1, 254, 13, 63, 1, 248, - 46, 63, 1, 248, 250, 63, 1, 253, 132, 63, 1, 219, 63, 1, 253, 134, 63, 1, - 253, 217, 63, 233, 52, 33, 252, 86, 63, 233, 52, 33, 248, 241, 63, 233, - 52, 33, 254, 28, 63, 233, 52, 33, 249, 147, 63, 233, 52, 33, 254, 29, 63, - 233, 52, 33, 252, 106, 63, 233, 52, 33, 249, 150, 63, 233, 52, 33, 247, - 20, 63, 233, 52, 33, 254, 125, 63, 233, 52, 33, 252, 163, 63, 233, 52, - 33, 254, 110, 63, 233, 52, 33, 251, 217, 63, 233, 52, 33, 254, 70, 63, - 233, 52, 33, 249, 146, 63, 233, 52, 33, 254, 123, 249, 9, 127, 63, 233, - 52, 33, 254, 123, 249, 9, 111, 63, 233, 52, 33, 252, 87, 63, 33, 237, 13, - 254, 142, 63, 33, 237, 13, 253, 140, 63, 33, 21, 253, 140, 63, 33, 21, - 71, 63, 33, 21, 253, 142, 63, 33, 21, 255, 14, 63, 33, 21, 254, 77, 63, - 33, 21, 79, 63, 33, 21, 253, 148, 63, 33, 21, 254, 74, 63, 33, 21, 253, - 193, 63, 33, 21, 216, 63, 33, 21, 253, 237, 63, 33, 21, 72, 63, 33, 21, - 253, 178, 63, 33, 21, 253, 149, 63, 33, 21, 253, 156, 63, 33, 21, 253, - 151, 63, 21, 237, 221, 63, 21, 237, 248, 63, 21, 231, 84, 63, 21, 232, - 184, 63, 21, 238, 32, 63, 21, 239, 3, 63, 21, 242, 86, 63, 21, 233, 43, - 63, 21, 237, 186, 63, 21, 241, 7, 63, 21, 242, 96, 239, 179, 63, 21, 239, - 243, 63, 21, 241, 62, 63, 21, 233, 121, 63, 21, 246, 10, 63, 21, 233, - 120, 63, 21, 241, 42, 254, 69, 246, 24, 63, 21, 253, 204, 249, 2, 63, 21, - 239, 8, 63, 21, 242, 59, 246, 93, 63, 21, 237, 191, 63, 236, 181, 12, - 247, 31, 63, 21, 231, 59, 63, 21, 235, 176, 63, 26, 242, 217, 63, 26, - 127, 63, 26, 111, 63, 26, 166, 63, 26, 177, 63, 26, 176, 63, 26, 187, 63, - 26, 203, 63, 26, 195, 63, 26, 202, 63, 12, 253, 204, 243, 4, 252, 184, - 63, 12, 253, 204, 243, 4, 246, 99, 63, 12, 253, 204, 243, 4, 249, 138, - 63, 12, 253, 204, 243, 4, 250, 113, 63, 12, 253, 204, 243, 4, 244, 233, - 63, 12, 253, 204, 243, 4, 246, 253, 63, 12, 253, 204, 243, 4, 234, 239, - 63, 12, 253, 204, 243, 4, 236, 79, 63, 12, 253, 204, 243, 4, 236, 78, 63, - 12, 253, 204, 243, 4, 234, 238, 58, 241, 31, 58, 235, 69, 58, 240, 27, - 58, 248, 37, 208, 58, 240, 24, 58, 248, 58, 243, 5, 58, 248, 47, 248, - 186, 238, 93, 58, 248, 54, 4, 237, 78, 238, 95, 58, 240, 14, 240, 27, 58, - 240, 14, 248, 37, 208, 58, 239, 144, 58, 248, 210, 34, 236, 239, 127, 58, - 248, 210, 34, 236, 239, 111, 58, 248, 210, 34, 236, 239, 166, 58, 33, - 234, 6, 58, 26, 242, 217, 58, 26, 127, 58, 26, 111, 58, 26, 166, 58, 26, - 177, 58, 26, 176, 58, 26, 187, 58, 26, 203, 58, 26, 195, 58, 26, 202, 58, - 1, 67, 58, 1, 72, 58, 1, 71, 58, 1, 73, 58, 1, 79, 58, 1, 253, 193, 58, - 1, 253, 252, 58, 1, 253, 164, 58, 1, 253, 131, 58, 1, 248, 124, 58, 1, - 253, 141, 58, 1, 253, 129, 58, 1, 253, 217, 58, 1, 253, 139, 58, 1, 222, - 58, 1, 253, 134, 58, 1, 253, 132, 58, 1, 248, 46, 58, 1, 253, 126, 58, 1, - 253, 133, 58, 1, 248, 57, 58, 1, 253, 146, 58, 1, 216, 58, 1, 253, 130, - 58, 1, 253, 138, 58, 1, 253, 179, 58, 1, 201, 58, 1, 248, 61, 58, 1, 248, - 90, 58, 1, 253, 163, 58, 1, 248, 114, 58, 1, 253, 113, 58, 1, 248, 225, - 58, 1, 249, 217, 58, 1, 248, 67, 58, 1, 248, 47, 183, 33, 52, 58, 1, 248, - 47, 72, 58, 1, 248, 47, 71, 58, 1, 248, 47, 73, 58, 1, 248, 47, 79, 58, - 1, 248, 47, 253, 193, 58, 1, 248, 47, 253, 252, 58, 1, 248, 47, 248, 124, - 58, 1, 248, 47, 253, 141, 58, 1, 248, 47, 253, 129, 58, 1, 248, 47, 253, - 217, 58, 1, 248, 47, 253, 139, 58, 1, 248, 47, 222, 58, 1, 248, 47, 253, - 126, 58, 1, 248, 47, 253, 133, 58, 1, 248, 47, 248, 57, 58, 1, 248, 47, - 253, 146, 58, 1, 248, 47, 248, 90, 58, 1, 248, 47, 216, 58, 1, 248, 47, - 253, 138, 58, 1, 248, 47, 201, 58, 1, 248, 47, 248, 211, 58, 1, 248, 47, - 248, 114, 58, 1, 248, 47, 251, 115, 58, 1, 248, 47, 252, 20, 58, 1, 248, - 47, 248, 153, 58, 1, 248, 54, 72, 58, 1, 248, 54, 71, 58, 1, 248, 54, - 254, 102, 58, 1, 248, 54, 253, 252, 58, 1, 248, 54, 79, 58, 1, 248, 54, - 248, 124, 58, 1, 248, 54, 201, 58, 1, 248, 54, 253, 139, 58, 1, 248, 54, - 219, 58, 1, 248, 54, 253, 129, 58, 1, 248, 54, 248, 46, 58, 1, 248, 54, - 253, 126, 58, 1, 248, 54, 253, 133, 58, 1, 248, 54, 253, 146, 58, 1, 248, - 54, 253, 179, 58, 1, 248, 54, 248, 211, 58, 1, 248, 54, 248, 114, 58, 1, - 248, 54, 248, 90, 58, 1, 248, 54, 253, 163, 58, 1, 248, 54, 248, 182, 58, - 1, 248, 54, 248, 57, 58, 1, 248, 54, 248, 99, 58, 1, 240, 14, 71, 58, 1, - 240, 14, 201, 58, 1, 240, 14, 253, 130, 58, 1, 240, 14, 253, 179, 58, 1, - 240, 14, 248, 99, 58, 1, 253, 128, 248, 36, 237, 62, 127, 58, 1, 253, - 128, 248, 36, 239, 244, 127, 58, 1, 253, 128, 248, 36, 239, 36, 58, 1, - 253, 128, 248, 36, 237, 50, 58, 1, 253, 128, 248, 36, 236, 145, 237, 50, - 58, 1, 253, 128, 248, 36, 238, 163, 58, 1, 253, 128, 248, 36, 204, 238, - 163, 58, 1, 253, 128, 248, 36, 67, 58, 1, 253, 128, 248, 36, 71, 58, 1, - 253, 128, 248, 36, 201, 58, 1, 253, 128, 248, 36, 248, 50, 58, 1, 253, - 128, 248, 36, 253, 152, 58, 1, 253, 128, 248, 36, 248, 71, 58, 1, 253, - 128, 248, 36, 242, 247, 58, 1, 253, 128, 248, 36, 248, 75, 58, 1, 253, - 128, 248, 36, 248, 82, 58, 1, 253, 128, 248, 36, 253, 126, 58, 1, 253, - 128, 248, 36, 253, 133, 58, 1, 253, 128, 248, 36, 253, 129, 58, 1, 253, - 128, 248, 36, 248, 65, 58, 1, 253, 128, 248, 36, 248, 66, 58, 1, 253, - 128, 248, 36, 248, 99, 58, 1, 253, 128, 248, 36, 253, 163, 58, 1, 253, - 128, 248, 36, 254, 0, 58, 1, 248, 47, 253, 128, 248, 36, 253, 126, 58, 1, - 248, 47, 253, 128, 248, 36, 248, 99, 58, 1, 240, 14, 253, 128, 248, 36, - 248, 77, 58, 1, 240, 14, 253, 128, 248, 36, 248, 50, 58, 1, 240, 14, 253, - 128, 248, 36, 253, 152, 58, 1, 240, 14, 253, 128, 248, 36, 248, 89, 58, - 1, 240, 14, 253, 128, 248, 36, 248, 71, 58, 1, 240, 14, 253, 128, 248, - 36, 242, 249, 58, 1, 240, 14, 253, 128, 248, 36, 253, 126, 58, 1, 240, - 14, 253, 128, 248, 36, 248, 76, 58, 1, 240, 14, 253, 128, 248, 36, 248, - 66, 58, 1, 240, 14, 253, 128, 248, 36, 250, 174, 58, 1, 240, 14, 253, - 128, 248, 36, 248, 99, 58, 1, 240, 14, 253, 128, 248, 36, 253, 163, 58, - 1, 253, 128, 248, 36, 137, 79, 58, 1, 253, 128, 248, 36, 137, 216, 58, 1, - 240, 14, 253, 128, 248, 36, 248, 81, 58, 1, 253, 128, 248, 36, 237, 101, - 149, 232, 65, 239, 117, 149, 1, 201, 149, 1, 248, 61, 149, 1, 253, 139, - 149, 1, 248, 77, 149, 1, 248, 50, 149, 1, 253, 152, 149, 1, 248, 57, 149, - 1, 253, 146, 149, 1, 248, 89, 149, 1, 249, 203, 149, 1, 253, 126, 149, 1, - 248, 55, 149, 1, 253, 133, 149, 1, 248, 76, 149, 1, 253, 131, 149, 1, - 253, 129, 149, 1, 248, 65, 149, 1, 253, 141, 149, 1, 248, 81, 149, 1, - 222, 149, 1, 216, 149, 1, 253, 130, 149, 1, 253, 134, 149, 1, 253, 138, - 149, 1, 248, 46, 149, 1, 248, 66, 149, 1, 253, 132, 149, 1, 219, 149, 33, - 21, 67, 149, 33, 21, 71, 149, 33, 21, 79, 149, 33, 21, 253, 164, 149, 33, - 21, 253, 149, 149, 33, 21, 253, 156, 149, 33, 21, 253, 151, 149, 33, 21, - 72, 149, 33, 21, 73, 149, 213, 1, 216, 149, 213, 1, 253, 130, 149, 213, - 1, 253, 138, 149, 3, 1, 201, 149, 3, 1, 248, 50, 149, 3, 1, 235, 61, 149, - 3, 1, 253, 126, 149, 3, 1, 253, 131, 149, 3, 1, 253, 129, 149, 3, 1, 222, - 149, 3, 1, 253, 130, 149, 3, 1, 253, 134, 149, 21, 234, 226, 149, 21, - 234, 212, 149, 21, 247, 59, 149, 21, 248, 226, 149, 233, 54, 69, 149, - 236, 156, 69, 149, 26, 242, 217, 149, 26, 127, 149, 26, 111, 149, 26, - 166, 149, 26, 177, 149, 26, 176, 149, 26, 187, 149, 26, 203, 149, 26, - 195, 149, 26, 202, 81, 255, 21, 1, 201, 81, 255, 21, 1, 253, 253, 81, - 255, 21, 1, 248, 50, 81, 255, 21, 1, 248, 90, 81, 255, 21, 1, 253, 132, - 81, 255, 21, 1, 216, 81, 255, 21, 1, 253, 126, 81, 255, 21, 1, 248, 55, - 81, 255, 21, 1, 253, 134, 81, 255, 21, 1, 253, 129, 81, 255, 21, 1, 248, - 65, 81, 255, 21, 1, 222, 81, 255, 21, 1, 253, 179, 81, 255, 21, 1, 253, - 171, 81, 255, 21, 1, 219, 81, 255, 21, 1, 253, 217, 81, 255, 21, 1, 248, - 61, 81, 255, 21, 1, 243, 130, 81, 255, 21, 1, 253, 131, 81, 255, 21, 1, - 67, 81, 255, 21, 1, 71, 81, 255, 21, 1, 253, 164, 81, 255, 21, 1, 254, - 36, 81, 255, 21, 1, 79, 81, 255, 21, 1, 253, 156, 81, 255, 21, 1, 73, 81, - 255, 21, 1, 253, 252, 81, 255, 21, 1, 72, 81, 255, 21, 1, 249, 243, 81, - 255, 21, 1, 253, 149, 81, 255, 21, 1, 239, 223, 81, 255, 21, 1, 239, 224, - 81, 255, 21, 1, 239, 225, 81, 255, 21, 1, 239, 226, 81, 255, 21, 1, 239, - 227, 116, 81, 122, 1, 200, 253, 217, 116, 81, 122, 1, 170, 253, 217, 116, - 81, 122, 1, 200, 201, 116, 81, 122, 1, 200, 253, 253, 116, 81, 122, 1, - 200, 248, 50, 116, 81, 122, 1, 170, 201, 116, 81, 122, 1, 170, 253, 253, - 116, 81, 122, 1, 170, 248, 50, 116, 81, 122, 1, 200, 248, 90, 116, 81, - 122, 1, 200, 253, 132, 116, 81, 122, 1, 200, 216, 116, 81, 122, 1, 170, - 248, 90, 116, 81, 122, 1, 170, 253, 132, 116, 81, 122, 1, 170, 216, 116, - 81, 122, 1, 200, 253, 126, 116, 81, 122, 1, 200, 248, 55, 116, 81, 122, - 1, 200, 253, 131, 116, 81, 122, 1, 170, 253, 126, 116, 81, 122, 1, 170, - 248, 55, 116, 81, 122, 1, 170, 253, 131, 116, 81, 122, 1, 200, 253, 129, - 116, 81, 122, 1, 200, 248, 65, 116, 81, 122, 1, 200, 222, 116, 81, 122, - 1, 170, 253, 129, 116, 81, 122, 1, 170, 248, 65, 116, 81, 122, 1, 170, - 222, 116, 81, 122, 1, 200, 253, 179, 116, 81, 122, 1, 200, 253, 171, 116, - 81, 122, 1, 200, 253, 134, 116, 81, 122, 1, 170, 253, 179, 116, 81, 122, - 1, 170, 253, 171, 116, 81, 122, 1, 170, 253, 134, 116, 81, 122, 1, 200, - 219, 116, 81, 122, 1, 200, 253, 133, 116, 81, 122, 1, 200, 253, 141, 116, - 81, 122, 1, 170, 219, 116, 81, 122, 1, 170, 253, 133, 116, 81, 122, 1, - 170, 253, 141, 116, 81, 122, 1, 200, 249, 99, 116, 81, 122, 1, 200, 249, - 201, 116, 81, 122, 1, 170, 249, 99, 116, 81, 122, 1, 170, 249, 201, 116, - 81, 122, 33, 21, 33, 234, 255, 116, 81, 122, 33, 21, 253, 140, 116, 81, - 122, 33, 21, 253, 142, 116, 81, 122, 33, 21, 79, 116, 81, 122, 33, 21, - 253, 148, 116, 81, 122, 33, 21, 72, 116, 81, 122, 33, 21, 253, 178, 116, - 81, 122, 33, 21, 73, 116, 81, 122, 33, 21, 254, 117, 116, 81, 122, 33, - 21, 253, 252, 116, 81, 122, 33, 21, 254, 33, 116, 81, 122, 33, 21, 249, - 232, 116, 81, 122, 33, 21, 254, 254, 116, 81, 122, 33, 21, 254, 221, 116, - 81, 122, 33, 21, 252, 56, 116, 81, 122, 33, 21, 252, 250, 116, 81, 122, - 33, 21, 254, 102, 116, 81, 122, 1, 30, 179, 116, 81, 122, 1, 30, 254, 26, - 116, 81, 122, 1, 30, 197, 116, 81, 122, 1, 30, 173, 116, 81, 122, 1, 30, - 255, 15, 116, 81, 122, 1, 30, 209, 116, 81, 122, 1, 30, 217, 116, 81, - 122, 188, 238, 200, 116, 81, 122, 188, 238, 201, 116, 81, 122, 26, 242, - 217, 116, 81, 122, 26, 127, 116, 81, 122, 26, 111, 116, 81, 122, 26, 166, - 116, 81, 122, 26, 177, 116, 81, 122, 26, 176, 116, 81, 122, 26, 187, 116, - 81, 122, 26, 203, 116, 81, 122, 26, 195, 116, 81, 122, 26, 202, 116, 81, - 122, 21, 251, 180, 116, 81, 122, 21, 246, 36, 63, 12, 233, 223, 63, 12, - 249, 116, 242, 246, 63, 12, 254, 69, 242, 246, 63, 12, 254, 81, 242, 246, - 63, 12, 249, 34, 242, 246, 63, 12, 249, 141, 242, 246, 63, 12, 235, 137, - 242, 246, 63, 12, 237, 32, 242, 246, 63, 12, 237, 31, 242, 246, 63, 12, - 235, 136, 242, 246, 63, 12, 254, 86, 242, 246, 63, 12, 237, 3, 242, 246, - 63, 12, 238, 175, 242, 246, 63, 12, 238, 174, 242, 246, 63, 12, 237, 2, - 242, 246, 63, 12, 237, 4, 242, 246, 63, 12, 235, 38, 63, 12, 249, 116, - 248, 80, 63, 12, 254, 69, 248, 80, 63, 12, 254, 81, 248, 80, 63, 12, 249, - 34, 248, 80, 63, 12, 249, 141, 248, 80, 63, 12, 235, 137, 248, 80, 63, - 12, 237, 32, 248, 80, 63, 12, 237, 31, 248, 80, 63, 12, 235, 136, 248, - 80, 63, 12, 254, 86, 248, 80, 63, 12, 237, 3, 248, 80, 63, 12, 238, 175, - 248, 80, 63, 12, 238, 174, 248, 80, 63, 12, 237, 2, 248, 80, 63, 12, 237, - 4, 248, 80, 236, 148, 1, 201, 236, 148, 1, 253, 139, 236, 148, 1, 248, - 50, 236, 148, 1, 246, 148, 236, 148, 1, 253, 129, 236, 148, 1, 253, 141, - 236, 148, 1, 222, 236, 148, 1, 249, 115, 236, 148, 1, 253, 126, 236, 148, - 1, 253, 133, 236, 148, 1, 253, 131, 236, 148, 1, 249, 123, 236, 148, 1, - 253, 152, 236, 148, 1, 253, 146, 236, 148, 1, 248, 78, 236, 148, 1, 246, - 199, 236, 148, 1, 216, 236, 148, 1, 253, 130, 236, 148, 1, 253, 134, 236, - 148, 1, 253, 171, 236, 148, 1, 253, 132, 236, 148, 1, 67, 236, 148, 1, - 219, 236, 148, 33, 21, 71, 236, 148, 33, 21, 79, 236, 148, 33, 21, 72, - 236, 148, 33, 21, 73, 236, 148, 33, 21, 253, 178, 236, 148, 237, 231, - 236, 148, 253, 165, 147, 236, 210, 8, 1, 3, 5, 67, 8, 1, 3, 5, 253, 178, - 8, 3, 1, 205, 253, 178, 8, 1, 3, 5, 240, 60, 217, 8, 1, 3, 5, 255, 18, 8, - 1, 3, 5, 209, 8, 1, 3, 5, 248, 109, 8, 1, 3, 5, 72, 8, 3, 1, 205, 248, - 35, 72, 8, 3, 1, 205, 71, 8, 1, 3, 5, 221, 8, 1, 3, 5, 255, 15, 8, 1, 3, - 5, 255, 100, 2, 108, 8, 1, 3, 5, 173, 8, 1, 3, 5, 224, 197, 8, 1, 3, 5, - 73, 8, 1, 3, 5, 248, 35, 73, 8, 3, 1, 236, 190, 73, 8, 3, 1, 236, 190, - 248, 35, 73, 8, 3, 1, 236, 190, 117, 2, 108, 8, 3, 1, 205, 253, 193, 8, - 1, 3, 5, 254, 10, 8, 3, 1, 253, 159, 137, 73, 8, 3, 1, 240, 17, 137, 73, - 8, 1, 3, 5, 223, 8, 1, 3, 5, 224, 144, 8, 1, 3, 5, 205, 144, 8, 1, 3, 5, - 214, 8, 1, 3, 5, 79, 8, 3, 1, 236, 190, 79, 8, 3, 1, 236, 190, 233, 132, - 79, 8, 3, 1, 236, 190, 205, 173, 8, 1, 3, 5, 179, 8, 1, 3, 5, 255, 16, 8, - 1, 3, 5, 255, 17, 8, 1, 3, 5, 248, 155, 8, 1, 240, 59, 236, 49, 238, 10, - 8, 1, 248, 105, 17, 1, 3, 5, 240, 10, 17, 1, 3, 5, 240, 33, 17, 1, 3, 5, - 253, 147, 17, 1, 3, 5, 248, 73, 17, 1, 3, 5, 248, 69, 32, 1, 3, 5, 254, - 3, 49, 1, 5, 67, 49, 1, 5, 253, 178, 49, 1, 5, 217, 49, 1, 5, 240, 60, - 217, 49, 1, 5, 209, 49, 1, 5, 72, 49, 1, 5, 224, 72, 49, 1, 5, 210, 49, - 1, 5, 192, 49, 1, 5, 71, 49, 1, 5, 221, 49, 1, 5, 255, 15, 49, 1, 5, 162, - 49, 1, 5, 173, 49, 1, 5, 197, 49, 1, 5, 224, 197, 49, 1, 5, 73, 49, 1, 5, - 254, 10, 49, 1, 5, 223, 49, 1, 5, 144, 49, 1, 5, 214, 49, 1, 5, 79, 49, - 1, 5, 255, 16, 49, 1, 3, 67, 49, 1, 3, 205, 67, 49, 1, 3, 240, 22, 49, 1, - 3, 205, 253, 178, 49, 1, 3, 217, 49, 1, 3, 209, 49, 1, 3, 72, 49, 1, 3, - 240, 86, 49, 1, 3, 248, 35, 72, 49, 1, 3, 205, 248, 35, 72, 49, 1, 3, - 210, 49, 1, 3, 205, 71, 49, 1, 3, 255, 15, 49, 1, 3, 173, 49, 1, 3, 248, - 108, 49, 1, 3, 73, 49, 1, 3, 248, 35, 73, 49, 1, 3, 253, 159, 137, 73, - 49, 1, 3, 240, 17, 137, 73, 49, 1, 3, 223, 49, 1, 3, 214, 49, 1, 3, 79, - 49, 1, 3, 236, 190, 79, 49, 1, 3, 205, 173, 49, 1, 3, 179, 49, 1, 3, 248, - 105, 49, 1, 3, 242, 242, 49, 1, 3, 17, 240, 10, 49, 1, 3, 240, 28, 49, 1, - 3, 17, 248, 68, 49, 1, 3, 248, 67, 8, 235, 48, 3, 1, 71, 8, 235, 48, 3, - 1, 144, 8, 235, 48, 3, 1, 79, 8, 235, 48, 3, 1, 179, 17, 235, 48, 3, 1, - 242, 242, 17, 235, 48, 3, 1, 240, 10, 17, 235, 48, 3, 1, 248, 73, 17, - 235, 48, 3, 1, 248, 68, 17, 235, 48, 3, 1, 248, 67, 8, 3, 1, 253, 252, 8, - 3, 1, 41, 2, 240, 1, 169, 8, 3, 1, 255, 103, 2, 240, 1, 169, 8, 3, 1, - 255, 112, 2, 240, 1, 169, 8, 3, 1, 255, 108, 2, 240, 1, 169, 8, 3, 1, - 255, 98, 2, 240, 1, 169, 8, 3, 1, 255, 114, 2, 240, 1, 169, 8, 3, 1, 255, - 101, 2, 240, 1, 169, 8, 3, 1, 255, 101, 2, 237, 11, 19, 240, 1, 169, 8, - 3, 1, 255, 99, 2, 240, 1, 169, 8, 3, 1, 255, 102, 2, 240, 1, 169, 8, 3, - 1, 255, 97, 2, 240, 1, 169, 8, 3, 1, 205, 210, 49, 1, 32, 253, 202, 8, 3, - 1, 239, 101, 210, 8, 3, 1, 255, 93, 2, 231, 82, 8, 3, 5, 1, 220, 2, 108, - 8, 3, 1, 248, 42, 2, 108, 8, 3, 1, 255, 114, 2, 108, 8, 3, 5, 1, 132, 2, - 108, 8, 3, 1, 238, 53, 2, 108, 8, 3, 1, 41, 2, 238, 65, 90, 8, 3, 1, 255, - 103, 2, 238, 65, 90, 8, 3, 1, 255, 112, 2, 238, 65, 90, 8, 3, 1, 255, - 104, 2, 238, 65, 90, 8, 3, 1, 255, 109, 2, 238, 65, 90, 8, 3, 1, 255, - 100, 2, 238, 65, 90, 8, 3, 1, 255, 108, 2, 238, 65, 90, 8, 3, 1, 255, 98, - 2, 238, 65, 90, 8, 3, 1, 255, 114, 2, 238, 65, 90, 8, 3, 1, 255, 101, 2, - 238, 65, 90, 8, 3, 1, 255, 99, 2, 238, 65, 90, 8, 3, 1, 254, 38, 2, 238, - 65, 90, 8, 3, 1, 255, 110, 2, 238, 65, 90, 8, 3, 1, 255, 113, 2, 238, 65, - 90, 8, 3, 1, 255, 97, 2, 238, 65, 90, 8, 3, 1, 134, 2, 235, 54, 90, 8, 3, - 1, 194, 2, 235, 54, 90, 8, 3, 1, 255, 103, 2, 248, 45, 19, 242, 226, 8, - 3, 1, 157, 2, 235, 54, 90, 8, 3, 1, 248, 35, 157, 2, 235, 54, 90, 8, 3, - 1, 224, 248, 35, 157, 2, 235, 54, 90, 8, 3, 1, 243, 73, 2, 235, 54, 90, - 8, 3, 1, 220, 2, 235, 54, 90, 8, 3, 1, 248, 35, 117, 2, 235, 54, 90, 8, - 3, 1, 254, 38, 2, 235, 54, 90, 8, 3, 1, 132, 2, 235, 54, 90, 8, 3, 1, - 253, 244, 2, 235, 54, 90, 49, 1, 3, 205, 240, 22, 49, 1, 3, 255, 18, 49, - 1, 3, 255, 105, 2, 242, 253, 49, 1, 3, 248, 109, 49, 1, 3, 224, 248, 35, - 72, 49, 1, 3, 255, 19, 49, 1, 3, 238, 70, 255, 115, 2, 108, 49, 1, 3, 84, - 210, 49, 1, 3, 205, 192, 49, 1, 3, 220, 2, 108, 49, 1, 3, 242, 237, 49, - 1, 3, 5, 71, 49, 1, 3, 5, 220, 2, 108, 49, 1, 3, 255, 115, 2, 231, 101, - 49, 1, 3, 255, 100, 2, 235, 54, 90, 49, 1, 3, 255, 100, 2, 238, 65, 90, - 49, 1, 3, 5, 162, 49, 1, 3, 255, 108, 2, 90, 49, 1, 3, 205, 255, 108, 2, - 183, 248, 117, 49, 1, 3, 255, 98, 2, 40, 90, 49, 1, 3, 255, 98, 2, 235, - 54, 90, 49, 1, 3, 5, 197, 49, 1, 3, 240, 60, 73, 49, 1, 3, 248, 68, 49, - 1, 3, 255, 99, 2, 90, 49, 1, 3, 248, 93, 49, 1, 3, 255, 102, 2, 238, 65, - 90, 49, 1, 3, 132, 125, 49, 1, 3, 236, 160, 49, 1, 3, 5, 79, 49, 1, 3, - 255, 110, 2, 90, 49, 1, 3, 205, 179, 49, 1, 3, 255, 17, 49, 1, 3, 255, - 97, 2, 235, 54, 90, 49, 1, 3, 255, 97, 2, 242, 253, 49, 1, 3, 248, 155, - 49, 1, 3, 240, 38, 50, 240, 4, 242, 245, 238, 54, 50, 240, 4, 242, 241, - 238, 54, 50, 247, 95, 46, 50, 235, 6, 69, 8, 5, 1, 134, 2, 248, 51, 46, - 8, 3, 1, 134, 2, 248, 51, 46, 8, 5, 1, 41, 2, 53, 48, 8, 3, 1, 41, 2, 53, - 48, 8, 5, 1, 41, 2, 53, 46, 8, 3, 1, 41, 2, 53, 46, 8, 5, 1, 41, 2, 248, - 41, 46, 8, 3, 1, 41, 2, 248, 41, 46, 8, 5, 1, 255, 105, 2, 238, 109, 19, - 135, 8, 3, 1, 255, 105, 2, 238, 109, 19, 135, 8, 5, 1, 255, 103, 2, 53, - 48, 8, 3, 1, 255, 103, 2, 53, 48, 8, 5, 1, 255, 103, 2, 53, 46, 8, 3, 1, - 255, 103, 2, 53, 46, 8, 5, 1, 255, 103, 2, 248, 41, 46, 8, 3, 1, 255, - 103, 2, 248, 41, 46, 8, 5, 1, 255, 103, 2, 236, 151, 8, 3, 1, 255, 103, - 2, 236, 151, 8, 5, 1, 255, 103, 2, 190, 46, 8, 3, 1, 255, 103, 2, 190, - 46, 8, 5, 1, 157, 2, 240, 42, 19, 191, 8, 3, 1, 157, 2, 240, 42, 19, 191, - 8, 5, 1, 157, 2, 240, 42, 19, 135, 8, 3, 1, 157, 2, 240, 42, 19, 135, 8, - 5, 1, 157, 2, 190, 46, 8, 3, 1, 157, 2, 190, 46, 8, 5, 1, 157, 2, 242, - 219, 46, 8, 3, 1, 157, 2, 242, 219, 46, 8, 5, 1, 157, 2, 238, 109, 19, - 239, 255, 8, 3, 1, 157, 2, 238, 109, 19, 239, 255, 8, 5, 1, 255, 112, 2, - 53, 48, 8, 3, 1, 255, 112, 2, 53, 48, 8, 5, 1, 255, 104, 2, 196, 8, 3, 1, - 255, 104, 2, 196, 8, 5, 1, 255, 106, 2, 53, 48, 8, 3, 1, 255, 106, 2, 53, - 48, 8, 5, 1, 255, 106, 2, 53, 46, 8, 3, 1, 255, 106, 2, 53, 46, 8, 5, 1, - 255, 106, 2, 175, 8, 3, 1, 255, 106, 2, 175, 8, 5, 1, 255, 106, 2, 236, - 151, 8, 3, 1, 255, 106, 2, 236, 151, 8, 5, 1, 255, 106, 2, 242, 243, 46, - 8, 3, 1, 255, 106, 2, 242, 243, 46, 8, 5, 1, 220, 2, 242, 219, 46, 8, 3, - 1, 220, 2, 242, 219, 46, 8, 5, 1, 220, 2, 235, 56, 19, 135, 8, 3, 1, 220, - 2, 235, 56, 19, 135, 8, 5, 1, 255, 109, 2, 135, 8, 3, 1, 255, 109, 2, - 135, 8, 5, 1, 255, 109, 2, 53, 46, 8, 3, 1, 255, 109, 2, 53, 46, 8, 5, 1, - 255, 109, 2, 248, 41, 46, 8, 3, 1, 255, 109, 2, 248, 41, 46, 8, 5, 1, - 255, 100, 2, 53, 46, 8, 3, 1, 255, 100, 2, 53, 46, 8, 5, 1, 255, 100, 2, - 53, 242, 230, 19, 196, 8, 3, 1, 255, 100, 2, 53, 242, 230, 19, 196, 8, 5, - 1, 255, 100, 2, 248, 41, 46, 8, 3, 1, 255, 100, 2, 248, 41, 46, 8, 5, 1, - 255, 100, 2, 190, 46, 8, 3, 1, 255, 100, 2, 190, 46, 8, 5, 1, 255, 108, - 2, 135, 8, 3, 1, 255, 108, 2, 135, 8, 5, 1, 255, 108, 2, 53, 48, 8, 3, 1, - 255, 108, 2, 53, 48, 8, 5, 1, 255, 108, 2, 53, 46, 8, 3, 1, 255, 108, 2, - 53, 46, 8, 5, 1, 255, 98, 2, 53, 48, 8, 3, 1, 255, 98, 2, 53, 48, 8, 5, - 1, 255, 98, 2, 53, 46, 8, 3, 1, 255, 98, 2, 53, 46, 8, 5, 1, 255, 98, 2, - 248, 41, 46, 8, 3, 1, 255, 98, 2, 248, 41, 46, 8, 5, 1, 255, 98, 2, 190, - 46, 8, 3, 1, 255, 98, 2, 190, 46, 8, 5, 1, 117, 2, 242, 219, 19, 135, 8, - 3, 1, 117, 2, 242, 219, 19, 135, 8, 5, 1, 117, 2, 242, 219, 19, 175, 8, - 3, 1, 117, 2, 242, 219, 19, 175, 8, 5, 1, 117, 2, 240, 42, 19, 191, 8, 3, - 1, 117, 2, 240, 42, 19, 191, 8, 5, 1, 117, 2, 240, 42, 19, 135, 8, 3, 1, - 117, 2, 240, 42, 19, 135, 8, 5, 1, 255, 114, 2, 135, 8, 3, 1, 255, 114, - 2, 135, 8, 5, 1, 255, 114, 2, 53, 48, 8, 3, 1, 255, 114, 2, 53, 48, 8, 5, - 1, 255, 101, 2, 53, 48, 8, 3, 1, 255, 101, 2, 53, 48, 8, 5, 1, 255, 101, - 2, 53, 46, 8, 3, 1, 255, 101, 2, 53, 46, 8, 5, 1, 255, 101, 2, 53, 242, - 230, 19, 196, 8, 3, 1, 255, 101, 2, 53, 242, 230, 19, 196, 8, 5, 1, 255, - 101, 2, 248, 41, 46, 8, 3, 1, 255, 101, 2, 248, 41, 46, 8, 5, 1, 255, 99, - 2, 53, 48, 8, 3, 1, 255, 99, 2, 53, 48, 8, 5, 1, 255, 99, 2, 53, 46, 8, - 3, 1, 255, 99, 2, 53, 46, 8, 5, 1, 255, 99, 2, 242, 241, 19, 53, 48, 8, - 3, 1, 255, 99, 2, 242, 241, 19, 53, 48, 8, 5, 1, 255, 99, 2, 243, 86, 19, - 53, 48, 8, 3, 1, 255, 99, 2, 243, 86, 19, 53, 48, 8, 5, 1, 255, 99, 2, - 53, 242, 230, 19, 53, 48, 8, 3, 1, 255, 99, 2, 53, 242, 230, 19, 53, 48, - 8, 5, 1, 255, 102, 2, 53, 48, 8, 3, 1, 255, 102, 2, 53, 48, 8, 5, 1, 255, - 102, 2, 53, 46, 8, 3, 1, 255, 102, 2, 53, 46, 8, 5, 1, 255, 102, 2, 248, - 41, 46, 8, 3, 1, 255, 102, 2, 248, 41, 46, 8, 5, 1, 255, 102, 2, 190, 46, - 8, 3, 1, 255, 102, 2, 190, 46, 8, 5, 1, 132, 2, 235, 56, 46, 8, 3, 1, - 132, 2, 235, 56, 46, 8, 5, 1, 132, 2, 242, 219, 46, 8, 3, 1, 132, 2, 242, - 219, 46, 8, 5, 1, 132, 2, 190, 46, 8, 3, 1, 132, 2, 190, 46, 8, 5, 1, - 132, 2, 242, 219, 19, 135, 8, 3, 1, 132, 2, 242, 219, 19, 135, 8, 5, 1, - 132, 2, 240, 42, 19, 175, 8, 3, 1, 132, 2, 240, 42, 19, 175, 8, 5, 1, - 255, 110, 2, 169, 8, 3, 1, 255, 110, 2, 169, 8, 5, 1, 255, 110, 2, 53, - 46, 8, 3, 1, 255, 110, 2, 53, 46, 8, 5, 1, 255, 111, 2, 191, 8, 3, 1, - 255, 111, 2, 191, 8, 5, 1, 255, 111, 2, 135, 8, 3, 1, 255, 111, 2, 135, - 8, 5, 1, 255, 111, 2, 175, 8, 3, 1, 255, 111, 2, 175, 8, 5, 1, 255, 111, - 2, 53, 48, 8, 3, 1, 255, 111, 2, 53, 48, 8, 5, 1, 255, 111, 2, 53, 46, 8, - 3, 1, 255, 111, 2, 53, 46, 8, 5, 1, 255, 113, 2, 53, 48, 8, 3, 1, 255, - 113, 2, 53, 48, 8, 5, 1, 255, 113, 2, 175, 8, 3, 1, 255, 113, 2, 175, 8, - 5, 1, 255, 107, 2, 53, 48, 8, 3, 1, 255, 107, 2, 53, 48, 8, 5, 1, 255, - 97, 2, 233, 48, 8, 3, 1, 255, 97, 2, 233, 48, 8, 5, 1, 255, 97, 2, 53, - 46, 8, 3, 1, 255, 97, 2, 53, 46, 8, 5, 1, 255, 97, 2, 248, 41, 46, 8, 3, - 1, 255, 97, 2, 248, 41, 46, 8, 3, 1, 255, 106, 2, 248, 41, 46, 8, 3, 1, - 255, 102, 2, 175, 8, 3, 1, 255, 111, 2, 248, 51, 48, 8, 3, 1, 255, 107, - 2, 248, 51, 48, 8, 3, 1, 134, 2, 38, 137, 242, 233, 8, 3, 1, 183, 255, - 99, 2, 53, 48, 8, 5, 1, 134, 2, 53, 46, 8, 3, 1, 134, 2, 53, 46, 8, 5, 1, - 134, 2, 248, 45, 48, 8, 3, 1, 134, 2, 248, 45, 48, 8, 5, 1, 134, 2, 190, - 19, 135, 8, 3, 1, 134, 2, 190, 19, 135, 8, 5, 1, 134, 2, 190, 19, 191, 8, - 3, 1, 134, 2, 190, 19, 191, 8, 5, 1, 134, 2, 190, 19, 248, 45, 48, 8, 3, - 1, 134, 2, 190, 19, 248, 45, 48, 8, 5, 1, 134, 2, 190, 19, 169, 8, 3, 1, - 134, 2, 190, 19, 169, 8, 5, 1, 134, 2, 190, 19, 53, 46, 8, 3, 1, 134, 2, - 190, 19, 53, 46, 8, 5, 1, 134, 2, 242, 243, 19, 135, 8, 3, 1, 134, 2, - 242, 243, 19, 135, 8, 5, 1, 134, 2, 242, 243, 19, 191, 8, 3, 1, 134, 2, - 242, 243, 19, 191, 8, 5, 1, 134, 2, 242, 243, 19, 248, 45, 48, 8, 3, 1, - 134, 2, 242, 243, 19, 248, 45, 48, 8, 5, 1, 134, 2, 242, 243, 19, 169, 8, - 3, 1, 134, 2, 242, 243, 19, 169, 8, 5, 1, 134, 2, 242, 243, 19, 53, 46, - 8, 3, 1, 134, 2, 242, 243, 19, 53, 46, 8, 5, 1, 157, 2, 53, 46, 8, 3, 1, - 157, 2, 53, 46, 8, 5, 1, 157, 2, 248, 45, 48, 8, 3, 1, 157, 2, 248, 45, - 48, 8, 5, 1, 157, 2, 169, 8, 3, 1, 157, 2, 169, 8, 5, 1, 157, 2, 190, 19, - 135, 8, 3, 1, 157, 2, 190, 19, 135, 8, 5, 1, 157, 2, 190, 19, 191, 8, 3, - 1, 157, 2, 190, 19, 191, 8, 5, 1, 157, 2, 190, 19, 248, 45, 48, 8, 3, 1, - 157, 2, 190, 19, 248, 45, 48, 8, 5, 1, 157, 2, 190, 19, 169, 8, 3, 1, - 157, 2, 190, 19, 169, 8, 5, 1, 157, 2, 190, 19, 53, 46, 8, 3, 1, 157, 2, - 190, 19, 53, 46, 8, 5, 1, 220, 2, 248, 45, 48, 8, 3, 1, 220, 2, 248, 45, - 48, 8, 5, 1, 220, 2, 53, 46, 8, 3, 1, 220, 2, 53, 46, 8, 5, 1, 117, 2, - 53, 46, 8, 3, 1, 117, 2, 53, 46, 8, 5, 1, 117, 2, 248, 45, 48, 8, 3, 1, - 117, 2, 248, 45, 48, 8, 5, 1, 117, 2, 190, 19, 135, 8, 3, 1, 117, 2, 190, - 19, 135, 8, 5, 1, 117, 2, 190, 19, 191, 8, 3, 1, 117, 2, 190, 19, 191, 8, - 5, 1, 117, 2, 190, 19, 248, 45, 48, 8, 3, 1, 117, 2, 190, 19, 248, 45, - 48, 8, 5, 1, 117, 2, 190, 19, 169, 8, 3, 1, 117, 2, 190, 19, 169, 8, 5, - 1, 117, 2, 190, 19, 53, 46, 8, 3, 1, 117, 2, 190, 19, 53, 46, 8, 5, 1, - 117, 2, 248, 60, 19, 135, 8, 3, 1, 117, 2, 248, 60, 19, 135, 8, 5, 1, - 117, 2, 248, 60, 19, 191, 8, 3, 1, 117, 2, 248, 60, 19, 191, 8, 5, 1, - 117, 2, 248, 60, 19, 248, 45, 48, 8, 3, 1, 117, 2, 248, 60, 19, 248, 45, - 48, 8, 5, 1, 117, 2, 248, 60, 19, 169, 8, 3, 1, 117, 2, 248, 60, 19, 169, - 8, 5, 1, 117, 2, 248, 60, 19, 53, 46, 8, 3, 1, 117, 2, 248, 60, 19, 53, - 46, 8, 5, 1, 132, 2, 53, 46, 8, 3, 1, 132, 2, 53, 46, 8, 5, 1, 132, 2, - 248, 45, 48, 8, 3, 1, 132, 2, 248, 45, 48, 8, 5, 1, 132, 2, 248, 60, 19, - 135, 8, 3, 1, 132, 2, 248, 60, 19, 135, 8, 5, 1, 132, 2, 248, 60, 19, - 191, 8, 3, 1, 132, 2, 248, 60, 19, 191, 8, 5, 1, 132, 2, 248, 60, 19, - 248, 45, 48, 8, 3, 1, 132, 2, 248, 60, 19, 248, 45, 48, 8, 5, 1, 132, 2, - 248, 60, 19, 169, 8, 3, 1, 132, 2, 248, 60, 19, 169, 8, 5, 1, 132, 2, - 248, 60, 19, 53, 46, 8, 3, 1, 132, 2, 248, 60, 19, 53, 46, 8, 5, 1, 255, - 107, 2, 191, 8, 3, 1, 255, 107, 2, 191, 8, 5, 1, 255, 107, 2, 53, 46, 8, - 3, 1, 255, 107, 2, 53, 46, 8, 5, 1, 255, 107, 2, 248, 45, 48, 8, 3, 1, - 255, 107, 2, 248, 45, 48, 8, 5, 1, 255, 107, 2, 169, 8, 3, 1, 255, 107, - 2, 169, 17, 3, 1, 194, 2, 240, 29, 17, 3, 1, 194, 2, 240, 25, 17, 3, 1, - 194, 2, 159, 19, 215, 17, 3, 1, 194, 2, 148, 19, 215, 17, 3, 1, 194, 2, - 159, 19, 212, 17, 3, 1, 194, 2, 148, 19, 212, 17, 3, 1, 194, 2, 159, 19, - 232, 71, 17, 3, 1, 194, 2, 148, 19, 232, 71, 17, 5, 1, 194, 2, 240, 29, - 17, 5, 1, 194, 2, 240, 25, 17, 5, 1, 194, 2, 159, 19, 215, 17, 5, 1, 194, - 2, 148, 19, 215, 17, 5, 1, 194, 2, 159, 19, 212, 17, 5, 1, 194, 2, 148, - 19, 212, 17, 5, 1, 194, 2, 159, 19, 232, 71, 17, 5, 1, 194, 2, 148, 19, - 232, 71, 17, 3, 1, 238, 57, 2, 240, 29, 17, 3, 1, 238, 57, 2, 240, 25, - 17, 3, 1, 238, 57, 2, 159, 19, 215, 17, 3, 1, 238, 57, 2, 148, 19, 215, - 17, 3, 1, 238, 57, 2, 159, 19, 212, 17, 3, 1, 238, 57, 2, 148, 19, 212, - 17, 5, 1, 238, 57, 2, 240, 29, 17, 5, 1, 238, 57, 2, 240, 25, 17, 5, 1, - 238, 57, 2, 159, 19, 215, 17, 5, 1, 238, 57, 2, 148, 19, 215, 17, 5, 1, - 238, 57, 2, 159, 19, 212, 17, 5, 1, 238, 57, 2, 148, 19, 212, 17, 3, 1, - 253, 123, 2, 240, 29, 17, 3, 1, 253, 123, 2, 240, 25, 17, 3, 1, 253, 123, - 2, 159, 19, 215, 17, 3, 1, 253, 123, 2, 148, 19, 215, 17, 3, 1, 253, 123, - 2, 159, 19, 212, 17, 3, 1, 253, 123, 2, 148, 19, 212, 17, 3, 1, 253, 123, - 2, 159, 19, 232, 71, 17, 3, 1, 253, 123, 2, 148, 19, 232, 71, 17, 5, 1, - 253, 123, 2, 240, 29, 17, 5, 1, 253, 123, 2, 240, 25, 17, 5, 1, 253, 123, - 2, 159, 19, 215, 17, 5, 1, 253, 123, 2, 148, 19, 215, 17, 5, 1, 253, 123, - 2, 159, 19, 212, 17, 5, 1, 253, 123, 2, 148, 19, 212, 17, 5, 1, 253, 123, - 2, 159, 19, 232, 71, 17, 5, 1, 253, 123, 2, 148, 19, 232, 71, 17, 3, 1, - 248, 42, 2, 240, 29, 17, 3, 1, 248, 42, 2, 240, 25, 17, 3, 1, 248, 42, 2, - 159, 19, 215, 17, 3, 1, 248, 42, 2, 148, 19, 215, 17, 3, 1, 248, 42, 2, - 159, 19, 212, 17, 3, 1, 248, 42, 2, 148, 19, 212, 17, 3, 1, 248, 42, 2, - 159, 19, 232, 71, 17, 3, 1, 248, 42, 2, 148, 19, 232, 71, 17, 5, 1, 248, - 42, 2, 240, 29, 17, 5, 1, 248, 42, 2, 240, 25, 17, 5, 1, 248, 42, 2, 159, - 19, 215, 17, 5, 1, 248, 42, 2, 148, 19, 215, 17, 5, 1, 248, 42, 2, 159, - 19, 212, 17, 5, 1, 248, 42, 2, 148, 19, 212, 17, 5, 1, 248, 42, 2, 159, - 19, 232, 71, 17, 5, 1, 248, 42, 2, 148, 19, 232, 71, 17, 3, 1, 238, 64, - 2, 240, 29, 17, 3, 1, 238, 64, 2, 240, 25, 17, 3, 1, 238, 64, 2, 159, 19, - 215, 17, 3, 1, 238, 64, 2, 148, 19, 215, 17, 3, 1, 238, 64, 2, 159, 19, - 212, 17, 3, 1, 238, 64, 2, 148, 19, 212, 17, 5, 1, 238, 64, 2, 240, 29, - 17, 5, 1, 238, 64, 2, 240, 25, 17, 5, 1, 238, 64, 2, 159, 19, 215, 17, 5, - 1, 238, 64, 2, 148, 19, 215, 17, 5, 1, 238, 64, 2, 159, 19, 212, 17, 5, - 1, 238, 64, 2, 148, 19, 212, 17, 3, 1, 238, 53, 2, 240, 29, 17, 3, 1, - 238, 53, 2, 240, 25, 17, 3, 1, 238, 53, 2, 159, 19, 215, 17, 3, 1, 238, - 53, 2, 148, 19, 215, 17, 3, 1, 238, 53, 2, 159, 19, 212, 17, 3, 1, 238, - 53, 2, 148, 19, 212, 17, 3, 1, 238, 53, 2, 159, 19, 232, 71, 17, 3, 1, - 238, 53, 2, 148, 19, 232, 71, 17, 5, 1, 238, 53, 2, 240, 25, 17, 5, 1, - 238, 53, 2, 148, 19, 215, 17, 5, 1, 238, 53, 2, 148, 19, 212, 17, 5, 1, - 238, 53, 2, 148, 19, 232, 71, 17, 3, 1, 211, 2, 240, 29, 17, 3, 1, 211, - 2, 240, 25, 17, 3, 1, 211, 2, 159, 19, 215, 17, 3, 1, 211, 2, 148, 19, - 215, 17, 3, 1, 211, 2, 159, 19, 212, 17, 3, 1, 211, 2, 148, 19, 212, 17, - 3, 1, 211, 2, 159, 19, 232, 71, 17, 3, 1, 211, 2, 148, 19, 232, 71, 17, - 5, 1, 211, 2, 240, 29, 17, 5, 1, 211, 2, 240, 25, 17, 5, 1, 211, 2, 159, - 19, 215, 17, 5, 1, 211, 2, 148, 19, 215, 17, 5, 1, 211, 2, 159, 19, 212, - 17, 5, 1, 211, 2, 148, 19, 212, 17, 5, 1, 211, 2, 159, 19, 232, 71, 17, - 5, 1, 211, 2, 148, 19, 232, 71, 17, 3, 1, 194, 2, 215, 17, 3, 1, 194, 2, - 212, 17, 3, 1, 238, 57, 2, 215, 17, 3, 1, 238, 57, 2, 212, 17, 3, 1, 253, - 123, 2, 215, 17, 3, 1, 253, 123, 2, 212, 17, 3, 1, 248, 42, 2, 215, 17, - 3, 1, 248, 42, 2, 212, 17, 3, 1, 238, 64, 2, 215, 17, 3, 1, 238, 64, 2, - 212, 17, 3, 1, 238, 53, 2, 215, 17, 3, 1, 238, 53, 2, 212, 17, 3, 1, 211, - 2, 215, 17, 3, 1, 211, 2, 212, 17, 3, 1, 194, 2, 159, 19, 231, 35, 17, 3, - 1, 194, 2, 148, 19, 231, 35, 17, 3, 1, 194, 2, 159, 19, 242, 248, 19, - 231, 35, 17, 3, 1, 194, 2, 148, 19, 242, 248, 19, 231, 35, 17, 3, 1, 194, - 2, 159, 19, 248, 79, 19, 231, 35, 17, 3, 1, 194, 2, 148, 19, 248, 79, 19, - 231, 35, 17, 3, 1, 194, 2, 159, 19, 233, 53, 19, 231, 35, 17, 3, 1, 194, - 2, 148, 19, 233, 53, 19, 231, 35, 17, 5, 1, 194, 2, 159, 19, 229, 57, 17, - 5, 1, 194, 2, 148, 19, 229, 57, 17, 5, 1, 194, 2, 159, 19, 242, 248, 19, - 229, 57, 17, 5, 1, 194, 2, 148, 19, 242, 248, 19, 229, 57, 17, 5, 1, 194, - 2, 159, 19, 248, 79, 19, 229, 57, 17, 5, 1, 194, 2, 148, 19, 248, 79, 19, - 229, 57, 17, 5, 1, 194, 2, 159, 19, 233, 53, 19, 229, 57, 17, 5, 1, 194, - 2, 148, 19, 233, 53, 19, 229, 57, 17, 3, 1, 253, 123, 2, 159, 19, 231, - 35, 17, 3, 1, 253, 123, 2, 148, 19, 231, 35, 17, 3, 1, 253, 123, 2, 159, - 19, 242, 248, 19, 231, 35, 17, 3, 1, 253, 123, 2, 148, 19, 242, 248, 19, - 231, 35, 17, 3, 1, 253, 123, 2, 159, 19, 248, 79, 19, 231, 35, 17, 3, 1, - 253, 123, 2, 148, 19, 248, 79, 19, 231, 35, 17, 3, 1, 253, 123, 2, 159, - 19, 233, 53, 19, 231, 35, 17, 3, 1, 253, 123, 2, 148, 19, 233, 53, 19, - 231, 35, 17, 5, 1, 253, 123, 2, 159, 19, 229, 57, 17, 5, 1, 253, 123, 2, - 148, 19, 229, 57, 17, 5, 1, 253, 123, 2, 159, 19, 242, 248, 19, 229, 57, - 17, 5, 1, 253, 123, 2, 148, 19, 242, 248, 19, 229, 57, 17, 5, 1, 253, - 123, 2, 159, 19, 248, 79, 19, 229, 57, 17, 5, 1, 253, 123, 2, 148, 19, - 248, 79, 19, 229, 57, 17, 5, 1, 253, 123, 2, 159, 19, 233, 53, 19, 229, - 57, 17, 5, 1, 253, 123, 2, 148, 19, 233, 53, 19, 229, 57, 17, 3, 1, 211, - 2, 159, 19, 231, 35, 17, 3, 1, 211, 2, 148, 19, 231, 35, 17, 3, 1, 211, - 2, 159, 19, 242, 248, 19, 231, 35, 17, 3, 1, 211, 2, 148, 19, 242, 248, - 19, 231, 35, 17, 3, 1, 211, 2, 159, 19, 248, 79, 19, 231, 35, 17, 3, 1, - 211, 2, 148, 19, 248, 79, 19, 231, 35, 17, 3, 1, 211, 2, 159, 19, 233, - 53, 19, 231, 35, 17, 3, 1, 211, 2, 148, 19, 233, 53, 19, 231, 35, 17, 5, - 1, 211, 2, 159, 19, 229, 57, 17, 5, 1, 211, 2, 148, 19, 229, 57, 17, 5, - 1, 211, 2, 159, 19, 242, 248, 19, 229, 57, 17, 5, 1, 211, 2, 148, 19, - 242, 248, 19, 229, 57, 17, 5, 1, 211, 2, 159, 19, 248, 79, 19, 229, 57, - 17, 5, 1, 211, 2, 148, 19, 248, 79, 19, 229, 57, 17, 5, 1, 211, 2, 159, - 19, 233, 53, 19, 229, 57, 17, 5, 1, 211, 2, 148, 19, 233, 53, 19, 229, - 57, 17, 3, 1, 194, 2, 238, 103, 17, 3, 1, 194, 2, 196, 17, 3, 1, 194, 2, - 242, 248, 19, 231, 35, 17, 3, 1, 194, 2, 231, 35, 17, 3, 1, 194, 2, 248, - 79, 19, 231, 35, 17, 3, 1, 194, 2, 232, 71, 17, 3, 1, 194, 2, 233, 53, - 19, 231, 35, 17, 5, 1, 194, 2, 238, 103, 17, 5, 1, 194, 2, 196, 17, 5, 1, - 194, 2, 215, 17, 5, 1, 194, 2, 212, 17, 5, 1, 194, 2, 229, 57, 17, 236, - 229, 17, 229, 57, 17, 240, 29, 17, 232, 71, 17, 235, 59, 19, 232, 71, 17, - 3, 1, 253, 123, 2, 242, 248, 19, 231, 35, 17, 3, 1, 253, 123, 2, 231, 35, - 17, 3, 1, 253, 123, 2, 248, 79, 19, 231, 35, 17, 3, 1, 253, 123, 2, 232, - 71, 17, 3, 1, 253, 123, 2, 233, 53, 19, 231, 35, 17, 5, 1, 238, 57, 2, - 215, 17, 5, 1, 238, 57, 2, 212, 17, 5, 1, 253, 123, 2, 215, 17, 5, 1, - 253, 123, 2, 212, 17, 5, 1, 253, 123, 2, 229, 57, 17, 159, 19, 215, 17, - 159, 19, 212, 17, 159, 19, 232, 71, 17, 3, 1, 248, 42, 2, 238, 103, 17, - 3, 1, 248, 42, 2, 196, 17, 3, 1, 248, 42, 2, 235, 59, 19, 215, 17, 3, 1, - 248, 42, 2, 235, 59, 19, 212, 17, 3, 1, 248, 42, 2, 232, 71, 17, 3, 1, - 248, 42, 2, 235, 59, 19, 232, 71, 17, 5, 1, 248, 42, 2, 238, 103, 17, 5, - 1, 248, 42, 2, 196, 17, 5, 1, 248, 42, 2, 215, 17, 5, 1, 248, 42, 2, 212, - 17, 148, 19, 215, 17, 148, 19, 212, 17, 148, 19, 232, 71, 17, 3, 1, 238, - 53, 2, 238, 103, 17, 3, 1, 238, 53, 2, 196, 17, 3, 1, 238, 53, 2, 235, - 59, 19, 215, 17, 3, 1, 238, 53, 2, 235, 59, 19, 212, 17, 3, 1, 253, 218, - 2, 240, 29, 17, 3, 1, 253, 218, 2, 240, 25, 17, 3, 1, 238, 53, 2, 232, - 71, 17, 3, 1, 238, 53, 2, 235, 59, 19, 232, 71, 17, 5, 1, 238, 53, 2, - 238, 103, 17, 5, 1, 238, 53, 2, 196, 17, 5, 1, 238, 53, 2, 215, 17, 5, 1, - 238, 53, 2, 212, 17, 5, 1, 253, 218, 2, 240, 25, 17, 235, 59, 19, 215, - 17, 235, 59, 19, 212, 17, 215, 17, 3, 1, 211, 2, 242, 248, 19, 231, 35, - 17, 3, 1, 211, 2, 231, 35, 17, 3, 1, 211, 2, 248, 79, 19, 231, 35, 17, 3, - 1, 211, 2, 232, 71, 17, 3, 1, 211, 2, 233, 53, 19, 231, 35, 17, 5, 1, - 238, 64, 2, 215, 17, 5, 1, 238, 64, 2, 212, 17, 5, 1, 211, 2, 215, 17, 5, - 1, 211, 2, 212, 17, 5, 1, 211, 2, 229, 57, 17, 212, 17, 240, 25, 255, 23, - 243, 43, 255, 28, 243, 43, 255, 23, 240, 15, 255, 28, 240, 15, 233, 42, - 240, 15, 233, 203, 240, 15, 235, 1, 240, 15, 240, 174, 240, 15, 233, 51, - 240, 15, 252, 219, 240, 15, 251, 46, 240, 15, 248, 145, 243, 81, 240, 15, - 248, 145, 243, 81, 233, 219, 248, 145, 243, 81, 238, 140, 231, 96, 69, - 231, 99, 69, 238, 93, 232, 188, 238, 93, 240, 174, 242, 235, 255, 23, - 242, 235, 255, 28, 242, 235, 163, 125, 45, 59, 242, 224, 45, 170, 242, - 224, 40, 240, 12, 235, 51, 69, 38, 240, 12, 235, 51, 69, 240, 12, 243, - 218, 235, 51, 69, 240, 12, 229, 62, 235, 51, 69, 40, 45, 235, 51, 69, 38, - 45, 235, 51, 69, 45, 243, 218, 235, 51, 69, 45, 229, 62, 235, 51, 69, - 238, 173, 45, 238, 173, 238, 69, 234, 43, 238, 69, 253, 125, 53, 238, - 143, 171, 53, 238, 143, 163, 235, 69, 233, 207, 240, 209, 248, 41, 234, - 6, 235, 91, 234, 6, 231, 96, 234, 52, 231, 99, 234, 52, 254, 227, 233, - 134, 233, 202, 231, 96, 235, 131, 231, 99, 235, 131, 241, 252, 236, 233, - 240, 15, 254, 68, 246, 85, 52, 254, 68, 253, 219, 236, 193, 52, 240, 57, - 45, 240, 57, 240, 3, 240, 57, 224, 240, 57, 224, 45, 240, 57, 224, 240, - 3, 240, 57, 240, 130, 240, 12, 231, 87, 185, 235, 51, 69, 240, 12, 231, - 36, 185, 235, 51, 69, 236, 90, 69, 45, 233, 54, 69, 232, 179, 235, 74, - 235, 158, 99, 248, 139, 243, 25, 235, 128, 240, 209, 235, 175, 241, 177, - 238, 69, 236, 155, 240, 37, 40, 31, 238, 52, 2, 240, 214, 38, 31, 238, - 52, 2, 240, 214, 45, 236, 156, 69, 236, 156, 233, 54, 69, 233, 54, 236, - 156, 69, 238, 30, 21, 254, 60, 224, 238, 208, 52, 86, 139, 238, 69, 86, - 77, 238, 69, 170, 235, 52, 224, 234, 14, 245, 24, 253, 176, 171, 235, - 174, 238, 243, 234, 0, 234, 20, 242, 250, 52, 247, 129, 242, 235, 236, - 145, 235, 158, 241, 111, 233, 51, 69, 204, 53, 232, 75, 235, 71, 240, 57, - 248, 58, 53, 232, 75, 248, 48, 53, 232, 75, 171, 53, 232, 75, 248, 58, - 53, 69, 240, 4, 240, 34, 236, 131, 59, 248, 58, 243, 5, 240, 19, 10, 240, - 15, 248, 143, 238, 140, 237, 163, 232, 116, 235, 129, 240, 123, 235, 129, - 234, 6, 238, 190, 235, 152, 235, 145, 236, 243, 235, 152, 235, 145, 238, - 190, 11, 248, 38, 237, 39, 236, 243, 11, 248, 38, 237, 39, 237, 216, 26, - 238, 215, 239, 146, 26, 238, 215, 233, 49, 242, 217, 233, 49, 8, 3, 1, - 71, 233, 49, 177, 233, 49, 176, 233, 49, 187, 233, 49, 203, 233, 49, 195, - 233, 49, 202, 233, 49, 248, 49, 52, 233, 49, 240, 68, 233, 49, 240, 7, - 52, 233, 49, 40, 232, 74, 233, 49, 38, 232, 74, 233, 49, 8, 3, 1, 197, - 235, 48, 242, 217, 235, 48, 127, 235, 48, 111, 235, 48, 166, 235, 48, - 177, 235, 48, 176, 235, 48, 187, 235, 48, 203, 235, 48, 195, 235, 48, - 202, 235, 48, 248, 49, 52, 235, 48, 240, 68, 235, 48, 240, 7, 52, 235, - 48, 40, 232, 74, 235, 48, 38, 232, 74, 8, 235, 48, 3, 1, 67, 8, 235, 48, - 3, 1, 72, 8, 235, 48, 3, 1, 73, 8, 235, 48, 3, 1, 206, 8, 235, 48, 3, 1, - 240, 86, 231, 137, 52, 243, 14, 52, 237, 96, 52, 241, 117, 245, 92, 52, - 251, 199, 52, 251, 234, 52, 246, 103, 52, 242, 58, 52, 243, 44, 52, 254, - 131, 52, 116, 242, 104, 52, 250, 203, 52, 250, 231, 52, 254, 185, 52, - 242, 162, 52, 238, 180, 52, 241, 127, 246, 241, 52, 252, 63, 52, 239, 86, - 52, 238, 254, 52, 239, 94, 52, 250, 153, 52, 50, 40, 186, 48, 50, 38, - 186, 48, 50, 183, 59, 248, 41, 236, 161, 50, 242, 215, 59, 248, 41, 236, - 161, 50, 231, 86, 65, 48, 50, 235, 62, 65, 48, 50, 40, 65, 48, 50, 38, - 65, 48, 50, 248, 51, 236, 161, 50, 235, 62, 248, 51, 236, 161, 50, 231, - 86, 248, 51, 236, 161, 50, 204, 181, 48, 50, 248, 58, 181, 48, 50, 235, - 73, 238, 51, 50, 235, 73, 238, 59, 50, 235, 73, 236, 164, 50, 235, 73, - 218, 234, 25, 50, 40, 38, 65, 48, 50, 235, 73, 239, 182, 50, 235, 73, - 239, 107, 50, 235, 73, 242, 172, 236, 150, 235, 46, 50, 238, 75, 238, 83, - 236, 161, 50, 45, 59, 240, 5, 236, 161, 50, 238, 245, 91, 50, 240, 3, - 236, 136, 50, 248, 98, 240, 109, 48, 50, 139, 65, 236, 161, 50, 183, 45, - 238, 83, 236, 161, 238, 158, 253, 174, 235, 160, 153, 253, 145, 238, 18, - 138, 5, 255, 18, 240, 112, 237, 85, 240, 46, 248, 41, 91, 250, 145, 253, - 174, 250, 142, 252, 251, 245, 87, 235, 118, 238, 3, 240, 112, 233, 200, - 84, 3, 210, 84, 5, 192, 232, 80, 5, 192, 138, 5, 192, 240, 208, 235, 118, - 240, 208, 237, 90, 248, 59, 171, 253, 147, 84, 5, 71, 232, 80, 5, 71, 84, - 5, 162, 84, 3, 162, 255, 100, 41, 253, 144, 91, 138, 5, 197, 242, 27, 52, - 243, 1, 236, 88, 234, 105, 84, 5, 223, 138, 5, 223, 138, 5, 255, 20, 84, - 5, 144, 232, 80, 5, 144, 138, 5, 144, 232, 198, 247, 136, 235, 141, 239, - 189, 69, 235, 113, 52, 247, 157, 158, 52, 236, 138, 138, 5, 255, 17, 246, - 235, 52, 254, 119, 52, 236, 145, 254, 119, 52, 232, 80, 5, 255, 17, 205, - 17, 3, 1, 242, 237, 241, 198, 52, 237, 60, 52, 84, 5, 217, 232, 80, 5, - 255, 18, 236, 14, 91, 84, 3, 72, 84, 5, 72, 84, 5, 255, 19, 205, 5, 255, - 19, 84, 5, 173, 84, 3, 73, 83, 91, 254, 53, 91, 243, 184, 91, 243, 162, - 91, 233, 211, 239, 199, 238, 120, 5, 255, 20, 236, 17, 52, 138, 3, 253, - 147, 138, 3, 240, 10, 138, 5, 240, 10, 138, 5, 253, 147, 138, 242, 238, - 234, 65, 205, 27, 5, 210, 205, 27, 5, 162, 224, 27, 5, 162, 205, 27, 5, - 255, 14, 138, 24, 5, 209, 138, 24, 3, 209, 138, 24, 3, 72, 138, 24, 3, - 71, 138, 24, 3, 221, 237, 244, 242, 224, 205, 234, 17, 254, 68, 52, 240, - 30, 236, 155, 253, 125, 242, 148, 240, 30, 236, 155, 171, 239, 220, 240, - 30, 236, 155, 253, 125, 241, 107, 240, 30, 236, 155, 171, 238, 138, 240, - 30, 236, 155, 204, 238, 138, 240, 30, 236, 155, 248, 58, 238, 138, 240, - 30, 236, 155, 253, 125, 242, 113, 240, 30, 236, 155, 248, 48, 239, 197, - 240, 30, 236, 155, 253, 125, 239, 55, 240, 30, 236, 155, 204, 236, 224, - 240, 30, 236, 155, 248, 48, 236, 224, 240, 30, 236, 155, 243, 31, 236, - 224, 236, 155, 235, 79, 127, 242, 218, 178, 127, 242, 218, 178, 111, 242, - 218, 178, 166, 242, 218, 178, 177, 242, 218, 178, 176, 242, 218, 178, - 187, 242, 218, 178, 203, 242, 218, 178, 195, 242, 218, 178, 202, 242, - 218, 178, 248, 53, 242, 218, 178, 238, 91, 242, 218, 178, 238, 97, 242, - 218, 178, 240, 50, 242, 218, 178, 253, 125, 236, 149, 242, 218, 178, 248, - 48, 236, 149, 242, 218, 178, 253, 125, 235, 49, 3, 242, 218, 178, 127, 3, - 242, 218, 178, 111, 3, 242, 218, 178, 166, 3, 242, 218, 178, 177, 3, 242, - 218, 178, 176, 3, 242, 218, 178, 187, 3, 242, 218, 178, 203, 3, 242, 218, - 178, 195, 3, 242, 218, 178, 202, 3, 242, 218, 178, 248, 53, 3, 242, 218, - 178, 238, 91, 3, 242, 218, 178, 238, 97, 3, 242, 218, 178, 240, 50, 3, - 242, 218, 178, 253, 125, 236, 149, 3, 242, 218, 178, 248, 48, 236, 149, - 3, 242, 218, 178, 253, 125, 235, 49, 242, 218, 178, 253, 125, 236, 193, - 255, 105, 209, 242, 218, 178, 248, 48, 235, 49, 242, 218, 178, 253, 219, - 235, 49, 242, 218, 178, 224, 253, 125, 236, 149, 139, 56, 226, 226, 56, - 77, 56, 235, 45, 56, 40, 38, 56, 88, 92, 56, 242, 223, 248, 56, 56, 242, - 223, 248, 43, 56, 242, 228, 248, 43, 56, 242, 228, 248, 56, 56, 139, 65, - 2, 108, 77, 65, 2, 108, 139, 248, 141, 56, 77, 248, 141, 56, 139, 171, - 240, 115, 56, 226, 226, 171, 240, 115, 56, 77, 171, 240, 115, 56, 235, - 45, 171, 240, 115, 56, 139, 65, 2, 242, 226, 77, 65, 2, 242, 226, 139, - 65, 248, 44, 125, 226, 226, 65, 248, 44, 125, 77, 65, 248, 44, 125, 235, - 45, 65, 248, 44, 125, 88, 92, 65, 2, 244, 192, 139, 65, 2, 90, 77, 65, 2, - 90, 139, 65, 2, 243, 105, 77, 65, 2, 243, 105, 40, 38, 248, 141, 56, 40, - 38, 65, 2, 108, 235, 45, 240, 126, 56, 226, 226, 65, 2, 253, 241, 234, - 18, 226, 226, 65, 2, 253, 241, 233, 63, 235, 45, 65, 2, 253, 241, 234, - 18, 235, 45, 65, 2, 253, 241, 233, 63, 77, 65, 2, 240, 31, 234, 9, 235, - 45, 65, 2, 240, 31, 234, 18, 231, 86, 253, 159, 234, 64, 56, 235, 62, - 253, 159, 234, 64, 56, 242, 223, 248, 56, 65, 153, 183, 125, 139, 65, - 153, 253, 144, 248, 59, 77, 65, 153, 125, 231, 86, 248, 35, 218, 56, 235, - 62, 248, 35, 218, 56, 139, 186, 2, 154, 236, 206, 139, 186, 2, 154, 234, - 9, 226, 226, 186, 2, 154, 233, 63, 226, 226, 186, 2, 154, 234, 18, 77, - 186, 2, 154, 236, 206, 77, 186, 2, 154, 234, 9, 235, 45, 186, 2, 154, - 233, 63, 235, 45, 186, 2, 154, 234, 18, 77, 65, 248, 59, 139, 56, 226, - 226, 65, 139, 147, 235, 45, 56, 139, 65, 248, 59, 77, 56, 139, 240, 117, - 238, 104, 226, 226, 240, 117, 238, 104, 77, 240, 117, 238, 104, 235, 45, - 240, 117, 238, 104, 139, 186, 248, 59, 77, 236, 175, 77, 186, 248, 59, - 139, 236, 175, 139, 45, 65, 2, 108, 40, 38, 45, 65, 2, 108, 77, 45, 65, - 2, 108, 139, 45, 56, 226, 226, 45, 56, 77, 45, 56, 235, 45, 45, 56, 40, - 38, 45, 56, 88, 92, 45, 56, 242, 223, 248, 56, 45, 56, 242, 223, 248, 43, - 45, 56, 242, 228, 248, 43, 45, 56, 242, 228, 248, 56, 45, 56, 139, 240, - 3, 56, 77, 240, 3, 56, 139, 236, 240, 56, 77, 236, 240, 56, 226, 226, 65, - 2, 45, 108, 235, 45, 65, 2, 45, 108, 139, 240, 55, 56, 226, 226, 240, 55, - 56, 77, 240, 55, 56, 235, 45, 240, 55, 56, 139, 65, 153, 125, 77, 65, - 153, 125, 139, 64, 56, 226, 226, 64, 56, 77, 64, 56, 235, 45, 64, 56, - 226, 226, 64, 65, 248, 44, 125, 226, 226, 64, 65, 255, 34, 235, 133, 226, - 226, 64, 65, 255, 34, 237, 28, 2, 163, 125, 226, 226, 64, 65, 255, 34, - 237, 28, 2, 59, 125, 226, 226, 64, 45, 56, 226, 226, 64, 45, 65, 255, 34, - 235, 133, 77, 64, 65, 248, 44, 247, 192, 242, 223, 248, 56, 65, 153, 238, - 67, 242, 228, 248, 43, 65, 153, 238, 67, 88, 92, 64, 56, 38, 65, 2, 3, - 238, 51, 235, 45, 65, 139, 147, 226, 226, 56, 204, 77, 238, 104, 139, 65, - 2, 59, 108, 77, 65, 2, 59, 108, 40, 38, 65, 2, 59, 108, 139, 65, 2, 45, - 59, 108, 77, 65, 2, 45, 59, 108, 40, 38, 65, 2, 45, 59, 108, 139, 233, - 72, 56, 77, 233, 72, 56, 40, 38, 233, 72, 56, 28, 249, 26, 233, 124, 238, - 100, 231, 90, 244, 29, 239, 58, 244, 29, 248, 86, 161, 241, 100, 243, 15, - 249, 160, 234, 205, 240, 79, 238, 68, 253, 174, 161, 255, 68, 238, 68, - 253, 174, 3, 238, 68, 253, 174, 236, 180, 255, 24, 238, 145, 248, 86, - 161, 238, 131, 255, 24, 238, 145, 3, 236, 180, 255, 24, 238, 145, 253, - 165, 147, 242, 66, 242, 238, 236, 170, 242, 238, 234, 50, 242, 238, 234, - 65, 242, 250, 52, 231, 148, 52, 53, 243, 12, 236, 196, 240, 37, 254, 30, - 240, 68, 236, 219, 235, 47, 248, 51, 235, 47, 241, 41, 235, 47, 31, 243, - 119, 250, 169, 243, 119, 240, 137, 243, 119, 232, 199, 87, 235, 101, 38, - 240, 54, 240, 54, 236, 168, 240, 54, 235, 109, 240, 54, 237, 112, 248, - 86, 161, 238, 177, 236, 200, 87, 161, 236, 200, 87, 238, 56, 248, 91, - 238, 56, 253, 227, 231, 88, 240, 58, 235, 60, 45, 235, 60, 240, 3, 235, - 60, 238, 132, 235, 60, 239, 210, 235, 60, 242, 180, 235, 60, 235, 62, - 235, 60, 235, 62, 238, 132, 235, 60, 231, 86, 238, 132, 235, 60, 235, 33, - 237, 74, 242, 78, 233, 96, 53, 240, 68, 239, 57, 236, 31, 233, 96, 233, - 206, 242, 219, 235, 47, 224, 169, 236, 145, 251, 187, 193, 252, 178, 243, - 80, 242, 186, 236, 170, 161, 169, 242, 250, 169, 231, 45, 95, 87, 161, - 231, 45, 95, 87, 231, 89, 95, 87, 231, 89, 253, 230, 161, 236, 244, 95, - 87, 238, 79, 231, 89, 253, 192, 236, 244, 95, 87, 240, 40, 95, 87, 161, - 240, 40, 95, 87, 240, 40, 95, 128, 95, 87, 240, 3, 169, 254, 51, 95, 87, - 234, 5, 87, 231, 105, 234, 5, 87, 234, 111, 236, 248, 234, 92, 253, 145, - 241, 216, 231, 105, 95, 87, 231, 89, 95, 153, 128, 253, 145, 243, 11, - 253, 174, 243, 11, 147, 128, 231, 89, 95, 87, 243, 14, 238, 113, 240, 7, - 240, 24, 248, 51, 255, 22, 95, 87, 248, 51, 95, 87, 233, 128, 87, 234, - 187, 233, 198, 87, 248, 135, 238, 113, 243, 92, 95, 87, 95, 153, 255, 25, - 233, 130, 236, 168, 254, 82, 234, 243, 95, 87, 161, 95, 87, 235, 89, 87, - 161, 235, 89, 87, 238, 17, 234, 5, 87, 235, 44, 128, 95, 87, 232, 68, - 128, 95, 87, 235, 44, 248, 59, 95, 87, 232, 68, 248, 59, 95, 87, 235, 44, - 253, 230, 161, 95, 87, 232, 68, 253, 230, 161, 95, 87, 248, 168, 234, 3, - 248, 168, 231, 85, 236, 248, 161, 234, 5, 87, 161, 234, 3, 161, 231, 85, - 238, 79, 235, 44, 253, 192, 95, 87, 238, 79, 232, 68, 253, 192, 95, 87, - 235, 44, 128, 234, 5, 87, 232, 68, 128, 234, 5, 87, 238, 79, 235, 44, - 253, 192, 234, 5, 87, 238, 79, 232, 68, 253, 192, 234, 5, 87, 235, 44, - 128, 231, 85, 232, 68, 128, 234, 3, 238, 79, 235, 44, 253, 192, 231, 85, - 238, 79, 232, 68, 253, 192, 234, 3, 235, 107, 235, 111, 236, 176, 128, - 95, 87, 236, 178, 128, 95, 87, 236, 176, 128, 234, 5, 87, 236, 178, 128, - 234, 5, 87, 248, 86, 161, 237, 240, 248, 86, 161, 238, 19, 240, 26, 253, - 174, 236, 154, 253, 174, 161, 134, 240, 26, 253, 174, 161, 134, 236, 154, - 253, 174, 240, 26, 147, 128, 95, 87, 236, 154, 147, 128, 95, 87, 238, 79, - 134, 240, 26, 147, 253, 192, 95, 87, 238, 79, 134, 236, 154, 147, 253, - 192, 95, 87, 240, 26, 147, 2, 161, 95, 87, 236, 154, 147, 2, 161, 95, 87, - 236, 62, 237, 24, 231, 26, 237, 24, 240, 58, 31, 243, 11, 253, 174, 31, - 236, 209, 253, 174, 31, 243, 11, 147, 128, 95, 87, 31, 236, 209, 147, - 128, 95, 87, 31, 249, 38, 31, 249, 43, 29, 243, 12, 29, 240, 68, 29, 240, - 123, 29, 236, 196, 240, 37, 29, 53, 235, 47, 29, 248, 51, 235, 47, 29, - 236, 219, 235, 47, 29, 238, 113, 29, 242, 235, 238, 84, 243, 12, 238, 84, - 240, 68, 238, 84, 240, 123, 238, 84, 53, 235, 47, 38, 242, 234, 40, 242, - 234, 92, 242, 234, 88, 242, 234, 234, 94, 239, 139, 244, 38, 239, 78, - 240, 3, 59, 253, 144, 38, 234, 15, 45, 59, 253, 144, 45, 38, 234, 15, - 248, 86, 161, 242, 67, 161, 244, 38, 248, 86, 161, 241, 114, 238, 203, - 45, 59, 253, 144, 45, 38, 234, 15, 236, 176, 244, 44, 235, 92, 236, 178, - 244, 44, 235, 92, 240, 52, 236, 203, 253, 174, 236, 180, 255, 24, 240, - 52, 235, 144, 240, 52, 236, 203, 147, 128, 95, 87, 236, 180, 255, 24, - 240, 52, 236, 203, 128, 95, 87, 236, 209, 253, 174, 243, 11, 253, 174, - 235, 103, 236, 35, 235, 193, 239, 130, 232, 178, 253, 49, 246, 104, 252, - 34, 38, 185, 2, 248, 113, 38, 235, 46, 242, 238, 238, 56, 248, 91, 242, - 238, 238, 56, 253, 227, 242, 238, 231, 88, 242, 238, 240, 58, 238, 76, - 235, 47, 53, 235, 47, 248, 135, 235, 47, 236, 196, 240, 123, 238, 168, - 40, 240, 52, 240, 173, 234, 21, 236, 170, 38, 240, 52, 240, 173, 234, 21, - 236, 170, 40, 234, 21, 236, 170, 38, 234, 21, 236, 170, 224, 242, 219, - 238, 113, 242, 225, 238, 56, 253, 227, 242, 225, 238, 56, 248, 91, 45, - 238, 87, 45, 235, 84, 45, 231, 88, 45, 240, 58, 234, 234, 95, 19, 236, - 200, 87, 235, 44, 2, 248, 40, 232, 68, 2, 248, 40, 249, 194, 248, 168, - 234, 3, 249, 194, 248, 168, 231, 85, 235, 44, 95, 153, 128, 231, 85, 232, - 68, 95, 153, 128, 234, 3, 95, 153, 128, 234, 3, 95, 153, 128, 231, 85, - 95, 153, 128, 235, 107, 95, 153, 128, 235, 111, 248, 86, 161, 239, 165, - 128, 240, 32, 248, 86, 161, 239, 209, 128, 240, 32, 161, 31, 243, 11, - 147, 128, 95, 87, 161, 31, 236, 209, 147, 128, 95, 87, 31, 243, 11, 147, - 128, 161, 95, 87, 31, 236, 209, 147, 128, 161, 95, 87, 235, 44, 253, 230, - 161, 234, 5, 87, 232, 68, 253, 230, 161, 234, 5, 87, 236, 176, 253, 230, - 161, 234, 5, 87, 236, 178, 253, 230, 161, 234, 5, 87, 161, 240, 52, 236, - 203, 253, 174, 248, 86, 161, 238, 131, 255, 24, 240, 52, 235, 144, 161, - 240, 52, 236, 203, 147, 128, 95, 87, 248, 86, 161, 238, 131, 255, 24, - 240, 52, 236, 203, 128, 240, 32, 59, 235, 69, 239, 136, 163, 235, 69, 88, - 38, 236, 159, 235, 69, 92, 38, 236, 159, 235, 69, 238, 68, 147, 2, 183, - 163, 108, 238, 68, 147, 2, 59, 253, 144, 255, 31, 253, 165, 147, 163, - 108, 3, 238, 68, 147, 2, 59, 253, 144, 255, 31, 253, 165, 147, 163, 108, - 238, 68, 147, 2, 53, 48, 238, 68, 147, 2, 236, 163, 3, 238, 68, 147, 2, - 236, 163, 238, 68, 147, 2, 235, 50, 238, 68, 147, 2, 171, 163, 237, 45, - 236, 180, 2, 183, 163, 108, 236, 180, 2, 59, 253, 144, 255, 31, 253, 165, - 147, 163, 108, 3, 236, 180, 2, 59, 253, 144, 255, 31, 253, 165, 147, 163, - 108, 236, 180, 2, 236, 163, 3, 236, 180, 2, 236, 163, 255, 97, 126, 254, - 52, 233, 217, 237, 105, 52, 237, 149, 56, 241, 168, 88, 234, 7, 92, 234, - 7, 233, 226, 232, 193, 248, 103, 242, 224, 40, 236, 251, 38, 236, 251, - 40, 240, 175, 38, 240, 175, 240, 17, 38, 243, 55, 240, 17, 40, 243, 55, - 253, 159, 38, 243, 55, 253, 159, 40, 243, 55, 224, 161, 52, 31, 236, 231, - 248, 113, 238, 4, 239, 187, 235, 113, 236, 87, 237, 239, 234, 30, 238, - 42, 238, 59, 243, 245, 147, 237, 181, 52, 205, 161, 52, 240, 252, 234, - 39, 253, 159, 40, 238, 67, 253, 159, 38, 238, 67, 240, 17, 40, 238, 67, - 240, 17, 38, 238, 67, 253, 159, 137, 235, 60, 240, 17, 137, 235, 60, 241, - 118, 242, 118, 88, 235, 76, 239, 7, 171, 163, 244, 191, 242, 42, 251, - 145, 243, 169, 153, 253, 145, 225, 255, 113, 255, 22, 134, 236, 89, 248, - 92, 236, 45, 231, 87, 185, 104, 231, 36, 185, 104, 243, 169, 153, 253, - 145, 242, 220, 239, 6, 242, 233, 231, 121, 254, 51, 229, 64, 236, 125, - 247, 156, 239, 175, 235, 205, 239, 154, 239, 31, 242, 141, 242, 116, 232, - 124, 232, 125, 141, 142, 12, 239, 96, 141, 142, 12, 242, 127, 243, 43, - 141, 142, 12, 248, 62, 240, 32, 141, 142, 12, 248, 62, 238, 177, 141, - 142, 12, 248, 62, 236, 164, 141, 142, 12, 248, 62, 248, 115, 141, 142, - 12, 248, 62, 238, 51, 141, 142, 12, 218, 240, 103, 141, 142, 12, 218, - 248, 115, 141, 142, 12, 247, 94, 125, 141, 142, 12, 235, 177, 125, 141, - 142, 12, 248, 62, 240, 37, 141, 142, 12, 248, 62, 234, 25, 141, 142, 12, - 248, 62, 234, 3, 141, 142, 12, 248, 62, 231, 85, 141, 142, 12, 139, 243, - 79, 141, 142, 12, 77, 243, 79, 141, 142, 12, 248, 62, 139, 56, 141, 142, - 12, 248, 62, 77, 56, 141, 142, 12, 218, 234, 25, 141, 142, 12, 92, 248, - 84, 235, 50, 141, 142, 12, 243, 92, 240, 103, 141, 142, 12, 248, 62, 92, - 240, 130, 141, 142, 12, 248, 62, 240, 28, 141, 142, 12, 92, 248, 84, 248, - 115, 141, 142, 12, 226, 226, 243, 79, 141, 142, 12, 248, 62, 226, 226, - 56, 141, 142, 12, 88, 248, 84, 236, 163, 141, 142, 12, 254, 56, 240, 103, - 141, 142, 12, 248, 62, 88, 240, 130, 141, 142, 12, 248, 62, 250, 189, - 141, 142, 12, 88, 248, 84, 248, 115, 141, 142, 12, 235, 45, 243, 79, 141, - 142, 12, 248, 62, 235, 45, 56, 141, 142, 12, 243, 249, 235, 50, 141, 142, - 12, 243, 92, 235, 50, 141, 142, 12, 238, 76, 235, 50, 141, 142, 12, 254, - 104, 235, 50, 141, 142, 12, 218, 235, 50, 141, 142, 12, 88, 248, 247, - 248, 115, 141, 142, 12, 243, 249, 243, 43, 141, 142, 12, 218, 242, 229, - 141, 142, 12, 248, 62, 240, 24, 141, 142, 12, 88, 248, 84, 175, 141, 142, - 12, 254, 56, 175, 141, 142, 12, 248, 135, 175, 141, 142, 12, 254, 104, - 175, 141, 142, 12, 218, 175, 141, 142, 12, 92, 248, 247, 240, 103, 141, - 142, 12, 40, 248, 247, 240, 103, 141, 142, 12, 242, 219, 175, 141, 142, - 12, 232, 68, 175, 141, 142, 12, 242, 244, 125, 141, 142, 12, 254, 56, - 169, 141, 142, 12, 242, 207, 141, 142, 12, 247, 122, 169, 141, 142, 12, - 236, 99, 235, 50, 141, 142, 12, 248, 62, 161, 240, 32, 141, 142, 12, 248, - 62, 236, 85, 141, 142, 12, 92, 243, 25, 169, 141, 142, 12, 88, 243, 25, - 169, 141, 142, 12, 242, 237, 141, 142, 12, 248, 73, 141, 142, 12, 240, - 20, 141, 142, 12, 194, 235, 50, 141, 142, 12, 238, 57, 235, 50, 141, 142, - 12, 248, 42, 235, 50, 141, 142, 12, 211, 235, 50, 141, 142, 12, 240, 22, - 161, 243, 53, 69, 38, 185, 2, 235, 45, 240, 126, 56, 235, 0, 248, 35, - 248, 92, 250, 114, 91, 59, 248, 41, 2, 240, 1, 248, 40, 235, 128, 91, - 234, 104, 235, 157, 91, 231, 128, 235, 157, 91, 237, 8, 91, 233, 126, 91, - 64, 31, 2, 240, 46, 59, 242, 224, 245, 82, 91, 233, 68, 254, 105, 91, - 251, 51, 91, 29, 163, 253, 144, 2, 242, 23, 29, 236, 152, 242, 236, 240, - 129, 218, 2, 236, 64, 56, 252, 252, 91, 234, 224, 91, 234, 201, 91, 226, - 236, 241, 143, 91, 226, 236, 241, 209, 91, 226, 227, 91, 226, 230, 91, - 240, 169, 239, 33, 12, 248, 38, 111, 227, 7, 91, 141, 142, 12, 243, 43, - 238, 176, 235, 95, 254, 105, 91, 237, 242, 243, 240, 252, 16, 243, 240, - 246, 254, 240, 218, 91, 245, 23, 240, 218, 91, 40, 233, 56, 189, 90, 40, - 233, 56, 234, 10, 40, 233, 56, 168, 90, 38, 233, 56, 189, 90, 38, 233, - 56, 234, 10, 38, 233, 56, 168, 90, 40, 31, 238, 52, 189, 238, 67, 40, 31, - 238, 52, 234, 10, 40, 31, 238, 52, 168, 238, 67, 38, 31, 238, 52, 189, - 238, 67, 38, 31, 238, 52, 234, 10, 38, 31, 238, 52, 168, 238, 67, 40, - 242, 225, 238, 52, 189, 90, 40, 242, 225, 238, 52, 240, 1, 240, 119, 40, - 242, 225, 238, 52, 168, 90, 242, 225, 238, 52, 234, 10, 38, 242, 225, - 238, 52, 189, 90, 38, 242, 225, 238, 52, 240, 1, 240, 119, 38, 242, 225, - 238, 52, 168, 90, 236, 167, 234, 10, 163, 248, 41, 234, 10, 189, 40, 128, - 168, 38, 242, 225, 238, 52, 236, 210, 189, 38, 128, 168, 40, 242, 225, - 238, 52, 236, 210, 235, 112, 249, 3, 235, 112, 238, 128, 253, 159, 31, - 104, 240, 17, 31, 104, 240, 17, 31, 238, 52, 248, 59, 253, 159, 31, 104, - 25, 12, 238, 128, 40, 59, 66, 242, 224, 38, 59, 66, 242, 224, 163, 248, - 183, 239, 119, 163, 248, 183, 239, 120, 163, 248, 183, 239, 121, 163, - 248, 183, 239, 122, 235, 58, 12, 136, 59, 19, 253, 159, 225, 235, 58, 12, - 136, 59, 19, 240, 17, 225, 235, 58, 12, 136, 59, 2, 238, 51, 235, 58, 12, - 136, 92, 19, 163, 2, 238, 51, 235, 58, 12, 136, 88, 19, 163, 2, 238, 51, - 235, 58, 12, 136, 59, 2, 235, 46, 235, 58, 12, 136, 92, 19, 163, 2, 235, - 46, 235, 58, 12, 136, 88, 19, 163, 2, 235, 46, 235, 58, 12, 136, 59, 19, - 243, 80, 235, 58, 12, 136, 92, 19, 163, 2, 243, 80, 235, 58, 12, 136, 88, - 19, 163, 2, 243, 80, 235, 58, 12, 136, 92, 19, 233, 50, 235, 58, 12, 136, - 88, 19, 233, 50, 235, 58, 12, 136, 59, 19, 253, 159, 242, 220, 235, 58, - 12, 136, 59, 19, 240, 17, 242, 220, 31, 243, 94, 242, 80, 91, 245, 81, - 91, 59, 248, 41, 234, 10, 236, 183, 239, 255, 236, 183, 183, 248, 59, - 242, 108, 236, 183, 242, 215, 248, 59, 243, 66, 236, 183, 183, 248, 59, - 171, 239, 194, 236, 183, 171, 240, 228, 248, 59, 243, 66, 236, 183, 171, - 240, 228, 239, 103, 236, 183, 237, 49, 236, 183, 234, 82, 236, 183, 234, - 62, 243, 168, 239, 85, 245, 94, 12, 28, 246, 193, 12, 28, 243, 124, 147, - 237, 173, 12, 28, 243, 124, 147, 244, 28, 12, 28, 253, 165, 147, 244, 28, - 12, 28, 253, 165, 147, 232, 62, 12, 28, 237, 150, 12, 28, 232, 103, 12, - 28, 244, 215, 12, 28, 234, 96, 12, 28, 163, 233, 107, 12, 28, 248, 41, - 243, 171, 12, 28, 59, 233, 107, 12, 28, 248, 38, 243, 171, 12, 28, 237, - 84, 238, 211, 12, 28, 244, 11, 248, 235, 12, 28, 244, 11, 253, 247, 12, - 28, 250, 185, 251, 197, 238, 183, 12, 28, 240, 113, 238, 110, 127, 12, - 28, 240, 113, 238, 110, 111, 12, 28, 240, 113, 238, 110, 166, 12, 28, - 240, 113, 238, 110, 177, 12, 28, 236, 146, 232, 103, 12, 28, 233, 250, - 245, 224, 12, 28, 253, 165, 147, 233, 44, 240, 13, 12, 28, 239, 16, 12, - 28, 253, 165, 147, 239, 132, 12, 28, 233, 249, 12, 28, 238, 183, 12, 28, - 250, 244, 234, 6, 12, 28, 245, 128, 234, 6, 12, 28, 242, 79, 234, 6, 12, - 28, 252, 253, 234, 6, 12, 28, 240, 15, 12, 28, 239, 39, 244, 224, 91, - 248, 35, 248, 92, 12, 28, 237, 219, 12, 28, 241, 81, 248, 38, 111, 12, - 28, 235, 5, 248, 38, 111, 253, 207, 90, 253, 207, 241, 50, 253, 207, 243, - 175, 253, 207, 236, 145, 243, 175, 253, 207, 250, 115, 239, 15, 253, 207, - 254, 146, 248, 139, 253, 207, 241, 36, 250, 102, 229, 67, 253, 207, 241, - 9, 147, 240, 162, 253, 207, 242, 235, 253, 207, 237, 97, 238, 158, 239, - 147, 253, 207, 45, 234, 25, 29, 26, 127, 29, 26, 111, 29, 26, 166, 29, - 26, 177, 29, 26, 176, 29, 26, 187, 29, 26, 203, 29, 26, 195, 29, 26, 202, - 29, 61, 248, 53, 29, 61, 238, 91, 29, 61, 238, 97, 29, 61, 235, 85, 29, - 61, 235, 82, 29, 61, 236, 207, 29, 61, 236, 202, 29, 61, 234, 22, 29, 61, - 235, 81, 29, 61, 235, 83, 29, 61, 238, 77, 82, 26, 127, 82, 26, 111, 82, - 26, 166, 82, 26, 177, 82, 26, 176, 82, 26, 187, 82, 26, 203, 82, 26, 195, - 82, 26, 202, 82, 61, 248, 53, 82, 61, 238, 91, 82, 61, 238, 97, 82, 61, - 235, 85, 82, 61, 235, 82, 82, 61, 236, 207, 82, 61, 236, 202, 82, 61, - 234, 22, 82, 61, 235, 81, 82, 61, 235, 83, 82, 61, 238, 77, 26, 253, 125, - 248, 37, 208, 26, 171, 248, 37, 208, 26, 204, 248, 37, 208, 26, 248, 58, - 248, 37, 208, 26, 248, 48, 248, 37, 208, 26, 254, 31, 248, 37, 208, 26, - 243, 31, 248, 37, 208, 26, 242, 254, 248, 37, 208, 26, 248, 173, 248, 37, - 208, 61, 253, 219, 248, 37, 208, 61, 241, 93, 248, 37, 208, 61, 240, 251, - 248, 37, 208, 61, 238, 26, 248, 37, 208, 61, 237, 161, 248, 37, 208, 61, - 239, 70, 248, 37, 208, 61, 238, 216, 248, 37, 208, 61, 236, 100, 248, 37, - 208, 61, 237, 147, 248, 37, 208, 61, 237, 222, 248, 37, 208, 61, 240, 48, - 248, 37, 208, 82, 8, 3, 1, 67, 82, 8, 3, 1, 217, 82, 8, 3, 1, 255, 18, - 82, 8, 3, 1, 209, 82, 8, 3, 1, 72, 82, 8, 3, 1, 255, 19, 82, 8, 3, 1, - 210, 82, 8, 3, 1, 192, 82, 8, 3, 1, 71, 82, 8, 3, 1, 221, 82, 8, 3, 1, - 255, 15, 82, 8, 3, 1, 162, 82, 8, 3, 1, 173, 82, 8, 3, 1, 197, 82, 8, 3, - 1, 73, 82, 8, 3, 1, 223, 82, 8, 3, 1, 255, 20, 82, 8, 3, 1, 144, 82, 8, - 3, 1, 193, 82, 8, 3, 1, 214, 82, 8, 3, 1, 79, 82, 8, 3, 1, 179, 82, 8, 3, - 1, 255, 16, 82, 8, 3, 1, 206, 82, 8, 3, 1, 255, 14, 82, 8, 3, 1, 255, 17, - 29, 8, 5, 1, 67, 29, 8, 5, 1, 217, 29, 8, 5, 1, 255, 18, 29, 8, 5, 1, - 209, 29, 8, 5, 1, 72, 29, 8, 5, 1, 255, 19, 29, 8, 5, 1, 210, 29, 8, 5, - 1, 192, 29, 8, 5, 1, 71, 29, 8, 5, 1, 221, 29, 8, 5, 1, 255, 15, 29, 8, - 5, 1, 162, 29, 8, 5, 1, 173, 29, 8, 5, 1, 197, 29, 8, 5, 1, 73, 29, 8, 5, - 1, 223, 29, 8, 5, 1, 255, 20, 29, 8, 5, 1, 144, 29, 8, 5, 1, 193, 29, 8, - 5, 1, 214, 29, 8, 5, 1, 79, 29, 8, 5, 1, 179, 29, 8, 5, 1, 255, 16, 29, - 8, 5, 1, 206, 29, 8, 5, 1, 255, 14, 29, 8, 5, 1, 255, 17, 29, 8, 3, 1, - 67, 29, 8, 3, 1, 217, 29, 8, 3, 1, 255, 18, 29, 8, 3, 1, 209, 29, 8, 3, - 1, 72, 29, 8, 3, 1, 255, 19, 29, 8, 3, 1, 210, 29, 8, 3, 1, 192, 29, 8, - 3, 1, 71, 29, 8, 3, 1, 221, 29, 8, 3, 1, 255, 15, 29, 8, 3, 1, 162, 29, - 8, 3, 1, 173, 29, 8, 3, 1, 197, 29, 8, 3, 1, 73, 29, 8, 3, 1, 223, 29, 8, - 3, 1, 255, 20, 29, 8, 3, 1, 144, 29, 8, 3, 1, 193, 29, 8, 3, 1, 214, 29, - 8, 3, 1, 79, 29, 8, 3, 1, 179, 29, 8, 3, 1, 255, 16, 29, 8, 3, 1, 206, - 29, 8, 3, 1, 255, 14, 29, 8, 3, 1, 255, 17, 29, 26, 242, 217, 236, 146, - 29, 61, 238, 91, 236, 146, 29, 61, 238, 97, 236, 146, 29, 61, 235, 85, - 236, 146, 29, 61, 235, 82, 236, 146, 29, 61, 236, 207, 236, 146, 29, 61, - 236, 202, 236, 146, 29, 61, 234, 22, 236, 146, 29, 61, 235, 81, 236, 146, - 29, 61, 235, 83, 236, 146, 29, 61, 238, 77, 45, 29, 26, 127, 45, 29, 26, - 111, 45, 29, 26, 166, 45, 29, 26, 177, 45, 29, 26, 176, 45, 29, 26, 187, - 45, 29, 26, 203, 45, 29, 26, 195, 45, 29, 26, 202, 45, 29, 61, 248, 53, - 236, 146, 29, 26, 242, 217, 66, 70, 136, 233, 50, 66, 70, 96, 233, 50, - 66, 70, 136, 235, 63, 66, 70, 96, 235, 63, 66, 70, 136, 240, 3, 248, 63, - 233, 50, 66, 70, 96, 240, 3, 248, 63, 233, 50, 66, 70, 136, 240, 3, 248, - 63, 235, 63, 66, 70, 96, 240, 3, 248, 63, 235, 63, 66, 70, 136, 235, 71, - 248, 63, 233, 50, 66, 70, 96, 235, 71, 248, 63, 233, 50, 66, 70, 136, - 235, 71, 248, 63, 235, 63, 66, 70, 96, 235, 71, 248, 63, 235, 63, 66, 70, - 136, 92, 19, 225, 66, 70, 92, 136, 19, 38, 240, 11, 66, 70, 92, 96, 19, - 38, 240, 9, 66, 70, 96, 92, 19, 225, 66, 70, 136, 92, 19, 242, 220, 66, - 70, 92, 136, 19, 40, 240, 11, 66, 70, 92, 96, 19, 40, 240, 9, 66, 70, 96, - 92, 19, 242, 220, 66, 70, 136, 88, 19, 225, 66, 70, 88, 136, 19, 38, 240, - 11, 66, 70, 88, 96, 19, 38, 240, 9, 66, 70, 96, 88, 19, 225, 66, 70, 136, - 88, 19, 242, 220, 66, 70, 88, 136, 19, 40, 240, 11, 66, 70, 88, 96, 19, - 40, 240, 9, 66, 70, 96, 88, 19, 242, 220, 66, 70, 136, 59, 19, 225, 66, - 70, 59, 136, 19, 38, 240, 11, 66, 70, 88, 96, 19, 38, 92, 240, 9, 66, 70, - 92, 96, 19, 38, 88, 240, 9, 66, 70, 59, 96, 19, 38, 240, 9, 66, 70, 92, - 136, 19, 38, 88, 240, 11, 66, 70, 88, 136, 19, 38, 92, 240, 11, 66, 70, - 96, 59, 19, 225, 66, 70, 136, 59, 19, 242, 220, 66, 70, 59, 136, 19, 40, - 240, 11, 66, 70, 88, 96, 19, 40, 92, 240, 9, 66, 70, 92, 96, 19, 40, 88, - 240, 9, 66, 70, 59, 96, 19, 40, 240, 9, 66, 70, 92, 136, 19, 40, 88, 240, - 11, 66, 70, 88, 136, 19, 40, 92, 240, 11, 66, 70, 96, 59, 19, 242, 220, - 66, 70, 136, 92, 19, 233, 50, 66, 70, 40, 96, 19, 38, 92, 240, 9, 66, 70, - 38, 96, 19, 40, 92, 240, 9, 66, 70, 92, 136, 19, 163, 240, 11, 66, 70, - 92, 96, 19, 163, 240, 9, 66, 70, 38, 136, 19, 40, 92, 240, 11, 66, 70, - 40, 136, 19, 38, 92, 240, 11, 66, 70, 96, 92, 19, 233, 50, 66, 70, 136, - 88, 19, 233, 50, 66, 70, 40, 96, 19, 38, 88, 240, 9, 66, 70, 38, 96, 19, - 40, 88, 240, 9, 66, 70, 88, 136, 19, 163, 240, 11, 66, 70, 88, 96, 19, - 163, 240, 9, 66, 70, 38, 136, 19, 40, 88, 240, 11, 66, 70, 40, 136, 19, - 38, 88, 240, 11, 66, 70, 96, 88, 19, 233, 50, 66, 70, 136, 59, 19, 233, - 50, 66, 70, 40, 96, 19, 38, 59, 240, 9, 66, 70, 38, 96, 19, 40, 59, 240, - 9, 66, 70, 59, 136, 19, 163, 240, 11, 66, 70, 88, 96, 19, 92, 163, 240, - 9, 66, 70, 92, 96, 19, 88, 163, 240, 9, 66, 70, 59, 96, 19, 163, 240, 9, - 66, 70, 40, 88, 96, 19, 38, 92, 240, 9, 66, 70, 38, 88, 96, 19, 40, 92, - 240, 9, 66, 70, 40, 92, 96, 19, 38, 88, 240, 9, 66, 70, 38, 92, 96, 19, - 40, 88, 240, 9, 66, 70, 92, 136, 19, 88, 163, 240, 11, 66, 70, 88, 136, - 19, 92, 163, 240, 11, 66, 70, 38, 136, 19, 40, 59, 240, 11, 66, 70, 40, - 136, 19, 38, 59, 240, 11, 66, 70, 96, 59, 19, 233, 50, 66, 70, 136, 45, - 248, 63, 233, 50, 66, 70, 96, 45, 248, 63, 233, 50, 66, 70, 136, 45, 248, - 63, 235, 63, 66, 70, 96, 45, 248, 63, 235, 63, 66, 70, 45, 233, 50, 66, - 70, 45, 235, 63, 66, 70, 92, 240, 12, 19, 38, 238, 78, 66, 70, 92, 45, - 19, 38, 238, 82, 66, 70, 45, 92, 19, 225, 66, 70, 92, 240, 12, 19, 40, - 238, 78, 66, 70, 92, 45, 19, 40, 238, 82, 66, 70, 45, 92, 19, 242, 220, - 66, 70, 88, 240, 12, 19, 38, 238, 78, 66, 70, 88, 45, 19, 38, 238, 82, - 66, 70, 45, 88, 19, 225, 66, 70, 88, 240, 12, 19, 40, 238, 78, 66, 70, - 88, 45, 19, 40, 238, 82, 66, 70, 45, 88, 19, 242, 220, 66, 70, 59, 240, - 12, 19, 38, 238, 78, 66, 70, 59, 45, 19, 38, 238, 82, 66, 70, 45, 59, 19, - 225, 66, 70, 59, 240, 12, 19, 40, 238, 78, 66, 70, 59, 45, 19, 40, 238, - 82, 66, 70, 45, 59, 19, 242, 220, 66, 70, 92, 240, 12, 19, 163, 238, 78, - 66, 70, 92, 45, 19, 163, 238, 82, 66, 70, 45, 92, 19, 233, 50, 66, 70, - 88, 240, 12, 19, 163, 238, 78, 66, 70, 88, 45, 19, 163, 238, 82, 66, 70, - 45, 88, 19, 233, 50, 66, 70, 59, 240, 12, 19, 163, 238, 78, 66, 70, 59, - 45, 19, 163, 238, 82, 66, 70, 45, 59, 19, 233, 50, 66, 70, 136, 253, 183, - 92, 19, 225, 66, 70, 136, 253, 183, 92, 19, 242, 220, 66, 70, 136, 253, - 183, 88, 19, 242, 220, 66, 70, 136, 253, 183, 88, 19, 225, 66, 70, 136, - 236, 159, 189, 38, 153, 168, 242, 220, 66, 70, 136, 236, 159, 189, 40, - 153, 168, 225, 66, 70, 136, 236, 159, 240, 34, 66, 70, 136, 242, 220, 66, - 70, 136, 253, 176, 66, 70, 136, 225, 66, 70, 136, 242, 236, 66, 70, 96, - 242, 220, 66, 70, 96, 253, 176, 66, 70, 96, 225, 66, 70, 96, 242, 236, - 66, 70, 136, 40, 19, 96, 225, 66, 70, 136, 88, 19, 96, 242, 236, 66, 70, - 96, 40, 19, 136, 225, 66, 70, 96, 88, 19, 136, 242, 236, 189, 137, 240, - 13, 168, 253, 125, 240, 62, 240, 13, 168, 253, 125, 238, 80, 240, 13, - 168, 204, 238, 98, 240, 13, 168, 137, 240, 13, 168, 248, 48, 238, 98, - 240, 13, 168, 204, 236, 236, 240, 13, 168, 243, 31, 238, 98, 240, 13, - 248, 37, 240, 13, 40, 243, 31, 238, 98, 240, 13, 40, 204, 236, 236, 240, - 13, 40, 248, 48, 238, 98, 240, 13, 40, 137, 240, 13, 40, 204, 238, 98, - 240, 13, 40, 253, 125, 238, 80, 240, 13, 40, 253, 125, 240, 62, 240, 13, - 38, 137, 240, 13, 136, 240, 146, 240, 19, 240, 146, 250, 183, 240, 146, - 189, 253, 125, 240, 62, 240, 13, 38, 253, 125, 240, 62, 240, 13, 236, - 158, 168, 242, 220, 236, 158, 168, 225, 236, 158, 189, 242, 220, 236, - 158, 189, 40, 19, 168, 40, 19, 168, 225, 236, 158, 189, 40, 19, 168, 225, - 236, 158, 189, 40, 19, 189, 38, 19, 168, 242, 220, 236, 158, 189, 40, 19, - 189, 38, 19, 168, 225, 236, 158, 189, 225, 236, 158, 189, 38, 19, 168, - 242, 220, 236, 158, 189, 38, 19, 168, 40, 19, 168, 225, 86, 238, 59, 64, - 238, 59, 64, 31, 2, 238, 121, 237, 0, 64, 31, 234, 34, 86, 3, 238, 59, - 31, 2, 163, 243, 19, 31, 2, 59, 243, 19, 31, 2, 234, 230, 234, 51, 243, - 19, 31, 2, 189, 40, 153, 168, 38, 243, 19, 31, 2, 189, 38, 153, 168, 40, - 243, 19, 31, 2, 236, 159, 234, 51, 243, 19, 86, 3, 238, 59, 64, 3, 238, - 59, 86, 234, 31, 64, 234, 31, 86, 59, 234, 31, 64, 59, 234, 31, 86, 231, - 48, 64, 231, 48, 86, 233, 60, 235, 46, 64, 233, 60, 235, 46, 86, 233, 60, - 3, 235, 46, 64, 233, 60, 3, 235, 46, 86, 231, 36, 235, 46, 64, 231, 36, - 235, 46, 86, 231, 36, 3, 235, 46, 64, 231, 36, 3, 235, 46, 86, 231, 36, - 236, 217, 64, 231, 36, 236, 217, 86, 231, 91, 235, 46, 64, 231, 91, 235, - 46, 86, 231, 91, 3, 235, 46, 64, 231, 91, 3, 235, 46, 86, 231, 87, 235, - 46, 64, 231, 87, 235, 46, 86, 231, 87, 3, 235, 46, 64, 231, 87, 3, 235, - 46, 86, 231, 87, 236, 217, 64, 231, 87, 236, 217, 86, 236, 164, 64, 236, - 164, 64, 238, 76, 234, 34, 86, 3, 236, 164, 237, 157, 236, 231, 64, 238, - 51, 240, 4, 238, 51, 218, 2, 59, 243, 19, 235, 183, 86, 238, 51, 218, 2, - 40, 137, 240, 0, 218, 2, 38, 137, 240, 0, 218, 2, 168, 137, 240, 0, 218, - 2, 189, 137, 240, 0, 218, 2, 189, 38, 236, 158, 240, 0, 218, 2, 254, 51, - 253, 230, 189, 40, 236, 158, 240, 0, 40, 137, 86, 238, 51, 38, 137, 86, - 238, 51, 238, 116, 238, 69, 238, 116, 64, 238, 51, 189, 137, 238, 116, - 64, 238, 51, 168, 137, 238, 116, 64, 238, 51, 189, 40, 236, 158, 236, - 211, 248, 113, 189, 38, 236, 158, 236, 211, 248, 113, 168, 38, 236, 158, - 236, 211, 248, 113, 168, 40, 236, 158, 236, 211, 248, 113, 189, 137, 238, - 51, 168, 137, 238, 51, 86, 168, 38, 235, 46, 86, 168, 40, 235, 46, 86, - 189, 40, 235, 46, 86, 189, 38, 235, 46, 64, 238, 69, 31, 2, 40, 137, 240, - 0, 31, 2, 38, 137, 240, 0, 31, 2, 189, 40, 236, 159, 137, 240, 0, 31, 2, - 168, 38, 236, 159, 137, 240, 0, 64, 31, 2, 59, 235, 180, 242, 224, 64, - 233, 60, 236, 152, 2, 248, 40, 233, 60, 236, 152, 2, 40, 137, 240, 0, - 233, 60, 236, 152, 2, 38, 137, 240, 0, 243, 22, 238, 51, 64, 31, 2, 189, - 40, 235, 70, 64, 31, 2, 168, 40, 235, 70, 64, 31, 2, 168, 38, 235, 70, - 64, 31, 2, 189, 38, 235, 70, 64, 218, 2, 189, 40, 235, 70, 64, 218, 2, - 168, 40, 235, 70, 64, 218, 2, 168, 38, 235, 70, 64, 218, 2, 189, 38, 235, - 70, 189, 40, 235, 46, 189, 38, 235, 46, 168, 40, 235, 46, 64, 240, 19, - 238, 59, 86, 240, 19, 238, 59, 64, 240, 19, 3, 238, 59, 86, 240, 19, 3, - 238, 59, 168, 38, 235, 46, 86, 254, 126, 2, 243, 251, 241, 61, 236, 135, - 238, 9, 241, 64, 86, 242, 229, 64, 242, 229, 234, 219, 232, 60, 248, 136, - 235, 172, 243, 235, 234, 110, 243, 235, 232, 120, 233, 73, 86, 234, 81, - 64, 234, 81, 240, 91, 248, 92, 240, 91, 66, 2, 240, 162, 240, 91, 66, 2, - 206, 237, 255, 238, 38, 2, 252, 128, 241, 90, 254, 96, 235, 178, 64, 244, - 12, 240, 119, 86, 244, 12, 240, 119, 236, 101, 224, 238, 120, 240, 135, - 243, 16, 238, 69, 86, 40, 236, 150, 240, 76, 86, 38, 236, 150, 240, 76, - 64, 40, 236, 150, 240, 76, 64, 88, 236, 150, 240, 76, 64, 38, 236, 150, - 240, 76, 64, 92, 236, 150, 240, 76, 247, 92, 19, 233, 129, 239, 19, 52, - 233, 227, 52, 235, 179, 52, 235, 185, 244, 81, 237, 228, 240, 34, 254, - 83, 248, 73, 243, 38, 147, 236, 53, 243, 38, 147, 234, 210, 248, 135, 19, - 235, 196, 243, 26, 91, 254, 139, 239, 192, 240, 185, 19, 239, 196, 246, - 239, 91, 254, 15, 243, 50, 238, 89, 28, 238, 139, 238, 89, 28, 243, 213, - 238, 89, 28, 243, 27, 238, 89, 28, 237, 48, 238, 89, 28, 243, 82, 238, - 89, 28, 240, 105, 238, 89, 28, 235, 102, 238, 89, 28, 240, 49, 247, 195, - 147, 239, 42, 64, 237, 162, 243, 39, 64, 238, 219, 243, 39, 86, 238, 219, - 243, 39, 64, 254, 126, 2, 243, 251, 243, 41, 238, 80, 243, 30, 251, 184, - 238, 80, 243, 30, 237, 208, 240, 96, 52, 240, 49, 248, 95, 52, 237, 185, - 239, 180, 239, 236, 237, 218, 242, 62, 241, 15, 239, 215, 239, 81, 239, - 17, 251, 188, 242, 179, 241, 215, 236, 98, 232, 203, 234, 99, 235, 167, - 239, 163, 64, 242, 252, 243, 208, 64, 242, 252, 240, 213, 64, 242, 252, - 244, 0, 64, 242, 252, 238, 167, 64, 242, 252, 238, 196, 64, 242, 252, - 243, 241, 86, 242, 252, 243, 208, 86, 242, 252, 240, 213, 86, 242, 252, - 244, 0, 86, 242, 252, 238, 167, 86, 242, 252, 238, 196, 86, 242, 252, - 243, 241, 86, 244, 22, 243, 17, 64, 243, 16, 243, 17, 64, 238, 76, 243, - 17, 86, 249, 41, 243, 17, 64, 244, 22, 243, 17, 86, 243, 16, 243, 17, 86, - 238, 76, 243, 17, 64, 249, 41, 243, 17, 254, 96, 238, 11, 238, 80, 243, - 9, 240, 62, 243, 9, 240, 157, 240, 62, 240, 203, 240, 157, 235, 108, 240, - 203, 243, 108, 248, 209, 52, 243, 108, 238, 146, 52, 243, 108, 243, 74, - 52, 248, 56, 129, 240, 34, 248, 43, 129, 240, 34, 235, 159, 235, 65, 91, - 235, 65, 12, 28, 242, 164, 235, 75, 235, 65, 12, 28, 242, 165, 235, 75, - 235, 65, 12, 28, 242, 166, 235, 75, 235, 65, 12, 28, 242, 167, 235, 75, - 235, 65, 12, 28, 242, 168, 235, 75, 235, 65, 12, 28, 242, 169, 235, 75, - 235, 65, 12, 28, 242, 170, 235, 75, 235, 65, 12, 28, 239, 82, 234, 221, - 86, 235, 159, 235, 65, 91, 237, 249, 243, 113, 91, 226, 250, 243, 113, - 91, 236, 74, 243, 113, 52, 235, 41, 91, 254, 2, 239, 60, 254, 2, 239, 61, - 254, 2, 239, 62, 254, 2, 239, 63, 254, 2, 239, 64, 254, 2, 239, 65, 64, - 218, 2, 53, 225, 64, 218, 2, 171, 243, 5, 86, 218, 2, 64, 53, 225, 86, - 218, 2, 171, 64, 243, 5, 236, 184, 28, 243, 50, 236, 184, 28, 249, 23, - 240, 56, 28, 238, 188, 243, 50, 240, 56, 28, 240, 198, 249, 23, 240, 56, - 28, 240, 198, 243, 50, 240, 56, 28, 238, 188, 249, 23, 64, 243, 173, 86, - 243, 173, 240, 185, 19, 246, 248, 238, 159, 238, 133, 239, 211, 244, 24, - 147, 232, 113, 239, 181, 237, 58, 239, 77, 245, 98, 244, 24, 147, 239, - 92, 249, 242, 91, 231, 138, 239, 246, 52, 200, 239, 245, 52, 238, 179, - 240, 96, 52, 238, 179, 248, 95, 52, 233, 212, 240, 96, 19, 248, 95, 52, - 248, 95, 19, 240, 96, 52, 248, 95, 2, 240, 5, 52, 248, 95, 2, 240, 5, 19, - 248, 95, 19, 240, 96, 52, 59, 248, 95, 2, 240, 5, 52, 163, 248, 95, 2, - 240, 5, 52, 240, 19, 64, 238, 51, 240, 19, 86, 238, 51, 240, 19, 3, 64, - 238, 51, 237, 202, 91, 239, 45, 91, 236, 137, 233, 94, 91, 239, 30, 239, - 79, 253, 3, 189, 243, 148, 235, 93, 86, 235, 93, 168, 243, 148, 235, 93, - 64, 235, 93, 235, 113, 237, 195, 52, 252, 210, 241, 89, 235, 162, 236, - 12, 239, 242, 243, 59, 239, 249, 243, 59, 168, 38, 238, 148, 238, 148, - 189, 38, 238, 148, 64, 249, 120, 86, 249, 120, 243, 53, 69, 96, 243, 53, - 69, 231, 37, 206, 96, 231, 37, 206, 240, 91, 206, 96, 240, 91, 206, 236, - 199, 17, 240, 34, 96, 17, 240, 34, 248, 35, 240, 46, 240, 34, 96, 248, - 35, 240, 46, 240, 34, 8, 240, 34, 236, 189, 64, 8, 240, 34, 236, 199, 8, - 240, 34, 239, 126, 240, 34, 248, 135, 147, 241, 74, 248, 58, 229, 58, - 235, 52, 248, 58, 231, 39, 235, 52, 96, 248, 58, 231, 39, 235, 52, 248, - 58, 233, 123, 235, 52, 86, 248, 58, 238, 74, 242, 229, 64, 248, 58, 238, - 74, 242, 229, 240, 148, 236, 199, 64, 242, 229, 29, 64, 242, 229, 248, - 35, 240, 46, 86, 242, 229, 86, 240, 46, 64, 242, 229, 236, 199, 86, 242, - 229, 96, 236, 199, 86, 242, 229, 236, 235, 242, 229, 236, 189, 64, 242, - 229, 96, 235, 52, 248, 35, 240, 46, 235, 52, 242, 254, 242, 124, 235, 52, - 242, 254, 238, 74, 86, 242, 229, 242, 254, 238, 74, 236, 235, 242, 229, - 254, 31, 238, 74, 86, 242, 229, 242, 254, 238, 74, 233, 98, 86, 242, 229, - 96, 242, 254, 238, 74, 233, 98, 86, 242, 229, 240, 251, 238, 74, 86, 242, - 229, 238, 216, 238, 74, 235, 52, 229, 58, 235, 52, 248, 35, 240, 46, 229, - 58, 235, 52, 96, 229, 58, 235, 52, 254, 31, 237, 30, 86, 19, 64, 235, 88, - 86, 235, 88, 64, 235, 88, 242, 254, 237, 30, 236, 199, 86, 235, 88, 29, - 248, 35, 240, 46, 242, 254, 238, 74, 242, 229, 96, 229, 58, 236, 235, - 235, 52, 234, 42, 247, 150, 235, 35, 234, 42, 96, 239, 23, 234, 42, 237, - 42, 96, 237, 42, 231, 39, 235, 52, 242, 254, 229, 58, 235, 139, 235, 52, - 96, 242, 254, 229, 58, 235, 139, 235, 52, 236, 189, 64, 238, 51, 168, 38, - 231, 103, 64, 238, 59, 189, 38, 231, 103, 64, 238, 59, 168, 38, 236, 189, - 64, 238, 59, 189, 38, 236, 189, 64, 238, 59, 86, 238, 76, 242, 250, 64, - 206, 136, 59, 125, 240, 19, 59, 125, 96, 59, 125, 96, 240, 12, 205, 242, - 244, 235, 51, 158, 235, 53, 96, 240, 12, 242, 244, 235, 51, 158, 235, 53, - 96, 45, 205, 242, 244, 235, 51, 158, 235, 53, 96, 45, 242, 244, 235, 51, - 158, 235, 53, 240, 95, 252, 190, 235, 91, 21, 235, 53, 96, 233, 54, 158, - 235, 53, 96, 243, 16, 233, 54, 158, 235, 53, 96, 86, 240, 138, 238, 120, - 96, 86, 243, 16, 238, 69, 240, 135, 240, 138, 238, 120, 240, 135, 243, - 16, 238, 69, 240, 19, 40, 233, 56, 235, 53, 240, 19, 38, 233, 56, 235, - 53, 240, 19, 235, 122, 40, 233, 56, 235, 53, 240, 19, 235, 122, 38, 233, - 56, 235, 53, 240, 19, 231, 87, 185, 238, 52, 235, 53, 240, 19, 231, 36, - 185, 238, 52, 235, 53, 96, 231, 87, 185, 235, 51, 158, 235, 53, 96, 231, - 36, 185, 235, 51, 158, 235, 53, 96, 231, 87, 185, 238, 52, 235, 53, 96, - 231, 36, 185, 238, 52, 235, 53, 136, 40, 236, 171, 242, 255, 238, 52, - 235, 53, 136, 38, 236, 171, 242, 255, 238, 52, 235, 53, 240, 19, 40, 242, - 225, 238, 52, 235, 53, 240, 19, 38, 242, 225, 238, 52, 235, 53, 238, 55, - 236, 146, 29, 26, 127, 238, 55, 236, 146, 29, 26, 111, 238, 55, 236, 146, - 29, 26, 166, 238, 55, 236, 146, 29, 26, 177, 238, 55, 236, 146, 29, 26, - 176, 238, 55, 236, 146, 29, 26, 187, 238, 55, 236, 146, 29, 26, 203, 238, - 55, 236, 146, 29, 26, 195, 238, 55, 236, 146, 29, 26, 202, 238, 55, 236, - 146, 29, 61, 248, 53, 238, 55, 29, 27, 26, 127, 238, 55, 29, 27, 26, 111, - 238, 55, 29, 27, 26, 166, 238, 55, 29, 27, 26, 177, 238, 55, 29, 27, 26, - 176, 238, 55, 29, 27, 26, 187, 238, 55, 29, 27, 26, 203, 238, 55, 29, 27, - 26, 195, 238, 55, 29, 27, 26, 202, 238, 55, 29, 27, 61, 248, 53, 238, 55, - 236, 146, 29, 27, 26, 127, 238, 55, 236, 146, 29, 27, 26, 111, 238, 55, - 236, 146, 29, 27, 26, 166, 238, 55, 236, 146, 29, 27, 26, 177, 238, 55, - 236, 146, 29, 27, 26, 176, 238, 55, 236, 146, 29, 27, 26, 187, 238, 55, - 236, 146, 29, 27, 26, 203, 238, 55, 236, 146, 29, 27, 26, 195, 238, 55, - 236, 146, 29, 27, 26, 202, 238, 55, 236, 146, 29, 27, 61, 248, 53, 96, - 234, 1, 77, 56, 96, 242, 228, 248, 43, 56, 96, 77, 56, 96, 242, 223, 248, - 43, 56, 237, 142, 242, 232, 77, 56, 96, 232, 202, 77, 56, 229, 60, 77, - 56, 96, 229, 60, 77, 56, 240, 55, 229, 60, 77, 56, 96, 240, 55, 229, 60, - 77, 56, 86, 77, 56, 238, 229, 233, 253, 77, 234, 7, 238, 229, 231, 60, - 77, 234, 7, 86, 77, 234, 7, 96, 86, 240, 95, 235, 45, 19, 77, 56, 96, 86, - 240, 95, 226, 226, 19, 77, 56, 244, 23, 86, 77, 56, 96, 229, 65, 86, 77, - 56, 232, 200, 64, 77, 56, 233, 215, 64, 77, 56, 233, 119, 236, 189, 64, - 77, 56, 232, 166, 236, 189, 64, 77, 56, 96, 168, 231, 38, 64, 77, 56, 96, - 189, 231, 38, 64, 77, 56, 238, 204, 168, 231, 38, 64, 77, 56, 238, 204, - 189, 231, 38, 64, 77, 56, 29, 96, 64, 77, 56, 231, 34, 77, 56, 229, 59, - 242, 228, 248, 43, 56, 229, 59, 77, 56, 229, 59, 242, 223, 248, 43, 56, - 96, 229, 59, 242, 228, 248, 43, 56, 96, 229, 59, 77, 56, 96, 229, 59, - 242, 223, 248, 43, 56, 231, 31, 77, 56, 96, 229, 56, 77, 56, 232, 112, - 77, 56, 96, 232, 112, 77, 56, 231, 150, 77, 56, 204, 233, 133, 240, 54, - 64, 236, 152, 234, 34, 3, 64, 235, 46, 231, 49, 248, 35, 238, 87, 248, - 35, 235, 84, 40, 237, 35, 254, 52, 234, 35, 38, 237, 35, 254, 52, 234, - 35, 64, 238, 76, 2, 238, 130, 248, 40, 19, 2, 248, 40, 238, 68, 147, 238, - 96, 236, 206, 168, 38, 240, 31, 2, 248, 40, 189, 40, 240, 31, 2, 248, 40, - 40, 243, 111, 243, 61, 38, 243, 111, 243, 61, 248, 37, 243, 111, 243, 61, - 243, 22, 88, 242, 234, 243, 22, 92, 242, 234, 40, 19, 38, 45, 234, 15, - 40, 19, 38, 242, 234, 40, 235, 103, 183, 38, 242, 234, 183, 40, 242, 234, - 88, 248, 84, 2, 218, 48, 239, 124, 238, 135, 255, 25, 163, 247, 53, 64, - 231, 95, 236, 164, 64, 231, 95, 238, 76, 2, 139, 243, 36, 64, 231, 95, - 238, 76, 2, 77, 243, 36, 64, 31, 2, 139, 243, 36, 64, 31, 2, 77, 243, 36, - 10, 40, 64, 31, 104, 10, 38, 64, 31, 104, 10, 40, 185, 104, 10, 38, 185, - 104, 10, 40, 45, 185, 104, 10, 38, 45, 185, 104, 226, 226, 235, 71, 56, - 235, 45, 235, 71, 56, 231, 86, 240, 178, 218, 56, 235, 62, 240, 178, 218, - 56, 38, 65, 2, 29, 243, 12, 183, 139, 56, 183, 77, 56, 183, 40, 38, 56, - 183, 139, 45, 56, 183, 77, 45, 56, 183, 40, 38, 45, 56, 183, 139, 65, - 248, 44, 125, 183, 77, 65, 248, 44, 125, 183, 139, 45, 65, 248, 44, 125, - 183, 77, 45, 65, 248, 44, 125, 183, 77, 236, 240, 56, 35, 36, 241, 33, - 35, 36, 239, 46, 35, 36, 239, 47, 35, 36, 237, 113, 35, 36, 239, 48, 35, - 36, 237, 114, 35, 36, 237, 120, 35, 36, 235, 206, 35, 36, 239, 49, 35, - 36, 237, 115, 35, 36, 237, 121, 35, 36, 235, 207, 35, 36, 237, 126, 35, - 36, 235, 212, 35, 36, 235, 227, 35, 36, 234, 113, 35, 36, 239, 50, 35, - 36, 237, 116, 35, 36, 237, 122, 35, 36, 235, 208, 35, 36, 237, 127, 35, - 36, 235, 213, 35, 36, 235, 228, 35, 36, 234, 114, 35, 36, 237, 131, 35, - 36, 235, 217, 35, 36, 235, 232, 35, 36, 234, 118, 35, 36, 235, 242, 35, - 36, 234, 128, 35, 36, 234, 148, 35, 36, 233, 138, 35, 36, 239, 51, 35, - 36, 237, 117, 35, 36, 237, 123, 35, 36, 235, 209, 35, 36, 237, 128, 35, - 36, 235, 214, 35, 36, 235, 229, 35, 36, 234, 115, 35, 36, 237, 132, 35, - 36, 235, 218, 35, 36, 235, 233, 35, 36, 234, 119, 35, 36, 235, 243, 35, - 36, 234, 129, 35, 36, 234, 149, 35, 36, 233, 139, 35, 36, 237, 135, 35, - 36, 235, 221, 35, 36, 235, 236, 35, 36, 234, 122, 35, 36, 235, 246, 35, - 36, 234, 132, 35, 36, 234, 152, 35, 36, 233, 142, 35, 36, 235, 252, 35, - 36, 234, 138, 35, 36, 234, 158, 35, 36, 233, 148, 35, 36, 234, 168, 35, - 36, 233, 158, 35, 36, 233, 173, 35, 36, 232, 134, 35, 36, 239, 52, 35, - 36, 237, 118, 35, 36, 237, 124, 35, 36, 235, 210, 35, 36, 237, 129, 35, - 36, 235, 215, 35, 36, 235, 230, 35, 36, 234, 116, 35, 36, 237, 133, 35, - 36, 235, 219, 35, 36, 235, 234, 35, 36, 234, 120, 35, 36, 235, 244, 35, - 36, 234, 130, 35, 36, 234, 150, 35, 36, 233, 140, 35, 36, 237, 136, 35, - 36, 235, 222, 35, 36, 235, 237, 35, 36, 234, 123, 35, 36, 235, 247, 35, - 36, 234, 133, 35, 36, 234, 153, 35, 36, 233, 143, 35, 36, 235, 253, 35, - 36, 234, 139, 35, 36, 234, 159, 35, 36, 233, 149, 35, 36, 234, 169, 35, - 36, 233, 159, 35, 36, 233, 174, 35, 36, 232, 135, 35, 36, 237, 138, 35, - 36, 235, 224, 35, 36, 235, 239, 35, 36, 234, 125, 35, 36, 235, 249, 35, - 36, 234, 135, 35, 36, 234, 155, 35, 36, 233, 145, 35, 36, 235, 255, 35, - 36, 234, 141, 35, 36, 234, 161, 35, 36, 233, 151, 35, 36, 234, 171, 35, - 36, 233, 161, 35, 36, 233, 176, 35, 36, 232, 137, 35, 36, 236, 2, 35, 36, - 234, 144, 35, 36, 234, 164, 35, 36, 233, 154, 35, 36, 234, 174, 35, 36, - 233, 164, 35, 36, 233, 179, 35, 36, 232, 140, 35, 36, 234, 178, 35, 36, - 233, 168, 35, 36, 233, 183, 35, 36, 232, 144, 35, 36, 233, 188, 35, 36, - 232, 149, 35, 36, 232, 155, 35, 36, 231, 129, 35, 36, 239, 53, 35, 36, - 237, 119, 35, 36, 237, 125, 35, 36, 235, 211, 35, 36, 237, 130, 35, 36, - 235, 216, 35, 36, 235, 231, 35, 36, 234, 117, 35, 36, 237, 134, 35, 36, - 235, 220, 35, 36, 235, 235, 35, 36, 234, 121, 35, 36, 235, 245, 35, 36, - 234, 131, 35, 36, 234, 151, 35, 36, 233, 141, 35, 36, 237, 137, 35, 36, - 235, 223, 35, 36, 235, 238, 35, 36, 234, 124, 35, 36, 235, 248, 35, 36, - 234, 134, 35, 36, 234, 154, 35, 36, 233, 144, 35, 36, 235, 254, 35, 36, - 234, 140, 35, 36, 234, 160, 35, 36, 233, 150, 35, 36, 234, 170, 35, 36, - 233, 160, 35, 36, 233, 175, 35, 36, 232, 136, 35, 36, 237, 139, 35, 36, - 235, 225, 35, 36, 235, 240, 35, 36, 234, 126, 35, 36, 235, 250, 35, 36, - 234, 136, 35, 36, 234, 156, 35, 36, 233, 146, 35, 36, 236, 0, 35, 36, - 234, 142, 35, 36, 234, 162, 35, 36, 233, 152, 35, 36, 234, 172, 35, 36, - 233, 162, 35, 36, 233, 177, 35, 36, 232, 138, 35, 36, 236, 3, 35, 36, - 234, 145, 35, 36, 234, 165, 35, 36, 233, 155, 35, 36, 234, 175, 35, 36, - 233, 165, 35, 36, 233, 180, 35, 36, 232, 141, 35, 36, 234, 179, 35, 36, - 233, 169, 35, 36, 233, 184, 35, 36, 232, 145, 35, 36, 233, 189, 35, 36, - 232, 150, 35, 36, 232, 156, 35, 36, 231, 130, 35, 36, 237, 140, 35, 36, - 235, 226, 35, 36, 235, 241, 35, 36, 234, 127, 35, 36, 235, 251, 35, 36, - 234, 137, 35, 36, 234, 157, 35, 36, 233, 147, 35, 36, 236, 1, 35, 36, - 234, 143, 35, 36, 234, 163, 35, 36, 233, 153, 35, 36, 234, 173, 35, 36, - 233, 163, 35, 36, 233, 178, 35, 36, 232, 139, 35, 36, 236, 4, 35, 36, - 234, 146, 35, 36, 234, 166, 35, 36, 233, 156, 35, 36, 234, 176, 35, 36, - 233, 166, 35, 36, 233, 181, 35, 36, 232, 142, 35, 36, 234, 180, 35, 36, - 233, 170, 35, 36, 233, 185, 35, 36, 232, 146, 35, 36, 233, 190, 35, 36, - 232, 151, 35, 36, 232, 157, 35, 36, 231, 131, 35, 36, 236, 5, 35, 36, - 234, 147, 35, 36, 234, 167, 35, 36, 233, 157, 35, 36, 234, 177, 35, 36, - 233, 167, 35, 36, 233, 182, 35, 36, 232, 143, 35, 36, 234, 181, 35, 36, - 233, 171, 35, 36, 233, 186, 35, 36, 232, 147, 35, 36, 233, 191, 35, 36, - 232, 152, 35, 36, 232, 158, 35, 36, 231, 132, 35, 36, 234, 182, 35, 36, - 233, 172, 35, 36, 233, 187, 35, 36, 232, 148, 35, 36, 233, 192, 35, 36, - 232, 153, 35, 36, 232, 159, 35, 36, 231, 133, 35, 36, 233, 193, 35, 36, - 232, 154, 35, 36, 232, 160, 35, 36, 231, 134, 35, 36, 232, 161, 35, 36, - 231, 135, 35, 36, 231, 136, 35, 36, 231, 64, 77, 234, 16, 65, 2, 59, 108, - 77, 234, 16, 65, 2, 45, 59, 108, 139, 45, 65, 2, 59, 108, 77, 45, 65, 2, - 59, 108, 40, 38, 45, 65, 2, 59, 108, 77, 234, 16, 65, 248, 44, 125, 139, - 45, 65, 248, 44, 125, 77, 45, 65, 248, 44, 125, 235, 45, 65, 2, 163, 108, - 226, 226, 65, 2, 163, 108, 226, 226, 240, 3, 56, 235, 45, 240, 3, 56, - 139, 45, 248, 63, 56, 77, 45, 248, 63, 56, 139, 240, 3, 248, 63, 56, 77, - 240, 3, 248, 63, 56, 77, 234, 16, 240, 3, 248, 63, 56, 77, 65, 2, 240, 4, - 243, 46, 226, 226, 65, 153, 125, 235, 45, 65, 153, 125, 77, 65, 2, 248, - 138, 2, 59, 108, 77, 65, 2, 248, 138, 2, 45, 59, 108, 77, 234, 16, 65, 2, - 242, 226, 77, 234, 16, 65, 2, 248, 138, 2, 59, 108, 77, 234, 16, 65, 2, - 248, 138, 2, 45, 59, 108, 139, 233, 64, 77, 233, 64, 139, 45, 233, 64, - 77, 45, 233, 64, 139, 65, 153, 86, 236, 164, 77, 65, 153, 86, 236, 164, - 139, 65, 248, 44, 253, 144, 153, 86, 236, 164, 77, 65, 248, 44, 253, 144, - 153, 86, 236, 164, 242, 223, 248, 56, 19, 242, 228, 248, 43, 56, 242, - 223, 248, 43, 19, 242, 228, 248, 56, 56, 242, 223, 248, 56, 65, 2, 90, - 242, 223, 248, 43, 65, 2, 90, 242, 228, 248, 43, 65, 2, 90, 242, 228, - 248, 56, 65, 2, 90, 242, 223, 248, 56, 65, 19, 242, 223, 248, 43, 56, - 242, 223, 248, 43, 65, 19, 242, 228, 248, 43, 56, 242, 228, 248, 43, 65, - 19, 242, 228, 248, 56, 56, 242, 228, 248, 56, 65, 19, 242, 223, 248, 56, - 56, 240, 69, 236, 159, 236, 185, 238, 105, 235, 86, 238, 105, 236, 159, - 236, 185, 240, 69, 235, 86, 242, 228, 248, 43, 65, 236, 185, 242, 223, - 248, 43, 56, 242, 223, 248, 43, 65, 236, 185, 242, 228, 248, 43, 56, 238, - 105, 236, 159, 236, 185, 242, 223, 248, 43, 56, 240, 69, 236, 159, 236, - 185, 242, 228, 248, 43, 56, 242, 223, 248, 43, 65, 236, 185, 242, 223, - 248, 56, 56, 242, 223, 248, 56, 65, 236, 185, 242, 223, 248, 43, 56, 248, - 141, 65, 236, 150, 237, 111, 225, 65, 236, 150, 77, 248, 187, 238, 111, - 236, 206, 65, 236, 150, 77, 248, 187, 238, 111, 234, 9, 65, 236, 150, - 235, 45, 248, 187, 238, 111, 234, 18, 65, 236, 150, 235, 45, 248, 187, - 238, 111, 233, 63, 234, 250, 253, 183, 235, 62, 56, 236, 50, 253, 183, - 231, 86, 56, 253, 159, 253, 183, 231, 86, 56, 240, 17, 253, 183, 231, 86, - 56, 253, 159, 253, 183, 235, 62, 65, 2, 240, 68, 253, 159, 253, 183, 231, - 86, 65, 2, 243, 12, 168, 38, 232, 98, 235, 62, 56, 168, 40, 232, 98, 231, - 86, 56, 231, 86, 240, 23, 218, 56, 235, 62, 240, 23, 218, 56, 77, 65, 60, - 242, 215, 139, 56, 139, 65, 60, 242, 215, 77, 56, 242, 215, 77, 65, 60, - 139, 56, 77, 65, 2, 248, 49, 46, 139, 65, 2, 248, 49, 46, 77, 65, 238, - 108, 206, 40, 38, 65, 238, 108, 3, 238, 51, 226, 226, 234, 16, 65, 248, - 44, 3, 238, 51, 40, 154, 88, 38, 154, 92, 236, 175, 40, 154, 92, 38, 154, - 88, 236, 175, 88, 154, 38, 92, 154, 40, 236, 175, 88, 154, 40, 92, 154, - 38, 236, 175, 40, 154, 88, 38, 154, 88, 236, 175, 88, 154, 38, 92, 154, - 38, 236, 175, 40, 154, 92, 38, 154, 92, 236, 175, 88, 154, 40, 92, 154, - 40, 236, 175, 139, 186, 2, 154, 88, 153, 125, 77, 186, 2, 154, 88, 153, - 125, 226, 226, 186, 2, 154, 38, 153, 125, 235, 45, 186, 2, 154, 38, 153, - 125, 139, 186, 2, 154, 92, 153, 125, 77, 186, 2, 154, 92, 153, 125, 226, - 226, 186, 2, 154, 40, 153, 125, 235, 45, 186, 2, 154, 40, 153, 125, 139, - 186, 2, 154, 88, 248, 44, 125, 77, 186, 2, 154, 88, 248, 44, 125, 226, - 226, 186, 2, 154, 38, 248, 44, 125, 235, 45, 186, 2, 154, 38, 248, 44, - 125, 139, 186, 2, 154, 92, 248, 44, 125, 77, 186, 2, 154, 92, 248, 44, - 125, 226, 226, 186, 2, 154, 40, 248, 44, 125, 235, 45, 186, 2, 154, 40, - 248, 44, 125, 139, 186, 2, 154, 88, 60, 139, 186, 2, 154, 242, 236, 226, - 226, 186, 2, 154, 40, 240, 45, 226, 226, 186, 2, 154, 225, 77, 186, 2, - 154, 88, 60, 77, 186, 2, 154, 242, 236, 235, 45, 186, 2, 154, 40, 240, - 45, 235, 45, 186, 2, 154, 225, 139, 186, 2, 154, 88, 60, 77, 186, 2, 154, - 253, 176, 139, 186, 2, 154, 92, 60, 77, 186, 2, 154, 242, 236, 77, 186, - 2, 154, 88, 60, 139, 186, 2, 154, 253, 176, 77, 186, 2, 154, 92, 60, 139, - 186, 2, 154, 242, 236, 139, 186, 2, 154, 88, 60, 183, 242, 235, 139, 186, - 2, 154, 92, 242, 230, 183, 242, 235, 77, 186, 2, 154, 88, 60, 183, 242, - 235, 77, 186, 2, 154, 92, 242, 230, 183, 242, 235, 226, 226, 186, 2, 154, - 40, 240, 45, 235, 45, 186, 2, 154, 225, 235, 45, 186, 2, 154, 40, 240, - 45, 226, 226, 186, 2, 154, 225, 38, 45, 65, 2, 238, 121, 243, 99, 240, 7, - 21, 60, 77, 56, 242, 219, 236, 208, 60, 77, 56, 139, 65, 60, 242, 219, - 235, 47, 77, 65, 60, 242, 219, 235, 47, 77, 65, 60, 240, 40, 95, 87, 235, - 44, 60, 139, 56, 139, 65, 238, 108, 234, 3, 232, 68, 60, 77, 56, 240, 26, - 60, 77, 56, 139, 65, 238, 108, 238, 87, 236, 154, 60, 139, 56, 40, 248, - 157, 242, 226, 38, 248, 157, 242, 226, 88, 248, 157, 242, 226, 92, 248, - 157, 242, 226, 240, 3, 59, 253, 144, 234, 35, 255, 97, 126, 247, 97, 255, - 97, 126, 249, 9, 240, 24, 40, 64, 242, 225, 104, 38, 64, 242, 225, 104, - 40, 64, 232, 74, 38, 64, 232, 74, 255, 97, 126, 40, 243, 11, 104, 255, - 97, 126, 38, 243, 11, 104, 255, 97, 126, 40, 238, 166, 104, 255, 97, 126, - 38, 238, 166, 104, 40, 31, 238, 52, 2, 235, 50, 38, 31, 238, 52, 2, 235, - 50, 40, 31, 238, 52, 2, 248, 188, 255, 22, 253, 159, 238, 67, 38, 31, - 238, 52, 2, 248, 188, 255, 22, 240, 17, 238, 67, 40, 31, 238, 52, 2, 248, - 188, 255, 22, 240, 17, 238, 67, 38, 31, 238, 52, 2, 248, 188, 255, 22, - 253, 159, 238, 67, 40, 185, 238, 52, 2, 248, 40, 38, 185, 238, 52, 2, - 248, 40, 40, 253, 183, 235, 44, 104, 38, 253, 183, 232, 68, 104, 45, 40, - 253, 183, 232, 68, 104, 45, 38, 253, 183, 235, 44, 104, 40, 86, 236, 171, - 242, 255, 104, 38, 86, 236, 171, 242, 255, 104, 240, 4, 240, 97, 59, 240, - 126, 242, 224, 236, 168, 185, 238, 96, 242, 220, 38, 185, 239, 240, 2, - 238, 59, 236, 168, 38, 185, 2, 248, 40, 185, 2, 255, 99, 238, 94, 242, - 241, 240, 54, 235, 109, 185, 238, 96, 242, 220, 235, 109, 185, 238, 96, - 253, 176, 205, 240, 54, 224, 240, 54, 185, 2, 235, 50, 224, 185, 2, 235, - 50, 238, 106, 185, 238, 96, 253, 176, 238, 106, 185, 238, 96, 242, 236, - 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, 150, 88, - 19, 225, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, - 150, 88, 19, 242, 220, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, - 22, 65, 236, 150, 92, 19, 225, 236, 168, 185, 2, 248, 35, 253, 229, 240, - 63, 255, 22, 65, 236, 150, 92, 19, 242, 220, 236, 168, 185, 2, 248, 35, - 253, 229, 240, 63, 255, 22, 65, 236, 150, 38, 19, 253, 176, 236, 168, - 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, 150, 40, 19, 253, - 176, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, 65, 236, 150, - 38, 19, 242, 236, 236, 168, 185, 2, 248, 35, 253, 229, 240, 63, 255, 22, - 65, 236, 150, 40, 19, 242, 236, 224, 243, 15, 249, 160, 243, 15, 254, 30, - 2, 236, 163, 243, 15, 254, 30, 2, 3, 218, 48, 243, 15, 254, 30, 2, 38, - 65, 48, 243, 15, 254, 30, 2, 40, 65, 48, 218, 2, 163, 125, 29, 59, 125, - 29, 235, 105, 29, 238, 75, 236, 177, 29, 231, 49, 218, 238, 135, 255, 25, - 163, 253, 144, 19, 253, 159, 137, 238, 135, 255, 25, 59, 125, 218, 2, - 233, 39, 206, 29, 226, 231, 236, 196, 52, 88, 65, 238, 108, 238, 51, 29, - 64, 238, 69, 29, 238, 69, 29, 234, 3, 29, 231, 85, 218, 2, 3, 218, 153, - 253, 145, 225, 218, 2, 171, 163, 239, 207, 153, 253, 145, 225, 238, 84, - 240, 69, 236, 159, 240, 37, 238, 84, 238, 105, 236, 159, 240, 37, 238, - 84, 235, 52, 238, 84, 3, 238, 51, 238, 84, 238, 59, 171, 240, 116, 238, - 12, 236, 152, 2, 53, 48, 236, 152, 2, 235, 50, 255, 99, 255, 22, 235, 46, - 236, 152, 2, 240, 220, 255, 31, 238, 128, 38, 236, 152, 60, 40, 235, 46, - 40, 236, 152, 240, 45, 59, 125, 59, 253, 144, 240, 45, 38, 235, 46, 240, - 161, 2, 40, 137, 240, 0, 240, 161, 2, 38, 137, 240, 0, 86, 238, 168, 243, - 48, 2, 40, 137, 240, 0, 243, 48, 2, 38, 137, 240, 0, 64, 234, 39, 86, - 234, 39, 40, 240, 125, 240, 97, 38, 240, 125, 240, 97, 40, 45, 240, 125, - 240, 97, 38, 45, 240, 125, 240, 97, 234, 204, 235, 101, 254, 248, 248, - 59, 235, 101, 237, 180, 238, 203, 2, 59, 125, 232, 162, 235, 103, 31, 2, - 235, 194, 237, 229, 236, 40, 254, 143, 239, 195, 236, 170, 240, 7, 21, - 19, 238, 58, 235, 105, 240, 7, 21, 19, 238, 58, 236, 200, 2, 242, 219, - 48, 235, 89, 153, 19, 238, 58, 235, 105, 241, 138, 242, 132, 231, 83, - 231, 91, 236, 152, 2, 40, 137, 240, 0, 231, 91, 236, 152, 2, 38, 137, - 240, 0, 86, 238, 76, 2, 92, 56, 86, 236, 231, 64, 218, 2, 92, 56, 86, - 218, 2, 92, 56, 232, 78, 64, 238, 59, 232, 78, 86, 238, 59, 232, 78, 64, - 236, 164, 232, 78, 86, 236, 164, 232, 78, 64, 238, 51, 232, 78, 86, 238, - 51, 231, 152, 238, 75, 238, 83, 235, 47, 238, 83, 2, 236, 163, 238, 75, - 238, 83, 2, 163, 108, 253, 213, 236, 177, 253, 213, 238, 75, 236, 177, - 45, 243, 12, 240, 3, 243, 12, 231, 87, 240, 95, 185, 104, 231, 36, 240, - 95, 185, 104, 247, 152, 246, 87, 242, 238, 29, 53, 235, 47, 242, 238, 29, - 248, 49, 235, 47, 242, 238, 29, 243, 48, 235, 47, 242, 238, 243, 2, 236, - 208, 2, 248, 40, 242, 238, 243, 2, 236, 208, 2, 243, 12, 242, 238, 31, - 232, 76, 235, 47, 242, 238, 31, 243, 2, 235, 47, 171, 238, 56, 19, 235, - 47, 171, 238, 56, 128, 235, 47, 242, 238, 243, 48, 235, 47, 241, 247, - 171, 252, 192, 235, 112, 2, 235, 60, 235, 71, 236, 167, 235, 47, 241, - 110, 249, 134, 235, 60, 236, 167, 2, 45, 108, 236, 167, 238, 255, 2, 240, - 37, 233, 122, 236, 29, 231, 86, 232, 177, 248, 41, 233, 70, 2, 233, 97, - 249, 135, 240, 127, 243, 116, 248, 41, 233, 70, 2, 232, 98, 249, 135, - 240, 127, 243, 116, 248, 41, 233, 70, 161, 236, 39, 253, 145, 243, 116, - 236, 167, 240, 127, 134, 242, 232, 235, 47, 234, 242, 236, 167, 235, 47, - 236, 167, 2, 139, 65, 2, 90, 236, 167, 2, 243, 48, 52, 236, 167, 2, 231, - 88, 236, 167, 2, 240, 58, 236, 167, 2, 236, 163, 236, 167, 2, 235, 50, - 243, 61, 243, 22, 40, 236, 152, 235, 47, 255, 97, 126, 240, 144, 232, - 104, 255, 97, 126, 240, 144, 239, 162, 255, 97, 126, 240, 144, 233, 225, - 248, 49, 21, 2, 3, 218, 48, 248, 49, 21, 2, 190, 240, 2, 48, 248, 49, 21, - 2, 242, 219, 48, 248, 49, 21, 2, 53, 46, 248, 49, 21, 2, 242, 219, 46, - 248, 49, 21, 2, 235, 48, 111, 248, 49, 21, 2, 86, 235, 46, 242, 250, 21, - 2, 242, 244, 48, 242, 250, 21, 2, 53, 46, 242, 250, 21, 2, 238, 105, 243, - 5, 242, 250, 21, 2, 240, 69, 243, 5, 248, 49, 21, 255, 22, 40, 137, 238, - 51, 248, 49, 21, 255, 22, 38, 137, 238, 51, 242, 176, 128, 243, 38, 236, - 170, 231, 37, 21, 2, 53, 48, 231, 37, 21, 2, 235, 50, 234, 21, 239, 167, - 2, 240, 17, 239, 29, 244, 20, 236, 170, 231, 37, 21, 255, 22, 40, 137, - 238, 51, 231, 37, 21, 255, 22, 38, 137, 238, 51, 29, 231, 37, 21, 2, 190, - 238, 54, 231, 37, 21, 255, 22, 45, 238, 51, 29, 236, 196, 52, 248, 49, - 21, 255, 22, 235, 46, 242, 250, 21, 255, 22, 235, 46, 231, 37, 21, 255, - 22, 235, 46, 237, 14, 236, 170, 236, 93, 237, 14, 236, 170, 255, 97, 126, - 234, 246, 232, 104, 232, 115, 128, 234, 50, 232, 76, 2, 248, 40, 243, 2, - 2, 242, 250, 52, 243, 2, 2, 236, 163, 232, 76, 2, 236, 163, 232, 76, 2, - 238, 56, 248, 91, 243, 2, 2, 238, 56, 253, 227, 243, 2, 60, 231, 88, 232, - 76, 60, 240, 58, 243, 2, 60, 253, 144, 60, 231, 88, 232, 76, 60, 253, - 144, 60, 240, 58, 243, 2, 240, 45, 19, 240, 116, 2, 240, 58, 232, 76, - 240, 45, 19, 240, 116, 2, 231, 88, 240, 23, 243, 2, 2, 238, 214, 240, 23, - 232, 76, 2, 238, 214, 45, 31, 231, 88, 45, 31, 240, 58, 240, 23, 243, 2, - 2, 240, 220, 19, 244, 20, 236, 170, 238, 56, 19, 2, 53, 48, 238, 56, 128, - 2, 53, 48, 45, 238, 56, 248, 91, 45, 238, 56, 253, 227, 171, 232, 105, - 238, 56, 248, 91, 171, 232, 105, 238, 56, 253, 227, 238, 217, 243, 22, - 253, 227, 238, 217, 243, 22, 248, 91, 238, 56, 128, 233, 91, 238, 56, - 248, 91, 238, 56, 19, 2, 240, 1, 243, 46, 238, 56, 128, 2, 240, 1, 243, - 46, 238, 56, 19, 2, 163, 242, 235, 238, 56, 128, 2, 163, 242, 235, 238, - 56, 19, 2, 45, 236, 163, 238, 56, 19, 2, 235, 50, 238, 56, 19, 2, 45, - 235, 50, 3, 254, 255, 2, 235, 50, 238, 56, 128, 2, 45, 236, 163, 238, 56, - 128, 2, 45, 235, 50, 255, 97, 126, 241, 87, 227, 10, 255, 97, 126, 247, - 28, 227, 10, 240, 7, 21, 2, 53, 46, 235, 89, 2, 53, 48, 240, 3, 163, 253, - 144, 2, 45, 59, 108, 240, 3, 163, 253, 144, 2, 240, 3, 59, 108, 242, 219, - 236, 208, 2, 53, 48, 242, 219, 236, 208, 2, 240, 69, 243, 5, 238, 81, - 242, 250, 238, 5, 235, 192, 2, 53, 48, 240, 7, 2, 235, 52, 240, 40, 95, - 153, 2, 190, 238, 54, 231, 89, 95, 128, 95, 87, 240, 7, 21, 60, 248, 49, - 52, 248, 49, 21, 60, 240, 7, 52, 240, 7, 21, 60, 242, 219, 235, 47, 45, - 243, 14, 240, 32, 171, 233, 82, 240, 7, 240, 232, 204, 233, 82, 240, 7, - 240, 232, 240, 7, 21, 2, 171, 181, 60, 19, 171, 181, 46, 234, 5, 2, 248, - 58, 181, 48, 235, 44, 2, 218, 238, 94, 232, 68, 2, 218, 238, 94, 235, 44, - 2, 236, 156, 158, 48, 232, 68, 2, 236, 156, 158, 48, 235, 44, 128, 238, - 58, 95, 87, 232, 68, 128, 238, 58, 95, 87, 235, 44, 128, 238, 58, 95, - 153, 2, 53, 238, 94, 232, 68, 128, 238, 58, 95, 153, 2, 53, 238, 94, 235, - 44, 128, 238, 58, 95, 153, 2, 53, 48, 232, 68, 128, 238, 58, 95, 153, 2, - 53, 48, 235, 44, 128, 238, 58, 95, 153, 2, 53, 60, 225, 232, 68, 128, - 238, 58, 95, 153, 2, 53, 60, 242, 220, 235, 44, 128, 232, 81, 232, 68, - 128, 232, 81, 235, 44, 19, 233, 61, 161, 95, 87, 232, 68, 19, 233, 61, - 161, 95, 87, 235, 44, 19, 161, 232, 81, 232, 68, 19, 161, 232, 81, 235, - 44, 60, 233, 57, 95, 60, 231, 85, 232, 68, 60, 233, 57, 95, 60, 234, 3, - 235, 44, 60, 238, 81, 128, 240, 32, 232, 68, 60, 238, 81, 128, 240, 32, - 235, 44, 60, 238, 81, 60, 231, 85, 232, 68, 60, 238, 81, 60, 234, 3, 235, - 44, 60, 232, 68, 60, 233, 57, 240, 32, 232, 68, 60, 235, 44, 60, 233, 57, - 240, 32, 235, 44, 60, 238, 58, 95, 60, 232, 68, 60, 238, 58, 240, 32, - 232, 68, 60, 238, 58, 95, 60, 235, 44, 60, 238, 58, 240, 32, 238, 58, 95, - 153, 128, 234, 3, 238, 58, 95, 153, 128, 231, 85, 238, 58, 95, 153, 128, - 235, 44, 2, 53, 238, 94, 238, 58, 95, 153, 128, 232, 68, 2, 53, 238, 94, - 233, 57, 95, 153, 128, 234, 3, 233, 57, 95, 153, 128, 231, 85, 233, 57, - 238, 58, 95, 153, 128, 234, 3, 233, 57, 238, 58, 95, 153, 128, 231, 85, - 238, 81, 128, 234, 3, 238, 81, 128, 231, 85, 238, 81, 60, 235, 44, 60, - 240, 7, 52, 238, 81, 60, 232, 68, 60, 240, 7, 52, 45, 240, 102, 234, 3, - 45, 240, 102, 231, 85, 45, 240, 102, 235, 44, 2, 235, 50, 232, 68, 233, - 91, 234, 3, 232, 68, 240, 45, 234, 3, 235, 44, 240, 23, 255, 25, 240, - 163, 232, 68, 240, 23, 255, 25, 240, 163, 235, 44, 240, 23, 255, 25, 243, - 158, 60, 238, 58, 240, 32, 232, 68, 240, 23, 255, 25, 243, 158, 60, 238, - 58, 240, 32, 238, 218, 243, 127, 240, 196, 243, 127, 238, 218, 249, 1, - 128, 95, 87, 240, 196, 249, 1, 128, 95, 87, 240, 7, 21, 2, 244, 232, 48, - 236, 176, 60, 233, 61, 240, 7, 52, 236, 178, 60, 233, 61, 240, 7, 52, - 236, 176, 60, 233, 61, 161, 95, 87, 236, 178, 60, 233, 61, 161, 95, 87, - 236, 176, 60, 240, 7, 52, 236, 178, 60, 240, 7, 52, 236, 176, 60, 161, - 95, 87, 236, 178, 60, 161, 95, 87, 236, 176, 60, 240, 40, 95, 87, 236, - 178, 60, 240, 40, 95, 87, 236, 176, 60, 161, 240, 40, 95, 87, 236, 178, - 60, 161, 240, 40, 95, 87, 45, 235, 107, 45, 235, 111, 240, 26, 2, 248, - 40, 236, 154, 2, 248, 40, 240, 26, 2, 248, 49, 21, 46, 236, 154, 2, 248, - 49, 21, 46, 240, 26, 2, 231, 37, 21, 46, 236, 154, 2, 231, 37, 21, 46, - 240, 26, 147, 128, 95, 153, 2, 53, 48, 236, 154, 147, 128, 95, 153, 2, - 53, 48, 240, 26, 147, 60, 240, 7, 52, 236, 154, 147, 60, 240, 7, 52, 240, - 26, 147, 60, 242, 219, 235, 47, 236, 154, 147, 60, 242, 219, 235, 47, - 240, 26, 147, 60, 240, 40, 95, 87, 236, 154, 147, 60, 240, 40, 95, 87, - 240, 26, 147, 60, 161, 95, 87, 236, 154, 147, 60, 161, 95, 87, 31, 40, - 248, 35, 66, 235, 47, 31, 38, 248, 35, 66, 235, 47, 240, 23, 238, 87, - 240, 23, 235, 84, 240, 23, 240, 26, 128, 95, 87, 240, 23, 236, 154, 128, - 95, 87, 240, 26, 60, 235, 84, 236, 154, 60, 238, 87, 240, 26, 60, 238, - 87, 236, 154, 60, 235, 84, 236, 154, 240, 45, 238, 87, 236, 154, 240, 45, - 19, 240, 116, 255, 25, 248, 63, 2, 238, 87, 238, 68, 147, 238, 96, 234, - 9, 236, 75, 2, 254, 246, 249, 3, 233, 254, 231, 88, 237, 160, 233, 220, - 242, 215, 40, 242, 234, 242, 215, 92, 242, 234, 242, 215, 88, 242, 234, - 231, 151, 2, 193, 59, 253, 144, 240, 3, 38, 234, 15, 45, 59, 253, 144, - 40, 234, 15, 59, 253, 144, 45, 40, 234, 15, 45, 59, 253, 144, 45, 40, - 234, 15, 183, 248, 63, 248, 44, 40, 241, 234, 147, 45, 235, 63, 242, 215, - 92, 248, 84, 2, 236, 163, 242, 215, 88, 248, 84, 2, 235, 50, 242, 215, - 88, 248, 84, 60, 242, 215, 92, 242, 234, 45, 92, 242, 234, 45, 88, 242, - 234, 45, 240, 5, 161, 52, 224, 45, 240, 5, 161, 52, 248, 86, 161, 241, - 86, 2, 224, 237, 217, 240, 37, 59, 248, 41, 2, 218, 48, 59, 248, 41, 2, - 218, 46, 92, 248, 84, 2, 218, 46, 236, 200, 2, 163, 108, 236, 200, 2, - 242, 219, 235, 47, 240, 3, 59, 253, 144, 240, 159, 235, 92, 240, 3, 59, - 253, 144, 2, 163, 108, 240, 3, 243, 14, 235, 47, 240, 3, 240, 102, 234, - 3, 240, 3, 240, 102, 231, 85, 233, 57, 238, 58, 235, 44, 128, 95, 87, - 233, 57, 238, 58, 232, 68, 128, 95, 87, 240, 3, 238, 83, 240, 159, 235, - 92, 243, 22, 240, 3, 59, 253, 144, 235, 47, 45, 238, 83, 235, 47, 64, 59, - 125, 242, 238, 64, 59, 125, 242, 223, 248, 43, 64, 56, 242, 223, 248, 56, - 64, 56, 242, 228, 248, 43, 64, 56, 242, 228, 248, 56, 64, 56, 40, 38, 64, - 56, 139, 86, 56, 226, 226, 86, 56, 235, 45, 86, 56, 242, 223, 248, 43, - 86, 56, 242, 223, 248, 56, 86, 56, 242, 228, 248, 43, 86, 56, 242, 228, - 248, 56, 86, 56, 40, 38, 86, 56, 88, 92, 86, 56, 77, 65, 2, 253, 241, - 234, 9, 77, 65, 2, 253, 241, 236, 206, 139, 65, 2, 253, 241, 234, 9, 139, - 65, 2, 253, 241, 236, 206, 31, 2, 253, 159, 137, 240, 0, 31, 2, 240, 17, - 137, 240, 0, 98, 5, 1, 249, 29, 98, 5, 1, 243, 152, 98, 5, 1, 244, 45, - 98, 5, 1, 237, 12, 98, 5, 1, 240, 170, 98, 5, 1, 240, 254, 98, 5, 1, 237, - 52, 98, 5, 1, 240, 171, 98, 5, 1, 238, 235, 98, 5, 1, 243, 60, 98, 5, 1, - 54, 243, 60, 98, 5, 1, 71, 98, 5, 1, 238, 178, 98, 5, 1, 243, 204, 98, 5, - 1, 237, 21, 98, 5, 1, 236, 216, 98, 5, 1, 240, 202, 98, 5, 1, 249, 131, - 98, 5, 1, 238, 210, 98, 5, 1, 240, 217, 98, 5, 1, 240, 235, 98, 5, 1, - 238, 230, 98, 5, 1, 249, 190, 98, 5, 1, 240, 177, 98, 5, 1, 243, 193, 98, - 5, 1, 249, 132, 98, 5, 1, 253, 175, 98, 5, 1, 244, 14, 98, 5, 1, 248, - 140, 98, 5, 1, 238, 170, 98, 5, 1, 248, 46, 98, 5, 1, 243, 83, 98, 5, 1, - 244, 57, 98, 5, 1, 244, 56, 98, 5, 1, 238, 221, 219, 98, 5, 1, 253, 161, - 98, 5, 1, 3, 248, 74, 98, 5, 1, 3, 254, 136, 2, 242, 226, 98, 5, 1, 253, - 162, 98, 5, 1, 238, 117, 3, 248, 74, 98, 5, 1, 253, 213, 248, 74, 98, 5, - 1, 238, 117, 253, 213, 248, 74, 98, 5, 1, 243, 57, 98, 5, 1, 236, 215, - 98, 5, 1, 237, 40, 98, 5, 1, 234, 87, 67, 98, 5, 1, 237, 19, 236, 216, - 98, 3, 1, 249, 29, 98, 3, 1, 243, 152, 98, 3, 1, 244, 45, 98, 3, 1, 237, - 12, 98, 3, 1, 240, 170, 98, 3, 1, 240, 254, 98, 3, 1, 237, 52, 98, 3, 1, - 240, 171, 98, 3, 1, 238, 235, 98, 3, 1, 243, 60, 98, 3, 1, 54, 243, 60, - 98, 3, 1, 71, 98, 3, 1, 238, 178, 98, 3, 1, 243, 204, 98, 3, 1, 237, 21, - 98, 3, 1, 236, 216, 98, 3, 1, 240, 202, 98, 3, 1, 249, 131, 98, 3, 1, - 238, 210, 98, 3, 1, 240, 217, 98, 3, 1, 240, 235, 98, 3, 1, 238, 230, 98, - 3, 1, 249, 190, 98, 3, 1, 240, 177, 98, 3, 1, 243, 193, 98, 3, 1, 249, - 132, 98, 3, 1, 253, 175, 98, 3, 1, 244, 14, 98, 3, 1, 248, 140, 98, 3, 1, - 238, 170, 98, 3, 1, 248, 46, 98, 3, 1, 243, 83, 98, 3, 1, 244, 57, 98, 3, - 1, 244, 56, 98, 3, 1, 238, 221, 219, 98, 3, 1, 253, 161, 98, 3, 1, 3, - 248, 74, 98, 3, 1, 3, 254, 136, 2, 242, 226, 98, 3, 1, 253, 162, 98, 3, - 1, 238, 117, 3, 248, 74, 98, 3, 1, 253, 213, 248, 74, 98, 3, 1, 238, 117, - 253, 213, 248, 74, 98, 3, 1, 243, 57, 98, 3, 1, 236, 215, 98, 3, 1, 237, - 40, 98, 3, 1, 234, 87, 67, 98, 3, 1, 237, 19, 236, 216, 62, 5, 1, 243, - 141, 62, 3, 1, 243, 141, 62, 5, 1, 244, 47, 62, 3, 1, 244, 47, 62, 5, 1, - 240, 10, 62, 3, 1, 240, 10, 62, 5, 1, 240, 164, 62, 3, 1, 240, 164, 62, - 5, 1, 248, 154, 62, 3, 1, 248, 154, 62, 5, 1, 249, 167, 62, 3, 1, 249, - 167, 62, 5, 1, 244, 65, 62, 3, 1, 244, 65, 62, 5, 1, 243, 190, 62, 3, 1, - 243, 190, 62, 5, 1, 238, 226, 62, 3, 1, 238, 226, 62, 5, 1, 240, 191, 62, - 3, 1, 240, 191, 62, 5, 1, 243, 62, 62, 3, 1, 243, 62, 62, 5, 1, 240, 197, - 62, 3, 1, 240, 197, 62, 5, 1, 253, 180, 62, 3, 1, 253, 180, 62, 5, 1, - 253, 166, 62, 3, 1, 253, 166, 62, 5, 1, 248, 163, 62, 3, 1, 248, 163, 62, - 5, 1, 73, 62, 3, 1, 73, 62, 5, 1, 253, 147, 62, 3, 1, 253, 147, 62, 5, 1, - 253, 160, 62, 3, 1, 253, 160, 62, 5, 1, 243, 123, 62, 3, 1, 243, 123, 62, - 5, 1, 248, 85, 62, 3, 1, 248, 85, 62, 5, 1, 254, 74, 62, 3, 1, 254, 74, - 62, 5, 1, 253, 245, 62, 3, 1, 253, 245, 62, 5, 1, 248, 219, 62, 3, 1, - 248, 219, 62, 5, 1, 248, 69, 62, 3, 1, 248, 69, 62, 5, 1, 248, 179, 62, - 3, 1, 248, 179, 62, 5, 1, 235, 67, 243, 3, 62, 3, 1, 235, 67, 243, 3, 62, - 5, 1, 76, 62, 248, 105, 62, 3, 1, 76, 62, 248, 105, 62, 5, 1, 231, 93, - 248, 154, 62, 3, 1, 231, 93, 248, 154, 62, 5, 1, 235, 67, 243, 62, 62, 3, - 1, 235, 67, 243, 62, 62, 5, 1, 235, 67, 253, 166, 62, 3, 1, 235, 67, 253, - 166, 62, 5, 1, 231, 93, 253, 166, 62, 3, 1, 231, 93, 253, 166, 62, 5, 1, - 76, 62, 248, 179, 62, 3, 1, 76, 62, 248, 179, 62, 5, 1, 240, 121, 62, 3, - 1, 240, 121, 62, 5, 1, 238, 133, 243, 32, 62, 3, 1, 238, 133, 243, 32, - 62, 5, 1, 76, 62, 243, 32, 62, 3, 1, 76, 62, 243, 32, 62, 5, 1, 76, 62, - 248, 93, 62, 3, 1, 76, 62, 248, 93, 62, 5, 1, 236, 245, 243, 64, 62, 3, - 1, 236, 245, 243, 64, 62, 5, 1, 235, 67, 243, 28, 62, 3, 1, 235, 67, 243, - 28, 62, 5, 1, 76, 62, 243, 28, 62, 3, 1, 76, 62, 243, 28, 62, 5, 1, 76, - 62, 219, 62, 3, 1, 76, 62, 219, 62, 5, 1, 237, 18, 219, 62, 3, 1, 237, - 18, 219, 62, 5, 1, 76, 62, 249, 81, 62, 3, 1, 76, 62, 249, 81, 62, 5, 1, - 76, 62, 248, 214, 62, 3, 1, 76, 62, 248, 214, 62, 5, 1, 76, 62, 238, 115, - 62, 3, 1, 76, 62, 238, 115, 62, 5, 1, 76, 62, 249, 54, 62, 3, 1, 76, 62, - 249, 54, 62, 5, 1, 76, 62, 240, 88, 62, 3, 1, 76, 62, 240, 88, 62, 5, 1, - 76, 240, 43, 240, 88, 62, 3, 1, 76, 240, 43, 240, 88, 62, 5, 1, 76, 240, - 43, 248, 232, 62, 3, 1, 76, 240, 43, 248, 232, 62, 5, 1, 76, 240, 43, - 248, 178, 62, 3, 1, 76, 240, 43, 248, 178, 62, 5, 1, 76, 240, 43, 249, - 198, 62, 3, 1, 76, 240, 43, 249, 198, 62, 12, 249, 91, 62, 12, 255, 82, - 253, 160, 62, 12, 255, 29, 253, 160, 62, 12, 238, 13, 62, 12, 254, 244, - 253, 160, 62, 12, 254, 184, 253, 160, 62, 12, 247, 74, 243, 123, 62, 76, - 240, 43, 248, 37, 208, 62, 76, 240, 43, 240, 169, 236, 156, 69, 62, 76, - 240, 43, 237, 179, 236, 156, 69, 62, 76, 240, 43, 244, 46, 236, 213, 62, - 236, 155, 253, 125, 243, 7, 62, 248, 37, 208, 62, 231, 149, 236, 213, 75, - 3, 1, 254, 19, 75, 3, 1, 248, 195, 75, 3, 1, 248, 158, 75, 3, 1, 248, - 205, 75, 3, 1, 253, 202, 75, 3, 1, 249, 11, 75, 3, 1, 249, 25, 75, 3, 1, - 248, 253, 75, 3, 1, 253, 247, 75, 3, 1, 248, 162, 75, 3, 1, 248, 224, 75, - 3, 1, 248, 131, 75, 3, 1, 248, 171, 75, 3, 1, 254, 9, 75, 3, 1, 248, 236, - 75, 3, 1, 243, 138, 75, 3, 1, 248, 243, 75, 3, 1, 248, 134, 75, 3, 1, - 248, 254, 75, 3, 1, 254, 75, 75, 3, 1, 243, 115, 75, 3, 1, 243, 103, 75, - 3, 1, 243, 95, 75, 3, 1, 248, 242, 75, 3, 1, 243, 33, 75, 3, 1, 243, 88, - 75, 3, 1, 248, 100, 75, 3, 1, 248, 217, 75, 3, 1, 248, 201, 75, 3, 1, - 243, 87, 75, 3, 1, 249, 16, 75, 3, 1, 243, 101, 75, 3, 1, 248, 212, 75, - 3, 1, 253, 168, 75, 3, 1, 248, 160, 75, 3, 1, 253, 170, 75, 3, 1, 248, - 213, 75, 3, 1, 248, 215, 174, 1, 216, 174, 1, 253, 65, 174, 1, 247, 213, - 174, 1, 253, 68, 174, 1, 242, 193, 174, 1, 240, 158, 238, 157, 249, 202, - 174, 1, 249, 202, 174, 1, 253, 66, 174, 1, 247, 216, 174, 1, 247, 215, - 174, 1, 242, 192, 174, 1, 253, 79, 174, 1, 253, 67, 174, 1, 249, 20, 174, - 1, 240, 66, 249, 20, 174, 1, 242, 194, 174, 1, 249, 19, 174, 1, 240, 158, - 238, 157, 249, 19, 174, 1, 240, 66, 249, 19, 174, 1, 247, 218, 174, 1, - 248, 191, 174, 1, 244, 55, 174, 1, 240, 66, 244, 55, 174, 1, 249, 204, - 174, 1, 240, 66, 249, 204, 174, 1, 253, 189, 174, 1, 243, 135, 174, 1, - 238, 239, 243, 135, 174, 1, 240, 66, 243, 135, 174, 1, 253, 69, 174, 1, - 253, 70, 174, 1, 249, 203, 174, 1, 240, 66, 247, 217, 174, 1, 240, 66, - 243, 50, 174, 1, 253, 71, 174, 1, 253, 161, 174, 1, 253, 72, 174, 1, 247, - 219, 174, 1, 243, 134, 174, 1, 240, 66, 243, 134, 174, 1, 249, 246, 243, - 134, 174, 1, 253, 73, 174, 1, 247, 221, 174, 1, 247, 220, 174, 1, 249, - 21, 174, 1, 247, 222, 174, 1, 247, 214, 174, 1, 247, 223, 174, 1, 253, - 74, 174, 1, 253, 75, 174, 1, 253, 76, 174, 1, 249, 205, 174, 1, 235, 32, - 249, 205, 174, 1, 247, 224, 174, 49, 1, 231, 146, 69, 22, 4, 251, 202, - 22, 4, 251, 239, 22, 4, 252, 142, 22, 4, 252, 183, 22, 4, 247, 75, 22, 4, - 250, 128, 22, 4, 252, 226, 22, 4, 250, 165, 22, 4, 252, 32, 22, 4, 246, - 205, 22, 4, 238, 62, 254, 117, 22, 4, 253, 109, 22, 4, 250, 202, 22, 4, - 245, 49, 22, 4, 251, 122, 22, 4, 247, 145, 22, 4, 245, 4, 22, 4, 246, - 246, 22, 4, 252, 71, 22, 4, 245, 116, 22, 4, 245, 118, 22, 4, 241, 135, - 22, 4, 245, 117, 22, 4, 248, 66, 22, 4, 248, 251, 22, 4, 248, 249, 22, 4, - 247, 99, 22, 4, 247, 103, 22, 4, 249, 168, 22, 4, 248, 250, 22, 4, 250, - 148, 22, 4, 250, 152, 22, 4, 250, 150, 22, 4, 244, 245, 22, 4, 244, 246, - 22, 4, 250, 149, 22, 4, 250, 151, 22, 4, 249, 224, 22, 4, 249, 228, 22, - 4, 249, 226, 22, 4, 248, 15, 22, 4, 248, 19, 22, 4, 249, 225, 22, 4, 249, - 227, 22, 4, 244, 247, 22, 4, 244, 251, 22, 4, 244, 249, 22, 4, 241, 45, - 22, 4, 241, 46, 22, 4, 244, 248, 22, 4, 244, 250, 22, 4, 252, 115, 22, 4, - 252, 122, 22, 4, 252, 117, 22, 4, 247, 23, 22, 4, 247, 24, 22, 4, 252, - 116, 22, 4, 252, 118, 22, 4, 251, 175, 22, 4, 251, 179, 22, 4, 251, 177, - 22, 4, 246, 31, 22, 4, 246, 32, 22, 4, 251, 176, 22, 4, 251, 178, 22, 4, - 253, 56, 22, 4, 253, 63, 22, 4, 253, 58, 22, 4, 247, 208, 22, 4, 247, - 209, 22, 4, 253, 57, 22, 4, 253, 59, 22, 4, 251, 39, 22, 4, 251, 44, 22, - 4, 251, 42, 22, 4, 245, 136, 22, 4, 245, 137, 22, 4, 251, 40, 22, 4, 251, - 43, 38, 185, 232, 79, 238, 95, 38, 185, 240, 4, 232, 79, 238, 95, 40, - 232, 79, 104, 38, 232, 79, 104, 40, 240, 4, 232, 79, 104, 38, 240, 4, - 232, 79, 104, 240, 84, 231, 107, 238, 95, 240, 84, 240, 4, 231, 107, 238, - 95, 240, 4, 231, 100, 238, 95, 40, 231, 100, 104, 38, 231, 100, 104, 240, - 84, 238, 59, 40, 240, 84, 237, 26, 104, 38, 240, 84, 237, 26, 104, 236, - 11, 237, 92, 232, 95, 240, 176, 232, 95, 224, 240, 176, 232, 95, 231, - 140, 240, 4, 239, 149, 235, 45, 238, 160, 226, 226, 238, 160, 240, 4, - 231, 36, 240, 54, 45, 238, 106, 238, 93, 40, 170, 234, 61, 104, 38, 170, - 234, 61, 104, 7, 25, 239, 173, 7, 25, 240, 131, 7, 25, 240, 87, 127, 7, - 25, 240, 87, 111, 7, 25, 240, 87, 166, 7, 25, 239, 160, 7, 25, 248, 92, - 7, 25, 240, 241, 7, 25, 243, 209, 127, 7, 25, 243, 209, 111, 7, 25, 233, - 83, 7, 25, 244, 5, 7, 25, 3, 127, 7, 25, 3, 111, 7, 25, 248, 164, 127, 7, - 25, 248, 164, 111, 7, 25, 248, 164, 166, 7, 25, 248, 164, 177, 7, 25, - 242, 119, 7, 25, 238, 228, 7, 25, 244, 21, 127, 7, 25, 244, 21, 111, 7, - 25, 243, 16, 127, 7, 25, 243, 16, 111, 7, 25, 243, 59, 7, 25, 248, 244, - 7, 25, 241, 54, 7, 25, 248, 136, 7, 25, 243, 30, 7, 25, 240, 167, 7, 25, - 239, 140, 7, 25, 235, 189, 7, 25, 244, 50, 127, 7, 25, 244, 50, 111, 7, - 25, 243, 27, 7, 25, 254, 122, 127, 7, 25, 254, 122, 111, 7, 25, 234, 23, - 137, 249, 185, 240, 247, 7, 25, 248, 202, 7, 25, 249, 56, 7, 25, 243, - 199, 7, 25, 249, 33, 147, 240, 132, 7, 25, 249, 59, 7, 25, 240, 237, 127, - 7, 25, 240, 237, 111, 7, 25, 238, 164, 7, 25, 243, 122, 7, 25, 232, 72, - 243, 122, 7, 25, 254, 41, 127, 7, 25, 254, 41, 111, 7, 25, 254, 41, 166, - 7, 25, 254, 41, 177, 7, 25, 246, 65, 7, 25, 240, 225, 7, 25, 249, 151, 7, - 25, 249, 58, 7, 25, 249, 129, 7, 25, 243, 151, 127, 7, 25, 243, 151, 111, - 7, 25, 243, 222, 7, 25, 238, 202, 7, 25, 243, 97, 127, 7, 25, 243, 97, - 111, 7, 25, 243, 97, 166, 7, 25, 240, 245, 7, 25, 236, 255, 7, 25, 248, - 56, 127, 7, 25, 248, 56, 111, 7, 25, 232, 72, 248, 184, 7, 25, 234, 23, - 243, 8, 7, 25, 243, 8, 7, 25, 232, 72, 238, 220, 7, 25, 232, 72, 240, - 227, 7, 25, 243, 94, 7, 25, 232, 72, 243, 154, 7, 25, 234, 23, 244, 48, - 7, 25, 249, 13, 127, 7, 25, 249, 13, 111, 7, 25, 243, 156, 7, 25, 232, - 72, 243, 96, 7, 25, 183, 127, 7, 25, 183, 111, 7, 25, 232, 72, 243, 66, - 7, 25, 232, 72, 243, 178, 7, 25, 243, 227, 127, 7, 25, 243, 227, 111, 7, - 25, 243, 250, 7, 25, 243, 149, 7, 25, 232, 72, 240, 242, 236, 230, 7, 25, - 232, 72, 243, 214, 7, 25, 232, 72, 243, 82, 7, 25, 232, 72, 249, 63, 7, - 25, 254, 58, 127, 7, 25, 254, 58, 111, 7, 25, 254, 58, 166, 7, 25, 232, - 72, 248, 207, 7, 25, 243, 99, 7, 25, 232, 72, 240, 189, 7, 25, 243, 150, - 7, 25, 240, 181, 7, 25, 232, 72, 243, 172, 7, 25, 232, 72, 243, 85, 7, - 25, 232, 72, 244, 4, 7, 25, 234, 23, 240, 153, 7, 25, 234, 23, 238, 232, - 7, 25, 232, 72, 243, 176, 7, 25, 232, 84, 243, 93, 7, 25, 232, 72, 243, - 93, 7, 25, 232, 84, 240, 151, 7, 25, 232, 72, 240, 151, 7, 25, 232, 84, - 238, 137, 7, 25, 232, 72, 238, 137, 7, 25, 238, 125, 7, 25, 232, 84, 238, - 125, 7, 25, 232, 72, 238, 125, 43, 25, 127, 43, 25, 242, 224, 43, 25, - 248, 40, 43, 25, 240, 37, 43, 25, 239, 185, 43, 25, 90, 43, 25, 111, 43, - 25, 251, 195, 43, 25, 248, 131, 43, 25, 246, 41, 43, 25, 241, 95, 43, 25, - 195, 43, 25, 92, 248, 92, 43, 25, 241, 67, 43, 25, 249, 84, 43, 25, 240, - 241, 43, 25, 248, 35, 248, 92, 43, 25, 241, 204, 43, 25, 240, 210, 43, - 25, 247, 197, 43, 25, 242, 125, 43, 25, 38, 248, 35, 248, 92, 43, 25, - 241, 150, 234, 36, 43, 25, 248, 53, 43, 25, 233, 83, 43, 25, 244, 5, 43, - 25, 240, 131, 43, 25, 237, 243, 43, 25, 241, 6, 43, 25, 240, 201, 43, 25, - 234, 36, 43, 25, 240, 49, 43, 25, 238, 2, 43, 25, 253, 234, 43, 25, 255, - 75, 239, 198, 43, 25, 237, 153, 43, 25, 250, 123, 43, 25, 240, 253, 43, - 25, 241, 52, 43, 25, 247, 34, 43, 25, 245, 227, 43, 25, 240, 147, 43, 25, - 246, 37, 43, 25, 239, 32, 43, 25, 239, 202, 43, 25, 235, 102, 43, 25, - 242, 84, 43, 25, 247, 196, 43, 25, 237, 226, 43, 25, 239, 232, 43, 25, - 250, 207, 43, 25, 242, 215, 238, 228, 43, 25, 240, 4, 240, 131, 43, 25, - 183, 239, 206, 43, 25, 171, 241, 147, 43, 25, 242, 107, 43, 25, 248, 198, - 43, 25, 242, 120, 43, 25, 237, 80, 43, 25, 247, 121, 43, 25, 240, 138, - 43, 25, 237, 169, 43, 25, 245, 72, 43, 25, 243, 59, 43, 25, 239, 12, 43, - 25, 248, 244, 43, 25, 239, 183, 43, 25, 239, 44, 43, 25, 249, 245, 43, - 25, 238, 59, 43, 25, 248, 233, 43, 25, 248, 136, 43, 25, 252, 169, 43, - 25, 243, 30, 43, 25, 244, 37, 43, 25, 246, 35, 43, 25, 208, 43, 25, 240, - 167, 43, 25, 239, 247, 43, 25, 255, 48, 248, 233, 43, 25, 237, 89, 43, - 25, 249, 64, 43, 25, 245, 21, 43, 25, 242, 133, 43, 25, 240, 105, 43, 25, - 243, 27, 43, 25, 245, 22, 43, 25, 239, 67, 43, 25, 45, 206, 43, 25, 137, - 249, 185, 240, 247, 43, 25, 242, 115, 43, 25, 245, 89, 43, 25, 248, 202, - 43, 25, 249, 56, 43, 25, 236, 80, 43, 25, 243, 199, 43, 25, 241, 233, 43, - 25, 247, 151, 43, 25, 242, 136, 43, 25, 246, 51, 43, 25, 253, 5, 43, 25, - 241, 106, 43, 25, 249, 33, 147, 240, 132, 43, 25, 236, 103, 43, 25, 240, - 4, 247, 139, 43, 25, 240, 39, 43, 25, 247, 91, 43, 25, 245, 68, 43, 25, - 249, 59, 43, 25, 240, 236, 43, 25, 56, 43, 25, 242, 134, 43, 25, 239, - 201, 43, 25, 242, 156, 43, 25, 241, 140, 43, 25, 244, 243, 43, 25, 242, - 131, 43, 25, 238, 164, 43, 25, 247, 30, 43, 25, 243, 122, 43, 25, 251, - 111, 43, 25, 252, 14, 43, 25, 240, 225, 43, 25, 237, 156, 43, 25, 249, - 129, 43, 25, 248, 91, 43, 25, 246, 252, 43, 25, 248, 206, 43, 25, 241, - 39, 43, 25, 243, 222, 43, 25, 236, 61, 43, 25, 244, 6, 43, 25, 238, 249, - 43, 25, 238, 202, 43, 25, 238, 156, 43, 25, 239, 153, 43, 25, 244, 226, - 43, 25, 236, 108, 43, 25, 241, 63, 43, 25, 241, 142, 43, 25, 240, 245, - 43, 25, 239, 100, 43, 25, 241, 34, 43, 25, 249, 13, 234, 36, 43, 25, 236, - 255, 43, 25, 247, 194, 43, 25, 248, 184, 43, 25, 243, 8, 43, 25, 238, - 220, 43, 25, 239, 238, 43, 25, 244, 213, 43, 25, 252, 66, 43, 25, 239, 1, - 43, 25, 240, 227, 43, 25, 252, 131, 43, 25, 252, 151, 43, 25, 243, 94, - 43, 25, 244, 227, 43, 25, 243, 154, 43, 25, 239, 9, 43, 25, 237, 214, 43, - 25, 244, 48, 43, 25, 243, 156, 43, 25, 243, 133, 43, 25, 232, 132, 43, - 25, 238, 43, 43, 25, 243, 96, 43, 25, 243, 66, 43, 25, 243, 178, 43, 25, - 241, 249, 43, 25, 242, 114, 43, 25, 242, 215, 242, 139, 243, 85, 43, 25, - 243, 250, 43, 25, 243, 149, 43, 25, 242, 187, 43, 25, 243, 39, 43, 25, - 236, 230, 43, 25, 240, 242, 236, 230, 43, 25, 246, 40, 43, 25, 242, 121, - 43, 25, 243, 214, 43, 25, 243, 82, 43, 25, 249, 63, 43, 25, 248, 207, 43, - 25, 243, 99, 43, 25, 236, 27, 43, 25, 240, 189, 43, 25, 243, 150, 43, 25, - 247, 137, 43, 25, 245, 140, 43, 25, 241, 108, 43, 25, 233, 232, 243, 133, - 43, 25, 235, 117, 43, 25, 240, 181, 43, 25, 243, 172, 43, 25, 243, 85, - 43, 25, 244, 4, 43, 25, 243, 164, 43, 25, 240, 153, 43, 25, 245, 141, 43, - 25, 238, 232, 43, 25, 239, 137, 43, 25, 240, 0, 43, 25, 233, 195, 43, 25, - 243, 176, 43, 25, 239, 229, 43, 25, 245, 74, 43, 25, 249, 152, 43, 25, - 246, 176, 43, 25, 243, 93, 43, 25, 240, 151, 43, 25, 238, 137, 43, 25, - 238, 125, 43, 25, 241, 112, 80, 233, 55, 99, 40, 153, 225, 80, 233, 55, - 99, 60, 153, 46, 80, 233, 55, 99, 40, 153, 240, 1, 19, 225, 80, 233, 55, - 99, 60, 153, 240, 1, 19, 46, 80, 233, 55, 99, 248, 37, 236, 121, 80, 233, - 55, 99, 236, 204, 248, 44, 48, 80, 233, 55, 99, 236, 204, 248, 44, 46, - 80, 233, 55, 99, 236, 204, 248, 44, 242, 220, 80, 233, 55, 99, 236, 204, - 248, 44, 189, 242, 220, 80, 233, 55, 99, 236, 204, 248, 44, 189, 225, 80, - 233, 55, 99, 236, 204, 248, 44, 168, 242, 220, 80, 233, 55, 99, 236, 66, - 80, 240, 15, 80, 240, 27, 80, 248, 37, 208, 245, 69, 69, 237, 184, 234, - 206, 237, 44, 91, 80, 235, 77, 69, 80, 238, 171, 69, 80, 61, 242, 217, - 40, 185, 104, 38, 185, 104, 40, 45, 185, 104, 38, 45, 185, 104, 40, 240, - 31, 104, 38, 240, 31, 104, 40, 64, 240, 31, 104, 38, 64, 240, 31, 104, - 40, 86, 234, 11, 104, 38, 86, 234, 11, 104, 240, 142, 69, 251, 16, 69, - 40, 236, 171, 242, 255, 104, 38, 236, 171, 242, 255, 104, 40, 64, 234, - 11, 104, 38, 64, 234, 11, 104, 40, 64, 236, 171, 242, 255, 104, 38, 64, - 236, 171, 242, 255, 104, 40, 64, 31, 104, 38, 64, 31, 104, 248, 141, 242, - 235, 224, 45, 243, 117, 235, 51, 69, 45, 243, 117, 235, 51, 69, 170, 45, - 243, 117, 235, 51, 69, 240, 142, 158, 243, 39, 236, 166, 178, 127, 236, - 166, 178, 111, 236, 166, 178, 166, 236, 166, 178, 177, 236, 166, 178, - 176, 236, 166, 178, 187, 236, 166, 178, 203, 236, 166, 178, 195, 236, - 166, 178, 202, 80, 246, 42, 188, 69, 80, 240, 69, 188, 69, 80, 235, 98, - 188, 69, 80, 237, 151, 188, 69, 23, 240, 12, 53, 188, 69, 23, 45, 53, - 188, 69, 248, 103, 242, 235, 59, 248, 130, 240, 64, 69, 59, 248, 130, - 240, 64, 2, 240, 59, 243, 1, 69, 59, 248, 130, 240, 64, 158, 189, 243, 7, - 59, 248, 130, 240, 64, 2, 240, 59, 243, 1, 158, 189, 243, 7, 59, 248, - 130, 240, 64, 158, 168, 243, 7, 29, 240, 142, 69, 80, 145, 248, 41, 250, - 237, 235, 95, 91, 236, 166, 178, 248, 53, 236, 166, 178, 238, 77, 236, - 166, 178, 238, 101, 59, 80, 235, 77, 69, 251, 219, 69, 249, 134, 233, - 112, 69, 80, 34, 234, 30, 80, 137, 250, 245, 240, 15, 105, 1, 3, 67, 105, - 1, 67, 105, 1, 3, 71, 105, 1, 71, 105, 1, 3, 79, 105, 1, 79, 105, 1, 3, - 72, 105, 1, 72, 105, 1, 3, 73, 105, 1, 73, 105, 1, 201, 105, 1, 253, 139, - 105, 1, 253, 215, 105, 1, 254, 6, 105, 1, 253, 203, 105, 1, 253, 235, - 105, 1, 253, 172, 105, 1, 254, 5, 105, 1, 253, 190, 105, 1, 253, 234, - 105, 1, 253, 132, 105, 1, 253, 163, 105, 1, 253, 198, 105, 1, 254, 17, - 105, 1, 253, 211, 105, 1, 254, 18, 105, 1, 253, 210, 105, 1, 253, 228, - 105, 1, 253, 186, 105, 1, 253, 222, 105, 1, 253, 126, 105, 1, 253, 133, - 105, 1, 253, 212, 105, 1, 253, 201, 105, 1, 3, 253, 196, 105, 1, 253, - 196, 105, 1, 253, 232, 105, 1, 253, 195, 105, 1, 253, 200, 105, 1, 87, - 105, 1, 253, 225, 105, 1, 253, 131, 105, 1, 253, 166, 105, 1, 253, 150, - 105, 1, 253, 197, 105, 1, 253, 173, 105, 1, 219, 105, 1, 253, 141, 105, - 1, 253, 129, 105, 1, 253, 214, 105, 1, 254, 34, 105, 1, 253, 147, 105, 1, - 253, 236, 105, 1, 253, 243, 105, 1, 253, 239, 105, 1, 253, 168, 105, 1, - 253, 242, 105, 1, 253, 175, 105, 1, 253, 184, 105, 1, 254, 1, 105, 1, - 253, 208, 105, 1, 222, 105, 1, 253, 180, 105, 1, 253, 154, 105, 1, 253, - 206, 105, 1, 253, 181, 105, 1, 3, 216, 105, 1, 216, 105, 1, 3, 253, 161, - 105, 1, 253, 161, 105, 1, 3, 253, 162, 105, 1, 253, 162, 105, 1, 253, - 130, 105, 1, 253, 209, 105, 1, 253, 185, 105, 1, 253, 194, 105, 1, 253, - 160, 105, 1, 3, 253, 138, 105, 1, 253, 138, 105, 1, 253, 187, 105, 1, - 253, 170, 105, 1, 253, 177, 105, 1, 197, 105, 1, 254, 49, 105, 1, 3, 201, - 105, 1, 3, 253, 172, 50, 226, 254, 240, 59, 243, 1, 69, 50, 226, 254, - 233, 75, 243, 1, 69, 226, 254, 240, 59, 243, 1, 69, 226, 254, 233, 75, - 243, 1, 69, 105, 235, 77, 69, 105, 240, 59, 235, 77, 69, 105, 238, 112, - 247, 233, 226, 254, 45, 238, 93, 42, 1, 3, 67, 42, 1, 67, 42, 1, 3, 71, - 42, 1, 71, 42, 1, 3, 79, 42, 1, 79, 42, 1, 3, 72, 42, 1, 72, 42, 1, 3, - 73, 42, 1, 73, 42, 1, 201, 42, 1, 253, 139, 42, 1, 253, 215, 42, 1, 254, - 6, 42, 1, 253, 203, 42, 1, 253, 235, 42, 1, 253, 172, 42, 1, 254, 5, 42, - 1, 253, 190, 42, 1, 253, 234, 42, 1, 253, 132, 42, 1, 253, 163, 42, 1, - 253, 198, 42, 1, 254, 17, 42, 1, 253, 211, 42, 1, 254, 18, 42, 1, 253, - 210, 42, 1, 253, 228, 42, 1, 253, 186, 42, 1, 253, 222, 42, 1, 253, 126, - 42, 1, 253, 133, 42, 1, 253, 212, 42, 1, 253, 201, 42, 1, 3, 253, 196, - 42, 1, 253, 196, 42, 1, 253, 232, 42, 1, 253, 195, 42, 1, 253, 200, 42, - 1, 87, 42, 1, 253, 225, 42, 1, 253, 131, 42, 1, 253, 166, 42, 1, 253, - 150, 42, 1, 253, 197, 42, 1, 253, 173, 42, 1, 219, 42, 1, 253, 141, 42, - 1, 253, 129, 42, 1, 253, 214, 42, 1, 254, 34, 42, 1, 253, 147, 42, 1, - 253, 236, 42, 1, 253, 243, 42, 1, 253, 239, 42, 1, 253, 168, 42, 1, 253, - 242, 42, 1, 253, 175, 42, 1, 253, 184, 42, 1, 254, 1, 42, 1, 253, 208, - 42, 1, 222, 42, 1, 253, 180, 42, 1, 253, 154, 42, 1, 253, 206, 42, 1, - 253, 181, 42, 1, 3, 216, 42, 1, 216, 42, 1, 3, 253, 161, 42, 1, 253, 161, - 42, 1, 3, 253, 162, 42, 1, 253, 162, 42, 1, 253, 130, 42, 1, 253, 209, - 42, 1, 253, 185, 42, 1, 253, 194, 42, 1, 253, 160, 42, 1, 3, 253, 138, - 42, 1, 253, 138, 42, 1, 253, 187, 42, 1, 253, 170, 42, 1, 253, 177, 42, - 1, 197, 42, 1, 254, 49, 42, 1, 3, 201, 42, 1, 3, 253, 172, 42, 1, 253, - 171, 42, 1, 254, 48, 42, 1, 254, 12, 42, 1, 254, 13, 42, 240, 1, 248, 40, - 226, 254, 235, 138, 243, 1, 69, 42, 235, 77, 69, 42, 240, 59, 235, 77, - 69, 42, 238, 112, 246, 19, 155, 1, 217, 155, 1, 223, 155, 1, 173, 155, 1, - 255, 19, 155, 1, 209, 155, 1, 214, 155, 1, 197, 155, 1, 162, 155, 1, 210, - 155, 1, 255, 15, 155, 1, 192, 155, 1, 221, 155, 1, 255, 20, 155, 1, 206, - 155, 1, 255, 11, 155, 1, 254, 151, 155, 1, 254, 72, 155, 1, 144, 155, 1, - 255, 17, 155, 1, 255, 18, 155, 1, 193, 155, 1, 67, 155, 1, 73, 155, 1, - 72, 155, 1, 254, 36, 155, 1, 253, 149, 155, 1, 254, 89, 155, 1, 253, 151, - 155, 1, 254, 10, 155, 1, 254, 19, 155, 1, 253, 202, 155, 1, 248, 124, - 155, 1, 248, 108, 155, 1, 254, 4, 155, 1, 71, 155, 1, 79, 155, 1, 254, - 101, 155, 1, 179, 155, 1, 254, 26, 155, 1, 254, 168, 23, 1, 238, 99, 23, - 1, 232, 87, 23, 1, 232, 91, 23, 1, 240, 80, 23, 1, 232, 93, 23, 1, 232, - 94, 23, 1, 238, 102, 23, 1, 232, 101, 23, 1, 240, 85, 23, 1, 231, 98, 23, - 1, 232, 96, 23, 1, 232, 97, 23, 1, 233, 74, 23, 1, 231, 43, 23, 1, 231, - 42, 23, 1, 232, 85, 23, 1, 240, 78, 23, 1, 240, 83, 23, 1, 233, 79, 23, - 1, 233, 66, 23, 1, 243, 34, 23, 1, 234, 32, 23, 1, 240, 75, 23, 1, 240, - 71, 23, 1, 233, 77, 23, 1, 236, 195, 23, 1, 236, 198, 23, 1, 236, 205, - 23, 1, 236, 201, 23, 1, 240, 74, 23, 1, 67, 23, 1, 253, 178, 23, 1, 216, - 23, 1, 249, 18, 23, 1, 254, 59, 23, 1, 72, 23, 1, 249, 22, 23, 1, 253, - 254, 23, 1, 73, 23, 1, 253, 138, 23, 1, 249, 12, 23, 1, 253, 193, 23, 1, - 253, 162, 23, 1, 79, 23, 1, 249, 14, 23, 1, 253, 170, 23, 1, 253, 187, - 23, 1, 253, 161, 23, 1, 254, 61, 23, 1, 253, 189, 23, 1, 71, 23, 238, - 114, 23, 1, 233, 105, 23, 1, 231, 97, 23, 1, 233, 90, 23, 1, 231, 47, 23, - 1, 226, 245, 23, 1, 231, 111, 23, 1, 226, 255, 23, 1, 231, 54, 23, 1, - 226, 246, 23, 1, 232, 92, 23, 1, 233, 86, 23, 1, 231, 46, 23, 1, 231, 40, - 23, 1, 231, 109, 23, 1, 231, 110, 23, 1, 226, 243, 23, 1, 226, 244, 23, - 1, 232, 106, 23, 1, 231, 52, 23, 1, 231, 41, 23, 1, 226, 235, 23, 1, 232, - 99, 23, 1, 233, 102, 23, 1, 232, 100, 23, 1, 233, 76, 23, 1, 233, 101, - 23, 1, 236, 234, 23, 1, 233, 78, 23, 1, 235, 115, 23, 1, 231, 58, 23, 1, - 227, 0, 23, 1, 227, 9, 23, 1, 233, 104, 23, 1, 232, 102, 23, 1, 240, 255, - 23, 1, 238, 233, 23, 1, 244, 58, 23, 1, 238, 234, 23, 1, 241, 0, 23, 1, - 244, 60, 23, 1, 240, 156, 23, 1, 238, 247, 80, 234, 4, 239, 123, 69, 80, - 234, 4, 238, 75, 69, 80, 234, 4, 253, 125, 69, 80, 234, 4, 171, 69, 80, - 234, 4, 204, 69, 80, 234, 4, 248, 58, 69, 80, 234, 4, 253, 159, 69, 80, - 234, 4, 240, 1, 69, 80, 234, 4, 240, 17, 69, 80, 234, 4, 243, 41, 69, 80, - 234, 4, 240, 87, 69, 80, 234, 4, 243, 129, 69, 80, 234, 4, 240, 137, 69, - 80, 234, 4, 241, 148, 69, 80, 234, 4, 243, 168, 69, 80, 234, 4, 254, 111, - 69, 155, 1, 253, 243, 155, 1, 254, 17, 155, 1, 254, 7, 155, 1, 253, 235, - 155, 1, 253, 164, 155, 1, 250, 224, 155, 1, 253, 156, 155, 1, 249, 130, - 155, 1, 254, 177, 155, 1, 249, 238, 155, 1, 251, 105, 155, 1, 252, 254, - 155, 1, 254, 175, 155, 1, 252, 18, 155, 1, 244, 73, 155, 1, 244, 86, 155, - 1, 254, 32, 155, 1, 254, 43, 155, 1, 252, 59, 155, 1, 245, 229, 155, 30, - 1, 223, 155, 30, 1, 214, 155, 30, 1, 255, 15, 155, 30, 1, 192, 7, 240, 5, - 214, 7, 240, 5, 255, 3, 7, 240, 5, 255, 5, 7, 240, 5, 250, 137, 7, 240, - 5, 254, 128, 7, 240, 5, 251, 96, 7, 240, 5, 251, 93, 7, 240, 5, 254, 97, - 7, 240, 5, 245, 219, 7, 240, 5, 247, 134, 7, 240, 5, 251, 94, 7, 240, 5, - 245, 220, 7, 240, 5, 245, 202, 7, 240, 5, 251, 95, 7, 240, 5, 245, 221, - 7, 240, 5, 197, 42, 1, 3, 253, 203, 42, 1, 3, 253, 198, 42, 1, 3, 253, - 211, 42, 1, 3, 87, 42, 1, 3, 253, 150, 42, 1, 3, 219, 42, 1, 3, 253, 214, - 42, 1, 3, 253, 236, 42, 1, 3, 253, 168, 42, 1, 3, 253, 184, 42, 1, 3, - 253, 154, 42, 1, 3, 253, 130, 42, 1, 3, 253, 209, 42, 1, 3, 253, 185, 42, - 1, 3, 253, 194, 42, 1, 3, 253, 160, 82, 23, 238, 99, 82, 23, 240, 80, 82, - 23, 238, 102, 82, 23, 240, 85, 82, 23, 240, 78, 82, 23, 240, 83, 82, 23, - 243, 34, 82, 23, 240, 75, 82, 23, 240, 71, 82, 23, 236, 195, 82, 23, 236, - 198, 82, 23, 236, 205, 82, 23, 236, 201, 82, 23, 240, 74, 82, 23, 240, - 193, 67, 82, 23, 243, 233, 67, 82, 23, 240, 246, 67, 82, 23, 243, 254, - 67, 82, 23, 243, 226, 67, 82, 23, 243, 242, 67, 82, 23, 249, 164, 67, 82, - 23, 243, 100, 67, 82, 23, 243, 90, 67, 82, 23, 238, 169, 67, 82, 23, 238, - 194, 67, 82, 23, 238, 227, 67, 82, 23, 238, 206, 67, 82, 23, 243, 195, - 67, 82, 23, 243, 90, 79, 82, 240, 99, 99, 242, 39, 82, 240, 99, 99, 117, - 253, 236, 82, 110, 127, 82, 110, 111, 82, 110, 166, 82, 110, 177, 82, - 110, 176, 82, 110, 187, 82, 110, 203, 82, 110, 195, 82, 110, 202, 82, - 110, 248, 53, 82, 110, 243, 30, 82, 110, 243, 27, 82, 110, 240, 105, 82, - 110, 244, 52, 82, 110, 240, 199, 82, 110, 240, 49, 82, 110, 248, 136, 82, - 110, 240, 238, 82, 110, 243, 191, 82, 110, 237, 41, 82, 110, 243, 230, - 82, 110, 237, 43, 82, 110, 234, 53, 82, 110, 229, 61, 82, 110, 240, 195, - 82, 110, 234, 247, 82, 110, 244, 241, 82, 110, 240, 239, 82, 110, 234, - 66, 82, 110, 233, 84, 82, 110, 235, 140, 82, 110, 235, 116, 82, 110, 236, - 20, 82, 110, 242, 239, 82, 110, 244, 6, 82, 110, 240, 215, 233, 94, 52, - 29, 61, 240, 48, 127, 29, 61, 240, 48, 111, 29, 61, 240, 48, 166, 29, 61, - 240, 48, 177, 29, 61, 240, 48, 176, 29, 61, 240, 48, 187, 29, 61, 240, - 48, 203, 29, 61, 240, 48, 195, 29, 61, 240, 48, 202, 29, 61, 238, 101, - 29, 61, 240, 53, 127, 29, 61, 240, 53, 111, 29, 61, 240, 53, 166, 29, 61, - 240, 53, 177, 29, 61, 240, 53, 176, 29, 23, 238, 99, 29, 23, 240, 80, 29, - 23, 238, 102, 29, 23, 240, 85, 29, 23, 240, 78, 29, 23, 240, 83, 29, 23, - 243, 34, 29, 23, 240, 75, 29, 23, 240, 71, 29, 23, 236, 195, 29, 23, 236, - 198, 29, 23, 236, 205, 29, 23, 236, 201, 29, 23, 240, 74, 29, 23, 240, - 193, 67, 29, 23, 243, 233, 67, 29, 23, 240, 246, 67, 29, 23, 243, 254, - 67, 29, 23, 243, 226, 67, 29, 23, 243, 242, 67, 29, 23, 249, 164, 67, 29, - 23, 243, 100, 67, 29, 23, 243, 90, 67, 29, 23, 238, 169, 67, 29, 23, 238, - 194, 67, 29, 23, 238, 227, 67, 29, 23, 238, 206, 67, 29, 23, 243, 195, - 67, 29, 240, 99, 99, 239, 20, 29, 240, 99, 99, 241, 190, 29, 23, 243, - 100, 79, 240, 99, 237, 44, 91, 29, 110, 127, 29, 110, 111, 29, 110, 166, - 29, 110, 177, 29, 110, 176, 29, 110, 187, 29, 110, 203, 29, 110, 195, 29, - 110, 202, 29, 110, 248, 53, 29, 110, 243, 30, 29, 110, 243, 27, 29, 110, - 240, 105, 29, 110, 244, 52, 29, 110, 240, 199, 29, 110, 240, 49, 29, 110, - 248, 136, 29, 110, 240, 238, 29, 110, 243, 191, 29, 110, 237, 41, 29, - 110, 243, 230, 29, 110, 237, 43, 29, 110, 234, 53, 29, 110, 229, 61, 29, - 110, 240, 195, 29, 110, 239, 186, 29, 110, 246, 62, 29, 110, 239, 68, 29, - 110, 236, 120, 29, 110, 234, 188, 29, 110, 242, 65, 29, 110, 234, 95, 29, - 110, 245, 232, 29, 110, 242, 239, 29, 110, 245, 27, 29, 110, 237, 93, 29, - 110, 245, 146, 29, 110, 238, 129, 29, 110, 251, 207, 29, 110, 242, 220, - 29, 110, 225, 29, 110, 236, 59, 29, 110, 236, 91, 29, 110, 240, 239, 29, - 110, 234, 66, 29, 110, 233, 84, 29, 110, 235, 140, 29, 110, 235, 116, 29, - 110, 242, 11, 29, 61, 240, 53, 187, 29, 61, 240, 53, 203, 29, 61, 240, - 53, 195, 29, 61, 240, 53, 202, 29, 61, 240, 136, 29, 61, 243, 6, 127, 29, - 61, 243, 6, 111, 29, 61, 243, 6, 166, 29, 61, 243, 6, 177, 29, 61, 243, - 6, 176, 29, 61, 243, 6, 187, 29, 61, 243, 6, 203, 29, 61, 243, 6, 195, - 29, 61, 243, 6, 202, 29, 61, 240, 50, 80, 145, 12, 28, 237, 183, 80, 145, - 12, 28, 236, 19, 80, 145, 12, 28, 241, 229, 80, 145, 12, 28, 241, 12, 80, - 145, 12, 28, 251, 222, 80, 145, 12, 28, 245, 253, 80, 145, 12, 28, 245, - 252, 80, 145, 12, 28, 238, 253, 80, 145, 12, 28, 234, 252, 80, 145, 12, - 28, 237, 224, 80, 145, 12, 28, 236, 65, 80, 145, 12, 28, 235, 200, 31, - 254, 171, 31, 250, 227, 31, 254, 160, 239, 118, 236, 51, 52, 29, 42, 67, - 29, 42, 71, 29, 42, 79, 29, 42, 72, 29, 42, 73, 29, 42, 201, 29, 42, 253, - 215, 29, 42, 253, 203, 29, 42, 253, 172, 29, 42, 253, 190, 29, 42, 253, - 132, 29, 42, 253, 198, 29, 42, 253, 211, 29, 42, 253, 210, 29, 42, 253, - 186, 29, 42, 253, 126, 29, 42, 253, 212, 29, 42, 253, 196, 29, 42, 253, - 195, 29, 42, 87, 29, 42, 253, 131, 29, 42, 253, 166, 29, 42, 253, 150, - 29, 42, 253, 197, 29, 42, 253, 173, 29, 42, 219, 29, 42, 253, 214, 29, - 42, 253, 236, 29, 42, 253, 168, 29, 42, 253, 184, 29, 42, 222, 29, 42, - 253, 180, 29, 42, 253, 154, 29, 42, 253, 206, 29, 42, 253, 181, 29, 42, - 216, 29, 42, 253, 161, 29, 42, 253, 162, 29, 42, 253, 130, 29, 42, 253, - 209, 29, 42, 253, 185, 29, 42, 253, 194, 29, 42, 253, 160, 29, 42, 253, - 138, 29, 42, 253, 187, 29, 42, 253, 170, 29, 42, 253, 177, 31, 238, 246, - 31, 238, 251, 31, 241, 10, 31, 244, 68, 31, 239, 99, 31, 245, 230, 31, - 252, 255, 31, 236, 15, 31, 241, 91, 31, 246, 232, 31, 246, 233, 31, 241, - 192, 31, 237, 187, 31, 237, 188, 31, 241, 124, 31, 241, 123, 31, 245, - 124, 31, 241, 137, 31, 239, 112, 31, 237, 165, 31, 246, 16, 31, 233, 213, - 31, 232, 180, 31, 234, 214, 31, 239, 87, 31, 234, 198, 31, 234, 216, 31, - 237, 192, 31, 241, 196, 31, 239, 110, 31, 241, 205, 31, 237, 254, 31, - 236, 95, 31, 238, 7, 31, 242, 101, 31, 242, 102, 31, 241, 70, 31, 245, - 63, 31, 245, 73, 31, 252, 227, 31, 246, 105, 31, 242, 24, 31, 241, 146, - 31, 236, 67, 31, 242, 46, 31, 237, 69, 31, 234, 233, 31, 239, 161, 31, - 246, 251, 31, 244, 223, 31, 236, 36, 31, 239, 95, 31, 235, 184, 31, 241, - 170, 31, 234, 199, 31, 246, 242, 31, 239, 159, 31, 239, 93, 31, 242, 55, - 31, 242, 52, 31, 241, 26, 31, 239, 164, 31, 239, 11, 31, 251, 77, 31, - 242, 64, 31, 241, 167, 31, 245, 200, 31, 237, 197, 31, 241, 225, 31, 241, - 224, 31, 239, 129, 31, 237, 199, 31, 237, 210, 31, 246, 88, 31, 234, 223, - 31, 243, 106, 31, 237, 207, 31, 237, 206, 31, 242, 190, 31, 242, 191, 31, - 247, 237, 31, 237, 252, 31, 247, 32, 31, 242, 90, 31, 237, 253, 31, 247, - 29, 31, 236, 92, 31, 242, 183, 80, 145, 12, 28, 248, 52, 242, 217, 80, - 145, 12, 28, 248, 52, 127, 80, 145, 12, 28, 248, 52, 111, 80, 145, 12, - 28, 248, 52, 166, 80, 145, 12, 28, 248, 52, 177, 80, 145, 12, 28, 248, - 52, 176, 80, 145, 12, 28, 248, 52, 187, 80, 145, 12, 28, 248, 52, 203, - 80, 145, 12, 28, 248, 52, 195, 80, 145, 12, 28, 248, 52, 202, 80, 145, - 12, 28, 248, 52, 248, 53, 80, 145, 12, 28, 248, 52, 238, 91, 80, 145, 12, - 28, 248, 52, 238, 97, 80, 145, 12, 28, 248, 52, 235, 85, 80, 145, 12, 28, - 248, 52, 235, 82, 80, 145, 12, 28, 248, 52, 236, 207, 80, 145, 12, 28, - 248, 52, 236, 202, 80, 145, 12, 28, 248, 52, 234, 22, 80, 145, 12, 28, - 248, 52, 235, 81, 80, 145, 12, 28, 248, 52, 235, 83, 80, 145, 12, 28, - 248, 52, 238, 77, 80, 145, 12, 28, 248, 52, 233, 110, 80, 145, 12, 28, - 248, 52, 233, 111, 80, 145, 12, 28, 248, 52, 231, 114, 80, 145, 12, 28, - 248, 52, 232, 111, 31, 251, 82, 31, 253, 133, 31, 253, 151, 31, 125, 31, - 254, 219, 31, 254, 222, 31, 254, 156, 31, 255, 53, 236, 191, 31, 255, 53, - 240, 94, 31, 254, 101, 31, 254, 37, 248, 170, 239, 89, 31, 254, 37, 248, - 170, 239, 213, 31, 254, 37, 248, 170, 238, 21, 31, 254, 37, 248, 170, - 241, 232, 31, 232, 123, 31, 255, 87, 244, 79, 31, 253, 131, 31, 255, 27, - 67, 31, 222, 31, 201, 31, 254, 182, 31, 254, 199, 31, 254, 166, 31, 250, - 143, 31, 246, 7, 31, 254, 224, 31, 254, 211, 31, 255, 27, 255, 19, 31, - 255, 27, 210, 31, 254, 202, 31, 254, 106, 31, 254, 173, 31, 251, 147, 31, - 251, 230, 31, 251, 20, 31, 252, 220, 31, 255, 27, 162, 31, 254, 204, 31, - 254, 155, 31, 254, 186, 31, 254, 164, 31, 254, 215, 31, 255, 27, 173, 31, - 254, 205, 31, 254, 152, 31, 254, 187, 31, 255, 61, 236, 191, 31, 255, 52, - 236, 191, 31, 255, 108, 236, 191, 31, 255, 50, 236, 191, 31, 255, 61, - 240, 94, 31, 255, 52, 240, 94, 31, 255, 108, 240, 94, 31, 255, 50, 240, - 94, 31, 255, 108, 248, 59, 193, 31, 255, 108, 248, 59, 255, 99, 236, 191, - 31, 253, 129, 31, 251, 163, 31, 249, 115, 31, 251, 28, 31, 252, 126, 31, - 254, 71, 248, 59, 193, 31, 254, 71, 248, 59, 255, 99, 236, 191, 31, 254, - 229, 31, 254, 216, 31, 255, 27, 193, 31, 254, 206, 31, 254, 230, 31, 254, - 115, 31, 255, 27, 179, 31, 254, 207, 31, 254, 189, 31, 255, 84, 243, 106, - 31, 254, 231, 31, 254, 217, 31, 255, 27, 255, 16, 31, 254, 208, 31, 254, - 108, 31, 255, 85, 243, 106, 31, 255, 109, 249, 126, 31, 255, 108, 249, - 126, 31, 254, 32, 31, 254, 147, 31, 254, 149, 31, 254, 150, 31, 255, 105, - 248, 59, 254, 106, 31, 253, 224, 31, 254, 154, 31, 254, 170, 31, 219, 31, - 254, 97, 31, 253, 247, 31, 254, 107, 31, 255, 50, 237, 83, 31, 254, 188, - 31, 254, 194, 31, 254, 195, 31, 251, 203, 31, 254, 197, 31, 255, 80, 240, - 147, 31, 251, 233, 31, 251, 240, 31, 254, 225, 31, 254, 226, 31, 252, 75, - 31, 254, 228, 31, 254, 241, 31, 254, 127, 31, 255, 2, 31, 255, 110, 248, - 59, 173, 31, 134, 248, 59, 173, 80, 145, 12, 28, 253, 137, 127, 80, 145, - 12, 28, 253, 137, 111, 80, 145, 12, 28, 253, 137, 166, 80, 145, 12, 28, - 253, 137, 177, 80, 145, 12, 28, 253, 137, 176, 80, 145, 12, 28, 253, 137, - 187, 80, 145, 12, 28, 253, 137, 203, 80, 145, 12, 28, 253, 137, 195, 80, - 145, 12, 28, 253, 137, 202, 80, 145, 12, 28, 253, 137, 248, 53, 80, 145, - 12, 28, 253, 137, 238, 91, 80, 145, 12, 28, 253, 137, 238, 97, 80, 145, - 12, 28, 253, 137, 235, 85, 80, 145, 12, 28, 253, 137, 235, 82, 80, 145, - 12, 28, 253, 137, 236, 207, 80, 145, 12, 28, 253, 137, 236, 202, 80, 145, - 12, 28, 253, 137, 234, 22, 80, 145, 12, 28, 253, 137, 235, 81, 80, 145, - 12, 28, 253, 137, 235, 83, 80, 145, 12, 28, 253, 137, 238, 77, 80, 145, - 12, 28, 253, 137, 233, 110, 80, 145, 12, 28, 253, 137, 233, 111, 80, 145, - 12, 28, 253, 137, 231, 114, 80, 145, 12, 28, 253, 137, 232, 111, 80, 145, - 12, 28, 253, 137, 233, 45, 80, 145, 12, 28, 253, 137, 233, 255, 80, 145, - 12, 28, 253, 137, 232, 64, 80, 145, 12, 28, 253, 137, 232, 63, 80, 145, - 12, 28, 253, 137, 233, 46, 80, 145, 12, 28, 253, 137, 238, 101, 80, 145, - 12, 28, 253, 137, 233, 252, 31, 251, 7, 156, 28, 253, 145, 237, 94, 238, - 139, 156, 28, 253, 145, 236, 86, 240, 49, 156, 28, 234, 112, 255, 31, - 253, 145, 234, 97, 156, 28, 238, 48, 241, 113, 156, 28, 237, 51, 156, 28, - 235, 191, 156, 28, 253, 145, 244, 84, 156, 28, 238, 189, 235, 153, 156, - 28, 3, 238, 222, 156, 28, 236, 130, 156, 28, 242, 51, 156, 28, 233, 247, - 156, 28, 233, 201, 156, 28, 243, 58, 233, 224, 156, 28, 237, 212, 156, - 28, 233, 197, 156, 28, 234, 54, 156, 28, 253, 37, 255, 34, 253, 145, 237, - 102, 156, 28, 235, 166, 156, 28, 231, 63, 156, 28, 241, 32, 238, 27, 156, - 28, 241, 139, 156, 28, 236, 104, 241, 11, 156, 28, 238, 211, 156, 28, - 234, 208, 156, 28, 243, 58, 238, 222, 156, 28, 246, 91, 237, 0, 156, 28, - 243, 58, 231, 53, 156, 28, 253, 145, 238, 236, 240, 105, 156, 28, 253, - 145, 237, 87, 243, 27, 156, 28, 234, 207, 156, 28, 236, 9, 156, 28, 237, - 251, 156, 28, 243, 58, 240, 210, 156, 28, 236, 81, 156, 28, 235, 198, - 147, 253, 145, 240, 9, 156, 28, 253, 145, 239, 66, 156, 28, 233, 73, 156, - 28, 232, 189, 156, 28, 232, 128, 156, 28, 235, 201, 156, 28, 235, 127, - 156, 28, 231, 119, 156, 28, 241, 65, 153, 243, 224, 156, 28, 235, 124, - 235, 153, 156, 28, 239, 170, 239, 235, 156, 28, 233, 221, 156, 28, 253, - 145, 247, 193, 156, 28, 233, 231, 156, 28, 253, 145, 235, 117, 156, 28, - 253, 145, 237, 67, 237, 48, 156, 28, 253, 145, 238, 193, 247, 123, 235, - 102, 156, 28, 232, 131, 156, 28, 253, 145, 237, 203, 239, 125, 156, 28, - 234, 89, 156, 28, 253, 145, 236, 139, 156, 28, 253, 145, 241, 125, 243, - 82, 156, 28, 253, 145, 241, 188, 243, 213, 156, 28, 233, 135, 156, 28, - 233, 216, 156, 28, 245, 228, 242, 158, 156, 28, 3, 231, 53, 156, 28, 244, - 70, 233, 69, 156, 28, 241, 27, 233, 69, 6, 4, 254, 179, 6, 4, 254, 180, - 6, 4, 71, 6, 4, 254, 176, 6, 4, 251, 102, 6, 4, 251, 103, 6, 4, 253, 237, - 6, 4, 251, 101, 6, 4, 254, 20, 6, 4, 254, 144, 6, 4, 67, 6, 4, 254, 141, - 6, 4, 253, 1, 6, 4, 254, 252, 6, 4, 253, 0, 6, 4, 254, 67, 6, 4, 254, - 220, 6, 4, 73, 6, 4, 254, 120, 6, 4, 254, 161, 6, 4, 72, 6, 4, 254, 14, - 6, 4, 250, 125, 6, 4, 250, 126, 6, 4, 254, 34, 6, 4, 250, 124, 6, 4, 244, - 221, 6, 4, 244, 222, 6, 4, 250, 122, 6, 4, 244, 220, 6, 4, 250, 104, 6, - 4, 250, 105, 6, 4, 253, 141, 6, 4, 250, 103, 6, 4, 244, 235, 6, 4, 250, - 131, 6, 4, 244, 234, 6, 4, 250, 130, 6, 4, 248, 92, 6, 4, 254, 1, 6, 4, - 250, 129, 6, 4, 250, 119, 6, 4, 253, 242, 6, 4, 250, 116, 6, 4, 250, 133, - 6, 4, 250, 134, 6, 4, 253, 243, 6, 4, 250, 132, 6, 4, 244, 236, 6, 4, - 249, 35, 6, 4, 250, 140, 6, 4, 250, 141, 6, 4, 254, 82, 6, 4, 250, 138, - 6, 4, 244, 238, 6, 4, 250, 139, 6, 4, 252, 68, 6, 4, 252, 69, 6, 4, 253, - 147, 6, 4, 252, 67, 6, 4, 246, 250, 6, 4, 252, 65, 6, 4, 246, 249, 6, 4, - 252, 61, 6, 4, 252, 62, 6, 4, 253, 129, 6, 4, 252, 60, 6, 4, 247, 0, 6, - 4, 252, 78, 6, 4, 246, 255, 6, 4, 252, 73, 6, 4, 252, 74, 6, 4, 253, 208, - 6, 4, 252, 72, 6, 4, 249, 142, 6, 4, 252, 81, 6, 4, 253, 239, 6, 4, 252, - 79, 6, 4, 247, 1, 6, 4, 252, 80, 6, 4, 249, 144, 6, 4, 252, 84, 6, 4, - 254, 232, 6, 4, 252, 82, 6, 4, 247, 3, 6, 4, 252, 83, 6, 4, 244, 200, 6, - 4, 244, 201, 6, 4, 250, 108, 6, 4, 244, 199, 6, 4, 241, 21, 6, 4, 241, - 22, 6, 4, 244, 198, 6, 4, 241, 20, 6, 4, 244, 194, 6, 4, 244, 195, 6, 4, - 250, 106, 6, 4, 244, 193, 6, 4, 241, 24, 6, 4, 244, 205, 6, 4, 241, 23, - 6, 4, 244, 203, 6, 4, 244, 204, 6, 4, 250, 109, 6, 4, 244, 202, 6, 4, - 244, 197, 6, 4, 250, 107, 6, 4, 244, 196, 6, 4, 243, 145, 6, 4, 244, 208, - 6, 4, 250, 110, 6, 4, 244, 206, 6, 4, 241, 25, 6, 4, 244, 207, 6, 4, 244, - 210, 6, 4, 244, 211, 6, 4, 250, 111, 6, 4, 244, 209, 6, 4, 246, 110, 6, - 4, 246, 111, 6, 4, 252, 3, 6, 4, 246, 109, 6, 4, 242, 0, 6, 4, 243, 232, - 6, 4, 241, 255, 6, 4, 246, 107, 6, 4, 246, 108, 6, 4, 252, 2, 6, 4, 246, - 106, 6, 4, 246, 113, 6, 4, 246, 114, 6, 4, 252, 4, 6, 4, 246, 112, 6, 4, - 246, 117, 6, 4, 246, 118, 6, 4, 252, 5, 6, 4, 246, 115, 6, 4, 242, 1, 6, - 4, 246, 116, 6, 4, 246, 121, 6, 4, 246, 122, 6, 4, 252, 6, 6, 4, 246, - 119, 6, 4, 242, 2, 6, 4, 246, 120, 6, 4, 245, 173, 6, 4, 245, 174, 6, 4, - 251, 71, 6, 4, 245, 172, 6, 4, 241, 158, 6, 4, 245, 171, 6, 4, 241, 157, - 6, 4, 245, 169, 6, 4, 245, 170, 6, 4, 251, 70, 6, 4, 245, 168, 6, 4, 241, - 160, 6, 4, 245, 178, 6, 4, 241, 159, 6, 4, 245, 176, 6, 4, 245, 177, 6, - 4, 249, 82, 6, 4, 245, 175, 6, 4, 245, 181, 6, 4, 245, 182, 6, 4, 251, - 72, 6, 4, 245, 179, 6, 4, 241, 161, 6, 4, 245, 180, 6, 4, 245, 185, 6, 4, - 251, 73, 6, 4, 245, 183, 6, 4, 241, 162, 6, 4, 245, 184, 6, 4, 251, 237, - 6, 4, 251, 238, 6, 4, 253, 180, 6, 4, 251, 236, 6, 4, 246, 83, 6, 4, 251, - 231, 6, 4, 246, 82, 6, 4, 251, 220, 6, 4, 251, 221, 6, 4, 222, 6, 4, 251, - 218, 6, 4, 246, 97, 6, 4, 246, 98, 6, 4, 251, 243, 6, 4, 246, 96, 6, 4, - 251, 241, 6, 4, 251, 242, 6, 4, 253, 181, 6, 4, 249, 114, 6, 4, 251, 226, - 6, 4, 253, 206, 6, 4, 251, 246, 6, 4, 251, 247, 6, 4, 253, 154, 6, 4, - 251, 244, 6, 4, 246, 100, 6, 4, 251, 245, 6, 4, 251, 250, 6, 4, 251, 251, - 6, 4, 254, 209, 6, 4, 251, 249, 6, 4, 250, 247, 6, 4, 250, 248, 6, 4, - 253, 245, 6, 4, 250, 246, 6, 4, 250, 235, 6, 4, 250, 236, 6, 4, 253, 179, - 6, 4, 250, 234, 6, 4, 250, 251, 6, 4, 254, 63, 6, 4, 250, 250, 6, 4, 250, - 253, 6, 4, 250, 254, 6, 4, 254, 93, 6, 4, 250, 252, 6, 4, 245, 93, 6, 4, - 249, 64, 6, 4, 251, 3, 6, 4, 251, 4, 6, 4, 254, 165, 6, 4, 251, 2, 6, 4, - 253, 14, 6, 4, 253, 15, 6, 4, 254, 48, 6, 4, 253, 13, 6, 4, 247, 187, 6, - 4, 247, 188, 6, 4, 253, 12, 6, 4, 247, 186, 6, 4, 253, 8, 6, 4, 253, 9, - 6, 4, 253, 171, 6, 4, 253, 7, 6, 4, 253, 18, 6, 4, 253, 20, 6, 4, 254, - 13, 6, 4, 253, 17, 6, 4, 253, 11, 6, 4, 249, 193, 6, 4, 253, 22, 6, 4, - 253, 23, 6, 4, 254, 49, 6, 4, 253, 21, 6, 4, 247, 189, 6, 4, 249, 197, 6, - 4, 253, 27, 6, 4, 253, 28, 6, 4, 255, 1, 6, 4, 253, 25, 6, 4, 247, 190, - 6, 4, 253, 26, 6, 4, 250, 196, 6, 4, 250, 197, 6, 4, 253, 201, 6, 4, 250, - 195, 6, 4, 245, 66, 6, 4, 250, 194, 6, 4, 245, 65, 6, 4, 250, 184, 6, 4, - 250, 187, 6, 4, 253, 133, 6, 4, 250, 182, 6, 4, 245, 75, 6, 4, 250, 209, - 6, 4, 248, 40, 6, 4, 250, 205, 6, 4, 253, 225, 6, 4, 250, 204, 6, 4, 250, - 191, 6, 4, 253, 200, 6, 4, 250, 190, 6, 4, 250, 212, 6, 4, 250, 213, 6, - 4, 253, 232, 6, 4, 250, 210, 6, 4, 245, 76, 6, 4, 250, 211, 6, 4, 252, - 223, 6, 4, 252, 224, 6, 4, 253, 212, 6, 4, 252, 222, 6, 4, 247, 149, 6, - 4, 248, 139, 6, 4, 247, 148, 6, 4, 249, 174, 6, 4, 252, 212, 6, 4, 253, - 126, 6, 4, 252, 209, 6, 4, 247, 174, 6, 4, 247, 175, 6, 4, 252, 233, 6, - 4, 247, 173, 6, 4, 249, 184, 6, 4, 252, 228, 6, 4, 87, 6, 4, 249, 3, 6, - 4, 252, 217, 6, 4, 253, 195, 6, 4, 252, 214, 6, 4, 252, 236, 6, 4, 252, - 237, 6, 4, 253, 196, 6, 4, 252, 234, 6, 4, 247, 176, 6, 4, 252, 235, 6, - 4, 245, 47, 6, 4, 245, 48, 6, 4, 249, 51, 6, 4, 245, 46, 6, 4, 241, 77, - 6, 4, 245, 45, 6, 4, 241, 76, 6, 4, 245, 39, 6, 4, 245, 40, 6, 4, 248, - 75, 6, 4, 245, 38, 6, 4, 241, 79, 6, 4, 245, 53, 6, 4, 241, 78, 6, 4, - 245, 51, 6, 4, 245, 52, 6, 4, 248, 204, 6, 4, 245, 50, 6, 4, 245, 43, 6, - 4, 249, 50, 6, 4, 245, 42, 6, 4, 245, 55, 6, 4, 245, 56, 6, 4, 249, 52, - 6, 4, 245, 54, 6, 4, 241, 80, 6, 4, 243, 163, 6, 4, 246, 130, 6, 4, 246, - 131, 6, 4, 252, 9, 6, 4, 246, 129, 6, 4, 242, 3, 6, 4, 246, 128, 6, 4, - 246, 124, 6, 4, 246, 125, 6, 4, 252, 7, 6, 4, 246, 123, 6, 4, 246, 133, - 6, 4, 246, 134, 6, 4, 252, 10, 6, 4, 246, 132, 6, 4, 246, 127, 6, 4, 252, - 8, 6, 4, 246, 126, 6, 4, 246, 137, 6, 4, 246, 138, 6, 4, 252, 11, 6, 4, - 246, 135, 6, 4, 242, 4, 6, 4, 246, 136, 6, 4, 245, 193, 6, 4, 245, 194, - 6, 4, 251, 75, 6, 4, 245, 192, 6, 4, 241, 164, 6, 4, 241, 165, 6, 4, 245, - 191, 6, 4, 241, 163, 6, 4, 245, 187, 6, 4, 245, 188, 6, 4, 249, 83, 6, 4, - 245, 186, 6, 4, 241, 166, 6, 4, 245, 198, 6, 4, 245, 196, 6, 4, 245, 197, - 6, 4, 245, 195, 6, 4, 245, 190, 6, 4, 251, 74, 6, 4, 245, 189, 6, 4, 245, - 199, 6, 4, 252, 24, 6, 4, 252, 25, 6, 4, 253, 166, 6, 4, 252, 23, 6, 4, - 246, 155, 6, 4, 252, 21, 6, 4, 246, 154, 6, 4, 252, 1, 6, 4, 253, 131, 6, - 4, 251, 255, 6, 4, 246, 195, 6, 4, 252, 41, 6, 4, 246, 194, 6, 4, 248, - 233, 6, 4, 252, 35, 6, 4, 253, 173, 6, 4, 252, 33, 6, 4, 252, 15, 6, 4, - 253, 197, 6, 4, 252, 13, 6, 4, 252, 44, 6, 4, 252, 45, 6, 4, 253, 150, 6, - 4, 252, 42, 6, 4, 246, 196, 6, 4, 252, 43, 6, 4, 245, 155, 6, 4, 245, - 156, 6, 4, 251, 66, 6, 4, 245, 154, 6, 4, 241, 152, 6, 4, 245, 153, 6, 4, - 241, 151, 6, 4, 245, 149, 6, 4, 245, 150, 6, 4, 251, 64, 6, 4, 245, 148, - 6, 4, 241, 154, 6, 4, 245, 159, 6, 4, 241, 153, 6, 4, 245, 158, 6, 4, - 251, 67, 6, 4, 245, 157, 6, 4, 245, 152, 6, 4, 251, 65, 6, 4, 245, 151, - 6, 4, 245, 162, 6, 4, 245, 163, 6, 4, 251, 68, 6, 4, 245, 160, 6, 4, 241, - 155, 6, 4, 245, 161, 6, 4, 245, 166, 6, 4, 245, 167, 6, 4, 251, 69, 6, 4, - 245, 164, 6, 4, 241, 156, 6, 4, 245, 165, 6, 4, 251, 200, 6, 4, 251, 201, - 6, 4, 253, 251, 6, 4, 251, 198, 6, 4, 246, 49, 6, 4, 246, 50, 6, 4, 249, - 105, 6, 4, 246, 48, 6, 4, 251, 185, 6, 4, 251, 186, 6, 4, 253, 134, 6, 4, - 251, 183, 6, 4, 246, 57, 6, 4, 246, 58, 6, 4, 251, 209, 6, 4, 246, 56, 6, - 4, 251, 206, 6, 4, 251, 208, 6, 4, 253, 216, 6, 4, 251, 205, 6, 4, 251, - 191, 6, 4, 253, 250, 6, 4, 251, 189, 6, 4, 251, 212, 6, 4, 251, 213, 6, - 4, 254, 8, 6, 4, 251, 210, 6, 4, 246, 59, 6, 4, 251, 211, 6, 4, 251, 215, - 6, 4, 251, 216, 6, 4, 254, 110, 6, 4, 251, 214, 6, 4, 246, 60, 6, 4, 249, - 109, 6, 4, 251, 23, 6, 4, 251, 24, 6, 4, 254, 6, 6, 4, 251, 22, 6, 4, - 245, 122, 6, 4, 245, 123, 6, 4, 251, 21, 6, 4, 245, 121, 6, 4, 251, 10, - 6, 4, 251, 11, 6, 4, 253, 139, 6, 4, 251, 8, 6, 4, 245, 131, 6, 4, 245, - 132, 6, 4, 251, 31, 6, 4, 245, 130, 6, 4, 249, 78, 6, 4, 251, 27, 6, 4, - 253, 234, 6, 4, 251, 26, 6, 4, 251, 15, 6, 4, 251, 17, 6, 4, 254, 5, 6, - 4, 249, 69, 6, 4, 251, 34, 6, 4, 251, 35, 6, 4, 253, 235, 6, 4, 251, 32, - 6, 4, 245, 133, 6, 4, 251, 33, 6, 4, 249, 95, 6, 4, 251, 152, 6, 4, 253, - 215, 6, 4, 251, 151, 6, 4, 246, 15, 6, 4, 251, 148, 6, 4, 246, 14, 6, 4, - 251, 138, 6, 4, 251, 140, 6, 4, 201, 6, 4, 251, 137, 6, 4, 246, 21, 6, 4, - 251, 165, 6, 4, 246, 20, 6, 4, 251, 161, 6, 4, 251, 162, 6, 4, 253, 190, - 6, 4, 251, 160, 6, 4, 251, 143, 6, 4, 251, 144, 6, 4, 253, 172, 6, 4, - 251, 142, 6, 4, 251, 168, 6, 4, 251, 169, 6, 4, 253, 203, 6, 4, 251, 166, - 6, 4, 246, 23, 6, 4, 251, 167, 6, 4, 245, 108, 6, 4, 245, 109, 6, 4, 249, - 72, 6, 4, 241, 129, 6, 4, 245, 107, 6, 4, 241, 128, 6, 4, 245, 101, 6, 4, - 245, 102, 6, 4, 249, 70, 6, 4, 245, 100, 6, 4, 241, 131, 6, 4, 241, 132, - 6, 4, 243, 181, 6, 4, 241, 130, 6, 4, 245, 110, 6, 4, 245, 111, 6, 4, - 249, 73, 6, 4, 243, 180, 6, 4, 245, 105, 6, 4, 245, 106, 6, 4, 249, 71, - 6, 4, 245, 104, 6, 4, 245, 114, 6, 4, 245, 115, 6, 4, 249, 74, 6, 4, 245, - 112, 6, 4, 241, 133, 6, 4, 245, 113, 6, 4, 241, 238, 6, 4, 246, 72, 6, 4, - 246, 68, 6, 4, 246, 69, 6, 4, 251, 227, 6, 4, 246, 67, 6, 4, 241, 240, 6, - 4, 246, 76, 6, 4, 241, 239, 6, 4, 246, 74, 6, 4, 246, 75, 6, 4, 248, 167, - 6, 4, 246, 73, 6, 4, 246, 71, 6, 4, 251, 228, 6, 4, 246, 70, 6, 4, 246, - 79, 6, 4, 246, 80, 6, 4, 251, 229, 6, 4, 246, 77, 6, 4, 241, 241, 6, 4, - 246, 78, 6, 4, 243, 196, 6, 4, 245, 216, 6, 4, 251, 91, 6, 4, 245, 215, - 6, 4, 241, 172, 6, 4, 241, 173, 6, 4, 245, 214, 6, 4, 241, 171, 6, 4, - 245, 210, 6, 4, 245, 211, 6, 4, 251, 89, 6, 4, 245, 209, 6, 4, 241, 175, - 6, 4, 241, 176, 6, 4, 243, 198, 6, 4, 241, 174, 6, 4, 245, 217, 6, 4, - 245, 218, 6, 4, 251, 92, 6, 4, 243, 197, 6, 4, 245, 213, 6, 4, 251, 90, - 6, 4, 245, 212, 6, 4, 242, 7, 6, 4, 246, 146, 6, 4, 242, 6, 6, 4, 246, - 142, 6, 4, 246, 143, 6, 4, 248, 50, 6, 4, 246, 141, 6, 4, 242, 9, 6, 4, - 242, 10, 6, 4, 246, 153, 6, 4, 246, 151, 6, 4, 246, 152, 6, 4, 248, 172, - 6, 4, 246, 150, 6, 4, 246, 145, 6, 4, 252, 17, 6, 4, 246, 144, 6, 4, 251, - 63, 6, 4, 245, 145, 6, 4, 248, 160, 6, 4, 248, 214, 6, 4, 251, 48, 6, 4, - 219, 6, 4, 251, 47, 6, 4, 245, 206, 6, 4, 245, 207, 6, 4, 251, 83, 6, 4, - 245, 205, 6, 4, 251, 80, 6, 4, 251, 81, 6, 4, 253, 184, 6, 4, 251, 79, 6, - 4, 251, 55, 6, 4, 253, 168, 6, 4, 251, 53, 6, 4, 253, 30, 6, 4, 253, 31, - 6, 4, 253, 138, 6, 4, 253, 29, 6, 4, 247, 200, 6, 4, 253, 39, 6, 4, 247, - 199, 6, 4, 253, 38, 6, 4, 253, 177, 6, 4, 253, 36, 6, 4, 253, 33, 6, 4, - 253, 170, 6, 4, 253, 32, 6, 4, 253, 106, 6, 4, 253, 107, 6, 4, 254, 17, - 6, 4, 253, 105, 6, 4, 248, 10, 6, 4, 253, 104, 6, 4, 248, 9, 6, 4, 253, - 99, 6, 4, 253, 100, 6, 4, 253, 163, 6, 4, 253, 98, 6, 4, 248, 12, 6, 4, - 253, 114, 6, 4, 248, 11, 6, 4, 249, 221, 6, 4, 253, 112, 6, 4, 253, 222, - 6, 4, 253, 111, 6, 4, 253, 102, 6, 4, 253, 228, 6, 4, 253, 101, 6, 4, - 253, 115, 6, 4, 253, 116, 6, 4, 254, 18, 6, 4, 249, 222, 6, 4, 248, 13, - 6, 4, 249, 223, 6, 4, 253, 120, 6, 4, 253, 121, 6, 4, 255, 13, 6, 4, 253, - 118, 6, 4, 248, 14, 6, 4, 253, 119, 6, 4, 250, 163, 6, 4, 250, 164, 6, 4, - 254, 55, 6, 4, 249, 40, 6, 4, 245, 19, 6, 4, 245, 20, 6, 4, 250, 161, 6, - 4, 245, 18, 6, 4, 250, 146, 6, 4, 250, 147, 6, 4, 253, 152, 6, 4, 249, - 38, 6, 4, 245, 28, 6, 4, 250, 170, 6, 4, 243, 157, 6, 4, 250, 167, 6, 4, - 250, 168, 6, 4, 253, 224, 6, 4, 250, 166, 6, 4, 250, 157, 6, 4, 254, 54, - 6, 4, 250, 156, 6, 4, 250, 172, 6, 4, 250, 173, 6, 4, 254, 84, 6, 4, 249, - 43, 6, 4, 245, 29, 6, 4, 250, 171, 6, 4, 249, 48, 6, 4, 250, 176, 6, 4, - 254, 85, 6, 4, 249, 47, 6, 4, 245, 30, 6, 4, 250, 175, 6, 4, 248, 24, 6, - 4, 248, 25, 6, 4, 249, 226, 6, 4, 248, 23, 6, 4, 241, 1, 6, 4, 242, 211, - 6, 4, 248, 22, 6, 4, 242, 210, 6, 4, 248, 17, 6, 4, 248, 18, 6, 4, 249, - 224, 6, 4, 248, 16, 6, 4, 248, 27, 6, 4, 249, 227, 6, 4, 248, 26, 6, 4, - 248, 21, 6, 4, 249, 225, 6, 4, 248, 20, 6, 4, 248, 30, 6, 4, 249, 228, 6, - 4, 248, 28, 6, 4, 242, 212, 6, 4, 248, 29, 6, 4, 248, 33, 6, 4, 248, 34, - 6, 4, 253, 122, 6, 4, 248, 31, 6, 4, 242, 213, 6, 4, 248, 32, 6, 4, 246, - 219, 6, 4, 246, 220, 6, 4, 252, 49, 6, 4, 246, 218, 6, 4, 242, 34, 6, 4, - 246, 217, 6, 4, 242, 33, 6, 4, 246, 214, 6, 4, 246, 215, 6, 4, 252, 47, - 6, 4, 246, 213, 6, 4, 242, 35, 6, 4, 246, 223, 6, 4, 246, 222, 6, 4, 246, - 221, 6, 4, 246, 216, 6, 4, 252, 48, 6, 4, 246, 225, 6, 4, 252, 50, 6, 4, - 243, 239, 6, 4, 242, 36, 6, 4, 246, 224, 6, 4, 246, 228, 6, 4, 246, 229, - 6, 4, 252, 51, 6, 4, 246, 226, 6, 4, 242, 37, 6, 4, 246, 227, 6, 4, 252, - 180, 6, 4, 187, 6, 4, 253, 198, 6, 4, 252, 179, 6, 4, 247, 88, 6, 4, 252, - 176, 6, 4, 247, 87, 6, 4, 252, 167, 6, 4, 252, 168, 6, 4, 253, 132, 6, 4, - 252, 166, 6, 4, 247, 126, 6, 4, 252, 193, 6, 4, 247, 125, 6, 4, 252, 186, - 6, 4, 252, 188, 6, 4, 253, 186, 6, 4, 252, 185, 6, 4, 252, 172, 6, 4, - 253, 210, 6, 4, 252, 171, 6, 4, 252, 196, 6, 4, 252, 197, 6, 4, 253, 211, - 6, 4, 252, 194, 6, 4, 247, 128, 6, 4, 252, 195, 6, 4, 252, 200, 6, 4, - 252, 201, 6, 4, 254, 243, 6, 4, 252, 198, 6, 4, 247, 130, 6, 4, 252, 199, - 6, 4, 247, 108, 6, 4, 247, 109, 6, 4, 248, 249, 6, 4, 247, 107, 6, 4, - 242, 129, 6, 4, 247, 106, 6, 4, 242, 128, 6, 4, 247, 101, 6, 4, 247, 102, - 6, 4, 248, 66, 6, 4, 247, 100, 6, 4, 247, 111, 6, 4, 247, 112, 6, 4, 248, - 250, 6, 4, 247, 110, 6, 4, 247, 105, 6, 4, 249, 168, 6, 4, 247, 104, 6, - 4, 247, 114, 6, 4, 247, 115, 6, 4, 248, 251, 6, 4, 247, 113, 6, 4, 247, - 118, 6, 4, 247, 119, 6, 4, 252, 189, 6, 4, 247, 116, 6, 4, 242, 130, 6, - 4, 247, 117, 6, 4, 247, 247, 6, 4, 247, 248, 6, 4, 248, 99, 6, 4, 247, - 246, 6, 4, 242, 204, 6, 4, 247, 255, 6, 4, 242, 203, 6, 4, 247, 253, 6, - 4, 247, 254, 6, 4, 249, 218, 6, 4, 247, 252, 6, 4, 247, 250, 6, 4, 247, - 251, 6, 4, 248, 123, 6, 4, 247, 249, 6, 4, 248, 2, 6, 4, 248, 3, 6, 4, - 249, 219, 6, 4, 248, 0, 6, 4, 242, 205, 6, 4, 248, 1, 6, 4, 248, 7, 6, 4, - 248, 8, 6, 4, 253, 103, 6, 4, 248, 5, 6, 4, 242, 206, 6, 4, 248, 6, 6, 4, - 244, 255, 6, 4, 245, 0, 6, 4, 248, 57, 6, 4, 244, 254, 6, 4, 241, 57, 6, - 4, 241, 58, 6, 4, 245, 9, 6, 4, 241, 56, 6, 4, 245, 7, 6, 4, 245, 8, 6, - 4, 248, 125, 6, 4, 245, 6, 6, 4, 245, 2, 6, 4, 245, 3, 6, 4, 248, 88, 6, - 4, 245, 1, 6, 4, 245, 12, 6, 4, 248, 200, 6, 4, 245, 10, 6, 4, 241, 59, - 6, 4, 245, 11, 6, 4, 245, 16, 6, 4, 245, 17, 6, 4, 250, 160, 6, 4, 245, - 14, 6, 4, 241, 60, 6, 4, 245, 15, 6, 4, 247, 35, 6, 4, 248, 96, 6, 4, - 242, 87, 6, 4, 247, 43, 6, 4, 247, 41, 6, 4, 247, 42, 6, 4, 249, 157, 6, - 4, 247, 40, 6, 4, 247, 38, 6, 4, 247, 39, 6, 4, 252, 147, 6, 4, 247, 37, - 6, 4, 247, 46, 6, 4, 247, 47, 6, 4, 252, 148, 6, 4, 247, 44, 6, 4, 242, - 88, 6, 4, 247, 45, 6, 4, 247, 50, 6, 4, 247, 51, 6, 4, 252, 149, 6, 4, - 247, 48, 6, 4, 242, 89, 6, 4, 247, 49, 6, 4, 246, 178, 6, 4, 246, 179, 6, - 4, 249, 123, 6, 4, 246, 177, 6, 4, 246, 184, 6, 4, 252, 37, 6, 4, 246, - 183, 6, 4, 246, 181, 6, 4, 246, 182, 6, 4, 252, 36, 6, 4, 246, 180, 6, 4, - 246, 187, 6, 4, 246, 188, 6, 4, 252, 38, 6, 4, 246, 185, 6, 4, 242, 25, - 6, 4, 246, 186, 6, 4, 246, 191, 6, 4, 246, 192, 6, 4, 252, 39, 6, 4, 246, - 189, 6, 4, 242, 26, 6, 4, 246, 190, 6, 4, 244, 8, 6, 4, 247, 69, 6, 4, - 248, 46, 6, 4, 247, 68, 6, 4, 242, 110, 6, 4, 247, 79, 6, 4, 242, 109, 6, - 4, 247, 77, 6, 4, 247, 78, 6, 4, 248, 110, 6, 4, 244, 13, 6, 4, 247, 71, - 6, 4, 247, 72, 6, 4, 248, 118, 6, 4, 247, 70, 6, 4, 247, 81, 6, 4, 247, - 82, 6, 4, 248, 248, 6, 4, 247, 80, 6, 4, 242, 111, 6, 4, 244, 15, 6, 4, - 247, 85, 6, 4, 247, 86, 6, 4, 249, 163, 6, 4, 247, 83, 6, 4, 242, 112, 6, - 4, 247, 84, 6, 4, 249, 152, 6, 4, 252, 130, 6, 4, 253, 130, 6, 4, 248, - 244, 6, 4, 247, 55, 6, 4, 252, 152, 6, 4, 247, 54, 6, 4, 252, 145, 6, 4, - 252, 146, 6, 4, 253, 160, 6, 4, 252, 144, 6, 4, 252, 135, 6, 4, 253, 194, - 6, 4, 252, 133, 6, 4, 252, 155, 6, 4, 252, 156, 6, 4, 253, 185, 6, 4, - 252, 153, 6, 4, 247, 56, 6, 4, 252, 154, 6, 4, 252, 161, 6, 4, 252, 162, - 6, 4, 254, 125, 6, 4, 252, 159, 6, 4, 247, 58, 6, 4, 252, 160, 6, 4, 251, - 118, 6, 4, 251, 119, 6, 4, 254, 7, 6, 4, 251, 117, 6, 4, 245, 236, 6, 4, - 245, 237, 6, 4, 251, 116, 6, 4, 245, 235, 6, 4, 245, 255, 6, 4, 246, 0, - 6, 4, 251, 126, 6, 4, 245, 254, 6, 4, 248, 115, 6, 4, 251, 124, 6, 4, - 253, 248, 6, 4, 251, 123, 6, 4, 251, 129, 6, 4, 251, 130, 6, 4, 254, 25, - 6, 4, 251, 127, 6, 4, 246, 1, 6, 4, 251, 128, 6, 4, 251, 134, 6, 4, 251, - 135, 6, 4, 254, 181, 6, 4, 251, 132, 6, 4, 246, 2, 6, 4, 251, 133, 6, 4, - 252, 96, 6, 4, 252, 97, 6, 4, 254, 28, 6, 4, 252, 95, 6, 4, 247, 13, 6, - 4, 247, 14, 6, 4, 252, 94, 6, 4, 247, 12, 6, 4, 247, 17, 6, 4, 247, 18, - 6, 4, 249, 149, 6, 4, 247, 16, 6, 4, 249, 148, 6, 4, 252, 102, 6, 4, 254, - 45, 6, 4, 252, 101, 6, 4, 252, 109, 6, 4, 252, 111, 6, 4, 254, 29, 6, 4, - 252, 107, 6, 4, 247, 19, 6, 4, 252, 108, 6, 4, 252, 121, 6, 4, 252, 123, - 6, 4, 254, 234, 6, 4, 252, 119, 6, 4, 247, 25, 6, 4, 252, 120, 6, 4, 245, - 240, 6, 4, 245, 241, 6, 4, 249, 86, 6, 4, 245, 239, 6, 4, 241, 183, 6, 4, - 241, 184, 6, 4, 243, 202, 6, 4, 241, 182, 6, 4, 241, 186, 6, 4, 245, 245, - 6, 4, 241, 185, 6, 4, 245, 243, 6, 4, 245, 244, 6, 4, 249, 87, 6, 4, 245, - 242, 6, 4, 243, 203, 6, 4, 245, 248, 6, 4, 249, 88, 6, 4, 245, 246, 6, 4, - 241, 187, 6, 4, 245, 247, 6, 4, 245, 250, 6, 4, 245, 251, 6, 4, 249, 89, - 6, 4, 245, 249, 6, 4, 246, 159, 6, 4, 246, 160, 6, 4, 252, 26, 6, 4, 246, - 158, 6, 4, 242, 14, 6, 4, 242, 15, 6, 4, 246, 157, 6, 4, 242, 13, 6, 4, - 242, 16, 6, 4, 246, 164, 6, 4, 246, 162, 6, 4, 246, 163, 6, 4, 252, 27, - 6, 4, 246, 161, 6, 4, 246, 167, 6, 4, 252, 28, 6, 4, 246, 165, 6, 4, 242, - 17, 6, 4, 246, 166, 6, 4, 246, 170, 6, 4, 246, 171, 6, 4, 252, 29, 6, 4, - 246, 168, 6, 4, 242, 18, 6, 4, 246, 169, 6, 4, 246, 203, 6, 4, 246, 204, - 6, 4, 248, 178, 6, 4, 243, 237, 6, 4, 242, 29, 6, 4, 242, 30, 6, 4, 246, - 202, 6, 4, 242, 28, 6, 4, 242, 32, 6, 4, 246, 208, 6, 4, 242, 31, 6, 4, - 246, 206, 6, 4, 246, 207, 6, 4, 248, 133, 6, 4, 243, 238, 6, 4, 246, 210, - 6, 4, 246, 211, 6, 4, 249, 125, 6, 4, 246, 209, 6, 4, 253, 45, 6, 4, 253, - 46, 6, 4, 253, 188, 6, 4, 253, 44, 6, 4, 247, 202, 6, 4, 247, 203, 6, 4, - 253, 43, 6, 4, 247, 201, 6, 4, 247, 205, 6, 4, 253, 52, 6, 4, 253, 50, 6, - 4, 253, 51, 6, 4, 254, 133, 6, 4, 253, 48, 6, 4, 253, 62, 6, 4, 253, 64, - 6, 4, 255, 7, 6, 4, 253, 60, 6, 4, 247, 210, 6, 4, 253, 61, 6, 4, 249, - 209, 6, 4, 253, 83, 6, 4, 253, 189, 6, 4, 253, 82, 6, 4, 247, 228, 6, 4, - 247, 229, 6, 4, 253, 80, 6, 4, 247, 227, 6, 4, 247, 240, 6, 4, 247, 241, - 6, 4, 253, 88, 6, 4, 247, 239, 6, 4, 249, 211, 6, 4, 253, 86, 6, 4, 253, - 162, 6, 4, 253, 85, 6, 4, 253, 91, 6, 4, 253, 92, 6, 4, 253, 161, 6, 4, - 253, 89, 6, 4, 247, 242, 6, 4, 253, 90, 6, 4, 253, 95, 6, 4, 253, 96, 6, - 4, 254, 77, 6, 4, 253, 93, 6, 4, 247, 243, 6, 4, 253, 94, 6, 25, 249, - 148, 6, 25, 253, 251, 6, 25, 249, 95, 6, 25, 243, 237, 6, 25, 249, 47, 6, - 25, 248, 249, 6, 25, 243, 180, 6, 25, 249, 69, 6, 25, 253, 180, 6, 25, - 243, 196, 6, 25, 249, 109, 6, 25, 243, 145, 6, 25, 249, 114, 6, 25, 253, - 162, 6, 25, 249, 142, 6, 25, 243, 198, 6, 25, 249, 174, 6, 25, 253, 139, - 6, 25, 249, 222, 6, 25, 249, 48, 6, 25, 243, 163, 6, 25, 249, 35, 6, 25, - 243, 181, 6, 25, 243, 238, 6, 25, 253, 196, 6, 25, 254, 120, 6, 25, 243, - 203, 6, 25, 249, 221, 6, 25, 249, 144, 6, 25, 249, 82, 6, 25, 249, 209, - 6, 25, 249, 197, 6, 25, 249, 163, 6, 25, 249, 193, 6, 25, 253, 163, 6, - 25, 253, 248, 6, 25, 243, 239, 6, 25, 249, 89, 6, 25, 249, 78, 6, 25, - 243, 202, 6, 25, 253, 177, 6, 25, 253, 232, 6, 25, 244, 15, 6, 25, 249, - 105, 6, 25, 254, 85, 6, 25, 243, 157, 6, 25, 249, 40, 6, 25, 243, 197, 6, - 25, 244, 8, 6, 25, 249, 223, 6, 25, 244, 13, 6, 25, 248, 88, 6, 25, 241, - 1, 6, 25, 243, 232, 6, 25, 253, 172, 49, 1, 238, 85, 188, 254, 15, 243, - 243, 49, 1, 238, 85, 188, 248, 122, 243, 243, 49, 1, 238, 85, 188, 254, - 15, 240, 222, 49, 1, 238, 85, 188, 248, 122, 240, 222, 49, 1, 238, 85, - 188, 254, 15, 254, 29, 49, 1, 238, 85, 188, 248, 122, 254, 29, 49, 1, - 238, 85, 188, 254, 15, 253, 185, 49, 1, 238, 85, 188, 248, 122, 253, 185, - 49, 1, 234, 27, 240, 4, 188, 125, 49, 1, 200, 240, 4, 188, 125, 49, 1, - 254, 40, 240, 4, 188, 125, 49, 1, 170, 240, 4, 188, 125, 49, 1, 235, 87, - 240, 4, 188, 125, 49, 1, 234, 27, 240, 4, 235, 64, 188, 125, 49, 1, 200, - 240, 4, 235, 64, 188, 125, 49, 1, 254, 40, 240, 4, 235, 64, 188, 125, 49, - 1, 170, 240, 4, 235, 64, 188, 125, 49, 1, 235, 87, 240, 4, 235, 64, 188, - 125, 49, 1, 234, 27, 235, 64, 188, 125, 49, 1, 200, 235, 64, 188, 125, - 49, 1, 254, 40, 235, 64, 188, 125, 49, 1, 170, 235, 64, 188, 125, 49, 1, - 235, 87, 235, 64, 188, 125, 239, 253, 242, 214, 1, 67, 239, 253, 242, - 214, 1, 71, 239, 253, 242, 214, 21, 236, 10, 239, 253, 242, 214, 1, 79, - 239, 253, 242, 214, 1, 72, 239, 253, 242, 214, 1, 73, 239, 253, 242, 214, - 21, 237, 170, 239, 253, 242, 214, 1, 253, 190, 239, 253, 242, 214, 1, - 248, 220, 239, 253, 242, 214, 1, 253, 234, 239, 253, 242, 214, 1, 249, - 75, 239, 253, 242, 214, 21, 235, 61, 239, 253, 242, 214, 1, 253, 224, - 239, 253, 242, 214, 1, 248, 125, 239, 253, 242, 214, 1, 253, 248, 239, - 253, 242, 214, 1, 251, 114, 239, 253, 242, 214, 1, 249, 6, 239, 253, 242, - 214, 1, 243, 131, 239, 253, 242, 214, 1, 248, 204, 239, 253, 242, 214, 1, - 245, 44, 239, 253, 242, 214, 1, 87, 239, 253, 242, 214, 1, 248, 97, 239, - 253, 242, 214, 1, 253, 225, 239, 253, 242, 214, 1, 250, 193, 239, 253, - 242, 214, 1, 253, 173, 239, 253, 242, 214, 1, 253, 208, 239, 253, 242, - 214, 1, 248, 238, 239, 253, 242, 214, 1, 254, 1, 239, 253, 242, 214, 1, - 250, 120, 239, 253, 242, 214, 1, 253, 181, 239, 253, 242, 214, 1, 253, - 160, 239, 253, 242, 214, 1, 253, 216, 239, 253, 242, 214, 1, 249, 157, - 239, 253, 242, 214, 1, 253, 186, 239, 253, 242, 214, 1, 253, 184, 239, - 253, 242, 214, 33, 21, 67, 239, 253, 242, 214, 33, 21, 71, 239, 253, 242, - 214, 33, 21, 79, 239, 253, 242, 214, 33, 21, 72, 239, 253, 242, 214, 33, - 21, 253, 156, 239, 253, 242, 214, 240, 120, 238, 200, 239, 253, 242, 214, - 240, 120, 238, 201, 239, 253, 242, 214, 240, 120, 239, 127, 239, 253, - 242, 214, 240, 120, 239, 128, 7, 9, 229, 68, 7, 9, 229, 69, 7, 9, 229, - 70, 7, 9, 229, 71, 7, 9, 229, 72, 7, 9, 229, 73, 7, 9, 229, 74, 7, 9, - 229, 75, 7, 9, 229, 76, 7, 9, 229, 77, 7, 9, 229, 78, 7, 9, 229, 79, 7, - 9, 229, 80, 7, 9, 229, 81, 7, 9, 229, 82, 7, 9, 229, 83, 7, 9, 229, 84, - 7, 9, 229, 85, 7, 9, 229, 86, 7, 9, 229, 87, 7, 9, 229, 88, 7, 9, 229, - 89, 7, 9, 229, 90, 7, 9, 229, 91, 7, 9, 229, 92, 7, 9, 229, 93, 7, 9, - 229, 94, 7, 9, 229, 95, 7, 9, 229, 96, 7, 9, 229, 97, 7, 9, 229, 98, 7, - 9, 229, 99, 7, 9, 229, 100, 7, 9, 229, 101, 7, 9, 229, 102, 7, 9, 229, - 103, 7, 9, 229, 104, 7, 9, 229, 105, 7, 9, 229, 106, 7, 9, 229, 107, 7, - 9, 229, 108, 7, 9, 229, 109, 7, 9, 229, 110, 7, 9, 229, 111, 7, 9, 229, - 112, 7, 9, 229, 113, 7, 9, 229, 114, 7, 9, 229, 115, 7, 9, 229, 116, 7, - 9, 229, 117, 7, 9, 229, 118, 7, 9, 229, 119, 7, 9, 229, 120, 7, 9, 229, - 121, 7, 9, 229, 122, 7, 9, 229, 123, 7, 9, 229, 124, 7, 9, 229, 125, 7, - 9, 229, 126, 7, 9, 229, 127, 7, 9, 229, 128, 7, 9, 229, 129, 7, 9, 229, - 130, 7, 9, 229, 131, 7, 9, 229, 132, 7, 9, 229, 133, 7, 9, 229, 134, 7, - 9, 229, 135, 7, 9, 229, 136, 7, 9, 229, 137, 7, 9, 229, 138, 7, 9, 229, - 139, 7, 9, 229, 140, 7, 9, 229, 141, 7, 9, 229, 142, 7, 9, 229, 143, 7, - 9, 229, 144, 7, 9, 229, 145, 7, 9, 229, 146, 7, 9, 229, 147, 7, 9, 229, - 148, 7, 9, 229, 149, 7, 9, 229, 150, 7, 9, 229, 151, 7, 9, 229, 152, 7, - 9, 229, 153, 7, 9, 229, 154, 7, 9, 229, 155, 7, 9, 229, 156, 7, 9, 229, - 157, 7, 9, 229, 158, 7, 9, 229, 159, 7, 9, 229, 160, 7, 9, 229, 161, 7, - 9, 229, 162, 7, 9, 229, 163, 7, 9, 229, 164, 7, 9, 229, 165, 7, 9, 229, - 166, 7, 9, 229, 167, 7, 9, 229, 168, 7, 9, 229, 169, 7, 9, 229, 170, 7, - 9, 229, 171, 7, 9, 229, 172, 7, 9, 229, 173, 7, 9, 229, 174, 7, 9, 229, - 175, 7, 9, 229, 176, 7, 9, 229, 177, 7, 9, 229, 178, 7, 9, 229, 179, 7, - 9, 229, 180, 7, 9, 229, 181, 7, 9, 229, 182, 7, 9, 229, 183, 7, 9, 229, - 184, 7, 9, 229, 185, 7, 9, 229, 186, 7, 9, 229, 187, 7, 9, 229, 188, 7, - 9, 229, 189, 7, 9, 229, 190, 7, 9, 229, 191, 7, 9, 229, 192, 7, 9, 229, - 193, 7, 9, 229, 194, 7, 9, 229, 195, 7, 9, 229, 196, 7, 9, 229, 197, 7, - 9, 229, 198, 7, 9, 229, 199, 7, 9, 229, 200, 7, 9, 229, 201, 7, 9, 229, - 202, 7, 9, 229, 203, 7, 9, 229, 204, 7, 9, 229, 205, 7, 9, 229, 206, 7, - 9, 229, 207, 7, 9, 229, 208, 7, 9, 229, 209, 7, 9, 229, 210, 7, 9, 229, - 211, 7, 9, 229, 212, 7, 9, 229, 213, 7, 9, 229, 214, 7, 9, 229, 215, 7, - 9, 229, 216, 7, 9, 229, 217, 7, 9, 229, 218, 7, 9, 229, 219, 7, 9, 229, - 220, 7, 9, 229, 221, 7, 9, 229, 222, 7, 9, 229, 223, 7, 9, 229, 224, 7, - 9, 229, 225, 7, 9, 229, 226, 7, 9, 229, 227, 7, 9, 229, 228, 7, 9, 229, - 229, 7, 9, 229, 230, 7, 9, 229, 231, 7, 9, 229, 232, 7, 9, 229, 233, 7, - 9, 229, 234, 7, 9, 229, 235, 7, 9, 229, 236, 7, 9, 229, 237, 7, 9, 229, - 238, 7, 9, 229, 239, 7, 9, 229, 240, 7, 9, 229, 241, 7, 9, 229, 242, 7, - 9, 229, 243, 7, 9, 229, 244, 7, 9, 229, 245, 7, 9, 229, 246, 7, 9, 229, - 247, 7, 9, 229, 248, 7, 9, 229, 249, 7, 9, 229, 250, 7, 9, 229, 251, 7, - 9, 229, 252, 7, 9, 229, 253, 7, 9, 229, 254, 7, 9, 229, 255, 7, 9, 230, - 0, 7, 9, 230, 1, 7, 9, 230, 2, 7, 9, 230, 3, 7, 9, 230, 4, 7, 9, 230, 5, - 7, 9, 230, 6, 7, 9, 230, 7, 7, 9, 230, 8, 7, 9, 230, 9, 7, 9, 230, 10, 7, - 9, 230, 11, 7, 9, 230, 12, 7, 9, 230, 13, 7, 9, 230, 14, 7, 9, 230, 15, - 7, 9, 230, 16, 7, 9, 230, 17, 7, 9, 230, 18, 7, 9, 230, 19, 7, 9, 230, - 20, 7, 9, 230, 21, 7, 9, 230, 22, 7, 9, 230, 23, 7, 9, 230, 24, 7, 9, - 230, 25, 7, 9, 230, 26, 7, 9, 230, 27, 7, 9, 230, 28, 7, 9, 230, 29, 7, - 9, 230, 30, 7, 9, 230, 31, 7, 9, 230, 32, 7, 9, 230, 33, 7, 9, 230, 34, - 7, 9, 230, 35, 7, 9, 230, 36, 7, 9, 230, 37, 7, 9, 230, 38, 7, 9, 230, - 39, 7, 9, 230, 40, 7, 9, 230, 41, 7, 9, 230, 42, 7, 9, 230, 43, 7, 9, - 230, 44, 7, 9, 230, 45, 7, 9, 230, 46, 7, 9, 230, 47, 7, 9, 230, 48, 7, - 9, 230, 49, 7, 9, 230, 50, 7, 9, 230, 51, 7, 9, 230, 52, 7, 9, 230, 53, - 7, 9, 230, 54, 7, 9, 230, 55, 7, 9, 230, 56, 7, 9, 230, 57, 7, 9, 230, - 58, 7, 9, 230, 59, 7, 9, 230, 60, 7, 9, 230, 61, 7, 9, 230, 62, 7, 9, - 230, 63, 7, 9, 230, 64, 7, 9, 230, 65, 7, 9, 230, 66, 7, 9, 230, 67, 7, - 9, 230, 68, 7, 9, 230, 69, 7, 9, 230, 70, 7, 9, 230, 71, 7, 9, 230, 72, - 7, 9, 230, 73, 7, 9, 230, 74, 7, 9, 230, 75, 7, 9, 230, 76, 7, 9, 230, - 77, 7, 9, 230, 78, 7, 9, 230, 79, 7, 9, 230, 80, 7, 9, 230, 81, 7, 9, - 230, 82, 7, 9, 230, 83, 7, 9, 230, 84, 7, 9, 230, 85, 7, 9, 230, 86, 7, - 9, 230, 87, 7, 9, 230, 88, 7, 9, 230, 89, 7, 9, 230, 90, 7, 9, 230, 91, - 7, 9, 230, 92, 7, 9, 230, 93, 7, 9, 230, 94, 7, 9, 230, 95, 7, 9, 230, - 96, 7, 9, 230, 97, 7, 9, 230, 98, 7, 9, 230, 99, 7, 9, 230, 100, 7, 9, - 230, 101, 7, 9, 230, 102, 7, 9, 230, 103, 7, 9, 230, 104, 7, 9, 230, 105, - 7, 9, 230, 106, 7, 9, 230, 107, 7, 9, 230, 108, 7, 9, 230, 109, 7, 9, - 230, 110, 7, 9, 230, 111, 7, 9, 230, 112, 7, 9, 230, 113, 7, 9, 230, 114, - 7, 9, 230, 115, 7, 9, 230, 116, 7, 9, 230, 117, 7, 9, 230, 118, 7, 9, - 230, 119, 7, 9, 230, 120, 7, 9, 230, 121, 7, 9, 230, 122, 7, 9, 230, 123, - 7, 9, 230, 124, 7, 9, 230, 125, 7, 9, 230, 126, 7, 9, 230, 127, 7, 9, - 230, 128, 7, 9, 230, 129, 7, 9, 230, 130, 7, 9, 230, 131, 7, 9, 230, 132, - 7, 9, 230, 133, 7, 9, 230, 134, 7, 9, 230, 135, 7, 9, 230, 136, 7, 9, - 230, 137, 7, 9, 230, 138, 7, 9, 230, 139, 7, 9, 230, 140, 7, 9, 230, 141, - 7, 9, 230, 142, 7, 9, 230, 143, 7, 9, 230, 144, 7, 9, 230, 145, 7, 9, - 230, 146, 7, 9, 230, 147, 7, 9, 230, 148, 7, 9, 230, 149, 7, 9, 230, 150, - 7, 9, 230, 151, 7, 9, 230, 152, 7, 9, 230, 153, 7, 9, 230, 154, 7, 9, - 230, 155, 7, 9, 230, 156, 7, 9, 230, 157, 7, 9, 230, 158, 7, 9, 230, 159, - 7, 9, 230, 160, 7, 9, 230, 161, 7, 9, 230, 162, 7, 9, 230, 163, 7, 9, - 230, 164, 7, 9, 230, 165, 7, 9, 230, 166, 7, 9, 230, 167, 7, 9, 230, 168, - 7, 9, 230, 169, 7, 9, 230, 170, 7, 9, 230, 171, 7, 9, 230, 172, 7, 9, - 230, 173, 7, 9, 230, 174, 7, 9, 230, 175, 7, 9, 230, 176, 7, 9, 230, 177, - 7, 9, 230, 178, 7, 9, 230, 179, 7, 9, 230, 180, 7, 9, 230, 181, 7, 9, - 230, 182, 7, 9, 230, 183, 7, 9, 230, 184, 7, 9, 230, 185, 7, 9, 230, 186, - 7, 9, 230, 187, 7, 9, 230, 188, 7, 9, 230, 189, 7, 9, 230, 190, 7, 9, - 230, 191, 7, 9, 230, 192, 7, 9, 230, 193, 7, 9, 230, 194, 7, 9, 230, 195, - 7, 9, 230, 196, 7, 9, 230, 197, 7, 9, 230, 198, 7, 9, 230, 199, 7, 9, - 230, 200, 7, 9, 230, 201, 7, 9, 230, 202, 7, 9, 230, 203, 7, 9, 230, 204, - 7, 9, 230, 205, 7, 9, 230, 206, 7, 9, 230, 207, 7, 9, 230, 208, 7, 9, - 230, 209, 7, 9, 230, 210, 7, 9, 230, 211, 7, 9, 230, 212, 7, 9, 230, 213, - 7, 9, 230, 214, 7, 9, 230, 215, 7, 9, 230, 216, 7, 9, 230, 217, 7, 9, - 230, 218, 7, 9, 230, 219, 7, 9, 230, 220, 7, 9, 230, 221, 7, 9, 230, 222, - 7, 9, 230, 223, 7, 9, 230, 224, 7, 9, 230, 225, 7, 9, 230, 226, 7, 9, - 230, 227, 7, 9, 230, 228, 7, 9, 230, 229, 7, 9, 230, 230, 7, 9, 230, 231, - 7, 9, 230, 232, 7, 9, 230, 233, 7, 9, 230, 234, 7, 9, 230, 235, 7, 9, - 230, 236, 7, 9, 230, 237, 7, 9, 230, 238, 7, 9, 230, 239, 7, 9, 230, 240, - 7, 9, 230, 241, 7, 9, 230, 242, 7, 9, 230, 243, 7, 9, 230, 244, 7, 9, - 230, 245, 7, 9, 230, 246, 7, 9, 230, 247, 7, 9, 230, 248, 7, 9, 230, 249, - 7, 9, 230, 250, 7, 9, 230, 251, 7, 9, 230, 252, 7, 9, 230, 253, 7, 9, - 230, 254, 7, 9, 230, 255, 7, 9, 231, 0, 7, 9, 231, 1, 7, 9, 231, 2, 7, 9, - 231, 3, 7, 9, 231, 4, 7, 9, 231, 5, 7, 9, 231, 6, 7, 9, 231, 7, 7, 9, - 231, 8, 7, 9, 231, 9, 7, 9, 231, 10, 7, 9, 231, 11, 7, 9, 231, 12, 7, 9, - 231, 13, 7, 9, 231, 14, 7, 9, 231, 15, 7, 9, 231, 16, 7, 9, 231, 17, 7, - 9, 231, 18, 7, 9, 231, 19, 7, 9, 231, 20, 7, 9, 231, 21, 7, 9, 231, 22, - 8, 3, 18, 254, 162, 8, 3, 18, 253, 245, 8, 3, 18, 254, 163, 8, 3, 18, - 250, 241, 8, 3, 18, 250, 242, 8, 3, 18, 183, 255, 99, 214, 8, 3, 18, 254, - 242, 100, 3, 18, 254, 39, 248, 175, 100, 3, 18, 254, 39, 248, 208, 100, - 3, 18, 254, 39, 248, 216, 100, 3, 18, 255, 0, 248, 175, 100, 3, 18, 254, - 39, 249, 17, 68, 1, 254, 50, 2, 240, 187, 68, 242, 232, 231, 144, 239, - 241, 68, 18, 238, 126, 254, 50, 254, 50, 240, 118, 68, 1, 233, 68, 243, - 144, 68, 1, 248, 98, 243, 3, 68, 1, 248, 98, 240, 165, 68, 1, 248, 98, - 253, 168, 68, 1, 248, 98, 248, 116, 68, 1, 248, 98, 240, 139, 68, 1, 248, - 98, 30, 248, 166, 68, 1, 248, 98, 243, 253, 68, 1, 248, 98, 249, 175, 68, - 1, 233, 68, 248, 49, 52, 68, 1, 248, 102, 2, 248, 102, 248, 40, 68, 1, - 248, 102, 2, 254, 73, 248, 40, 68, 1, 248, 102, 2, 240, 133, 19, 248, - 102, 248, 40, 68, 1, 248, 102, 2, 240, 133, 19, 254, 73, 248, 40, 68, 1, - 83, 2, 240, 118, 68, 1, 83, 2, 238, 149, 68, 1, 83, 2, 240, 140, 68, 1, - 254, 53, 2, 238, 61, 68, 1, 243, 184, 2, 238, 61, 68, 1, 243, 162, 2, - 238, 61, 68, 1, 255, 76, 2, 240, 140, 68, 1, 254, 76, 2, 238, 61, 68, 1, - 247, 244, 2, 238, 61, 68, 1, 254, 247, 2, 238, 61, 68, 1, 254, 50, 2, - 238, 61, 68, 1, 30, 253, 135, 2, 238, 61, 68, 1, 253, 135, 2, 238, 61, - 68, 1, 246, 38, 2, 238, 61, 68, 1, 254, 201, 2, 238, 61, 68, 1, 254, 114, - 2, 238, 61, 68, 1, 242, 94, 2, 238, 61, 68, 1, 30, 255, 38, 2, 238, 61, - 68, 1, 255, 38, 2, 238, 61, 68, 1, 247, 161, 2, 238, 61, 68, 1, 254, 233, - 2, 238, 61, 68, 1, 252, 134, 2, 238, 61, 68, 1, 248, 102, 2, 238, 61, 68, - 1, 254, 245, 2, 238, 61, 68, 1, 254, 76, 2, 240, 188, 68, 1, 254, 53, 2, - 243, 70, 68, 1, 253, 135, 2, 243, 70, 68, 1, 255, 38, 2, 243, 70, 68, 18, - 83, 240, 139, 11, 1, 83, 244, 49, 39, 13, 11, 1, 83, 244, 49, 30, 13, 11, - 1, 248, 147, 39, 13, 11, 1, 248, 147, 30, 13, 11, 1, 248, 147, 54, 13, - 11, 1, 248, 147, 113, 13, 11, 1, 254, 44, 39, 13, 11, 1, 254, 44, 30, 13, - 11, 1, 254, 44, 54, 13, 11, 1, 254, 44, 113, 13, 11, 1, 243, 52, 39, 13, - 11, 1, 243, 52, 30, 13, 11, 1, 243, 52, 54, 13, 11, 1, 243, 52, 113, 13, - 11, 1, 240, 124, 39, 13, 11, 1, 240, 124, 30, 13, 11, 1, 240, 124, 54, - 13, 11, 1, 240, 124, 113, 13, 11, 1, 243, 75, 39, 13, 11, 1, 243, 75, 30, - 13, 11, 1, 243, 75, 54, 13, 11, 1, 243, 75, 113, 13, 11, 1, 248, 189, 39, - 13, 11, 1, 248, 189, 30, 13, 11, 1, 248, 189, 54, 13, 11, 1, 248, 189, - 113, 13, 11, 1, 254, 47, 39, 13, 11, 1, 254, 47, 30, 13, 11, 1, 254, 47, - 54, 13, 11, 1, 254, 47, 113, 13, 11, 1, 243, 69, 39, 13, 11, 1, 243, 69, - 30, 13, 11, 1, 243, 69, 54, 13, 11, 1, 243, 69, 113, 13, 11, 1, 248, 152, - 39, 13, 11, 1, 248, 152, 30, 13, 11, 1, 248, 152, 54, 13, 11, 1, 248, - 152, 113, 13, 11, 1, 248, 177, 39, 13, 11, 1, 248, 177, 30, 13, 11, 1, - 248, 177, 54, 13, 11, 1, 248, 177, 113, 13, 11, 1, 243, 47, 39, 13, 11, - 1, 243, 47, 30, 13, 11, 1, 243, 47, 54, 13, 11, 1, 243, 47, 113, 13, 11, - 1, 238, 123, 39, 13, 11, 1, 238, 123, 30, 13, 11, 1, 238, 123, 54, 13, - 11, 1, 238, 123, 113, 13, 11, 1, 240, 166, 39, 13, 11, 1, 240, 166, 30, - 13, 11, 1, 243, 161, 39, 13, 11, 1, 243, 161, 30, 13, 11, 1, 254, 87, 39, - 13, 11, 1, 254, 87, 30, 13, 11, 1, 249, 49, 39, 13, 11, 1, 249, 49, 30, - 13, 11, 1, 254, 103, 39, 13, 11, 1, 254, 103, 30, 13, 11, 1, 249, 156, - 39, 13, 11, 1, 249, 156, 30, 13, 11, 1, 243, 21, 39, 13, 11, 1, 243, 21, - 30, 13, 11, 1, 243, 21, 54, 13, 11, 1, 243, 21, 113, 13, 11, 1, 253, 246, - 39, 13, 11, 1, 253, 246, 30, 13, 11, 1, 253, 246, 54, 13, 11, 1, 253, - 246, 113, 13, 11, 1, 248, 159, 39, 13, 11, 1, 248, 159, 30, 13, 11, 1, - 248, 159, 54, 13, 11, 1, 248, 159, 113, 13, 11, 1, 243, 67, 39, 13, 11, - 1, 243, 67, 30, 13, 11, 1, 243, 67, 54, 13, 11, 1, 243, 67, 113, 13, 11, - 1, 198, 240, 182, 39, 13, 11, 1, 198, 240, 182, 30, 13, 11, 1, 243, 71, - 39, 13, 11, 1, 243, 71, 30, 13, 11, 1, 243, 71, 54, 13, 11, 1, 243, 71, - 113, 13, 11, 1, 253, 124, 2, 57, 60, 39, 13, 11, 1, 253, 124, 2, 57, 60, - 30, 13, 11, 1, 253, 124, 248, 128, 39, 13, 11, 1, 253, 124, 248, 128, 30, - 13, 11, 1, 253, 124, 248, 128, 54, 13, 11, 1, 253, 124, 248, 128, 113, - 13, 11, 1, 253, 124, 233, 65, 39, 13, 11, 1, 253, 124, 233, 65, 30, 13, - 11, 1, 253, 124, 233, 65, 54, 13, 11, 1, 253, 124, 233, 65, 113, 13, 11, - 1, 57, 240, 92, 39, 13, 11, 1, 57, 240, 92, 30, 13, 11, 1, 57, 240, 92, - 2, 143, 60, 39, 13, 11, 1, 57, 240, 92, 2, 143, 60, 30, 13, 11, 1, 255, - 44, 39, 13, 11, 1, 255, 44, 30, 13, 11, 1, 255, 44, 54, 13, 11, 1, 255, - 44, 113, 13, 11, 1, 132, 39, 13, 11, 1, 132, 30, 13, 11, 1, 255, 33, 39, - 13, 11, 1, 255, 33, 30, 13, 11, 1, 255, 36, 39, 13, 11, 1, 255, 36, 30, - 13, 11, 1, 132, 2, 143, 60, 39, 13, 11, 1, 255, 65, 39, 13, 11, 1, 255, - 65, 30, 13, 11, 1, 238, 73, 255, 33, 39, 13, 11, 1, 238, 73, 255, 33, 30, - 13, 11, 1, 238, 73, 255, 36, 39, 13, 11, 1, 238, 73, 255, 36, 30, 13, 11, - 1, 157, 39, 13, 11, 1, 157, 30, 13, 11, 1, 157, 54, 13, 11, 1, 157, 113, - 13, 11, 1, 240, 104, 240, 192, 238, 73, 83, 150, 54, 13, 11, 1, 240, 104, - 240, 192, 238, 73, 83, 150, 113, 13, 11, 18, 57, 2, 143, 60, 2, 83, 39, - 13, 11, 18, 57, 2, 143, 60, 2, 83, 30, 13, 11, 18, 57, 2, 143, 60, 2, - 255, 30, 39, 13, 11, 18, 57, 2, 143, 60, 2, 255, 30, 30, 13, 11, 18, 57, - 2, 143, 60, 2, 253, 220, 39, 13, 11, 18, 57, 2, 143, 60, 2, 253, 220, 30, - 13, 11, 18, 57, 2, 143, 60, 2, 132, 39, 13, 11, 18, 57, 2, 143, 60, 2, - 132, 30, 13, 11, 18, 57, 2, 143, 60, 2, 255, 33, 39, 13, 11, 18, 57, 2, - 143, 60, 2, 255, 33, 30, 13, 11, 18, 57, 2, 143, 60, 2, 255, 36, 39, 13, - 11, 18, 57, 2, 143, 60, 2, 255, 36, 30, 13, 11, 18, 57, 2, 143, 60, 2, - 157, 39, 13, 11, 18, 57, 2, 143, 60, 2, 157, 30, 13, 11, 18, 57, 2, 143, - 60, 2, 157, 54, 13, 11, 18, 240, 104, 238, 73, 57, 2, 143, 60, 2, 83, - 150, 39, 13, 11, 18, 240, 104, 238, 73, 57, 2, 143, 60, 2, 83, 150, 30, - 13, 11, 18, 240, 104, 238, 73, 57, 2, 143, 60, 2, 83, 150, 54, 13, 11, 1, - 243, 26, 57, 39, 13, 11, 1, 243, 26, 57, 30, 13, 11, 1, 243, 26, 57, 54, - 13, 11, 1, 243, 26, 57, 113, 13, 11, 18, 57, 2, 143, 60, 2, 103, 39, 13, - 11, 18, 57, 2, 143, 60, 2, 94, 39, 13, 11, 18, 57, 2, 143, 60, 2, 51, 39, - 13, 11, 18, 57, 2, 143, 60, 2, 83, 150, 39, 13, 11, 18, 57, 2, 143, 60, - 2, 57, 39, 13, 11, 18, 253, 136, 2, 103, 39, 13, 11, 18, 253, 136, 2, 94, - 39, 13, 11, 18, 253, 136, 2, 164, 39, 13, 11, 18, 253, 136, 2, 51, 39, - 13, 11, 18, 253, 136, 2, 83, 150, 39, 13, 11, 18, 253, 136, 2, 57, 39, - 13, 11, 18, 253, 127, 2, 103, 39, 13, 11, 18, 253, 127, 2, 94, 39, 13, - 11, 18, 253, 127, 2, 164, 39, 13, 11, 18, 253, 127, 2, 51, 39, 13, 11, - 18, 253, 127, 2, 83, 150, 39, 13, 11, 18, 253, 127, 2, 57, 39, 13, 11, - 18, 248, 70, 2, 103, 39, 13, 11, 18, 248, 70, 2, 51, 39, 13, 11, 18, 248, - 70, 2, 83, 150, 39, 13, 11, 18, 248, 70, 2, 57, 39, 13, 11, 18, 103, 2, - 94, 39, 13, 11, 18, 103, 2, 51, 39, 13, 11, 18, 94, 2, 103, 39, 13, 11, - 18, 94, 2, 51, 39, 13, 11, 18, 164, 2, 103, 39, 13, 11, 18, 164, 2, 94, - 39, 13, 11, 18, 164, 2, 51, 39, 13, 11, 18, 248, 39, 2, 103, 39, 13, 11, - 18, 248, 39, 2, 94, 39, 13, 11, 18, 248, 39, 2, 164, 39, 13, 11, 18, 248, - 39, 2, 51, 39, 13, 11, 18, 253, 157, 2, 94, 39, 13, 11, 18, 253, 157, 2, - 51, 39, 13, 11, 18, 253, 155, 2, 103, 39, 13, 11, 18, 253, 155, 2, 94, - 39, 13, 11, 18, 253, 155, 2, 164, 39, 13, 11, 18, 253, 155, 2, 51, 39, - 13, 11, 18, 253, 169, 2, 94, 39, 13, 11, 18, 253, 169, 2, 51, 39, 13, 11, - 18, 253, 255, 2, 51, 39, 13, 11, 18, 253, 158, 2, 103, 39, 13, 11, 18, - 253, 158, 2, 51, 39, 13, 11, 18, 242, 240, 2, 103, 39, 13, 11, 18, 242, - 240, 2, 51, 39, 13, 11, 18, 253, 153, 2, 103, 39, 13, 11, 18, 253, 153, - 2, 94, 39, 13, 11, 18, 253, 153, 2, 164, 39, 13, 11, 18, 253, 153, 2, 51, - 39, 13, 11, 18, 253, 153, 2, 83, 150, 39, 13, 11, 18, 253, 153, 2, 57, - 39, 13, 11, 18, 253, 167, 2, 94, 39, 13, 11, 18, 253, 167, 2, 51, 39, 13, - 11, 18, 253, 167, 2, 83, 150, 39, 13, 11, 18, 253, 167, 2, 57, 39, 13, - 11, 18, 253, 135, 2, 83, 39, 13, 11, 18, 253, 135, 2, 103, 39, 13, 11, - 18, 253, 135, 2, 94, 39, 13, 11, 18, 253, 135, 2, 164, 39, 13, 11, 18, - 253, 135, 2, 182, 39, 13, 11, 18, 253, 135, 2, 51, 39, 13, 11, 18, 253, - 135, 2, 83, 150, 39, 13, 11, 18, 253, 135, 2, 57, 39, 13, 11, 18, 182, 2, - 103, 39, 13, 11, 18, 182, 2, 94, 39, 13, 11, 18, 182, 2, 164, 39, 13, 11, - 18, 182, 2, 51, 39, 13, 11, 18, 182, 2, 83, 150, 39, 13, 11, 18, 182, 2, - 57, 39, 13, 11, 18, 51, 2, 103, 39, 13, 11, 18, 51, 2, 94, 39, 13, 11, - 18, 51, 2, 164, 39, 13, 11, 18, 51, 2, 51, 39, 13, 11, 18, 51, 2, 83, - 150, 39, 13, 11, 18, 51, 2, 57, 39, 13, 11, 18, 198, 2, 103, 39, 13, 11, - 18, 198, 2, 94, 39, 13, 11, 18, 198, 2, 164, 39, 13, 11, 18, 198, 2, 51, - 39, 13, 11, 18, 198, 2, 83, 150, 39, 13, 11, 18, 198, 2, 57, 39, 13, 11, - 18, 253, 124, 2, 103, 39, 13, 11, 18, 253, 124, 2, 51, 39, 13, 11, 18, - 253, 124, 2, 83, 150, 39, 13, 11, 18, 253, 124, 2, 57, 39, 13, 11, 18, - 57, 2, 103, 39, 13, 11, 18, 57, 2, 94, 39, 13, 11, 18, 57, 2, 164, 39, - 13, 11, 18, 57, 2, 51, 39, 13, 11, 18, 57, 2, 83, 150, 39, 13, 11, 18, - 57, 2, 57, 39, 13, 11, 18, 249, 0, 2, 233, 49, 83, 39, 13, 11, 18, 253, - 143, 2, 233, 49, 83, 39, 13, 11, 18, 83, 150, 2, 233, 49, 83, 39, 13, 11, - 18, 240, 47, 2, 237, 1, 39, 13, 11, 18, 240, 47, 2, 237, 15, 39, 13, 11, - 18, 240, 47, 2, 243, 40, 39, 13, 11, 18, 240, 47, 2, 243, 56, 39, 13, 11, - 18, 240, 47, 2, 243, 63, 39, 13, 11, 18, 240, 47, 2, 233, 49, 83, 39, 13, - 11, 18, 57, 2, 143, 60, 2, 253, 143, 30, 13, 11, 18, 57, 2, 143, 60, 2, - 248, 104, 30, 13, 11, 18, 57, 2, 143, 60, 2, 51, 30, 13, 11, 18, 57, 2, - 143, 60, 2, 198, 30, 13, 11, 18, 57, 2, 143, 60, 2, 83, 150, 30, 13, 11, - 18, 57, 2, 143, 60, 2, 57, 30, 13, 11, 18, 253, 136, 2, 253, 143, 30, 13, - 11, 18, 253, 136, 2, 248, 104, 30, 13, 11, 18, 253, 136, 2, 51, 30, 13, - 11, 18, 253, 136, 2, 198, 30, 13, 11, 18, 253, 136, 2, 83, 150, 30, 13, - 11, 18, 253, 136, 2, 57, 30, 13, 11, 18, 253, 127, 2, 253, 143, 30, 13, - 11, 18, 253, 127, 2, 248, 104, 30, 13, 11, 18, 253, 127, 2, 51, 30, 13, - 11, 18, 253, 127, 2, 198, 30, 13, 11, 18, 253, 127, 2, 83, 150, 30, 13, - 11, 18, 253, 127, 2, 57, 30, 13, 11, 18, 248, 70, 2, 253, 143, 30, 13, - 11, 18, 248, 70, 2, 248, 104, 30, 13, 11, 18, 248, 70, 2, 51, 30, 13, 11, - 18, 248, 70, 2, 198, 30, 13, 11, 18, 248, 70, 2, 83, 150, 30, 13, 11, 18, - 248, 70, 2, 57, 30, 13, 11, 18, 253, 153, 2, 83, 150, 30, 13, 11, 18, - 253, 153, 2, 57, 30, 13, 11, 18, 253, 167, 2, 83, 150, 30, 13, 11, 18, - 253, 167, 2, 57, 30, 13, 11, 18, 253, 135, 2, 83, 30, 13, 11, 18, 253, - 135, 2, 182, 30, 13, 11, 18, 253, 135, 2, 51, 30, 13, 11, 18, 253, 135, - 2, 83, 150, 30, 13, 11, 18, 253, 135, 2, 57, 30, 13, 11, 18, 182, 2, 51, - 30, 13, 11, 18, 182, 2, 83, 150, 30, 13, 11, 18, 182, 2, 57, 30, 13, 11, - 18, 51, 2, 83, 30, 13, 11, 18, 51, 2, 51, 30, 13, 11, 18, 198, 2, 253, - 143, 30, 13, 11, 18, 198, 2, 248, 104, 30, 13, 11, 18, 198, 2, 51, 30, - 13, 11, 18, 198, 2, 198, 30, 13, 11, 18, 198, 2, 83, 150, 30, 13, 11, 18, - 198, 2, 57, 30, 13, 11, 18, 83, 150, 2, 233, 49, 83, 30, 13, 11, 18, 57, - 2, 253, 143, 30, 13, 11, 18, 57, 2, 248, 104, 30, 13, 11, 18, 57, 2, 51, - 30, 13, 11, 18, 57, 2, 198, 30, 13, 11, 18, 57, 2, 83, 150, 30, 13, 11, - 18, 57, 2, 57, 30, 13, 11, 18, 57, 2, 143, 60, 2, 103, 54, 13, 11, 18, - 57, 2, 143, 60, 2, 94, 54, 13, 11, 18, 57, 2, 143, 60, 2, 164, 54, 13, - 11, 18, 57, 2, 143, 60, 2, 51, 54, 13, 11, 18, 57, 2, 143, 60, 2, 253, - 124, 54, 13, 11, 18, 253, 136, 2, 103, 54, 13, 11, 18, 253, 136, 2, 94, - 54, 13, 11, 18, 253, 136, 2, 164, 54, 13, 11, 18, 253, 136, 2, 51, 54, - 13, 11, 18, 253, 136, 2, 253, 124, 54, 13, 11, 18, 253, 127, 2, 103, 54, - 13, 11, 18, 253, 127, 2, 94, 54, 13, 11, 18, 253, 127, 2, 164, 54, 13, - 11, 18, 253, 127, 2, 51, 54, 13, 11, 18, 253, 127, 2, 253, 124, 54, 13, - 11, 18, 248, 70, 2, 51, 54, 13, 11, 18, 103, 2, 94, 54, 13, 11, 18, 103, - 2, 51, 54, 13, 11, 18, 94, 2, 103, 54, 13, 11, 18, 94, 2, 51, 54, 13, 11, - 18, 164, 2, 103, 54, 13, 11, 18, 164, 2, 51, 54, 13, 11, 18, 248, 39, 2, - 103, 54, 13, 11, 18, 248, 39, 2, 94, 54, 13, 11, 18, 248, 39, 2, 164, 54, - 13, 11, 18, 248, 39, 2, 51, 54, 13, 11, 18, 253, 157, 2, 94, 54, 13, 11, - 18, 253, 157, 2, 164, 54, 13, 11, 18, 253, 157, 2, 51, 54, 13, 11, 18, - 253, 155, 2, 103, 54, 13, 11, 18, 253, 155, 2, 94, 54, 13, 11, 18, 253, - 155, 2, 164, 54, 13, 11, 18, 253, 155, 2, 51, 54, 13, 11, 18, 253, 169, - 2, 94, 54, 13, 11, 18, 253, 255, 2, 51, 54, 13, 11, 18, 253, 158, 2, 103, - 54, 13, 11, 18, 253, 158, 2, 51, 54, 13, 11, 18, 242, 240, 2, 103, 54, - 13, 11, 18, 242, 240, 2, 51, 54, 13, 11, 18, 253, 153, 2, 103, 54, 13, - 11, 18, 253, 153, 2, 94, 54, 13, 11, 18, 253, 153, 2, 164, 54, 13, 11, - 18, 253, 153, 2, 51, 54, 13, 11, 18, 253, 167, 2, 94, 54, 13, 11, 18, - 253, 167, 2, 51, 54, 13, 11, 18, 253, 135, 2, 103, 54, 13, 11, 18, 253, - 135, 2, 94, 54, 13, 11, 18, 253, 135, 2, 164, 54, 13, 11, 18, 253, 135, - 2, 182, 54, 13, 11, 18, 253, 135, 2, 51, 54, 13, 11, 18, 182, 2, 103, 54, - 13, 11, 18, 182, 2, 94, 54, 13, 11, 18, 182, 2, 164, 54, 13, 11, 18, 182, - 2, 51, 54, 13, 11, 18, 182, 2, 253, 124, 54, 13, 11, 18, 51, 2, 103, 54, - 13, 11, 18, 51, 2, 94, 54, 13, 11, 18, 51, 2, 164, 54, 13, 11, 18, 51, 2, - 51, 54, 13, 11, 18, 198, 2, 103, 54, 13, 11, 18, 198, 2, 94, 54, 13, 11, - 18, 198, 2, 164, 54, 13, 11, 18, 198, 2, 51, 54, 13, 11, 18, 198, 2, 253, - 124, 54, 13, 11, 18, 253, 124, 2, 103, 54, 13, 11, 18, 253, 124, 2, 51, - 54, 13, 11, 18, 253, 124, 2, 233, 49, 83, 54, 13, 11, 18, 57, 2, 103, 54, - 13, 11, 18, 57, 2, 94, 54, 13, 11, 18, 57, 2, 164, 54, 13, 11, 18, 57, 2, - 51, 54, 13, 11, 18, 57, 2, 253, 124, 54, 13, 11, 18, 57, 2, 143, 60, 2, - 51, 113, 13, 11, 18, 57, 2, 143, 60, 2, 253, 124, 113, 13, 11, 18, 253, - 136, 2, 51, 113, 13, 11, 18, 253, 136, 2, 253, 124, 113, 13, 11, 18, 253, - 127, 2, 51, 113, 13, 11, 18, 253, 127, 2, 253, 124, 113, 13, 11, 18, 248, - 70, 2, 51, 113, 13, 11, 18, 248, 70, 2, 253, 124, 113, 13, 11, 18, 248, - 39, 2, 51, 113, 13, 11, 18, 248, 39, 2, 253, 124, 113, 13, 11, 18, 242, - 216, 2, 51, 113, 13, 11, 18, 242, 216, 2, 253, 124, 113, 13, 11, 18, 253, - 135, 2, 182, 113, 13, 11, 18, 253, 135, 2, 51, 113, 13, 11, 18, 182, 2, - 51, 113, 13, 11, 18, 198, 2, 51, 113, 13, 11, 18, 198, 2, 253, 124, 113, - 13, 11, 18, 57, 2, 51, 113, 13, 11, 18, 57, 2, 253, 124, 113, 13, 11, 18, - 240, 47, 2, 243, 40, 113, 13, 11, 18, 240, 47, 2, 243, 56, 113, 13, 11, - 18, 240, 47, 2, 243, 63, 113, 13, 11, 18, 253, 169, 2, 83, 150, 39, 13, - 11, 18, 253, 169, 2, 57, 39, 13, 11, 18, 253, 158, 2, 83, 150, 39, 13, - 11, 18, 253, 158, 2, 57, 39, 13, 11, 18, 242, 240, 2, 83, 150, 39, 13, - 11, 18, 242, 240, 2, 57, 39, 13, 11, 18, 248, 39, 2, 83, 150, 39, 13, 11, - 18, 248, 39, 2, 57, 39, 13, 11, 18, 242, 216, 2, 83, 150, 39, 13, 11, 18, - 242, 216, 2, 57, 39, 13, 11, 18, 94, 2, 83, 150, 39, 13, 11, 18, 94, 2, - 57, 39, 13, 11, 18, 103, 2, 83, 150, 39, 13, 11, 18, 103, 2, 57, 39, 13, - 11, 18, 164, 2, 83, 150, 39, 13, 11, 18, 164, 2, 57, 39, 13, 11, 18, 253, - 157, 2, 83, 150, 39, 13, 11, 18, 253, 157, 2, 57, 39, 13, 11, 18, 253, - 155, 2, 83, 150, 39, 13, 11, 18, 253, 155, 2, 57, 39, 13, 11, 18, 242, - 216, 2, 103, 39, 13, 11, 18, 242, 216, 2, 94, 39, 13, 11, 18, 242, 216, - 2, 164, 39, 13, 11, 18, 242, 216, 2, 51, 39, 13, 11, 18, 242, 216, 2, - 253, 143, 39, 13, 11, 18, 248, 39, 2, 253, 143, 39, 13, 11, 18, 253, 157, - 2, 253, 143, 39, 13, 11, 18, 253, 155, 2, 253, 143, 39, 13, 11, 18, 253, - 169, 2, 83, 150, 30, 13, 11, 18, 253, 169, 2, 57, 30, 13, 11, 18, 253, - 158, 2, 83, 150, 30, 13, 11, 18, 253, 158, 2, 57, 30, 13, 11, 18, 242, - 240, 2, 83, 150, 30, 13, 11, 18, 242, 240, 2, 57, 30, 13, 11, 18, 248, - 39, 2, 83, 150, 30, 13, 11, 18, 248, 39, 2, 57, 30, 13, 11, 18, 242, 216, - 2, 83, 150, 30, 13, 11, 18, 242, 216, 2, 57, 30, 13, 11, 18, 94, 2, 83, - 150, 30, 13, 11, 18, 94, 2, 57, 30, 13, 11, 18, 103, 2, 83, 150, 30, 13, - 11, 18, 103, 2, 57, 30, 13, 11, 18, 164, 2, 83, 150, 30, 13, 11, 18, 164, - 2, 57, 30, 13, 11, 18, 253, 157, 2, 83, 150, 30, 13, 11, 18, 253, 157, 2, - 57, 30, 13, 11, 18, 253, 155, 2, 83, 150, 30, 13, 11, 18, 253, 155, 2, - 57, 30, 13, 11, 18, 242, 216, 2, 103, 30, 13, 11, 18, 242, 216, 2, 94, - 30, 13, 11, 18, 242, 216, 2, 164, 30, 13, 11, 18, 242, 216, 2, 51, 30, - 13, 11, 18, 242, 216, 2, 253, 143, 30, 13, 11, 18, 248, 39, 2, 253, 143, - 30, 13, 11, 18, 253, 157, 2, 253, 143, 30, 13, 11, 18, 253, 155, 2, 253, - 143, 30, 13, 11, 18, 242, 216, 2, 103, 54, 13, 11, 18, 242, 216, 2, 94, - 54, 13, 11, 18, 242, 216, 2, 164, 54, 13, 11, 18, 242, 216, 2, 51, 54, - 13, 11, 18, 248, 39, 2, 253, 124, 54, 13, 11, 18, 242, 216, 2, 253, 124, - 54, 13, 11, 18, 253, 169, 2, 51, 54, 13, 11, 18, 248, 39, 2, 103, 113, - 13, 11, 18, 248, 39, 2, 94, 113, 13, 11, 18, 248, 39, 2, 164, 113, 13, - 11, 18, 242, 216, 2, 103, 113, 13, 11, 18, 242, 216, 2, 94, 113, 13, 11, - 18, 242, 216, 2, 164, 113, 13, 11, 18, 253, 169, 2, 51, 113, 13, 11, 18, - 253, 255, 2, 51, 113, 13, 11, 18, 83, 2, 236, 214, 30, 13, 11, 18, 83, 2, - 236, 214, 39, 13, 240, 206, 40, 232, 74, 240, 206, 38, 232, 74, 11, 18, - 253, 127, 2, 103, 2, 51, 54, 13, 11, 18, 253, 127, 2, 94, 2, 103, 30, 13, - 11, 18, 253, 127, 2, 94, 2, 103, 54, 13, 11, 18, 253, 127, 2, 94, 2, 51, - 54, 13, 11, 18, 253, 127, 2, 164, 2, 51, 54, 13, 11, 18, 253, 127, 2, 51, - 2, 103, 54, 13, 11, 18, 253, 127, 2, 51, 2, 94, 54, 13, 11, 18, 253, 127, - 2, 51, 2, 164, 54, 13, 11, 18, 103, 2, 51, 2, 94, 30, 13, 11, 18, 103, 2, - 51, 2, 94, 54, 13, 11, 18, 94, 2, 51, 2, 57, 30, 13, 11, 18, 94, 2, 51, - 2, 83, 150, 30, 13, 11, 18, 248, 39, 2, 94, 2, 103, 54, 13, 11, 18, 248, - 39, 2, 103, 2, 94, 54, 13, 11, 18, 248, 39, 2, 103, 2, 83, 150, 30, 13, - 11, 18, 248, 39, 2, 51, 2, 94, 30, 13, 11, 18, 248, 39, 2, 51, 2, 94, 54, - 13, 11, 18, 248, 39, 2, 51, 2, 103, 54, 13, 11, 18, 248, 39, 2, 51, 2, - 51, 30, 13, 11, 18, 248, 39, 2, 51, 2, 51, 54, 13, 11, 18, 253, 157, 2, - 94, 2, 94, 30, 13, 11, 18, 253, 157, 2, 94, 2, 94, 54, 13, 11, 18, 253, - 157, 2, 51, 2, 51, 30, 13, 11, 18, 242, 216, 2, 94, 2, 51, 30, 13, 11, - 18, 242, 216, 2, 94, 2, 51, 54, 13, 11, 18, 242, 216, 2, 103, 2, 57, 30, - 13, 11, 18, 242, 216, 2, 51, 2, 164, 30, 13, 11, 18, 242, 216, 2, 51, 2, - 164, 54, 13, 11, 18, 242, 216, 2, 51, 2, 51, 30, 13, 11, 18, 242, 216, 2, - 51, 2, 51, 54, 13, 11, 18, 253, 155, 2, 94, 2, 83, 150, 30, 13, 11, 18, - 253, 155, 2, 164, 2, 51, 30, 13, 11, 18, 253, 155, 2, 164, 2, 51, 54, 13, - 11, 18, 253, 169, 2, 51, 2, 94, 30, 13, 11, 18, 253, 169, 2, 51, 2, 94, - 54, 13, 11, 18, 253, 169, 2, 51, 2, 51, 54, 13, 11, 18, 253, 169, 2, 51, - 2, 57, 30, 13, 11, 18, 253, 158, 2, 103, 2, 51, 30, 13, 11, 18, 253, 158, - 2, 51, 2, 51, 30, 13, 11, 18, 253, 158, 2, 51, 2, 51, 54, 13, 11, 18, - 253, 158, 2, 51, 2, 83, 150, 30, 13, 11, 18, 242, 240, 2, 51, 2, 51, 30, - 13, 11, 18, 242, 240, 2, 51, 2, 57, 30, 13, 11, 18, 242, 240, 2, 51, 2, - 83, 150, 30, 13, 11, 18, 253, 153, 2, 164, 2, 51, 30, 13, 11, 18, 253, - 153, 2, 164, 2, 51, 54, 13, 11, 18, 253, 167, 2, 51, 2, 94, 30, 13, 11, - 18, 253, 167, 2, 51, 2, 51, 30, 13, 11, 18, 182, 2, 94, 2, 51, 30, 13, - 11, 18, 182, 2, 94, 2, 57, 30, 13, 11, 18, 182, 2, 94, 2, 83, 150, 30, - 13, 11, 18, 182, 2, 103, 2, 103, 54, 13, 11, 18, 182, 2, 103, 2, 103, 30, - 13, 11, 18, 182, 2, 164, 2, 51, 30, 13, 11, 18, 182, 2, 164, 2, 51, 54, - 13, 11, 18, 182, 2, 51, 2, 94, 30, 13, 11, 18, 182, 2, 51, 2, 94, 54, 13, - 11, 18, 51, 2, 94, 2, 103, 54, 13, 11, 18, 51, 2, 94, 2, 51, 54, 13, 11, - 18, 51, 2, 94, 2, 57, 30, 13, 11, 18, 51, 2, 103, 2, 94, 54, 13, 11, 18, - 51, 2, 103, 2, 51, 54, 13, 11, 18, 51, 2, 164, 2, 103, 54, 13, 11, 18, - 51, 2, 164, 2, 51, 54, 13, 11, 18, 51, 2, 103, 2, 164, 54, 13, 11, 18, - 253, 124, 2, 51, 2, 103, 54, 13, 11, 18, 253, 124, 2, 51, 2, 51, 54, 13, - 11, 18, 198, 2, 94, 2, 51, 54, 13, 11, 18, 198, 2, 94, 2, 83, 150, 30, - 13, 11, 18, 198, 2, 103, 2, 51, 30, 13, 11, 18, 198, 2, 103, 2, 51, 54, - 13, 11, 18, 198, 2, 103, 2, 83, 150, 30, 13, 11, 18, 198, 2, 51, 2, 57, - 30, 13, 11, 18, 198, 2, 51, 2, 83, 150, 30, 13, 11, 18, 57, 2, 51, 2, 51, - 30, 13, 11, 18, 57, 2, 51, 2, 51, 54, 13, 11, 18, 253, 136, 2, 164, 2, - 57, 30, 13, 11, 18, 253, 127, 2, 103, 2, 57, 30, 13, 11, 18, 253, 127, 2, - 103, 2, 83, 150, 30, 13, 11, 18, 253, 127, 2, 164, 2, 57, 30, 13, 11, 18, - 253, 127, 2, 164, 2, 83, 150, 30, 13, 11, 18, 253, 127, 2, 51, 2, 57, 30, - 13, 11, 18, 253, 127, 2, 51, 2, 83, 150, 30, 13, 11, 18, 103, 2, 51, 2, - 57, 30, 13, 11, 18, 103, 2, 94, 2, 83, 150, 30, 13, 11, 18, 103, 2, 51, - 2, 83, 150, 30, 13, 11, 18, 248, 39, 2, 164, 2, 83, 150, 30, 13, 11, 18, - 253, 157, 2, 94, 2, 57, 30, 13, 11, 18, 242, 216, 2, 94, 2, 57, 30, 13, - 11, 18, 253, 155, 2, 94, 2, 57, 30, 13, 11, 18, 182, 2, 103, 2, 57, 30, - 13, 11, 18, 182, 2, 51, 2, 57, 30, 13, 11, 18, 57, 2, 94, 2, 57, 30, 13, - 11, 18, 57, 2, 103, 2, 57, 30, 13, 11, 18, 57, 2, 51, 2, 57, 30, 13, 11, - 18, 51, 2, 51, 2, 57, 30, 13, 11, 18, 253, 167, 2, 51, 2, 57, 30, 13, 11, - 18, 198, 2, 94, 2, 57, 30, 13, 11, 18, 253, 167, 2, 51, 2, 94, 54, 13, - 11, 18, 182, 2, 94, 2, 51, 54, 13, 11, 18, 253, 158, 2, 51, 2, 57, 30, - 13, 11, 18, 253, 135, 2, 51, 2, 57, 30, 13, 11, 18, 198, 2, 103, 2, 94, - 54, 13, 11, 18, 51, 2, 164, 2, 57, 30, 13, 11, 18, 182, 2, 103, 2, 51, - 54, 13, 11, 18, 253, 135, 2, 51, 2, 51, 30, 13, 11, 18, 182, 2, 103, 2, - 51, 30, 13, 11, 18, 198, 2, 103, 2, 94, 30, 13, 11, 18, 103, 2, 94, 2, - 57, 30, 13, 11, 18, 94, 2, 103, 2, 57, 30, 13, 11, 18, 51, 2, 103, 2, 57, - 30, 13, 11, 18, 253, 153, 2, 51, 2, 57, 30, 13, 11, 18, 253, 136, 2, 94, - 2, 57, 30, 13, 11, 18, 253, 135, 2, 51, 2, 51, 54, 13, 11, 18, 253, 158, - 2, 103, 2, 51, 54, 13, 11, 18, 253, 157, 2, 51, 2, 51, 54, 13, 11, 18, - 248, 39, 2, 164, 2, 57, 30, 13, 11, 18, 198, 2, 103, 2, 57, 30, 13, 11, - 18, 244, 3, 249, 191, 255, 24, 238, 197, 248, 119, 21, 39, 13, 11, 18, - 252, 85, 249, 191, 255, 24, 238, 197, 248, 119, 21, 39, 13, 11, 18, 244, - 77, 39, 13, 11, 18, 244, 75, 39, 13, 11, 18, 237, 213, 39, 13, 11, 18, - 247, 64, 39, 13, 11, 18, 242, 77, 39, 13, 11, 18, 240, 107, 39, 13, 11, - 18, 238, 45, 39, 13, 11, 18, 244, 3, 39, 13, 11, 18, 233, 100, 240, 107, - 236, 140, 11, 18, 229, 46, 252, 136, 52, 11, 18, 235, 181, 235, 168, 234, - 93, 34, 233, 233, 34, 233, 234, 34, 233, 235, 34, 233, 236, 34, 233, 237, - 34, 233, 238, 34, 233, 239, 34, 233, 240, 34, 233, 241, 34, 232, 204, 34, - 232, 205, 34, 232, 206, 34, 232, 207, 34, 232, 208, 34, 232, 209, 34, - 232, 210, 232, 70, 248, 38, 28, 59, 240, 27, 232, 70, 248, 38, 28, 59, - 80, 240, 27, 232, 70, 248, 38, 28, 59, 80, 248, 37, 208, 232, 70, 248, - 38, 28, 59, 240, 24, 232, 70, 248, 38, 28, 59, 234, 14, 232, 70, 248, 38, - 28, 59, 233, 54, 69, 232, 70, 248, 38, 28, 59, 236, 156, 69, 232, 70, - 248, 38, 28, 59, 40, 64, 234, 11, 104, 232, 70, 248, 38, 28, 59, 38, 64, - 234, 11, 237, 79, 232, 70, 248, 38, 28, 59, 163, 235, 69, 50, 18, 40, - 243, 7, 50, 18, 38, 243, 7, 50, 45, 242, 219, 40, 243, 7, 50, 45, 242, - 219, 38, 243, 7, 232, 70, 248, 38, 28, 59, 171, 53, 238, 143, 232, 70, - 248, 38, 28, 59, 255, 28, 242, 235, 232, 70, 248, 38, 28, 59, 255, 23, - 242, 235, 232, 70, 248, 38, 28, 59, 170, 242, 224, 232, 70, 248, 38, 28, - 59, 248, 103, 170, 242, 224, 232, 70, 248, 38, 28, 59, 40, 232, 74, 232, - 70, 248, 38, 28, 59, 38, 232, 74, 232, 70, 248, 38, 28, 59, 40, 242, 225, - 104, 232, 70, 248, 38, 28, 59, 38, 242, 225, 104, 232, 70, 248, 38, 28, - 59, 40, 236, 171, 242, 255, 104, 232, 70, 248, 38, 28, 59, 38, 236, 171, - 242, 255, 104, 232, 70, 248, 38, 28, 59, 40, 86, 234, 11, 104, 232, 70, - 248, 38, 28, 59, 38, 86, 234, 11, 104, 232, 70, 248, 38, 28, 59, 40, 45, - 185, 104, 232, 70, 248, 38, 28, 59, 38, 45, 185, 104, 232, 70, 248, 38, - 28, 59, 40, 185, 104, 232, 70, 248, 38, 28, 59, 38, 185, 104, 232, 70, - 248, 38, 28, 59, 40, 240, 31, 104, 232, 70, 248, 38, 28, 59, 38, 240, 31, - 104, 232, 70, 248, 38, 28, 59, 40, 64, 240, 31, 104, 232, 70, 248, 38, - 28, 59, 38, 64, 240, 31, 104, 240, 221, 248, 40, 64, 240, 221, 248, 40, - 232, 70, 248, 38, 28, 59, 40, 31, 104, 232, 70, 248, 38, 28, 59, 38, 31, - 104, 240, 55, 235, 74, 234, 48, 235, 74, 248, 103, 235, 74, 45, 248, 103, - 235, 74, 240, 55, 170, 242, 224, 234, 48, 170, 242, 224, 248, 103, 170, - 242, 224, 3, 240, 27, 3, 80, 240, 27, 3, 248, 37, 208, 3, 234, 14, 3, - 240, 24, 3, 236, 156, 69, 3, 233, 54, 69, 3, 255, 28, 242, 235, 3, 40, - 232, 74, 3, 38, 232, 74, 3, 40, 242, 225, 104, 3, 38, 242, 225, 104, 3, - 40, 236, 171, 242, 255, 104, 3, 38, 236, 171, 242, 255, 104, 3, 61, 52, - 3, 234, 17, 3, 235, 52, 3, 248, 49, 52, 3, 231, 94, 3, 235, 44, 52, 3, - 232, 68, 52, 3, 240, 7, 52, 3, 238, 75, 236, 177, 3, 240, 114, 52, 3, - 238, 107, 52, 3, 234, 20, 254, 20, 11, 236, 214, 39, 13, 11, 239, 214, 2, - 236, 214, 48, 11, 237, 1, 39, 13, 11, 248, 138, 236, 26, 11, 237, 15, 39, - 13, 11, 243, 40, 39, 13, 11, 243, 40, 113, 13, 11, 243, 56, 39, 13, 11, - 243, 56, 113, 13, 11, 243, 63, 39, 13, 11, 243, 63, 113, 13, 11, 240, 47, - 39, 13, 11, 240, 47, 113, 13, 11, 244, 25, 39, 13, 11, 244, 25, 113, 13, - 11, 1, 143, 39, 13, 11, 1, 83, 2, 243, 42, 60, 39, 13, 11, 1, 83, 2, 243, - 42, 60, 30, 13, 11, 1, 83, 2, 143, 60, 39, 13, 11, 1, 83, 2, 143, 60, 30, - 13, 11, 1, 253, 220, 2, 143, 60, 39, 13, 11, 1, 253, 220, 2, 143, 60, 30, - 13, 11, 1, 83, 2, 143, 242, 230, 39, 13, 11, 1, 83, 2, 143, 242, 230, 30, - 13, 11, 1, 57, 2, 143, 60, 39, 13, 11, 1, 57, 2, 143, 60, 30, 13, 11, 1, - 57, 2, 143, 60, 54, 13, 11, 1, 57, 2, 143, 60, 113, 13, 11, 1, 83, 39, - 13, 11, 1, 83, 30, 13, 11, 1, 253, 136, 39, 13, 11, 1, 253, 136, 30, 13, - 11, 1, 253, 136, 54, 13, 11, 1, 253, 136, 113, 13, 11, 1, 253, 127, 238, - 144, 39, 13, 11, 1, 253, 127, 238, 144, 30, 13, 11, 1, 253, 127, 39, 13, - 11, 1, 253, 127, 30, 13, 11, 1, 253, 127, 54, 13, 11, 1, 253, 127, 113, - 13, 11, 1, 248, 70, 39, 13, 11, 1, 248, 70, 30, 13, 11, 1, 248, 70, 54, - 13, 11, 1, 248, 70, 113, 13, 11, 1, 103, 39, 13, 11, 1, 103, 30, 13, 11, - 1, 103, 54, 13, 11, 1, 103, 113, 13, 11, 1, 94, 39, 13, 11, 1, 94, 30, - 13, 11, 1, 94, 54, 13, 11, 1, 94, 113, 13, 11, 1, 164, 39, 13, 11, 1, - 164, 30, 13, 11, 1, 164, 54, 13, 11, 1, 164, 113, 13, 11, 1, 253, 199, - 39, 13, 11, 1, 253, 199, 30, 13, 11, 1, 249, 0, 39, 13, 11, 1, 249, 0, - 30, 13, 11, 1, 253, 143, 39, 13, 11, 1, 253, 143, 30, 13, 11, 1, 248, - 104, 39, 13, 11, 1, 248, 104, 30, 13, 11, 1, 248, 39, 39, 13, 11, 1, 248, - 39, 30, 13, 11, 1, 248, 39, 54, 13, 11, 1, 248, 39, 113, 13, 11, 1, 242, - 216, 39, 13, 11, 1, 242, 216, 30, 13, 11, 1, 242, 216, 54, 13, 11, 1, - 242, 216, 113, 13, 11, 1, 253, 157, 39, 13, 11, 1, 253, 157, 30, 13, 11, - 1, 253, 157, 54, 13, 11, 1, 253, 157, 113, 13, 11, 1, 253, 155, 39, 13, - 11, 1, 253, 155, 30, 13, 11, 1, 253, 155, 54, 13, 11, 1, 253, 155, 113, - 13, 11, 1, 253, 169, 39, 13, 11, 1, 253, 169, 30, 13, 11, 1, 253, 169, - 54, 13, 11, 1, 253, 169, 113, 13, 11, 1, 253, 255, 39, 13, 11, 1, 253, - 255, 30, 13, 11, 1, 253, 255, 54, 13, 11, 1, 253, 255, 113, 13, 11, 1, - 253, 158, 39, 13, 11, 1, 253, 158, 30, 13, 11, 1, 253, 158, 54, 13, 11, - 1, 253, 158, 113, 13, 11, 1, 242, 240, 39, 13, 11, 1, 242, 240, 30, 13, - 11, 1, 242, 240, 54, 13, 11, 1, 242, 240, 113, 13, 11, 1, 253, 153, 39, - 13, 11, 1, 253, 153, 30, 13, 11, 1, 253, 153, 54, 13, 11, 1, 253, 153, - 113, 13, 11, 1, 253, 167, 39, 13, 11, 1, 253, 167, 30, 13, 11, 1, 253, - 167, 54, 13, 11, 1, 253, 167, 113, 13, 11, 1, 253, 135, 39, 13, 11, 1, - 253, 135, 30, 13, 11, 1, 253, 135, 54, 13, 11, 1, 253, 135, 113, 13, 11, - 1, 182, 39, 13, 11, 1, 182, 30, 13, 11, 1, 182, 54, 13, 11, 1, 182, 113, - 13, 11, 1, 51, 39, 13, 11, 1, 51, 30, 13, 11, 1, 51, 54, 13, 11, 1, 51, - 113, 13, 11, 1, 198, 39, 13, 11, 1, 198, 30, 13, 11, 1, 198, 54, 13, 11, - 1, 198, 113, 13, 11, 1, 253, 124, 39, 13, 11, 1, 253, 124, 30, 13, 11, 1, - 253, 124, 54, 13, 11, 1, 253, 124, 113, 13, 11, 1, 253, 220, 39, 13, 11, - 1, 253, 220, 30, 13, 11, 1, 83, 150, 39, 13, 11, 1, 83, 150, 30, 13, 11, - 1, 57, 39, 13, 11, 1, 57, 30, 13, 11, 1, 57, 54, 13, 11, 1, 57, 113, 13, - 11, 18, 182, 2, 83, 2, 243, 42, 60, 39, 13, 11, 18, 182, 2, 83, 2, 243, - 42, 60, 30, 13, 11, 18, 182, 2, 83, 2, 143, 60, 39, 13, 11, 18, 182, 2, - 83, 2, 143, 60, 30, 13, 11, 18, 182, 2, 83, 2, 143, 242, 230, 39, 13, 11, - 18, 182, 2, 83, 2, 143, 242, 230, 30, 13, 11, 18, 182, 2, 83, 39, 13, 11, - 18, 182, 2, 83, 30, 13, 248, 145, 243, 81, 236, 233, 240, 15, 89, 233, - 54, 69, 89, 235, 51, 69, 89, 61, 52, 89, 240, 114, 52, 89, 238, 107, 52, - 89, 234, 17, 89, 233, 59, 89, 40, 232, 74, 89, 38, 232, 74, 89, 235, 52, - 89, 248, 49, 52, 89, 240, 27, 89, 231, 94, 89, 248, 37, 208, 89, 236, - 177, 89, 26, 242, 217, 89, 26, 127, 89, 26, 111, 89, 26, 166, 89, 26, - 177, 89, 26, 176, 89, 26, 187, 89, 26, 203, 89, 26, 195, 89, 26, 202, 89, - 240, 24, 89, 234, 14, 89, 235, 44, 52, 89, 240, 7, 52, 89, 232, 68, 52, - 89, 236, 156, 69, 89, 234, 20, 254, 20, 89, 8, 5, 1, 67, 89, 8, 5, 1, - 217, 89, 8, 5, 1, 255, 18, 89, 8, 5, 1, 209, 89, 8, 5, 1, 72, 89, 8, 5, - 1, 255, 19, 89, 8, 5, 1, 210, 89, 8, 5, 1, 192, 89, 8, 5, 1, 71, 89, 8, - 5, 1, 221, 89, 8, 5, 1, 255, 15, 89, 8, 5, 1, 162, 89, 8, 5, 1, 173, 89, - 8, 5, 1, 197, 89, 8, 5, 1, 73, 89, 8, 5, 1, 223, 89, 8, 5, 1, 255, 20, - 89, 8, 5, 1, 144, 89, 8, 5, 1, 193, 89, 8, 5, 1, 214, 89, 8, 5, 1, 79, - 89, 8, 5, 1, 179, 89, 8, 5, 1, 255, 16, 89, 8, 5, 1, 206, 89, 8, 5, 1, - 255, 14, 89, 8, 5, 1, 255, 17, 89, 40, 31, 104, 89, 238, 75, 236, 177, - 89, 38, 31, 104, 89, 190, 238, 54, 89, 170, 242, 224, 89, 242, 245, 238, - 54, 89, 8, 3, 1, 67, 89, 8, 3, 1, 217, 89, 8, 3, 1, 255, 18, 89, 8, 3, 1, - 209, 89, 8, 3, 1, 72, 89, 8, 3, 1, 255, 19, 89, 8, 3, 1, 210, 89, 8, 3, - 1, 192, 89, 8, 3, 1, 71, 89, 8, 3, 1, 221, 89, 8, 3, 1, 255, 15, 89, 8, - 3, 1, 162, 89, 8, 3, 1, 173, 89, 8, 3, 1, 197, 89, 8, 3, 1, 73, 89, 8, 3, - 1, 223, 89, 8, 3, 1, 255, 20, 89, 8, 3, 1, 144, 89, 8, 3, 1, 193, 89, 8, - 3, 1, 214, 89, 8, 3, 1, 79, 89, 8, 3, 1, 179, 89, 8, 3, 1, 255, 16, 89, - 8, 3, 1, 206, 89, 8, 3, 1, 255, 14, 89, 8, 3, 1, 255, 17, 89, 40, 242, - 225, 104, 89, 59, 242, 224, 89, 38, 242, 225, 104, 89, 169, 89, 40, 64, - 232, 74, 89, 38, 64, 232, 74, 74, 80, 248, 37, 208, 74, 40, 240, 31, 104, - 74, 38, 240, 31, 104, 74, 80, 240, 27, 74, 42, 240, 1, 248, 40, 74, 42, - 1, 253, 177, 74, 42, 1, 3, 67, 74, 42, 1, 3, 71, 74, 42, 1, 3, 79, 74, - 42, 1, 3, 72, 74, 42, 1, 3, 73, 74, 42, 1, 3, 216, 74, 42, 1, 3, 253, - 161, 74, 42, 1, 3, 253, 162, 74, 42, 1, 3, 253, 196, 74, 226, 254, 235, - 138, 243, 1, 69, 74, 42, 1, 67, 74, 42, 1, 71, 74, 42, 1, 79, 74, 42, 1, - 72, 74, 42, 1, 73, 74, 42, 1, 201, 74, 42, 1, 253, 215, 74, 42, 1, 253, - 203, 74, 42, 1, 253, 172, 74, 42, 1, 253, 190, 74, 42, 1, 253, 132, 74, - 42, 1, 253, 198, 74, 42, 1, 253, 211, 74, 42, 1, 253, 210, 74, 42, 1, - 253, 186, 74, 42, 1, 253, 126, 74, 42, 1, 253, 212, 74, 42, 1, 253, 196, - 74, 42, 1, 253, 195, 74, 42, 1, 87, 74, 42, 1, 253, 131, 74, 42, 1, 253, - 166, 74, 42, 1, 253, 150, 74, 42, 1, 253, 197, 74, 42, 1, 253, 173, 74, - 42, 1, 219, 74, 42, 1, 253, 214, 74, 42, 1, 253, 236, 74, 42, 1, 253, - 168, 74, 42, 1, 253, 184, 74, 42, 1, 222, 74, 42, 1, 253, 180, 74, 42, 1, - 253, 154, 74, 42, 1, 253, 206, 74, 42, 1, 253, 181, 74, 42, 1, 216, 74, - 42, 1, 253, 161, 74, 42, 1, 253, 162, 74, 42, 1, 253, 130, 74, 42, 1, - 253, 209, 74, 42, 1, 253, 185, 74, 42, 1, 253, 194, 74, 42, 1, 253, 160, - 74, 42, 1, 253, 138, 74, 42, 1, 197, 74, 42, 240, 59, 243, 1, 69, 74, 42, - 233, 75, 243, 1, 69, 74, 23, 238, 114, 74, 23, 1, 238, 99, 74, 23, 1, - 232, 87, 74, 23, 1, 232, 91, 74, 23, 1, 240, 80, 74, 23, 1, 232, 93, 74, - 23, 1, 232, 94, 74, 23, 1, 238, 102, 74, 23, 1, 232, 101, 74, 23, 1, 240, - 85, 74, 23, 1, 231, 98, 74, 23, 1, 232, 96, 74, 23, 1, 232, 97, 74, 23, - 1, 233, 74, 74, 23, 1, 231, 43, 74, 23, 1, 231, 42, 74, 23, 1, 232, 85, - 74, 23, 1, 240, 78, 74, 23, 1, 240, 83, 74, 23, 1, 233, 79, 74, 23, 1, - 233, 66, 74, 23, 1, 243, 34, 74, 23, 1, 234, 32, 74, 23, 1, 240, 75, 74, - 23, 1, 240, 71, 74, 23, 1, 233, 77, 74, 23, 1, 236, 195, 74, 23, 1, 236, - 198, 74, 23, 1, 236, 205, 74, 23, 1, 236, 201, 74, 23, 1, 240, 74, 74, - 23, 1, 67, 74, 23, 1, 253, 178, 74, 23, 1, 216, 74, 23, 1, 249, 18, 74, - 23, 1, 254, 59, 74, 23, 1, 72, 74, 23, 1, 249, 22, 74, 23, 1, 253, 254, - 74, 23, 1, 73, 74, 23, 1, 253, 138, 74, 23, 1, 249, 12, 74, 23, 1, 253, - 193, 74, 23, 1, 253, 162, 74, 23, 1, 79, 74, 23, 1, 249, 14, 74, 23, 1, - 253, 170, 74, 23, 1, 253, 187, 74, 23, 1, 253, 161, 74, 23, 1, 254, 61, - 74, 23, 1, 253, 189, 74, 23, 1, 71, 89, 249, 39, 52, 89, 243, 246, 52, - 89, 161, 52, 89, 196, 89, 240, 129, 125, 89, 254, 134, 52, 89, 254, 131, - 52, 74, 245, 91, 136, 235, 63, 74, 139, 56, 74, 226, 226, 56, 74, 77, 56, - 74, 235, 45, 56, 74, 86, 238, 59, 74, 64, 238, 51, 233, 71, 234, 4, 238, - 159, 233, 71, 234, 4, 234, 6, 233, 71, 234, 4, 233, 251, 242, 38, 233, - 99, 234, 49, 233, 99, 234, 49, 44, 41, 4, 249, 254, 67, 44, 41, 4, 250, - 23, 72, 44, 41, 4, 250, 15, 71, 44, 41, 4, 250, 43, 73, 44, 41, 4, 250, - 0, 79, 44, 41, 4, 249, 247, 253, 133, 44, 41, 4, 250, 30, 253, 200, 44, - 41, 4, 249, 253, 253, 201, 44, 41, 4, 250, 4, 253, 225, 44, 41, 4, 250, - 34, 253, 232, 44, 41, 4, 250, 39, 253, 146, 44, 41, 4, 250, 31, 254, 24, - 44, 41, 4, 250, 21, 253, 248, 44, 41, 4, 250, 45, 254, 25, 44, 41, 4, - 250, 57, 201, 44, 41, 4, 250, 29, 253, 172, 44, 41, 4, 250, 47, 253, 215, - 44, 41, 4, 250, 50, 253, 190, 44, 41, 4, 250, 60, 253, 203, 44, 41, 4, - 250, 59, 222, 44, 41, 4, 250, 3, 253, 206, 44, 41, 4, 250, 53, 253, 180, - 44, 41, 4, 250, 5, 253, 181, 44, 41, 4, 250, 10, 253, 154, 44, 41, 4, - 249, 252, 253, 131, 44, 41, 4, 250, 11, 253, 197, 44, 41, 4, 250, 17, - 253, 166, 44, 41, 4, 250, 35, 253, 173, 44, 41, 4, 250, 38, 253, 150, 44, - 41, 4, 249, 249, 253, 129, 44, 41, 4, 250, 52, 253, 175, 44, 41, 4, 250, - 24, 253, 147, 44, 41, 4, 250, 1, 253, 208, 44, 41, 4, 250, 33, 253, 239, - 44, 41, 4, 250, 6, 253, 217, 44, 41, 4, 250, 58, 254, 70, 44, 41, 4, 250, - 9, 254, 28, 44, 41, 4, 250, 19, 254, 45, 44, 41, 4, 250, 42, 253, 130, - 44, 41, 4, 250, 14, 253, 194, 44, 41, 4, 250, 36, 253, 209, 44, 41, 4, - 249, 248, 253, 160, 44, 41, 4, 250, 13, 253, 185, 44, 41, 4, 250, 18, - 253, 132, 44, 41, 4, 249, 255, 253, 210, 44, 41, 4, 250, 26, 253, 198, - 44, 41, 4, 250, 2, 253, 186, 44, 41, 4, 250, 40, 253, 211, 44, 41, 4, - 250, 41, 253, 126, 44, 41, 4, 249, 250, 253, 195, 44, 41, 4, 250, 22, - 253, 212, 44, 41, 4, 249, 251, 87, 44, 41, 4, 250, 49, 253, 196, 44, 41, - 4, 250, 37, 253, 138, 44, 41, 4, 250, 55, 253, 170, 44, 41, 4, 250, 25, - 253, 187, 44, 41, 4, 250, 27, 253, 177, 44, 41, 4, 250, 7, 253, 163, 44, - 41, 4, 250, 54, 253, 228, 44, 41, 4, 250, 8, 253, 222, 44, 41, 4, 250, - 12, 254, 137, 44, 41, 4, 250, 28, 254, 138, 44, 41, 4, 250, 61, 253, 151, - 44, 41, 4, 250, 51, 250, 215, 44, 41, 4, 250, 63, 250, 216, 44, 41, 4, - 250, 32, 248, 176, 44, 41, 4, 250, 16, 252, 77, 44, 41, 4, 250, 44, 252, - 76, 44, 41, 4, 250, 56, 252, 124, 44, 41, 4, 250, 20, 252, 125, 44, 41, - 4, 250, 48, 252, 141, 44, 41, 4, 250, 46, 252, 207, 44, 41, 4, 250, 62, - 249, 8, 44, 41, 4, 250, 64, 111, 44, 41, 12, 244, 88, 44, 41, 12, 244, - 89, 44, 41, 12, 244, 90, 44, 41, 12, 244, 91, 44, 41, 12, 244, 92, 44, - 41, 12, 244, 93, 44, 41, 12, 244, 94, 44, 41, 12, 244, 95, 44, 41, 12, - 244, 96, 44, 41, 12, 244, 97, 44, 41, 12, 244, 98, 44, 41, 12, 244, 99, - 44, 41, 12, 244, 100, 44, 41, 12, 244, 101, 44, 41, 78, 250, 65, 248, - 131, 44, 41, 78, 250, 66, 240, 253, 44, 41, 78, 250, 67, 243, 164, 44, - 41, 78, 250, 68, 241, 98, 44, 41, 78, 244, 102, 246, 63, 44, 41, 78, 244, - 103, 236, 106, 44, 41, 78, 244, 104, 249, 58, 44, 41, 78, 244, 105, 249, - 151, 44, 41, 78, 244, 106, 236, 102, 44, 41, 78, 244, 107, 237, 172, 44, - 41, 78, 244, 108, 252, 187, 44, 41, 78, 244, 109, 244, 225, 44, 41, 78, - 244, 110, 248, 202, 44, 41, 78, 244, 111, 244, 231, 44, 41, 78, 250, 69, - 240, 153, 44, 41, 78, 250, 70, 239, 4, 44, 41, 78, 250, 71, 242, 40, 44, - 41, 78, 250, 72, 242, 123, 44, 41, 78, 250, 73, 237, 99, 44, 41, 236, - 184, 250, 74, 246, 6, 44, 41, 236, 184, 250, 75, 239, 104, 44, 41, 78, - 250, 76, 249, 127, 44, 41, 78, 250, 77, 243, 133, 44, 41, 78, 244, 112, - 44, 41, 236, 184, 250, 78, 241, 13, 44, 41, 236, 184, 250, 79, 246, 64, - 44, 41, 78, 250, 80, 239, 14, 44, 41, 78, 250, 81, 243, 96, 44, 41, 78, - 244, 113, 44, 41, 78, 250, 82, 244, 53, 44, 41, 78, 244, 114, 44, 41, 78, - 244, 115, 44, 41, 78, 250, 83, 243, 8, 44, 41, 78, 244, 116, 44, 41, 78, - 244, 117, 44, 41, 78, 244, 118, 44, 41, 236, 184, 250, 84, 242, 163, 44, - 41, 78, 244, 120, 44, 41, 78, 244, 121, 44, 41, 78, 250, 85, 240, 132, - 44, 41, 78, 244, 122, 44, 41, 78, 244, 123, 44, 41, 78, 250, 86, 237, - 164, 44, 41, 78, 250, 87, 238, 248, 44, 41, 78, 244, 124, 44, 41, 78, - 244, 125, 44, 41, 78, 244, 126, 44, 41, 78, 244, 127, 44, 41, 78, 244, - 128, 44, 41, 78, 244, 129, 44, 41, 78, 244, 130, 44, 41, 78, 244, 131, - 44, 41, 78, 244, 132, 44, 41, 78, 250, 88, 241, 248, 44, 41, 78, 244, - 133, 44, 41, 78, 250, 89, 244, 37, 44, 41, 78, 244, 134, 44, 41, 78, 244, - 135, 44, 41, 78, 244, 136, 44, 41, 78, 244, 137, 44, 41, 78, 244, 138, - 44, 41, 78, 244, 139, 44, 41, 78, 244, 140, 44, 41, 78, 244, 141, 44, 41, - 78, 244, 142, 44, 41, 78, 244, 143, 44, 41, 78, 244, 144, 44, 41, 78, - 250, 90, 239, 90, 44, 41, 78, 250, 91, 234, 190, 44, 41, 78, 250, 92, - 237, 73, 44, 41, 78, 250, 93, 240, 236, 44, 41, 78, 250, 94, 56, 44, 41, - 78, 244, 171, 44, 41, 78, 250, 95, 242, 137, 44, 41, 78, 244, 172, 44, - 41, 78, 244, 173, 44, 41, 78, 250, 96, 239, 248, 236, 252, 44, 41, 78, - 250, 97, 236, 252, 44, 41, 78, 250, 98, 239, 22, 241, 116, 44, 41, 78, - 250, 99, 242, 184, 44, 41, 78, 244, 174, 44, 41, 78, 244, 175, 44, 41, - 236, 184, 250, 100, 241, 85, 44, 41, 78, 244, 176, 44, 41, 78, 244, 177, - 44, 41, 78, 244, 179, 44, 41, 78, 244, 180, 44, 41, 78, 244, 181, 44, 41, - 78, 250, 101, 245, 35, 44, 41, 78, 244, 182, 44, 41, 78, 244, 183, 44, - 41, 78, 244, 184, 44, 41, 78, 244, 185, 44, 41, 78, 244, 186, 44, 41, 78, - 240, 6, 244, 119, 44, 41, 78, 240, 6, 244, 145, 44, 41, 78, 240, 6, 244, - 146, 44, 41, 78, 240, 6, 244, 147, 44, 41, 78, 240, 6, 244, 148, 44, 41, - 78, 240, 6, 244, 149, 44, 41, 78, 240, 6, 244, 150, 44, 41, 78, 240, 6, - 244, 151, 44, 41, 78, 240, 6, 244, 152, 44, 41, 78, 240, 6, 244, 153, 44, - 41, 78, 240, 6, 244, 154, 44, 41, 78, 240, 6, 244, 155, 44, 41, 78, 240, - 6, 244, 156, 44, 41, 78, 240, 6, 244, 157, 44, 41, 78, 240, 6, 244, 158, - 44, 41, 78, 240, 6, 244, 159, 44, 41, 78, 240, 6, 244, 160, 44, 41, 78, - 240, 6, 244, 161, 44, 41, 78, 240, 6, 244, 162, 44, 41, 78, 240, 6, 244, - 163, 44, 41, 78, 240, 6, 244, 164, 44, 41, 78, 240, 6, 244, 165, 44, 41, - 78, 240, 6, 244, 166, 44, 41, 78, 240, 6, 244, 167, 44, 41, 78, 240, 6, - 244, 168, 44, 41, 78, 240, 6, 244, 169, 44, 41, 78, 240, 6, 244, 170, 44, - 41, 78, 240, 6, 244, 178, 44, 41, 78, 240, 6, 244, 187, 167, 248, 143, - 235, 95, 242, 224, 167, 248, 143, 235, 95, 248, 40, 167, 243, 53, 69, - 167, 61, 127, 167, 61, 111, 167, 61, 166, 167, 61, 177, 167, 61, 176, - 167, 61, 187, 167, 61, 203, 167, 61, 195, 167, 61, 202, 167, 61, 248, 53, - 167, 61, 238, 77, 167, 61, 238, 101, 167, 61, 240, 136, 167, 61, 240, 50, - 167, 61, 240, 234, 167, 61, 237, 38, 167, 61, 238, 182, 167, 61, 238, - 147, 167, 61, 253, 125, 236, 149, 167, 61, 171, 236, 149, 167, 61, 204, - 236, 149, 167, 61, 248, 58, 236, 149, 167, 61, 248, 48, 236, 149, 167, - 61, 254, 31, 236, 149, 167, 61, 243, 31, 236, 149, 167, 61, 242, 254, - 236, 149, 167, 61, 248, 173, 236, 149, 167, 61, 253, 125, 235, 49, 167, - 61, 171, 235, 49, 167, 61, 204, 235, 49, 167, 61, 248, 58, 235, 49, 167, - 61, 248, 48, 235, 49, 167, 61, 254, 31, 235, 49, 167, 61, 243, 31, 235, - 49, 167, 61, 242, 254, 235, 49, 167, 61, 248, 173, 235, 49, 167, 61, 253, - 219, 235, 49, 167, 61, 240, 48, 235, 49, 167, 61, 240, 53, 235, 49, 167, - 61, 243, 6, 235, 49, 167, 61, 243, 18, 235, 49, 167, 61, 247, 90, 235, - 49, 167, 61, 239, 190, 235, 49, 167, 61, 241, 92, 235, 49, 167, 61, 242, - 12, 235, 49, 167, 240, 106, 248, 196, 247, 183, 167, 240, 106, 243, 41, - 236, 188, 167, 240, 106, 240, 87, 236, 188, 167, 240, 106, 243, 129, 236, - 188, 167, 240, 106, 240, 137, 236, 188, 167, 254, 157, 238, 119, 243, 41, - 236, 188, 167, 241, 218, 238, 119, 243, 41, 236, 188, 167, 238, 119, 240, - 87, 236, 188, 167, 238, 119, 243, 129, 236, 188, 17, 180, 242, 227, 253, - 125, 237, 33, 17, 180, 242, 227, 253, 125, 243, 7, 17, 180, 242, 227, - 253, 125, 237, 141, 17, 180, 242, 227, 176, 17, 180, 242, 227, 240, 50, - 17, 180, 242, 227, 248, 48, 236, 149, 17, 180, 242, 227, 248, 48, 235, - 49, 17, 180, 242, 227, 243, 18, 235, 49, 17, 180, 242, 227, 248, 48, 236, - 192, 17, 180, 242, 227, 253, 219, 236, 192, 17, 180, 242, 227, 243, 18, - 236, 192, 17, 180, 242, 227, 253, 125, 238, 92, 236, 192, 17, 180, 242, - 227, 248, 48, 238, 92, 236, 192, 17, 180, 242, 227, 253, 125, 236, 193, - 236, 192, 17, 180, 242, 227, 248, 48, 236, 193, 236, 192, 17, 180, 242, - 227, 248, 48, 236, 187, 17, 180, 242, 227, 253, 219, 236, 187, 17, 180, - 242, 227, 243, 18, 236, 187, 17, 180, 242, 227, 253, 125, 238, 92, 236, - 187, 17, 180, 242, 227, 248, 48, 238, 92, 236, 187, 17, 180, 242, 227, - 253, 125, 236, 193, 236, 187, 17, 180, 242, 227, 253, 219, 236, 193, 236, - 187, 17, 180, 242, 227, 243, 18, 236, 193, 236, 187, 17, 180, 242, 227, - 253, 219, 243, 107, 17, 180, 239, 91, 253, 125, 236, 76, 17, 180, 236, - 179, 127, 17, 180, 234, 38, 127, 17, 180, 234, 37, 111, 17, 180, 236, - 179, 111, 17, 180, 237, 100, 171, 235, 121, 17, 180, 234, 37, 171, 235, - 121, 17, 180, 234, 19, 176, 17, 180, 234, 19, 248, 53, 17, 180, 234, 19, - 253, 219, 235, 96, 13, 17, 180, 234, 38, 248, 53, 17, 180, 236, 60, 248, - 53, 17, 180, 236, 179, 248, 53, 17, 180, 236, 179, 238, 101, 17, 180, - 234, 19, 240, 50, 17, 180, 234, 19, 243, 18, 235, 96, 13, 17, 180, 234, - 38, 240, 50, 17, 180, 236, 179, 240, 50, 17, 180, 236, 179, 253, 125, - 236, 149, 17, 180, 236, 179, 204, 236, 149, 17, 180, 234, 37, 248, 48, - 236, 149, 17, 180, 234, 19, 248, 48, 236, 149, 17, 180, 236, 179, 248, - 48, 236, 149, 17, 180, 235, 186, 248, 48, 236, 149, 17, 180, 241, 254, - 248, 48, 236, 149, 17, 180, 236, 179, 253, 125, 235, 49, 17, 180, 236, - 179, 248, 48, 235, 49, 17, 180, 239, 40, 248, 48, 243, 107, 17, 180, 238, - 16, 243, 18, 243, 107, 17, 253, 125, 137, 52, 17, 253, 125, 137, 21, 235, - 96, 13, 17, 171, 242, 149, 52, 17, 204, 236, 236, 52, 17, 249, 206, 52, - 17, 242, 140, 52, 17, 238, 180, 52, 17, 252, 57, 52, 17, 171, 243, 68, - 52, 17, 204, 243, 68, 52, 17, 248, 58, 243, 68, 52, 17, 248, 48, 243, 68, - 52, 17, 237, 209, 52, 17, 239, 111, 248, 196, 52, 17, 246, 52, 52, 17, - 242, 44, 52, 17, 242, 188, 52, 17, 241, 19, 52, 17, 241, 17, 52, 17, 241, - 141, 52, 17, 238, 33, 248, 196, 52, 17, 248, 145, 52, 76, 24, 1, 67, 76, - 24, 1, 253, 242, 76, 24, 1, 253, 172, 76, 24, 1, 253, 200, 76, 24, 1, 72, - 76, 24, 1, 254, 12, 76, 24, 1, 253, 228, 76, 24, 1, 253, 168, 76, 24, 1, - 248, 111, 76, 24, 1, 71, 76, 24, 1, 201, 76, 24, 1, 254, 3, 76, 24, 1, - 254, 22, 76, 24, 1, 253, 202, 76, 24, 1, 248, 93, 76, 24, 1, 73, 76, 24, - 1, 253, 175, 76, 24, 1, 248, 118, 76, 24, 1, 253, 203, 76, 24, 1, 254, 4, - 76, 24, 1, 254, 23, 76, 24, 1, 253, 195, 76, 24, 1, 79, 76, 24, 1, 250, - 223, 76, 24, 1, 249, 136, 76, 24, 1, 249, 94, 76, 24, 1, 254, 21, 76, 24, - 1, 250, 229, 76, 24, 1, 248, 88, 76, 24, 1, 253, 142, 76, 24, 1, 253, - 148, 76, 24, 178, 127, 76, 24, 178, 176, 76, 24, 178, 248, 53, 76, 24, - 178, 240, 50, 240, 8, 1, 244, 71, 240, 8, 1, 237, 70, 240, 8, 1, 245, - 120, 240, 8, 1, 245, 32, 240, 8, 1, 238, 240, 240, 8, 1, 236, 83, 240, 8, - 1, 245, 233, 240, 8, 1, 245, 139, 240, 8, 1, 239, 221, 240, 8, 1, 250, - 222, 240, 8, 1, 241, 206, 240, 8, 1, 241, 211, 240, 8, 1, 241, 226, 240, - 8, 1, 239, 142, 240, 8, 1, 251, 113, 240, 8, 1, 247, 184, 240, 8, 1, 236, - 68, 240, 8, 1, 238, 147, 240, 8, 1, 242, 75, 240, 8, 1, 242, 98, 240, 8, - 1, 242, 144, 240, 8, 1, 242, 185, 240, 8, 1, 241, 102, 240, 8, 1, 241, - 179, 240, 8, 1, 240, 190, 240, 8, 1, 242, 43, 240, 8, 1, 248, 173, 236, - 149, 236, 147, 1, 244, 78, 236, 147, 1, 242, 242, 236, 147, 1, 241, 122, - 236, 147, 1, 248, 61, 236, 147, 1, 240, 28, 236, 147, 1, 253, 184, 236, - 147, 1, 253, 177, 236, 147, 1, 242, 251, 236, 147, 1, 245, 201, 236, 147, - 1, 249, 176, 236, 147, 1, 248, 193, 236, 147, 1, 248, 116, 236, 147, 1, - 243, 33, 236, 147, 1, 240, 33, 236, 147, 1, 248, 166, 236, 147, 1, 245, - 64, 236, 147, 1, 248, 132, 236, 147, 1, 254, 18, 236, 147, 1, 242, 95, - 236, 147, 1, 248, 105, 236, 147, 1, 253, 239, 236, 147, 1, 247, 61, 236, - 147, 1, 247, 15, 236, 147, 1, 242, 76, 236, 147, 1, 239, 219, 236, 147, - 1, 240, 180, 236, 147, 1, 87, 236, 147, 1, 71, 236, 147, 1, 79, 236, 147, - 1, 248, 251, 236, 147, 248, 143, 236, 213, 76, 184, 21, 67, 76, 184, 21, - 71, 76, 184, 21, 79, 76, 184, 21, 201, 76, 184, 21, 253, 203, 76, 184, - 21, 253, 139, 76, 184, 21, 253, 235, 76, 184, 21, 253, 253, 76, 184, 21, - 253, 152, 76, 184, 21, 253, 146, 76, 184, 21, 254, 7, 76, 184, 21, 253, - 126, 76, 184, 21, 253, 196, 76, 184, 21, 253, 133, 76, 184, 21, 253, 201, - 76, 184, 21, 253, 232, 76, 184, 21, 248, 55, 76, 184, 21, 253, 129, 76, - 184, 21, 253, 141, 76, 184, 21, 253, 179, 76, 184, 21, 253, 131, 76, 184, - 21, 253, 150, 76, 184, 21, 222, 76, 184, 21, 253, 180, 76, 184, 21, 253, - 154, 76, 184, 21, 216, 76, 184, 21, 253, 171, 76, 184, 21, 254, 48, 76, - 184, 21, 253, 130, 76, 184, 21, 253, 185, 76, 184, 21, 253, 134, 76, 184, - 21, 253, 132, 76, 184, 21, 253, 163, 76, 184, 21, 248, 46, 76, 184, 21, - 248, 66, 76, 184, 21, 219, 76, 184, 21, 233, 118, 76, 184, 21, 231, 117, - 76, 184, 21, 231, 118, 76, 184, 21, 232, 66, 76, 184, 21, 234, 107, 76, - 184, 21, 232, 126, 76, 184, 21, 244, 189, 76, 184, 21, 237, 81, 76, 184, - 248, 143, 236, 213, 76, 184, 61, 127, 76, 184, 61, 111, 76, 184, 61, 248, - 53, 76, 184, 61, 238, 77, 76, 184, 61, 236, 149, 121, 5, 1, 183, 71, 121, - 5, 1, 183, 72, 121, 5, 1, 183, 67, 121, 5, 1, 183, 254, 0, 121, 5, 1, - 183, 73, 121, 5, 1, 183, 253, 156, 121, 5, 1, 242, 215, 71, 121, 5, 1, - 242, 215, 72, 121, 5, 1, 242, 215, 67, 121, 5, 1, 242, 215, 254, 0, 121, - 5, 1, 242, 215, 73, 121, 5, 1, 242, 215, 253, 156, 121, 5, 1, 254, 33, - 121, 5, 1, 254, 121, 121, 5, 1, 254, 14, 121, 5, 1, 248, 192, 121, 5, 1, - 192, 121, 5, 1, 248, 180, 121, 5, 1, 248, 197, 121, 5, 1, 248, 255, 121, - 5, 1, 248, 149, 121, 5, 1, 243, 54, 121, 5, 1, 248, 161, 121, 5, 1, 249, - 92, 121, 5, 1, 249, 67, 121, 5, 1, 254, 21, 121, 5, 1, 249, 10, 121, 5, - 1, 248, 109, 121, 5, 1, 243, 77, 121, 5, 1, 254, 23, 121, 5, 1, 248, 194, - 121, 5, 1, 248, 93, 121, 5, 1, 243, 139, 121, 5, 1, 254, 4, 121, 5, 1, - 254, 3, 121, 5, 1, 254, 22, 121, 5, 1, 253, 202, 121, 5, 1, 248, 108, - 121, 5, 1, 254, 42, 121, 5, 1, 254, 91, 121, 3, 1, 183, 71, 121, 3, 1, - 183, 72, 121, 3, 1, 183, 67, 121, 3, 1, 183, 254, 0, 121, 3, 1, 183, 73, - 121, 3, 1, 183, 253, 156, 121, 3, 1, 242, 215, 71, 121, 3, 1, 242, 215, - 72, 121, 3, 1, 242, 215, 67, 121, 3, 1, 242, 215, 254, 0, 121, 3, 1, 242, - 215, 73, 121, 3, 1, 242, 215, 253, 156, 121, 3, 1, 254, 33, 121, 3, 1, - 254, 121, 121, 3, 1, 254, 14, 121, 3, 1, 248, 192, 121, 3, 1, 192, 121, - 3, 1, 248, 180, 121, 3, 1, 248, 197, 121, 3, 1, 248, 255, 121, 3, 1, 248, - 149, 121, 3, 1, 243, 54, 121, 3, 1, 248, 161, 121, 3, 1, 249, 92, 121, 3, - 1, 249, 67, 121, 3, 1, 254, 21, 121, 3, 1, 249, 10, 121, 3, 1, 248, 109, - 121, 3, 1, 243, 77, 121, 3, 1, 254, 23, 121, 3, 1, 248, 194, 121, 3, 1, - 248, 93, 121, 3, 1, 243, 139, 121, 3, 1, 254, 4, 121, 3, 1, 254, 3, 121, - 3, 1, 254, 22, 121, 3, 1, 253, 202, 121, 3, 1, 248, 108, 121, 3, 1, 254, - 42, 121, 3, 1, 254, 91, 207, 1, 246, 240, 207, 1, 249, 184, 207, 1, 246, - 13, 207, 1, 249, 61, 207, 1, 242, 147, 207, 1, 253, 186, 207, 1, 247, - 127, 207, 1, 239, 25, 207, 1, 253, 77, 207, 1, 245, 204, 207, 1, 250, - 121, 207, 1, 245, 58, 207, 1, 251, 6, 207, 1, 253, 19, 207, 1, 247, 144, - 207, 1, 253, 110, 207, 1, 237, 23, 207, 1, 241, 189, 207, 1, 253, 35, - 207, 1, 241, 144, 207, 1, 246, 53, 207, 1, 246, 86, 207, 1, 254, 174, - 207, 1, 250, 221, 207, 1, 249, 241, 207, 1, 249, 234, 207, 1, 254, 9, - 207, 1, 244, 53, 207, 1, 248, 235, 207, 1, 254, 0, 207, 1, 247, 33, 207, - 1, 248, 132, 207, 1, 248, 207, 207, 1, 249, 235, 207, 1, 249, 84, 207, 1, - 253, 176, 207, 1, 252, 55, 207, 1, 246, 234, 207, 1, 249, 127, 207, 1, - 249, 244, 207, 1, 249, 240, 207, 1, 253, 227, 207, 1, 249, 236, 207, 1, - 250, 228, 207, 1, 241, 18, 207, 1, 248, 206, 207, 1, 251, 100, 207, 1, - 253, 78, 238, 50, 1, 243, 3, 238, 50, 1, 253, 141, 238, 50, 1, 253, 126, - 238, 50, 1, 253, 146, 238, 50, 1, 253, 253, 238, 50, 1, 248, 61, 238, 50, - 1, 245, 60, 238, 50, 1, 253, 130, 238, 50, 1, 253, 132, 238, 50, 1, 242, - 106, 238, 50, 1, 248, 76, 238, 50, 1, 244, 244, 238, 50, 1, 253, 139, - 238, 50, 1, 253, 179, 238, 50, 1, 247, 4, 238, 50, 1, 246, 3, 238, 50, 1, - 246, 34, 238, 50, 1, 246, 84, 238, 50, 1, 246, 197, 238, 50, 1, 248, 142, - 238, 50, 1, 219, 238, 50, 1, 216, 238, 50, 1, 67, 238, 50, 1, 72, 238, - 50, 1, 71, 238, 50, 1, 73, 238, 50, 1, 79, 238, 50, 1, 253, 140, 238, 50, - 1, 253, 164, 238, 50, 1, 253, 156, 238, 50, 26, 242, 217, 238, 50, 26, - 127, 238, 50, 26, 111, 238, 50, 26, 166, 238, 50, 26, 177, 238, 50, 26, - 176, 238, 50, 26, 187, 238, 50, 26, 203, 238, 50, 26, 195, 238, 50, 26, - 202, 172, 4, 67, 172, 4, 72, 172, 4, 71, 172, 4, 73, 172, 4, 79, 172, 4, - 253, 146, 172, 4, 253, 248, 172, 4, 201, 172, 4, 253, 172, 172, 4, 253, - 215, 172, 4, 253, 190, 172, 4, 253, 203, 172, 4, 253, 134, 172, 4, 253, - 250, 172, 4, 253, 251, 172, 4, 253, 216, 172, 4, 254, 8, 172, 4, 222, - 172, 4, 253, 206, 172, 4, 253, 180, 172, 4, 253, 181, 172, 4, 253, 154, - 172, 4, 253, 131, 172, 4, 253, 197, 172, 4, 253, 166, 172, 4, 253, 173, - 172, 4, 253, 150, 172, 4, 253, 129, 172, 4, 253, 175, 172, 4, 253, 147, - 172, 4, 253, 208, 172, 4, 253, 239, 172, 4, 253, 130, 172, 4, 253, 194, - 172, 4, 253, 209, 172, 4, 253, 160, 172, 4, 253, 185, 172, 4, 253, 132, - 172, 4, 253, 210, 172, 4, 253, 198, 172, 4, 253, 186, 172, 4, 253, 211, - 172, 4, 253, 126, 172, 4, 253, 195, 172, 4, 253, 212, 172, 4, 87, 172, 4, - 253, 196, 172, 4, 253, 138, 172, 4, 253, 170, 172, 4, 253, 187, 172, 4, - 253, 177, 172, 4, 253, 253, 172, 4, 254, 132, 172, 4, 253, 163, 172, 4, - 253, 222, 151, 1, 67, 151, 33, 21, 71, 151, 33, 21, 79, 151, 33, 21, 165, - 144, 151, 33, 21, 72, 151, 33, 21, 73, 151, 33, 240, 51, 69, 151, 21, 45, - 248, 51, 46, 151, 21, 235, 61, 151, 21, 236, 173, 151, 1, 201, 151, 1, - 248, 61, 151, 1, 253, 139, 151, 1, 248, 77, 151, 1, 253, 152, 151, 1, - 248, 57, 151, 1, 253, 146, 151, 1, 248, 78, 151, 1, 248, 71, 151, 1, 242, - 247, 151, 1, 248, 75, 151, 1, 242, 249, 151, 1, 248, 82, 151, 1, 253, - 126, 151, 1, 248, 55, 151, 1, 253, 133, 151, 1, 248, 76, 151, 1, 253, - 131, 151, 1, 253, 129, 151, 1, 248, 65, 151, 1, 253, 141, 151, 1, 248, - 81, 151, 1, 222, 151, 1, 216, 151, 1, 253, 130, 151, 1, 253, 134, 151, 1, - 253, 171, 151, 1, 248, 46, 151, 1, 248, 66, 151, 1, 253, 132, 151, 1, - 253, 163, 151, 1, 219, 151, 1, 249, 97, 151, 1, 242, 161, 151, 21, 253, - 144, 48, 151, 21, 241, 44, 151, 21, 53, 46, 151, 238, 72, 151, 26, 127, - 151, 26, 111, 151, 26, 166, 151, 26, 177, 151, 61, 248, 53, 151, 61, 238, - 77, 151, 61, 253, 125, 236, 149, 151, 61, 253, 125, 235, 49, 151, 233, - 51, 248, 40, 151, 233, 51, 3, 238, 51, 151, 233, 51, 238, 51, 151, 233, - 51, 237, 95, 125, 151, 233, 51, 236, 57, 151, 233, 51, 241, 220, 151, - 233, 51, 240, 111, 151, 233, 51, 45, 240, 111, 151, 233, 51, 241, 217, - 37, 20, 12, 240, 29, 37, 20, 12, 239, 37, 37, 20, 12, 232, 71, 37, 20, - 12, 243, 112, 232, 83, 37, 20, 12, 243, 112, 240, 73, 37, 20, 12, 240, - 152, 232, 83, 37, 20, 12, 240, 152, 240, 73, 37, 20, 12, 236, 44, 37, 20, - 12, 235, 30, 37, 20, 12, 232, 191, 37, 20, 12, 235, 43, 37, 20, 12, 236, - 142, 240, 73, 37, 20, 12, 236, 48, 37, 20, 12, 243, 142, 232, 83, 37, 20, - 12, 254, 92, 232, 83, 37, 20, 12, 238, 223, 37, 20, 12, 234, 213, 37, 20, - 12, 233, 116, 37, 20, 12, 234, 45, 240, 73, 37, 20, 12, 238, 20, 37, 20, - 12, 242, 150, 37, 20, 12, 240, 205, 235, 55, 37, 20, 12, 240, 98, 235, - 55, 37, 20, 12, 239, 168, 37, 20, 12, 235, 187, 37, 20, 12, 242, 175, 37, - 20, 12, 249, 85, 235, 55, 37, 20, 12, 238, 118, 235, 55, 37, 20, 12, 235, - 90, 235, 55, 37, 20, 12, 236, 96, 37, 20, 12, 236, 71, 37, 20, 12, 239, - 203, 235, 164, 37, 20, 12, 242, 45, 235, 55, 37, 20, 12, 239, 239, 235, - 55, 37, 20, 12, 236, 246, 235, 55, 37, 20, 12, 235, 165, 37, 20, 12, 238, - 195, 37, 20, 12, 242, 82, 37, 20, 12, 240, 207, 235, 55, 37, 20, 12, 238, - 29, 37, 20, 12, 231, 116, 37, 20, 12, 239, 188, 37, 20, 12, 238, 153, - 235, 55, 37, 20, 12, 238, 153, 251, 225, 238, 15, 37, 20, 12, 235, 132, - 235, 55, 37, 20, 12, 242, 146, 37, 20, 12, 241, 214, 37, 20, 12, 250, - 217, 37, 20, 12, 247, 158, 37, 20, 12, 238, 25, 37, 20, 12, 234, 215, 37, - 20, 12, 243, 142, 254, 92, 248, 64, 37, 20, 12, 240, 18, 235, 55, 37, 20, - 12, 234, 203, 37, 20, 12, 236, 242, 235, 55, 37, 20, 12, 241, 194, 236, - 132, 37, 20, 12, 236, 73, 37, 20, 12, 234, 241, 37, 20, 12, 236, 46, 37, - 20, 12, 236, 253, 235, 55, 37, 20, 12, 237, 246, 37, 20, 12, 233, 92, - 235, 55, 37, 20, 12, 233, 93, 235, 55, 37, 20, 12, 237, 177, 37, 20, 12, - 243, 231, 37, 20, 12, 237, 234, 37, 20, 12, 237, 190, 243, 84, 37, 20, - 12, 236, 242, 243, 84, 37, 20, 12, 232, 59, 37, 20, 12, 231, 139, 37, 20, - 12, 249, 85, 248, 64, 37, 20, 12, 240, 205, 248, 64, 37, 20, 12, 243, - 112, 248, 64, 37, 20, 12, 237, 235, 37, 20, 12, 236, 47, 37, 20, 12, 229, - 51, 37, 20, 12, 229, 47, 37, 20, 12, 237, 233, 248, 64, 37, 20, 12, 235, - 90, 253, 238, 248, 106, 37, 20, 12, 238, 118, 253, 238, 248, 106, 37, 20, - 12, 239, 252, 37, 20, 12, 234, 45, 248, 64, 37, 20, 12, 234, 44, 236, - 126, 248, 64, 37, 20, 12, 238, 49, 37, 20, 12, 229, 48, 37, 20, 12, 237, - 148, 37, 20, 12, 237, 86, 37, 20, 12, 241, 243, 245, 231, 37, 20, 12, - 240, 152, 248, 64, 37, 20, 12, 240, 207, 248, 64, 37, 20, 12, 236, 82, - 248, 64, 37, 20, 12, 239, 151, 37, 20, 12, 233, 114, 37, 20, 12, 237, - 196, 37, 20, 12, 233, 93, 248, 64, 37, 20, 12, 233, 92, 248, 64, 37, 20, - 12, 240, 172, 232, 190, 37, 20, 12, 237, 193, 37, 20, 12, 227, 12, 37, - 20, 12, 236, 242, 248, 64, 37, 20, 12, 233, 194, 37, 20, 12, 238, 153, - 248, 64, 37, 20, 12, 242, 138, 37, 20, 12, 236, 253, 248, 64, 37, 20, 12, - 236, 13, 37, 20, 12, 242, 100, 248, 64, 37, 20, 12, 247, 204, 238, 195, - 37, 20, 12, 227, 8, 37, 20, 12, 229, 53, 37, 20, 12, 231, 32, 37, 20, 12, - 226, 242, 37, 20, 12, 226, 233, 37, 20, 12, 231, 33, 37, 20, 12, 229, 54, - 37, 20, 12, 229, 66, 37, 20, 12, 231, 44, 37, 20, 12, 240, 172, 231, 44, - 37, 20, 12, 235, 132, 248, 64, 37, 20, 12, 233, 109, 250, 230, 37, 20, - 12, 233, 109, 250, 232, 37, 20, 12, 247, 143, 238, 161, 37, 20, 12, 252, - 218, 254, 65, 237, 63, 37, 20, 12, 234, 211, 37, 20, 12, 234, 186, 37, - 20, 12, 249, 208, 243, 20, 37, 20, 12, 249, 208, 248, 106, 37, 20, 12, - 238, 14, 37, 20, 12, 240, 194, 248, 106, 37, 20, 12, 245, 67, 235, 55, - 37, 20, 12, 238, 142, 235, 55, 37, 20, 12, 238, 142, 243, 84, 37, 20, 12, - 238, 142, 248, 64, 37, 20, 12, 236, 246, 248, 64, 37, 20, 12, 244, 83, - 37, 20, 12, 240, 73, 37, 20, 12, 239, 228, 37, 20, 12, 236, 128, 37, 20, - 12, 236, 229, 37, 20, 12, 240, 100, 250, 225, 236, 254, 37, 20, 12, 240, - 100, 254, 57, 236, 221, 37, 20, 12, 240, 100, 247, 159, 236, 221, 37, 20, - 12, 240, 100, 238, 24, 236, 221, 37, 20, 12, 240, 100, 239, 97, 236, 254, - 37, 20, 12, 240, 98, 253, 238, 248, 106, 37, 20, 12, 240, 98, 231, 92, - 235, 171, 37, 20, 12, 240, 98, 231, 92, 240, 168, 37, 20, 12, 235, 204, - 37, 20, 12, 236, 223, 231, 92, 236, 247, 243, 20, 37, 20, 12, 236, 223, - 231, 92, 236, 247, 248, 106, 37, 20, 12, 236, 223, 231, 92, 240, 168, 37, - 20, 12, 235, 37, 37, 20, 12, 241, 14, 37, 20, 12, 233, 209, 37, 20, 12, - 237, 106, 37, 20, 12, 243, 13, 249, 139, 243, 143, 37, 20, 12, 243, 13, - 235, 170, 37, 20, 12, 243, 13, 243, 143, 37, 20, 12, 243, 13, 239, 135, - 37, 20, 12, 243, 13, 246, 66, 37, 20, 12, 243, 13, 240, 184, 37, 20, 12, - 243, 13, 234, 196, 37, 20, 12, 243, 13, 249, 139, 240, 184, 37, 20, 12, - 236, 162, 240, 211, 240, 35, 37, 20, 12, 236, 162, 249, 27, 240, 211, - 240, 35, 37, 20, 12, 236, 162, 237, 5, 240, 35, 37, 20, 12, 236, 162, - 249, 27, 237, 5, 240, 35, 37, 20, 12, 236, 162, 242, 157, 240, 35, 37, - 20, 12, 236, 162, 235, 36, 37, 20, 12, 236, 162, 236, 241, 240, 35, 37, - 20, 12, 236, 162, 236, 241, 238, 198, 240, 35, 37, 20, 12, 236, 162, 238, - 198, 240, 35, 37, 20, 12, 236, 162, 238, 209, 240, 35, 37, 20, 12, 241, - 181, 240, 243, 234, 58, 37, 20, 12, 234, 44, 240, 243, 234, 58, 37, 20, - 12, 235, 99, 233, 40, 37, 20, 12, 235, 99, 233, 87, 37, 20, 12, 235, 99, - 235, 119, 37, 20, 12, 236, 162, 247, 185, 240, 35, 37, 20, 12, 236, 162, - 234, 240, 240, 35, 37, 20, 12, 236, 162, 238, 209, 236, 241, 240, 35, 37, - 20, 12, 234, 57, 255, 98, 238, 161, 37, 20, 12, 234, 57, 255, 98, 237, - 110, 37, 20, 12, 239, 56, 254, 65, 240, 18, 249, 196, 37, 20, 12, 236, - 38, 37, 20, 12, 233, 210, 37, 20, 12, 240, 18, 237, 66, 237, 103, 241, - 178, 37, 20, 12, 240, 18, 235, 72, 253, 129, 37, 20, 12, 240, 18, 235, - 72, 243, 231, 37, 20, 12, 240, 18, 251, 254, 240, 35, 37, 20, 12, 240, - 18, 235, 72, 253, 201, 37, 20, 12, 240, 18, 238, 150, 237, 107, 253, 201, - 37, 20, 12, 240, 18, 235, 72, 253, 172, 37, 20, 12, 240, 18, 235, 72, - 253, 222, 37, 20, 12, 240, 18, 235, 72, 255, 62, 243, 20, 37, 20, 12, - 240, 18, 235, 72, 255, 62, 248, 106, 37, 20, 12, 240, 18, 238, 199, 240, - 110, 235, 119, 37, 20, 12, 240, 18, 238, 199, 240, 110, 233, 87, 37, 20, - 12, 241, 105, 238, 150, 240, 110, 242, 174, 37, 20, 12, 240, 18, 238, - 150, 240, 110, 239, 212, 37, 20, 12, 240, 18, 239, 143, 37, 20, 12, 243, - 89, 242, 209, 37, 20, 12, 243, 89, 239, 109, 37, 20, 12, 243, 89, 239, - 200, 37, 20, 12, 240, 18, 220, 240, 90, 231, 55, 37, 20, 12, 240, 18, - 234, 184, 234, 91, 37, 20, 12, 240, 90, 232, 110, 37, 20, 12, 240, 72, - 232, 110, 37, 20, 12, 240, 72, 231, 55, 37, 20, 12, 240, 72, 248, 146, - 254, 57, 235, 68, 37, 20, 12, 240, 72, 233, 88, 238, 225, 235, 68, 37, - 20, 12, 240, 72, 235, 120, 255, 56, 235, 68, 37, 20, 12, 240, 72, 234, - 86, 249, 128, 235, 68, 37, 20, 12, 240, 90, 248, 146, 254, 57, 235, 68, - 37, 20, 12, 240, 90, 233, 88, 238, 225, 235, 68, 37, 20, 12, 240, 90, - 235, 120, 255, 56, 235, 68, 37, 20, 12, 240, 90, 234, 86, 249, 128, 235, - 68, 37, 20, 12, 240, 179, 239, 43, 37, 20, 12, 240, 179, 239, 250, 37, - 20, 12, 236, 212, 248, 146, 241, 242, 37, 20, 12, 236, 212, 248, 146, - 239, 133, 37, 20, 12, 236, 212, 240, 73, 37, 20, 12, 236, 212, 237, 47, - 37, 20, 12, 236, 186, 237, 47, 37, 20, 12, 236, 186, 238, 155, 237, 7, - 37, 20, 12, 236, 186, 238, 155, 235, 154, 37, 20, 12, 236, 186, 238, 155, - 233, 108, 37, 20, 12, 236, 186, 238, 250, 37, 20, 12, 236, 186, 240, 128, - 237, 7, 37, 20, 12, 236, 186, 240, 128, 235, 154, 37, 20, 12, 236, 186, - 240, 128, 233, 108, 37, 20, 12, 237, 108, 254, 167, 37, 20, 12, 235, 203, - 254, 10, 37, 20, 12, 238, 152, 37, 20, 12, 238, 90, 253, 129, 37, 20, 12, - 238, 90, 249, 196, 37, 20, 12, 238, 90, 253, 139, 37, 20, 12, 238, 90, - 253, 201, 37, 20, 12, 238, 90, 253, 172, 37, 20, 12, 238, 90, 253, 222, - 37, 20, 12, 238, 90, 253, 166, 37, 20, 12, 235, 90, 253, 238, 243, 225, - 37, 20, 12, 238, 118, 253, 238, 243, 225, 37, 20, 12, 235, 90, 253, 238, - 243, 20, 37, 20, 12, 238, 118, 253, 238, 243, 20, 37, 20, 12, 240, 194, - 243, 20, 37, 20, 12, 240, 98, 253, 238, 243, 20, 20, 12, 240, 12, 236, - 194, 20, 12, 45, 236, 194, 20, 12, 30, 236, 194, 20, 12, 238, 75, 30, - 236, 194, 20, 12, 240, 55, 236, 194, 20, 12, 242, 215, 236, 194, 20, 12, - 40, 240, 64, 52, 20, 12, 38, 240, 64, 52, 20, 12, 240, 64, 243, 5, 20, - 12, 253, 199, 240, 219, 20, 12, 255, 70, 244, 242, 20, 12, 240, 219, 20, - 12, 245, 25, 20, 12, 236, 237, 236, 21, 20, 12, 236, 237, 236, 22, 20, - 12, 236, 237, 236, 23, 20, 12, 237, 10, 20, 12, 239, 69, 46, 20, 12, 241, - 37, 69, 20, 12, 237, 82, 20, 12, 241, 35, 20, 12, 104, 20, 12, 237, 225, - 240, 89, 20, 12, 238, 35, 240, 89, 20, 12, 235, 34, 240, 89, 20, 12, 236, - 25, 240, 89, 20, 12, 236, 24, 240, 89, 20, 12, 238, 8, 240, 89, 20, 12, - 235, 2, 234, 55, 20, 12, 233, 204, 234, 55, 20, 12, 255, 104, 243, 37, - 20, 12, 255, 104, 248, 148, 240, 82, 243, 51, 20, 12, 255, 104, 248, 148, - 240, 82, 240, 108, 20, 12, 255, 105, 243, 37, 20, 12, 255, 112, 243, 37, - 20, 12, 255, 112, 248, 148, 240, 82, 243, 51, 20, 12, 255, 112, 248, 148, - 240, 82, 240, 108, 20, 12, 249, 57, 239, 26, 20, 12, 249, 57, 239, 27, - 20, 12, 45, 240, 223, 20, 12, 45, 243, 174, 20, 12, 248, 209, 253, 176, - 20, 12, 248, 209, 242, 236, 20, 12, 238, 146, 253, 176, 20, 12, 238, 146, - 242, 236, 20, 12, 243, 74, 253, 176, 20, 12, 243, 74, 242, 236, 20, 12, - 238, 80, 188, 240, 223, 20, 12, 238, 80, 188, 243, 174, 20, 12, 241, 66, - 244, 31, 20, 12, 254, 153, 244, 31, 20, 12, 240, 82, 243, 51, 20, 12, - 240, 82, 240, 108, 20, 12, 232, 107, 243, 51, 20, 12, 232, 107, 240, 108, - 20, 12, 246, 95, 242, 239, 20, 12, 244, 51, 242, 239, 20, 12, 137, 242, - 239, 20, 12, 238, 80, 242, 239, 20, 12, 240, 62, 242, 239, 20, 12, 235, - 108, 242, 239, 20, 12, 231, 112, 242, 239, 20, 12, 232, 109, 242, 239, - 20, 12, 253, 125, 238, 92, 231, 113, 242, 239, 20, 12, 255, 113, 235, 78, - 20, 12, 248, 49, 235, 78, 20, 12, 218, 255, 113, 235, 78, 20, 12, 31, - 236, 153, 240, 39, 20, 12, 31, 236, 153, 240, 0, 20, 12, 236, 152, 236, - 153, 88, 240, 39, 20, 12, 236, 152, 236, 153, 88, 240, 0, 20, 12, 236, - 152, 236, 153, 40, 240, 39, 20, 12, 236, 152, 236, 153, 40, 240, 0, 20, - 12, 236, 152, 236, 153, 38, 240, 39, 20, 12, 236, 152, 236, 153, 38, 240, - 0, 20, 12, 236, 152, 236, 153, 92, 240, 39, 20, 12, 236, 152, 236, 153, - 92, 240, 0, 20, 12, 236, 152, 236, 153, 88, 38, 240, 39, 20, 12, 236, - 152, 236, 153, 88, 38, 240, 0, 20, 12, 249, 113, 236, 153, 240, 39, 20, - 12, 249, 113, 236, 153, 240, 0, 20, 12, 231, 57, 236, 153, 92, 240, 39, - 20, 12, 231, 57, 236, 153, 92, 240, 0, 20, 12, 233, 56, 235, 78, 20, 12, - 253, 16, 235, 78, 20, 12, 236, 153, 240, 0, 20, 12, 252, 40, 235, 78, 20, - 12, 238, 172, 236, 153, 240, 39, 20, 12, 238, 172, 236, 153, 240, 0, 20, - 12, 239, 255, 20, 12, 244, 51, 243, 9, 20, 12, 137, 243, 9, 20, 12, 238, - 80, 243, 9, 20, 12, 240, 62, 243, 9, 20, 12, 235, 108, 243, 9, 20, 12, - 231, 112, 243, 9, 20, 12, 232, 109, 243, 9, 20, 12, 253, 125, 238, 92, - 231, 113, 243, 9, 20, 12, 50, 243, 46, 20, 12, 50, 233, 38, 243, 46, 20, - 12, 50, 234, 83, 20, 12, 50, 234, 84, 20, 12, 50, 234, 85, 20, 12, 236, - 225, 234, 83, 20, 12, 236, 225, 234, 84, 20, 12, 236, 225, 234, 85, 20, - 12, 50, 232, 117, 248, 40, 20, 12, 50, 239, 71, 20, 12, 50, 239, 72, 20, - 12, 50, 239, 73, 20, 12, 50, 239, 74, 20, 12, 50, 239, 75, 20, 12, 243, - 24, 243, 146, 20, 12, 253, 165, 243, 146, 20, 12, 243, 24, 248, 139, 20, - 12, 253, 165, 248, 139, 20, 12, 243, 24, 244, 19, 20, 12, 253, 165, 244, - 19, 20, 12, 243, 24, 238, 207, 20, 12, 253, 165, 238, 207, 20, 12, 50, - 238, 54, 20, 12, 50, 236, 105, 20, 12, 50, 239, 216, 20, 12, 50, 231, 81, - 20, 12, 50, 237, 201, 20, 12, 50, 227, 2, 20, 12, 50, 227, 11, 20, 12, - 50, 241, 221, 20, 12, 234, 46, 253, 176, 20, 12, 234, 46, 242, 236, 20, - 12, 50, 245, 71, 20, 12, 50, 252, 138, 20, 12, 50, 245, 90, 20, 12, 50, - 242, 117, 20, 12, 50, 244, 217, 20, 12, 50, 45, 238, 156, 20, 12, 50, - 240, 3, 238, 156, 20, 12, 232, 201, 20, 12, 239, 208, 20, 12, 255, 17, - 20, 12, 242, 61, 20, 12, 241, 237, 20, 12, 241, 115, 20, 12, 234, 106, - 20, 12, 232, 127, 20, 12, 243, 186, 249, 122, 240, 37, 20, 12, 243, 186, - 249, 122, 255, 51, 240, 37, 20, 12, 254, 250, 20, 12, 244, 41, 20, 12, - 236, 145, 244, 41, 20, 12, 249, 188, 240, 37, 20, 12, 249, 188, 253, 176, - 20, 12, 236, 172, 236, 111, 20, 12, 236, 172, 236, 112, 20, 12, 236, 172, - 236, 113, 20, 12, 236, 172, 236, 114, 20, 12, 236, 172, 236, 115, 20, 12, - 236, 172, 236, 116, 20, 12, 236, 172, 236, 117, 20, 12, 236, 172, 236, - 118, 20, 12, 236, 172, 236, 119, 20, 12, 236, 172, 235, 3, 20, 12, 236, - 172, 235, 4, 20, 12, 232, 168, 20, 12, 232, 186, 20, 12, 253, 165, 147, - 239, 204, 20, 12, 240, 112, 240, 37, 20, 12, 50, 92, 248, 198, 20, 12, - 50, 88, 248, 198, 20, 12, 50, 236, 34, 20, 12, 50, 252, 182, 234, 235, - 20, 12, 243, 114, 69, 20, 12, 243, 114, 88, 69, 20, 12, 137, 243, 114, - 69, 20, 12, 235, 125, 253, 176, 20, 12, 235, 125, 242, 236, 20, 12, 2, - 232, 165, 20, 12, 245, 34, 20, 12, 250, 181, 249, 26, 20, 12, 239, 131, - 20, 12, 241, 219, 20, 12, 239, 13, 20, 12, 234, 40, 240, 39, 20, 12, 234, - 40, 240, 0, 20, 12, 239, 138, 20, 12, 240, 200, 240, 0, 20, 12, 234, 41, - 240, 39, 20, 12, 234, 41, 240, 0, 20, 12, 249, 65, 240, 39, 20, 12, 249, - 65, 240, 0, 20, 12, 243, 217, 237, 29, 242, 239, 20, 12, 243, 217, 234, - 29, 242, 239, 20, 12, 241, 38, 242, 239, 20, 12, 234, 40, 242, 239, 20, - 12, 240, 200, 242, 239, 20, 12, 234, 41, 242, 239, 20, 12, 240, 65, 235, - 106, 253, 231, 234, 13, 235, 134, 20, 12, 240, 65, 235, 106, 253, 231, - 234, 13, 233, 85, 20, 12, 240, 65, 235, 106, 253, 231, 234, 13, 237, 29, - 231, 102, 20, 12, 240, 65, 233, 62, 253, 231, 234, 13, 235, 134, 20, 12, - 240, 65, 233, 62, 253, 231, 234, 13, 233, 85, 20, 12, 240, 65, 233, 62, - 253, 231, 234, 13, 234, 29, 231, 102, 20, 12, 240, 65, 233, 62, 253, 231, - 234, 13, 234, 29, 231, 126, 20, 12, 240, 65, 233, 62, 253, 231, 234, 13, - 234, 29, 231, 127, 20, 12, 241, 69, 20, 12, 235, 126, 255, 105, 243, 37, - 20, 12, 235, 126, 255, 112, 243, 37, 20, 12, 31, 217, 20, 12, 242, 178, - 20, 12, 237, 238, 20, 12, 239, 28, 20, 12, 234, 251, 20, 12, 235, 190, - 20, 12, 236, 129, 20, 12, 234, 237, 20, 12, 236, 77, 238, 185, 20, 12, - 236, 97, 238, 185, 20, 12, 238, 31, 234, 249, 20, 12, 254, 223, 233, 248, - 17, 242, 222, 126, 235, 146, 17, 242, 222, 126, 235, 147, 17, 242, 222, - 126, 236, 122, 17, 242, 222, 126, 235, 148, 17, 242, 222, 126, 235, 149, - 17, 242, 222, 126, 236, 123, 17, 242, 222, 126, 235, 150, 17, 242, 222, - 126, 235, 151, 17, 242, 222, 126, 236, 124, 17, 242, 222, 126, 235, 7, - 17, 242, 222, 126, 234, 67, 17, 242, 222, 126, 234, 68, 17, 242, 222, - 126, 234, 69, 17, 242, 222, 126, 234, 70, 17, 242, 222, 126, 235, 8, 17, - 242, 222, 126, 235, 9, 17, 242, 222, 126, 234, 71, 17, 242, 222, 126, - 234, 72, 17, 242, 222, 126, 234, 73, 17, 242, 222, 126, 235, 10, 17, 242, - 222, 126, 235, 11, 17, 242, 222, 126, 235, 12, 17, 242, 222, 126, 234, - 74, 17, 242, 222, 126, 234, 75, 17, 242, 222, 126, 234, 76, 17, 242, 222, - 126, 234, 77, 17, 242, 222, 126, 234, 78, 17, 242, 222, 126, 234, 79, 17, - 242, 222, 126, 234, 80, 17, 232, 69, 126, 235, 146, 17, 232, 69, 126, - 235, 147, 17, 232, 69, 126, 235, 148, 17, 232, 69, 126, 235, 149, 17, - 232, 69, 126, 235, 150, 17, 232, 69, 126, 235, 151, 17, 232, 69, 126, - 234, 67, 17, 232, 69, 126, 234, 68, 17, 232, 69, 126, 234, 69, 17, 232, - 69, 126, 234, 70, 17, 232, 69, 126, 234, 71, 17, 232, 69, 126, 234, 72, - 17, 232, 69, 126, 234, 73, 17, 232, 69, 126, 234, 74, 17, 232, 69, 126, - 234, 75, 17, 232, 69, 126, 235, 13, 17, 232, 69, 126, 235, 14, 17, 232, - 69, 126, 235, 15, 17, 232, 69, 126, 235, 16, 17, 232, 69, 126, 235, 17, - 17, 232, 69, 126, 235, 18, 17, 232, 69, 126, 235, 19, 17, 232, 69, 126, - 235, 20, 17, 232, 69, 126, 235, 21, 17, 232, 69, 126, 235, 22, 17, 232, - 69, 126, 235, 23, 17, 232, 69, 126, 235, 24, 17, 232, 69, 126, 235, 25, - 17, 232, 69, 126, 235, 26, 17, 232, 69, 126, 235, 27, 17, 232, 69, 126, - 235, 28, 17, 232, 69, 126, 235, 29, 17, 232, 69, 126, 234, 76, 17, 232, - 69, 126, 234, 77, 17, 232, 69, 126, 234, 78, 17, 232, 69, 126, 234, 79, - 17, 232, 69, 126, 234, 80, 50, 17, 20, 237, 49, 50, 17, 20, 234, 82, 50, - 17, 20, 234, 62, 17, 20, 239, 116, 236, 184, 28, 240, 49, 240, 56, 28, - 237, 174, 240, 49, 240, 56, 28, 245, 203, 240, 49, 240, 56, 28, 238, 181, - 238, 139, 240, 56, 28, 238, 181, 241, 169, 240, 56, 28, 240, 49, 120, 28, - 238, 129, 120, 28, 248, 37, 238, 51, 120, 28, 241, 244, 120, 28, 237, 72, - 120, 28, 238, 193, 240, 147, 120, 28, 232, 122, 120, 28, 238, 252, 120, - 28, 233, 73, 120, 28, 235, 182, 248, 235, 120, 28, 231, 123, 128, 233, - 136, 120, 28, 233, 137, 120, 28, 232, 67, 120, 28, 235, 127, 120, 28, - 232, 192, 120, 28, 240, 215, 120, 28, 237, 91, 120, 28, 238, 189, 244, - 188, 120, 28, 237, 51, 120, 28, 234, 54, 120, 28, 237, 55, 120, 28, 237, - 250, 120, 28, 233, 229, 120, 28, 245, 79, 120, 28, 251, 125, 120, 28, - 233, 127, 120, 28, 234, 185, 120, 28, 239, 54, 120, 28, 239, 21, 120, 28, - 231, 122, 120, 28, 16, 233, 230, 120, 28, 237, 230, 120, 28, 239, 115, - 120, 28, 234, 101, 120, 28, 237, 189, 120, 28, 234, 193, 120, 28, 236, - 109, 120, 28, 239, 169, 120, 28, 236, 28, 120, 28, 234, 248, 120, 28, - 254, 190, 128, 241, 246, 120, 28, 235, 141, 120, 28, 245, 125, 153, 243, - 224, 120, 28, 233, 196, 120, 28, 242, 135, 120, 28, 234, 197, 120, 28, - 232, 164, 120, 28, 237, 232, 120, 28, 239, 174, 120, 28, 239, 76, 120, - 28, 238, 40, 128, 238, 46, 120, 28, 234, 103, 120, 28, 237, 23, 120, 28, - 236, 16, 120, 28, 242, 171, 120, 28, 231, 125, 120, 28, 240, 23, 240, - 201, 120, 28, 232, 167, 120, 28, 235, 124, 253, 247, 120, 28, 237, 204, - 120, 28, 231, 115, 120, 28, 231, 65, 120, 28, 241, 88, 120, 28, 240, 252, - 120, 28, 238, 6, 120, 28, 241, 180, 120, 28, 234, 109, 120, 28, 234, 108, - 120, 28, 237, 109, 120, 28, 233, 199, 120, 28, 234, 253, 120, 28, 236, - 107, 120, 28, 236, 33, 120, 28, 233, 69, 120, 28, 237, 88, 120, 28, 237, - 154, 120, 28, 232, 114, 120, 28, 233, 125, 120, 28, 255, 34, 253, 145, - 242, 177, 120, 28, 231, 124, 120, 28, 234, 217, 120, 28, 234, 191, 10, - 16, 5, 67, 10, 16, 5, 217, 10, 16, 5, 255, 18, 10, 16, 5, 209, 10, 16, 5, - 72, 10, 16, 5, 255, 19, 10, 16, 5, 210, 10, 16, 5, 192, 10, 16, 5, 71, - 10, 16, 5, 221, 10, 16, 5, 255, 15, 10, 16, 5, 162, 10, 16, 5, 173, 10, - 16, 5, 197, 10, 16, 5, 73, 10, 16, 5, 223, 10, 16, 5, 255, 20, 10, 16, 5, - 144, 10, 16, 5, 193, 10, 16, 5, 214, 10, 16, 5, 79, 10, 16, 5, 179, 10, - 16, 5, 255, 16, 10, 16, 5, 206, 10, 16, 5, 255, 14, 10, 16, 5, 255, 17, - 10, 16, 3, 67, 10, 16, 3, 217, 10, 16, 3, 255, 18, 10, 16, 3, 209, 10, - 16, 3, 72, 10, 16, 3, 255, 19, 10, 16, 3, 210, 10, 16, 3, 192, 10, 16, 3, - 71, 10, 16, 3, 221, 10, 16, 3, 255, 15, 10, 16, 3, 162, 10, 16, 3, 173, - 10, 16, 3, 197, 10, 16, 3, 73, 10, 16, 3, 223, 10, 16, 3, 255, 20, 10, - 16, 3, 144, 10, 16, 3, 193, 10, 16, 3, 214, 10, 16, 3, 79, 10, 16, 3, - 179, 10, 16, 3, 255, 16, 10, 16, 3, 206, 10, 16, 3, 255, 14, 10, 16, 3, - 255, 17, 10, 24, 5, 67, 10, 24, 5, 217, 10, 24, 5, 255, 18, 10, 24, 5, - 209, 10, 24, 5, 72, 10, 24, 5, 255, 19, 10, 24, 5, 210, 10, 24, 5, 192, - 10, 24, 5, 71, 10, 24, 5, 221, 10, 24, 5, 255, 15, 10, 24, 5, 162, 10, - 24, 5, 173, 10, 24, 5, 197, 10, 24, 5, 73, 10, 24, 5, 223, 10, 24, 5, - 255, 20, 10, 24, 5, 144, 10, 24, 5, 193, 10, 24, 5, 214, 10, 24, 5, 79, - 10, 24, 5, 179, 10, 24, 5, 255, 16, 10, 24, 5, 206, 10, 24, 5, 255, 14, - 10, 24, 5, 255, 17, 10, 24, 3, 67, 10, 24, 3, 217, 10, 24, 3, 255, 18, - 10, 24, 3, 209, 10, 24, 3, 72, 10, 24, 3, 255, 19, 10, 24, 3, 210, 10, - 24, 3, 71, 10, 24, 3, 221, 10, 24, 3, 255, 15, 10, 24, 3, 162, 10, 24, 3, - 173, 10, 24, 3, 197, 10, 24, 3, 73, 10, 24, 3, 223, 10, 24, 3, 255, 20, - 10, 24, 3, 144, 10, 24, 3, 193, 10, 24, 3, 214, 10, 24, 3, 79, 10, 24, 3, - 179, 10, 24, 3, 255, 16, 10, 24, 3, 206, 10, 24, 3, 255, 14, 10, 24, 3, - 255, 17, 10, 16, 24, 5, 67, 10, 16, 24, 5, 217, 10, 16, 24, 5, 255, 18, - 10, 16, 24, 5, 209, 10, 16, 24, 5, 72, 10, 16, 24, 5, 255, 19, 10, 16, - 24, 5, 210, 10, 16, 24, 5, 192, 10, 16, 24, 5, 71, 10, 16, 24, 5, 221, - 10, 16, 24, 5, 255, 15, 10, 16, 24, 5, 162, 10, 16, 24, 5, 173, 10, 16, - 24, 5, 197, 10, 16, 24, 5, 73, 10, 16, 24, 5, 223, 10, 16, 24, 5, 255, - 20, 10, 16, 24, 5, 144, 10, 16, 24, 5, 193, 10, 16, 24, 5, 214, 10, 16, - 24, 5, 79, 10, 16, 24, 5, 179, 10, 16, 24, 5, 255, 16, 10, 16, 24, 5, - 206, 10, 16, 24, 5, 255, 14, 10, 16, 24, 5, 255, 17, 10, 16, 24, 3, 67, - 10, 16, 24, 3, 217, 10, 16, 24, 3, 255, 18, 10, 16, 24, 3, 209, 10, 16, - 24, 3, 72, 10, 16, 24, 3, 255, 19, 10, 16, 24, 3, 210, 10, 16, 24, 3, - 192, 10, 16, 24, 3, 71, 10, 16, 24, 3, 221, 10, 16, 24, 3, 255, 15, 10, - 16, 24, 3, 162, 10, 16, 24, 3, 173, 10, 16, 24, 3, 197, 10, 16, 24, 3, - 73, 10, 16, 24, 3, 223, 10, 16, 24, 3, 255, 20, 10, 16, 24, 3, 144, 10, - 16, 24, 3, 193, 10, 16, 24, 3, 214, 10, 16, 24, 3, 79, 10, 16, 24, 3, - 179, 10, 16, 24, 3, 255, 16, 10, 16, 24, 3, 206, 10, 16, 24, 3, 255, 14, - 10, 16, 24, 3, 255, 17, 10, 84, 5, 67, 10, 84, 5, 255, 18, 10, 84, 5, - 209, 10, 84, 5, 210, 10, 84, 5, 221, 10, 84, 5, 255, 15, 10, 84, 5, 197, - 10, 84, 5, 73, 10, 84, 5, 223, 10, 84, 5, 255, 20, 10, 84, 5, 193, 10, - 84, 5, 214, 10, 84, 5, 79, 10, 84, 5, 179, 10, 84, 5, 255, 16, 10, 84, 5, - 206, 10, 84, 5, 255, 14, 10, 84, 5, 255, 17, 10, 84, 3, 67, 10, 84, 3, - 217, 10, 84, 3, 255, 18, 10, 84, 3, 209, 10, 84, 3, 255, 19, 10, 84, 3, - 192, 10, 84, 3, 71, 10, 84, 3, 221, 10, 84, 3, 255, 15, 10, 84, 3, 162, - 10, 84, 3, 173, 10, 84, 3, 197, 10, 84, 3, 223, 10, 84, 3, 255, 20, 10, - 84, 3, 144, 10, 84, 3, 193, 10, 84, 3, 214, 10, 84, 3, 79, 10, 84, 3, - 179, 10, 84, 3, 255, 16, 10, 84, 3, 206, 10, 84, 3, 255, 14, 10, 84, 3, - 255, 17, 10, 16, 84, 5, 67, 10, 16, 84, 5, 217, 10, 16, 84, 5, 255, 18, - 10, 16, 84, 5, 209, 10, 16, 84, 5, 72, 10, 16, 84, 5, 255, 19, 10, 16, - 84, 5, 210, 10, 16, 84, 5, 192, 10, 16, 84, 5, 71, 10, 16, 84, 5, 221, - 10, 16, 84, 5, 255, 15, 10, 16, 84, 5, 162, 10, 16, 84, 5, 173, 10, 16, - 84, 5, 197, 10, 16, 84, 5, 73, 10, 16, 84, 5, 223, 10, 16, 84, 5, 255, - 20, 10, 16, 84, 5, 144, 10, 16, 84, 5, 193, 10, 16, 84, 5, 214, 10, 16, - 84, 5, 79, 10, 16, 84, 5, 179, 10, 16, 84, 5, 255, 16, 10, 16, 84, 5, - 206, 10, 16, 84, 5, 255, 14, 10, 16, 84, 5, 255, 17, 10, 16, 84, 3, 67, - 10, 16, 84, 3, 217, 10, 16, 84, 3, 255, 18, 10, 16, 84, 3, 209, 10, 16, - 84, 3, 72, 10, 16, 84, 3, 255, 19, 10, 16, 84, 3, 210, 10, 16, 84, 3, - 192, 10, 16, 84, 3, 71, 10, 16, 84, 3, 221, 10, 16, 84, 3, 255, 15, 10, - 16, 84, 3, 162, 10, 16, 84, 3, 173, 10, 16, 84, 3, 197, 10, 16, 84, 3, - 73, 10, 16, 84, 3, 223, 10, 16, 84, 3, 255, 20, 10, 16, 84, 3, 144, 10, - 16, 84, 3, 193, 10, 16, 84, 3, 214, 10, 16, 84, 3, 79, 10, 16, 84, 3, - 179, 10, 16, 84, 3, 255, 16, 10, 16, 84, 3, 206, 10, 16, 84, 3, 255, 14, - 10, 16, 84, 3, 255, 17, 10, 93, 5, 67, 10, 93, 5, 217, 10, 93, 5, 209, - 10, 93, 5, 72, 10, 93, 5, 255, 19, 10, 93, 5, 210, 10, 93, 5, 221, 10, - 93, 5, 255, 15, 10, 93, 5, 162, 10, 93, 5, 173, 10, 93, 5, 197, 10, 93, - 5, 73, 10, 93, 5, 223, 10, 93, 5, 255, 20, 10, 93, 5, 193, 10, 93, 5, - 214, 10, 93, 5, 79, 10, 93, 5, 179, 10, 93, 5, 255, 16, 10, 93, 5, 206, - 10, 93, 5, 255, 14, 10, 93, 3, 67, 10, 93, 3, 217, 10, 93, 3, 255, 18, - 10, 93, 3, 209, 10, 93, 3, 72, 10, 93, 3, 255, 19, 10, 93, 3, 210, 10, - 93, 3, 192, 10, 93, 3, 71, 10, 93, 3, 221, 10, 93, 3, 255, 15, 10, 93, 3, - 162, 10, 93, 3, 173, 10, 93, 3, 197, 10, 93, 3, 73, 10, 93, 3, 223, 10, - 93, 3, 255, 20, 10, 93, 3, 144, 10, 93, 3, 193, 10, 93, 3, 214, 10, 93, - 3, 79, 10, 93, 3, 179, 10, 93, 3, 255, 16, 10, 93, 3, 206, 10, 93, 3, - 255, 14, 10, 93, 3, 255, 17, 10, 138, 5, 67, 10, 138, 5, 217, 10, 138, 5, - 209, 10, 138, 5, 72, 10, 138, 5, 255, 19, 10, 138, 5, 210, 10, 138, 5, - 71, 10, 138, 5, 221, 10, 138, 5, 255, 15, 10, 138, 5, 162, 10, 138, 5, - 173, 10, 138, 5, 73, 10, 138, 5, 193, 10, 138, 5, 214, 10, 138, 5, 79, - 10, 138, 5, 179, 10, 138, 5, 255, 16, 10, 138, 5, 206, 10, 138, 5, 255, - 14, 10, 138, 3, 67, 10, 138, 3, 217, 10, 138, 3, 255, 18, 10, 138, 3, - 209, 10, 138, 3, 72, 10, 138, 3, 255, 19, 10, 138, 3, 210, 10, 138, 3, - 192, 10, 138, 3, 71, 10, 138, 3, 221, 10, 138, 3, 255, 15, 10, 138, 3, - 162, 10, 138, 3, 173, 10, 138, 3, 197, 10, 138, 3, 73, 10, 138, 3, 223, - 10, 138, 3, 255, 20, 10, 138, 3, 144, 10, 138, 3, 193, 10, 138, 3, 214, - 10, 138, 3, 79, 10, 138, 3, 179, 10, 138, 3, 255, 16, 10, 138, 3, 206, - 10, 138, 3, 255, 14, 10, 138, 3, 255, 17, 10, 16, 93, 5, 67, 10, 16, 93, - 5, 217, 10, 16, 93, 5, 255, 18, 10, 16, 93, 5, 209, 10, 16, 93, 5, 72, - 10, 16, 93, 5, 255, 19, 10, 16, 93, 5, 210, 10, 16, 93, 5, 192, 10, 16, - 93, 5, 71, 10, 16, 93, 5, 221, 10, 16, 93, 5, 255, 15, 10, 16, 93, 5, - 162, 10, 16, 93, 5, 173, 10, 16, 93, 5, 197, 10, 16, 93, 5, 73, 10, 16, - 93, 5, 223, 10, 16, 93, 5, 255, 20, 10, 16, 93, 5, 144, 10, 16, 93, 5, - 193, 10, 16, 93, 5, 214, 10, 16, 93, 5, 79, 10, 16, 93, 5, 179, 10, 16, - 93, 5, 255, 16, 10, 16, 93, 5, 206, 10, 16, 93, 5, 255, 14, 10, 16, 93, - 5, 255, 17, 10, 16, 93, 3, 67, 10, 16, 93, 3, 217, 10, 16, 93, 3, 255, - 18, 10, 16, 93, 3, 209, 10, 16, 93, 3, 72, 10, 16, 93, 3, 255, 19, 10, - 16, 93, 3, 210, 10, 16, 93, 3, 192, 10, 16, 93, 3, 71, 10, 16, 93, 3, - 221, 10, 16, 93, 3, 255, 15, 10, 16, 93, 3, 162, 10, 16, 93, 3, 173, 10, - 16, 93, 3, 197, 10, 16, 93, 3, 73, 10, 16, 93, 3, 223, 10, 16, 93, 3, - 255, 20, 10, 16, 93, 3, 144, 10, 16, 93, 3, 193, 10, 16, 93, 3, 214, 10, - 16, 93, 3, 79, 10, 16, 93, 3, 179, 10, 16, 93, 3, 255, 16, 10, 16, 93, 3, - 206, 10, 16, 93, 3, 255, 14, 10, 16, 93, 3, 255, 17, 10, 27, 5, 67, 10, - 27, 5, 217, 10, 27, 5, 255, 18, 10, 27, 5, 209, 10, 27, 5, 72, 10, 27, 5, - 255, 19, 10, 27, 5, 210, 10, 27, 5, 192, 10, 27, 5, 71, 10, 27, 5, 221, - 10, 27, 5, 255, 15, 10, 27, 5, 162, 10, 27, 5, 173, 10, 27, 5, 197, 10, - 27, 5, 73, 10, 27, 5, 223, 10, 27, 5, 255, 20, 10, 27, 5, 144, 10, 27, 5, - 193, 10, 27, 5, 214, 10, 27, 5, 79, 10, 27, 5, 179, 10, 27, 5, 255, 16, - 10, 27, 5, 206, 10, 27, 5, 255, 14, 10, 27, 5, 255, 17, 10, 27, 3, 67, - 10, 27, 3, 217, 10, 27, 3, 255, 18, 10, 27, 3, 209, 10, 27, 3, 72, 10, - 27, 3, 255, 19, 10, 27, 3, 210, 10, 27, 3, 192, 10, 27, 3, 71, 10, 27, 3, - 221, 10, 27, 3, 255, 15, 10, 27, 3, 162, 10, 27, 3, 173, 10, 27, 3, 197, - 10, 27, 3, 73, 10, 27, 3, 223, 10, 27, 3, 255, 20, 10, 27, 3, 144, 10, - 27, 3, 193, 10, 27, 3, 214, 10, 27, 3, 79, 10, 27, 3, 179, 10, 27, 3, - 255, 16, 10, 27, 3, 206, 10, 27, 3, 255, 14, 10, 27, 3, 255, 17, 10, 27, - 16, 5, 67, 10, 27, 16, 5, 217, 10, 27, 16, 5, 255, 18, 10, 27, 16, 5, - 209, 10, 27, 16, 5, 72, 10, 27, 16, 5, 255, 19, 10, 27, 16, 5, 210, 10, - 27, 16, 5, 192, 10, 27, 16, 5, 71, 10, 27, 16, 5, 221, 10, 27, 16, 5, - 255, 15, 10, 27, 16, 5, 162, 10, 27, 16, 5, 173, 10, 27, 16, 5, 197, 10, - 27, 16, 5, 73, 10, 27, 16, 5, 223, 10, 27, 16, 5, 255, 20, 10, 27, 16, 5, - 144, 10, 27, 16, 5, 193, 10, 27, 16, 5, 214, 10, 27, 16, 5, 79, 10, 27, - 16, 5, 179, 10, 27, 16, 5, 255, 16, 10, 27, 16, 5, 206, 10, 27, 16, 5, - 255, 14, 10, 27, 16, 5, 255, 17, 10, 27, 16, 3, 67, 10, 27, 16, 3, 217, - 10, 27, 16, 3, 255, 18, 10, 27, 16, 3, 209, 10, 27, 16, 3, 72, 10, 27, - 16, 3, 255, 19, 10, 27, 16, 3, 210, 10, 27, 16, 3, 192, 10, 27, 16, 3, - 71, 10, 27, 16, 3, 221, 10, 27, 16, 3, 255, 15, 10, 27, 16, 3, 162, 10, - 27, 16, 3, 173, 10, 27, 16, 3, 197, 10, 27, 16, 3, 73, 10, 27, 16, 3, - 223, 10, 27, 16, 3, 255, 20, 10, 27, 16, 3, 144, 10, 27, 16, 3, 193, 10, - 27, 16, 3, 214, 10, 27, 16, 3, 79, 10, 27, 16, 3, 179, 10, 27, 16, 3, - 255, 16, 10, 27, 16, 3, 206, 10, 27, 16, 3, 255, 14, 10, 27, 16, 3, 255, - 17, 10, 27, 24, 5, 67, 10, 27, 24, 5, 217, 10, 27, 24, 5, 255, 18, 10, - 27, 24, 5, 209, 10, 27, 24, 5, 72, 10, 27, 24, 5, 255, 19, 10, 27, 24, 5, - 210, 10, 27, 24, 5, 192, 10, 27, 24, 5, 71, 10, 27, 24, 5, 221, 10, 27, - 24, 5, 255, 15, 10, 27, 24, 5, 162, 10, 27, 24, 5, 173, 10, 27, 24, 5, - 197, 10, 27, 24, 5, 73, 10, 27, 24, 5, 223, 10, 27, 24, 5, 255, 20, 10, - 27, 24, 5, 144, 10, 27, 24, 5, 193, 10, 27, 24, 5, 214, 10, 27, 24, 5, - 79, 10, 27, 24, 5, 179, 10, 27, 24, 5, 255, 16, 10, 27, 24, 5, 206, 10, - 27, 24, 5, 255, 14, 10, 27, 24, 5, 255, 17, 10, 27, 24, 3, 67, 10, 27, - 24, 3, 217, 10, 27, 24, 3, 255, 18, 10, 27, 24, 3, 209, 10, 27, 24, 3, - 72, 10, 27, 24, 3, 255, 19, 10, 27, 24, 3, 210, 10, 27, 24, 3, 192, 10, - 27, 24, 3, 71, 10, 27, 24, 3, 221, 10, 27, 24, 3, 255, 15, 10, 27, 24, 3, - 162, 10, 27, 24, 3, 173, 10, 27, 24, 3, 197, 10, 27, 24, 3, 73, 10, 27, - 24, 3, 223, 10, 27, 24, 3, 255, 20, 10, 27, 24, 3, 144, 10, 27, 24, 3, - 193, 10, 27, 24, 3, 214, 10, 27, 24, 3, 79, 10, 27, 24, 3, 179, 10, 27, - 24, 3, 255, 16, 10, 27, 24, 3, 206, 10, 27, 24, 3, 255, 14, 10, 27, 24, - 3, 255, 17, 10, 27, 16, 24, 5, 67, 10, 27, 16, 24, 5, 217, 10, 27, 16, - 24, 5, 255, 18, 10, 27, 16, 24, 5, 209, 10, 27, 16, 24, 5, 72, 10, 27, - 16, 24, 5, 255, 19, 10, 27, 16, 24, 5, 210, 10, 27, 16, 24, 5, 192, 10, - 27, 16, 24, 5, 71, 10, 27, 16, 24, 5, 221, 10, 27, 16, 24, 5, 255, 15, - 10, 27, 16, 24, 5, 162, 10, 27, 16, 24, 5, 173, 10, 27, 16, 24, 5, 197, - 10, 27, 16, 24, 5, 73, 10, 27, 16, 24, 5, 223, 10, 27, 16, 24, 5, 255, - 20, 10, 27, 16, 24, 5, 144, 10, 27, 16, 24, 5, 193, 10, 27, 16, 24, 5, - 214, 10, 27, 16, 24, 5, 79, 10, 27, 16, 24, 5, 179, 10, 27, 16, 24, 5, - 255, 16, 10, 27, 16, 24, 5, 206, 10, 27, 16, 24, 5, 255, 14, 10, 27, 16, - 24, 5, 255, 17, 10, 27, 16, 24, 3, 67, 10, 27, 16, 24, 3, 217, 10, 27, - 16, 24, 3, 255, 18, 10, 27, 16, 24, 3, 209, 10, 27, 16, 24, 3, 72, 10, - 27, 16, 24, 3, 255, 19, 10, 27, 16, 24, 3, 210, 10, 27, 16, 24, 3, 192, - 10, 27, 16, 24, 3, 71, 10, 27, 16, 24, 3, 221, 10, 27, 16, 24, 3, 255, - 15, 10, 27, 16, 24, 3, 162, 10, 27, 16, 24, 3, 173, 10, 27, 16, 24, 3, - 197, 10, 27, 16, 24, 3, 73, 10, 27, 16, 24, 3, 223, 10, 27, 16, 24, 3, - 255, 20, 10, 27, 16, 24, 3, 144, 10, 27, 16, 24, 3, 193, 10, 27, 16, 24, - 3, 214, 10, 27, 16, 24, 3, 79, 10, 27, 16, 24, 3, 179, 10, 27, 16, 24, 3, - 255, 16, 10, 27, 16, 24, 3, 206, 10, 27, 16, 24, 3, 255, 14, 10, 27, 16, - 24, 3, 255, 17, 10, 160, 5, 67, 10, 160, 5, 217, 10, 160, 5, 255, 18, 10, - 160, 5, 209, 10, 160, 5, 72, 10, 160, 5, 255, 19, 10, 160, 5, 210, 10, - 160, 5, 192, 10, 160, 5, 71, 10, 160, 5, 221, 10, 160, 5, 255, 15, 10, - 160, 5, 162, 10, 160, 5, 173, 10, 160, 5, 197, 10, 160, 5, 73, 10, 160, - 5, 223, 10, 160, 5, 255, 20, 10, 160, 5, 144, 10, 160, 5, 193, 10, 160, - 5, 214, 10, 160, 5, 79, 10, 160, 5, 179, 10, 160, 5, 255, 16, 10, 160, 5, - 206, 10, 160, 5, 255, 14, 10, 160, 5, 255, 17, 10, 160, 3, 67, 10, 160, - 3, 217, 10, 160, 3, 255, 18, 10, 160, 3, 209, 10, 160, 3, 72, 10, 160, 3, - 255, 19, 10, 160, 3, 210, 10, 160, 3, 192, 10, 160, 3, 71, 10, 160, 3, - 221, 10, 160, 3, 255, 15, 10, 160, 3, 162, 10, 160, 3, 173, 10, 160, 3, - 197, 10, 160, 3, 73, 10, 160, 3, 223, 10, 160, 3, 255, 20, 10, 160, 3, - 144, 10, 160, 3, 193, 10, 160, 3, 214, 10, 160, 3, 79, 10, 160, 3, 179, - 10, 160, 3, 255, 16, 10, 160, 3, 206, 10, 160, 3, 255, 14, 10, 160, 3, - 255, 17, 10, 24, 3, 238, 70, 71, 10, 24, 3, 238, 70, 221, 10, 16, 5, 240, - 22, 10, 16, 5, 242, 242, 10, 16, 5, 240, 10, 10, 16, 5, 240, 28, 10, 16, - 5, 236, 165, 10, 16, 5, 242, 251, 10, 16, 5, 248, 87, 10, 16, 5, 240, 38, - 10, 16, 5, 242, 237, 10, 16, 5, 240, 41, 10, 16, 5, 240, 33, 10, 16, 5, - 253, 154, 10, 16, 5, 253, 150, 10, 16, 5, 253, 188, 10, 16, 5, 236, 169, - 10, 16, 5, 253, 147, 10, 16, 5, 248, 73, 10, 16, 5, 243, 0, 91, 10, 16, - 5, 240, 21, 10, 16, 5, 248, 85, 10, 16, 5, 236, 160, 10, 16, 5, 248, 68, - 10, 16, 5, 248, 67, 10, 16, 5, 248, 69, 10, 16, 5, 240, 20, 10, 16, 240, - 79, 10, 16, 3, 240, 22, 10, 16, 3, 242, 242, 10, 16, 3, 240, 10, 10, 16, - 3, 240, 28, 10, 16, 3, 236, 165, 10, 16, 3, 242, 251, 10, 16, 3, 248, 87, - 10, 16, 3, 240, 38, 10, 16, 3, 242, 237, 10, 16, 3, 240, 41, 10, 16, 3, - 240, 33, 10, 16, 3, 253, 154, 10, 16, 3, 253, 150, 10, 16, 3, 253, 188, - 10, 16, 3, 236, 169, 10, 16, 3, 253, 147, 10, 16, 3, 248, 73, 10, 16, 3, - 30, 240, 21, 10, 16, 3, 240, 21, 10, 16, 3, 248, 85, 10, 16, 3, 236, 160, - 10, 16, 3, 248, 68, 10, 16, 3, 248, 67, 10, 16, 3, 248, 69, 10, 16, 3, - 240, 20, 10, 16, 238, 100, 231, 90, 10, 16, 238, 57, 91, 10, 16, 243, 0, - 91, 10, 16, 243, 29, 91, 10, 16, 254, 11, 91, 10, 16, 253, 218, 91, 10, - 16, 255, 29, 91, 10, 24, 5, 240, 22, 10, 24, 5, 242, 242, 10, 24, 5, 240, - 10, 10, 24, 5, 240, 28, 10, 24, 5, 236, 165, 10, 24, 5, 242, 251, 10, 24, - 5, 248, 87, 10, 24, 5, 240, 38, 10, 24, 5, 242, 237, 10, 24, 5, 240, 41, - 10, 24, 5, 240, 33, 10, 24, 5, 253, 154, 10, 24, 5, 253, 150, 10, 24, 5, - 253, 188, 10, 24, 5, 236, 169, 10, 24, 5, 253, 147, 10, 24, 5, 248, 73, - 10, 24, 5, 243, 0, 91, 10, 24, 5, 240, 21, 10, 24, 5, 248, 85, 10, 24, 5, - 236, 160, 10, 24, 5, 248, 68, 10, 24, 5, 248, 67, 10, 24, 5, 248, 69, 10, - 24, 5, 240, 20, 10, 24, 240, 79, 10, 24, 3, 240, 22, 10, 24, 3, 242, 242, - 10, 24, 3, 240, 10, 10, 24, 3, 240, 28, 10, 24, 3, 236, 165, 10, 24, 3, - 242, 251, 10, 24, 3, 248, 87, 10, 24, 3, 240, 38, 10, 24, 3, 242, 237, - 10, 24, 3, 240, 41, 10, 24, 3, 240, 33, 10, 24, 3, 253, 154, 10, 24, 3, - 253, 150, 10, 24, 3, 253, 188, 10, 24, 3, 236, 169, 10, 24, 3, 253, 147, - 10, 24, 3, 248, 73, 10, 24, 3, 30, 240, 21, 10, 24, 3, 240, 21, 10, 24, - 3, 248, 85, 10, 24, 3, 236, 160, 10, 24, 3, 248, 68, 10, 24, 3, 248, 67, - 10, 24, 3, 248, 69, 10, 24, 3, 240, 20, 10, 24, 238, 100, 231, 90, 10, - 24, 238, 57, 91, 10, 24, 243, 0, 91, 10, 24, 243, 29, 91, 10, 24, 254, - 11, 91, 10, 24, 253, 218, 91, 10, 24, 255, 29, 91, 10, 16, 24, 5, 240, - 22, 10, 16, 24, 5, 242, 242, 10, 16, 24, 5, 240, 10, 10, 16, 24, 5, 240, - 28, 10, 16, 24, 5, 236, 165, 10, 16, 24, 5, 242, 251, 10, 16, 24, 5, 248, - 87, 10, 16, 24, 5, 240, 38, 10, 16, 24, 5, 242, 237, 10, 16, 24, 5, 240, - 41, 10, 16, 24, 5, 240, 33, 10, 16, 24, 5, 253, 154, 10, 16, 24, 5, 253, - 150, 10, 16, 24, 5, 253, 188, 10, 16, 24, 5, 236, 169, 10, 16, 24, 5, - 253, 147, 10, 16, 24, 5, 248, 73, 10, 16, 24, 5, 243, 0, 91, 10, 16, 24, - 5, 240, 21, 10, 16, 24, 5, 248, 85, 10, 16, 24, 5, 236, 160, 10, 16, 24, - 5, 248, 68, 10, 16, 24, 5, 248, 67, 10, 16, 24, 5, 248, 69, 10, 16, 24, - 5, 240, 20, 10, 16, 24, 240, 79, 10, 16, 24, 3, 240, 22, 10, 16, 24, 3, - 242, 242, 10, 16, 24, 3, 240, 10, 10, 16, 24, 3, 240, 28, 10, 16, 24, 3, - 236, 165, 10, 16, 24, 3, 242, 251, 10, 16, 24, 3, 248, 87, 10, 16, 24, 3, - 240, 38, 10, 16, 24, 3, 242, 237, 10, 16, 24, 3, 240, 41, 10, 16, 24, 3, - 240, 33, 10, 16, 24, 3, 253, 154, 10, 16, 24, 3, 253, 150, 10, 16, 24, 3, - 253, 188, 10, 16, 24, 3, 236, 169, 10, 16, 24, 3, 253, 147, 10, 16, 24, - 3, 248, 73, 10, 16, 24, 3, 30, 240, 21, 10, 16, 24, 3, 240, 21, 10, 16, - 24, 3, 248, 85, 10, 16, 24, 3, 236, 160, 10, 16, 24, 3, 248, 68, 10, 16, - 24, 3, 248, 67, 10, 16, 24, 3, 248, 69, 10, 16, 24, 3, 240, 20, 10, 16, - 24, 238, 100, 231, 90, 10, 16, 24, 238, 57, 91, 10, 16, 24, 243, 0, 91, - 10, 16, 24, 243, 29, 91, 10, 16, 24, 254, 11, 91, 10, 16, 24, 253, 218, - 91, 10, 16, 24, 255, 29, 91, 10, 27, 16, 5, 240, 22, 10, 27, 16, 5, 242, - 242, 10, 27, 16, 5, 240, 10, 10, 27, 16, 5, 240, 28, 10, 27, 16, 5, 236, - 165, 10, 27, 16, 5, 242, 251, 10, 27, 16, 5, 248, 87, 10, 27, 16, 5, 240, - 38, 10, 27, 16, 5, 242, 237, 10, 27, 16, 5, 240, 41, 10, 27, 16, 5, 240, - 33, 10, 27, 16, 5, 253, 154, 10, 27, 16, 5, 253, 150, 10, 27, 16, 5, 253, - 188, 10, 27, 16, 5, 236, 169, 10, 27, 16, 5, 253, 147, 10, 27, 16, 5, - 248, 73, 10, 27, 16, 5, 243, 0, 91, 10, 27, 16, 5, 240, 21, 10, 27, 16, - 5, 248, 85, 10, 27, 16, 5, 236, 160, 10, 27, 16, 5, 248, 68, 10, 27, 16, - 5, 248, 67, 10, 27, 16, 5, 248, 69, 10, 27, 16, 5, 240, 20, 10, 27, 16, - 240, 79, 10, 27, 16, 3, 240, 22, 10, 27, 16, 3, 242, 242, 10, 27, 16, 3, - 240, 10, 10, 27, 16, 3, 240, 28, 10, 27, 16, 3, 236, 165, 10, 27, 16, 3, - 242, 251, 10, 27, 16, 3, 248, 87, 10, 27, 16, 3, 240, 38, 10, 27, 16, 3, - 242, 237, 10, 27, 16, 3, 240, 41, 10, 27, 16, 3, 240, 33, 10, 27, 16, 3, - 253, 154, 10, 27, 16, 3, 253, 150, 10, 27, 16, 3, 253, 188, 10, 27, 16, - 3, 236, 169, 10, 27, 16, 3, 253, 147, 10, 27, 16, 3, 248, 73, 10, 27, 16, - 3, 30, 240, 21, 10, 27, 16, 3, 240, 21, 10, 27, 16, 3, 248, 85, 10, 27, - 16, 3, 236, 160, 10, 27, 16, 3, 248, 68, 10, 27, 16, 3, 248, 67, 10, 27, - 16, 3, 248, 69, 10, 27, 16, 3, 240, 20, 10, 27, 16, 238, 100, 231, 90, - 10, 27, 16, 238, 57, 91, 10, 27, 16, 243, 0, 91, 10, 27, 16, 243, 29, 91, - 10, 27, 16, 254, 11, 91, 10, 27, 16, 253, 218, 91, 10, 27, 16, 255, 29, - 91, 10, 27, 16, 24, 5, 240, 22, 10, 27, 16, 24, 5, 242, 242, 10, 27, 16, - 24, 5, 240, 10, 10, 27, 16, 24, 5, 240, 28, 10, 27, 16, 24, 5, 236, 165, - 10, 27, 16, 24, 5, 242, 251, 10, 27, 16, 24, 5, 248, 87, 10, 27, 16, 24, - 5, 240, 38, 10, 27, 16, 24, 5, 242, 237, 10, 27, 16, 24, 5, 240, 41, 10, - 27, 16, 24, 5, 240, 33, 10, 27, 16, 24, 5, 253, 154, 10, 27, 16, 24, 5, - 253, 150, 10, 27, 16, 24, 5, 253, 188, 10, 27, 16, 24, 5, 236, 169, 10, - 27, 16, 24, 5, 253, 147, 10, 27, 16, 24, 5, 248, 73, 10, 27, 16, 24, 5, - 243, 0, 91, 10, 27, 16, 24, 5, 240, 21, 10, 27, 16, 24, 5, 248, 85, 10, - 27, 16, 24, 5, 236, 160, 10, 27, 16, 24, 5, 248, 68, 10, 27, 16, 24, 5, - 248, 67, 10, 27, 16, 24, 5, 248, 69, 10, 27, 16, 24, 5, 240, 20, 10, 27, - 16, 24, 240, 79, 10, 27, 16, 24, 3, 240, 22, 10, 27, 16, 24, 3, 242, 242, - 10, 27, 16, 24, 3, 240, 10, 10, 27, 16, 24, 3, 240, 28, 10, 27, 16, 24, - 3, 236, 165, 10, 27, 16, 24, 3, 242, 251, 10, 27, 16, 24, 3, 248, 87, 10, - 27, 16, 24, 3, 240, 38, 10, 27, 16, 24, 3, 242, 237, 10, 27, 16, 24, 3, - 240, 41, 10, 27, 16, 24, 3, 240, 33, 10, 27, 16, 24, 3, 253, 154, 10, 27, - 16, 24, 3, 253, 150, 10, 27, 16, 24, 3, 253, 188, 10, 27, 16, 24, 3, 236, - 169, 10, 27, 16, 24, 3, 253, 147, 10, 27, 16, 24, 3, 248, 73, 10, 27, 16, - 24, 3, 30, 240, 21, 10, 27, 16, 24, 3, 240, 21, 10, 27, 16, 24, 3, 248, - 85, 10, 27, 16, 24, 3, 236, 160, 10, 27, 16, 24, 3, 248, 68, 10, 27, 16, - 24, 3, 248, 67, 10, 27, 16, 24, 3, 248, 69, 10, 27, 16, 24, 3, 240, 20, - 10, 27, 16, 24, 238, 100, 231, 90, 10, 27, 16, 24, 238, 57, 91, 10, 27, - 16, 24, 243, 0, 91, 10, 27, 16, 24, 243, 29, 91, 10, 27, 16, 24, 254, 11, - 91, 10, 27, 16, 24, 253, 218, 91, 10, 27, 16, 24, 255, 29, 91, 10, 16, - 26, 242, 217, 10, 16, 26, 127, 10, 16, 26, 111, 10, 16, 26, 166, 10, 16, - 26, 177, 10, 16, 26, 176, 10, 16, 26, 187, 10, 16, 26, 203, 10, 16, 26, - 195, 10, 16, 26, 202, 10, 138, 26, 242, 217, 10, 138, 26, 127, 10, 138, - 26, 111, 10, 138, 26, 166, 10, 138, 26, 177, 10, 138, 26, 176, 10, 138, - 26, 187, 10, 138, 26, 203, 10, 138, 26, 195, 10, 138, 26, 202, 10, 27, - 26, 242, 217, 10, 27, 26, 127, 10, 27, 26, 111, 10, 27, 26, 166, 10, 27, - 26, 177, 10, 27, 26, 176, 10, 27, 26, 187, 10, 27, 26, 203, 10, 27, 26, - 195, 10, 27, 26, 202, 10, 27, 16, 26, 242, 217, 10, 27, 16, 26, 127, 10, - 27, 16, 26, 111, 10, 27, 16, 26, 166, 10, 27, 16, 26, 177, 10, 27, 16, - 26, 176, 10, 27, 16, 26, 187, 10, 27, 16, 26, 203, 10, 27, 16, 26, 195, - 10, 27, 16, 26, 202, 10, 160, 26, 242, 217, 10, 160, 26, 127, 10, 160, - 26, 111, 10, 160, 26, 166, 10, 160, 26, 177, 10, 160, 26, 176, 10, 160, - 26, 187, 10, 160, 26, 203, 10, 160, 26, 195, 10, 160, 26, 202, 7, 9, 227, - 16, 7, 9, 227, 17, 7, 9, 227, 18, 7, 9, 227, 19, 7, 9, 227, 20, 7, 9, - 227, 21, 7, 9, 227, 22, 7, 9, 227, 23, 7, 9, 227, 24, 7, 9, 227, 25, 7, - 9, 227, 26, 7, 9, 227, 27, 7, 9, 227, 28, 7, 9, 227, 29, 7, 9, 227, 30, - 7, 9, 227, 31, 7, 9, 227, 32, 7, 9, 227, 33, 7, 9, 227, 34, 7, 9, 227, - 35, 7, 9, 227, 36, 7, 9, 227, 37, 7, 9, 227, 38, 7, 9, 227, 39, 7, 9, - 227, 40, 7, 9, 227, 41, 7, 9, 227, 42, 7, 9, 227, 43, 7, 9, 227, 44, 7, - 9, 227, 45, 7, 9, 227, 46, 7, 9, 227, 47, 7, 9, 227, 48, 7, 9, 227, 49, - 7, 9, 227, 50, 7, 9, 227, 51, 7, 9, 227, 52, 7, 9, 227, 53, 7, 9, 227, - 54, 7, 9, 227, 55, 7, 9, 227, 56, 7, 9, 227, 57, 7, 9, 227, 58, 7, 9, - 227, 59, 7, 9, 227, 60, 7, 9, 227, 61, 7, 9, 227, 62, 7, 9, 227, 63, 7, - 9, 227, 64, 7, 9, 227, 65, 7, 9, 227, 66, 7, 9, 227, 67, 7, 9, 227, 68, - 7, 9, 227, 69, 7, 9, 227, 70, 7, 9, 227, 71, 7, 9, 227, 72, 7, 9, 227, - 73, 7, 9, 227, 74, 7, 9, 227, 75, 7, 9, 227, 76, 7, 9, 227, 77, 7, 9, - 227, 78, 7, 9, 227, 79, 7, 9, 227, 80, 7, 9, 227, 81, 7, 9, 227, 82, 7, - 9, 227, 83, 7, 9, 227, 84, 7, 9, 227, 85, 7, 9, 227, 86, 7, 9, 227, 87, - 7, 9, 227, 88, 7, 9, 227, 89, 7, 9, 227, 90, 7, 9, 227, 91, 7, 9, 227, - 92, 7, 9, 227, 93, 7, 9, 227, 94, 7, 9, 227, 95, 7, 9, 227, 96, 7, 9, - 227, 97, 7, 9, 227, 98, 7, 9, 227, 99, 7, 9, 227, 100, 7, 9, 227, 101, 7, - 9, 227, 102, 7, 9, 227, 103, 7, 9, 227, 104, 7, 9, 227, 105, 7, 9, 227, - 106, 7, 9, 227, 107, 7, 9, 227, 108, 7, 9, 227, 109, 7, 9, 227, 110, 7, - 9, 227, 111, 7, 9, 227, 112, 7, 9, 227, 113, 7, 9, 227, 114, 7, 9, 227, - 115, 7, 9, 227, 116, 7, 9, 227, 117, 7, 9, 227, 118, 7, 9, 227, 119, 7, - 9, 227, 120, 7, 9, 227, 121, 7, 9, 227, 122, 7, 9, 227, 123, 7, 9, 227, - 124, 7, 9, 227, 125, 7, 9, 227, 126, 7, 9, 227, 127, 7, 9, 227, 128, 7, - 9, 227, 129, 7, 9, 227, 130, 7, 9, 227, 131, 7, 9, 227, 132, 7, 9, 227, - 133, 7, 9, 227, 134, 7, 9, 227, 135, 7, 9, 227, 136, 7, 9, 227, 137, 7, - 9, 227, 138, 7, 9, 227, 139, 7, 9, 227, 140, 7, 9, 227, 141, 7, 9, 227, - 142, 7, 9, 227, 143, 7, 9, 227, 144, 7, 9, 227, 145, 7, 9, 227, 146, 7, - 9, 227, 147, 7, 9, 227, 148, 7, 9, 227, 149, 7, 9, 227, 150, 7, 9, 227, - 151, 7, 9, 227, 152, 7, 9, 227, 153, 7, 9, 227, 154, 7, 9, 227, 155, 7, - 9, 227, 156, 7, 9, 227, 157, 7, 9, 227, 158, 7, 9, 227, 159, 7, 9, 227, - 160, 7, 9, 227, 161, 7, 9, 227, 162, 7, 9, 227, 163, 7, 9, 227, 164, 7, - 9, 227, 165, 7, 9, 227, 166, 7, 9, 227, 167, 7, 9, 227, 168, 7, 9, 227, - 169, 7, 9, 227, 170, 7, 9, 227, 171, 7, 9, 227, 172, 7, 9, 227, 173, 7, - 9, 227, 174, 7, 9, 227, 175, 7, 9, 227, 176, 7, 9, 227, 177, 7, 9, 227, - 178, 7, 9, 227, 179, 7, 9, 227, 180, 7, 9, 227, 181, 7, 9, 227, 182, 7, - 9, 227, 183, 7, 9, 227, 184, 7, 9, 227, 185, 7, 9, 227, 186, 7, 9, 227, - 187, 7, 9, 227, 188, 7, 9, 227, 189, 7, 9, 227, 190, 7, 9, 227, 191, 7, - 9, 227, 192, 7, 9, 227, 193, 7, 9, 227, 194, 7, 9, 227, 195, 7, 9, 227, - 196, 7, 9, 227, 197, 7, 9, 227, 198, 7, 9, 227, 199, 7, 9, 227, 200, 7, - 9, 227, 201, 7, 9, 227, 202, 7, 9, 227, 203, 7, 9, 227, 204, 7, 9, 227, - 205, 7, 9, 227, 206, 7, 9, 227, 207, 7, 9, 227, 208, 7, 9, 227, 209, 7, - 9, 227, 210, 7, 9, 227, 211, 7, 9, 227, 212, 7, 9, 227, 213, 7, 9, 227, - 214, 7, 9, 227, 215, 7, 9, 227, 216, 7, 9, 227, 217, 7, 9, 227, 218, 7, - 9, 227, 219, 7, 9, 227, 220, 7, 9, 227, 221, 7, 9, 227, 222, 7, 9, 227, - 223, 7, 9, 227, 224, 7, 9, 227, 225, 7, 9, 227, 226, 7, 9, 227, 227, 7, - 9, 227, 228, 7, 9, 227, 229, 7, 9, 227, 230, 7, 9, 227, 231, 7, 9, 227, - 232, 7, 9, 227, 233, 7, 9, 227, 234, 7, 9, 227, 235, 7, 9, 227, 236, 7, - 9, 227, 237, 7, 9, 227, 238, 7, 9, 227, 239, 7, 9, 227, 240, 7, 9, 227, - 241, 7, 9, 227, 242, 7, 9, 227, 243, 7, 9, 227, 244, 7, 9, 227, 245, 7, - 9, 227, 246, 7, 9, 227, 247, 7, 9, 227, 248, 7, 9, 227, 249, 7, 9, 227, - 250, 7, 9, 227, 251, 7, 9, 227, 252, 7, 9, 227, 253, 7, 9, 227, 254, 7, - 9, 227, 255, 7, 9, 228, 0, 7, 9, 228, 1, 7, 9, 228, 2, 7, 9, 228, 3, 7, - 9, 228, 4, 7, 9, 228, 5, 7, 9, 228, 6, 7, 9, 228, 7, 7, 9, 228, 8, 7, 9, - 228, 9, 7, 9, 228, 10, 7, 9, 228, 11, 7, 9, 228, 12, 7, 9, 228, 13, 7, 9, - 228, 14, 7, 9, 228, 15, 7, 9, 228, 16, 7, 9, 228, 17, 7, 9, 228, 18, 7, - 9, 228, 19, 7, 9, 228, 20, 7, 9, 228, 21, 7, 9, 228, 22, 7, 9, 228, 23, - 7, 9, 228, 24, 7, 9, 228, 25, 7, 9, 228, 26, 7, 9, 228, 27, 7, 9, 228, - 28, 7, 9, 228, 29, 7, 9, 228, 30, 7, 9, 228, 31, 7, 9, 228, 32, 7, 9, - 228, 33, 7, 9, 228, 34, 7, 9, 228, 35, 7, 9, 228, 36, 7, 9, 228, 37, 7, - 9, 228, 38, 7, 9, 228, 39, 7, 9, 228, 40, 7, 9, 228, 41, 7, 9, 228, 42, - 7, 9, 228, 43, 7, 9, 228, 44, 7, 9, 228, 45, 7, 9, 228, 46, 7, 9, 228, - 47, 7, 9, 228, 48, 7, 9, 228, 49, 7, 9, 228, 50, 7, 9, 228, 51, 7, 9, - 228, 52, 7, 9, 228, 53, 7, 9, 228, 54, 7, 9, 228, 55, 7, 9, 228, 56, 7, - 9, 228, 57, 7, 9, 228, 58, 7, 9, 228, 59, 7, 9, 228, 60, 7, 9, 228, 61, - 7, 9, 228, 62, 7, 9, 228, 63, 7, 9, 228, 64, 7, 9, 228, 65, 7, 9, 228, - 66, 7, 9, 228, 67, 7, 9, 228, 68, 7, 9, 228, 69, 7, 9, 228, 70, 7, 9, - 228, 71, 7, 9, 228, 72, 7, 9, 228, 73, 7, 9, 228, 74, 7, 9, 228, 75, 7, - 9, 228, 76, 7, 9, 228, 77, 7, 9, 228, 78, 7, 9, 228, 79, 7, 9, 228, 80, - 7, 9, 228, 81, 7, 9, 228, 82, 7, 9, 228, 83, 7, 9, 228, 84, 7, 9, 228, - 85, 7, 9, 228, 86, 7, 9, 228, 87, 7, 9, 228, 88, 7, 9, 228, 89, 7, 9, - 228, 90, 7, 9, 228, 91, 7, 9, 228, 92, 7, 9, 228, 93, 7, 9, 228, 94, 7, - 9, 228, 95, 7, 9, 228, 96, 7, 9, 228, 97, 7, 9, 228, 98, 7, 9, 228, 99, - 7, 9, 228, 100, 7, 9, 228, 101, 7, 9, 228, 102, 7, 9, 228, 103, 7, 9, - 228, 104, 7, 9, 228, 105, 7, 9, 228, 106, 7, 9, 228, 107, 7, 9, 228, 108, - 7, 9, 228, 109, 7, 9, 228, 110, 7, 9, 228, 111, 7, 9, 228, 112, 7, 9, - 228, 113, 7, 9, 228, 114, 7, 9, 228, 115, 7, 9, 228, 116, 7, 9, 228, 117, - 7, 9, 228, 118, 7, 9, 228, 119, 7, 9, 228, 120, 7, 9, 228, 121, 7, 9, - 228, 122, 7, 9, 228, 123, 7, 9, 228, 124, 7, 9, 228, 125, 7, 9, 228, 126, - 7, 9, 228, 127, 7, 9, 228, 128, 7, 9, 228, 129, 7, 9, 228, 130, 7, 9, - 228, 131, 7, 9, 228, 132, 7, 9, 228, 133, 7, 9, 228, 134, 7, 9, 228, 135, - 7, 9, 228, 136, 7, 9, 228, 137, 7, 9, 228, 138, 7, 9, 228, 139, 7, 9, - 228, 140, 7, 9, 228, 141, 7, 9, 228, 142, 7, 9, 228, 143, 7, 9, 228, 144, - 7, 9, 228, 145, 7, 9, 228, 146, 7, 9, 228, 147, 7, 9, 228, 148, 7, 9, - 228, 149, 7, 9, 228, 150, 7, 9, 228, 151, 7, 9, 228, 152, 7, 9, 228, 153, - 7, 9, 228, 154, 7, 9, 228, 155, 7, 9, 228, 156, 7, 9, 228, 157, 7, 9, - 228, 158, 7, 9, 228, 159, 7, 9, 228, 160, 7, 9, 228, 161, 7, 9, 228, 162, - 7, 9, 228, 163, 7, 9, 228, 164, 7, 9, 228, 165, 7, 9, 228, 166, 7, 9, - 228, 167, 7, 9, 228, 168, 7, 9, 228, 169, 7, 9, 228, 170, 7, 9, 228, 171, - 7, 9, 228, 172, 7, 9, 228, 173, 7, 9, 228, 174, 7, 9, 228, 175, 7, 9, - 228, 176, 7, 9, 228, 177, 7, 9, 228, 178, 7, 9, 228, 179, 7, 9, 228, 180, - 7, 9, 228, 181, 7, 9, 228, 182, 7, 9, 228, 183, 7, 9, 228, 184, 7, 9, - 228, 185, 7, 9, 228, 186, 7, 9, 228, 187, 7, 9, 228, 188, 7, 9, 228, 189, - 7, 9, 228, 190, 7, 9, 228, 191, 7, 9, 228, 192, 7, 9, 228, 193, 7, 9, - 228, 194, 7, 9, 228, 195, 7, 9, 228, 196, 7, 9, 228, 197, 7, 9, 228, 198, - 7, 9, 228, 199, 7, 9, 228, 200, 7, 9, 228, 201, 7, 9, 228, 202, 7, 9, - 228, 203, 7, 9, 228, 204, 7, 9, 228, 205, 7, 9, 228, 206, 7, 9, 228, 207, - 7, 9, 228, 208, 7, 9, 228, 209, 7, 9, 228, 210, 7, 9, 228, 211, 7, 9, - 228, 212, 7, 9, 228, 213, 7, 9, 228, 214, 7, 9, 228, 215, 7, 9, 228, 216, - 7, 9, 228, 217, 7, 9, 228, 218, 7, 9, 228, 219, 7, 9, 228, 220, 7, 9, - 228, 221, 7, 9, 228, 222, 7, 9, 228, 223, 7, 9, 228, 224, 7, 9, 228, 225, - 7, 9, 228, 226, 7, 9, 228, 227, 7, 9, 228, 228, 7, 9, 228, 229, 7, 9, - 228, 230, 7, 9, 228, 231, 7, 9, 228, 232, 7, 9, 228, 233, 7, 9, 228, 234, - 7, 9, 228, 235, 7, 9, 228, 236, 7, 9, 228, 237, 7, 9, 228, 238, 7, 9, - 228, 239, 7, 9, 228, 240, 7, 9, 228, 241, 7, 9, 228, 242, 7, 9, 228, 243, - 7, 9, 228, 244, 7, 9, 228, 245, 7, 9, 228, 246, 7, 9, 228, 247, 7, 9, - 228, 248, 7, 9, 228, 249, 7, 9, 228, 250, 7, 9, 228, 251, 7, 9, 228, 252, - 7, 9, 228, 253, 7, 9, 228, 254, 7, 9, 228, 255, 7, 9, 229, 0, 7, 9, 229, - 1, 7, 9, 229, 2, 7, 9, 229, 3, 7, 9, 229, 4, 7, 9, 229, 5, 7, 9, 229, 6, - 7, 9, 229, 7, 7, 9, 229, 8, 7, 9, 229, 9, 7, 9, 229, 10, 7, 9, 229, 11, - 7, 9, 229, 12, 7, 9, 229, 13, 7, 9, 229, 14, 7, 9, 229, 15, 7, 9, 229, - 16, 7, 9, 229, 17, 7, 9, 229, 18, 7, 9, 229, 19, 7, 9, 229, 20, 7, 9, - 229, 21, 7, 9, 229, 22, 7, 9, 229, 23, 7, 9, 229, 24, 7, 9, 229, 25, 7, - 9, 229, 26, 7, 9, 229, 27, 7, 9, 229, 28, 7, 9, 229, 29, 7, 9, 229, 30, - 7, 9, 229, 31, 7, 9, 229, 32, 7, 9, 229, 33, 7, 9, 229, 34, 7, 9, 229, - 35, 7, 9, 229, 36, 7, 9, 229, 37, 7, 9, 229, 38, 7, 9, 229, 39, 7, 9, - 229, 40, 7, 9, 229, 41, 7, 9, 229, 42, 7, 9, 229, 43, 7, 9, 229, 44, 7, - 9, 229, 45, 237, 194, 249, 173, 97, 240, 15, 97, 233, 54, 69, 97, 235, - 51, 69, 97, 61, 52, 97, 240, 114, 52, 97, 238, 107, 52, 97, 234, 17, 97, - 233, 59, 97, 40, 232, 74, 97, 38, 232, 74, 97, 235, 52, 97, 248, 49, 52, - 97, 240, 27, 97, 231, 94, 97, 248, 37, 208, 97, 236, 177, 97, 26, 242, - 217, 97, 26, 127, 97, 26, 111, 97, 26, 166, 97, 26, 177, 97, 26, 176, 97, - 26, 187, 97, 26, 203, 97, 26, 195, 97, 26, 202, 97, 240, 24, 97, 234, 14, - 97, 235, 44, 52, 97, 240, 7, 52, 97, 232, 68, 52, 97, 236, 156, 69, 97, - 234, 20, 254, 20, 97, 8, 5, 1, 67, 97, 8, 5, 1, 217, 97, 8, 5, 1, 255, - 18, 97, 8, 5, 1, 209, 97, 8, 5, 1, 72, 97, 8, 5, 1, 255, 19, 97, 8, 5, 1, - 210, 97, 8, 5, 1, 192, 97, 8, 5, 1, 71, 97, 8, 5, 1, 221, 97, 8, 5, 1, - 255, 15, 97, 8, 5, 1, 162, 97, 8, 5, 1, 173, 97, 8, 5, 1, 197, 97, 8, 5, - 1, 73, 97, 8, 5, 1, 223, 97, 8, 5, 1, 255, 20, 97, 8, 5, 1, 144, 97, 8, - 5, 1, 193, 97, 8, 5, 1, 214, 97, 8, 5, 1, 79, 97, 8, 5, 1, 179, 97, 8, 5, - 1, 255, 16, 97, 8, 5, 1, 206, 97, 8, 5, 1, 255, 14, 97, 8, 5, 1, 255, 17, - 97, 40, 31, 104, 97, 238, 75, 236, 177, 97, 38, 31, 104, 97, 190, 238, - 54, 97, 170, 242, 224, 97, 242, 245, 238, 54, 97, 8, 3, 1, 67, 97, 8, 3, - 1, 217, 97, 8, 3, 1, 255, 18, 97, 8, 3, 1, 209, 97, 8, 3, 1, 72, 97, 8, - 3, 1, 255, 19, 97, 8, 3, 1, 210, 97, 8, 3, 1, 192, 97, 8, 3, 1, 71, 97, - 8, 3, 1, 221, 97, 8, 3, 1, 255, 15, 97, 8, 3, 1, 162, 97, 8, 3, 1, 173, - 97, 8, 3, 1, 197, 97, 8, 3, 1, 73, 97, 8, 3, 1, 223, 97, 8, 3, 1, 255, - 20, 97, 8, 3, 1, 144, 97, 8, 3, 1, 193, 97, 8, 3, 1, 214, 97, 8, 3, 1, - 79, 97, 8, 3, 1, 179, 97, 8, 3, 1, 255, 16, 97, 8, 3, 1, 206, 97, 8, 3, - 1, 255, 14, 97, 8, 3, 1, 255, 17, 97, 40, 242, 225, 104, 97, 59, 242, - 224, 97, 38, 242, 225, 104, 97, 169, 241, 43, 249, 173, 34, 232, 211, 34, - 232, 212, 34, 232, 213, 34, 232, 214, 34, 232, 215, 34, 232, 216, 34, - 232, 217, 34, 232, 218, 34, 232, 219, 34, 232, 220, 34, 232, 221, 34, - 232, 222, 34, 232, 223, 34, 232, 224, 34, 232, 225, 34, 232, 226, 34, - 232, 227, 34, 232, 228, 34, 232, 229, 34, 232, 230, 34, 232, 231, 34, - 232, 232, 34, 232, 233, 34, 232, 234, 34, 232, 235, 34, 232, 236, 34, - 232, 237, 34, 232, 238, 34, 232, 239, 34, 232, 240, 34, 232, 241, 34, - 232, 242, 34, 232, 243, 34, 232, 244, 34, 232, 245, 34, 232, 246, 34, - 232, 247, 34, 232, 248, 34, 232, 249, 34, 232, 250, 34, 232, 251, 34, - 232, 252, 34, 232, 253, 34, 232, 254, 34, 232, 255, 34, 233, 0, 34, 233, - 1, 34, 233, 2, 34, 233, 3, 34, 233, 4, 34, 233, 5, 34, 233, 6, 34, 233, - 7, 34, 233, 8, 34, 233, 9, 34, 233, 10, 34, 233, 11, 34, 233, 12, 34, - 233, 13, 34, 233, 14, 34, 233, 15, 34, 233, 16, 34, 233, 17, 34, 233, 18, - 34, 233, 19, 34, 233, 20, 34, 233, 21, 34, 233, 22, 34, 233, 23, 34, 233, - 24, 34, 233, 25, 34, 233, 26, 34, 233, 27, 34, 233, 28, 34, 233, 29, 34, - 233, 30, 34, 233, 31, 34, 233, 32, 34, 233, 33, 34, 233, 34, 34, 233, 35, - 34, 233, 36, 34, 233, 37, 34, 231, 153, 34, 231, 154, 34, 231, 155, 34, - 231, 156, 34, 231, 157, 34, 231, 158, 34, 231, 159, 34, 231, 160, 34, - 231, 161, 34, 231, 162, 34, 231, 163, 34, 231, 164, 34, 231, 165, 34, - 231, 166, 34, 231, 167, 34, 231, 168, 34, 231, 169, 34, 231, 170, 34, - 231, 171, 34, 231, 172, 34, 231, 173, 34, 231, 174, 34, 231, 175, 34, - 231, 176, 34, 231, 177, 34, 231, 178, 34, 231, 179, 34, 231, 180, 34, - 231, 181, 34, 231, 182, 34, 231, 183, 34, 231, 184, 34, 231, 185, 34, - 231, 186, 34, 231, 187, 34, 231, 188, 34, 231, 189, 34, 231, 190, 34, - 231, 191, 34, 231, 192, 34, 231, 193, 34, 231, 194, 34, 231, 195, 34, - 231, 196, 34, 231, 197, 34, 231, 198, 34, 231, 199, 34, 231, 200, 34, - 231, 201, 34, 231, 202, 34, 231, 203, 34, 231, 204, 34, 231, 205, 34, - 231, 206, 34, 231, 207, 34, 231, 208, 34, 231, 209, 34, 231, 210, 34, - 231, 211, 34, 231, 212, 34, 231, 213, 34, 231, 214, 34, 231, 215, 34, - 231, 216, 34, 231, 217, 34, 231, 218, 34, 231, 219, 34, 231, 220, 34, - 231, 221, 34, 231, 222, 34, 231, 223, 34, 231, 224, 34, 231, 225, 34, - 231, 226, 34, 231, 227, 34, 231, 228, 34, 231, 229, 34, 231, 230, 34, - 231, 231, 34, 231, 232, 34, 231, 233, 34, 231, 234, 34, 231, 235, 34, - 231, 236, 34, 231, 237, 34, 231, 238, 34, 231, 239, 34, 231, 240, 34, - 231, 241, 34, 231, 242, 34, 231, 243, 34, 231, 244, 34, 231, 245, 34, - 231, 246, 34, 231, 247, 34, 231, 248, 34, 231, 249, 34, 231, 250, 34, - 231, 251, 34, 231, 252, 34, 231, 253, 34, 231, 254, 34, 231, 255, 34, - 232, 0, 34, 232, 1, 34, 232, 2, 34, 232, 3, 34, 232, 4, 34, 232, 5, 34, - 232, 6, 34, 232, 7, 34, 232, 8, 34, 232, 9, 34, 232, 10, 34, 232, 11, 34, - 232, 12, 34, 232, 13, 34, 232, 14, 34, 232, 15, 34, 232, 16, 34, 232, 17, - 34, 232, 18, 34, 232, 19, 34, 232, 20, 34, 232, 21, 34, 232, 22, 34, 232, - 23, 34, 232, 24, 34, 232, 25, 34, 232, 26, 34, 232, 27, 34, 232, 28, 34, - 232, 29, 34, 232, 30, 34, 232, 31, 34, 232, 32, 34, 232, 33, 34, 232, 34, - 34, 232, 35, 34, 232, 36, 34, 232, 37, 34, 232, 38, 34, 232, 39, 34, 232, - 40, 34, 232, 41, 34, 232, 42, 34, 232, 43, 34, 232, 44, 34, 232, 45, 34, - 232, 46, 34, 232, 47, 34, 232, 48, 34, 232, 49, 34, 232, 50, 34, 232, 51, - 34, 232, 52, 34, 232, 53, + 0, 237, 69, 229, 165, 76, 231, 199, 76, 65, 53, 237, 179, 53, 235, 86, + 53, 230, 142, 229, 172, 42, 228, 180, 41, 228, 180, 231, 198, 79, 53, + 237, 67, 227, 193, 246, 162, 240, 121, 233, 104, 21, 240, 126, 21, 118, + 21, 113, 21, 166, 21, 158, 21, 173, 21, 183, 21, 194, 21, 187, 21, 192, + 237, 66, 230, 140, 231, 190, 53, 237, 51, 53, 228, 175, 53, 233, 82, 76, + 230, 145, 253, 113, 7, 6, 1, 57, 7, 6, 1, 254, 185, 7, 6, 1, 254, 194, 7, + 6, 1, 222, 222, 7, 6, 1, 72, 7, 6, 1, 254, 191, 7, 6, 1, 214, 7, 6, 1, + 212, 7, 6, 1, 74, 7, 6, 1, 254, 192, 7, 6, 1, 254, 186, 7, 6, 1, 149, 7, + 6, 1, 185, 7, 6, 1, 199, 7, 6, 1, 73, 7, 6, 1, 254, 187, 7, 6, 1, 254, + 196, 7, 6, 1, 146, 7, 6, 1, 193, 7, 6, 1, 254, 183, 7, 6, 1, 66, 7, 6, 1, + 196, 7, 6, 1, 254, 195, 7, 6, 1, 254, 184, 7, 6, 1, 254, 190, 7, 6, 1, + 254, 193, 42, 37, 104, 235, 37, 233, 104, 41, 37, 104, 230, 125, 235, 24, + 184, 240, 138, 240, 163, 235, 24, 7, 3, 1, 57, 7, 3, 1, 254, 185, 7, 3, + 1, 254, 194, 7, 3, 1, 222, 222, 7, 3, 1, 72, 7, 3, 1, 254, 191, 7, 3, 1, + 214, 7, 3, 1, 212, 7, 3, 1, 74, 7, 3, 1, 254, 192, 7, 3, 1, 254, 186, 7, + 3, 1, 149, 7, 3, 1, 185, 7, 3, 1, 199, 7, 3, 1, 73, 7, 3, 1, 254, 187, 7, + 3, 1, 254, 196, 7, 3, 1, 146, 7, 3, 1, 193, 7, 3, 1, 254, 183, 7, 3, 1, + 66, 7, 3, 1, 196, 7, 3, 1, 254, 195, 7, 3, 1, 254, 184, 7, 3, 1, 254, + 190, 7, 3, 1, 254, 193, 42, 240, 137, 104, 61, 240, 138, 41, 240, 137, + 104, 205, 233, 173, 237, 69, 233, 70, 229, 165, 76, 248, 7, 53, 241, 215, + 53, 233, 112, 53, 254, 19, 53, 237, 150, 125, 235, 135, 53, 219, 232, + 103, 53, 233, 204, 235, 197, 230, 156, 227, 185, 47, 240, 117, 231, 199, + 76, 190, 53, 246, 227, 235, 69, 231, 131, 53, 235, 16, 237, 177, 53, 231, + 122, 53, 229, 163, 113, 229, 163, 166, 240, 159, 235, 24, 244, 142, 53, + 235, 201, 53, 237, 44, 246, 164, 233, 79, 229, 163, 118, 232, 228, 235, + 197, 230, 156, 227, 133, 47, 240, 117, 231, 199, 76, 237, 80, 233, 76, + 168, 233, 155, 237, 80, 233, 76, 168, 240, 170, 237, 80, 233, 76, 152, + 232, 41, 233, 70, 233, 82, 76, 7, 6, 1, 102, 2, 237, 36, 7, 6, 1, 102, 2, + 155, 7, 6, 1, 102, 2, 229, 162, 7, 6, 1, 102, 2, 205, 7, 6, 1, 102, 2, + 219, 7, 6, 1, 102, 2, 246, 174, 46, 7, 6, 1, 253, 4, 7, 6, 1, 255, 62, 2, + 233, 79, 7, 6, 1, 161, 2, 237, 36, 7, 6, 1, 161, 2, 155, 7, 6, 1, 161, 2, + 229, 162, 7, 6, 1, 161, 2, 219, 7, 6, 1, 255, 55, 2, 237, 36, 7, 6, 1, + 255, 55, 2, 155, 7, 6, 1, 255, 55, 2, 229, 162, 7, 6, 1, 255, 55, 2, 219, + 7, 6, 1, 246, 242, 7, 6, 1, 255, 60, 2, 205, 7, 6, 1, 130, 2, 237, 36, 7, + 6, 1, 130, 2, 155, 7, 6, 1, 130, 2, 229, 162, 7, 6, 1, 130, 2, 205, 7, 6, + 1, 130, 2, 219, 227, 134, 53, 7, 6, 1, 130, 2, 82, 7, 6, 1, 97, 2, 237, + 36, 7, 6, 1, 97, 2, 155, 7, 6, 1, 97, 2, 229, 162, 7, 6, 1, 97, 2, 219, + 7, 6, 1, 255, 64, 2, 155, 7, 6, 1, 237, 219, 7, 3, 1, 240, 235, 193, 7, + 3, 1, 102, 2, 237, 36, 7, 3, 1, 102, 2, 155, 7, 3, 1, 102, 2, 229, 162, + 7, 3, 1, 102, 2, 205, 7, 3, 1, 102, 2, 219, 7, 3, 1, 102, 2, 246, 174, + 46, 7, 3, 1, 253, 4, 7, 3, 1, 255, 62, 2, 233, 79, 7, 3, 1, 161, 2, 237, + 36, 7, 3, 1, 161, 2, 155, 7, 3, 1, 161, 2, 229, 162, 7, 3, 1, 161, 2, + 219, 7, 3, 1, 255, 55, 2, 237, 36, 7, 3, 1, 255, 55, 2, 155, 7, 3, 1, + 255, 55, 2, 229, 162, 7, 3, 1, 255, 55, 2, 219, 7, 3, 1, 246, 242, 7, 3, + 1, 255, 60, 2, 205, 7, 3, 1, 130, 2, 237, 36, 7, 3, 1, 130, 2, 155, 7, 3, + 1, 130, 2, 229, 162, 7, 3, 1, 130, 2, 205, 7, 3, 1, 130, 2, 219, 233, + 130, 53, 7, 3, 1, 130, 2, 82, 7, 3, 1, 97, 2, 237, 36, 7, 3, 1, 97, 2, + 155, 7, 3, 1, 97, 2, 229, 162, 7, 3, 1, 97, 2, 219, 7, 3, 1, 255, 64, 2, + 155, 7, 3, 1, 237, 219, 7, 3, 1, 255, 64, 2, 219, 7, 6, 1, 102, 2, 235, + 16, 7, 3, 1, 102, 2, 235, 16, 7, 6, 1, 102, 2, 237, 46, 7, 3, 1, 102, 2, + 237, 46, 7, 6, 1, 102, 2, 235, 47, 7, 3, 1, 102, 2, 235, 47, 7, 6, 1, + 255, 62, 2, 155, 7, 3, 1, 255, 62, 2, 155, 7, 6, 1, 255, 62, 2, 229, 162, + 7, 3, 1, 255, 62, 2, 229, 162, 7, 6, 1, 255, 62, 2, 56, 46, 7, 3, 1, 255, + 62, 2, 56, 46, 7, 6, 1, 255, 62, 2, 237, 43, 7, 3, 1, 255, 62, 2, 237, + 43, 7, 6, 1, 255, 63, 2, 237, 43, 7, 3, 1, 255, 63, 2, 237, 43, 7, 6, 1, + 255, 63, 2, 82, 7, 3, 1, 255, 63, 2, 82, 7, 6, 1, 161, 2, 235, 16, 7, 3, + 1, 161, 2, 235, 16, 7, 6, 1, 161, 2, 237, 46, 7, 3, 1, 161, 2, 237, 46, + 7, 6, 1, 161, 2, 56, 46, 7, 3, 1, 161, 2, 56, 46, 7, 6, 1, 161, 2, 235, + 47, 7, 3, 1, 161, 2, 235, 47, 7, 6, 1, 161, 2, 237, 43, 7, 3, 1, 161, 2, + 237, 43, 7, 6, 1, 255, 65, 2, 229, 162, 7, 3, 1, 255, 65, 2, 229, 162, 7, + 6, 1, 255, 65, 2, 237, 46, 7, 3, 1, 255, 65, 2, 237, 46, 7, 6, 1, 255, + 65, 2, 56, 46, 7, 3, 1, 255, 65, 2, 56, 46, 7, 6, 1, 255, 65, 2, 233, 79, + 7, 3, 1, 255, 65, 2, 233, 79, 7, 6, 1, 255, 66, 2, 229, 162, 7, 3, 1, + 255, 66, 2, 229, 162, 7, 6, 1, 255, 66, 2, 82, 7, 3, 1, 255, 66, 2, 82, + 7, 6, 1, 255, 55, 2, 205, 7, 3, 1, 255, 55, 2, 205, 7, 6, 1, 255, 55, 2, + 235, 16, 7, 3, 1, 255, 55, 2, 235, 16, 7, 6, 1, 255, 55, 2, 237, 46, 7, + 3, 1, 255, 55, 2, 237, 46, 7, 6, 1, 255, 55, 2, 235, 47, 7, 3, 1, 255, + 55, 2, 235, 47, 7, 6, 1, 255, 55, 2, 56, 46, 7, 3, 1, 235, 46, 74, 7, 6, + 20, 253, 231, 7, 3, 20, 253, 231, 7, 6, 1, 255, 73, 2, 229, 162, 7, 3, 1, + 255, 73, 2, 229, 162, 7, 6, 1, 255, 67, 2, 233, 79, 7, 3, 1, 255, 67, 2, + 233, 79, 7, 3, 1, 250, 186, 7, 6, 1, 255, 58, 2, 155, 7, 3, 1, 255, 58, + 2, 155, 7, 6, 1, 255, 58, 2, 233, 79, 7, 3, 1, 255, 58, 2, 233, 79, 7, 6, + 1, 255, 58, 2, 237, 43, 7, 3, 1, 255, 58, 2, 237, 43, 7, 6, 1, 255, 58, + 2, 237, 44, 246, 164, 7, 3, 1, 255, 58, 2, 237, 44, 246, 164, 7, 6, 1, + 255, 58, 2, 82, 7, 3, 1, 255, 58, 2, 82, 7, 6, 1, 255, 60, 2, 155, 7, 3, + 1, 255, 60, 2, 155, 7, 6, 1, 255, 60, 2, 233, 79, 7, 3, 1, 255, 60, 2, + 233, 79, 7, 6, 1, 255, 60, 2, 237, 43, 7, 3, 1, 255, 60, 2, 237, 43, 7, + 3, 1, 255, 60, 234, 197, 254, 205, 229, 172, 7, 6, 1, 247, 0, 7, 3, 1, + 247, 0, 7, 6, 1, 130, 2, 235, 16, 7, 3, 1, 130, 2, 235, 16, 7, 6, 1, 130, + 2, 237, 46, 7, 3, 1, 130, 2, 237, 46, 7, 6, 1, 130, 2, 47, 155, 7, 3, 1, + 130, 2, 47, 155, 7, 6, 20, 253, 15, 7, 3, 20, 253, 15, 7, 6, 1, 255, 57, + 2, 155, 7, 3, 1, 255, 57, 2, 155, 7, 6, 1, 255, 57, 2, 233, 79, 7, 3, 1, + 255, 57, 2, 233, 79, 7, 6, 1, 255, 57, 2, 237, 43, 7, 3, 1, 255, 57, 2, + 237, 43, 7, 6, 1, 255, 59, 2, 155, 7, 3, 1, 255, 59, 2, 155, 7, 6, 1, + 255, 59, 2, 229, 162, 7, 3, 1, 255, 59, 2, 229, 162, 7, 6, 1, 255, 59, 2, + 233, 79, 7, 3, 1, 255, 59, 2, 233, 79, 7, 6, 1, 255, 59, 2, 237, 43, 7, + 3, 1, 255, 59, 2, 237, 43, 7, 6, 1, 255, 61, 2, 233, 79, 7, 3, 1, 255, + 61, 2, 233, 79, 7, 6, 1, 255, 61, 2, 237, 43, 7, 3, 1, 255, 61, 2, 237, + 43, 7, 6, 1, 255, 61, 2, 82, 7, 3, 1, 255, 61, 2, 82, 7, 6, 1, 97, 2, + 205, 7, 3, 1, 97, 2, 205, 7, 6, 1, 97, 2, 235, 16, 7, 3, 1, 97, 2, 235, + 16, 7, 6, 1, 97, 2, 237, 46, 7, 3, 1, 97, 2, 237, 46, 7, 6, 1, 97, 2, + 246, 174, 46, 7, 3, 1, 97, 2, 246, 174, 46, 7, 6, 1, 97, 2, 47, 155, 7, + 3, 1, 97, 2, 47, 155, 7, 6, 1, 97, 2, 235, 47, 7, 3, 1, 97, 2, 235, 47, + 7, 6, 1, 255, 71, 2, 229, 162, 7, 3, 1, 255, 71, 2, 229, 162, 7, 6, 1, + 255, 64, 2, 229, 162, 7, 3, 1, 255, 64, 2, 229, 162, 7, 6, 1, 255, 64, 2, + 219, 7, 6, 1, 255, 56, 2, 155, 7, 3, 1, 255, 56, 2, 155, 7, 6, 1, 255, + 56, 2, 56, 46, 7, 3, 1, 255, 56, 2, 56, 46, 7, 6, 1, 255, 56, 2, 237, 43, + 7, 3, 1, 255, 56, 2, 237, 43, 7, 3, 1, 182, 193, 7, 3, 1, 45, 2, 82, 7, + 6, 1, 45, 2, 88, 7, 6, 1, 45, 2, 235, 104, 7, 3, 1, 45, 2, 235, 104, 7, + 6, 1, 206, 183, 7, 3, 1, 206, 183, 7, 6, 1, 246, 157, 73, 7, 6, 1, 255, + 62, 2, 88, 7, 3, 1, 255, 62, 2, 88, 7, 6, 1, 235, 239, 222, 222, 7, 6, 1, + 255, 63, 2, 88, 7, 6, 1, 255, 63, 2, 235, 104, 7, 3, 1, 255, 63, 2, 235, + 104, 7, 3, 1, 209, 237, 75, 7, 6, 1, 200, 72, 7, 6, 1, 237, 144, 7, 6, 1, + 246, 157, 72, 7, 6, 1, 255, 72, 2, 88, 7, 3, 1, 255, 72, 2, 88, 7, 6, 1, + 255, 65, 2, 88, 7, 6, 1, 237, 61, 7, 3, 1, 253, 227, 7, 6, 1, 240, 146, + 7, 6, 1, 255, 55, 2, 82, 7, 6, 1, 255, 67, 2, 88, 7, 3, 1, 255, 67, 2, + 88, 7, 3, 1, 255, 58, 2, 125, 7, 3, 1, 239, 80, 2, 82, 7, 6, 1, 209, 185, + 7, 6, 1, 255, 60, 2, 42, 88, 7, 3, 1, 255, 60, 2, 182, 41, 247, 3, 7, 6, + 1, 130, 2, 237, 44, 205, 7, 6, 1, 130, 2, 240, 179, 7, 3, 1, 130, 2, 240, + 179, 7, 6, 1, 253, 157, 7, 3, 1, 253, 157, 7, 6, 1, 255, 70, 2, 88, 7, 3, + 1, 255, 70, 2, 88, 7, 1, 254, 20, 7, 6, 1, 206, 113, 7, 3, 1, 206, 113, + 7, 6, 1, 246, 232, 7, 1, 200, 253, 146, 240, 202, 7, 3, 1, 255, 61, 2, + 235, 36, 88, 7, 6, 1, 255, 61, 2, 88, 7, 3, 1, 255, 61, 2, 88, 7, 6, 1, + 255, 61, 2, 231, 201, 88, 7, 6, 1, 97, 2, 240, 179, 7, 3, 1, 97, 2, 240, + 179, 7, 6, 1, 233, 92, 7, 6, 1, 255, 69, 2, 88, 7, 6, 1, 255, 64, 2, 88, + 7, 3, 1, 255, 64, 2, 88, 7, 6, 1, 255, 56, 2, 82, 7, 3, 1, 255, 56, 2, + 82, 7, 6, 1, 247, 74, 7, 6, 1, 253, 101, 232, 5, 7, 3, 1, 253, 101, 232, + 5, 7, 3, 1, 253, 101, 2, 240, 133, 7, 1, 135, 2, 82, 7, 6, 1, 206, 173, + 7, 3, 1, 206, 173, 7, 1, 233, 70, 235, 31, 247, 20, 2, 82, 7, 1, 242, 27, + 7, 1, 238, 181, 237, 151, 7, 1, 236, 130, 237, 151, 7, 1, 234, 1, 237, + 151, 7, 1, 231, 201, 237, 151, 7, 6, 1, 254, 235, 2, 237, 43, 7, 6, 1, + 255, 63, 2, 3, 1, 255, 56, 2, 237, 43, 7, 3, 1, 254, 235, 2, 237, 43, 7, + 6, 1, 253, 244, 7, 6, 1, 255, 58, 2, 3, 1, 254, 192, 7, 3, 1, 253, 244, + 7, 6, 1, 253, 250, 7, 6, 1, 255, 60, 2, 3, 1, 254, 192, 7, 3, 1, 253, + 250, 7, 6, 1, 102, 2, 237, 43, 7, 3, 1, 102, 2, 237, 43, 7, 6, 1, 255, + 55, 2, 237, 43, 7, 3, 1, 255, 55, 2, 237, 43, 7, 6, 1, 130, 2, 237, 43, + 7, 3, 1, 130, 2, 237, 43, 7, 6, 1, 97, 2, 237, 43, 7, 3, 1, 97, 2, 237, + 43, 7, 6, 1, 97, 2, 231, 203, 22, 235, 16, 7, 3, 1, 97, 2, 231, 203, 22, + 235, 16, 7, 6, 1, 97, 2, 231, 203, 22, 155, 7, 3, 1, 97, 2, 231, 203, 22, + 155, 7, 6, 1, 97, 2, 231, 203, 22, 237, 43, 7, 3, 1, 97, 2, 231, 203, 22, + 237, 43, 7, 6, 1, 97, 2, 231, 203, 22, 237, 36, 7, 3, 1, 97, 2, 231, 203, + 22, 237, 36, 7, 3, 1, 209, 72, 7, 6, 1, 102, 2, 231, 203, 22, 235, 16, 7, + 3, 1, 102, 2, 231, 203, 22, 235, 16, 7, 6, 1, 102, 2, 56, 64, 22, 235, + 16, 7, 3, 1, 102, 2, 56, 64, 22, 235, 16, 7, 6, 1, 254, 215, 2, 235, 16, + 7, 3, 1, 254, 215, 2, 235, 16, 7, 6, 1, 255, 65, 2, 82, 7, 3, 1, 255, 65, + 2, 82, 7, 6, 1, 255, 65, 2, 237, 43, 7, 3, 1, 255, 65, 2, 237, 43, 7, 6, + 1, 255, 67, 2, 237, 43, 7, 3, 1, 255, 67, 2, 237, 43, 7, 6, 1, 130, 2, + 235, 47, 7, 3, 1, 130, 2, 235, 47, 7, 6, 1, 130, 2, 237, 208, 22, 235, + 16, 7, 3, 1, 130, 2, 237, 208, 22, 235, 16, 7, 6, 1, 253, 101, 2, 237, + 43, 7, 3, 1, 253, 101, 2, 237, 43, 7, 3, 1, 255, 73, 2, 237, 43, 7, 6, 1, + 253, 217, 7, 6, 1, 255, 63, 2, 3, 1, 254, 193, 7, 3, 1, 253, 217, 7, 6, + 1, 255, 65, 2, 155, 7, 3, 1, 255, 65, 2, 155, 7, 6, 1, 238, 9, 7, 6, 1, + 242, 27, 7, 6, 1, 255, 60, 2, 237, 36, 7, 3, 1, 255, 60, 2, 237, 36, 7, + 6, 1, 102, 2, 246, 174, 64, 22, 155, 7, 3, 1, 102, 2, 246, 174, 64, 22, + 155, 7, 6, 1, 254, 215, 2, 155, 7, 3, 1, 254, 215, 2, 155, 7, 6, 1, 130, + 2, 195, 22, 155, 7, 3, 1, 130, 2, 195, 22, 155, 7, 6, 1, 102, 2, 47, 237, + 36, 7, 3, 1, 102, 2, 47, 237, 36, 7, 6, 1, 102, 2, 233, 70, 237, 46, 7, + 3, 1, 102, 2, 233, 70, 237, 46, 7, 6, 1, 161, 2, 47, 237, 36, 7, 3, 1, + 161, 2, 47, 237, 36, 7, 6, 1, 161, 2, 233, 70, 237, 46, 7, 3, 1, 161, 2, + 233, 70, 237, 46, 7, 6, 1, 255, 55, 2, 47, 237, 36, 7, 3, 1, 255, 55, 2, + 47, 237, 36, 7, 6, 1, 255, 55, 2, 233, 70, 237, 46, 7, 3, 1, 255, 55, 2, + 233, 70, 237, 46, 7, 6, 1, 130, 2, 47, 237, 36, 7, 3, 1, 130, 2, 47, 237, + 36, 7, 6, 1, 130, 2, 233, 70, 237, 46, 7, 3, 1, 130, 2, 233, 70, 237, 46, + 7, 6, 1, 255, 57, 2, 47, 237, 36, 7, 3, 1, 255, 57, 2, 47, 237, 36, 7, 6, + 1, 255, 57, 2, 233, 70, 237, 46, 7, 3, 1, 255, 57, 2, 233, 70, 237, 46, + 7, 6, 1, 97, 2, 47, 237, 36, 7, 3, 1, 97, 2, 47, 237, 36, 7, 6, 1, 97, 2, + 233, 70, 237, 46, 7, 3, 1, 97, 2, 233, 70, 237, 46, 7, 6, 1, 255, 59, 2, + 240, 162, 51, 7, 3, 1, 255, 59, 2, 240, 162, 51, 7, 6, 1, 255, 61, 2, + 240, 162, 51, 7, 3, 1, 255, 61, 2, 240, 162, 51, 7, 6, 1, 242, 32, 7, 3, + 1, 242, 32, 7, 6, 1, 255, 66, 2, 237, 43, 7, 3, 1, 255, 66, 2, 237, 43, + 7, 6, 1, 255, 60, 2, 182, 41, 247, 3, 7, 3, 1, 255, 63, 2, 240, 168, 7, + 6, 1, 253, 119, 7, 3, 1, 253, 119, 7, 6, 1, 255, 56, 2, 88, 7, 3, 1, 255, + 56, 2, 88, 7, 6, 1, 102, 2, 56, 46, 7, 3, 1, 102, 2, 56, 46, 7, 6, 1, + 161, 2, 233, 79, 7, 3, 1, 161, 2, 233, 79, 7, 6, 1, 130, 2, 231, 203, 22, + 235, 16, 7, 3, 1, 130, 2, 231, 203, 22, 235, 16, 7, 6, 1, 130, 2, 240, + 128, 22, 235, 16, 7, 3, 1, 130, 2, 240, 128, 22, 235, 16, 7, 6, 1, 130, + 2, 56, 46, 7, 3, 1, 130, 2, 56, 46, 7, 6, 1, 130, 2, 56, 64, 22, 235, 16, + 7, 3, 1, 130, 2, 56, 64, 22, 235, 16, 7, 6, 1, 255, 64, 2, 235, 16, 7, 3, + 1, 255, 64, 2, 235, 16, 7, 3, 1, 255, 58, 2, 240, 168, 7, 3, 1, 255, 60, + 2, 240, 168, 7, 3, 1, 255, 61, 2, 240, 168, 7, 3, 1, 235, 46, 254, 192, + 7, 3, 1, 255, 22, 233, 113, 7, 3, 1, 255, 45, 233, 113, 7, 6, 1, 102, 2, + 82, 7, 6, 1, 255, 62, 2, 82, 7, 3, 1, 255, 62, 2, 82, 7, 6, 1, 255, 58, + 2, 125, 7, 6, 1, 255, 61, 2, 233, 74, 82, 7, 3, 1, 255, 59, 2, 241, 77, + 240, 133, 7, 3, 1, 255, 56, 2, 241, 77, 240, 133, 7, 6, 1, 235, 31, 240, + 121, 7, 3, 1, 235, 31, 240, 121, 7, 6, 1, 45, 2, 82, 7, 6, 1, 97, 125, 7, + 6, 1, 209, 196, 7, 6, 1, 161, 2, 82, 7, 3, 1, 161, 2, 82, 7, 6, 1, 255, + 73, 2, 82, 7, 3, 1, 255, 73, 2, 82, 7, 6, 1, 3, 255, 75, 2, 246, 171, + 240, 133, 7, 3, 1, 255, 75, 2, 246, 171, 240, 133, 7, 6, 1, 255, 57, 2, + 82, 7, 3, 1, 255, 57, 2, 82, 7, 6, 1, 255, 64, 2, 82, 7, 3, 1, 255, 64, + 2, 82, 7, 3, 1, 209, 57, 7, 3, 1, 237, 71, 7, 3, 1, 209, 237, 71, 7, 3, + 1, 45, 2, 88, 7, 3, 1, 246, 157, 73, 7, 3, 1, 255, 62, 2, 240, 168, 7, 3, + 1, 255, 63, 2, 240, 133, 7, 3, 1, 255, 63, 2, 88, 7, 3, 1, 200, 72, 7, 3, + 1, 237, 144, 7, 3, 1, 241, 14, 2, 88, 7, 3, 1, 246, 157, 72, 7, 3, 1, + 200, 246, 157, 72, 7, 3, 1, 200, 246, 157, 161, 2, 88, 7, 3, 1, 237, 58, + 200, 246, 157, 72, 7, 3, 1, 235, 46, 255, 73, 2, 82, 7, 3, 1, 255, 65, 2, + 88, 7, 3, 1, 95, 214, 7, 1, 3, 6, 214, 7, 3, 1, 237, 61, 7, 3, 1, 251, + 172, 240, 179, 7, 3, 1, 209, 212, 7, 3, 1, 255, 66, 2, 88, 7, 3, 1, 250, + 67, 2, 88, 7, 3, 1, 255, 55, 2, 82, 7, 3, 1, 240, 146, 7, 1, 3, 6, 74, 7, + 3, 1, 255, 58, 2, 237, 44, 205, 7, 3, 1, 255, 58, 2, 242, 199, 7, 3, 1, + 255, 58, 2, 231, 201, 88, 7, 3, 1, 244, 95, 7, 3, 1, 209, 185, 7, 3, 1, + 209, 255, 68, 2, 182, 247, 3, 7, 3, 1, 255, 68, 2, 88, 7, 3, 1, 255, 60, + 2, 42, 88, 7, 3, 1, 255, 60, 2, 231, 201, 88, 7, 1, 3, 6, 199, 7, 3, 1, + 237, 118, 73, 7, 1, 3, 6, 253, 15, 7, 3, 1, 237, 58, 237, 68, 7, 3, 1, + 246, 198, 7, 3, 1, 209, 146, 7, 3, 1, 209, 255, 57, 2, 182, 247, 3, 7, 3, + 1, 209, 255, 57, 2, 88, 7, 3, 1, 255, 57, 2, 182, 247, 3, 7, 3, 1, 255, + 57, 2, 240, 133, 7, 3, 1, 255, 57, 2, 231, 251, 7, 3, 1, 200, 255, 57, 2, + 231, 251, 7, 1, 3, 6, 146, 7, 1, 3, 6, 233, 70, 146, 7, 3, 1, 255, 59, 2, + 88, 7, 3, 1, 246, 232, 7, 3, 1, 235, 46, 255, 73, 2, 195, 22, 88, 7, 3, + 1, 241, 250, 200, 246, 232, 7, 3, 1, 253, 146, 2, 240, 168, 7, 3, 1, 209, + 254, 183, 7, 3, 1, 255, 61, 2, 231, 201, 88, 7, 3, 1, 97, 125, 7, 3, 1, + 233, 92, 7, 3, 1, 255, 69, 2, 88, 7, 3, 1, 209, 196, 7, 3, 1, 209, 254, + 195, 7, 3, 1, 209, 254, 190, 7, 1, 3, 6, 254, 190, 7, 3, 1, 255, 56, 2, + 231, 201, 88, 7, 3, 1, 255, 56, 2, 240, 168, 7, 3, 1, 247, 74, 7, 3, 1, + 253, 101, 2, 240, 168, 7, 1, 235, 31, 240, 121, 7, 1, 230, 138, 237, 107, + 231, 71, 7, 1, 233, 70, 235, 31, 240, 121, 7, 1, 233, 34, 254, 194, 7, 1, + 233, 188, 237, 151, 7, 1, 3, 6, 254, 185, 7, 3, 1, 237, 58, 246, 157, 72, + 7, 1, 3, 6, 255, 65, 2, 88, 7, 1, 3, 6, 212, 7, 3, 1, 255, 73, 2, 227, + 200, 7, 3, 1, 209, 254, 186, 7, 1, 3, 6, 149, 7, 3, 1, 255, 75, 2, 88, 7, + 1, 235, 31, 247, 20, 2, 82, 7, 1, 200, 235, 31, 247, 20, 2, 82, 7, 3, 1, + 254, 235, 233, 113, 7, 3, 1, 249, 188, 233, 113, 7, 3, 1, 254, 235, 235, + 90, 2, 240, 168, 7, 3, 1, 255, 50, 233, 113, 7, 3, 1, 252, 14, 233, 113, + 7, 3, 1, 255, 47, 235, 90, 2, 240, 168, 7, 3, 1, 249, 243, 233, 113, 7, + 3, 1, 255, 35, 233, 113, 7, 3, 1, 255, 36, 233, 113, 7, 1, 233, 188, 229, + 209, 7, 1, 234, 20, 229, 209, 7, 3, 1, 209, 255, 66, 2, 231, 251, 7, 3, + 1, 209, 255, 66, 2, 233, 206, 22, 240, 133, 52, 1, 3, 212, 52, 1, 3, 255, + 66, 2, 88, 52, 1, 3, 254, 192, 52, 1, 3, 146, 52, 1, 3, 209, 146, 52, 1, + 3, 209, 255, 57, 2, 88, 52, 1, 3, 6, 233, 70, 146, 52, 1, 3, 254, 195, + 52, 1, 3, 254, 190, 52, 1, 237, 114, 52, 1, 47, 237, 114, 52, 1, 209, + 237, 67, 52, 1, 229, 172, 52, 1, 200, 237, 67, 52, 1, 41, 132, 240, 147, + 52, 1, 42, 132, 240, 147, 52, 1, 235, 31, 240, 121, 52, 1, 200, 235, 31, + 240, 121, 52, 1, 42, 230, 133, 52, 1, 41, 230, 133, 52, 1, 99, 230, 133, + 52, 1, 103, 230, 133, 52, 1, 230, 125, 235, 24, 237, 43, 52, 1, 61, 240, + 138, 52, 1, 235, 16, 52, 1, 240, 159, 235, 24, 52, 1, 240, 163, 235, 24, + 52, 1, 184, 61, 240, 138, 52, 1, 184, 235, 16, 52, 1, 184, 240, 163, 235, + 24, 52, 1, 184, 240, 159, 235, 24, 52, 1, 230, 160, 237, 66, 52, 1, 132, + 230, 160, 237, 66, 52, 1, 235, 112, 41, 132, 240, 147, 52, 1, 235, 112, + 42, 132, 240, 147, 52, 1, 99, 240, 149, 52, 1, 103, 240, 149, 52, 1, 79, + 53, 52, 1, 240, 172, 53, 237, 46, 56, 46, 246, 174, 46, 235, 47, 3, 205, + 47, 240, 159, 235, 24, 52, 1, 239, 222, 88, 52, 1, 240, 221, 235, 24, 52, + 1, 3, 237, 61, 52, 1, 3, 149, 52, 1, 3, 193, 52, 1, 3, 254, 184, 52, 1, + 3, 200, 235, 31, 240, 121, 52, 1, 230, 153, 206, 125, 52, 1, 201, 206, + 125, 52, 1, 253, 152, 206, 125, 52, 1, 184, 206, 125, 52, 1, 231, 237, + 206, 125, 52, 1, 253, 122, 231, 249, 206, 76, 52, 1, 247, 24, 231, 249, + 206, 76, 52, 1, 235, 8, 52, 1, 229, 159, 52, 1, 47, 229, 172, 52, 1, 184, + 103, 230, 133, 52, 1, 184, 99, 230, 133, 52, 1, 184, 42, 230, 133, 52, 1, + 184, 41, 230, 133, 52, 1, 184, 240, 147, 52, 1, 237, 44, 240, 163, 235, + 24, 52, 1, 237, 44, 47, 240, 163, 235, 24, 52, 1, 237, 44, 47, 240, 159, + 235, 24, 52, 1, 184, 205, 52, 1, 237, 105, 237, 66, 52, 1, 240, 205, 201, + 240, 167, 52, 1, 252, 255, 201, 240, 167, 52, 1, 240, 205, 184, 240, 167, + 52, 1, 252, 255, 184, 240, 167, 52, 1, 238, 51, 52, 1, 246, 157, 238, 51, + 52, 1, 184, 42, 58, 36, 240, 163, 235, 24, 36, 240, 159, 235, 24, 36, + 230, 125, 235, 24, 36, 205, 36, 235, 16, 36, 231, 223, 36, 237, 46, 36, + 56, 46, 36, 219, 36, 246, 171, 46, 36, 246, 174, 46, 36, 47, 240, 159, + 235, 24, 36, 237, 43, 36, 61, 246, 167, 46, 36, 47, 61, 246, 167, 46, 36, + 47, 240, 163, 235, 24, 36, 228, 184, 36, 233, 70, 237, 46, 36, 209, 240, + 162, 46, 36, 240, 162, 46, 36, 200, 240, 162, 46, 36, 240, 162, 64, 237, + 41, 36, 240, 163, 237, 48, 51, 36, 240, 159, 237, 48, 51, 36, 42, 246, + 215, 51, 36, 41, 246, 215, 51, 36, 42, 240, 117, 46, 36, 240, 179, 36, + 42, 132, 246, 174, 51, 36, 99, 246, 215, 51, 36, 103, 246, 215, 51, 36, + 79, 5, 51, 36, 240, 172, 5, 51, 36, 230, 85, 246, 171, 51, 36, 231, 201, + 246, 171, 51, 36, 56, 51, 36, 231, 203, 51, 36, 246, 174, 51, 36, 240, + 162, 51, 36, 233, 79, 36, 235, 47, 36, 61, 246, 167, 51, 36, 237, 174, + 51, 36, 233, 70, 47, 248, 238, 51, 36, 241, 29, 51, 36, 230, 125, 237, + 48, 51, 36, 240, 161, 51, 36, 233, 70, 240, 161, 51, 36, 240, 128, 51, + 36, 237, 83, 51, 36, 184, 240, 138, 36, 47, 184, 240, 138, 36, 240, 128, + 233, 87, 36, 240, 125, 195, 233, 87, 36, 182, 195, 233, 87, 36, 240, 125, + 235, 54, 233, 87, 36, 182, 235, 54, 233, 87, 36, 41, 132, 246, 174, 51, + 36, 233, 70, 237, 174, 51, 36, 37, 51, 36, 236, 212, 51, 36, 255, 74, 46, + 36, 61, 205, 36, 47, 231, 223, 36, 240, 163, 206, 76, 36, 240, 159, 206, + 76, 36, 19, 228, 179, 36, 19, 233, 170, 36, 19, 231, 207, 237, 70, 36, + 19, 227, 132, 36, 237, 174, 46, 36, 237, 51, 5, 51, 36, 47, 61, 246, 167, + 51, 36, 42, 240, 117, 51, 36, 190, 240, 128, 46, 36, 231, 79, 46, 36, + 237, 78, 105, 180, 46, 36, 42, 41, 67, 51, 36, 235, 18, 67, 51, 36, 234, + 113, 235, 124, 36, 41, 231, 214, 46, 36, 42, 132, 246, 174, 46, 36, 233, + 205, 36, 255, 74, 51, 36, 42, 231, 214, 51, 36, 41, 231, 214, 51, 36, 41, + 231, 214, 22, 99, 231, 214, 51, 36, 41, 132, 246, 174, 46, 36, 56, 64, + 237, 41, 36, 233, 145, 51, 36, 47, 246, 174, 51, 36, 237, 170, 46, 36, + 47, 240, 161, 51, 36, 47, 237, 46, 36, 47, 235, 16, 36, 47, 237, 83, 51, + 36, 47, 205, 36, 47, 233, 70, 237, 46, 36, 47, 81, 67, 51, 36, 7, 3, 1, + 57, 36, 7, 3, 1, 72, 36, 7, 3, 1, 74, 36, 7, 3, 1, 73, 36, 7, 3, 1, 66, + 36, 7, 3, 1, 254, 194, 36, 7, 3, 1, 222, 222, 36, 7, 3, 1, 212, 36, 7, 3, + 1, 185, 36, 7, 3, 1, 146, 36, 7, 3, 1, 254, 183, 36, 7, 3, 1, 196, 36, 7, + 3, 1, 254, 184, 19, 6, 1, 241, 155, 19, 3, 1, 241, 155, 19, 6, 1, 235, + 83, 237, 143, 19, 3, 1, 235, 83, 237, 143, 19, 207, 53, 19, 203, 207, 53, + 19, 6, 1, 230, 191, 233, 129, 19, 3, 1, 230, 191, 233, 129, 19, 227, 132, + 19, 3, 200, 237, 103, 240, 197, 98, 19, 3, 237, 50, 237, 103, 240, 197, + 98, 19, 3, 200, 237, 50, 237, 103, 240, 197, 98, 19, 233, 82, 76, 19, + 237, 70, 19, 231, 207, 237, 70, 19, 6, 1, 240, 120, 2, 237, 70, 19, 254, + 26, 235, 220, 19, 6, 1, 235, 28, 2, 237, 70, 19, 6, 1, 252, 206, 2, 237, + 70, 19, 6, 1, 246, 168, 2, 237, 70, 19, 6, 1, 235, 35, 2, 237, 70, 19, 6, + 1, 235, 23, 2, 237, 70, 19, 6, 1, 240, 123, 2, 237, 70, 19, 3, 1, 246, + 168, 2, 231, 207, 22, 237, 70, 19, 6, 1, 237, 71, 19, 6, 1, 240, 160, 19, + 6, 1, 237, 61, 19, 6, 1, 237, 75, 19, 6, 1, 233, 96, 19, 6, 1, 240, 173, + 19, 6, 1, 246, 219, 19, 6, 1, 237, 89, 19, 6, 1, 240, 146, 19, 6, 1, 237, + 91, 19, 6, 1, 237, 82, 19, 6, 1, 252, 229, 19, 6, 1, 252, 227, 19, 6, 1, + 253, 38, 19, 6, 1, 233, 100, 19, 6, 1, 252, 223, 19, 6, 1, 246, 209, 19, + 6, 1, 237, 73, 19, 6, 1, 246, 212, 19, 6, 1, 233, 92, 19, 6, 1, 246, 198, + 19, 6, 1, 246, 200, 19, 6, 1, 246, 204, 19, 6, 1, 237, 68, 19, 6, 1, 246, + 168, 2, 230, 152, 19, 6, 1, 235, 23, 2, 230, 152, 19, 3, 1, 240, 120, 2, + 237, 70, 19, 3, 1, 235, 28, 2, 237, 70, 19, 3, 1, 252, 206, 2, 237, 70, + 19, 3, 1, 246, 168, 2, 237, 70, 19, 3, 1, 235, 23, 2, 231, 207, 22, 237, + 70, 19, 3, 1, 237, 71, 19, 3, 1, 240, 160, 19, 3, 1, 237, 61, 19, 3, 1, + 237, 75, 19, 3, 1, 233, 96, 19, 3, 1, 240, 173, 19, 3, 1, 246, 219, 19, + 3, 1, 237, 89, 19, 3, 1, 240, 146, 19, 3, 1, 237, 91, 19, 3, 1, 237, 82, + 19, 3, 1, 252, 229, 19, 3, 1, 252, 227, 19, 3, 1, 253, 38, 19, 3, 1, 233, + 100, 19, 3, 1, 252, 223, 19, 3, 1, 246, 209, 19, 3, 1, 35, 237, 73, 19, + 3, 1, 237, 73, 19, 3, 1, 246, 212, 19, 3, 1, 233, 92, 19, 3, 1, 246, 198, + 19, 3, 1, 246, 200, 19, 3, 1, 246, 204, 19, 3, 1, 237, 68, 19, 3, 1, 246, + 168, 2, 230, 152, 19, 3, 1, 235, 23, 2, 230, 152, 19, 3, 1, 235, 35, 2, + 237, 70, 19, 3, 1, 235, 23, 2, 237, 70, 19, 3, 1, 240, 123, 2, 237, 70, + 19, 6, 253, 150, 98, 19, 249, 112, 98, 19, 240, 178, 98, 19, 235, 23, 2, + 246, 171, 98, 19, 235, 23, 2, 240, 159, 22, 246, 171, 98, 19, 235, 23, 2, + 231, 203, 22, 246, 171, 98, 19, 253, 120, 98, 19, 254, 200, 98, 19, 253, + 150, 98, 19, 1, 235, 83, 237, 136, 19, 3, 1, 235, 83, 237, 136, 19, 1, + 235, 138, 19, 3, 1, 235, 138, 19, 1, 233, 129, 19, 3, 1, 233, 129, 19, 1, + 237, 136, 19, 3, 1, 237, 136, 19, 1, 237, 143, 19, 3, 1, 237, 143, 70, 6, + 1, 240, 212, 70, 3, 1, 240, 212, 70, 6, 1, 248, 37, 70, 3, 1, 248, 37, + 70, 6, 1, 241, 1, 70, 3, 1, 241, 1, 70, 6, 1, 240, 209, 70, 3, 1, 240, + 209, 70, 6, 1, 235, 93, 70, 3, 1, 235, 93, 70, 6, 1, 237, 146, 70, 3, 1, + 237, 146, 70, 6, 1, 248, 25, 70, 3, 1, 248, 25, 19, 240, 210, 98, 19, + 253, 70, 98, 19, 237, 103, 240, 197, 98, 19, 1, 248, 203, 19, 6, 240, + 178, 98, 19, 237, 103, 235, 28, 98, 19, 200, 237, 103, 235, 28, 98, 19, + 6, 1, 246, 245, 19, 3, 1, 246, 245, 19, 6, 237, 103, 240, 197, 98, 19, 6, + 1, 247, 49, 19, 3, 1, 247, 49, 19, 253, 70, 2, 195, 98, 19, 6, 200, 237, + 103, 240, 197, 98, 19, 6, 237, 50, 237, 103, 240, 197, 98, 19, 6, 200, + 237, 50, 237, 103, 240, 197, 98, 28, 6, 1, 254, 237, 2, 237, 36, 28, 6, + 1, 253, 232, 28, 6, 1, 247, 70, 28, 6, 1, 248, 55, 28, 6, 1, 232, 61, + 253, 77, 28, 6, 1, 246, 255, 28, 6, 1, 222, 224, 74, 28, 6, 1, 253, 28, + 28, 6, 1, 253, 117, 28, 6, 1, 247, 86, 28, 6, 1, 247, 43, 28, 6, 1, 242, + 10, 28, 6, 1, 248, 84, 28, 6, 1, 255, 55, 2, 237, 36, 28, 6, 1, 240, 125, + 66, 28, 6, 1, 241, 122, 28, 6, 1, 57, 28, 6, 1, 253, 73, 28, 6, 1, 253, + 95, 28, 6, 1, 247, 13, 28, 6, 1, 253, 20, 28, 6, 1, 253, 77, 28, 6, 1, + 246, 251, 28, 6, 1, 253, 46, 28, 6, 1, 74, 28, 6, 1, 240, 125, 74, 28, 6, + 1, 177, 28, 6, 1, 253, 58, 28, 6, 1, 253, 87, 28, 6, 1, 252, 232, 28, 6, + 1, 73, 28, 6, 1, 253, 0, 28, 6, 1, 253, 99, 28, 6, 1, 253, 116, 28, 6, 1, + 253, 9, 28, 6, 1, 66, 28, 6, 1, 253, 124, 28, 6, 1, 154, 28, 6, 1, 246, + 248, 28, 6, 1, 246, 217, 28, 6, 1, 246, 165, 28, 6, 1, 237, 215, 28, 6, + 1, 248, 58, 53, 28, 6, 1, 241, 24, 28, 6, 1, 246, 227, 53, 28, 6, 1, 72, + 28, 6, 1, 252, 233, 28, 6, 1, 191, 28, 3, 1, 57, 28, 3, 1, 253, 73, 28, + 3, 1, 253, 95, 28, 3, 1, 247, 13, 28, 3, 1, 253, 20, 28, 3, 1, 253, 77, + 28, 3, 1, 246, 251, 28, 3, 1, 253, 46, 28, 3, 1, 74, 28, 3, 1, 240, 125, + 74, 28, 3, 1, 177, 28, 3, 1, 253, 58, 28, 3, 1, 253, 87, 28, 3, 1, 252, + 232, 28, 3, 1, 73, 28, 3, 1, 253, 0, 28, 3, 1, 253, 99, 28, 3, 1, 253, + 116, 28, 3, 1, 253, 9, 28, 3, 1, 66, 28, 3, 1, 253, 124, 28, 3, 1, 154, + 28, 3, 1, 246, 248, 28, 3, 1, 246, 217, 28, 3, 1, 246, 165, 28, 3, 1, + 237, 215, 28, 3, 1, 248, 58, 53, 28, 3, 1, 241, 24, 28, 3, 1, 246, 227, + 53, 28, 3, 1, 72, 28, 3, 1, 252, 233, 28, 3, 1, 191, 28, 3, 1, 254, 237, + 2, 237, 36, 28, 3, 1, 253, 232, 28, 3, 1, 247, 70, 28, 3, 1, 248, 55, 28, + 3, 1, 232, 61, 253, 77, 28, 3, 1, 246, 255, 28, 3, 1, 222, 224, 74, 28, + 3, 1, 253, 28, 28, 3, 1, 253, 117, 28, 3, 1, 247, 86, 28, 3, 1, 247, 43, + 28, 3, 1, 242, 10, 28, 3, 1, 248, 84, 28, 3, 1, 255, 55, 2, 237, 36, 28, + 3, 1, 240, 125, 66, 28, 3, 1, 241, 122, 28, 6, 1, 237, 68, 28, 3, 1, 237, + 68, 28, 6, 1, 247, 25, 28, 3, 1, 247, 25, 28, 6, 1, 233, 93, 72, 28, 3, + 1, 233, 93, 72, 28, 6, 1, 237, 102, 246, 183, 28, 3, 1, 237, 102, 246, + 183, 28, 6, 1, 233, 93, 237, 102, 246, 183, 28, 3, 1, 233, 93, 237, 102, + 246, 183, 28, 6, 1, 253, 47, 246, 183, 28, 3, 1, 253, 47, 246, 183, 28, + 6, 1, 233, 93, 253, 47, 246, 183, 28, 3, 1, 233, 93, 253, 47, 246, 183, + 28, 6, 1, 247, 83, 28, 3, 1, 247, 83, 28, 6, 1, 246, 204, 28, 3, 1, 246, + 204, 28, 6, 1, 240, 226, 28, 3, 1, 240, 226, 28, 6, 1, 233, 151, 28, 3, + 1, 233, 151, 28, 6, 1, 235, 180, 2, 47, 240, 163, 235, 24, 28, 3, 1, 235, + 180, 2, 47, 240, 163, 235, 24, 28, 6, 1, 253, 137, 28, 3, 1, 253, 137, + 28, 6, 1, 241, 226, 237, 68, 28, 3, 1, 241, 226, 237, 68, 28, 6, 1, 240, + 123, 2, 237, 220, 28, 3, 1, 240, 123, 2, 237, 220, 28, 6, 1, 253, 188, + 28, 3, 1, 253, 188, 28, 6, 1, 237, 136, 28, 3, 1, 237, 136, 28, 232, 12, + 53, 36, 28, 237, 220, 36, 28, 227, 74, 36, 28, 172, 232, 35, 36, 28, 186, + 232, 35, 36, 28, 232, 252, 36, 28, 235, 56, 232, 12, 53, 36, 28, 233, + 152, 53, 28, 6, 1, 240, 125, 255, 55, 2, 240, 133, 28, 3, 1, 240, 125, + 255, 55, 2, 240, 133, 28, 6, 1, 233, 233, 53, 28, 3, 1, 233, 233, 53, 28, + 6, 1, 255, 5, 2, 240, 216, 28, 3, 1, 255, 5, 2, 240, 216, 28, 6, 1, 253, + 67, 2, 235, 230, 28, 3, 1, 253, 67, 2, 235, 230, 28, 6, 1, 253, 67, 2, + 82, 28, 3, 1, 253, 67, 2, 82, 28, 6, 1, 253, 67, 2, 237, 44, 88, 28, 3, + 1, 253, 67, 2, 237, 44, 88, 28, 6, 1, 253, 123, 2, 230, 126, 28, 3, 1, + 253, 123, 2, 230, 126, 28, 6, 1, 254, 245, 2, 230, 126, 28, 3, 1, 254, + 245, 2, 230, 126, 28, 6, 1, 188, 2, 230, 126, 28, 3, 1, 188, 2, 230, 126, + 28, 6, 1, 188, 2, 61, 82, 28, 3, 1, 188, 2, 61, 82, 28, 6, 1, 188, 2, 82, + 28, 3, 1, 188, 2, 82, 28, 6, 1, 235, 149, 177, 28, 3, 1, 235, 149, 177, + 28, 6, 1, 254, 199, 2, 230, 126, 28, 3, 1, 254, 199, 2, 230, 126, 28, 6, + 20, 254, 199, 247, 13, 28, 3, 20, 254, 199, 247, 13, 28, 6, 1, 254, 231, + 2, 237, 44, 88, 28, 3, 1, 254, 231, 2, 237, 44, 88, 28, 6, 1, 231, 215, + 154, 28, 3, 1, 231, 215, 154, 28, 6, 1, 255, 6, 2, 230, 126, 28, 3, 1, + 255, 6, 2, 230, 126, 28, 6, 1, 254, 212, 2, 230, 126, 28, 3, 1, 254, 212, + 2, 230, 126, 28, 6, 1, 233, 157, 66, 28, 3, 1, 233, 157, 66, 28, 6, 1, + 233, 157, 97, 2, 82, 28, 3, 1, 233, 157, 97, 2, 82, 28, 6, 1, 254, 204, + 2, 230, 126, 28, 3, 1, 254, 204, 2, 230, 126, 28, 6, 20, 254, 212, 246, + 248, 28, 3, 20, 254, 212, 246, 248, 28, 6, 1, 253, 74, 2, 230, 126, 28, + 3, 1, 253, 74, 2, 230, 126, 28, 6, 1, 253, 74, 2, 61, 82, 28, 3, 1, 253, + 74, 2, 61, 82, 28, 6, 1, 241, 236, 28, 3, 1, 241, 236, 28, 6, 1, 231, + 215, 246, 217, 28, 3, 1, 231, 215, 246, 217, 28, 6, 1, 231, 215, 253, 74, + 2, 230, 126, 28, 3, 1, 231, 215, 253, 74, 2, 230, 126, 28, 1, 232, 32, + 28, 6, 1, 253, 123, 2, 237, 46, 28, 3, 1, 253, 123, 2, 237, 46, 28, 6, 1, + 188, 2, 88, 28, 3, 1, 188, 2, 88, 28, 6, 1, 254, 211, 2, 240, 133, 28, 3, + 1, 254, 211, 2, 240, 133, 28, 6, 1, 254, 199, 2, 88, 28, 3, 1, 254, 199, + 2, 88, 28, 6, 1, 254, 199, 2, 240, 133, 28, 3, 1, 254, 199, 2, 240, 133, + 28, 6, 1, 230, 189, 246, 217, 28, 3, 1, 230, 189, 246, 217, 28, 6, 1, + 254, 213, 2, 240, 133, 28, 3, 1, 254, 213, 2, 240, 133, 28, 3, 1, 232, + 32, 28, 6, 1, 102, 2, 237, 46, 28, 3, 1, 102, 2, 237, 46, 28, 6, 1, 102, + 2, 219, 28, 3, 1, 102, 2, 219, 28, 6, 20, 102, 253, 77, 28, 3, 20, 102, + 253, 77, 28, 6, 1, 254, 237, 2, 237, 46, 28, 3, 1, 254, 237, 2, 237, 46, + 28, 6, 1, 237, 144, 28, 3, 1, 237, 144, 28, 6, 1, 241, 14, 2, 219, 28, 3, + 1, 241, 14, 2, 219, 28, 6, 1, 253, 123, 2, 219, 28, 3, 1, 253, 123, 2, + 219, 28, 6, 1, 254, 245, 2, 219, 28, 3, 1, 254, 245, 2, 219, 28, 6, 1, + 231, 215, 246, 255, 28, 3, 1, 231, 215, 246, 255, 28, 6, 1, 255, 55, 2, + 235, 16, 28, 3, 1, 255, 55, 2, 235, 16, 28, 6, 1, 255, 55, 2, 219, 28, 3, + 1, 255, 55, 2, 219, 28, 6, 1, 130, 2, 219, 28, 3, 1, 130, 2, 219, 28, 6, + 1, 237, 118, 73, 28, 3, 1, 237, 118, 73, 28, 6, 1, 237, 118, 130, 2, 219, + 28, 3, 1, 237, 118, 130, 2, 219, 28, 6, 1, 161, 2, 219, 28, 3, 1, 161, 2, + 219, 28, 6, 1, 97, 2, 235, 16, 28, 3, 1, 97, 2, 235, 16, 28, 6, 1, 97, 2, + 219, 28, 3, 1, 97, 2, 219, 28, 6, 1, 97, 2, 47, 155, 28, 3, 1, 97, 2, 47, + 155, 28, 6, 1, 253, 74, 2, 219, 28, 3, 1, 253, 74, 2, 219, 28, 6, 1, 253, + 67, 2, 230, 126, 28, 3, 1, 253, 67, 2, 230, 126, 28, 6, 1, 247, 119, 2, + 219, 28, 3, 1, 247, 119, 2, 219, 28, 6, 1, 253, 67, 2, 195, 22, 88, 28, + 3, 1, 253, 67, 2, 195, 22, 88, 28, 6, 1, 254, 204, 2, 88, 28, 3, 1, 254, + 204, 2, 88, 28, 6, 1, 254, 204, 2, 82, 28, 3, 1, 254, 204, 2, 82, 28, 6, + 1, 246, 207, 253, 20, 28, 3, 1, 246, 207, 253, 20, 28, 6, 1, 246, 207, + 247, 70, 28, 3, 1, 246, 207, 247, 70, 28, 6, 1, 246, 207, 248, 209, 28, + 3, 1, 246, 207, 248, 209, 28, 6, 1, 246, 207, 241, 123, 28, 3, 1, 246, + 207, 241, 123, 28, 6, 1, 246, 207, 247, 86, 28, 3, 1, 246, 207, 247, 86, + 28, 6, 1, 246, 207, 247, 43, 28, 3, 1, 246, 207, 247, 43, 28, 6, 1, 246, + 207, 248, 164, 28, 3, 1, 246, 207, 248, 164, 28, 6, 1, 246, 207, 248, + 173, 28, 3, 1, 246, 207, 248, 173, 28, 6, 1, 200, 253, 46, 28, 3, 1, 200, + 253, 46, 28, 6, 1, 254, 211, 2, 88, 28, 3, 1, 254, 211, 2, 88, 28, 6, 1, + 247, 17, 28, 3, 1, 247, 17, 28, 6, 1, 247, 48, 28, 3, 1, 247, 48, 28, 6, + 1, 247, 61, 28, 3, 1, 247, 61, 28, 6, 1, 253, 35, 28, 3, 1, 253, 35, 28, + 6, 1, 252, 250, 28, 3, 1, 252, 250, 28, 6, 1, 241, 92, 177, 28, 3, 1, + 241, 92, 177, 28, 6, 1, 254, 211, 2, 237, 44, 88, 28, 3, 1, 254, 211, 2, + 237, 44, 88, 28, 6, 1, 254, 199, 2, 237, 44, 88, 28, 3, 1, 254, 199, 2, + 237, 44, 88, 120, 6, 1, 247, 245, 120, 6, 1, 247, 252, 120, 6, 1, 248, + 53, 120, 6, 1, 252, 203, 120, 6, 1, 247, 137, 120, 6, 1, 252, 226, 120, + 6, 1, 253, 144, 120, 6, 1, 253, 125, 120, 6, 1, 96, 120, 6, 1, 246, 251, + 120, 6, 1, 247, 152, 120, 6, 1, 241, 183, 120, 6, 1, 247, 229, 120, 6, 1, + 252, 215, 120, 6, 1, 248, 81, 120, 6, 1, 253, 21, 120, 6, 1, 252, 213, + 120, 6, 1, 241, 141, 120, 6, 1, 241, 109, 120, 6, 1, 247, 173, 120, 6, 1, + 253, 28, 120, 6, 1, 247, 94, 120, 6, 1, 246, 165, 120, 6, 1, 253, 108, + 120, 6, 1, 246, 176, 120, 6, 1, 247, 188, 120, 6, 1, 241, 165, 120, 6, 1, + 208, 120, 6, 1, 248, 154, 120, 6, 1, 248, 191, 120, 6, 1, 242, 3, 120, 6, + 1, 247, 198, 120, 6, 1, 253, 66, 120, 6, 1, 241, 87, 120, 6, 1, 241, 213, + 120, 6, 1, 247, 156, 120, 6, 1, 253, 187, 120, 6, 1, 247, 75, 120, 52, 1, + 42, 132, 240, 147, 120, 229, 172, 120, 233, 203, 76, 120, 229, 165, 76, + 120, 237, 67, 120, 233, 82, 76, 120, 228, 196, 76, 120, 3, 1, 247, 245, + 120, 3, 1, 247, 252, 120, 3, 1, 248, 53, 120, 3, 1, 252, 203, 120, 3, 1, + 247, 137, 120, 3, 1, 252, 226, 120, 3, 1, 253, 144, 120, 3, 1, 253, 125, + 120, 3, 1, 96, 120, 3, 1, 246, 251, 120, 3, 1, 247, 152, 120, 3, 1, 241, + 183, 120, 3, 1, 247, 229, 120, 3, 1, 252, 215, 120, 3, 1, 248, 81, 120, + 3, 1, 253, 21, 120, 3, 1, 252, 213, 120, 3, 1, 241, 141, 120, 3, 1, 241, + 109, 120, 3, 1, 247, 173, 120, 3, 1, 253, 28, 120, 3, 1, 247, 94, 120, 3, + 1, 246, 165, 120, 3, 1, 253, 108, 120, 3, 1, 246, 176, 120, 3, 1, 247, + 188, 120, 3, 1, 241, 165, 120, 3, 1, 208, 120, 3, 1, 248, 154, 120, 3, 1, + 248, 191, 120, 3, 1, 242, 3, 120, 3, 1, 247, 198, 120, 3, 1, 253, 66, + 120, 3, 1, 241, 87, 120, 3, 1, 241, 213, 120, 3, 1, 247, 156, 120, 3, 1, + 253, 187, 120, 3, 1, 247, 75, 120, 3, 20, 254, 50, 241, 87, 120, 246, + 162, 240, 121, 120, 235, 69, 78, 237, 48, 234, 98, 78, 237, 48, 237, 213, + 78, 237, 48, 230, 108, 78, 237, 48, 242, 36, 238, 38, 78, 237, 48, 242, + 36, 238, 229, 78, 237, 48, 237, 6, 78, 237, 48, 239, 220, 78, 237, 48, + 240, 101, 78, 237, 48, 236, 184, 78, 237, 48, 240, 98, 78, 237, 48, 240, + 34, 78, 237, 48, 235, 173, 78, 237, 48, 238, 236, 236, 161, 78, 237, 48, + 230, 186, 78, 237, 48, 239, 209, 245, 61, 78, 237, 48, 235, 221, 236, 90, + 78, 237, 48, 239, 184, 78, 237, 48, 242, 66, 236, 101, 78, 237, 48, 239, + 121, 78, 237, 48, 232, 223, 78, 237, 48, 236, 153, 78, 237, 48, 239, 104, + 236, 118, 78, 237, 48, 238, 172, 78, 237, 48, 239, 207, 78, 237, 48, 235, + 221, 236, 197, 78, 237, 48, 246, 87, 254, 32, 246, 94, 78, 237, 48, 251, + 97, 78, 237, 48, 244, 7, 78, 237, 48, 243, 55, 78, 237, 48, 240, 109, 78, + 165, 239, 99, 235, 20, 78, 240, 143, 239, 247, 78, 240, 143, 241, 42, + 237, 213, 78, 240, 143, 241, 42, 237, 187, 78, 240, 143, 241, 42, 235, + 134, 78, 240, 143, 238, 6, 78, 240, 143, 240, 49, 78, 240, 143, 237, 213, + 78, 240, 143, 237, 187, 78, 240, 143, 235, 134, 78, 240, 143, 238, 7, 78, + 240, 143, 243, 231, 243, 170, 32, 247, 221, 78, 240, 143, 236, 198, 78, + 240, 143, 237, 200, 145, 237, 206, 78, 240, 143, 239, 105, 78, 229, 161, + 239, 97, 78, 240, 143, 241, 11, 78, 229, 161, 239, 181, 78, 240, 143, + 246, 244, 246, 164, 78, 240, 143, 253, 193, 246, 164, 78, 229, 161, 254, + 149, 239, 182, 78, 165, 240, 116, 246, 164, 78, 165, 203, 246, 164, 78, + 229, 161, 253, 23, 234, 114, 78, 240, 143, 239, 208, 238, 38, 78, 1, 240, + 174, 78, 1, 247, 253, 78, 1, 238, 247, 78, 1, 237, 238, 78, 1, 252, 252, + 78, 1, 247, 221, 78, 1, 240, 102, 78, 1, 248, 60, 78, 1, 247, 210, 78, 1, + 247, 63, 78, 1, 35, 247, 1, 78, 1, 247, 1, 78, 1, 237, 205, 78, 1, 35, + 247, 41, 78, 1, 247, 41, 78, 1, 35, 246, 195, 78, 1, 246, 195, 78, 1, + 236, 205, 78, 1, 241, 97, 78, 1, 35, 253, 0, 78, 1, 253, 0, 78, 1, 35, + 238, 77, 78, 1, 238, 77, 78, 1, 248, 142, 78, 1, 241, 222, 78, 1, 240, + 203, 78, 1, 248, 171, 78, 20, 235, 106, 47, 247, 221, 78, 20, 235, 106, + 253, 200, 247, 63, 78, 20, 235, 106, 47, 247, 63, 78, 229, 161, 235, 173, + 78, 229, 161, 230, 186, 10, 65, 53, 10, 5, 239, 237, 10, 234, 105, 235, + 70, 10, 5, 239, 233, 228, 177, 248, 11, 240, 233, 228, 177, 237, 182, + 240, 233, 10, 251, 175, 228, 177, 253, 129, 241, 194, 53, 228, 177, 253, + 129, 253, 53, 233, 117, 53, 235, 238, 53, 10, 237, 67, 10, 248, 20, 230, + 131, 10, 239, 201, 242, 19, 53, 10, 5, 239, 116, 10, 5, 229, 214, 237, + 171, 231, 185, 10, 5, 237, 171, 232, 79, 10, 5, 230, 94, 235, 244, 10, 5, + 251, 170, 235, 246, 242, 57, 10, 5, 231, 175, 10, 3, 201, 247, 55, 10, 3, + 201, 20, 92, 2, 216, 2, 247, 26, 10, 3, 201, 241, 89, 10, 3, 237, 247, + 10, 3, 237, 176, 10, 3, 238, 12, 10, 230, 140, 10, 237, 49, 56, 229, 161, + 76, 10, 233, 82, 76, 10, 1, 238, 5, 10, 1, 92, 2, 240, 229, 46, 10, 1, + 92, 2, 164, 46, 10, 1, 253, 54, 2, 164, 46, 10, 1, 92, 2, 164, 51, 10, 1, + 62, 2, 164, 46, 10, 1, 240, 174, 10, 1, 247, 251, 10, 1, 252, 210, 234, + 150, 10, 1, 252, 11, 10, 1, 245, 243, 10, 1, 241, 164, 10, 1, 250, 59, + 10, 1, 241, 171, 10, 1, 249, 176, 10, 1, 245, 242, 10, 1, 247, 198, 10, + 1, 241, 89, 10, 1, 241, 67, 10, 1, 239, 244, 10, 1, 251, 209, 10, 1, 249, + 174, 10, 1, 247, 55, 10, 1, 252, 167, 10, 1, 246, 224, 10, 1, 237, 255, + 10, 1, 240, 191, 2, 135, 197, 46, 10, 1, 240, 191, 2, 152, 197, 51, 10, + 1, 240, 176, 62, 2, 233, 70, 196, 10, 1, 240, 176, 62, 2, 135, 197, 46, + 10, 1, 240, 176, 62, 2, 152, 197, 46, 10, 234, 241, 10, 1, 247, 75, 10, + 1, 248, 139, 10, 1, 247, 1, 10, 1, 248, 89, 10, 1, 241, 190, 10, 1, 241, + 205, 10, 1, 250, 64, 10, 1, 247, 60, 10, 1, 92, 233, 172, 10, 1, 247, 26, + 10, 232, 184, 10, 232, 105, 10, 232, 212, 10, 237, 247, 10, 237, 176, 10, + 238, 12, 10, 236, 220, 10, 238, 69, 10, 239, 92, 46, 10, 164, 46, 10, + 164, 51, 10, 231, 195, 240, 174, 10, 233, 70, 237, 176, 10, 165, 246, + 156, 235, 174, 10, 233, 68, 10, 31, 5, 3, 255, 69, 46, 10, 31, 5, 233, + 70, 3, 255, 69, 46, 10, 31, 5, 56, 51, 10, 200, 237, 176, 10, 240, 224, + 2, 135, 240, 169, 228, 177, 21, 240, 126, 228, 177, 21, 118, 228, 177, + 21, 113, 228, 177, 21, 166, 228, 177, 21, 158, 228, 177, 21, 173, 228, + 177, 21, 183, 228, 177, 21, 194, 228, 177, 21, 187, 228, 177, 21, 192, + 10, 235, 86, 53, 10, 235, 163, 230, 131, 10, 232, 12, 230, 131, 10, 246, + 159, 235, 50, 240, 139, 10, 1, 235, 46, 247, 251, 10, 1, 235, 46, 248, + 139, 10, 1, 229, 163, 240, 174, 10, 1, 92, 240, 82, 10, 1, 92, 2, 246, + 239, 164, 46, 10, 1, 92, 2, 246, 239, 164, 51, 10, 1, 201, 238, 5, 10, 1, + 201, 164, 240, 174, 10, 1, 201, 164, 247, 60, 10, 1, 97, 2, 164, 46, 10, + 1, 201, 164, 247, 26, 10, 1, 246, 12, 10, 1, 237, 12, 10, 1, 242, 197, + 10, 1, 252, 210, 2, 240, 147, 10, 1, 252, 210, 2, 152, 197, 64, 230, 134, + 10, 1, 247, 188, 10, 1, 240, 32, 10, 1, 238, 119, 10, 1, 101, 2, 164, 46, + 10, 1, 101, 2, 135, 197, 61, 46, 10, 1, 245, 20, 10, 1, 243, 89, 10, 1, + 101, 2, 152, 197, 46, 10, 1, 240, 30, 10, 1, 234, 242, 10, 1, 243, 30, + 10, 1, 253, 56, 2, 240, 147, 10, 1, 253, 56, 2, 56, 51, 10, 1, 253, 56, + 2, 56, 240, 144, 22, 3, 247, 55, 10, 1, 238, 167, 10, 1, 236, 43, 10, 1, + 249, 210, 10, 1, 253, 56, 2, 152, 197, 64, 230, 134, 10, 1, 253, 56, 2, + 246, 160, 197, 46, 10, 1, 245, 122, 10, 1, 252, 225, 2, 3, 196, 10, 1, + 252, 225, 2, 240, 147, 10, 1, 252, 225, 2, 56, 51, 10, 1, 252, 225, 2, 3, + 255, 69, 51, 10, 1, 252, 225, 2, 56, 240, 144, 22, 56, 46, 10, 1, 252, + 225, 2, 135, 197, 46, 10, 1, 250, 127, 10, 1, 252, 225, 2, 246, 160, 197, + 46, 10, 1, 246, 163, 2, 56, 240, 144, 22, 56, 46, 10, 1, 246, 163, 2, + 152, 197, 51, 10, 1, 246, 163, 2, 152, 197, 240, 144, 22, 152, 197, 46, + 10, 1, 252, 240, 2, 135, 197, 51, 10, 1, 252, 240, 2, 152, 197, 46, 10, + 1, 252, 241, 2, 152, 197, 46, 10, 1, 252, 244, 2, 152, 197, 46, 10, 1, + 235, 46, 247, 75, 10, 1, 252, 235, 2, 56, 244, 152, 51, 10, 1, 252, 235, + 2, 56, 51, 10, 1, 252, 73, 10, 1, 252, 235, 2, 152, 197, 51, 10, 1, 239, + 187, 10, 1, 253, 1, 2, 56, 46, 10, 1, 253, 1, 2, 152, 197, 46, 10, 1, + 239, 61, 10, 1, 241, 77, 247, 1, 10, 1, 252, 214, 2, 240, 147, 10, 1, + 252, 214, 2, 56, 46, 10, 1, 253, 69, 10, 1, 252, 214, 2, 152, 197, 51, + 10, 1, 250, 10, 10, 1, 253, 102, 2, 240, 147, 10, 1, 239, 140, 10, 1, + 253, 102, 2, 135, 197, 51, 10, 1, 243, 158, 10, 1, 253, 102, 2, 152, 197, + 46, 10, 1, 216, 2, 3, 196, 10, 1, 216, 2, 56, 46, 10, 1, 216, 2, 152, + 197, 46, 10, 1, 216, 2, 152, 197, 51, 10, 1, 246, 156, 2, 56, 51, 10, 1, + 246, 156, 235, 174, 10, 1, 239, 225, 10, 1, 246, 156, 2, 240, 147, 10, 1, + 246, 156, 2, 152, 197, 46, 10, 1, 252, 207, 228, 242, 10, 1, 240, 237, 2, + 56, 46, 10, 1, 252, 207, 2, 62, 46, 10, 1, 252, 207, 241, 144, 10, 1, + 252, 207, 247, 34, 2, 164, 46, 10, 1, 252, 210, 235, 129, 241, 144, 10, + 1, 253, 54, 2, 240, 147, 10, 1, 235, 49, 253, 15, 10, 1, 253, 15, 10, 1, + 66, 10, 1, 252, 233, 10, 1, 235, 49, 252, 233, 10, 1, 253, 54, 2, 135, + 197, 46, 10, 1, 253, 95, 10, 1, 240, 176, 247, 26, 10, 1, 62, 2, 240, + 133, 10, 1, 62, 2, 3, 196, 10, 1, 253, 54, 2, 56, 46, 10, 1, 72, 10, 1, + 62, 2, 152, 197, 51, 10, 1, 62, 236, 9, 10, 1, 62, 237, 123, 2, 164, 46, + 10, 246, 162, 240, 121, 10, 1, 253, 4, 10, 3, 201, 20, 252, 240, 2, 216, + 2, 92, 233, 172, 10, 3, 201, 20, 253, 1, 2, 216, 2, 92, 233, 172, 10, 3, + 201, 55, 59, 15, 10, 3, 201, 216, 240, 174, 10, 3, 201, 241, 164, 10, 3, + 201, 152, 240, 169, 10, 3, 201, 241, 67, 10, 252, 255, 106, 242, 68, 10, + 241, 75, 106, 254, 145, 254, 211, 243, 178, 10, 3, 201, 235, 98, 240, + 126, 10, 3, 201, 237, 15, 229, 211, 240, 126, 10, 3, 201, 235, 46, 247, + 148, 106, 241, 171, 10, 3, 201, 55, 44, 15, 10, 3, 184, 241, 67, 10, 3, + 201, 239, 91, 10, 3, 247, 60, 10, 3, 247, 26, 10, 3, 201, 247, 26, 10, 3, + 201, 241, 205, 10, 241, 214, 106, 236, 204, 10, 240, 195, 237, 95, 184, + 240, 121, 10, 240, 195, 237, 95, 201, 240, 121, 10, 235, 98, 201, 247, + 20, 2, 238, 219, 235, 111, 10, 3, 184, 241, 190, 10, 1, 253, 56, 2, 233, + 70, 196, 10, 1, 252, 225, 2, 233, 70, 196, 233, 81, 228, 177, 21, 240, + 126, 233, 81, 228, 177, 21, 118, 233, 81, 228, 177, 21, 113, 233, 81, + 228, 177, 21, 166, 233, 81, 228, 177, 21, 158, 233, 81, 228, 177, 21, + 173, 233, 81, 228, 177, 21, 183, 233, 81, 228, 177, 21, 194, 233, 81, + 228, 177, 21, 187, 233, 81, 228, 177, 21, 192, 10, 1, 240, 129, 2, 56, + 51, 10, 1, 252, 237, 2, 56, 51, 10, 1, 240, 157, 2, 56, 51, 10, 5, 238, + 60, 230, 142, 10, 5, 238, 60, 229, 52, 247, 173, 10, 1, 252, 207, 2, 233, + 70, 196, 151, 252, 255, 106, 231, 118, 151, 229, 194, 246, 162, 240, 121, + 151, 232, 8, 246, 162, 240, 121, 151, 229, 194, 237, 66, 151, 232, 8, + 237, 66, 151, 169, 237, 66, 151, 240, 194, 237, 191, 240, 132, 151, 240, + 194, 237, 191, 237, 41, 151, 229, 194, 240, 194, 237, 191, 240, 132, 151, + 232, 8, 240, 194, 237, 191, 237, 41, 151, 228, 230, 151, 233, 166, 236, + 173, 151, 233, 166, 231, 101, 151, 233, 166, 229, 231, 151, 228, 196, 76, + 151, 1, 237, 227, 151, 1, 229, 163, 237, 227, 151, 1, 242, 202, 151, 1, + 238, 231, 151, 1, 243, 113, 232, 23, 151, 1, 236, 40, 151, 1, 235, 46, + 238, 169, 241, 224, 151, 1, 252, 252, 151, 1, 247, 60, 151, 1, 241, 89, + 151, 1, 243, 172, 151, 1, 245, 241, 151, 1, 252, 15, 232, 23, 151, 1, + 246, 100, 151, 1, 252, 156, 252, 252, 151, 1, 244, 49, 151, 1, 236, 129, + 151, 1, 251, 16, 151, 1, 246, 195, 151, 1, 233, 234, 151, 1, 35, 233, + 234, 151, 1, 72, 151, 1, 253, 0, 151, 1, 200, 253, 0, 151, 1, 239, 232, + 151, 1, 245, 91, 151, 1, 241, 224, 151, 1, 240, 203, 151, 1, 252, 9, 151, + 1, 235, 15, 238, 122, 151, 1, 235, 15, 236, 95, 151, 1, 235, 15, 234, 50, + 151, 237, 211, 46, 151, 237, 211, 51, 151, 237, 211, 235, 120, 151, 237, + 226, 46, 151, 237, 226, 51, 151, 237, 226, 235, 120, 151, 241, 221, 46, + 151, 241, 221, 51, 151, 237, 50, 242, 39, 229, 164, 151, 237, 50, 242, + 39, 234, 3, 151, 241, 152, 46, 151, 241, 152, 51, 151, 230, 65, 235, 120, + 151, 241, 128, 46, 151, 241, 128, 51, 151, 239, 231, 151, 233, 204, 246, + 164, 151, 231, 130, 151, 233, 15, 151, 135, 61, 197, 46, 151, 135, 61, + 197, 51, 151, 152, 197, 46, 151, 152, 197, 51, 151, 235, 78, 246, 167, + 46, 151, 235, 78, 246, 167, 51, 151, 239, 123, 151, 234, 13, 151, 1, 235, + 137, 240, 103, 151, 1, 235, 137, 239, 68, 151, 1, 235, 137, 253, 147, 10, + 1, 252, 217, 2, 152, 197, 229, 27, 51, 10, 1, 252, 217, 2, 56, 240, 144, + 22, 152, 197, 46, 10, 1, 252, 217, 2, 152, 197, 233, 78, 235, 18, 51, 10, + 1, 252, 217, 2, 152, 197, 233, 78, 235, 18, 240, 144, 22, 135, 197, 46, + 10, 1, 252, 217, 2, 135, 197, 240, 144, 22, 56, 46, 10, 1, 252, 217, 2, + 233, 70, 3, 255, 69, 51, 10, 1, 252, 217, 2, 3, 196, 10, 1, 101, 2, 135, + 197, 46, 10, 1, 101, 2, 152, 197, 233, 78, 235, 18, 51, 10, 1, 253, 56, + 2, 135, 197, 230, 161, 240, 144, 22, 3, 247, 55, 10, 1, 253, 56, 2, 233, + 70, 3, 255, 69, 51, 10, 1, 252, 225, 2, 82, 10, 1, 246, 163, 2, 246, 160, + 197, 46, 10, 1, 252, 244, 2, 135, 197, 46, 10, 1, 252, 244, 2, 152, 197, + 233, 78, 231, 191, 46, 10, 1, 252, 244, 2, 135, 197, 230, 161, 46, 10, 1, + 252, 235, 2, 135, 197, 51, 10, 1, 252, 235, 2, 152, 197, 233, 78, 235, + 18, 51, 10, 1, 240, 191, 2, 56, 46, 10, 1, 240, 191, 2, 152, 197, 46, 10, + 1, 240, 191, 2, 152, 197, 233, 78, 235, 18, 51, 10, 1, 55, 2, 56, 46, 10, + 1, 55, 2, 56, 51, 10, 1, 246, 156, 2, 135, 197, 51, 10, 1, 246, 156, 2, + 3, 247, 55, 10, 1, 246, 156, 2, 3, 196, 10, 1, 216, 2, 125, 10, 1, 252, + 225, 2, 135, 197, 230, 161, 46, 10, 1, 252, 225, 2, 164, 46, 10, 1, 246, + 163, 2, 135, 197, 230, 161, 46, 10, 1, 101, 2, 3, 10, 1, 252, 241, 51, + 10, 1, 101, 2, 3, 10, 1, 252, 241, 22, 135, 240, 169, 10, 1, 246, 163, 2, + 3, 10, 1, 252, 241, 22, 135, 240, 169, 10, 1, 252, 225, 2, 3, 10, 1, 252, + 241, 22, 135, 240, 169, 10, 1, 101, 2, 3, 10, 1, 252, 241, 46, 10, 1, 92, + 2, 233, 81, 228, 177, 21, 135, 46, 10, 1, 92, 2, 233, 81, 228, 177, 21, + 152, 46, 10, 1, 240, 176, 62, 2, 233, 81, 228, 177, 21, 135, 46, 10, 1, + 240, 176, 62, 2, 233, 81, 228, 177, 21, 152, 46, 10, 1, 240, 176, 62, 2, + 233, 81, 228, 177, 21, 246, 160, 51, 10, 1, 253, 54, 2, 233, 81, 228, + 177, 21, 135, 46, 10, 1, 253, 54, 2, 233, 81, 228, 177, 21, 152, 46, 10, + 1, 62, 237, 123, 2, 233, 81, 228, 177, 21, 135, 46, 10, 1, 62, 237, 123, + 2, 233, 81, 228, 177, 21, 152, 46, 10, 1, 101, 2, 233, 81, 228, 177, 21, + 246, 160, 51, 10, 1, 246, 163, 2, 233, 81, 228, 177, 21, 246, 160, 46, + 10, 1, 246, 163, 2, 233, 70, 196, 10, 1, 252, 214, 2, 135, 197, 46, 237, + 37, 1, 247, 14, 237, 37, 1, 231, 141, 237, 37, 1, 239, 155, 237, 37, 1, + 247, 100, 237, 37, 1, 247, 247, 237, 37, 1, 231, 97, 237, 37, 1, 239, 54, + 237, 37, 1, 238, 94, 237, 37, 1, 240, 71, 237, 37, 1, 239, 100, 237, 37, + 1, 238, 211, 237, 37, 1, 236, 47, 237, 37, 1, 241, 18, 237, 37, 1, 239, + 78, 237, 37, 1, 238, 228, 237, 37, 1, 231, 74, 237, 37, 1, 239, 239, 237, + 37, 1, 232, 107, 237, 37, 1, 233, 67, 237, 37, 1, 233, 51, 237, 37, 1, + 247, 117, 237, 37, 1, 232, 246, 237, 37, 1, 232, 211, 237, 37, 1, 230, + 234, 237, 37, 1, 246, 10, 237, 37, 1, 241, 156, 237, 37, 1, 244, 52, 237, + 37, 1, 237, 1, 237, 37, 1, 248, 207, 237, 37, 1, 236, 222, 237, 37, 1, + 236, 203, 237, 37, 1, 236, 39, 237, 37, 1, 96, 237, 37, 1, 253, 65, 237, + 37, 1, 242, 49, 237, 37, 1, 236, 94, 237, 37, 1, 239, 206, 237, 37, 1, + 240, 81, 237, 37, 233, 252, 237, 37, 230, 220, 237, 37, 234, 123, 237, + 37, 231, 61, 237, 37, 235, 1, 237, 37, 231, 111, 237, 37, 234, 90, 237, + 37, 231, 68, 237, 37, 234, 173, 237, 37, 231, 110, 237, 37, 238, 69, 237, + 37, 1, 247, 179, 204, 21, 240, 126, 204, 21, 118, 204, 21, 113, 204, 21, + 166, 204, 21, 158, 204, 21, 173, 204, 21, 183, 204, 21, 194, 204, 21, + 187, 204, 21, 192, 204, 1, 57, 204, 1, 252, 231, 204, 1, 74, 204, 1, 72, + 204, 1, 66, 204, 1, 252, 220, 204, 1, 73, 204, 1, 229, 244, 204, 1, 199, + 204, 1, 252, 211, 204, 1, 213, 204, 1, 252, 202, 204, 1, 252, 213, 204, + 1, 246, 176, 204, 1, 252, 203, 204, 1, 208, 204, 1, 246, 221, 204, 1, + 252, 204, 204, 1, 248, 46, 204, 1, 252, 234, 204, 1, 177, 204, 1, 252, + 200, 204, 1, 255, 13, 235, 231, 204, 1, 198, 204, 1, 246, 181, 204, 1, + 252, 201, 204, 1, 154, 204, 1, 252, 208, 204, 1, 191, 204, 1, 254, 119, + 235, 231, 204, 1, 247, 154, 252, 213, 204, 1, 247, 154, 246, 176, 204, 1, + 247, 154, 208, 204, 36, 240, 125, 201, 240, 167, 204, 36, 240, 125, 184, + 240, 167, 204, 36, 240, 125, 237, 115, 240, 167, 204, 36, 182, 230, 181, + 240, 167, 204, 36, 182, 201, 240, 167, 204, 36, 182, 184, 240, 167, 204, + 36, 182, 237, 115, 240, 167, 204, 36, 229, 40, 76, 204, 36, 47, 56, 46, + 204, 201, 206, 229, 172, 204, 184, 206, 229, 172, 204, 14, 255, 41, 236, + 46, 204, 14, 230, 64, 204, 237, 67, 204, 229, 165, 76, 204, 230, 75, 94, + 5, 228, 184, 94, 5, 231, 206, 94, 5, 233, 102, 94, 1, 240, 125, 57, 94, + 1, 57, 94, 1, 252, 212, 94, 1, 74, 94, 1, 252, 216, 94, 1, 66, 94, 1, + 252, 224, 94, 1, 153, 146, 94, 1, 153, 149, 94, 1, 237, 108, 72, 94, 1, + 240, 125, 72, 94, 1, 72, 94, 1, 252, 221, 94, 1, 237, 108, 73, 94, 1, + 240, 125, 73, 94, 1, 73, 94, 1, 252, 222, 94, 1, 177, 94, 1, 246, 178, + 94, 1, 252, 205, 94, 1, 246, 202, 94, 1, 246, 169, 94, 1, 252, 215, 94, + 1, 246, 176, 94, 1, 252, 213, 94, 1, 246, 213, 94, 1, 246, 181, 94, 1, + 246, 191, 94, 1, 240, 150, 94, 1, 246, 192, 94, 1, 240, 166, 94, 1, 246, + 203, 94, 1, 252, 202, 94, 1, 246, 173, 94, 1, 252, 203, 94, 1, 246, 196, + 94, 1, 252, 201, 94, 1, 241, 203, 94, 1, 213, 94, 1, 246, 182, 94, 1, + 252, 211, 94, 1, 246, 199, 94, 1, 198, 94, 1, 191, 94, 1, 208, 94, 1, + 246, 221, 94, 1, 252, 200, 94, 1, 246, 225, 94, 1, 241, 48, 94, 1, 252, + 243, 94, 1, 246, 165, 94, 1, 246, 190, 94, 1, 252, 204, 94, 1, 154, 94, + 5, 237, 125, 94, 5, 231, 220, 94, 31, 5, 252, 212, 94, 31, 5, 74, 94, 31, + 5, 252, 216, 94, 31, 5, 66, 94, 31, 5, 252, 224, 94, 31, 5, 153, 146, 94, + 31, 5, 153, 252, 249, 94, 31, 5, 237, 108, 72, 94, 31, 5, 240, 125, 72, + 94, 31, 5, 72, 94, 31, 5, 252, 221, 94, 31, 5, 237, 108, 73, 94, 31, 5, + 240, 125, 73, 94, 31, 5, 73, 94, 31, 5, 252, 222, 94, 5, 235, 43, 94, + 253, 128, 94, 237, 165, 5, 237, 14, 94, 237, 165, 5, 232, 68, 94, 240, + 163, 235, 24, 94, 240, 159, 235, 24, 94, 1, 253, 35, 94, 1, 241, 173, 94, + 1, 241, 142, 94, 1, 252, 226, 94, 1, 238, 174, 94, 1, 247, 48, 94, 1, + 252, 234, 94, 1, 247, 236, 94, 1, 153, 252, 249, 94, 1, 153, 252, 245, + 94, 31, 5, 153, 149, 94, 31, 5, 153, 252, 245, 94, 237, 109, 94, 47, 237, + 109, 94, 21, 240, 126, 94, 21, 118, 94, 21, 113, 94, 21, 166, 94, 21, + 158, 94, 21, 173, 94, 21, 183, 94, 21, 194, 94, 21, 187, 94, 21, 192, 94, + 228, 196, 53, 94, 5, 201, 236, 234, 246, 164, 94, 1, 237, 108, 57, 94, 1, + 247, 77, 94, 1, 248, 70, 94, 1, 235, 31, 240, 121, 94, 1, 243, 34, 94, 1, + 247, 66, 121, 5, 228, 184, 121, 5, 231, 206, 121, 5, 233, 102, 121, 1, + 57, 121, 1, 252, 212, 121, 1, 74, 121, 1, 252, 216, 121, 1, 66, 121, 1, + 252, 224, 121, 1, 153, 146, 121, 1, 153, 149, 121, 1, 72, 121, 1, 252, + 221, 121, 1, 73, 121, 1, 252, 222, 121, 1, 177, 121, 1, 246, 178, 121, 1, + 252, 205, 121, 1, 246, 202, 121, 1, 246, 169, 121, 1, 252, 215, 121, 1, + 246, 176, 121, 1, 252, 213, 121, 1, 246, 213, 121, 1, 246, 181, 121, 1, + 246, 191, 121, 1, 240, 150, 121, 1, 246, 192, 121, 1, 240, 166, 121, 1, + 246, 203, 121, 1, 252, 202, 121, 1, 246, 173, 121, 1, 252, 203, 121, 1, + 246, 196, 121, 1, 252, 201, 121, 1, 213, 121, 1, 246, 182, 121, 1, 252, + 211, 121, 1, 246, 199, 121, 1, 198, 121, 1, 191, 121, 1, 208, 121, 1, + 252, 200, 121, 1, 246, 165, 121, 1, 246, 190, 121, 1, 252, 204, 121, 1, + 154, 121, 5, 237, 125, 121, 5, 231, 220, 121, 31, 5, 252, 212, 121, 31, + 5, 74, 121, 31, 5, 252, 216, 121, 31, 5, 66, 121, 31, 5, 252, 224, 121, + 31, 5, 153, 146, 121, 31, 5, 153, 252, 249, 121, 31, 5, 72, 121, 31, 5, + 252, 221, 121, 31, 5, 73, 121, 31, 5, 252, 222, 121, 5, 235, 43, 121, 1, + 239, 67, 252, 202, 121, 254, 233, 237, 101, 76, 121, 1, 246, 221, 121, 1, + 247, 48, 121, 1, 247, 236, 121, 1, 153, 252, 249, 121, 1, 153, 252, 245, + 121, 31, 5, 153, 149, 121, 31, 5, 153, 252, 245, 121, 21, 240, 126, 121, + 21, 118, 121, 21, 113, 121, 21, 166, 121, 21, 158, 121, 21, 173, 121, 21, + 183, 121, 21, 194, 121, 21, 187, 121, 21, 192, 121, 1, 254, 224, 2, 237, + 44, 231, 236, 121, 1, 254, 224, 2, 203, 231, 236, 121, 240, 234, 76, 121, + 240, 234, 53, 121, 233, 112, 231, 227, 118, 121, 233, 112, 231, 227, 113, + 121, 233, 112, 231, 227, 166, 121, 233, 112, 231, 227, 158, 121, 233, + 112, 231, 227, 168, 250, 215, 247, 212, 252, 230, 228, 238, 121, 233, + 112, 229, 246, 233, 135, 121, 235, 179, 148, 5, 248, 228, 237, 232, 148, + 5, 237, 232, 148, 5, 233, 102, 148, 1, 57, 148, 1, 252, 212, 148, 1, 74, + 148, 1, 252, 216, 148, 1, 66, 148, 1, 252, 224, 148, 1, 252, 231, 148, 1, + 252, 221, 148, 1, 252, 220, 148, 1, 252, 222, 148, 1, 177, 148, 1, 246, + 178, 148, 1, 252, 205, 148, 1, 246, 202, 148, 1, 246, 169, 148, 1, 252, + 215, 148, 1, 246, 176, 148, 1, 252, 213, 148, 1, 246, 213, 148, 1, 246, + 181, 148, 1, 246, 191, 148, 1, 240, 150, 148, 1, 246, 192, 148, 1, 240, + 166, 148, 1, 246, 203, 148, 1, 252, 202, 148, 1, 246, 173, 148, 1, 252, + 203, 148, 1, 246, 196, 148, 1, 252, 201, 148, 1, 213, 148, 1, 246, 182, + 148, 1, 252, 211, 148, 1, 246, 199, 148, 1, 198, 148, 1, 191, 148, 1, + 208, 148, 1, 252, 200, 148, 1, 246, 225, 148, 1, 252, 243, 148, 1, 246, + 165, 148, 1, 252, 204, 148, 1, 154, 148, 5, 237, 125, 148, 31, 5, 252, + 212, 148, 31, 5, 74, 148, 31, 5, 252, 216, 148, 31, 5, 66, 148, 31, 5, + 252, 224, 148, 31, 5, 252, 231, 148, 31, 5, 252, 221, 148, 31, 5, 252, + 220, 148, 31, 5, 252, 222, 148, 5, 235, 43, 148, 5, 240, 64, 148, 1, 241, + 173, 148, 1, 241, 142, 148, 1, 252, 226, 148, 1, 246, 221, 148, 1, 252, + 234, 148, 21, 240, 126, 148, 21, 118, 148, 21, 113, 148, 21, 166, 148, + 21, 158, 148, 21, 173, 148, 21, 183, 148, 21, 194, 148, 21, 187, 148, 21, + 192, 148, 240, 44, 148, 238, 89, 148, 250, 122, 148, 252, 60, 148, 255, + 25, 239, 174, 148, 5, 237, 32, 137, 5, 228, 184, 137, 5, 231, 206, 137, + 5, 233, 102, 137, 1, 57, 137, 1, 252, 212, 137, 1, 74, 137, 1, 252, 216, + 137, 1, 66, 137, 1, 252, 224, 137, 1, 153, 146, 137, 1, 153, 149, 137, + 31, 237, 108, 72, 137, 1, 72, 137, 1, 252, 221, 137, 31, 237, 108, 73, + 137, 1, 73, 137, 1, 252, 222, 137, 1, 177, 137, 1, 246, 178, 137, 1, 252, + 205, 137, 1, 246, 202, 137, 1, 246, 169, 137, 1, 252, 215, 137, 1, 246, + 176, 137, 1, 252, 213, 137, 1, 246, 213, 137, 1, 246, 181, 137, 1, 246, + 191, 137, 1, 240, 150, 137, 1, 246, 192, 137, 1, 240, 166, 137, 1, 246, + 203, 137, 1, 252, 202, 137, 1, 246, 173, 137, 1, 252, 203, 137, 1, 246, + 196, 137, 1, 252, 201, 137, 1, 213, 137, 1, 246, 182, 137, 1, 252, 211, + 137, 1, 246, 199, 137, 1, 198, 137, 1, 191, 137, 1, 208, 137, 1, 252, + 200, 137, 1, 246, 225, 137, 1, 252, 243, 137, 1, 246, 165, 137, 1, 246, + 190, 137, 1, 252, 204, 137, 1, 154, 137, 5, 237, 125, 137, 5, 231, 220, + 137, 31, 5, 252, 212, 137, 31, 5, 74, 137, 31, 5, 252, 216, 137, 31, 5, + 66, 137, 31, 5, 252, 224, 137, 31, 5, 153, 146, 137, 31, 5, 153, 252, + 249, 137, 31, 5, 237, 108, 72, 137, 31, 5, 72, 137, 31, 5, 252, 221, 137, + 31, 5, 237, 108, 73, 137, 31, 5, 73, 137, 31, 5, 252, 222, 137, 5, 235, + 43, 137, 253, 128, 137, 1, 153, 252, 249, 137, 1, 153, 252, 245, 137, 31, + 5, 153, 149, 137, 31, 5, 153, 252, 245, 137, 21, 240, 126, 137, 21, 118, + 137, 21, 113, 137, 21, 166, 137, 21, 158, 137, 21, 173, 137, 21, 183, + 137, 21, 194, 137, 21, 187, 137, 21, 192, 137, 240, 234, 53, 134, 5, 228, + 184, 134, 5, 231, 206, 134, 5, 233, 102, 134, 1, 57, 134, 1, 252, 212, + 134, 1, 74, 134, 1, 252, 216, 134, 1, 66, 134, 1, 252, 224, 134, 1, 153, + 146, 134, 1, 153, 149, 134, 1, 72, 134, 1, 252, 221, 134, 1, 73, 134, 1, + 252, 222, 134, 1, 177, 134, 1, 246, 178, 134, 1, 252, 205, 134, 1, 246, + 202, 134, 1, 246, 169, 134, 1, 252, 215, 134, 1, 246, 176, 134, 1, 252, + 213, 134, 1, 246, 213, 134, 1, 246, 181, 134, 1, 246, 191, 134, 1, 240, + 150, 134, 1, 246, 192, 134, 1, 240, 166, 134, 1, 246, 203, 134, 1, 252, + 202, 134, 1, 246, 173, 134, 1, 252, 203, 134, 1, 246, 196, 134, 1, 252, + 201, 134, 1, 213, 134, 1, 246, 182, 134, 1, 252, 211, 134, 1, 246, 199, + 134, 1, 198, 134, 1, 191, 134, 1, 208, 134, 1, 252, 200, 134, 1, 246, + 225, 134, 1, 252, 243, 134, 1, 246, 165, 134, 1, 246, 190, 134, 1, 252, + 204, 134, 1, 154, 134, 5, 237, 125, 134, 5, 231, 220, 134, 31, 5, 252, + 212, 134, 31, 5, 74, 134, 31, 5, 252, 216, 134, 31, 5, 66, 134, 31, 5, + 252, 224, 134, 31, 5, 153, 146, 134, 31, 5, 153, 252, 249, 134, 31, 5, + 72, 134, 31, 5, 252, 221, 134, 31, 5, 73, 134, 31, 5, 252, 222, 134, 5, + 235, 43, 134, 254, 227, 237, 101, 76, 134, 254, 233, 237, 101, 76, 134, + 1, 246, 221, 134, 1, 247, 48, 134, 1, 247, 236, 134, 1, 153, 252, 249, + 134, 1, 153, 252, 245, 134, 31, 5, 153, 149, 134, 31, 5, 153, 252, 245, + 134, 21, 240, 126, 134, 21, 118, 134, 21, 113, 134, 21, 166, 134, 21, + 158, 134, 21, 173, 134, 21, 183, 134, 21, 194, 134, 21, 187, 134, 21, + 192, 134, 235, 179, 134, 1, 252, 208, 160, 5, 231, 206, 160, 5, 233, 102, + 160, 1, 57, 160, 1, 252, 212, 160, 1, 74, 160, 1, 252, 216, 160, 1, 66, + 160, 1, 252, 224, 160, 1, 72, 160, 1, 252, 231, 160, 1, 252, 221, 160, 1, + 73, 160, 1, 252, 220, 160, 1, 252, 222, 160, 1, 177, 160, 1, 246, 169, + 160, 1, 252, 215, 160, 1, 252, 213, 160, 1, 246, 181, 160, 1, 246, 191, + 160, 1, 246, 203, 160, 1, 252, 202, 160, 1, 252, 201, 160, 1, 241, 203, + 160, 1, 213, 160, 1, 198, 160, 1, 191, 160, 1, 208, 160, 1, 246, 221, + 160, 1, 252, 200, 160, 1, 246, 225, 160, 1, 241, 48, 160, 1, 252, 243, + 160, 1, 246, 165, 160, 1, 246, 190, 160, 1, 252, 204, 160, 1, 154, 160, + 31, 5, 252, 212, 160, 31, 5, 74, 160, 31, 5, 252, 216, 160, 31, 5, 66, + 160, 31, 5, 252, 224, 160, 31, 5, 72, 160, 31, 5, 252, 231, 160, 31, 5, + 252, 221, 160, 31, 5, 73, 160, 31, 5, 252, 220, 160, 31, 5, 252, 222, + 160, 5, 235, 43, 160, 253, 128, 160, 254, 233, 237, 101, 76, 160, 21, + 240, 126, 160, 21, 118, 160, 21, 113, 160, 21, 166, 160, 21, 158, 160, + 21, 173, 160, 21, 183, 160, 21, 194, 160, 21, 187, 160, 21, 192, 160, 65, + 246, 179, 160, 65, 168, 233, 75, 160, 65, 168, 231, 196, 160, 252, 218, + 53, 160, 244, 150, 53, 160, 248, 200, 53, 160, 243, 53, 53, 160, 238, + 163, 53, 160, 254, 203, 64, 53, 160, 240, 234, 53, 160, 65, 53, 119, 5, + 228, 184, 119, 5, 231, 206, 119, 5, 233, 102, 119, 1, 57, 119, 1, 252, + 212, 119, 1, 74, 119, 1, 252, 216, 119, 1, 66, 119, 1, 252, 224, 119, 1, + 153, 146, 119, 1, 153, 149, 119, 1, 72, 119, 1, 252, 231, 119, 1, 252, + 221, 119, 1, 73, 119, 1, 252, 220, 119, 1, 252, 222, 119, 1, 177, 119, 1, + 246, 178, 119, 1, 252, 205, 119, 1, 246, 202, 119, 1, 246, 169, 119, 1, + 252, 215, 119, 1, 246, 176, 119, 1, 252, 213, 119, 1, 246, 213, 119, 1, + 246, 181, 119, 1, 246, 191, 119, 1, 240, 150, 119, 1, 246, 192, 119, 1, + 240, 166, 119, 1, 246, 203, 119, 1, 252, 202, 119, 1, 246, 173, 119, 1, + 252, 203, 119, 1, 246, 196, 119, 1, 252, 201, 119, 1, 213, 119, 1, 246, + 182, 119, 1, 252, 211, 119, 1, 246, 199, 119, 1, 198, 119, 1, 191, 119, + 1, 208, 119, 1, 246, 221, 119, 1, 252, 200, 119, 1, 246, 225, 119, 1, + 252, 243, 119, 1, 246, 165, 119, 1, 246, 190, 119, 1, 252, 204, 119, 1, + 154, 119, 5, 231, 220, 119, 31, 5, 252, 212, 119, 31, 5, 74, 119, 31, 5, + 252, 216, 119, 31, 5, 66, 119, 31, 5, 252, 224, 119, 31, 5, 153, 146, + 119, 31, 5, 153, 252, 249, 119, 31, 5, 72, 119, 31, 5, 252, 231, 119, 31, + 5, 252, 221, 119, 31, 5, 73, 119, 31, 5, 252, 220, 119, 31, 5, 252, 222, + 119, 5, 235, 43, 119, 237, 101, 76, 119, 254, 227, 237, 101, 76, 119, 1, + 246, 216, 119, 1, 246, 254, 119, 1, 153, 252, 249, 119, 1, 153, 252, 245, + 119, 31, 5, 153, 149, 119, 31, 5, 153, 252, 245, 119, 21, 240, 126, 119, + 21, 118, 119, 21, 113, 119, 21, 166, 119, 21, 158, 119, 21, 173, 119, 21, + 183, 119, 21, 194, 119, 21, 187, 119, 21, 192, 119, 233, 76, 21, 247, 27, + 32, 253, 156, 237, 126, 106, 158, 119, 233, 76, 21, 168, 32, 253, 156, + 237, 126, 106, 158, 119, 233, 76, 21, 135, 32, 253, 156, 237, 126, 106, + 158, 119, 233, 76, 21, 152, 32, 253, 156, 237, 126, 106, 158, 119, 233, + 76, 21, 168, 32, 247, 138, 237, 126, 106, 158, 119, 233, 76, 21, 135, 32, + 247, 138, 237, 126, 106, 158, 119, 233, 76, 21, 152, 32, 247, 138, 237, + 126, 106, 158, 119, 5, 240, 56, 129, 5, 231, 206, 129, 5, 233, 102, 129, + 1, 57, 129, 1, 252, 212, 129, 1, 74, 129, 1, 252, 216, 129, 1, 66, 129, + 1, 252, 224, 129, 1, 153, 146, 129, 1, 153, 149, 129, 1, 72, 129, 1, 252, + 231, 129, 1, 252, 221, 129, 1, 73, 129, 1, 252, 220, 129, 1, 252, 222, + 129, 1, 177, 129, 1, 246, 178, 129, 1, 252, 205, 129, 1, 246, 202, 129, + 1, 246, 169, 129, 1, 252, 215, 129, 1, 246, 176, 129, 1, 252, 213, 129, + 1, 246, 213, 129, 1, 246, 181, 129, 1, 246, 191, 129, 1, 240, 150, 129, + 1, 246, 192, 129, 1, 240, 166, 129, 1, 246, 203, 129, 1, 252, 202, 129, + 1, 246, 173, 129, 1, 252, 203, 129, 1, 246, 196, 129, 1, 252, 201, 129, + 1, 213, 129, 1, 246, 182, 129, 1, 252, 211, 129, 1, 246, 199, 129, 1, + 198, 129, 1, 191, 129, 1, 208, 129, 1, 246, 221, 129, 1, 252, 200, 129, + 1, 246, 225, 129, 1, 252, 243, 129, 1, 246, 165, 129, 1, 246, 190, 129, + 1, 252, 204, 129, 1, 154, 129, 5, 237, 125, 129, 5, 231, 220, 129, 31, 5, + 252, 212, 129, 31, 5, 74, 129, 31, 5, 252, 216, 129, 31, 5, 66, 129, 31, + 5, 252, 224, 129, 31, 5, 153, 146, 129, 31, 5, 153, 252, 249, 129, 31, 5, + 72, 129, 31, 5, 252, 231, 129, 31, 5, 252, 221, 129, 31, 5, 73, 129, 31, + 5, 252, 220, 129, 31, 5, 252, 222, 129, 5, 235, 43, 129, 237, 101, 76, + 129, 254, 227, 237, 101, 76, 129, 1, 252, 234, 129, 1, 153, 252, 249, + 129, 1, 153, 252, 245, 129, 31, 5, 153, 149, 129, 31, 5, 153, 252, 245, + 129, 21, 240, 126, 129, 21, 118, 129, 21, 113, 129, 21, 166, 129, 21, + 158, 129, 21, 173, 129, 21, 183, 129, 21, 194, 129, 21, 187, 129, 21, + 192, 129, 5, 229, 33, 129, 5, 229, 160, 114, 5, 231, 206, 114, 5, 233, + 102, 114, 1, 57, 114, 1, 252, 212, 114, 1, 74, 114, 1, 252, 216, 114, 1, + 66, 114, 1, 252, 224, 114, 1, 153, 146, 114, 1, 153, 149, 114, 1, 72, + 114, 1, 252, 231, 114, 1, 252, 221, 114, 1, 73, 114, 1, 252, 220, 114, 1, + 252, 222, 114, 1, 177, 114, 1, 246, 178, 114, 1, 252, 205, 114, 1, 246, + 202, 114, 1, 246, 169, 114, 1, 252, 215, 114, 1, 246, 176, 114, 1, 252, + 213, 114, 1, 246, 213, 114, 1, 246, 181, 114, 1, 246, 191, 114, 1, 240, + 150, 114, 1, 246, 192, 114, 1, 240, 166, 114, 1, 246, 203, 114, 1, 252, + 202, 114, 1, 246, 173, 114, 1, 252, 203, 114, 1, 246, 196, 114, 1, 252, + 201, 114, 1, 213, 114, 1, 246, 182, 114, 1, 252, 211, 114, 1, 246, 199, + 114, 1, 198, 114, 1, 191, 114, 1, 208, 114, 1, 246, 221, 114, 1, 252, + 200, 114, 1, 246, 225, 114, 1, 241, 48, 114, 1, 252, 243, 114, 1, 246, + 165, 114, 1, 246, 190, 114, 1, 252, 204, 114, 1, 154, 114, 5, 231, 220, + 114, 31, 5, 252, 212, 114, 31, 5, 74, 114, 31, 5, 252, 216, 114, 31, 5, + 66, 114, 31, 5, 252, 224, 114, 31, 5, 153, 146, 114, 31, 5, 153, 252, + 249, 114, 31, 5, 72, 114, 31, 5, 252, 231, 114, 31, 5, 252, 221, 114, 31, + 5, 73, 114, 31, 5, 252, 220, 114, 31, 5, 252, 222, 114, 5, 235, 43, 114, + 254, 233, 237, 101, 76, 114, 1, 153, 252, 249, 114, 1, 153, 252, 245, + 114, 31, 5, 153, 149, 114, 31, 5, 153, 252, 245, 114, 21, 240, 126, 114, + 21, 118, 114, 21, 113, 114, 21, 166, 114, 21, 158, 114, 21, 173, 114, 21, + 183, 114, 21, 194, 114, 21, 187, 114, 21, 192, 114, 65, 246, 179, 114, + 65, 168, 233, 75, 114, 65, 168, 231, 196, 114, 233, 76, 168, 233, 155, + 114, 233, 76, 168, 240, 170, 114, 233, 76, 152, 232, 41, 114, 248, 20, + 76, 114, 1, 237, 129, 253, 155, 114, 1, 237, 129, 199, 114, 1, 237, 129, + 252, 249, 114, 1, 237, 129, 149, 114, 1, 237, 129, 252, 245, 114, 1, 237, + 129, 254, 186, 147, 5, 229, 229, 147, 5, 231, 184, 147, 1, 236, 3, 147, + 1, 233, 251, 147, 1, 233, 254, 147, 1, 232, 66, 147, 1, 236, 114, 147, 1, + 234, 125, 147, 1, 237, 19, 147, 1, 235, 3, 147, 1, 232, 210, 147, 1, 231, + 88, 147, 1, 232, 205, 147, 1, 231, 81, 147, 1, 236, 67, 147, 1, 234, 91, + 147, 1, 233, 255, 147, 1, 236, 180, 147, 1, 234, 177, 147, 1, 234, 10, + 147, 1, 230, 135, 233, 211, 147, 1, 229, 171, 233, 211, 147, 1, 230, 135, + 233, 165, 147, 1, 229, 171, 233, 165, 147, 1, 236, 117, 229, 203, 147, 1, + 235, 99, 233, 165, 147, 1, 230, 135, 233, 189, 147, 1, 229, 171, 233, + 189, 147, 1, 230, 135, 233, 168, 147, 1, 229, 171, 233, 168, 147, 1, 235, + 140, 229, 203, 147, 1, 235, 140, 234, 215, 229, 39, 147, 1, 235, 99, 233, + 168, 147, 1, 230, 135, 232, 59, 147, 1, 229, 171, 232, 59, 147, 1, 230, + 135, 231, 248, 147, 1, 229, 171, 231, 248, 147, 1, 232, 1, 233, 221, 147, + 1, 235, 99, 231, 248, 147, 1, 230, 135, 233, 244, 147, 1, 229, 171, 233, + 244, 147, 1, 230, 135, 233, 161, 147, 1, 229, 171, 233, 161, 147, 1, 235, + 118, 233, 221, 147, 1, 235, 99, 233, 161, 147, 1, 230, 135, 233, 224, + 147, 1, 229, 171, 233, 224, 147, 1, 230, 135, 233, 159, 147, 1, 229, 171, + 233, 159, 147, 1, 234, 156, 147, 1, 248, 235, 233, 159, 147, 1, 235, 11, + 147, 1, 234, 203, 147, 1, 235, 118, 233, 215, 147, 1, 235, 5, 147, 1, + 235, 140, 233, 178, 147, 1, 232, 1, 233, 178, 147, 1, 235, 118, 233, 178, + 147, 1, 234, 118, 147, 1, 232, 1, 233, 215, 147, 1, 234, 101, 147, 5, + 230, 222, 147, 31, 5, 229, 181, 147, 31, 5, 241, 45, 229, 195, 147, 31, + 5, 246, 253, 229, 195, 147, 31, 5, 241, 45, 232, 29, 147, 31, 5, 246, + 253, 232, 29, 147, 31, 5, 241, 45, 230, 190, 147, 31, 5, 246, 253, 230, + 190, 147, 31, 5, 227, 203, 147, 31, 5, 233, 212, 147, 31, 5, 246, 253, + 233, 212, 147, 31, 5, 244, 63, 243, 56, 147, 31, 5, 235, 125, 253, 181, + 229, 181, 147, 31, 5, 235, 125, 253, 181, 246, 253, 229, 181, 147, 31, 5, + 235, 125, 253, 181, 228, 198, 147, 31, 5, 228, 198, 147, 31, 5, 246, 253, + 227, 203, 147, 31, 5, 246, 253, 228, 198, 147, 229, 161, 230, 74, 128, + 116, 255, 9, 248, 78, 128, 116, 253, 105, 244, 53, 128, 116, 253, 105, + 239, 69, 128, 116, 253, 105, 239, 70, 128, 116, 253, 105, 244, 56, 128, + 116, 253, 105, 234, 201, 128, 116, 254, 114, 251, 56, 128, 116, 253, 142, + 242, 243, 128, 116, 253, 142, 238, 148, 128, 116, 253, 142, 238, 147, + 128, 116, 254, 225, 253, 25, 128, 116, 253, 142, 242, 252, 128, 116, 255, + 17, 246, 92, 128, 116, 254, 246, 238, 145, 128, 116, 180, 239, 183, 128, + 116, 253, 92, 241, 78, 128, 116, 253, 92, 230, 81, 128, 116, 253, 92, + 234, 193, 128, 116, 254, 252, 251, 49, 128, 116, 254, 246, 249, 184, 128, + 116, 180, 252, 6, 128, 116, 253, 92, 240, 40, 128, 116, 253, 92, 237, 2, + 128, 116, 253, 92, 240, 39, 128, 116, 254, 252, 252, 227, 128, 116, 255, + 20, 236, 6, 128, 116, 255, 44, 248, 133, 128, 116, 253, 130, 239, 196, + 128, 116, 254, 236, 252, 234, 128, 116, 253, 130, 245, 68, 128, 116, 254, + 236, 249, 237, 128, 116, 253, 130, 234, 214, 128, 116, 255, 38, 198, 128, + 116, 255, 17, 247, 231, 128, 116, 255, 46, 251, 194, 128, 116, 253, 3, + 128, 116, 254, 239, 241, 182, 128, 116, 253, 22, 128, 116, 255, 53, 246, + 51, 128, 116, 254, 225, 245, 149, 128, 116, 254, 225, 245, 143, 128, 116, + 254, 225, 251, 239, 128, 116, 254, 220, 250, 77, 128, 116, 254, 239, 238, + 150, 128, 116, 130, 247, 9, 128, 116, 254, 220, 236, 168, 128, 116, 231, + 113, 128, 116, 246, 214, 57, 128, 116, 253, 61, 232, 200, 128, 116, 246, + 214, 252, 212, 128, 116, 246, 214, 253, 140, 128, 116, 246, 214, 74, 128, + 116, 246, 214, 252, 216, 128, 116, 246, 214, 253, 71, 128, 116, 246, 214, + 252, 50, 128, 116, 246, 214, 66, 128, 116, 246, 214, 252, 224, 128, 116, + 234, 192, 128, 233, 112, 14, 242, 171, 128, 116, 246, 214, 72, 128, 116, + 246, 214, 253, 4, 128, 116, 246, 214, 73, 128, 116, 246, 214, 254, 227, + 234, 148, 128, 116, 246, 214, 254, 227, 232, 224, 128, 116, 229, 35, 128, + 116, 232, 225, 128, 116, 231, 99, 128, 116, 253, 61, 253, 219, 128, 116, + 253, 61, 246, 228, 128, 116, 253, 61, 252, 29, 128, 116, 253, 61, 232, + 96, 128, 116, 229, 153, 128, 116, 232, 233, 128, 116, 233, 65, 128, 116, + 234, 104, 128, 21, 240, 126, 128, 21, 118, 128, 21, 113, 128, 21, 166, + 128, 21, 158, 128, 21, 173, 128, 21, 183, 128, 21, 194, 128, 21, 187, + 128, 21, 192, 128, 116, 229, 227, 128, 116, 236, 122, 179, 1, 253, 33, + 179, 1, 253, 105, 240, 215, 179, 1, 253, 105, 247, 22, 179, 1, 247, 93, + 179, 1, 253, 66, 179, 1, 254, 225, 247, 22, 179, 1, 247, 19, 179, 1, 253, + 57, 179, 1, 96, 179, 1, 253, 92, 240, 215, 179, 1, 253, 92, 247, 22, 179, + 1, 253, 8, 179, 1, 253, 98, 179, 1, 253, 50, 179, 1, 253, 130, 240, 215, + 179, 1, 254, 236, 247, 22, 179, 1, 253, 130, 247, 22, 179, 1, 254, 236, + 240, 215, 179, 1, 253, 14, 179, 1, 252, 251, 179, 1, 254, 239, 241, 182, + 179, 1, 254, 239, 244, 107, 179, 1, 253, 10, 179, 1, 254, 225, 240, 215, + 179, 1, 254, 220, 240, 215, 179, 1, 73, 179, 1, 254, 220, 247, 22, 179, + 231, 218, 179, 31, 5, 57, 179, 31, 5, 253, 61, 247, 39, 179, 31, 5, 252, + 212, 179, 31, 5, 253, 140, 179, 31, 5, 74, 179, 31, 5, 252, 216, 179, 31, + 5, 254, 190, 179, 31, 5, 253, 203, 179, 31, 5, 66, 179, 31, 5, 252, 224, + 179, 31, 5, 253, 61, 250, 178, 179, 232, 45, 5, 253, 49, 179, 232, 45, 5, + 247, 19, 179, 31, 5, 72, 179, 31, 5, 253, 176, 179, 31, 5, 73, 179, 31, + 5, 253, 114, 179, 31, 5, 252, 221, 179, 255, 9, 252, 200, 179, 206, 253, + 61, 253, 219, 179, 206, 253, 61, 246, 228, 179, 206, 253, 61, 253, 44, + 179, 206, 253, 61, 236, 21, 179, 228, 227, 76, 179, 231, 107, 179, 21, + 240, 126, 179, 21, 118, 179, 21, 113, 179, 21, 166, 179, 21, 158, 179, + 21, 173, 179, 21, 183, 179, 21, 194, 179, 21, 187, 179, 21, 192, 179, + 254, 220, 253, 8, 179, 254, 220, 253, 14, 54, 4, 253, 128, 54, 165, 247, + 35, 253, 55, 253, 62, 233, 56, 57, 54, 165, 247, 35, 253, 55, 253, 62, + 253, 205, 248, 148, 249, 107, 198, 54, 165, 247, 35, 253, 55, 253, 62, + 253, 205, 247, 35, 240, 241, 198, 54, 165, 59, 253, 55, 253, 62, 248, + 100, 198, 54, 165, 235, 113, 253, 55, 253, 62, 248, 156, 198, 54, 165, + 240, 206, 253, 55, 253, 62, 248, 131, 248, 157, 198, 54, 165, 253, 55, + 253, 62, 240, 241, 248, 157, 198, 54, 165, 245, 153, 240, 192, 54, 165, + 242, 215, 253, 55, 247, 88, 54, 165, 249, 123, 248, 159, 253, 55, 247, + 88, 54, 165, 227, 246, 237, 222, 54, 165, 232, 110, 240, 241, 238, 133, + 54, 165, 240, 192, 54, 165, 247, 97, 240, 192, 54, 165, 240, 241, 240, + 192, 54, 165, 247, 97, 240, 241, 240, 192, 54, 165, 254, 143, 249, 156, + 240, 14, 240, 192, 54, 165, 248, 147, 250, 41, 240, 192, 54, 165, 240, + 206, 241, 91, 241, 13, 254, 206, 182, 246, 241, 54, 165, 247, 35, 237, + 222, 54, 233, 217, 5, 249, 155, 237, 127, 54, 233, 217, 5, 250, 217, 237, + 127, 54, 228, 197, 5, 251, 219, 250, 20, 242, 40, 237, 127, 54, 228, 197, + 5, 238, 87, 213, 54, 228, 197, 5, 245, 155, 237, 11, 54, 5, 246, 226, + 247, 71, 241, 138, 54, 5, 246, 226, 247, 71, 238, 2, 54, 5, 246, 226, + 247, 71, 241, 146, 54, 5, 246, 226, 253, 153, 241, 138, 54, 5, 246, 226, + 253, 153, 238, 2, 54, 5, 246, 226, 247, 71, 246, 226, 251, 37, 54, 21, + 240, 126, 54, 21, 118, 54, 21, 113, 54, 21, 166, 54, 21, 158, 54, 21, + 173, 54, 21, 183, 54, 21, 194, 54, 21, 187, 54, 21, 192, 54, 21, 132, + 118, 54, 21, 132, 113, 54, 21, 132, 166, 54, 21, 132, 158, 54, 21, 132, + 173, 54, 21, 132, 183, 54, 21, 132, 194, 54, 21, 132, 187, 54, 21, 132, + 192, 54, 21, 132, 240, 126, 54, 165, 242, 213, 237, 127, 54, 165, 248, + 110, 241, 107, 253, 252, 252, 183, 54, 165, 240, 206, 241, 91, 241, 13, + 247, 123, 253, 247, 246, 241, 54, 165, 248, 110, 241, 107, 251, 218, 237, + 127, 54, 165, 253, 74, 247, 88, 54, 165, 254, 11, 238, 88, 54, 165, 253, + 223, 241, 13, 241, 149, 54, 165, 253, 223, 241, 13, 241, 148, 54, 165, + 253, 207, 241, 172, 241, 149, 54, 165, 253, 207, 241, 172, 241, 148, 54, + 5, 254, 175, 238, 78, 54, 5, 254, 98, 238, 78, 54, 1, 177, 54, 1, 246, + 178, 54, 1, 252, 205, 54, 1, 246, 202, 54, 1, 246, 169, 54, 1, 252, 215, + 54, 1, 246, 176, 54, 1, 252, 213, 54, 1, 246, 181, 54, 1, 246, 191, 54, + 1, 240, 150, 54, 1, 246, 192, 54, 1, 240, 166, 54, 1, 246, 203, 54, 1, + 252, 202, 54, 1, 246, 173, 54, 1, 252, 203, 54, 1, 246, 196, 54, 1, 252, + 201, 54, 1, 213, 54, 1, 246, 182, 54, 1, 252, 211, 54, 1, 246, 199, 54, + 1, 198, 54, 1, 246, 216, 54, 1, 240, 240, 54, 1, 246, 254, 54, 1, 241, + 121, 54, 1, 252, 208, 54, 1, 246, 223, 54, 1, 252, 226, 54, 1, 253, 204, + 54, 1, 191, 54, 1, 208, 54, 1, 252, 200, 54, 1, 246, 165, 54, 1, 246, + 190, 54, 1, 252, 204, 54, 1, 154, 54, 1, 57, 54, 1, 241, 175, 54, 1, 230, + 154, 208, 54, 1, 247, 161, 54, 1, 246, 221, 54, 31, 5, 252, 212, 54, 31, + 5, 74, 54, 31, 5, 252, 216, 54, 31, 5, 66, 54, 31, 5, 252, 224, 54, 31, + 5, 153, 146, 54, 31, 5, 153, 252, 249, 54, 31, 5, 153, 149, 54, 31, 5, + 153, 252, 245, 54, 31, 5, 72, 54, 31, 5, 252, 231, 54, 31, 5, 73, 54, 31, + 5, 252, 220, 54, 5, 251, 185, 254, 253, 254, 113, 252, 246, 54, 5, 248, + 148, 242, 195, 54, 31, 5, 200, 74, 54, 31, 5, 200, 252, 216, 54, 5, 253, + 252, 254, 180, 254, 109, 252, 203, 54, 5, 254, 148, 244, 91, 54, 165, + 234, 115, 54, 165, 236, 182, 54, 5, 254, 91, 237, 127, 54, 5, 247, 24, + 237, 127, 54, 5, 254, 90, 254, 11, 246, 241, 54, 5, 251, 4, 246, 241, 54, + 5, 253, 222, 254, 36, 233, 231, 54, 5, 253, 222, 254, 99, 233, 231, 54, + 231, 189, 1, 177, 54, 231, 189, 1, 246, 178, 54, 231, 189, 1, 252, 205, + 54, 231, 189, 1, 246, 202, 54, 231, 189, 1, 246, 169, 54, 231, 189, 1, + 252, 215, 54, 231, 189, 1, 246, 176, 54, 231, 189, 1, 252, 213, 54, 231, + 189, 1, 246, 181, 54, 231, 189, 1, 246, 191, 54, 231, 189, 1, 240, 150, + 54, 231, 189, 1, 246, 192, 54, 231, 189, 1, 240, 166, 54, 231, 189, 1, + 246, 203, 54, 231, 189, 1, 252, 202, 54, 231, 189, 1, 246, 173, 54, 231, + 189, 1, 252, 203, 54, 231, 189, 1, 246, 196, 54, 231, 189, 1, 252, 201, + 54, 231, 189, 1, 213, 54, 231, 189, 1, 246, 182, 54, 231, 189, 1, 252, + 211, 54, 231, 189, 1, 246, 199, 54, 231, 189, 1, 198, 54, 231, 189, 1, + 246, 216, 54, 231, 189, 1, 240, 240, 54, 231, 189, 1, 246, 254, 54, 231, + 189, 1, 241, 121, 54, 231, 189, 1, 252, 208, 54, 231, 189, 1, 246, 223, + 54, 231, 189, 1, 252, 226, 54, 231, 189, 1, 253, 204, 54, 231, 189, 1, + 191, 54, 231, 189, 1, 208, 54, 231, 189, 1, 252, 200, 54, 231, 189, 1, + 246, 165, 54, 231, 189, 1, 246, 190, 54, 231, 189, 1, 252, 204, 54, 231, + 189, 1, 154, 54, 231, 189, 1, 57, 54, 231, 189, 1, 241, 175, 54, 231, + 189, 1, 230, 154, 252, 208, 54, 231, 189, 1, 230, 154, 191, 54, 231, 189, + 1, 230, 154, 208, 54, 254, 238, 255, 14, 246, 178, 54, 254, 238, 255, 14, + 254, 79, 247, 123, 253, 247, 246, 241, 54, 228, 189, 5, 112, 241, 100, + 54, 228, 189, 5, 157, 241, 100, 54, 228, 189, 5, 249, 143, 245, 239, 54, + 228, 189, 5, 251, 215, 238, 86, 54, 14, 249, 207, 253, 48, 54, 14, 254, + 4, 251, 184, 54, 14, 245, 59, 243, 120, 54, 14, 254, 4, 254, 144, 248, + 147, 243, 155, 54, 14, 248, 131, 213, 54, 14, 253, 43, 253, 48, 54, 14, + 253, 43, 254, 210, 247, 97, 235, 107, 54, 14, 253, 43, 254, 210, 250, 42, + 235, 107, 54, 14, 253, 43, 254, 210, 247, 123, 235, 107, 54, 5, 246, 226, + 253, 153, 246, 226, 243, 73, 54, 5, 246, 226, 253, 153, 241, 146, 54, + 165, 242, 214, 248, 159, 254, 228, 253, 62, 238, 41, 54, 165, 244, 149, + 253, 55, 254, 228, 253, 62, 238, 41, 54, 165, 247, 97, 237, 222, 54, 165, + 59, 248, 0, 238, 43, 253, 55, 253, 62, 248, 100, 198, 54, 165, 235, 113, + 248, 0, 238, 43, 253, 55, 253, 62, 248, 156, 198, 69, 1, 177, 69, 1, 246, + 178, 69, 1, 252, 205, 69, 1, 246, 202, 69, 1, 246, 169, 69, 1, 252, 215, + 69, 1, 246, 176, 69, 1, 252, 213, 69, 1, 246, 213, 69, 1, 246, 181, 69, + 1, 244, 250, 69, 1, 246, 191, 69, 1, 240, 150, 69, 1, 246, 192, 69, 1, + 240, 166, 69, 1, 246, 203, 69, 1, 252, 202, 69, 1, 246, 173, 69, 1, 252, + 203, 69, 1, 246, 196, 69, 1, 252, 201, 69, 1, 213, 69, 1, 246, 182, 69, + 1, 252, 211, 69, 1, 246, 199, 69, 1, 198, 69, 1, 191, 69, 1, 208, 69, 1, + 252, 200, 69, 1, 252, 208, 69, 1, 252, 204, 69, 1, 154, 69, 1, 246, 225, + 69, 1, 57, 69, 1, 246, 166, 57, 69, 1, 74, 69, 1, 252, 216, 69, 1, 66, + 69, 1, 252, 224, 69, 1, 72, 69, 1, 253, 68, 72, 69, 1, 73, 69, 1, 252, + 222, 69, 31, 5, 252, 5, 252, 212, 69, 31, 5, 252, 212, 69, 31, 5, 74, 69, + 31, 5, 252, 216, 69, 31, 5, 66, 69, 31, 5, 252, 224, 69, 31, 5, 72, 69, + 31, 5, 252, 221, 69, 31, 5, 253, 68, 252, 216, 69, 31, 5, 253, 68, 73, + 69, 31, 5, 161, 46, 69, 5, 231, 206, 69, 5, 56, 51, 69, 5, 233, 102, 69, + 5, 235, 43, 69, 5, 242, 64, 69, 231, 194, 5, 124, 191, 69, 231, 194, 5, + 124, 208, 69, 231, 194, 5, 124, 252, 208, 69, 231, 194, 5, 124, 154, 69, + 1, 240, 227, 252, 204, 69, 21, 240, 126, 69, 21, 118, 69, 21, 113, 69, + 21, 166, 69, 21, 158, 69, 21, 173, 69, 21, 183, 69, 21, 194, 69, 21, 187, + 69, 21, 192, 69, 5, 237, 102, 233, 144, 69, 5, 233, 144, 69, 14, 232, + 221, 69, 14, 230, 236, 69, 14, 225, 110, 69, 14, 232, 198, 69, 1, 246, + 165, 69, 1, 246, 190, 69, 1, 153, 146, 69, 1, 153, 252, 249, 69, 1, 153, + 149, 69, 1, 153, 252, 245, 69, 31, 5, 153, 146, 69, 31, 5, 153, 252, 249, + 69, 31, 5, 153, 149, 69, 31, 5, 153, 252, 245, 69, 1, 253, 68, 246, 169, + 69, 1, 253, 68, 246, 213, 69, 1, 253, 68, 247, 66, 69, 1, 253, 68, 247, + 250, 69, 231, 194, 5, 253, 68, 124, 252, 201, 69, 231, 194, 5, 253, 68, + 124, 198, 69, 231, 194, 5, 253, 68, 124, 252, 200, 69, 1, 247, 103, 240, + 153, 246, 165, 69, 31, 5, 247, 103, 240, 153, 253, 100, 69, 206, 165, + 247, 103, 240, 153, 239, 6, 69, 206, 165, 247, 103, 240, 153, 255, 34, + 247, 99, 69, 1, 235, 62, 253, 51, 240, 153, 246, 173, 69, 1, 235, 62, + 253, 51, 240, 153, 247, 47, 69, 31, 5, 235, 62, 253, 51, 240, 153, 253, + 100, 69, 31, 5, 235, 62, 253, 51, 240, 153, 253, 71, 69, 5, 235, 62, 253, + 51, 240, 153, 237, 7, 69, 5, 235, 62, 253, 51, 240, 153, 235, 101, 69, 5, + 235, 62, 253, 51, 240, 153, 235, 102, 69, 5, 235, 62, 253, 51, 240, 153, + 235, 227, 69, 5, 235, 62, 253, 51, 240, 153, 235, 103, 69, 1, 235, 121, + 253, 51, 240, 153, 246, 203, 69, 1, 235, 121, 253, 51, 240, 153, 247, + 235, 69, 1, 235, 121, 253, 51, 240, 153, 243, 144, 69, 31, 5, 250, 21, + 240, 153, 74, 69, 31, 5, 240, 119, 253, 15, 69, 31, 5, 240, 119, 66, 69, + 31, 5, 240, 119, 252, 231, 69, 1, 246, 166, 177, 69, 1, 246, 166, 246, + 178, 69, 1, 246, 166, 252, 205, 69, 1, 246, 166, 252, 215, 69, 1, 246, + 166, 252, 226, 69, 1, 246, 166, 246, 181, 69, 1, 246, 166, 252, 203, 69, + 1, 246, 166, 252, 201, 69, 1, 246, 166, 246, 182, 69, 1, 246, 166, 252, + 234, 69, 1, 246, 166, 252, 211, 69, 1, 246, 166, 246, 173, 69, 1, 246, + 166, 154, 69, 231, 194, 5, 246, 166, 124, 252, 208, 69, 31, 5, 246, 166, + 252, 212, 69, 31, 5, 246, 166, 72, 69, 31, 5, 246, 166, 161, 46, 69, 31, + 5, 246, 166, 35, 254, 190, 69, 5, 246, 166, 235, 101, 69, 5, 246, 166, + 235, 102, 69, 5, 246, 166, 235, 103, 69, 5, 246, 166, 235, 228, 69, 5, + 246, 166, 235, 116, 235, 101, 69, 5, 246, 166, 235, 116, 235, 102, 69, 5, + 246, 166, 235, 116, 234, 95, 240, 167, 69, 1, 241, 227, 235, 198, 252, + 234, 69, 5, 241, 227, 235, 198, 235, 103, 69, 246, 166, 21, 240, 126, 69, + 246, 166, 21, 118, 69, 246, 166, 21, 113, 69, 246, 166, 21, 166, 69, 246, + 166, 21, 158, 69, 246, 166, 21, 173, 69, 246, 166, 21, 183, 69, 246, 166, + 21, 194, 69, 246, 166, 21, 187, 69, 246, 166, 21, 192, 69, 14, 246, 166, + 118, 69, 14, 246, 166, 229, 18, 87, 6, 1, 253, 5, 87, 6, 1, 247, 121, 87, + 6, 1, 247, 32, 87, 6, 1, 247, 131, 87, 6, 1, 252, 232, 87, 6, 1, 247, + 222, 87, 6, 1, 247, 237, 87, 6, 1, 247, 209, 87, 6, 1, 253, 79, 87, 6, 1, + 247, 39, 87, 6, 1, 247, 167, 87, 6, 1, 247, 4, 87, 6, 1, 247, 92, 87, 6, + 1, 253, 106, 87, 6, 1, 247, 187, 87, 6, 1, 241, 90, 87, 6, 1, 247, 194, + 87, 6, 1, 247, 49, 87, 6, 1, 247, 56, 87, 6, 1, 253, 121, 87, 6, 1, 241, + 61, 87, 6, 1, 241, 46, 87, 6, 1, 241, 39, 87, 6, 1, 247, 193, 87, 6, 1, + 240, 203, 87, 6, 1, 241, 32, 87, 6, 1, 246, 241, 87, 6, 1, 247, 153, 87, + 6, 1, 247, 125, 87, 6, 1, 241, 31, 87, 6, 1, 247, 228, 87, 6, 1, 241, 44, + 87, 6, 1, 247, 145, 87, 6, 1, 252, 252, 87, 6, 1, 247, 81, 87, 6, 1, 252, + 250, 87, 6, 1, 247, 146, 87, 6, 1, 247, 150, 87, 1, 253, 5, 87, 1, 247, + 121, 87, 1, 247, 32, 87, 1, 247, 131, 87, 1, 252, 232, 87, 1, 247, 222, + 87, 1, 247, 237, 87, 1, 247, 209, 87, 1, 253, 79, 87, 1, 247, 39, 87, 1, + 247, 167, 87, 1, 247, 4, 87, 1, 247, 92, 87, 1, 253, 106, 87, 1, 247, + 187, 87, 1, 241, 90, 87, 1, 247, 194, 87, 1, 247, 49, 87, 1, 247, 56, 87, + 1, 253, 121, 87, 1, 241, 61, 87, 1, 241, 46, 87, 1, 241, 39, 87, 1, 247, + 193, 87, 1, 240, 203, 87, 1, 241, 32, 87, 1, 246, 241, 87, 1, 247, 153, + 87, 1, 247, 125, 87, 1, 241, 31, 87, 1, 247, 228, 87, 1, 241, 44, 87, 1, + 247, 145, 87, 1, 252, 252, 87, 1, 247, 81, 87, 1, 252, 250, 87, 1, 247, + 146, 87, 1, 247, 150, 87, 1, 253, 88, 87, 1, 253, 202, 87, 1, 238, 200, + 87, 1, 209, 247, 32, 87, 1, 246, 224, 87, 231, 242, 230, 131, 52, 1, 87, + 247, 92, 26, 122, 235, 77, 26, 122, 228, 195, 26, 122, 237, 139, 26, 122, + 235, 81, 26, 122, 228, 209, 26, 122, 237, 142, 26, 122, 237, 137, 26, + 122, 237, 141, 26, 122, 229, 193, 26, 122, 240, 213, 26, 122, 230, 159, + 26, 122, 237, 134, 26, 122, 237, 130, 26, 122, 229, 191, 26, 122, 233, + 128, 26, 122, 233, 131, 26, 122, 233, 138, 26, 122, 233, 133, 26, 122, + 237, 133, 26, 122, 227, 207, 26, 122, 229, 219, 26, 122, 227, 196, 26, + 122, 229, 42, 26, 122, 227, 153, 26, 122, 228, 217, 26, 122, 229, 220, + 26, 122, 228, 193, 26, 122, 227, 169, 26, 122, 228, 200, 26, 122, 227, + 137, 26, 122, 227, 208, 26, 122, 229, 50, 26, 122, 227, 209, 26, 122, + 229, 180, 26, 122, 222, 239, 26, 122, 222, 240, 26, 122, 223, 51, 26, + 122, 225, 99, 26, 122, 223, 50, 26, 122, 228, 215, 26, 122, 227, 173, 26, + 122, 227, 149, 26, 122, 227, 148, 26, 122, 227, 138, 26, 122, 222, 231, + 26, 122, 228, 207, 26, 122, 229, 216, 26, 122, 228, 208, 26, 122, 229, + 217, 26, 122, 230, 111, 26, 122, 229, 190, 26, 122, 222, 251, 26, 122, + 227, 78, 26, 122, 230, 110, 26, 122, 229, 215, 26, 122, 228, 161, 26, + 122, 228, 162, 26, 122, 228, 164, 26, 122, 228, 163, 26, 122, 230, 109, + 26, 122, 227, 222, 26, 122, 222, 244, 26, 122, 223, 60, 26, 122, 222, + 228, 26, 122, 233, 174, 26, 122, 227, 205, 26, 122, 227, 245, 26, 122, + 229, 29, 26, 122, 229, 30, 26, 122, 230, 68, 26, 122, 227, 166, 26, 122, + 229, 192, 26, 122, 229, 28, 26, 122, 227, 164, 26, 122, 227, 168, 26, + 122, 227, 167, 26, 122, 232, 13, 26, 122, 228, 228, 26, 122, 227, 159, + 26, 122, 222, 234, 26, 122, 222, 255, 26, 122, 222, 225, 26, 122, 223, + 61, 26, 122, 227, 158, 26, 122, 223, 62, 26, 122, 222, 233, 26, 122, 227, + 147, 26, 122, 223, 56, 26, 122, 229, 218, 26, 122, 228, 210, 26, 122, + 235, 92, 26, 170, 235, 92, 26, 170, 57, 26, 170, 253, 4, 26, 170, 191, + 26, 170, 247, 61, 26, 170, 253, 177, 26, 170, 72, 26, 170, 247, 232, 26, + 170, 253, 96, 26, 170, 73, 26, 170, 252, 208, 26, 170, 247, 223, 26, 170, + 253, 15, 26, 170, 252, 251, 26, 170, 66, 26, 170, 247, 227, 26, 170, 252, + 250, 26, 170, 253, 27, 26, 170, 252, 233, 26, 170, 253, 100, 26, 170, + 253, 28, 26, 170, 74, 26, 170, 248, 219, 26, 170, 248, 220, 26, 170, 246, + 73, 26, 170, 240, 90, 26, 170, 243, 98, 26, 170, 243, 99, 26, 170, 238, + 203, 26, 170, 240, 96, 26, 170, 240, 97, 26, 170, 245, 51, 26, 170, 251, + 91, 26, 170, 245, 52, 26, 170, 251, 92, 26, 170, 251, 93, 26, 170, 238, + 83, 26, 170, 235, 233, 26, 170, 237, 34, 26, 170, 246, 93, 26, 170, 242, + 31, 26, 170, 252, 48, 26, 170, 246, 27, 26, 170, 235, 0, 26, 170, 246, + 28, 26, 170, 252, 49, 26, 170, 246, 96, 26, 170, 240, 100, 26, 170, 246, + 97, 26, 170, 235, 234, 26, 170, 238, 84, 26, 170, 246, 98, 26, 170, 242, + 33, 26, 170, 243, 102, 26, 170, 238, 209, 26, 170, 246, 88, 26, 170, 250, + 110, 26, 170, 244, 1, 26, 170, 250, 111, 26, 170, 250, 112, 26, 170, 244, + 0, 26, 170, 234, 122, 26, 170, 237, 228, 26, 170, 232, 74, 26, 170, 234, + 7, 26, 170, 234, 6, 26, 170, 230, 112, 26, 138, 235, 77, 26, 138, 228, + 195, 26, 138, 228, 199, 26, 138, 237, 139, 26, 138, 228, 201, 26, 138, + 228, 202, 26, 138, 235, 81, 26, 138, 237, 142, 26, 138, 227, 197, 26, + 138, 228, 204, 26, 138, 228, 205, 26, 138, 229, 188, 26, 138, 227, 140, + 26, 138, 227, 139, 26, 138, 228, 193, 26, 138, 237, 137, 26, 138, 237, + 141, 26, 138, 229, 180, 26, 138, 240, 213, 26, 138, 230, 159, 26, 138, + 237, 134, 26, 138, 237, 130, 26, 138, 233, 128, 26, 138, 233, 131, 26, + 138, 233, 138, 26, 138, 233, 133, 26, 138, 237, 133, 26, 138, 227, 248, + 26, 138, 222, 235, 26, 138, 227, 207, 26, 138, 227, 196, 26, 138, 229, + 204, 26, 138, 227, 144, 26, 138, 227, 172, 26, 138, 227, 153, 26, 138, + 228, 168, 26, 138, 222, 241, 26, 138, 228, 217, 26, 138, 227, 210, 26, + 138, 222, 237, 26, 138, 229, 220, 26, 138, 222, 236, 26, 138, 223, 52, + 26, 138, 222, 253, 26, 138, 222, 249, 26, 138, 222, 230, 26, 138, 225, + 102, 26, 138, 227, 151, 26, 138, 227, 174, 26, 138, 222, 242, 26, 138, + 227, 253, 26, 138, 229, 37, 26, 138, 228, 200, 26, 138, 229, 200, 26, + 138, 225, 97, 26, 138, 227, 143, 26, 138, 227, 171, 26, 138, 229, 36, 26, + 138, 227, 137, 26, 138, 229, 51, 26, 138, 227, 148, 26, 138, 229, 49, 26, + 138, 227, 138, 26, 138, 228, 207, 26, 138, 228, 208, 26, 138, 229, 217, + 26, 138, 229, 190, 26, 138, 233, 174, 26, 138, 227, 205, 26, 138, 222, + 246, 26, 138, 229, 192, 26, 138, 227, 165, 26, 138, 232, 13, 26, 138, + 227, 155, 26, 138, 222, 254, 26, 138, 227, 147, 26, 138, 223, 56, 26, + 138, 229, 24, 26, 138, 229, 26, 26, 138, 229, 23, 26, 138, 229, 25, 26, + 138, 228, 210, 25, 4, 154, 25, 4, 253, 59, 25, 4, 253, 41, 25, 4, 247, + 14, 25, 4, 247, 149, 25, 4, 252, 252, 25, 4, 253, 21, 25, 4, 250, 90, 25, + 4, 252, 200, 25, 4, 253, 22, 25, 4, 253, 42, 25, 4, 247, 166, 25, 4, 247, + 168, 25, 4, 253, 80, 25, 4, 253, 49, 25, 4, 247, 171, 25, 4, 250, 70, 25, + 4, 250, 74, 25, 4, 250, 72, 25, 4, 241, 156, 25, 4, 243, 173, 25, 4, 250, + 71, 25, 4, 250, 73, 25, 4, 243, 174, 25, 4, 198, 25, 4, 252, 229, 25, 4, + 252, 239, 25, 4, 248, 98, 25, 4, 247, 172, 25, 4, 253, 13, 25, 4, 253, + 14, 25, 4, 247, 90, 25, 4, 251, 253, 25, 4, 252, 1, 25, 4, 251, 255, 25, + 4, 245, 231, 25, 4, 245, 232, 25, 4, 251, 254, 25, 4, 252, 0, 25, 4, 245, + 233, 25, 4, 208, 25, 4, 253, 3, 25, 4, 253, 37, 25, 4, 247, 100, 25, 4, + 247, 197, 25, 4, 253, 36, 25, 4, 252, 246, 25, 4, 251, 201, 25, 4, 252, + 204, 25, 4, 253, 26, 25, 4, 253, 24, 25, 4, 248, 153, 25, 4, 247, 50, 25, + 4, 253, 52, 25, 4, 253, 25, 25, 4, 247, 206, 25, 4, 246, 165, 25, 4, 246, + 246, 25, 4, 247, 51, 25, 4, 241, 234, 25, 4, 241, 70, 25, 4, 246, 186, + 25, 4, 246, 245, 25, 4, 241, 72, 25, 4, 253, 35, 25, 4, 253, 132, 25, 4, + 253, 131, 25, 4, 247, 192, 25, 4, 251, 131, 25, 4, 253, 190, 25, 4, 253, + 159, 25, 4, 251, 141, 25, 4, 251, 154, 25, 4, 251, 156, 25, 4, 245, 106, + 25, 4, 245, 107, 25, 4, 251, 155, 25, 4, 251, 132, 25, 4, 251, 136, 25, + 4, 251, 134, 25, 4, 245, 92, 25, 4, 245, 93, 25, 4, 251, 133, 25, 4, 251, + 135, 25, 4, 245, 94, 25, 4, 245, 96, 25, 4, 239, 210, 25, 4, 239, 211, + 25, 4, 245, 95, 25, 4, 252, 211, 25, 4, 253, 48, 25, 4, 253, 30, 25, 4, + 247, 247, 25, 4, 247, 28, 25, 4, 253, 73, 25, 4, 253, 98, 25, 4, 248, 2, + 25, 4, 252, 243, 25, 4, 253, 139, 25, 4, 253, 138, 25, 4, 252, 69, 25, 4, + 247, 113, 25, 4, 253, 95, 25, 4, 253, 108, 25, 4, 252, 88, 25, 4, 252, + 202, 25, 4, 253, 18, 25, 4, 253, 44, 25, 4, 247, 207, 25, 4, 247, 106, + 25, 4, 253, 9, 25, 4, 96, 25, 4, 247, 218, 25, 4, 252, 215, 25, 4, 253, + 172, 25, 4, 253, 143, 25, 4, 248, 3, 25, 4, 248, 6, 25, 4, 253, 141, 25, + 4, 253, 66, 25, 4, 247, 128, 25, 4, 253, 83, 25, 4, 254, 173, 25, 4, 253, + 38, 25, 4, 252, 110, 25, 4, 252, 111, 25, 4, 254, 17, 25, 4, 254, 18, 25, + 4, 252, 116, 25, 4, 252, 122, 25, 4, 252, 124, 25, 4, 246, 68, 25, 4, + 246, 69, 25, 4, 252, 123, 25, 4, 252, 201, 25, 4, 252, 227, 25, 4, 252, + 248, 25, 4, 247, 179, 25, 4, 247, 181, 25, 4, 252, 247, 25, 4, 253, 8, + 25, 4, 247, 95, 25, 4, 246, 181, 25, 4, 247, 185, 25, 4, 247, 44, 25, 4, + 245, 18, 25, 4, 241, 206, 25, 4, 248, 119, 25, 4, 247, 19, 25, 4, 245, + 33, 25, 4, 235, 31, 57, 25, 4, 235, 31, 66, 25, 4, 235, 31, 74, 25, 4, + 235, 31, 252, 212, 25, 4, 235, 31, 252, 231, 25, 4, 235, 31, 72, 25, 4, + 235, 31, 73, 25, 4, 235, 31, 252, 208, 25, 4, 177, 25, 4, 253, 34, 25, 4, + 253, 7, 25, 4, 248, 76, 25, 4, 248, 80, 25, 4, 253, 6, 25, 4, 253, 33, + 25, 4, 250, 176, 25, 4, 247, 163, 25, 4, 247, 165, 25, 4, 241, 3, 25, 4, + 244, 75, 25, 4, 247, 164, 25, 4, 250, 194, 25, 4, 250, 198, 25, 4, 250, + 196, 25, 4, 244, 76, 25, 4, 244, 77, 25, 4, 250, 195, 25, 4, 250, 197, + 25, 4, 244, 78, 25, 4, 244, 80, 25, 4, 239, 75, 25, 4, 239, 76, 25, 4, + 244, 79, 25, 4, 252, 208, 25, 4, 253, 109, 25, 4, 253, 27, 25, 4, 247, + 115, 25, 4, 247, 226, 25, 4, 252, 250, 25, 4, 253, 10, 25, 4, 252, 101, + 25, 4, 230, 138, 57, 25, 4, 230, 138, 66, 25, 4, 230, 138, 74, 25, 4, + 230, 138, 252, 212, 25, 4, 230, 138, 252, 231, 25, 4, 230, 138, 72, 25, + 4, 230, 138, 73, 25, 4, 252, 226, 25, 4, 253, 97, 25, 4, 253, 72, 25, 4, + 248, 207, 25, 4, 247, 64, 25, 4, 253, 46, 25, 4, 253, 65, 25, 4, 252, + 193, 25, 4, 246, 223, 25, 4, 247, 240, 25, 4, 247, 238, 25, 4, 246, 108, + 25, 4, 241, 25, 25, 4, 246, 251, 25, 4, 247, 239, 25, 4, 246, 124, 25, 4, + 191, 25, 4, 252, 233, 25, 4, 253, 28, 25, 4, 247, 117, 25, 4, 247, 62, + 25, 4, 253, 96, 25, 4, 252, 251, 25, 4, 252, 153, 25, 4, 252, 203, 25, 4, + 253, 31, 25, 4, 253, 12, 25, 4, 249, 173, 25, 4, 247, 30, 25, 4, 253, 20, + 25, 4, 253, 57, 25, 4, 249, 217, 25, 4, 246, 192, 25, 4, 248, 24, 25, 4, + 248, 23, 25, 4, 243, 29, 25, 4, 243, 35, 25, 4, 248, 22, 25, 4, 247, 130, + 25, 4, 243, 51, 25, 4, 252, 213, 25, 4, 253, 118, 25, 4, 253, 104, 25, 4, + 250, 125, 25, 4, 247, 38, 25, 4, 253, 117, 25, 4, 253, 90, 25, 4, 250, + 146, 25, 4, 252, 205, 25, 4, 253, 40, 25, 4, 253, 39, 25, 4, 247, 143, + 25, 4, 247, 144, 25, 4, 253, 103, 25, 4, 253, 76, 25, 4, 250, 36, 25, 4, + 250, 50, 25, 4, 250, 52, 25, 4, 243, 163, 25, 4, 243, 164, 25, 4, 250, + 51, 25, 4, 247, 77, 25, 4, 248, 51, 25, 4, 248, 49, 25, 4, 243, 123, 25, + 4, 243, 127, 25, 4, 248, 48, 25, 4, 248, 50, 25, 4, 238, 244, 25, 4, 246, + 173, 25, 4, 247, 213, 25, 4, 247, 7, 25, 4, 241, 18, 25, 4, 240, 238, 25, + 4, 246, 247, 25, 4, 246, 228, 25, 4, 245, 248, 25, 4, 246, 176, 25, 4, + 247, 124, 25, 4, 246, 200, 25, 4, 242, 242, 25, 4, 240, 246, 25, 4, 246, + 217, 25, 4, 247, 29, 25, 4, 243, 4, 25, 4, 246, 182, 25, 4, 251, 107, 25, + 4, 246, 198, 25, 4, 245, 67, 25, 4, 245, 69, 25, 4, 248, 130, 25, 4, 247, + 99, 25, 4, 245, 71, 25, 4, 246, 216, 25, 4, 247, 216, 25, 4, 247, 58, 25, + 4, 246, 7, 25, 4, 242, 9, 25, 4, 246, 248, 25, 4, 247, 215, 25, 4, 246, + 9, 25, 4, 252, 42, 25, 4, 252, 47, 25, 4, 252, 44, 25, 4, 246, 24, 25, 4, + 246, 25, 25, 4, 252, 43, 25, 4, 252, 46, 25, 4, 246, 26, 25, 4, 252, 234, + 25, 4, 253, 178, 25, 4, 253, 88, 25, 4, 247, 139, 25, 4, 247, 140, 25, 4, + 253, 147, 25, 4, 253, 148, 25, 4, 248, 42, 25, 4, 213, 25, 4, 253, 82, + 25, 4, 252, 223, 25, 4, 248, 127, 25, 4, 247, 46, 25, 4, 253, 0, 25, 4, + 253, 50, 25, 4, 247, 47, 25, 4, 251, 202, 25, 4, 251, 32, 25, 4, 250, 5, + 25, 36, 231, 73, 76, 25, 235, 135, 76, 25, 231, 187, 25, 246, 162, 240, + 121, 25, 237, 67, 25, 230, 140, 25, 237, 66, 25, 236, 192, 237, 66, 25, + 233, 82, 76, 25, 231, 242, 230, 131, 25, 21, 118, 25, 21, 113, 25, 21, + 166, 25, 21, 158, 25, 21, 173, 25, 21, 183, 25, 21, 194, 25, 21, 187, 25, + 21, 192, 25, 65, 246, 179, 25, 65, 235, 52, 25, 65, 235, 80, 25, 65, 237, + 203, 25, 65, 237, 100, 25, 65, 238, 62, 25, 65, 233, 235, 25, 65, 235, + 169, 25, 65, 235, 132, 25, 65, 233, 75, 25, 65, 253, 53, 231, 196, 25, 4, + 231, 246, 247, 90, 25, 4, 247, 178, 25, 4, 244, 161, 25, 4, 247, 177, 25, + 4, 231, 246, 248, 2, 25, 4, 249, 135, 25, 4, 242, 225, 25, 4, 249, 134, + 25, 4, 231, 246, 248, 42, 25, 4, 250, 4, 25, 4, 243, 112, 25, 4, 250, 3, + 25, 4, 231, 246, 247, 47, 25, 4, 247, 191, 25, 4, 245, 87, 25, 4, 247, + 190, 25, 240, 188, 165, 240, 99, 25, 240, 188, 165, 238, 182, 25, 240, + 188, 165, 235, 206, 25, 240, 188, 165, 240, 125, 235, 206, 25, 240, 188, + 165, 238, 186, 25, 240, 188, 165, 239, 65, 25, 240, 188, 165, 236, 27, + 25, 240, 188, 165, 239, 8, 25, 240, 188, 165, 228, 239, 25, 240, 188, + 165, 244, 72, 131, 1, 57, 131, 1, 72, 131, 1, 74, 131, 1, 73, 131, 1, 66, + 131, 1, 196, 131, 1, 252, 205, 131, 1, 177, 131, 1, 253, 103, 131, 1, + 253, 39, 131, 1, 253, 76, 131, 1, 253, 40, 131, 1, 254, 63, 131, 1, 154, + 131, 1, 252, 252, 131, 1, 253, 41, 131, 1, 253, 21, 131, 1, 253, 59, 131, + 1, 253, 227, 131, 1, 252, 200, 131, 1, 253, 80, 131, 1, 253, 42, 131, 1, + 253, 49, 131, 1, 253, 22, 131, 1, 254, 96, 131, 1, 198, 131, 1, 253, 13, + 131, 1, 252, 239, 131, 1, 253, 14, 131, 1, 252, 229, 131, 1, 252, 201, + 131, 1, 248, 63, 131, 1, 251, 38, 131, 1, 252, 247, 131, 1, 252, 248, + 131, 1, 253, 8, 131, 1, 252, 227, 131, 1, 253, 251, 131, 1, 251, 145, + 131, 1, 251, 146, 131, 1, 251, 147, 131, 1, 248, 144, 131, 1, 248, 145, + 131, 1, 251, 152, 131, 1, 252, 204, 131, 1, 193, 131, 1, 253, 52, 131, 1, + 253, 24, 131, 1, 253, 25, 131, 1, 253, 26, 131, 1, 254, 9, 131, 1, 252, + 203, 131, 1, 252, 202, 131, 1, 253, 20, 131, 1, 253, 9, 131, 1, 253, 12, + 131, 1, 253, 44, 131, 1, 253, 57, 131, 1, 253, 31, 131, 1, 254, 48, 131, + 1, 248, 30, 131, 1, 248, 174, 131, 1, 248, 175, 131, 1, 248, 176, 131, 1, + 248, 177, 131, 1, 248, 178, 131, 1, 252, 25, 131, 1, 246, 216, 131, 1, + 246, 248, 131, 1, 247, 58, 131, 1, 247, 215, 131, 1, 247, 216, 131, 1, + 252, 30, 131, 1, 252, 208, 131, 1, 252, 250, 131, 1, 253, 27, 131, 1, + 253, 10, 131, 1, 253, 109, 131, 1, 254, 171, 131, 1, 191, 131, 1, 253, + 96, 131, 1, 253, 28, 131, 1, 252, 251, 131, 1, 252, 233, 131, 1, 254, + 176, 16, 17, 72, 16, 17, 248, 221, 16, 17, 74, 16, 17, 252, 216, 16, 17, + 73, 16, 17, 252, 220, 16, 17, 237, 93, 252, 220, 16, 17, 60, 252, 231, + 16, 17, 60, 74, 16, 17, 57, 16, 17, 252, 212, 16, 17, 252, 250, 16, 17, + 127, 252, 250, 16, 17, 253, 27, 16, 17, 127, 253, 27, 16, 17, 248, 194, + 16, 17, 127, 248, 194, 16, 17, 253, 10, 16, 17, 127, 253, 10, 16, 17, + 247, 116, 16, 17, 127, 247, 116, 16, 17, 235, 39, 247, 116, 16, 17, 252, + 208, 16, 17, 127, 252, 208, 16, 17, 247, 115, 16, 17, 127, 247, 115, 16, + 17, 235, 39, 247, 115, 16, 17, 252, 221, 16, 17, 237, 93, 254, 195, 16, + 17, 235, 31, 240, 121, 16, 17, 35, 155, 16, 17, 35, 237, 36, 16, 17, 35, + 237, 59, 132, 240, 147, 16, 17, 35, 252, 228, 132, 240, 147, 16, 17, 35, + 41, 132, 240, 147, 16, 17, 35, 240, 147, 16, 17, 35, 47, 155, 16, 17, 35, + 47, 240, 125, 61, 233, 243, 16, 17, 35, 237, 44, 246, 164, 16, 17, 35, + 240, 125, 169, 82, 16, 17, 35, 240, 180, 16, 17, 35, 103, 240, 149, 16, + 17, 252, 232, 16, 17, 253, 79, 16, 17, 253, 106, 16, 17, 253, 5, 16, 17, + 253, 0, 16, 17, 245, 58, 16, 17, 252, 223, 16, 17, 248, 132, 16, 17, 253, + 50, 16, 17, 247, 189, 16, 17, 237, 93, 247, 189, 16, 17, 60, 247, 149, + 16, 17, 60, 253, 41, 16, 17, 213, 16, 17, 248, 127, 16, 17, 247, 190, 16, + 17, 127, 247, 190, 16, 17, 247, 191, 16, 17, 127, 247, 191, 16, 17, 241, + 216, 16, 17, 127, 241, 216, 16, 17, 248, 137, 16, 17, 127, 248, 137, 16, + 17, 241, 217, 16, 17, 127, 241, 217, 16, 17, 247, 47, 16, 17, 127, 247, + 47, 16, 17, 241, 65, 16, 17, 127, 241, 65, 16, 17, 237, 93, 241, 65, 16, + 17, 254, 187, 16, 17, 127, 254, 187, 16, 17, 60, 212, 16, 17, 253, 9, 16, + 17, 245, 235, 16, 17, 253, 44, 16, 17, 252, 20, 16, 17, 96, 16, 17, 247, + 109, 16, 17, 237, 93, 247, 109, 16, 17, 60, 247, 30, 16, 17, 60, 253, 12, + 16, 17, 252, 202, 16, 17, 247, 207, 16, 17, 247, 59, 16, 17, 127, 247, + 59, 16, 17, 248, 186, 16, 17, 127, 248, 186, 16, 17, 242, 14, 16, 17, + 127, 242, 14, 16, 17, 113, 16, 17, 127, 113, 16, 17, 242, 15, 16, 17, + 127, 242, 15, 16, 17, 247, 218, 16, 17, 127, 247, 218, 16, 17, 241, 83, + 16, 17, 127, 241, 83, 16, 17, 235, 39, 241, 83, 16, 17, 254, 183, 16, 17, + 248, 181, 16, 17, 248, 182, 16, 17, 247, 217, 16, 17, 246, 191, 16, 17, + 253, 6, 16, 17, 244, 44, 16, 17, 253, 7, 16, 17, 250, 168, 16, 17, 253, + 33, 16, 17, 247, 162, 16, 17, 237, 93, 247, 162, 16, 17, 177, 16, 17, + 248, 76, 16, 17, 247, 164, 16, 17, 127, 247, 164, 16, 17, 247, 165, 16, + 17, 127, 247, 165, 16, 17, 241, 176, 16, 17, 127, 241, 176, 16, 17, 248, + 88, 16, 17, 127, 248, 88, 16, 17, 241, 177, 16, 17, 127, 241, 177, 16, + 17, 247, 163, 16, 17, 127, 247, 163, 16, 17, 241, 3, 16, 17, 127, 241, 3, + 16, 17, 235, 39, 241, 3, 16, 17, 254, 186, 16, 17, 253, 243, 16, 17, 228, + 194, 247, 156, 16, 17, 228, 194, 250, 167, 16, 17, 228, 194, 250, 177, + 16, 17, 228, 194, 250, 154, 16, 17, 253, 141, 16, 17, 242, 229, 16, 17, + 253, 143, 16, 17, 249, 159, 16, 17, 253, 66, 16, 17, 247, 126, 16, 17, + 237, 93, 247, 126, 16, 17, 252, 215, 16, 17, 248, 3, 16, 17, 248, 13, 16, + 17, 127, 248, 13, 16, 17, 247, 129, 16, 17, 127, 247, 129, 16, 17, 241, + 113, 16, 17, 127, 241, 113, 16, 17, 248, 14, 16, 17, 127, 248, 14, 16, + 17, 241, 114, 16, 17, 127, 241, 114, 16, 17, 247, 128, 16, 17, 127, 247, + 128, 16, 17, 241, 35, 16, 17, 127, 241, 35, 16, 17, 235, 39, 241, 35, 16, + 17, 254, 194, 16, 17, 237, 88, 253, 135, 16, 17, 253, 13, 16, 17, 244, + 114, 16, 17, 252, 239, 16, 17, 251, 13, 16, 17, 253, 14, 16, 17, 247, + 175, 16, 17, 237, 93, 247, 175, 16, 17, 198, 16, 17, 248, 98, 16, 17, + 247, 177, 16, 17, 127, 247, 177, 16, 17, 247, 178, 16, 17, 127, 247, 178, + 16, 17, 241, 196, 16, 17, 127, 241, 196, 16, 17, 248, 105, 16, 17, 127, + 248, 105, 16, 17, 241, 197, 16, 17, 127, 241, 197, 16, 17, 247, 90, 16, + 17, 127, 247, 90, 16, 17, 241, 54, 16, 17, 127, 241, 54, 16, 17, 235, 39, + 241, 54, 16, 17, 185, 16, 17, 127, 185, 16, 17, 254, 102, 16, 17, 230, + 175, 185, 16, 17, 237, 88, 185, 16, 17, 252, 247, 16, 17, 244, 162, 16, + 17, 252, 248, 16, 17, 248, 112, 16, 17, 253, 8, 16, 17, 247, 183, 16, 17, + 237, 93, 247, 183, 16, 17, 252, 201, 16, 17, 247, 179, 16, 17, 248, 118, + 16, 17, 127, 248, 118, 16, 17, 247, 95, 16, 17, 127, 247, 95, 16, 17, + 241, 56, 16, 17, 127, 241, 56, 16, 17, 235, 39, 241, 56, 16, 17, 199, 16, + 17, 60, 253, 69, 16, 17, 254, 115, 16, 17, 253, 80, 16, 17, 244, 83, 16, + 17, 253, 42, 16, 17, 250, 220, 16, 17, 253, 49, 16, 17, 247, 87, 16, 17, + 237, 93, 247, 87, 16, 17, 252, 200, 16, 17, 247, 166, 16, 17, 248, 94, + 16, 17, 127, 248, 94, 16, 17, 248, 95, 16, 17, 127, 248, 95, 16, 17, 241, + 187, 16, 17, 127, 241, 187, 16, 17, 248, 96, 16, 17, 127, 248, 96, 16, + 17, 241, 188, 16, 17, 127, 241, 188, 16, 17, 247, 171, 16, 17, 127, 247, + 171, 16, 17, 241, 186, 16, 17, 127, 241, 186, 16, 17, 149, 16, 17, 127, + 149, 16, 17, 124, 149, 16, 17, 253, 52, 16, 17, 245, 146, 16, 17, 253, + 24, 16, 17, 251, 223, 16, 17, 253, 25, 16, 17, 247, 104, 16, 17, 237, 93, + 247, 104, 16, 17, 252, 204, 16, 17, 248, 153, 16, 17, 248, 167, 16, 17, + 127, 248, 167, 16, 17, 248, 168, 16, 17, 127, 248, 168, 16, 17, 241, 253, + 16, 17, 127, 241, 253, 16, 17, 248, 169, 16, 17, 127, 248, 169, 16, 17, + 241, 254, 16, 17, 127, 241, 254, 16, 17, 247, 206, 16, 17, 127, 247, 206, + 16, 17, 241, 76, 16, 17, 127, 241, 76, 16, 17, 235, 39, 241, 76, 16, 17, + 193, 16, 17, 230, 175, 193, 16, 17, 254, 10, 16, 17, 231, 204, 193, 16, + 17, 231, 104, 254, 147, 16, 17, 235, 39, 251, 228, 16, 17, 235, 39, 251, + 208, 16, 17, 235, 39, 245, 195, 16, 17, 235, 39, 245, 221, 16, 17, 235, + 39, 245, 190, 16, 17, 235, 39, 245, 154, 16, 17, 246, 186, 16, 17, 247, + 51, 16, 17, 245, 165, 16, 17, 246, 245, 16, 17, 241, 239, 16, 17, 246, + 165, 16, 17, 241, 234, 16, 17, 241, 16, 16, 17, 127, 241, 16, 16, 17, + 241, 243, 16, 17, 127, 241, 243, 16, 17, 238, 56, 16, 17, 127, 238, 56, + 16, 17, 241, 244, 16, 17, 127, 241, 244, 16, 17, 238, 57, 16, 17, 127, + 238, 57, 16, 17, 241, 72, 16, 17, 127, 241, 72, 16, 17, 238, 55, 16, 17, + 127, 238, 55, 16, 17, 253, 160, 16, 17, 253, 96, 16, 17, 246, 74, 16, 17, + 253, 28, 16, 17, 252, 150, 16, 17, 252, 251, 16, 17, 247, 234, 16, 17, + 237, 93, 247, 234, 16, 17, 191, 16, 17, 247, 117, 16, 17, 248, 204, 16, + 17, 127, 248, 204, 16, 17, 248, 205, 16, 17, 127, 248, 205, 16, 17, 242, + 34, 16, 17, 127, 242, 34, 16, 17, 248, 206, 16, 17, 127, 248, 206, 16, + 17, 242, 35, 16, 17, 127, 242, 35, 16, 17, 247, 235, 16, 17, 127, 247, + 235, 16, 17, 241, 88, 16, 17, 127, 241, 88, 16, 17, 235, 39, 241, 88, 16, + 17, 254, 190, 16, 17, 230, 231, 254, 190, 16, 17, 127, 254, 190, 16, 17, + 237, 88, 253, 28, 16, 17, 253, 36, 16, 17, 239, 212, 253, 36, 16, 17, + 127, 253, 80, 16, 17, 245, 111, 16, 17, 253, 37, 16, 17, 251, 182, 16, + 17, 252, 246, 16, 17, 248, 149, 16, 17, 127, 253, 49, 16, 17, 208, 16, + 17, 247, 100, 16, 17, 127, 252, 200, 16, 17, 241, 228, 16, 17, 127, 241, + 228, 16, 17, 146, 16, 17, 127, 146, 16, 17, 124, 146, 16, 17, 253, 147, + 16, 17, 243, 105, 16, 17, 253, 88, 16, 17, 249, 247, 16, 17, 253, 148, + 16, 17, 248, 39, 16, 17, 252, 234, 16, 17, 247, 139, 16, 17, 241, 135, + 16, 17, 127, 241, 135, 16, 17, 254, 191, 16, 17, 246, 247, 16, 17, 237, + 207, 246, 247, 16, 17, 247, 7, 16, 17, 237, 207, 247, 7, 16, 17, 241, 79, + 16, 17, 237, 207, 241, 79, 16, 17, 246, 228, 16, 17, 241, 80, 16, 17, + 246, 173, 16, 17, 241, 18, 16, 17, 238, 73, 16, 17, 127, 238, 73, 16, 17, + 253, 135, 16, 17, 246, 13, 16, 17, 246, 14, 16, 17, 241, 82, 16, 17, 240, + 150, 16, 17, 252, 32, 16, 17, 252, 39, 16, 17, 252, 40, 16, 17, 252, 41, + 16, 17, 252, 38, 16, 17, 235, 64, 252, 252, 16, 17, 235, 64, 253, 41, 16, + 17, 235, 64, 250, 75, 16, 17, 235, 64, 253, 21, 16, 17, 235, 64, 248, 65, + 16, 17, 235, 64, 154, 16, 17, 235, 64, 247, 14, 16, 17, 235, 64, 212, 16, + 17, 236, 171, 212, 16, 17, 254, 66, 16, 17, 245, 90, 16, 17, 253, 131, + 16, 17, 248, 141, 16, 17, 253, 159, 16, 17, 251, 142, 16, 17, 253, 35, + 16, 17, 247, 192, 16, 17, 254, 196, 16, 17, 242, 5, 16, 17, 242, 6, 16, + 17, 242, 7, 16, 17, 242, 4, 16, 17, 127, 253, 36, 16, 17, 127, 253, 37, + 16, 17, 127, 252, 246, 16, 17, 127, 208, 16, 17, 239, 134, 16, 17, 247, + 182, 16, 17, 244, 216, 16, 17, 247, 93, 16, 17, 244, 219, 16, 17, 246, + 169, 16, 17, 244, 202, 16, 17, 253, 69, 16, 17, 251, 67, 16, 17, 237, 88, + 246, 186, 16, 17, 237, 88, 247, 51, 16, 17, 237, 88, 246, 245, 16, 17, + 237, 88, 246, 165, 16, 17, 230, 150, 246, 247, 16, 17, 230, 150, 247, 7, + 16, 17, 230, 150, 246, 228, 16, 17, 230, 150, 246, 173, 16, 17, 230, 150, + 253, 135, 16, 17, 248, 90, 16, 17, 244, 98, 16, 17, 248, 91, 16, 17, 244, + 99, 16, 17, 247, 17, 16, 17, 244, 96, 16, 17, 254, 93, 16, 17, 235, 65, + 246, 247, 16, 17, 235, 65, 247, 7, 16, 17, 235, 65, 241, 79, 16, 17, 235, + 65, 246, 228, 16, 17, 235, 65, 241, 80, 16, 17, 235, 65, 246, 173, 16, + 17, 235, 65, 241, 18, 16, 17, 235, 65, 253, 135, 16, 17, 235, 243, 254, + 185, 16, 17, 231, 204, 72, 16, 17, 231, 204, 74, 16, 17, 231, 204, 73, + 16, 17, 231, 204, 57, 16, 17, 231, 204, 252, 250, 16, 17, 231, 204, 253, + 27, 16, 17, 231, 204, 253, 10, 16, 17, 231, 204, 252, 208, 16, 17, 231, + 204, 252, 247, 16, 17, 231, 204, 252, 248, 16, 17, 231, 204, 253, 8, 16, + 17, 231, 204, 252, 201, 16, 17, 231, 204, 253, 6, 16, 17, 231, 204, 253, + 7, 16, 17, 231, 204, 253, 33, 16, 17, 231, 204, 177, 16, 17, 237, 88, + 252, 252, 16, 17, 237, 88, 253, 41, 16, 17, 237, 88, 253, 21, 16, 17, + 237, 88, 154, 16, 17, 60, 250, 29, 16, 17, 60, 248, 52, 16, 17, 60, 247, + 13, 16, 17, 60, 243, 143, 16, 17, 60, 250, 28, 16, 17, 60, 246, 202, 16, + 17, 60, 253, 3, 16, 17, 60, 252, 246, 16, 17, 60, 253, 36, 16, 17, 60, + 247, 197, 16, 17, 60, 253, 37, 16, 17, 60, 208, 16, 17, 60, 253, 109, 16, + 17, 60, 253, 10, 16, 17, 60, 252, 250, 16, 17, 60, 247, 226, 16, 17, 60, + 253, 27, 16, 17, 60, 252, 208, 16, 17, 60, 250, 101, 16, 17, 60, 250, + 100, 16, 17, 60, 247, 151, 16, 17, 60, 243, 241, 16, 17, 60, 250, 99, 16, + 17, 60, 250, 98, 16, 17, 60, 247, 213, 16, 17, 60, 246, 228, 16, 17, 60, + 246, 247, 16, 17, 60, 240, 238, 16, 17, 60, 247, 7, 16, 17, 60, 246, 173, + 16, 17, 60, 252, 33, 16, 17, 60, 247, 217, 16, 17, 60, 248, 181, 16, 17, + 60, 246, 11, 16, 17, 60, 248, 182, 16, 17, 60, 246, 191, 16, 17, 60, 253, + 82, 16, 17, 60, 253, 50, 16, 17, 60, 253, 0, 16, 17, 60, 247, 46, 16, 17, + 60, 252, 223, 16, 17, 60, 213, 16, 17, 60, 254, 187, 16, 17, 60, 253, 40, + 16, 17, 60, 253, 76, 16, 17, 60, 253, 103, 16, 17, 60, 247, 144, 16, 17, + 60, 253, 39, 16, 17, 60, 252, 205, 16, 17, 60, 250, 164, 16, 17, 60, 247, + 158, 16, 17, 60, 248, 82, 16, 17, 60, 244, 55, 16, 17, 60, 247, 157, 16, + 17, 60, 246, 178, 16, 17, 60, 250, 174, 16, 17, 60, 250, 173, 16, 17, 60, + 250, 171, 16, 17, 60, 244, 62, 16, 17, 60, 250, 172, 16, 17, 60, 247, + 161, 16, 17, 60, 253, 183, 16, 17, 60, 252, 227, 16, 17, 60, 253, 8, 16, + 17, 60, 252, 247, 16, 17, 60, 247, 181, 16, 17, 60, 252, 248, 16, 17, 60, + 252, 201, 16, 17, 60, 252, 229, 16, 17, 60, 253, 14, 16, 17, 60, 253, 13, + 16, 17, 60, 247, 172, 16, 17, 60, 252, 239, 16, 17, 60, 198, 16, 17, 60, + 252, 233, 16, 17, 60, 252, 251, 16, 17, 60, 253, 96, 16, 17, 60, 247, 62, + 16, 17, 60, 253, 28, 16, 17, 60, 191, 16, 17, 60, 253, 118, 16, 17, 237, + 88, 253, 118, 16, 17, 60, 253, 90, 16, 17, 60, 253, 117, 16, 17, 60, 247, + 38, 16, 17, 60, 253, 104, 16, 17, 237, 88, 253, 104, 16, 17, 60, 252, + 213, 16, 17, 60, 248, 73, 16, 17, 60, 248, 72, 16, 17, 60, 250, 135, 16, + 17, 60, 244, 20, 16, 17, 60, 248, 71, 16, 17, 60, 248, 70, 16, 17, 60, + 253, 22, 16, 17, 60, 253, 49, 16, 17, 60, 253, 80, 16, 17, 60, 247, 168, + 16, 17, 60, 253, 42, 16, 17, 60, 252, 200, 16, 17, 60, 249, 201, 16, 17, + 60, 249, 200, 16, 17, 60, 249, 198, 16, 17, 60, 243, 74, 16, 17, 60, 249, + 199, 16, 17, 60, 248, 30, 16, 17, 60, 250, 219, 16, 17, 60, 248, 91, 16, + 17, 60, 250, 218, 16, 17, 60, 244, 97, 16, 17, 60, 248, 90, 16, 17, 60, + 247, 17, 16, 17, 60, 246, 1, 16, 17, 60, 242, 7, 16, 17, 60, 242, 5, 16, + 17, 60, 240, 45, 16, 17, 60, 242, 6, 16, 17, 60, 242, 4, 16, 17, 60, 248, + 178, 16, 17, 60, 248, 177, 16, 17, 60, 248, 175, 16, 17, 60, 246, 0, 16, + 17, 60, 248, 176, 16, 17, 60, 248, 174, 16, 17, 60, 253, 97, 16, 17, 60, + 253, 65, 16, 17, 60, 253, 46, 16, 17, 60, 247, 64, 16, 17, 60, 253, 72, + 16, 17, 60, 252, 226, 16, 17, 60, 254, 193, 16, 17, 60, 59, 254, 193, 16, + 17, 60, 249, 222, 16, 17, 60, 249, 221, 16, 17, 60, 246, 255, 16, 17, 60, + 243, 90, 16, 17, 60, 249, 220, 16, 17, 60, 246, 254, 16, 17, 60, 253, 26, + 16, 17, 60, 253, 25, 16, 17, 60, 253, 52, 16, 17, 60, 247, 50, 16, 17, + 60, 253, 24, 16, 17, 60, 252, 204, 16, 17, 60, 246, 246, 16, 17, 60, 246, + 245, 16, 17, 60, 246, 186, 16, 17, 60, 241, 70, 16, 17, 60, 247, 51, 16, + 17, 60, 246, 165, 16, 17, 60, 253, 160, 16, 17, 60, 247, 216, 16, 17, 60, + 247, 215, 16, 17, 60, 246, 248, 16, 17, 60, 242, 9, 16, 17, 60, 247, 58, + 16, 17, 60, 246, 216, 16, 17, 60, 247, 124, 16, 17, 60, 247, 29, 16, 17, + 60, 246, 217, 16, 17, 60, 240, 246, 16, 17, 60, 246, 200, 16, 17, 60, + 246, 176, 16, 17, 60, 246, 19, 16, 17, 60, 246, 18, 16, 17, 60, 246, 16, + 16, 17, 60, 240, 51, 16, 17, 60, 246, 17, 16, 17, 60, 246, 15, 16, 17, + 253, 212, 53, 16, 17, 246, 162, 240, 121, 16, 17, 248, 140, 16, 17, 244, + 203, 16, 17, 244, 248, 16, 17, 239, 153, 16, 17, 244, 249, 16, 17, 239, + 154, 16, 17, 244, 247, 16, 17, 239, 152, 240, 135, 245, 193, 76, 240, + 135, 1, 238, 120, 240, 135, 1, 244, 108, 240, 135, 1, 238, 213, 240, 135, + 1, 245, 148, 240, 135, 1, 244, 229, 240, 135, 1, 246, 29, 240, 135, 1, + 243, 26, 240, 135, 1, 240, 43, 240, 135, 1, 243, 18, 240, 135, 1, 238, + 143, 240, 135, 1, 244, 154, 240, 135, 1, 243, 154, 240, 135, 1, 234, 169, + 240, 135, 1, 236, 242, 240, 135, 1, 245, 138, 240, 135, 1, 242, 47, 240, + 135, 1, 248, 124, 240, 135, 1, 253, 161, 240, 135, 1, 234, 89, 240, 135, + 1, 234, 131, 240, 135, 1, 234, 88, 240, 135, 1, 253, 81, 240, 135, 1, + 233, 57, 240, 135, 1, 244, 4, 240, 135, 1, 229, 16, 240, 135, 1, 239, + 188, 240, 135, 235, 171, 76, 240, 135, 200, 235, 171, 76, 140, 1, 249, + 242, 249, 244, 255, 26, 254, 191, 140, 1, 196, 140, 1, 252, 64, 254, 244, + 66, 140, 1, 254, 20, 140, 1, 254, 190, 140, 1, 254, 195, 140, 1, 234, + 247, 245, 247, 237, 219, 140, 1, 246, 242, 140, 1, 242, 59, 57, 140, 1, + 255, 42, 73, 140, 1, 255, 0, 57, 140, 1, 242, 43, 140, 1, 227, 70, 73, + 140, 1, 227, 175, 73, 140, 1, 73, 140, 1, 253, 15, 140, 1, 253, 106, 140, + 1, 245, 112, 253, 191, 251, 177, 146, 140, 1, 239, 58, 140, 1, 249, 152, + 140, 1, 250, 157, 254, 186, 140, 1, 214, 140, 1, 247, 0, 140, 1, 250, 22, + 250, 55, 214, 140, 1, 246, 197, 140, 1, 246, 60, 252, 109, 254, 195, 140, + 1, 239, 3, 212, 140, 1, 243, 167, 212, 140, 1, 222, 247, 212, 140, 1, + 223, 53, 212, 140, 1, 239, 126, 254, 120, 251, 42, 199, 140, 1, 227, 77, + 199, 140, 1, 232, 172, 140, 1, 250, 123, 255, 8, 254, 72, 74, 140, 1, 72, + 140, 1, 244, 16, 254, 192, 140, 1, 250, 24, 140, 1, 227, 170, 253, 4, + 140, 1, 228, 160, 57, 140, 1, 250, 124, 249, 230, 140, 1, 239, 192, 239, + 190, 254, 187, 140, 1, 242, 53, 238, 204, 140, 1, 240, 10, 193, 140, 1, + 245, 184, 227, 71, 193, 140, 1, 227, 176, 193, 140, 1, 254, 194, 140, 1, + 254, 193, 140, 1, 245, 255, 253, 136, 254, 162, 254, 183, 140, 1, 227, + 177, 254, 183, 140, 1, 222, 222, 140, 1, 234, 19, 242, 201, 236, 13, 254, + 185, 140, 1, 222, 250, 254, 185, 140, 1, 232, 173, 140, 1, 236, 175, 140, + 1, 243, 95, 255, 24, 72, 140, 1, 239, 96, 253, 245, 185, 140, 1, 225, 96, + 185, 140, 1, 227, 76, 185, 140, 1, 239, 82, 250, 205, 250, 229, 149, 140, + 1, 232, 171, 140, 1, 236, 111, 140, 1, 250, 118, 140, 1, 243, 24, 249, + 175, 222, 222, 140, 1, 236, 179, 243, 101, 73, 140, 1, 247, 135, 140, 1, + 250, 121, 140, 1, 234, 43, 140, 1, 242, 230, 140, 1, 238, 141, 140, 1, + 245, 217, 140, 1, 227, 72, 140, 1, 227, 178, 140, 1, 227, 244, 140, 1, + 254, 196, 140, 1, 254, 184, 140, 237, 62, 228, 182, 140, 233, 219, 228, + 182, 140, 240, 221, 228, 182, 140, 238, 104, 98, 140, 234, 254, 98, 140, + 234, 18, 98, 235, 34, 1, 57, 235, 34, 1, 74, 235, 34, 1, 66, 235, 34, 1, + 177, 235, 34, 1, 252, 205, 235, 34, 1, 246, 169, 235, 34, 1, 252, 202, + 235, 34, 1, 252, 203, 235, 34, 1, 252, 201, 235, 34, 1, 213, 235, 34, 1, + 252, 211, 235, 34, 1, 198, 235, 34, 1, 191, 235, 34, 1, 252, 200, 235, + 34, 1, 252, 208, 235, 34, 1, 252, 204, 235, 34, 1, 154, 235, 34, 31, 5, + 74, 235, 34, 31, 5, 66, 235, 34, 5, 235, 43, 235, 32, 1, 57, 235, 32, 1, + 74, 235, 32, 1, 66, 235, 32, 1, 177, 235, 32, 1, 252, 205, 235, 32, 1, + 246, 169, 235, 32, 1, 252, 202, 235, 32, 1, 252, 203, 235, 32, 1, 252, + 201, 235, 32, 1, 213, 235, 32, 1, 252, 211, 235, 32, 1, 198, 235, 32, 1, + 191, 235, 32, 1, 208, 235, 32, 1, 252, 200, 235, 32, 1, 252, 208, 235, + 32, 1, 252, 204, 235, 32, 1, 154, 235, 32, 31, 5, 74, 235, 32, 31, 5, 66, + 235, 32, 5, 232, 240, 230, 194, 237, 62, 228, 182, 230, 194, 47, 228, + 182, 240, 145, 1, 57, 240, 145, 1, 74, 240, 145, 1, 66, 240, 145, 1, 177, + 240, 145, 1, 252, 205, 240, 145, 1, 246, 169, 240, 145, 1, 252, 202, 240, + 145, 1, 252, 203, 240, 145, 1, 252, 201, 240, 145, 1, 213, 240, 145, 1, + 252, 211, 240, 145, 1, 198, 240, 145, 1, 191, 240, 145, 1, 208, 240, 145, + 1, 252, 200, 240, 145, 1, 252, 208, 240, 145, 1, 252, 204, 240, 145, 1, + 154, 240, 145, 31, 5, 74, 240, 145, 31, 5, 66, 233, 86, 1, 57, 233, 86, + 1, 74, 233, 86, 1, 66, 233, 86, 1, 177, 233, 86, 1, 252, 205, 233, 86, 1, + 246, 169, 233, 86, 1, 252, 202, 233, 86, 1, 252, 203, 233, 86, 1, 252, + 201, 233, 86, 1, 213, 233, 86, 1, 252, 211, 233, 86, 1, 198, 233, 86, 1, + 191, 233, 86, 1, 252, 200, 233, 86, 1, 252, 208, 233, 86, 1, 252, 204, + 233, 86, 31, 5, 74, 233, 86, 31, 5, 66, 71, 1, 177, 71, 1, 246, 178, 71, + 1, 253, 33, 71, 1, 247, 158, 71, 1, 247, 93, 71, 1, 252, 215, 71, 1, 246, + 176, 71, 1, 253, 66, 71, 1, 247, 29, 71, 1, 247, 19, 71, 1, 252, 203, 71, + 1, 240, 150, 71, 1, 253, 57, 71, 1, 241, 82, 71, 1, 251, 68, 71, 1, 252, + 202, 71, 1, 246, 173, 71, 1, 96, 71, 1, 246, 228, 71, 1, 253, 8, 71, 1, + 252, 211, 71, 1, 246, 182, 71, 1, 253, 50, 71, 1, 247, 99, 71, 1, 253, + 14, 71, 1, 252, 251, 71, 1, 252, 246, 71, 1, 253, 49, 71, 1, 253, 108, + 71, 1, 246, 165, 71, 1, 247, 203, 71, 1, 252, 204, 71, 1, 154, 71, 1, + 252, 200, 71, 1, 253, 35, 71, 229, 166, 31, 251, 129, 71, 229, 166, 31, + 247, 192, 71, 229, 166, 31, 253, 131, 71, 229, 166, 31, 248, 141, 71, + 229, 166, 31, 253, 132, 71, 229, 166, 31, 251, 148, 71, 229, 166, 31, + 248, 145, 71, 229, 166, 31, 245, 105, 71, 229, 166, 31, 254, 6, 71, 229, + 166, 31, 251, 207, 71, 229, 166, 31, 253, 186, 71, 229, 166, 31, 250, + 244, 71, 229, 166, 31, 253, 190, 71, 229, 166, 31, 248, 140, 71, 229, + 166, 31, 254, 3, 247, 219, 118, 71, 229, 166, 31, 254, 3, 247, 219, 113, + 71, 229, 166, 31, 251, 130, 71, 31, 233, 208, 254, 28, 71, 31, 233, 208, + 252, 212, 71, 31, 5, 252, 212, 71, 31, 5, 74, 71, 31, 5, 252, 216, 71, + 31, 5, 254, 190, 71, 31, 5, 253, 203, 71, 31, 5, 66, 71, 31, 5, 252, 224, + 71, 31, 5, 253, 197, 71, 31, 5, 253, 15, 71, 31, 5, 191, 71, 31, 5, 253, + 77, 71, 31, 5, 72, 71, 31, 5, 253, 4, 71, 31, 5, 252, 221, 71, 31, 5, + 252, 220, 71, 31, 5, 252, 222, 71, 5, 234, 170, 71, 5, 234, 204, 71, 5, + 227, 182, 71, 5, 229, 38, 71, 5, 234, 251, 71, 5, 236, 7, 71, 5, 239, + 226, 71, 5, 229, 155, 71, 5, 234, 135, 71, 5, 238, 91, 71, 5, 239, 236, + 236, 207, 71, 5, 237, 24, 71, 5, 238, 157, 71, 5, 229, 235, 71, 5, 244, + 54, 71, 5, 229, 234, 71, 5, 238, 136, 253, 189, 244, 74, 71, 5, 253, 60, + 247, 109, 71, 5, 236, 11, 71, 5, 239, 195, 244, 153, 71, 5, 234, 141, 71, + 233, 112, 14, 245, 116, 71, 5, 227, 156, 71, 5, 232, 82, 71, 21, 240, + 126, 71, 21, 118, 71, 21, 113, 71, 21, 166, 71, 21, 158, 71, 21, 173, 71, + 21, 183, 71, 21, 194, 71, 21, 187, 71, 21, 192, 71, 14, 253, 60, 240, + 183, 251, 231, 71, 14, 253, 60, 240, 183, 244, 159, 71, 14, 253, 60, 240, + 183, 248, 132, 71, 14, 253, 60, 240, 183, 249, 108, 71, 14, 253, 60, 240, + 183, 242, 220, 71, 14, 253, 60, 240, 183, 245, 81, 71, 14, 253, 60, 240, + 183, 231, 125, 71, 14, 253, 60, 240, 183, 232, 255, 71, 14, 253, 60, 240, + 183, 232, 254, 71, 14, 253, 60, 240, 183, 231, 124, 68, 238, 123, 68, + 231, 218, 68, 237, 67, 68, 246, 162, 240, 121, 68, 237, 66, 68, 246, 160, + 240, 169, 68, 246, 175, 246, 227, 235, 69, 68, 246, 185, 4, 234, 21, 235, + 70, 68, 237, 64, 237, 67, 68, 237, 64, 246, 162, 240, 121, 68, 236, 167, + 68, 247, 142, 38, 233, 179, 118, 68, 247, 142, 38, 233, 179, 113, 68, + 247, 142, 38, 233, 179, 166, 68, 31, 230, 131, 68, 21, 240, 126, 68, 21, + 118, 68, 21, 113, 68, 21, 166, 68, 21, 158, 68, 21, 173, 68, 21, 183, 68, + 21, 194, 68, 21, 187, 68, 21, 192, 68, 1, 57, 68, 1, 72, 68, 1, 74, 68, + 1, 73, 68, 1, 66, 68, 1, 253, 15, 68, 1, 253, 71, 68, 1, 252, 231, 68, 1, + 252, 201, 68, 1, 247, 9, 68, 1, 252, 211, 68, 1, 213, 68, 1, 253, 35, 68, + 1, 252, 205, 68, 1, 198, 68, 1, 252, 200, 68, 1, 252, 204, 68, 1, 246, + 165, 68, 1, 252, 202, 68, 1, 252, 203, 68, 1, 246, 176, 68, 1, 252, 213, + 68, 1, 191, 68, 1, 208, 68, 1, 252, 208, 68, 1, 252, 234, 68, 1, 177, 68, + 1, 246, 178, 68, 1, 246, 216, 68, 1, 252, 226, 68, 1, 247, 14, 68, 1, + 252, 187, 68, 1, 247, 17, 68, 1, 247, 238, 68, 1, 246, 200, 68, 1, 246, + 175, 182, 31, 53, 68, 1, 246, 175, 72, 68, 1, 246, 175, 74, 68, 1, 246, + 175, 73, 68, 1, 246, 175, 66, 68, 1, 246, 175, 253, 15, 68, 1, 246, 175, + 253, 71, 68, 1, 246, 175, 247, 9, 68, 1, 246, 175, 252, 211, 68, 1, 246, + 175, 213, 68, 1, 246, 175, 253, 35, 68, 1, 246, 175, 252, 205, 68, 1, + 246, 175, 198, 68, 1, 246, 175, 252, 202, 68, 1, 246, 175, 252, 203, 68, + 1, 246, 175, 246, 176, 68, 1, 246, 175, 252, 213, 68, 1, 246, 175, 246, + 216, 68, 1, 246, 175, 191, 68, 1, 246, 175, 252, 208, 68, 1, 246, 175, + 177, 68, 1, 246, 175, 247, 143, 68, 1, 246, 175, 247, 14, 68, 1, 246, + 175, 250, 130, 68, 1, 246, 175, 251, 59, 68, 1, 246, 175, 246, 254, 68, + 1, 246, 185, 72, 68, 1, 246, 185, 74, 68, 1, 246, 185, 253, 234, 68, 1, + 246, 185, 253, 71, 68, 1, 246, 185, 66, 68, 1, 246, 185, 247, 9, 68, 1, + 246, 185, 177, 68, 1, 246, 185, 252, 205, 68, 1, 246, 185, 154, 68, 1, + 246, 185, 213, 68, 1, 246, 185, 246, 165, 68, 1, 246, 185, 252, 202, 68, + 1, 246, 185, 252, 203, 68, 1, 246, 185, 252, 213, 68, 1, 246, 185, 252, + 234, 68, 1, 246, 185, 247, 143, 68, 1, 246, 185, 247, 14, 68, 1, 246, + 185, 246, 216, 68, 1, 246, 185, 252, 226, 68, 1, 246, 185, 247, 100, 68, + 1, 246, 185, 246, 176, 68, 1, 246, 185, 246, 223, 68, 1, 237, 64, 74, 68, + 1, 237, 64, 177, 68, 1, 237, 64, 208, 68, 1, 237, 64, 252, 234, 68, 1, + 237, 64, 246, 223, 68, 1, 252, 209, 246, 161, 234, 4, 118, 68, 1, 252, + 209, 246, 161, 237, 25, 118, 68, 1, 252, 209, 246, 161, 236, 41, 68, 1, + 252, 209, 246, 161, 233, 248, 68, 1, 252, 209, 246, 161, 233, 70, 233, + 248, 68, 1, 252, 209, 246, 161, 235, 148, 68, 1, 252, 209, 246, 161, 152, + 235, 148, 68, 1, 252, 209, 246, 161, 57, 68, 1, 252, 209, 246, 161, 74, + 68, 1, 252, 209, 246, 161, 177, 68, 1, 252, 209, 246, 161, 246, 169, 68, + 1, 252, 209, 246, 161, 252, 215, 68, 1, 252, 209, 246, 161, 246, 191, 68, + 1, 252, 209, 246, 161, 240, 150, 68, 1, 252, 209, 246, 161, 246, 192, 68, + 1, 252, 209, 246, 161, 246, 203, 68, 1, 252, 209, 246, 161, 252, 202, 68, + 1, 252, 209, 246, 161, 252, 203, 68, 1, 252, 209, 246, 161, 213, 68, 1, + 252, 209, 246, 161, 246, 182, 68, 1, 252, 209, 246, 161, 246, 190, 68, 1, + 252, 209, 246, 161, 246, 223, 68, 1, 252, 209, 246, 161, 252, 226, 68, 1, + 252, 209, 246, 161, 253, 111, 68, 1, 246, 175, 252, 209, 246, 161, 252, + 202, 68, 1, 246, 175, 252, 209, 246, 161, 246, 223, 68, 1, 237, 64, 252, + 209, 246, 161, 246, 202, 68, 1, 237, 64, 252, 209, 246, 161, 246, 169, + 68, 1, 237, 64, 252, 209, 246, 161, 252, 215, 68, 1, 237, 64, 252, 209, + 246, 161, 246, 213, 68, 1, 237, 64, 252, 209, 246, 161, 246, 191, 68, 1, + 237, 64, 252, 209, 246, 161, 240, 166, 68, 1, 237, 64, 252, 209, 246, + 161, 252, 202, 68, 1, 237, 64, 252, 209, 246, 161, 246, 196, 68, 1, 237, + 64, 252, 209, 246, 161, 246, 190, 68, 1, 237, 64, 252, 209, 246, 161, + 249, 170, 68, 1, 237, 64, 252, 209, 246, 161, 246, 223, 68, 1, 237, 64, + 252, 209, 246, 161, 252, 226, 68, 1, 252, 209, 246, 161, 132, 66, 68, 1, + 252, 209, 246, 161, 132, 191, 68, 1, 237, 64, 252, 209, 246, 161, 246, + 199, 68, 1, 252, 209, 246, 161, 234, 46, 68, 1, 237, 64, 252, 209, 246, + 161, 247, 17, 174, 228, 172, 236, 133, 174, 1, 177, 174, 1, 246, 178, + 174, 1, 252, 205, 174, 1, 246, 202, 174, 1, 246, 169, 174, 1, 252, 215, + 174, 1, 246, 176, 174, 1, 252, 213, 174, 1, 246, 213, 174, 1, 248, 197, + 174, 1, 252, 202, 174, 1, 246, 173, 174, 1, 252, 203, 174, 1, 246, 196, + 174, 1, 252, 201, 174, 1, 213, 174, 1, 246, 182, 174, 1, 252, 211, 174, + 1, 246, 199, 174, 1, 198, 174, 1, 191, 174, 1, 208, 174, 1, 252, 200, + 174, 1, 252, 208, 174, 1, 246, 165, 174, 1, 246, 190, 174, 1, 252, 204, + 174, 1, 154, 174, 31, 5, 57, 174, 31, 5, 74, 174, 31, 5, 66, 174, 31, 5, + 252, 231, 174, 31, 5, 252, 221, 174, 31, 5, 252, 220, 174, 31, 5, 252, + 222, 174, 31, 5, 72, 174, 31, 5, 73, 174, 231, 189, 1, 191, 174, 231, + 189, 1, 208, 174, 231, 189, 1, 252, 208, 174, 3, 1, 177, 174, 3, 1, 246, + 169, 174, 3, 1, 231, 206, 174, 3, 1, 252, 202, 174, 3, 1, 252, 201, 174, + 3, 1, 213, 174, 3, 1, 198, 174, 3, 1, 208, 174, 3, 1, 252, 200, 174, 5, + 231, 106, 174, 5, 231, 91, 174, 5, 245, 145, 174, 5, 247, 87, 174, 229, + 165, 76, 174, 233, 82, 76, 174, 21, 240, 126, 174, 21, 118, 174, 21, 113, + 174, 21, 166, 174, 21, 158, 174, 21, 173, 174, 21, 183, 174, 21, 194, + 174, 21, 187, 174, 21, 192, 91, 254, 197, 1, 177, 91, 254, 197, 1, 253, + 83, 91, 254, 197, 1, 246, 169, 91, 254, 197, 1, 246, 216, 91, 254, 197, + 1, 252, 204, 91, 254, 197, 1, 191, 91, 254, 197, 1, 252, 202, 91, 254, + 197, 1, 246, 173, 91, 254, 197, 1, 252, 200, 91, 254, 197, 1, 213, 91, + 254, 197, 1, 246, 182, 91, 254, 197, 1, 198, 91, 254, 197, 1, 252, 234, + 91, 254, 197, 1, 252, 243, 91, 254, 197, 1, 154, 91, 254, 197, 1, 253, + 35, 91, 254, 197, 1, 246, 178, 91, 254, 197, 1, 240, 240, 91, 254, 197, + 1, 252, 201, 91, 254, 197, 1, 57, 91, 254, 197, 1, 74, 91, 254, 197, 1, + 252, 231, 91, 254, 197, 1, 253, 144, 91, 254, 197, 1, 66, 91, 254, 197, + 1, 252, 220, 91, 254, 197, 1, 73, 91, 254, 197, 1, 253, 71, 91, 254, 197, + 1, 72, 91, 254, 197, 1, 248, 241, 91, 254, 197, 1, 252, 221, 91, 254, + 197, 1, 235, 101, 91, 254, 197, 1, 235, 102, 91, 254, 197, 1, 235, 227, + 91, 254, 197, 1, 235, 103, 91, 254, 197, 1, 235, 228, 139, 91, 144, 1, + 201, 253, 35, 139, 91, 144, 1, 184, 253, 35, 139, 91, 144, 1, 201, 177, + 139, 91, 144, 1, 201, 253, 83, 139, 91, 144, 1, 201, 246, 169, 139, 91, + 144, 1, 184, 177, 139, 91, 144, 1, 184, 253, 83, 139, 91, 144, 1, 184, + 246, 169, 139, 91, 144, 1, 201, 246, 216, 139, 91, 144, 1, 201, 252, 204, + 139, 91, 144, 1, 201, 191, 139, 91, 144, 1, 184, 246, 216, 139, 91, 144, + 1, 184, 252, 204, 139, 91, 144, 1, 184, 191, 139, 91, 144, 1, 201, 252, + 202, 139, 91, 144, 1, 201, 246, 173, 139, 91, 144, 1, 201, 252, 201, 139, + 91, 144, 1, 184, 252, 202, 139, 91, 144, 1, 184, 246, 173, 139, 91, 144, + 1, 184, 252, 201, 139, 91, 144, 1, 201, 213, 139, 91, 144, 1, 201, 246, + 182, 139, 91, 144, 1, 201, 198, 139, 91, 144, 1, 184, 213, 139, 91, 144, + 1, 184, 246, 182, 139, 91, 144, 1, 184, 198, 139, 91, 144, 1, 201, 252, + 234, 139, 91, 144, 1, 201, 252, 243, 139, 91, 144, 1, 201, 252, 200, 139, + 91, 144, 1, 184, 252, 234, 139, 91, 144, 1, 184, 252, 243, 139, 91, 144, + 1, 184, 252, 200, 139, 91, 144, 1, 201, 154, 139, 91, 144, 1, 201, 252, + 203, 139, 91, 144, 1, 201, 252, 211, 139, 91, 144, 1, 184, 154, 139, 91, + 144, 1, 184, 252, 203, 139, 91, 144, 1, 184, 252, 211, 139, 91, 144, 1, + 201, 248, 87, 139, 91, 144, 1, 201, 248, 195, 139, 91, 144, 1, 184, 248, + 87, 139, 91, 144, 1, 184, 248, 195, 139, 91, 144, 31, 5, 31, 231, 142, + 139, 91, 144, 31, 5, 252, 212, 139, 91, 144, 31, 5, 252, 216, 139, 91, + 144, 31, 5, 66, 139, 91, 144, 31, 5, 252, 224, 139, 91, 144, 31, 5, 72, + 139, 91, 144, 31, 5, 253, 4, 139, 91, 144, 31, 5, 73, 139, 91, 144, 31, + 5, 253, 253, 139, 91, 144, 31, 5, 253, 71, 139, 91, 144, 31, 5, 253, 114, + 139, 91, 144, 31, 5, 248, 226, 139, 91, 144, 31, 5, 254, 15, 139, 91, + 144, 31, 5, 254, 123, 139, 91, 144, 31, 5, 251, 95, 139, 91, 144, 31, 5, + 252, 51, 139, 91, 144, 31, 5, 253, 234, 139, 91, 144, 1, 35, 196, 139, + 91, 144, 1, 35, 253, 69, 139, 91, 144, 1, 35, 199, 139, 91, 144, 1, 35, + 185, 139, 91, 144, 1, 35, 254, 186, 139, 91, 144, 1, 35, 222, 222, 139, + 91, 144, 1, 35, 254, 185, 139, 91, 144, 206, 235, 190, 139, 91, 144, 206, + 235, 191, 139, 91, 144, 21, 240, 126, 139, 91, 144, 21, 118, 139, 91, + 144, 21, 113, 139, 91, 144, 21, 166, 139, 91, 144, 21, 158, 139, 91, 144, + 21, 173, 139, 91, 144, 21, 183, 139, 91, 144, 21, 194, 139, 91, 144, 21, + 187, 139, 91, 144, 21, 192, 139, 91, 144, 5, 250, 204, 139, 91, 144, 5, + 244, 87, 71, 14, 230, 88, 71, 14, 248, 104, 240, 164, 71, 14, 253, 189, + 240, 164, 71, 14, 253, 208, 240, 164, 71, 14, 248, 1, 240, 164, 71, 14, + 248, 135, 240, 164, 71, 14, 232, 37, 240, 164, 71, 14, 233, 230, 240, + 164, 71, 14, 233, 229, 240, 164, 71, 14, 232, 36, 240, 164, 71, 14, 253, + 214, 240, 164, 71, 14, 233, 198, 240, 164, 71, 14, 235, 162, 240, 164, + 71, 14, 235, 161, 240, 164, 71, 14, 233, 197, 240, 164, 71, 14, 233, 199, + 240, 164, 71, 14, 231, 183, 71, 14, 248, 104, 246, 211, 71, 14, 253, 189, + 246, 211, 71, 14, 253, 208, 246, 211, 71, 14, 248, 1, 246, 211, 71, 14, + 248, 135, 246, 211, 71, 14, 232, 37, 246, 211, 71, 14, 233, 230, 246, + 211, 71, 14, 233, 229, 246, 211, 71, 14, 232, 36, 246, 211, 71, 14, 253, + 214, 246, 211, 71, 14, 233, 198, 246, 211, 71, 14, 235, 162, 246, 211, + 71, 14, 235, 161, 246, 211, 71, 14, 233, 197, 246, 211, 71, 14, 233, 199, + 246, 211, 233, 73, 1, 177, 233, 73, 1, 252, 205, 233, 73, 1, 246, 169, + 233, 73, 1, 244, 217, 233, 73, 1, 213, 233, 73, 1, 252, 211, 233, 73, 1, + 198, 233, 73, 1, 248, 102, 233, 73, 1, 252, 202, 233, 73, 1, 252, 203, + 233, 73, 1, 252, 201, 233, 73, 1, 248, 117, 233, 73, 1, 252, 215, 233, + 73, 1, 252, 213, 233, 73, 1, 246, 181, 233, 73, 1, 245, 19, 233, 73, 1, + 191, 233, 73, 1, 208, 233, 73, 1, 252, 200, 233, 73, 1, 252, 243, 233, + 73, 1, 252, 204, 233, 73, 1, 57, 233, 73, 1, 154, 233, 73, 31, 5, 74, + 233, 73, 31, 5, 66, 233, 73, 31, 5, 72, 233, 73, 31, 5, 73, 233, 73, 31, + 5, 253, 4, 233, 73, 234, 181, 233, 73, 252, 255, 106, 233, 144, 85, 5, + 253, 198, 239, 223, 85, 5, 253, 198, 236, 20, 85, 5, 238, 142, 85, 5, + 235, 217, 85, 5, 238, 124, 85, 1, 238, 92, 85, 1, 242, 50, 235, 48, 85, + 1, 239, 39, 85, 1, 244, 5, 235, 48, 85, 1, 240, 65, 85, 1, 246, 31, 235, + 48, 85, 1, 254, 224, 241, 66, 85, 1, 254, 224, 247, 199, 235, 48, 85, 1, + 254, 229, 238, 20, 85, 1, 254, 229, 241, 180, 235, 48, 85, 1, 238, 198, + 85, 1, 235, 242, 85, 1, 239, 172, 85, 1, 245, 53, 235, 48, 85, 1, 177, + 85, 1, 188, 230, 168, 85, 1, 252, 205, 85, 1, 254, 248, 243, 153, 85, 1, + 246, 169, 85, 1, 252, 215, 85, 1, 255, 21, 244, 85, 85, 1, 252, 213, 85, + 1, 255, 33, 244, 15, 85, 1, 246, 181, 85, 1, 254, 214, 239, 81, 85, 1, + 254, 214, 241, 52, 230, 168, 85, 1, 254, 218, 241, 52, 230, 223, 85, 1, + 254, 218, 241, 52, 230, 168, 85, 1, 255, 13, 236, 199, 85, 1, 252, 202, + 85, 1, 254, 214, 245, 238, 85, 1, 252, 203, 85, 1, 254, 218, 244, 115, + 85, 1, 252, 201, 85, 1, 213, 85, 1, 254, 242, 239, 56, 85, 1, 252, 211, + 85, 1, 255, 19, 234, 138, 85, 1, 198, 85, 1, 191, 85, 1, 208, 85, 1, 252, + 200, 85, 1, 252, 208, 85, 1, 255, 15, 245, 147, 85, 1, 255, 15, 245, 151, + 85, 1, 252, 204, 85, 1, 154, 85, 5, 234, 207, 85, 31, 5, 235, 48, 85, 31, + 5, 252, 52, 85, 31, 5, 253, 198, 245, 152, 85, 31, 5, 245, 223, 85, 31, + 5, 251, 241, 244, 6, 85, 31, 5, 254, 224, 241, 66, 85, 31, 5, 254, 224, + 247, 199, 235, 48, 85, 31, 5, 254, 229, 238, 20, 85, 31, 5, 254, 229, + 241, 180, 235, 48, 85, 31, 5, 236, 253, 85, 31, 5, 237, 217, 241, 66, 85, + 31, 5, 237, 217, 235, 48, 85, 31, 5, 237, 217, 247, 199, 235, 48, 85, 31, + 5, 239, 191, 85, 31, 5, 245, 65, 235, 48, 85, 248, 229, 242, 42, 85, 1, + 252, 214, 237, 128, 85, 1, 250, 163, 237, 128, 85, 1, 252, 45, 237, 128, + 85, 1, 255, 23, 237, 128, 85, 1, 254, 254, 237, 128, 85, 1, 254, 177, + 237, 128, 85, 1, 238, 109, 237, 128, 85, 21, 240, 126, 85, 21, 118, 85, + 21, 113, 85, 21, 166, 85, 21, 158, 85, 21, 173, 85, 21, 183, 85, 21, 194, + 85, 21, 187, 85, 21, 192, 85, 239, 180, 85, 236, 183, 85, 240, 85, 85, + 241, 28, 231, 115, 85, 241, 28, 245, 186, 85, 241, 28, 234, 187, 85, 232, + 239, 85, 23, 14, 243, 77, 85, 23, 14, 243, 58, 85, 23, 14, 243, 85, 85, + 23, 14, 241, 117, 85, 23, 14, 248, 18, 235, 217, 85, 23, 14, 243, 70, 85, + 23, 14, 238, 166, 85, 23, 14, 238, 183, 85, 23, 14, 238, 168, 85, 23, 14, + 248, 18, 243, 122, 85, 23, 14, 36, 240, 31, 85, 23, 14, 36, 238, 201, 85, + 23, 14, 36, 236, 120, 85, 23, 14, 36, 236, 119, 85, 23, 14, 36, 233, 169, + 85, 23, 14, 36, 239, 64, 2, 233, 169, 85, 23, 14, 36, 239, 63, 2, 233, + 169, 85, 23, 14, 36, 238, 121, 85, 23, 14, 36, 243, 152, 85, 23, 14, 230, + 158, 246, 157, 247, 133, 85, 23, 14, 230, 158, 246, 157, 248, 17, 85, 23, + 14, 230, 158, 237, 58, 248, 183, 85, 23, 14, 230, 158, 237, 58, 252, 4, + 85, 23, 14, 231, 232, 246, 157, 245, 60, 85, 23, 14, 231, 232, 246, 157, + 245, 83, 85, 23, 14, 231, 232, 237, 58, 245, 76, 85, 23, 14, 231, 232, + 237, 58, 245, 79, 85, 23, 14, 231, 232, 246, 157, 241, 62, 220, 5, 232, + 244, 220, 5, 231, 116, 220, 5, 231, 117, 220, 1, 57, 220, 1, 74, 220, 1, + 66, 220, 1, 253, 4, 220, 1, 73, 220, 1, 72, 220, 1, 253, 100, 220, 1, + 177, 220, 1, 253, 35, 220, 1, 252, 205, 220, 1, 246, 169, 220, 1, 252, + 215, 220, 1, 252, 213, 220, 1, 252, 226, 220, 1, 246, 181, 220, 1, 252, + 202, 220, 1, 252, 203, 220, 1, 252, 201, 220, 1, 213, 220, 1, 252, 234, + 220, 1, 252, 243, 220, 1, 252, 211, 220, 1, 198, 220, 1, 191, 220, 1, + 208, 220, 1, 252, 200, 220, 1, 252, 208, 220, 1, 252, 204, 220, 1, 253, + 83, 220, 1, 154, 220, 231, 194, 5, 231, 114, 220, 231, 194, 5, 232, 243, + 220, 231, 194, 5, 234, 184, 220, 31, 5, 232, 241, 220, 31, 5, 234, 185, + 220, 31, 5, 230, 86, 220, 31, 5, 232, 242, 220, 31, 5, 234, 183, 220, 31, + 5, 230, 87, 220, 5, 234, 182, 220, 1, 246, 178, 220, 1, 251, 248, 220, + 21, 240, 126, 220, 21, 118, 220, 21, 113, 220, 21, 166, 220, 21, 158, + 220, 21, 173, 220, 21, 183, 220, 21, 194, 220, 21, 187, 220, 21, 192, + 156, 1, 177, 156, 1, 250, 175, 156, 1, 246, 178, 156, 1, 252, 205, 156, + 1, 250, 35, 156, 1, 246, 169, 156, 1, 252, 215, 156, 1, 246, 176, 156, 1, + 252, 213, 156, 1, 246, 181, 156, 1, 252, 202, 156, 1, 246, 173, 156, 1, + 252, 203, 156, 1, 252, 201, 156, 1, 213, 156, 1, 248, 133, 156, 1, 246, + 182, 156, 1, 252, 234, 156, 1, 249, 253, 156, 1, 252, 211, 156, 1, 249, + 124, 156, 1, 198, 156, 1, 251, 20, 156, 1, 246, 216, 156, 1, 240, 240, + 156, 1, 246, 254, 156, 1, 191, 156, 1, 208, 156, 1, 252, 200, 156, 1, + 154, 156, 1, 248, 61, 156, 1, 252, 243, 156, 1, 252, 204, 156, 1, 246, + 165, 156, 1, 252, 208, 156, 1, 57, 156, 231, 189, 1, 191, 156, 231, 189, + 1, 208, 156, 31, 5, 252, 212, 156, 31, 5, 74, 156, 31, 5, 73, 156, 31, 5, + 252, 220, 156, 31, 5, 66, 156, 31, 5, 252, 224, 156, 31, 5, 72, 156, 231, + 194, 5, 254, 186, 156, 231, 194, 5, 185, 156, 231, 194, 5, 149, 156, 231, + 194, 5, 199, 156, 231, 194, 5, 254, 187, 156, 231, 194, 5, 146, 156, 231, + 194, 5, 254, 183, 156, 231, 194, 5, 234, 172, 156, 231, 194, 5, 244, 48, + 156, 5, 251, 173, 156, 5, 237, 125, 156, 229, 161, 235, 218, 156, 229, + 161, 251, 85, 240, 41, 235, 218, 156, 229, 161, 235, 156, 156, 229, 161, + 240, 50, 235, 156, 156, 229, 161, 237, 10, 156, 21, 240, 126, 156, 21, + 118, 156, 21, 113, 156, 21, 166, 156, 21, 158, 156, 21, 173, 156, 21, + 183, 156, 21, 194, 156, 21, 187, 156, 21, 192, 156, 1, 246, 191, 156, 1, + 240, 150, 156, 1, 246, 192, 254, 189, 240, 122, 21, 240, 126, 254, 189, + 240, 122, 21, 118, 254, 189, 240, 122, 21, 113, 254, 189, 240, 122, 21, + 166, 254, 189, 240, 122, 21, 158, 254, 189, 240, 122, 21, 173, 254, 189, + 240, 122, 21, 183, 254, 189, 240, 122, 21, 194, 254, 189, 240, 122, 21, + 187, 254, 189, 240, 122, 21, 192, 254, 189, 240, 122, 1, 252, 200, 254, + 189, 240, 122, 1, 253, 113, 254, 189, 240, 122, 1, 254, 24, 254, 189, + 240, 122, 1, 247, 9, 254, 189, 240, 122, 1, 253, 112, 254, 189, 240, 122, + 1, 247, 166, 254, 189, 240, 122, 1, 248, 223, 254, 189, 240, 122, 1, 248, + 222, 254, 189, 240, 122, 1, 248, 224, 254, 189, 240, 122, 1, 248, 225, + 254, 189, 240, 122, 1, 253, 42, 254, 189, 240, 122, 1, 253, 182, 254, + 189, 240, 122, 1, 253, 230, 254, 189, 240, 122, 1, 250, 120, 254, 189, + 240, 122, 1, 253, 149, 254, 189, 240, 122, 1, 253, 22, 254, 189, 240, + 122, 1, 254, 163, 254, 189, 240, 122, 1, 253, 45, 254, 189, 240, 122, 1, + 248, 188, 254, 189, 240, 122, 1, 254, 15, 254, 189, 240, 122, 1, 253, 80, + 254, 189, 240, 122, 1, 254, 51, 254, 189, 240, 122, 1, 249, 223, 254, + 189, 240, 122, 1, 252, 232, 254, 189, 240, 122, 1, 248, 34, 254, 189, + 240, 122, 1, 253, 49, 254, 189, 240, 122, 1, 251, 100, 254, 189, 240, + 122, 1, 254, 121, 254, 189, 240, 122, 1, 254, 0, 254, 189, 240, 122, 1, + 253, 187, 254, 189, 240, 122, 254, 207, 234, 253, 254, 189, 240, 122, + 236, 88, 232, 60, 254, 189, 240, 122, 231, 105, 232, 60, 254, 189, 240, + 122, 239, 218, 254, 189, 240, 122, 232, 249, 254, 189, 240, 122, 242, 45, + 254, 189, 240, 122, 229, 161, 235, 193, 254, 189, 240, 122, 229, 161, 47, + 235, 193, 7, 1, 3, 6, 57, 7, 1, 3, 6, 253, 4, 7, 3, 1, 209, 253, 4, 7, 1, + 3, 6, 237, 118, 254, 185, 7, 1, 3, 6, 254, 194, 7, 1, 3, 6, 222, 222, 7, + 1, 3, 6, 246, 242, 7, 1, 3, 6, 72, 7, 3, 1, 209, 246, 157, 72, 7, 3, 1, + 209, 74, 7, 1, 3, 6, 254, 192, 7, 1, 3, 6, 254, 186, 7, 1, 3, 6, 255, 58, + 2, 82, 7, 1, 3, 6, 185, 7, 1, 3, 6, 200, 199, 7, 1, 3, 6, 73, 7, 1, 3, 6, + 246, 157, 73, 7, 3, 1, 233, 116, 73, 7, 3, 1, 233, 116, 246, 157, 73, 7, + 3, 1, 233, 116, 130, 2, 82, 7, 3, 1, 209, 253, 15, 7, 1, 3, 6, 253, 119, + 7, 3, 1, 252, 228, 132, 73, 7, 3, 1, 237, 59, 132, 73, 7, 1, 3, 6, 254, + 187, 7, 1, 3, 6, 200, 146, 7, 1, 3, 6, 209, 146, 7, 1, 3, 6, 254, 183, 7, + 1, 3, 6, 66, 7, 3, 1, 233, 116, 66, 7, 3, 1, 233, 116, 229, 247, 66, 7, + 3, 1, 233, 116, 209, 185, 7, 1, 3, 6, 196, 7, 1, 3, 6, 254, 195, 7, 1, 3, + 6, 254, 193, 7, 1, 3, 6, 247, 74, 7, 1, 237, 107, 232, 218, 234, 227, 7, + 1, 246, 224, 19, 1, 3, 6, 237, 61, 19, 1, 3, 6, 237, 82, 19, 1, 3, 6, + 252, 223, 19, 1, 3, 6, 246, 209, 19, 1, 3, 6, 246, 204, 28, 1, 3, 6, 253, + 58, 52, 1, 6, 57, 52, 1, 6, 253, 4, 52, 1, 6, 254, 185, 52, 1, 6, 237, + 118, 254, 185, 52, 1, 6, 222, 222, 52, 1, 6, 72, 52, 1, 6, 200, 72, 52, + 1, 6, 214, 52, 1, 6, 212, 52, 1, 6, 74, 52, 1, 6, 254, 192, 52, 1, 6, + 254, 186, 52, 1, 6, 149, 52, 1, 6, 185, 52, 1, 6, 199, 52, 1, 6, 200, + 199, 52, 1, 6, 73, 52, 1, 6, 253, 119, 52, 1, 6, 254, 187, 52, 1, 6, 146, + 52, 1, 6, 254, 183, 52, 1, 6, 66, 52, 1, 6, 254, 195, 52, 1, 3, 57, 52, + 1, 3, 209, 57, 52, 1, 3, 237, 71, 52, 1, 3, 209, 253, 4, 52, 1, 3, 254, + 185, 52, 1, 3, 222, 222, 52, 1, 3, 72, 52, 1, 3, 237, 144, 52, 1, 3, 246, + 157, 72, 52, 1, 3, 209, 246, 157, 72, 52, 1, 3, 214, 52, 1, 3, 209, 74, + 52, 1, 3, 254, 186, 52, 1, 3, 185, 52, 1, 3, 247, 0, 52, 1, 3, 73, 52, 1, + 3, 246, 157, 73, 52, 1, 3, 252, 228, 132, 73, 52, 1, 3, 237, 59, 132, 73, + 52, 1, 3, 254, 187, 52, 1, 3, 254, 183, 52, 1, 3, 66, 52, 1, 3, 233, 116, + 66, 52, 1, 3, 209, 185, 52, 1, 3, 196, 52, 1, 3, 246, 224, 52, 1, 3, 240, + 160, 52, 1, 3, 19, 237, 61, 52, 1, 3, 237, 75, 52, 1, 3, 19, 246, 198, + 52, 1, 3, 246, 200, 7, 231, 195, 3, 1, 74, 7, 231, 195, 3, 1, 146, 7, + 231, 195, 3, 1, 66, 7, 231, 195, 3, 1, 196, 19, 231, 195, 3, 1, 240, 160, + 19, 231, 195, 3, 1, 237, 61, 19, 231, 195, 3, 1, 246, 209, 19, 231, 195, + 3, 1, 246, 198, 19, 231, 195, 3, 1, 246, 200, 7, 3, 1, 253, 71, 7, 3, 1, + 45, 2, 237, 44, 205, 7, 3, 1, 255, 63, 2, 237, 44, 205, 7, 3, 1, 255, 72, + 2, 237, 44, 205, 7, 3, 1, 255, 68, 2, 237, 44, 205, 7, 3, 1, 255, 60, 2, + 237, 44, 205, 7, 3, 1, 255, 70, 2, 237, 44, 205, 7, 3, 1, 255, 57, 2, + 237, 44, 205, 7, 3, 1, 255, 57, 2, 233, 206, 22, 237, 44, 205, 7, 3, 1, + 255, 59, 2, 237, 44, 205, 7, 3, 1, 255, 61, 2, 237, 44, 205, 7, 3, 1, + 255, 56, 2, 237, 44, 205, 7, 3, 1, 209, 214, 52, 1, 28, 252, 232, 7, 3, + 1, 235, 38, 214, 7, 3, 1, 255, 48, 2, 227, 180, 7, 3, 6, 1, 255, 55, 2, + 82, 7, 3, 1, 246, 168, 2, 82, 7, 3, 1, 255, 70, 2, 82, 7, 3, 6, 1, 97, 2, + 82, 7, 3, 1, 235, 23, 2, 82, 7, 3, 1, 45, 2, 235, 36, 88, 7, 3, 1, 255, + 63, 2, 235, 36, 88, 7, 3, 1, 255, 72, 2, 235, 36, 88, 7, 3, 1, 255, 65, + 2, 235, 36, 88, 7, 3, 1, 255, 67, 2, 235, 36, 88, 7, 3, 1, 255, 58, 2, + 235, 36, 88, 7, 3, 1, 255, 68, 2, 235, 36, 88, 7, 3, 1, 255, 60, 2, 235, + 36, 88, 7, 3, 1, 255, 70, 2, 235, 36, 88, 7, 3, 1, 255, 57, 2, 235, 36, + 88, 7, 3, 1, 255, 59, 2, 235, 36, 88, 7, 3, 1, 253, 146, 2, 235, 36, 88, + 7, 3, 1, 255, 69, 2, 235, 36, 88, 7, 3, 1, 255, 74, 2, 235, 36, 88, 7, 3, + 1, 255, 56, 2, 235, 36, 88, 7, 3, 1, 102, 2, 231, 201, 88, 7, 3, 1, 240, + 120, 2, 231, 201, 88, 7, 3, 1, 255, 63, 2, 246, 171, 22, 240, 133, 7, 3, + 1, 161, 2, 231, 201, 88, 7, 3, 1, 246, 157, 161, 2, 231, 201, 88, 7, 3, + 1, 200, 246, 157, 161, 2, 231, 201, 88, 7, 3, 1, 241, 14, 2, 231, 201, + 88, 7, 3, 1, 255, 55, 2, 231, 201, 88, 7, 3, 1, 246, 157, 130, 2, 231, + 201, 88, 7, 3, 1, 253, 146, 2, 231, 201, 88, 7, 3, 1, 97, 2, 231, 201, + 88, 7, 3, 1, 253, 101, 2, 231, 201, 88, 52, 1, 3, 209, 237, 71, 52, 1, 3, + 254, 194, 52, 1, 3, 255, 62, 2, 240, 168, 52, 1, 3, 246, 242, 52, 1, 3, + 200, 246, 157, 72, 52, 1, 3, 254, 191, 52, 1, 3, 235, 46, 255, 73, 2, 82, + 52, 1, 3, 95, 214, 52, 1, 3, 209, 212, 52, 1, 3, 255, 55, 2, 82, 52, 1, + 3, 240, 146, 52, 1, 3, 6, 74, 52, 1, 3, 6, 255, 55, 2, 82, 52, 1, 3, 255, + 73, 2, 227, 200, 52, 1, 3, 255, 58, 2, 231, 201, 88, 52, 1, 3, 255, 58, + 2, 235, 36, 88, 52, 1, 3, 6, 149, 52, 1, 3, 255, 68, 2, 88, 52, 1, 3, + 209, 255, 68, 2, 182, 247, 3, 52, 1, 3, 255, 60, 2, 42, 88, 52, 1, 3, + 255, 60, 2, 231, 201, 88, 52, 1, 3, 6, 199, 52, 1, 3, 237, 118, 73, 52, + 1, 3, 246, 198, 52, 1, 3, 255, 59, 2, 88, 52, 1, 3, 246, 232, 52, 1, 3, + 255, 61, 2, 235, 36, 88, 52, 1, 3, 97, 125, 52, 1, 3, 233, 92, 52, 1, 3, + 6, 66, 52, 1, 3, 255, 69, 2, 88, 52, 1, 3, 209, 196, 52, 1, 3, 254, 193, + 52, 1, 3, 255, 56, 2, 231, 201, 88, 52, 1, 3, 255, 56, 2, 240, 168, 52, + 1, 3, 247, 74, 52, 1, 3, 237, 89, 36, 237, 50, 240, 163, 235, 24, 36, + 237, 50, 240, 159, 235, 24, 36, 245, 192, 51, 36, 231, 150, 76, 36, 227, + 250, 36, 227, 241, 36, 227, 252, 36, 227, 215, 36, 222, 245, 36, 222, + 243, 36, 7, 3, 1, 255, 57, 51, 36, 227, 221, 36, 227, 251, 36, 47, 230, + 125, 46, 36, 237, 208, 46, 36, 237, 170, 51, 36, 255, 8, 51, 36, 254, + 244, 46, 36, 255, 52, 46, 36, 7, 3, 1, 231, 230, 246, 157, 102, 46, 36, + 7, 3, 1, 253, 4, 36, 7, 3, 1, 253, 168, 36, 7, 3, 1, 253, 169, 36, 7, 3, + 1, 255, 62, 233, 79, 36, 7, 3, 1, 235, 38, 222, 222, 36, 7, 3, 1, 246, + 242, 36, 7, 3, 1, 214, 36, 7, 1, 3, 6, 214, 36, 7, 3, 1, 254, 186, 36, 7, + 3, 1, 149, 36, 7, 1, 3, 6, 149, 36, 7, 1, 3, 6, 185, 36, 7, 3, 1, 199, + 36, 7, 1, 3, 6, 199, 36, 7, 1, 3, 6, 146, 36, 7, 3, 1, 255, 57, 233, 143, + 36, 7, 3, 1, 193, 36, 7, 3, 1, 182, 193, 36, 7, 3, 1, 254, 193, 36, 42, + 231, 214, 46, 36, 41, 231, 214, 22, 103, 231, 214, 51, 7, 6, 1, 102, 2, + 246, 174, 51, 7, 3, 1, 102, 2, 246, 174, 51, 7, 6, 1, 45, 2, 56, 46, 7, + 3, 1, 45, 2, 56, 46, 7, 6, 1, 45, 2, 56, 51, 7, 3, 1, 45, 2, 56, 51, 7, + 6, 1, 45, 2, 246, 167, 51, 7, 3, 1, 45, 2, 246, 167, 51, 7, 6, 1, 255, + 62, 2, 235, 87, 22, 155, 7, 3, 1, 255, 62, 2, 235, 87, 22, 155, 7, 6, 1, + 255, 63, 2, 56, 46, 7, 3, 1, 255, 63, 2, 56, 46, 7, 6, 1, 255, 63, 2, 56, + 51, 7, 3, 1, 255, 63, 2, 56, 51, 7, 6, 1, 255, 63, 2, 246, 167, 51, 7, 3, + 1, 255, 63, 2, 246, 167, 51, 7, 6, 1, 255, 63, 2, 233, 79, 7, 3, 1, 255, + 63, 2, 233, 79, 7, 6, 1, 255, 63, 2, 230, 125, 51, 7, 3, 1, 255, 63, 2, + 230, 125, 51, 7, 6, 1, 161, 2, 237, 83, 22, 237, 36, 7, 3, 1, 161, 2, + 237, 83, 22, 237, 36, 7, 6, 1, 161, 2, 237, 83, 22, 155, 7, 3, 1, 161, 2, + 237, 83, 22, 155, 7, 6, 1, 161, 2, 230, 125, 51, 7, 3, 1, 161, 2, 230, + 125, 51, 7, 6, 1, 161, 2, 240, 128, 51, 7, 3, 1, 161, 2, 240, 128, 51, 7, + 6, 1, 161, 2, 235, 87, 22, 237, 46, 7, 3, 1, 161, 2, 235, 87, 22, 237, + 46, 7, 6, 1, 255, 72, 2, 56, 46, 7, 3, 1, 255, 72, 2, 56, 46, 7, 6, 1, + 255, 65, 2, 235, 16, 7, 3, 1, 255, 65, 2, 235, 16, 7, 6, 1, 255, 66, 2, + 56, 46, 7, 3, 1, 255, 66, 2, 56, 46, 7, 6, 1, 255, 66, 2, 56, 51, 7, 3, + 1, 255, 66, 2, 56, 51, 7, 6, 1, 255, 66, 2, 219, 7, 3, 1, 255, 66, 2, + 219, 7, 6, 1, 255, 66, 2, 233, 79, 7, 3, 1, 255, 66, 2, 233, 79, 7, 6, 1, + 255, 66, 2, 240, 161, 51, 7, 3, 1, 255, 66, 2, 240, 161, 51, 7, 6, 1, + 255, 55, 2, 240, 128, 51, 7, 3, 1, 255, 55, 2, 240, 128, 51, 7, 6, 1, + 255, 55, 2, 231, 203, 22, 155, 7, 3, 1, 255, 55, 2, 231, 203, 22, 155, 7, + 6, 1, 255, 67, 2, 155, 7, 3, 1, 255, 67, 2, 155, 7, 6, 1, 255, 67, 2, 56, + 51, 7, 3, 1, 255, 67, 2, 56, 51, 7, 6, 1, 255, 67, 2, 246, 167, 51, 7, 3, + 1, 255, 67, 2, 246, 167, 51, 7, 6, 1, 255, 58, 2, 56, 51, 7, 3, 1, 255, + 58, 2, 56, 51, 7, 6, 1, 255, 58, 2, 56, 240, 144, 22, 235, 16, 7, 3, 1, + 255, 58, 2, 56, 240, 144, 22, 235, 16, 7, 6, 1, 255, 58, 2, 246, 167, 51, + 7, 3, 1, 255, 58, 2, 246, 167, 51, 7, 6, 1, 255, 58, 2, 230, 125, 51, 7, + 3, 1, 255, 58, 2, 230, 125, 51, 7, 6, 1, 255, 68, 2, 155, 7, 3, 1, 255, + 68, 2, 155, 7, 6, 1, 255, 68, 2, 56, 46, 7, 3, 1, 255, 68, 2, 56, 46, 7, + 6, 1, 255, 68, 2, 56, 51, 7, 3, 1, 255, 68, 2, 56, 51, 7, 6, 1, 255, 60, + 2, 56, 46, 7, 3, 1, 255, 60, 2, 56, 46, 7, 6, 1, 255, 60, 2, 56, 51, 7, + 3, 1, 255, 60, 2, 56, 51, 7, 6, 1, 255, 60, 2, 246, 167, 51, 7, 3, 1, + 255, 60, 2, 246, 167, 51, 7, 6, 1, 255, 60, 2, 230, 125, 51, 7, 3, 1, + 255, 60, 2, 230, 125, 51, 7, 6, 1, 130, 2, 240, 128, 22, 155, 7, 3, 1, + 130, 2, 240, 128, 22, 155, 7, 6, 1, 130, 2, 240, 128, 22, 219, 7, 3, 1, + 130, 2, 240, 128, 22, 219, 7, 6, 1, 130, 2, 237, 83, 22, 237, 36, 7, 3, + 1, 130, 2, 237, 83, 22, 237, 36, 7, 6, 1, 130, 2, 237, 83, 22, 155, 7, 3, + 1, 130, 2, 237, 83, 22, 155, 7, 6, 1, 255, 70, 2, 155, 7, 3, 1, 255, 70, + 2, 155, 7, 6, 1, 255, 70, 2, 56, 46, 7, 3, 1, 255, 70, 2, 56, 46, 7, 6, + 1, 255, 57, 2, 56, 46, 7, 3, 1, 255, 57, 2, 56, 46, 7, 6, 1, 255, 57, 2, + 56, 51, 7, 3, 1, 255, 57, 2, 56, 51, 7, 6, 1, 255, 57, 2, 56, 240, 144, + 22, 235, 16, 7, 3, 1, 255, 57, 2, 56, 240, 144, 22, 235, 16, 7, 6, 1, + 255, 57, 2, 246, 167, 51, 7, 3, 1, 255, 57, 2, 246, 167, 51, 7, 6, 1, + 255, 59, 2, 56, 46, 7, 3, 1, 255, 59, 2, 56, 46, 7, 6, 1, 255, 59, 2, 56, + 51, 7, 3, 1, 255, 59, 2, 56, 51, 7, 6, 1, 255, 59, 2, 240, 159, 22, 56, + 46, 7, 3, 1, 255, 59, 2, 240, 159, 22, 56, 46, 7, 6, 1, 255, 59, 2, 241, + 29, 22, 56, 46, 7, 3, 1, 255, 59, 2, 241, 29, 22, 56, 46, 7, 6, 1, 255, + 59, 2, 56, 240, 144, 22, 56, 46, 7, 3, 1, 255, 59, 2, 56, 240, 144, 22, + 56, 46, 7, 6, 1, 255, 61, 2, 56, 46, 7, 3, 1, 255, 61, 2, 56, 46, 7, 6, + 1, 255, 61, 2, 56, 51, 7, 3, 1, 255, 61, 2, 56, 51, 7, 6, 1, 255, 61, 2, + 246, 167, 51, 7, 3, 1, 255, 61, 2, 246, 167, 51, 7, 6, 1, 255, 61, 2, + 230, 125, 51, 7, 3, 1, 255, 61, 2, 230, 125, 51, 7, 6, 1, 97, 2, 231, + 203, 51, 7, 3, 1, 97, 2, 231, 203, 51, 7, 6, 1, 97, 2, 240, 128, 51, 7, + 3, 1, 97, 2, 240, 128, 51, 7, 6, 1, 97, 2, 230, 125, 51, 7, 3, 1, 97, 2, + 230, 125, 51, 7, 6, 1, 97, 2, 240, 128, 22, 155, 7, 3, 1, 97, 2, 240, + 128, 22, 155, 7, 6, 1, 97, 2, 237, 83, 22, 219, 7, 3, 1, 97, 2, 237, 83, + 22, 219, 7, 6, 1, 255, 69, 2, 205, 7, 3, 1, 255, 69, 2, 205, 7, 6, 1, + 255, 69, 2, 56, 51, 7, 3, 1, 255, 69, 2, 56, 51, 7, 6, 1, 255, 71, 2, + 237, 36, 7, 3, 1, 255, 71, 2, 237, 36, 7, 6, 1, 255, 71, 2, 155, 7, 3, 1, + 255, 71, 2, 155, 7, 6, 1, 255, 71, 2, 219, 7, 3, 1, 255, 71, 2, 219, 7, + 6, 1, 255, 71, 2, 56, 46, 7, 3, 1, 255, 71, 2, 56, 46, 7, 6, 1, 255, 71, + 2, 56, 51, 7, 3, 1, 255, 71, 2, 56, 51, 7, 6, 1, 255, 74, 2, 56, 46, 7, + 3, 1, 255, 74, 2, 56, 46, 7, 6, 1, 255, 74, 2, 219, 7, 3, 1, 255, 74, 2, + 219, 7, 6, 1, 255, 64, 2, 56, 46, 7, 3, 1, 255, 64, 2, 56, 46, 7, 6, 1, + 255, 56, 2, 229, 162, 7, 3, 1, 255, 56, 2, 229, 162, 7, 6, 1, 255, 56, 2, + 56, 51, 7, 3, 1, 255, 56, 2, 56, 51, 7, 6, 1, 255, 56, 2, 246, 167, 51, + 7, 3, 1, 255, 56, 2, 246, 167, 51, 7, 3, 1, 255, 66, 2, 246, 167, 51, 7, + 3, 1, 255, 61, 2, 219, 7, 3, 1, 255, 71, 2, 246, 174, 46, 7, 3, 1, 255, + 64, 2, 246, 174, 46, 7, 3, 1, 102, 2, 41, 132, 240, 147, 7, 3, 1, 182, + 255, 59, 2, 56, 46, 7, 3, 1, 182, 255, 59, 2, 233, 74, 82, 7, 3, 1, 182, + 255, 59, 2, 201, 82, 7, 6, 1, 240, 235, 193, 7, 3, 1, 237, 75, 7, 6, 1, + 102, 2, 56, 51, 7, 3, 1, 102, 2, 56, 51, 7, 6, 1, 102, 2, 246, 171, 46, + 7, 3, 1, 102, 2, 246, 171, 46, 7, 6, 1, 102, 2, 230, 125, 22, 155, 7, 3, + 1, 102, 2, 230, 125, 22, 155, 7, 6, 1, 102, 2, 230, 125, 22, 237, 36, 7, + 3, 1, 102, 2, 230, 125, 22, 237, 36, 7, 6, 1, 102, 2, 230, 125, 22, 246, + 171, 46, 7, 3, 1, 102, 2, 230, 125, 22, 246, 171, 46, 7, 6, 1, 102, 2, + 230, 125, 22, 205, 7, 3, 1, 102, 2, 230, 125, 22, 205, 7, 6, 1, 102, 2, + 230, 125, 22, 56, 51, 7, 3, 1, 102, 2, 230, 125, 22, 56, 51, 7, 6, 1, + 102, 2, 240, 161, 22, 155, 7, 3, 1, 102, 2, 240, 161, 22, 155, 7, 6, 1, + 102, 2, 240, 161, 22, 237, 36, 7, 3, 1, 102, 2, 240, 161, 22, 237, 36, 7, + 6, 1, 102, 2, 240, 161, 22, 246, 171, 46, 7, 3, 1, 102, 2, 240, 161, 22, + 246, 171, 46, 7, 6, 1, 102, 2, 240, 161, 22, 205, 7, 3, 1, 102, 2, 240, + 161, 22, 205, 7, 6, 1, 102, 2, 240, 161, 22, 56, 51, 7, 3, 1, 102, 2, + 240, 161, 22, 56, 51, 7, 6, 1, 161, 2, 56, 51, 7, 3, 1, 161, 2, 56, 51, + 7, 6, 1, 161, 2, 246, 171, 46, 7, 3, 1, 161, 2, 246, 171, 46, 7, 6, 1, + 161, 2, 205, 7, 3, 1, 161, 2, 205, 7, 6, 1, 161, 2, 230, 125, 22, 155, 7, + 3, 1, 161, 2, 230, 125, 22, 155, 7, 6, 1, 161, 2, 230, 125, 22, 237, 36, + 7, 3, 1, 161, 2, 230, 125, 22, 237, 36, 7, 6, 1, 161, 2, 230, 125, 22, + 246, 171, 46, 7, 3, 1, 161, 2, 230, 125, 22, 246, 171, 46, 7, 6, 1, 161, + 2, 230, 125, 22, 205, 7, 3, 1, 161, 2, 230, 125, 22, 205, 7, 6, 1, 161, + 2, 230, 125, 22, 56, 51, 7, 3, 1, 161, 2, 230, 125, 22, 56, 51, 7, 6, 1, + 255, 55, 2, 246, 171, 46, 7, 3, 1, 255, 55, 2, 246, 171, 46, 7, 6, 1, + 255, 55, 2, 56, 51, 7, 3, 1, 255, 55, 2, 56, 51, 7, 6, 1, 130, 2, 56, 51, + 7, 3, 1, 130, 2, 56, 51, 7, 6, 1, 130, 2, 246, 171, 46, 7, 3, 1, 130, 2, + 246, 171, 46, 7, 6, 1, 130, 2, 230, 125, 22, 155, 7, 3, 1, 130, 2, 230, + 125, 22, 155, 7, 6, 1, 130, 2, 230, 125, 22, 237, 36, 7, 3, 1, 130, 2, + 230, 125, 22, 237, 36, 7, 6, 1, 130, 2, 230, 125, 22, 246, 171, 46, 7, 3, + 1, 130, 2, 230, 125, 22, 246, 171, 46, 7, 6, 1, 130, 2, 230, 125, 22, + 205, 7, 3, 1, 130, 2, 230, 125, 22, 205, 7, 6, 1, 130, 2, 230, 125, 22, + 56, 51, 7, 3, 1, 130, 2, 230, 125, 22, 56, 51, 7, 6, 1, 130, 2, 246, 188, + 22, 155, 7, 3, 1, 130, 2, 246, 188, 22, 155, 7, 6, 1, 130, 2, 246, 188, + 22, 237, 36, 7, 3, 1, 130, 2, 246, 188, 22, 237, 36, 7, 6, 1, 130, 2, + 246, 188, 22, 246, 171, 46, 7, 3, 1, 130, 2, 246, 188, 22, 246, 171, 46, + 7, 6, 1, 130, 2, 246, 188, 22, 205, 7, 3, 1, 130, 2, 246, 188, 22, 205, + 7, 6, 1, 130, 2, 246, 188, 22, 56, 51, 7, 3, 1, 130, 2, 246, 188, 22, 56, + 51, 7, 6, 1, 97, 2, 56, 51, 7, 3, 1, 97, 2, 56, 51, 7, 6, 1, 97, 2, 246, + 171, 46, 7, 3, 1, 97, 2, 246, 171, 46, 7, 6, 1, 97, 2, 246, 188, 22, 155, + 7, 3, 1, 97, 2, 246, 188, 22, 155, 7, 6, 1, 97, 2, 246, 188, 22, 237, 36, + 7, 3, 1, 97, 2, 246, 188, 22, 237, 36, 7, 6, 1, 97, 2, 246, 188, 22, 246, + 171, 46, 7, 3, 1, 97, 2, 246, 188, 22, 246, 171, 46, 7, 6, 1, 97, 2, 246, + 188, 22, 205, 7, 3, 1, 97, 2, 246, 188, 22, 205, 7, 6, 1, 97, 2, 246, + 188, 22, 56, 51, 7, 3, 1, 97, 2, 246, 188, 22, 56, 51, 7, 6, 1, 255, 64, + 2, 237, 36, 7, 3, 1, 255, 64, 2, 237, 36, 7, 6, 1, 255, 64, 2, 56, 51, 7, + 3, 1, 255, 64, 2, 56, 51, 7, 6, 1, 255, 64, 2, 246, 171, 46, 7, 3, 1, + 255, 64, 2, 246, 171, 46, 7, 6, 1, 255, 64, 2, 205, 7, 3, 1, 255, 64, 2, + 205, 7, 6, 1, 228, 192, 252, 245, 7, 3, 1, 228, 192, 252, 245, 7, 6, 1, + 228, 192, 196, 7, 3, 1, 228, 192, 196, 7, 6, 1, 255, 64, 2, 240, 202, 7, + 3, 1, 255, 64, 2, 240, 202, 19, 3, 1, 240, 120, 2, 237, 77, 19, 3, 1, + 240, 120, 2, 237, 74, 19, 3, 1, 240, 120, 2, 186, 22, 237, 39, 19, 3, 1, + 240, 120, 2, 172, 22, 237, 39, 19, 3, 1, 240, 120, 2, 186, 22, 240, 124, + 19, 3, 1, 240, 120, 2, 172, 22, 240, 124, 19, 3, 1, 240, 120, 2, 186, 22, + 228, 179, 19, 3, 1, 240, 120, 2, 172, 22, 228, 179, 19, 6, 1, 240, 120, + 2, 237, 77, 19, 6, 1, 240, 120, 2, 237, 74, 19, 6, 1, 240, 120, 2, 186, + 22, 237, 39, 19, 6, 1, 240, 120, 2, 172, 22, 237, 39, 19, 6, 1, 240, 120, + 2, 186, 22, 240, 124, 19, 6, 1, 240, 120, 2, 172, 22, 240, 124, 19, 6, 1, + 240, 120, 2, 186, 22, 228, 179, 19, 6, 1, 240, 120, 2, 172, 22, 228, 179, + 19, 3, 1, 235, 28, 2, 237, 77, 19, 3, 1, 235, 28, 2, 237, 74, 19, 3, 1, + 235, 28, 2, 186, 22, 237, 39, 19, 3, 1, 235, 28, 2, 172, 22, 237, 39, 19, + 3, 1, 235, 28, 2, 186, 22, 240, 124, 19, 3, 1, 235, 28, 2, 172, 22, 240, + 124, 19, 6, 1, 235, 28, 2, 237, 77, 19, 6, 1, 235, 28, 2, 237, 74, 19, 6, + 1, 235, 28, 2, 186, 22, 237, 39, 19, 6, 1, 235, 28, 2, 172, 22, 237, 39, + 19, 6, 1, 235, 28, 2, 186, 22, 240, 124, 19, 6, 1, 235, 28, 2, 172, 22, + 240, 124, 19, 3, 1, 252, 206, 2, 237, 77, 19, 3, 1, 252, 206, 2, 237, 74, + 19, 3, 1, 252, 206, 2, 186, 22, 237, 39, 19, 3, 1, 252, 206, 2, 172, 22, + 237, 39, 19, 3, 1, 252, 206, 2, 186, 22, 240, 124, 19, 3, 1, 252, 206, 2, + 172, 22, 240, 124, 19, 3, 1, 252, 206, 2, 186, 22, 228, 179, 19, 3, 1, + 252, 206, 2, 172, 22, 228, 179, 19, 6, 1, 252, 206, 2, 237, 77, 19, 6, 1, + 252, 206, 2, 237, 74, 19, 6, 1, 252, 206, 2, 186, 22, 237, 39, 19, 6, 1, + 252, 206, 2, 172, 22, 237, 39, 19, 6, 1, 252, 206, 2, 186, 22, 240, 124, + 19, 6, 1, 252, 206, 2, 172, 22, 240, 124, 19, 6, 1, 252, 206, 2, 186, 22, + 228, 179, 19, 6, 1, 252, 206, 2, 172, 22, 228, 179, 19, 3, 1, 246, 168, + 2, 237, 77, 19, 3, 1, 246, 168, 2, 237, 74, 19, 3, 1, 246, 168, 2, 186, + 22, 237, 39, 19, 3, 1, 246, 168, 2, 172, 22, 237, 39, 19, 3, 1, 246, 168, + 2, 186, 22, 240, 124, 19, 3, 1, 246, 168, 2, 172, 22, 240, 124, 19, 3, 1, + 246, 168, 2, 186, 22, 228, 179, 19, 3, 1, 246, 168, 2, 172, 22, 228, 179, + 19, 6, 1, 246, 168, 2, 237, 77, 19, 6, 1, 246, 168, 2, 237, 74, 19, 6, 1, + 246, 168, 2, 186, 22, 237, 39, 19, 6, 1, 246, 168, 2, 172, 22, 237, 39, + 19, 6, 1, 246, 168, 2, 186, 22, 240, 124, 19, 6, 1, 246, 168, 2, 172, 22, + 240, 124, 19, 6, 1, 246, 168, 2, 186, 22, 228, 179, 19, 6, 1, 246, 168, + 2, 172, 22, 228, 179, 19, 3, 1, 235, 35, 2, 237, 77, 19, 3, 1, 235, 35, + 2, 237, 74, 19, 3, 1, 235, 35, 2, 186, 22, 237, 39, 19, 3, 1, 235, 35, 2, + 172, 22, 237, 39, 19, 3, 1, 235, 35, 2, 186, 22, 240, 124, 19, 3, 1, 235, + 35, 2, 172, 22, 240, 124, 19, 6, 1, 235, 35, 2, 237, 77, 19, 6, 1, 235, + 35, 2, 237, 74, 19, 6, 1, 235, 35, 2, 186, 22, 237, 39, 19, 6, 1, 235, + 35, 2, 172, 22, 237, 39, 19, 6, 1, 235, 35, 2, 186, 22, 240, 124, 19, 6, + 1, 235, 35, 2, 172, 22, 240, 124, 19, 3, 1, 235, 23, 2, 237, 77, 19, 3, + 1, 235, 23, 2, 237, 74, 19, 3, 1, 235, 23, 2, 186, 22, 237, 39, 19, 3, 1, + 235, 23, 2, 172, 22, 237, 39, 19, 3, 1, 235, 23, 2, 186, 22, 240, 124, + 19, 3, 1, 235, 23, 2, 172, 22, 240, 124, 19, 3, 1, 235, 23, 2, 186, 22, + 228, 179, 19, 3, 1, 235, 23, 2, 172, 22, 228, 179, 19, 6, 1, 235, 23, 2, + 237, 74, 19, 6, 1, 235, 23, 2, 172, 22, 237, 39, 19, 6, 1, 235, 23, 2, + 172, 22, 240, 124, 19, 6, 1, 235, 23, 2, 172, 22, 228, 179, 19, 3, 1, + 240, 123, 2, 237, 77, 19, 3, 1, 240, 123, 2, 237, 74, 19, 3, 1, 240, 123, + 2, 186, 22, 237, 39, 19, 3, 1, 240, 123, 2, 172, 22, 237, 39, 19, 3, 1, + 240, 123, 2, 186, 22, 240, 124, 19, 3, 1, 240, 123, 2, 172, 22, 240, 124, + 19, 3, 1, 240, 123, 2, 186, 22, 228, 179, 19, 3, 1, 240, 123, 2, 172, 22, + 228, 179, 19, 6, 1, 240, 123, 2, 237, 77, 19, 6, 1, 240, 123, 2, 237, 74, + 19, 6, 1, 240, 123, 2, 186, 22, 237, 39, 19, 6, 1, 240, 123, 2, 172, 22, + 237, 39, 19, 6, 1, 240, 123, 2, 186, 22, 240, 124, 19, 6, 1, 240, 123, 2, + 172, 22, 240, 124, 19, 6, 1, 240, 123, 2, 186, 22, 228, 179, 19, 6, 1, + 240, 123, 2, 172, 22, 228, 179, 19, 3, 1, 240, 120, 2, 237, 39, 19, 3, 1, + 240, 120, 2, 240, 124, 19, 3, 1, 235, 28, 2, 237, 39, 19, 3, 1, 235, 28, + 2, 240, 124, 19, 3, 1, 252, 206, 2, 237, 39, 19, 3, 1, 252, 206, 2, 240, + 124, 19, 3, 1, 246, 168, 2, 237, 39, 19, 3, 1, 246, 168, 2, 240, 124, 19, + 3, 1, 235, 35, 2, 237, 39, 19, 3, 1, 235, 35, 2, 240, 124, 19, 3, 1, 235, + 23, 2, 237, 39, 19, 3, 1, 235, 23, 2, 240, 124, 19, 3, 1, 240, 123, 2, + 237, 39, 19, 3, 1, 240, 123, 2, 240, 124, 19, 3, 1, 240, 120, 2, 186, 22, + 227, 132, 19, 3, 1, 240, 120, 2, 172, 22, 227, 132, 19, 3, 1, 240, 120, + 2, 186, 22, 240, 165, 22, 227, 132, 19, 3, 1, 240, 120, 2, 172, 22, 240, + 165, 22, 227, 132, 19, 3, 1, 240, 120, 2, 186, 22, 246, 210, 22, 227, + 132, 19, 3, 1, 240, 120, 2, 172, 22, 246, 210, 22, 227, 132, 19, 3, 1, + 240, 120, 2, 186, 22, 229, 167, 22, 227, 132, 19, 3, 1, 240, 120, 2, 172, + 22, 229, 167, 22, 227, 132, 19, 6, 1, 240, 120, 2, 186, 22, 225, 104, 19, + 6, 1, 240, 120, 2, 172, 22, 225, 104, 19, 6, 1, 240, 120, 2, 186, 22, + 240, 165, 22, 225, 104, 19, 6, 1, 240, 120, 2, 172, 22, 240, 165, 22, + 225, 104, 19, 6, 1, 240, 120, 2, 186, 22, 246, 210, 22, 225, 104, 19, 6, + 1, 240, 120, 2, 172, 22, 246, 210, 22, 225, 104, 19, 6, 1, 240, 120, 2, + 186, 22, 229, 167, 22, 225, 104, 19, 6, 1, 240, 120, 2, 172, 22, 229, + 167, 22, 225, 104, 19, 3, 1, 252, 206, 2, 186, 22, 227, 132, 19, 3, 1, + 252, 206, 2, 172, 22, 227, 132, 19, 3, 1, 252, 206, 2, 186, 22, 240, 165, + 22, 227, 132, 19, 3, 1, 252, 206, 2, 172, 22, 240, 165, 22, 227, 132, 19, + 3, 1, 252, 206, 2, 186, 22, 246, 210, 22, 227, 132, 19, 3, 1, 252, 206, + 2, 172, 22, 246, 210, 22, 227, 132, 19, 3, 1, 252, 206, 2, 186, 22, 229, + 167, 22, 227, 132, 19, 3, 1, 252, 206, 2, 172, 22, 229, 167, 22, 227, + 132, 19, 6, 1, 252, 206, 2, 186, 22, 225, 104, 19, 6, 1, 252, 206, 2, + 172, 22, 225, 104, 19, 6, 1, 252, 206, 2, 186, 22, 240, 165, 22, 225, + 104, 19, 6, 1, 252, 206, 2, 172, 22, 240, 165, 22, 225, 104, 19, 6, 1, + 252, 206, 2, 186, 22, 246, 210, 22, 225, 104, 19, 6, 1, 252, 206, 2, 172, + 22, 246, 210, 22, 225, 104, 19, 6, 1, 252, 206, 2, 186, 22, 229, 167, 22, + 225, 104, 19, 6, 1, 252, 206, 2, 172, 22, 229, 167, 22, 225, 104, 19, 3, + 1, 240, 123, 2, 186, 22, 227, 132, 19, 3, 1, 240, 123, 2, 172, 22, 227, + 132, 19, 3, 1, 240, 123, 2, 186, 22, 240, 165, 22, 227, 132, 19, 3, 1, + 240, 123, 2, 172, 22, 240, 165, 22, 227, 132, 19, 3, 1, 240, 123, 2, 186, + 22, 246, 210, 22, 227, 132, 19, 3, 1, 240, 123, 2, 172, 22, 246, 210, 22, + 227, 132, 19, 3, 1, 240, 123, 2, 186, 22, 229, 167, 22, 227, 132, 19, 3, + 1, 240, 123, 2, 172, 22, 229, 167, 22, 227, 132, 19, 6, 1, 240, 123, 2, + 186, 22, 225, 104, 19, 6, 1, 240, 123, 2, 172, 22, 225, 104, 19, 6, 1, + 240, 123, 2, 186, 22, 240, 165, 22, 225, 104, 19, 6, 1, 240, 123, 2, 172, + 22, 240, 165, 22, 225, 104, 19, 6, 1, 240, 123, 2, 186, 22, 246, 210, 22, + 225, 104, 19, 6, 1, 240, 123, 2, 172, 22, 246, 210, 22, 225, 104, 19, 6, + 1, 240, 123, 2, 186, 22, 229, 167, 22, 225, 104, 19, 6, 1, 240, 123, 2, + 172, 22, 229, 167, 22, 225, 104, 19, 3, 1, 240, 120, 2, 235, 82, 19, 3, + 1, 240, 120, 2, 235, 16, 19, 3, 1, 240, 120, 2, 240, 165, 22, 227, 132, + 19, 3, 1, 240, 120, 2, 227, 132, 19, 3, 1, 240, 120, 2, 246, 210, 22, + 227, 132, 19, 3, 1, 240, 120, 2, 228, 179, 19, 3, 1, 240, 120, 2, 229, + 167, 22, 227, 132, 19, 6, 1, 240, 120, 2, 235, 82, 19, 6, 1, 240, 120, 2, + 235, 16, 19, 6, 1, 240, 120, 2, 237, 39, 19, 6, 1, 240, 120, 2, 240, 124, + 19, 6, 1, 240, 120, 2, 225, 104, 19, 233, 170, 19, 225, 104, 19, 237, 77, + 19, 228, 179, 19, 231, 207, 22, 228, 179, 19, 3, 1, 252, 206, 2, 240, + 165, 22, 227, 132, 19, 3, 1, 252, 206, 2, 227, 132, 19, 3, 1, 252, 206, + 2, 246, 210, 22, 227, 132, 19, 3, 1, 252, 206, 2, 228, 179, 19, 3, 1, + 252, 206, 2, 229, 167, 22, 227, 132, 19, 6, 1, 235, 28, 2, 237, 39, 19, + 6, 1, 235, 28, 2, 240, 124, 19, 6, 1, 252, 206, 2, 237, 39, 19, 6, 1, + 252, 206, 2, 240, 124, 19, 6, 1, 252, 206, 2, 225, 104, 19, 186, 22, 237, + 39, 19, 186, 22, 240, 124, 19, 186, 22, 228, 179, 19, 3, 1, 246, 168, 2, + 235, 82, 19, 3, 1, 246, 168, 2, 235, 16, 19, 3, 1, 246, 168, 2, 231, 207, + 22, 237, 39, 19, 3, 1, 246, 168, 2, 231, 207, 22, 240, 124, 19, 3, 1, + 246, 168, 2, 228, 179, 19, 3, 1, 246, 168, 2, 231, 207, 22, 228, 179, 19, + 6, 1, 246, 168, 2, 235, 82, 19, 6, 1, 246, 168, 2, 235, 16, 19, 6, 1, + 246, 168, 2, 237, 39, 19, 6, 1, 246, 168, 2, 240, 124, 19, 172, 22, 237, + 39, 19, 172, 22, 240, 124, 19, 172, 22, 228, 179, 19, 3, 1, 235, 23, 2, + 235, 82, 19, 3, 1, 235, 23, 2, 235, 16, 19, 3, 1, 235, 23, 2, 231, 207, + 22, 237, 39, 19, 3, 1, 235, 23, 2, 231, 207, 22, 240, 124, 19, 3, 1, 253, + 70, 2, 237, 77, 19, 3, 1, 253, 70, 2, 237, 74, 19, 3, 1, 235, 23, 2, 228, + 179, 19, 3, 1, 235, 23, 2, 231, 207, 22, 228, 179, 19, 6, 1, 235, 23, 2, + 235, 82, 19, 6, 1, 235, 23, 2, 235, 16, 19, 6, 1, 235, 23, 2, 237, 39, + 19, 6, 1, 235, 23, 2, 240, 124, 19, 6, 1, 253, 70, 2, 237, 74, 19, 231, + 207, 22, 237, 39, 19, 231, 207, 22, 240, 124, 19, 237, 39, 19, 3, 1, 240, + 123, 2, 240, 165, 22, 227, 132, 19, 3, 1, 240, 123, 2, 227, 132, 19, 3, + 1, 240, 123, 2, 246, 210, 22, 227, 132, 19, 3, 1, 240, 123, 2, 228, 179, + 19, 3, 1, 240, 123, 2, 229, 167, 22, 227, 132, 19, 6, 1, 235, 35, 2, 237, + 39, 19, 6, 1, 235, 35, 2, 240, 124, 19, 6, 1, 240, 123, 2, 237, 39, 19, + 6, 1, 240, 123, 2, 240, 124, 19, 6, 1, 240, 123, 2, 225, 104, 19, 240, + 124, 19, 237, 74, 254, 199, 240, 232, 254, 213, 240, 232, 254, 199, 237, + 69, 254, 213, 237, 69, 229, 154, 237, 69, 230, 62, 237, 69, 231, 144, + 237, 69, 237, 248, 237, 69, 229, 161, 237, 69, 252, 18, 237, 69, 250, 60, + 237, 69, 247, 27, 241, 23, 237, 69, 247, 27, 241, 23, 230, 82, 247, 27, + 241, 23, 235, 124, 227, 195, 76, 227, 198, 76, 235, 69, 229, 43, 235, 69, + 237, 248, 240, 151, 254, 199, 240, 151, 254, 213, 240, 151, 169, 125, 47, + 61, 240, 138, 47, 184, 240, 138, 42, 237, 62, 231, 199, 76, 41, 237, 62, + 231, 199, 76, 237, 62, 241, 185, 231, 199, 76, 237, 62, 225, 109, 231, + 199, 76, 42, 47, 231, 199, 76, 41, 47, 231, 199, 76, 47, 241, 185, 231, + 199, 76, 47, 225, 109, 231, 199, 76, 235, 160, 47, 235, 160, 235, 45, + 230, 160, 235, 45, 168, 56, 235, 128, 135, 56, 235, 128, 169, 231, 218, + 230, 67, 237, 209, 246, 167, 230, 131, 231, 242, 230, 131, 227, 195, 230, + 182, 227, 198, 230, 182, 254, 133, 229, 249, 230, 61, 227, 195, 232, 30, + 227, 198, 232, 30, 239, 125, 233, 173, 237, 69, 253, 129, 241, 194, 53, + 253, 129, 253, 53, 233, 117, 53, 237, 114, 47, 237, 114, 237, 49, 237, + 114, 200, 237, 114, 200, 47, 237, 114, 200, 237, 49, 237, 114, 237, 197, + 237, 62, 227, 185, 240, 117, 231, 199, 76, 237, 62, 227, 133, 240, 117, + 231, 199, 76, 233, 11, 76, 47, 229, 165, 76, 228, 213, 231, 223, 232, 63, + 116, 247, 57, 240, 206, 232, 28, 237, 209, 232, 81, 238, 10, 235, 45, + 233, 76, 237, 84, 42, 37, 235, 22, 2, 237, 190, 41, 37, 235, 22, 2, 237, + 190, 47, 233, 82, 76, 233, 82, 229, 165, 76, 229, 165, 233, 82, 76, 234, + 249, 5, 253, 125, 200, 235, 201, 53, 86, 117, 235, 45, 86, 81, 235, 45, + 184, 231, 198, 200, 230, 140, 243, 15, 253, 19, 135, 232, 80, 235, 245, + 230, 122, 230, 145, 240, 172, 53, 245, 229, 240, 151, 233, 70, 232, 63, + 238, 221, 229, 161, 76, 152, 56, 228, 182, 231, 212, 237, 114, 246, 160, + 56, 228, 182, 246, 159, 56, 228, 182, 135, 56, 228, 182, 246, 160, 56, + 76, 237, 50, 237, 85, 232, 57, 61, 246, 160, 240, 169, 237, 60, 12, 237, + 69, 247, 8, 235, 124, 234, 109, 228, 225, 231, 253, 237, 166, 231, 253, + 230, 131, 231, 253, 240, 180, 235, 178, 232, 54, 232, 47, 233, 182, 232, + 54, 232, 47, 235, 178, 10, 211, 233, 236, 233, 182, 10, 211, 233, 236, + 234, 165, 21, 235, 209, 236, 169, 21, 235, 209, 229, 163, 240, 126, 229, + 163, 7, 3, 1, 74, 229, 163, 158, 229, 163, 173, 229, 163, 183, 229, 163, + 194, 229, 163, 187, 229, 163, 192, 229, 163, 79, 53, 229, 163, 237, 124, + 229, 163, 237, 51, 53, 229, 163, 42, 228, 180, 229, 163, 41, 228, 180, + 229, 163, 7, 3, 1, 199, 231, 195, 240, 126, 231, 195, 118, 231, 195, 113, + 231, 195, 166, 231, 195, 158, 231, 195, 173, 231, 195, 183, 231, 195, + 194, 231, 195, 187, 231, 195, 192, 231, 195, 79, 53, 231, 195, 237, 124, + 231, 195, 237, 51, 53, 231, 195, 42, 228, 180, 231, 195, 41, 228, 180, 7, + 231, 195, 3, 1, 57, 7, 231, 195, 3, 1, 72, 7, 231, 195, 3, 1, 73, 7, 231, + 195, 3, 1, 254, 184, 7, 231, 195, 3, 1, 237, 144, 227, 239, 53, 240, 194, + 53, 234, 40, 53, 238, 226, 243, 109, 53, 250, 224, 53, 251, 15, 53, 244, + 163, 53, 239, 193, 53, 240, 234, 53, 254, 16, 53, 139, 239, 246, 53, 249, + 203, 53, 249, 235, 53, 254, 82, 53, 240, 53, 53, 235, 167, 53, 238, 237, + 245, 64, 53, 251, 106, 53, 236, 98, 53, 236, 0, 53, 236, 106, 53, 249, + 151, 53, 36, 42, 235, 14, 46, 36, 41, 235, 14, 46, 36, 182, 61, 246, 167, + 233, 87, 36, 240, 125, 61, 246, 167, 233, 87, 36, 227, 184, 67, 46, 36, + 231, 209, 67, 46, 36, 42, 67, 46, 36, 41, 67, 46, 36, 246, 174, 233, 87, + 36, 231, 209, 246, 174, 233, 87, 36, 227, 184, 246, 174, 233, 87, 36, + 152, 197, 46, 36, 246, 160, 197, 46, 36, 231, 222, 235, 20, 36, 231, 222, + 235, 27, 36, 231, 222, 233, 90, 36, 231, 222, 237, 40, 230, 151, 36, 42, + 41, 67, 46, 36, 231, 222, 236, 210, 36, 231, 222, 236, 121, 36, 231, 222, + 240, 68, 233, 78, 231, 193, 36, 235, 37, 235, 54, 233, 87, 36, 47, 61, + 195, 233, 87, 36, 235, 247, 98, 36, 237, 49, 233, 59, 36, 246, 240, 237, + 174, 46, 36, 117, 67, 233, 87, 36, 182, 47, 235, 54, 233, 87, 36, 81, + 235, 14, 2, 171, 230, 134, 36, 117, 235, 14, 2, 171, 230, 134, 36, 42, + 67, 51, 36, 41, 67, 51, 36, 233, 145, 46, 235, 144, 253, 16, 232, 65, + 180, 252, 230, 234, 235, 159, 6, 254, 194, 237, 177, 234, 29, 237, 95, + 246, 167, 98, 249, 144, 253, 16, 249, 141, 252, 53, 243, 103, 232, 17, + 234, 217, 237, 177, 230, 59, 95, 3, 214, 95, 6, 212, 228, 187, 6, 212, + 159, 6, 212, 238, 35, 232, 17, 238, 35, 234, 34, 107, 135, 252, 223, 95, + 6, 74, 228, 187, 6, 74, 95, 6, 149, 95, 3, 149, 255, 58, 45, 252, 219, + 98, 159, 6, 199, 239, 159, 53, 240, 181, 233, 9, 230, 240, 95, 6, 254, + 187, 159, 6, 254, 187, 159, 6, 254, 196, 95, 6, 146, 228, 187, 6, 146, + 159, 6, 146, 229, 53, 245, 236, 232, 43, 236, 217, 76, 232, 11, 53, 246, + 4, 165, 53, 233, 61, 159, 6, 254, 193, 245, 57, 53, 253, 254, 53, 233, + 70, 253, 254, 53, 228, 187, 6, 254, 193, 209, 19, 3, 1, 240, 146, 239, + 62, 53, 234, 2, 53, 95, 6, 254, 185, 228, 187, 6, 254, 194, 232, 180, 98, + 95, 3, 72, 95, 6, 72, 95, 6, 254, 191, 209, 6, 254, 191, 95, 6, 185, 95, + 3, 73, 92, 98, 253, 171, 98, 241, 143, 98, 241, 116, 98, 230, 71, 235, + 214, 235, 97, 6, 254, 196, 232, 183, 53, 159, 3, 252, 223, 159, 3, 237, + 61, 159, 6, 237, 61, 159, 6, 252, 223, 159, 240, 154, 230, 196, 209, 30, + 6, 214, 209, 30, 6, 149, 200, 30, 6, 149, 209, 30, 6, 254, 190, 159, 27, + 6, 222, 222, 159, 27, 3, 222, 222, 159, 27, 3, 72, 159, 27, 3, 74, 159, + 27, 3, 254, 192, 234, 200, 240, 138, 209, 230, 142, 253, 129, 53, 227, + 216, 209, 3, 254, 191, 14, 32, 233, 16, 235, 214, 237, 80, 233, 76, 168, + 240, 37, 237, 80, 233, 76, 135, 237, 4, 237, 80, 233, 76, 168, 238, 217, + 237, 80, 233, 76, 135, 235, 122, 237, 80, 233, 76, 152, 235, 122, 237, + 80, 233, 76, 246, 160, 235, 122, 237, 80, 233, 76, 168, 238, 61, 237, 80, + 233, 76, 246, 159, 236, 232, 237, 80, 233, 76, 168, 236, 63, 237, 80, + 233, 76, 152, 233, 163, 237, 80, 233, 76, 246, 159, 233, 163, 237, 80, + 233, 76, 240, 155, 233, 163, 233, 76, 231, 227, 118, 240, 118, 207, 118, + 240, 118, 207, 113, 240, 118, 207, 166, 240, 118, 207, 158, 240, 118, + 207, 173, 240, 118, 207, 183, 240, 118, 207, 194, 240, 118, 207, 187, + 240, 118, 207, 192, 240, 118, 207, 246, 179, 240, 118, 207, 235, 68, 240, + 118, 207, 235, 72, 240, 118, 207, 237, 100, 240, 118, 207, 168, 233, 75, + 240, 118, 207, 246, 159, 233, 75, 240, 118, 207, 168, 231, 196, 3, 240, + 118, 207, 118, 3, 240, 118, 207, 113, 3, 240, 118, 207, 166, 3, 240, 118, + 207, 158, 3, 240, 118, 207, 173, 3, 240, 118, 207, 183, 3, 240, 118, 207, + 194, 3, 240, 118, 207, 187, 3, 240, 118, 207, 192, 3, 240, 118, 207, 246, + 179, 3, 240, 118, 207, 235, 68, 3, 240, 118, 207, 235, 72, 3, 240, 118, + 207, 237, 100, 3, 240, 118, 207, 168, 233, 75, 3, 240, 118, 207, 246, + 159, 233, 75, 3, 240, 118, 207, 168, 231, 196, 240, 118, 207, 168, 233, + 117, 255, 62, 222, 222, 240, 118, 207, 246, 159, 231, 196, 240, 118, 207, + 253, 53, 231, 196, 240, 118, 207, 200, 168, 233, 75, 7, 3, 1, 200, 254, + 194, 240, 118, 207, 253, 17, 250, 209, 15, 240, 118, 207, 240, 189, 243, + 91, 15, 240, 118, 207, 240, 189, 231, 196, 240, 118, 207, 168, 235, 56, + 231, 196, 117, 58, 235, 18, 58, 81, 58, 231, 191, 58, 42, 41, 58, 99, + 103, 58, 240, 134, 246, 184, 58, 240, 134, 246, 170, 58, 240, 141, 246, + 170, 58, 240, 141, 246, 184, 58, 117, 67, 2, 82, 81, 67, 2, 82, 117, 247, + 23, 58, 81, 247, 23, 58, 117, 135, 237, 183, 58, 235, 18, 135, 237, 183, + 58, 81, 135, 237, 183, 58, 231, 191, 135, 237, 183, 58, 117, 67, 2, 240, + 133, 81, 67, 2, 240, 133, 117, 67, 246, 172, 125, 235, 18, 67, 246, 172, + 125, 81, 67, 246, 172, 125, 231, 191, 67, 246, 172, 125, 99, 103, 67, 2, + 242, 175, 117, 67, 2, 88, 81, 67, 2, 88, 117, 67, 2, 240, 202, 81, 67, 2, + 240, 202, 42, 41, 247, 23, 58, 42, 41, 67, 2, 82, 231, 191, 237, 170, 58, + 235, 18, 67, 2, 253, 93, 230, 143, 235, 18, 67, 2, 253, 93, 229, 177, + 231, 191, 67, 2, 253, 93, 230, 143, 231, 191, 67, 2, 253, 93, 229, 177, + 81, 67, 2, 237, 79, 230, 134, 231, 191, 67, 2, 237, 79, 230, 143, 227, + 184, 252, 228, 230, 195, 58, 231, 209, 252, 228, 230, 195, 58, 240, 134, + 246, 184, 67, 180, 182, 125, 117, 67, 180, 252, 219, 107, 81, 67, 180, + 125, 227, 184, 246, 157, 237, 40, 58, 231, 209, 246, 157, 237, 40, 58, + 117, 235, 14, 2, 171, 233, 139, 117, 235, 14, 2, 171, 230, 134, 235, 18, + 235, 14, 2, 171, 229, 177, 235, 18, 235, 14, 2, 171, 230, 143, 81, 235, + 14, 2, 171, 233, 139, 81, 235, 14, 2, 171, 230, 134, 231, 191, 235, 14, + 2, 171, 229, 177, 231, 191, 235, 14, 2, 171, 230, 143, 81, 67, 107, 117, + 58, 235, 18, 67, 117, 106, 231, 191, 58, 117, 67, 107, 81, 58, 117, 237, + 186, 235, 73, 235, 18, 237, 186, 235, 73, 81, 237, 186, 235, 73, 231, + 191, 237, 186, 235, 73, 117, 235, 14, 107, 81, 233, 105, 81, 235, 14, + 107, 117, 233, 105, 117, 47, 67, 2, 82, 42, 41, 47, 67, 2, 82, 81, 47, + 67, 2, 82, 117, 47, 58, 235, 18, 47, 58, 81, 47, 58, 231, 191, 47, 58, + 42, 41, 47, 58, 99, 103, 47, 58, 240, 134, 246, 184, 47, 58, 240, 134, + 246, 170, 47, 58, 240, 141, 246, 170, 47, 58, 240, 141, 246, 184, 47, 58, + 117, 237, 49, 58, 81, 237, 49, 58, 117, 233, 156, 58, 81, 233, 156, 58, + 235, 18, 67, 2, 47, 82, 231, 191, 67, 2, 47, 82, 117, 237, 110, 58, 235, + 18, 237, 110, 58, 81, 237, 110, 58, 231, 191, 237, 110, 58, 117, 67, 180, + 125, 81, 67, 180, 125, 117, 63, 58, 235, 18, 63, 58, 81, 63, 58, 231, + 191, 63, 58, 235, 18, 63, 67, 246, 172, 125, 235, 18, 63, 67, 254, 223, + 232, 33, 235, 18, 63, 67, 254, 223, 233, 226, 2, 169, 125, 235, 18, 63, + 67, 254, 223, 233, 226, 2, 61, 125, 235, 18, 63, 47, 58, 235, 18, 63, 47, + 67, 254, 223, 232, 33, 81, 63, 67, 246, 172, 246, 52, 240, 134, 246, 184, + 67, 180, 235, 40, 240, 141, 246, 170, 67, 180, 235, 40, 99, 103, 63, 58, + 41, 67, 2, 3, 235, 20, 231, 191, 67, 117, 106, 235, 18, 58, 152, 81, 235, + 73, 117, 67, 2, 61, 82, 81, 67, 2, 61, 82, 42, 41, 67, 2, 61, 82, 117, + 67, 2, 47, 61, 82, 81, 67, 2, 47, 61, 82, 42, 41, 67, 2, 47, 61, 82, 117, + 229, 186, 58, 81, 229, 186, 58, 42, 41, 229, 186, 58, 32, 247, 241, 229, + 238, 235, 79, 227, 188, 242, 1, 236, 66, 242, 1, 246, 218, 190, 238, 210, + 240, 195, 248, 155, 231, 84, 237, 138, 235, 44, 253, 16, 190, 254, 216, + 235, 44, 253, 16, 3, 235, 44, 253, 16, 233, 111, 254, 203, 235, 130, 246, + 218, 190, 235, 114, 254, 203, 235, 130, 3, 233, 111, 254, 203, 235, 130, + 252, 255, 106, 239, 204, 240, 154, 233, 101, 240, 154, 230, 178, 240, + 154, 230, 196, 240, 172, 53, 227, 254, 53, 56, 240, 180, 233, 130, 237, + 84, 253, 133, 237, 124, 233, 145, 231, 192, 246, 174, 231, 192, 238, 134, + 231, 192, 37, 240, 233, 248, 11, 240, 233, 237, 182, 240, 233, 229, 54, + 96, 231, 252, 41, 237, 98, 237, 98, 233, 99, 237, 98, 232, 7, 237, 98, + 234, 57, 246, 218, 190, 235, 164, 233, 132, 96, 190, 233, 132, 96, 235, + 26, 246, 230, 235, 26, 253, 81, 227, 186, 237, 117, 231, 208, 47, 231, + 208, 237, 49, 231, 208, 235, 115, 231, 208, 236, 249, 231, 208, 240, 79, + 231, 208, 231, 209, 231, 208, 231, 209, 235, 115, 231, 208, 227, 184, + 235, 115, 231, 208, 231, 177, 234, 16, 239, 216, 229, 210, 56, 237, 124, + 236, 65, 232, 199, 229, 210, 230, 66, 240, 128, 231, 192, 200, 205, 233, + 70, 250, 211, 193, 251, 225, 241, 22, 240, 87, 233, 101, 190, 205, 240, + 172, 205, 227, 142, 105, 96, 190, 227, 142, 105, 96, 227, 187, 105, 96, + 227, 187, 253, 85, 190, 233, 183, 105, 96, 235, 58, 227, 187, 253, 43, + 233, 183, 105, 96, 237, 78, 105, 96, 190, 237, 78, 105, 96, 237, 78, 105, + 145, 105, 96, 237, 49, 205, 253, 167, 105, 96, 230, 130, 96, 227, 204, + 230, 130, 96, 230, 245, 233, 187, 230, 225, 252, 230, 239, 85, 227, 204, + 105, 96, 227, 187, 105, 180, 145, 252, 230, 240, 190, 253, 16, 240, 190, + 106, 145, 227, 187, 105, 96, 240, 194, 235, 91, 237, 51, 237, 66, 246, + 174, 254, 198, 105, 96, 246, 174, 105, 96, 229, 242, 96, 231, 66, 230, + 57, 96, 247, 53, 235, 91, 241, 36, 105, 96, 105, 180, 254, 205, 229, 245, + 233, 99, 253, 210, 231, 129, 105, 96, 190, 105, 96, 231, 239, 96, 190, + 231, 239, 96, 234, 234, 230, 130, 96, 231, 190, 145, 105, 96, 228, 175, + 145, 105, 96, 231, 190, 107, 105, 96, 228, 175, 107, 105, 96, 231, 190, + 253, 85, 190, 105, 96, 228, 175, 253, 85, 190, 105, 96, 247, 89, 230, + 128, 247, 89, 227, 183, 233, 187, 190, 230, 130, 96, 190, 230, 128, 190, + 227, 183, 235, 58, 231, 190, 253, 43, 105, 96, 235, 58, 228, 175, 253, + 43, 105, 96, 231, 190, 145, 230, 130, 96, 228, 175, 145, 230, 130, 96, + 235, 58, 231, 190, 253, 43, 230, 130, 96, 235, 58, 228, 175, 253, 43, + 230, 130, 96, 231, 190, 145, 227, 183, 228, 175, 145, 230, 128, 235, 58, + 231, 190, 253, 43, 227, 183, 235, 58, 228, 175, 253, 43, 230, 128, 232, + 4, 232, 9, 233, 106, 145, 105, 96, 233, 107, 145, 105, 96, 233, 106, 145, + 230, 130, 96, 233, 107, 145, 230, 130, 96, 246, 218, 190, 234, 196, 246, + 218, 190, 234, 236, 237, 76, 253, 16, 233, 83, 253, 16, 190, 102, 237, + 76, 253, 16, 190, 102, 233, 83, 253, 16, 237, 76, 106, 145, 105, 96, 233, + 83, 106, 145, 105, 96, 235, 58, 102, 237, 76, 106, 253, 43, 105, 96, 235, + 58, 102, 233, 83, 106, 253, 43, 105, 96, 237, 76, 106, 2, 190, 105, 96, + 233, 83, 106, 2, 190, 105, 96, 232, 232, 233, 220, 227, 73, 233, 220, + 237, 117, 37, 240, 190, 253, 16, 37, 233, 142, 253, 16, 37, 240, 190, + 106, 145, 105, 96, 37, 233, 142, 106, 145, 105, 96, 37, 248, 4, 37, 248, + 12, 33, 240, 180, 33, 237, 124, 33, 237, 166, 33, 233, 130, 237, 84, 33, + 56, 231, 192, 33, 246, 174, 231, 192, 33, 233, 145, 231, 192, 33, 235, + 91, 33, 240, 151, 235, 51, 240, 180, 235, 51, 237, 124, 235, 51, 237, + 166, 235, 51, 56, 231, 192, 41, 240, 149, 42, 240, 149, 103, 240, 149, + 99, 240, 149, 230, 227, 236, 158, 242, 8, 236, 86, 237, 49, 61, 252, 219, + 41, 230, 141, 47, 61, 252, 219, 47, 41, 230, 141, 246, 218, 190, 239, + 205, 190, 242, 8, 246, 218, 190, 238, 223, 235, 194, 47, 61, 252, 219, + 47, 41, 230, 141, 233, 106, 242, 16, 231, 244, 233, 107, 242, 16, 231, + 244, 237, 104, 233, 136, 253, 16, 233, 111, 254, 203, 237, 104, 232, 46, + 237, 104, 233, 136, 106, 145, 105, 96, 233, 111, 254, 203, 237, 104, 233, + 136, 145, 105, 96, 233, 142, 253, 16, 240, 190, 253, 16, 232, 0, 232, + 203, 232, 101, 236, 149, 229, 32, 252, 118, 244, 165, 251, 71, 41, 240, + 117, 2, 247, 10, 41, 231, 193, 240, 154, 235, 26, 246, 230, 240, 154, + 235, 26, 253, 81, 240, 154, 227, 186, 240, 154, 237, 117, 235, 41, 231, + 192, 56, 231, 192, 247, 53, 231, 192, 233, 130, 237, 166, 235, 154, 42, + 237, 104, 237, 246, 230, 147, 233, 101, 41, 237, 104, 237, 246, 230, 147, + 233, 101, 42, 230, 147, 233, 101, 41, 230, 147, 233, 101, 200, 240, 128, + 235, 91, 240, 137, 235, 26, 253, 81, 240, 137, 235, 26, 246, 230, 47, + 235, 61, 47, 231, 228, 47, 227, 186, 47, 237, 117, 231, 120, 105, 22, + 233, 132, 96, 231, 190, 2, 246, 164, 228, 175, 2, 246, 164, 247, 114, + 247, 89, 230, 128, 247, 114, 247, 89, 227, 183, 231, 190, 105, 180, 145, + 227, 183, 228, 175, 105, 180, 145, 230, 128, 105, 180, 145, 230, 128, + 105, 180, 145, 227, 183, 105, 180, 145, 232, 4, 105, 180, 145, 232, 9, + 246, 218, 190, 236, 191, 145, 237, 81, 246, 218, 190, 236, 246, 145, 237, + 81, 190, 37, 240, 190, 106, 145, 105, 96, 190, 37, 233, 142, 106, 145, + 105, 96, 37, 240, 190, 106, 145, 190, 105, 96, 37, 233, 142, 106, 145, + 190, 105, 96, 231, 190, 253, 85, 190, 230, 130, 96, 228, 175, 253, 85, + 190, 230, 130, 96, 233, 106, 253, 85, 190, 230, 130, 96, 233, 107, 253, + 85, 190, 230, 130, 96, 190, 237, 104, 233, 136, 253, 16, 246, 218, 190, + 235, 114, 254, 203, 237, 104, 232, 46, 190, 237, 104, 233, 136, 106, 145, + 105, 96, 246, 218, 190, 235, 114, 254, 203, 237, 104, 233, 136, 145, 237, + 81, 61, 231, 218, 236, 155, 169, 231, 218, 99, 41, 233, 74, 231, 218, + 103, 41, 233, 74, 231, 218, 235, 44, 106, 2, 182, 169, 82, 235, 44, 106, + 2, 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 3, 235, 44, 106, 2, + 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 235, 44, 106, 2, 56, 46, + 235, 44, 106, 2, 233, 95, 3, 235, 44, 106, 2, 233, 95, 235, 44, 106, 2, + 231, 197, 235, 44, 106, 2, 135, 169, 233, 243, 233, 111, 2, 182, 169, 82, + 233, 111, 2, 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 3, 233, 111, + 2, 61, 252, 219, 254, 217, 252, 255, 106, 169, 82, 233, 111, 2, 233, 95, + 3, 233, 111, 2, 233, 95, 255, 56, 150, 253, 170, 230, 79, 234, 51, 53, + 234, 94, 58, 239, 27, 99, 230, 133, 103, 230, 133, 230, 92, 229, 48, 246, + 239, 240, 138, 42, 233, 190, 41, 233, 190, 42, 237, 249, 41, 237, 249, + 237, 59, 41, 240, 247, 237, 59, 42, 240, 247, 252, 228, 41, 240, 247, + 252, 228, 42, 240, 247, 200, 190, 53, 37, 233, 123, 247, 10, 234, 218, + 236, 215, 232, 11, 233, 8, 234, 195, 230, 156, 235, 6, 235, 27, 241, 214, + 106, 234, 130, 53, 209, 190, 53, 238, 81, 230, 167, 252, 228, 42, 235, + 40, 252, 228, 41, 235, 40, 237, 59, 42, 235, 40, 237, 59, 41, 235, 40, + 252, 228, 132, 231, 208, 237, 59, 132, 231, 208, 238, 227, 240, 6, 99, + 231, 214, 236, 10, 135, 169, 242, 174, 239, 175, 250, 162, 241, 127, 180, + 252, 230, 237, 41, 255, 74, 254, 198, 102, 233, 10, 246, 231, 232, 214, + 227, 185, 240, 117, 104, 227, 133, 240, 117, 104, 241, 127, 180, 252, + 230, 240, 132, 235, 150, 240, 147, 227, 223, 253, 167, 225, 111, 233, 49, + 246, 3, 236, 202, 232, 113, 236, 178, 236, 36, 240, 29, 240, 4, 228, 233, + 228, 234, 162, 163, 14, 236, 108, 162, 163, 14, 240, 15, 240, 232, 162, + 163, 14, 246, 189, 237, 81, 162, 163, 14, 246, 189, 235, 164, 162, 163, + 14, 246, 189, 233, 90, 162, 163, 14, 246, 189, 247, 15, 162, 163, 14, + 246, 189, 235, 20, 162, 163, 14, 237, 40, 237, 164, 162, 163, 14, 237, + 40, 247, 15, 162, 163, 14, 245, 191, 125, 162, 163, 14, 232, 83, 125, + 162, 163, 14, 246, 189, 237, 84, 162, 163, 14, 246, 189, 230, 151, 162, + 163, 14, 246, 189, 230, 128, 162, 163, 14, 246, 189, 227, 183, 162, 163, + 14, 117, 241, 21, 162, 163, 14, 81, 241, 21, 162, 163, 14, 246, 189, 117, + 58, 162, 163, 14, 246, 189, 81, 58, 162, 163, 14, 237, 40, 230, 151, 162, + 163, 14, 103, 246, 215, 231, 197, 162, 163, 14, 241, 36, 237, 164, 162, + 163, 14, 246, 189, 103, 237, 197, 162, 163, 14, 246, 189, 237, 75, 162, + 163, 14, 103, 246, 215, 247, 15, 162, 163, 14, 235, 18, 241, 21, 162, + 163, 14, 246, 189, 235, 18, 58, 162, 163, 14, 99, 246, 215, 233, 95, 162, + 163, 14, 253, 173, 237, 164, 162, 163, 14, 246, 189, 99, 237, 197, 162, + 163, 14, 246, 189, 249, 185, 162, 163, 14, 99, 246, 215, 247, 15, 162, + 163, 14, 231, 191, 241, 21, 162, 163, 14, 246, 189, 231, 191, 58, 162, + 163, 14, 241, 218, 231, 197, 162, 163, 14, 241, 36, 231, 197, 162, 163, + 14, 235, 41, 231, 197, 162, 163, 14, 253, 236, 231, 197, 162, 163, 14, + 237, 40, 231, 197, 162, 163, 14, 99, 247, 201, 247, 15, 162, 163, 14, + 241, 218, 240, 232, 162, 163, 14, 237, 40, 240, 139, 162, 163, 14, 246, + 189, 237, 66, 162, 163, 14, 99, 246, 215, 219, 162, 163, 14, 253, 173, + 219, 162, 163, 14, 247, 53, 219, 162, 163, 14, 253, 236, 219, 162, 163, + 14, 237, 40, 219, 162, 163, 14, 103, 247, 201, 237, 164, 162, 163, 14, + 42, 247, 201, 237, 164, 162, 163, 14, 240, 128, 219, 162, 163, 14, 228, + 175, 219, 162, 163, 14, 240, 162, 125, 162, 163, 14, 253, 173, 205, 162, + 163, 14, 240, 108, 162, 163, 14, 245, 219, 205, 162, 163, 14, 233, 21, + 231, 197, 162, 163, 14, 246, 189, 190, 237, 81, 162, 163, 14, 246, 189, + 233, 4, 162, 163, 14, 103, 240, 206, 205, 162, 163, 14, 99, 240, 206, + 205, 162, 163, 14, 240, 146, 162, 163, 14, 246, 209, 162, 163, 14, 237, + 68, 162, 163, 14, 240, 120, 231, 197, 162, 163, 14, 235, 28, 231, 197, + 162, 163, 14, 246, 168, 231, 197, 162, 163, 14, 240, 123, 231, 197, 162, + 163, 14, 237, 71, 190, 240, 245, 76, 41, 240, 117, 2, 231, 191, 237, 170, + 58, 231, 143, 246, 157, 246, 231, 249, 109, 98, 61, 246, 167, 2, 237, 44, + 246, 164, 232, 28, 98, 230, 239, 232, 62, 98, 227, 230, 232, 62, 98, 233, + 203, 98, 229, 240, 98, 63, 37, 2, 237, 95, 61, 240, 138, 243, 97, 98, + 229, 182, 253, 239, 98, 250, 65, 98, 33, 169, 252, 219, 2, 238, 28, 33, + 233, 80, 240, 152, 237, 150, 237, 40, 2, 232, 234, 58, 252, 54, 98, 231, + 103, 98, 231, 80, 98, 222, 232, 239, 0, 98, 222, 232, 239, 77, 98, 222, + 223, 98, 222, 226, 98, 237, 242, 236, 38, 14, 211, 113, 223, 54, 98, 162, + 163, 14, 240, 232, 235, 163, 231, 247, 253, 239, 98, 234, 198, 241, 210, + 251, 53, 241, 210, 245, 82, 238, 44, 98, 243, 14, 238, 44, 98, 42, 229, + 169, 240, 116, 88, 42, 229, 169, 230, 136, 42, 229, 169, 203, 88, 41, + 229, 169, 240, 116, 88, 41, 229, 169, 230, 136, 41, 229, 169, 203, 88, + 42, 37, 235, 22, 240, 116, 235, 40, 42, 37, 235, 22, 230, 136, 42, 37, + 235, 22, 203, 235, 40, 41, 37, 235, 22, 240, 116, 235, 40, 41, 37, 235, + 22, 230, 136, 41, 37, 235, 22, 203, 235, 40, 42, 240, 137, 235, 22, 240, + 116, 88, 42, 240, 137, 235, 22, 237, 44, 237, 188, 42, 240, 137, 235, 22, + 203, 88, 240, 137, 235, 22, 230, 136, 41, 240, 137, 235, 22, 240, 116, + 88, 41, 240, 137, 235, 22, 237, 44, 237, 188, 41, 240, 137, 235, 22, 203, + 88, 233, 98, 230, 136, 169, 246, 167, 230, 136, 240, 116, 42, 145, 203, + 41, 240, 137, 235, 22, 233, 144, 240, 116, 41, 145, 203, 42, 240, 137, + 235, 22, 233, 144, 232, 10, 247, 214, 232, 10, 235, 110, 252, 228, 37, + 104, 237, 59, 37, 104, 237, 59, 37, 235, 22, 107, 252, 228, 37, 104, 29, + 14, 235, 110, 42, 61, 77, 240, 138, 41, 61, 77, 240, 138, 169, 247, 102, + 236, 138, 169, 247, 102, 236, 139, 169, 247, 102, 236, 140, 169, 247, + 102, 236, 141, 231, 205, 14, 157, 61, 22, 252, 228, 237, 41, 231, 205, + 14, 157, 61, 22, 237, 59, 237, 41, 231, 205, 14, 157, 61, 2, 235, 20, + 231, 205, 14, 157, 103, 22, 169, 2, 235, 20, 231, 205, 14, 157, 99, 22, + 169, 2, 235, 20, 231, 205, 14, 157, 61, 2, 231, 193, 231, 205, 14, 157, + 103, 22, 169, 2, 231, 193, 231, 205, 14, 157, 99, 22, 169, 2, 231, 193, + 231, 205, 14, 157, 61, 22, 241, 22, 231, 205, 14, 157, 103, 22, 169, 2, + 241, 22, 231, 205, 14, 157, 99, 22, 169, 2, 241, 22, 231, 205, 14, 157, + 103, 22, 229, 164, 231, 205, 14, 157, 99, 22, 229, 164, 231, 205, 14, + 157, 61, 22, 252, 228, 240, 132, 231, 205, 14, 157, 61, 22, 237, 59, 240, + 132, 37, 241, 38, 239, 219, 98, 243, 96, 98, 61, 246, 167, 230, 136, 233, + 114, 237, 46, 233, 114, 182, 107, 239, 251, 233, 114, 240, 125, 107, 241, + 4, 233, 114, 182, 107, 135, 236, 227, 233, 114, 135, 238, 54, 107, 241, + 4, 233, 114, 135, 238, 54, 236, 115, 233, 114, 233, 247, 233, 114, 230, + 213, 233, 114, 230, 193, 241, 126, 236, 97, 243, 111, 252, 228, 228, 180, + 237, 59, 228, 180, 252, 228, 240, 137, 104, 237, 59, 240, 137, 104, 252, + 228, 233, 89, 240, 158, 104, 237, 59, 233, 89, 240, 158, 104, 63, 231, + 179, 235, 150, 246, 174, 2, 235, 20, 228, 166, 232, 191, 255, 0, 234, 41, + 231, 62, 227, 186, 14, 32, 245, 13, 14, 32, 241, 75, 106, 234, 120, 14, + 32, 241, 75, 106, 242, 0, 14, 32, 252, 255, 106, 242, 0, 14, 32, 252, + 255, 106, 228, 169, 14, 32, 234, 96, 14, 32, 228, 211, 14, 32, 242, 198, + 14, 32, 230, 229, 14, 32, 169, 229, 221, 14, 32, 246, 167, 241, 129, 14, + 32, 61, 229, 221, 14, 32, 211, 241, 129, 14, 32, 234, 28, 235, 205, 14, + 32, 241, 237, 247, 186, 14, 32, 241, 237, 253, 79, 14, 32, 249, 182, 250, + 222, 235, 170, 14, 32, 237, 178, 235, 88, 118, 14, 32, 237, 178, 235, 88, + 113, 14, 32, 237, 178, 235, 88, 166, 14, 32, 237, 178, 235, 88, 158, 14, + 32, 233, 71, 228, 211, 14, 32, 230, 116, 244, 3, 14, 32, 252, 255, 106, + 229, 156, 237, 65, 14, 32, 236, 18, 14, 32, 252, 255, 106, 236, 151, 14, + 32, 230, 115, 14, 32, 235, 170, 14, 32, 249, 248, 230, 131, 14, 32, 243, + 157, 230, 131, 14, 32, 239, 217, 230, 131, 14, 32, 246, 229, 230, 131, + 14, 32, 237, 69, 14, 32, 236, 44, 242, 209, 98, 246, 157, 246, 231, 14, + 32, 234, 168, 14, 32, 238, 180, 211, 113, 14, 32, 231, 148, 211, 113, + 253, 63, 88, 253, 63, 238, 146, 253, 63, 241, 133, 253, 63, 233, 70, 241, + 133, 253, 63, 249, 110, 236, 17, 253, 63, 254, 34, 247, 57, 253, 63, 238, + 129, 249, 99, 225, 114, 253, 63, 238, 95, 106, 237, 234, 253, 63, 240, + 151, 253, 63, 234, 42, 235, 144, 236, 170, 253, 63, 47, 230, 151, 33, 21, + 118, 33, 21, 113, 33, 21, 166, 33, 21, 158, 33, 21, 173, 33, 21, 183, 33, + 21, 194, 33, 21, 187, 33, 21, 192, 33, 65, 246, 179, 33, 65, 235, 68, 33, + 65, 235, 72, 33, 65, 231, 234, 33, 65, 231, 231, 33, 65, 233, 141, 33, + 65, 233, 135, 33, 65, 230, 148, 33, 65, 231, 229, 33, 65, 231, 233, 33, + 65, 235, 52, 93, 21, 118, 93, 21, 113, 93, 21, 166, 93, 21, 158, 93, 21, + 173, 93, 21, 183, 93, 21, 194, 93, 21, 187, 93, 21, 192, 93, 65, 246, + 179, 93, 65, 235, 68, 93, 65, 235, 72, 93, 65, 231, 234, 93, 65, 231, + 231, 93, 65, 233, 141, 93, 65, 233, 135, 93, 65, 230, 148, 93, 65, 231, + 229, 93, 65, 231, 233, 93, 65, 235, 52, 21, 168, 246, 162, 240, 121, 21, + 135, 246, 162, 240, 121, 21, 152, 246, 162, 240, 121, 21, 246, 160, 246, + 162, 240, 121, 21, 246, 159, 246, 162, 240, 121, 21, 253, 17, 246, 162, + 240, 121, 21, 240, 155, 246, 162, 240, 121, 21, 240, 142, 246, 162, 240, + 121, 21, 246, 208, 246, 162, 240, 121, 65, 253, 53, 246, 162, 240, 121, + 65, 238, 199, 246, 162, 240, 121, 65, 238, 79, 246, 162, 240, 121, 65, + 234, 245, 246, 162, 240, 121, 65, 234, 107, 246, 162, 240, 121, 65, 236, + 78, 246, 162, 240, 121, 65, 235, 210, 246, 162, 240, 121, 65, 233, 22, + 246, 162, 240, 121, 65, 234, 92, 246, 162, 240, 121, 65, 234, 171, 246, + 162, 240, 121, 65, 237, 97, 246, 162, 240, 121, 93, 7, 3, 1, 57, 93, 7, + 3, 1, 254, 185, 93, 7, 3, 1, 254, 194, 93, 7, 3, 1, 222, 222, 93, 7, 3, + 1, 72, 93, 7, 3, 1, 254, 191, 93, 7, 3, 1, 214, 93, 7, 3, 1, 212, 93, 7, + 3, 1, 74, 93, 7, 3, 1, 254, 192, 93, 7, 3, 1, 254, 186, 93, 7, 3, 1, 149, + 93, 7, 3, 1, 185, 93, 7, 3, 1, 199, 93, 7, 3, 1, 73, 93, 7, 3, 1, 254, + 187, 93, 7, 3, 1, 254, 196, 93, 7, 3, 1, 146, 93, 7, 3, 1, 193, 93, 7, 3, + 1, 254, 183, 93, 7, 3, 1, 66, 93, 7, 3, 1, 196, 93, 7, 3, 1, 254, 195, + 93, 7, 3, 1, 254, 184, 93, 7, 3, 1, 254, 190, 93, 7, 3, 1, 254, 193, 33, + 7, 6, 1, 57, 33, 7, 6, 1, 254, 185, 33, 7, 6, 1, 254, 194, 33, 7, 6, 1, + 222, 222, 33, 7, 6, 1, 72, 33, 7, 6, 1, 254, 191, 33, 7, 6, 1, 214, 33, + 7, 6, 1, 212, 33, 7, 6, 1, 74, 33, 7, 6, 1, 254, 192, 33, 7, 6, 1, 254, + 186, 33, 7, 6, 1, 149, 33, 7, 6, 1, 185, 33, 7, 6, 1, 199, 33, 7, 6, 1, + 73, 33, 7, 6, 1, 254, 187, 33, 7, 6, 1, 254, 196, 33, 7, 6, 1, 146, 33, + 7, 6, 1, 193, 33, 7, 6, 1, 254, 183, 33, 7, 6, 1, 66, 33, 7, 6, 1, 196, + 33, 7, 6, 1, 254, 195, 33, 7, 6, 1, 254, 184, 33, 7, 6, 1, 254, 190, 33, + 7, 6, 1, 254, 193, 33, 7, 3, 1, 57, 33, 7, 3, 1, 254, 185, 33, 7, 3, 1, + 254, 194, 33, 7, 3, 1, 222, 222, 33, 7, 3, 1, 72, 33, 7, 3, 1, 254, 191, + 33, 7, 3, 1, 214, 33, 7, 3, 1, 212, 33, 7, 3, 1, 74, 33, 7, 3, 1, 254, + 192, 33, 7, 3, 1, 254, 186, 33, 7, 3, 1, 149, 33, 7, 3, 1, 185, 33, 7, 3, + 1, 199, 33, 7, 3, 1, 73, 33, 7, 3, 1, 254, 187, 33, 7, 3, 1, 254, 196, + 33, 7, 3, 1, 146, 33, 7, 3, 1, 193, 33, 7, 3, 1, 254, 183, 33, 7, 3, 1, + 66, 33, 7, 3, 1, 196, 33, 7, 3, 1, 254, 195, 33, 7, 3, 1, 254, 184, 33, + 7, 3, 1, 254, 190, 33, 7, 3, 1, 254, 193, 33, 21, 240, 126, 233, 71, 33, + 65, 235, 68, 233, 71, 33, 65, 235, 72, 233, 71, 33, 65, 231, 234, 233, + 71, 33, 65, 231, 231, 233, 71, 33, 65, 233, 141, 233, 71, 33, 65, 233, + 135, 233, 71, 33, 65, 230, 148, 233, 71, 33, 65, 231, 229, 233, 71, 33, + 65, 231, 233, 233, 71, 33, 65, 235, 52, 47, 33, 21, 118, 47, 33, 21, 113, + 47, 33, 21, 166, 47, 33, 21, 158, 47, 33, 21, 173, 47, 33, 21, 183, 47, + 33, 21, 194, 47, 33, 21, 187, 47, 33, 21, 192, 47, 33, 65, 246, 179, 233, + 71, 33, 21, 240, 126, 77, 80, 157, 229, 164, 77, 80, 112, 229, 164, 77, + 80, 157, 231, 210, 77, 80, 112, 231, 210, 77, 80, 157, 237, 49, 246, 187, + 229, 164, 77, 80, 112, 237, 49, 246, 187, 229, 164, 77, 80, 157, 237, 49, + 246, 187, 231, 210, 77, 80, 112, 237, 49, 246, 187, 231, 210, 77, 80, + 157, 231, 212, 246, 187, 229, 164, 77, 80, 112, 231, 212, 246, 187, 229, + 164, 77, 80, 157, 231, 212, 246, 187, 231, 210, 77, 80, 112, 231, 212, + 246, 187, 231, 210, 77, 80, 157, 103, 22, 237, 41, 77, 80, 103, 157, 22, + 41, 237, 63, 77, 80, 103, 112, 22, 41, 237, 57, 77, 80, 112, 103, 22, + 237, 41, 77, 80, 157, 103, 22, 240, 132, 77, 80, 103, 157, 22, 42, 237, + 63, 77, 80, 103, 112, 22, 42, 237, 57, 77, 80, 112, 103, 22, 240, 132, + 77, 80, 157, 99, 22, 237, 41, 77, 80, 99, 157, 22, 41, 237, 63, 77, 80, + 99, 112, 22, 41, 237, 57, 77, 80, 112, 99, 22, 237, 41, 77, 80, 157, 99, + 22, 240, 132, 77, 80, 99, 157, 22, 42, 237, 63, 77, 80, 99, 112, 22, 42, + 237, 57, 77, 80, 112, 99, 22, 240, 132, 77, 80, 157, 61, 22, 237, 41, 77, + 80, 61, 157, 22, 41, 237, 63, 77, 80, 99, 112, 22, 41, 103, 237, 57, 77, + 80, 103, 112, 22, 41, 99, 237, 57, 77, 80, 61, 112, 22, 41, 237, 57, 77, + 80, 103, 157, 22, 41, 99, 237, 63, 77, 80, 99, 157, 22, 41, 103, 237, 63, + 77, 80, 112, 61, 22, 237, 41, 77, 80, 157, 61, 22, 240, 132, 77, 80, 61, + 157, 22, 42, 237, 63, 77, 80, 99, 112, 22, 42, 103, 237, 57, 77, 80, 103, + 112, 22, 42, 99, 237, 57, 77, 80, 61, 112, 22, 42, 237, 57, 77, 80, 103, + 157, 22, 42, 99, 237, 63, 77, 80, 99, 157, 22, 42, 103, 237, 63, 77, 80, + 112, 61, 22, 240, 132, 77, 80, 157, 103, 22, 229, 164, 77, 80, 42, 112, + 22, 41, 103, 237, 57, 77, 80, 41, 112, 22, 42, 103, 237, 57, 77, 80, 103, + 157, 22, 169, 237, 63, 77, 80, 103, 112, 22, 169, 237, 57, 77, 80, 41, + 157, 22, 42, 103, 237, 63, 77, 80, 42, 157, 22, 41, 103, 237, 63, 77, 80, + 112, 103, 22, 229, 164, 77, 80, 157, 99, 22, 229, 164, 77, 80, 42, 112, + 22, 41, 99, 237, 57, 77, 80, 41, 112, 22, 42, 99, 237, 57, 77, 80, 99, + 157, 22, 169, 237, 63, 77, 80, 99, 112, 22, 169, 237, 57, 77, 80, 41, + 157, 22, 42, 99, 237, 63, 77, 80, 42, 157, 22, 41, 99, 237, 63, 77, 80, + 112, 99, 22, 229, 164, 77, 80, 157, 61, 22, 229, 164, 77, 80, 42, 112, + 22, 41, 61, 237, 57, 77, 80, 41, 112, 22, 42, 61, 237, 57, 77, 80, 61, + 157, 22, 169, 237, 63, 77, 80, 99, 112, 22, 103, 169, 237, 57, 77, 80, + 103, 112, 22, 99, 169, 237, 57, 77, 80, 61, 112, 22, 169, 237, 57, 77, + 80, 42, 99, 112, 22, 41, 103, 237, 57, 77, 80, 41, 99, 112, 22, 42, 103, + 237, 57, 77, 80, 42, 103, 112, 22, 41, 99, 237, 57, 77, 80, 41, 103, 112, + 22, 42, 99, 237, 57, 77, 80, 103, 157, 22, 99, 169, 237, 63, 77, 80, 99, + 157, 22, 103, 169, 237, 63, 77, 80, 41, 157, 22, 42, 61, 237, 63, 77, 80, + 42, 157, 22, 41, 61, 237, 63, 77, 80, 112, 61, 22, 229, 164, 77, 80, 157, + 47, 246, 187, 229, 164, 77, 80, 112, 47, 246, 187, 229, 164, 77, 80, 157, + 47, 246, 187, 231, 210, 77, 80, 112, 47, 246, 187, 231, 210, 77, 80, 47, + 229, 164, 77, 80, 47, 231, 210, 77, 80, 103, 237, 62, 22, 41, 235, 55, + 77, 80, 103, 47, 22, 41, 235, 60, 77, 80, 47, 103, 22, 237, 41, 77, 80, + 103, 237, 62, 22, 42, 235, 55, 77, 80, 103, 47, 22, 42, 235, 60, 77, 80, + 47, 103, 22, 240, 132, 77, 80, 99, 237, 62, 22, 41, 235, 55, 77, 80, 99, + 47, 22, 41, 235, 60, 77, 80, 47, 99, 22, 237, 41, 77, 80, 99, 237, 62, + 22, 42, 235, 55, 77, 80, 99, 47, 22, 42, 235, 60, 77, 80, 47, 99, 22, + 240, 132, 77, 80, 61, 237, 62, 22, 41, 235, 55, 77, 80, 61, 47, 22, 41, + 235, 60, 77, 80, 47, 61, 22, 237, 41, 77, 80, 61, 237, 62, 22, 42, 235, + 55, 77, 80, 61, 47, 22, 42, 235, 60, 77, 80, 47, 61, 22, 240, 132, 77, + 80, 103, 237, 62, 22, 169, 235, 55, 77, 80, 103, 47, 22, 169, 235, 60, + 77, 80, 47, 103, 22, 229, 164, 77, 80, 99, 237, 62, 22, 169, 235, 55, 77, + 80, 99, 47, 22, 169, 235, 60, 77, 80, 47, 99, 22, 229, 164, 77, 80, 61, + 237, 62, 22, 169, 235, 55, 77, 80, 61, 47, 22, 169, 235, 60, 77, 80, 47, + 61, 22, 229, 164, 77, 80, 157, 253, 29, 103, 22, 237, 41, 77, 80, 157, + 253, 29, 103, 22, 240, 132, 77, 80, 157, 253, 29, 99, 22, 240, 132, 77, + 80, 157, 253, 29, 99, 22, 237, 41, 77, 80, 157, 233, 74, 240, 116, 41, + 180, 203, 240, 132, 77, 80, 157, 233, 74, 240, 116, 42, 180, 203, 237, + 41, 77, 80, 157, 233, 74, 237, 85, 77, 80, 157, 240, 132, 77, 80, 157, + 253, 19, 77, 80, 157, 237, 41, 77, 80, 157, 240, 152, 77, 80, 112, 240, + 132, 77, 80, 112, 253, 19, 77, 80, 112, 237, 41, 77, 80, 112, 240, 152, + 77, 80, 157, 42, 22, 112, 237, 41, 77, 80, 157, 99, 22, 112, 240, 152, + 77, 80, 112, 42, 22, 157, 237, 41, 77, 80, 112, 99, 22, 157, 240, 152, + 240, 116, 132, 237, 65, 203, 168, 237, 112, 237, 65, 203, 168, 235, 53, + 237, 65, 203, 152, 235, 75, 237, 65, 203, 132, 237, 65, 203, 246, 159, + 235, 75, 237, 65, 203, 152, 233, 176, 237, 65, 203, 240, 155, 235, 75, + 237, 65, 246, 162, 237, 65, 42, 240, 155, 235, 75, 237, 65, 42, 152, 233, + 176, 237, 65, 42, 246, 159, 235, 75, 237, 65, 42, 132, 237, 65, 42, 152, + 235, 75, 237, 65, 42, 168, 235, 53, 237, 65, 42, 168, 237, 112, 237, 65, + 41, 132, 237, 65, 157, 237, 214, 237, 60, 237, 214, 249, 180, 237, 214, + 240, 116, 168, 237, 112, 237, 65, 41, 168, 237, 112, 237, 65, 233, 88, + 203, 240, 132, 233, 88, 203, 237, 41, 233, 88, 240, 116, 240, 132, 233, + 88, 240, 116, 42, 22, 203, 42, 22, 203, 237, 41, 233, 88, 240, 116, 42, + 22, 203, 237, 41, 233, 88, 240, 116, 42, 22, 240, 116, 41, 22, 203, 240, + 132, 233, 88, 240, 116, 42, 22, 240, 116, 41, 22, 203, 237, 41, 233, 88, + 240, 116, 237, 41, 233, 88, 240, 116, 41, 22, 203, 240, 132, 233, 88, + 240, 116, 41, 22, 203, 42, 22, 203, 237, 41, 86, 235, 27, 63, 235, 27, + 63, 37, 2, 235, 98, 233, 195, 63, 37, 230, 162, 86, 3, 235, 27, 37, 2, + 169, 240, 200, 37, 2, 61, 240, 200, 37, 2, 231, 112, 230, 179, 240, 200, + 37, 2, 240, 116, 42, 180, 203, 41, 240, 200, 37, 2, 240, 116, 41, 180, + 203, 42, 240, 200, 37, 2, 233, 74, 230, 179, 240, 200, 86, 3, 235, 27, + 63, 3, 235, 27, 86, 230, 157, 63, 230, 157, 86, 61, 230, 157, 63, 61, + 230, 157, 86, 227, 145, 63, 227, 145, 86, 229, 174, 231, 193, 63, 229, + 174, 231, 193, 86, 229, 174, 3, 231, 193, 63, 229, 174, 3, 231, 193, 86, + 227, 133, 231, 193, 63, 227, 133, 231, 193, 86, 227, 133, 3, 231, 193, + 63, 227, 133, 3, 231, 193, 86, 227, 133, 233, 154, 63, 227, 133, 233, + 154, 86, 227, 189, 231, 193, 63, 227, 189, 231, 193, 86, 227, 189, 3, + 231, 193, 63, 227, 189, 3, 231, 193, 86, 227, 185, 231, 193, 63, 227, + 185, 231, 193, 86, 227, 185, 3, 231, 193, 63, 227, 185, 3, 231, 193, 86, + 227, 185, 233, 154, 63, 227, 185, 233, 154, 86, 233, 90, 63, 233, 90, 63, + 235, 41, 230, 162, 86, 3, 233, 90, 234, 103, 233, 123, 63, 235, 20, 237, + 50, 235, 20, 237, 40, 2, 61, 240, 200, 232, 89, 86, 235, 20, 237, 40, 2, + 42, 132, 237, 45, 237, 40, 2, 41, 132, 237, 45, 237, 40, 2, 203, 132, + 237, 45, 237, 40, 2, 240, 116, 132, 237, 45, 237, 40, 2, 240, 116, 41, + 233, 88, 237, 45, 237, 40, 2, 253, 167, 253, 85, 240, 116, 42, 233, 88, + 237, 45, 42, 132, 86, 235, 20, 41, 132, 86, 235, 20, 235, 94, 235, 45, + 235, 94, 63, 235, 20, 240, 116, 132, 235, 94, 63, 235, 20, 203, 132, 235, + 94, 63, 235, 20, 240, 116, 42, 233, 88, 233, 146, 247, 10, 240, 116, 41, + 233, 88, 233, 146, 247, 10, 203, 41, 233, 88, 233, 146, 247, 10, 203, 42, + 233, 88, 233, 146, 247, 10, 240, 116, 132, 235, 20, 203, 132, 235, 20, + 86, 203, 41, 231, 193, 86, 203, 42, 231, 193, 86, 240, 116, 42, 231, 193, + 86, 240, 116, 41, 231, 193, 63, 235, 45, 37, 2, 42, 132, 237, 45, 37, 2, + 41, 132, 237, 45, 37, 2, 240, 116, 42, 233, 74, 132, 237, 45, 37, 2, 203, + 41, 233, 74, 132, 237, 45, 63, 37, 2, 61, 232, 86, 240, 138, 63, 229, + 174, 233, 80, 2, 246, 164, 229, 174, 233, 80, 2, 42, 132, 237, 45, 229, + 174, 233, 80, 2, 41, 132, 237, 45, 240, 185, 235, 20, 63, 37, 2, 240, + 116, 42, 231, 219, 63, 37, 2, 203, 42, 231, 219, 63, 37, 2, 203, 41, 231, + 219, 63, 37, 2, 240, 116, 41, 231, 219, 63, 237, 40, 2, 240, 116, 42, + 231, 219, 63, 237, 40, 2, 203, 42, 231, 219, 63, 237, 40, 2, 203, 41, + 231, 219, 63, 237, 40, 2, 240, 116, 41, 231, 219, 240, 116, 42, 231, 193, + 240, 116, 41, 231, 193, 203, 42, 231, 193, 63, 237, 60, 235, 27, 86, 237, + 60, 235, 27, 63, 237, 60, 3, 235, 27, 86, 237, 60, 3, 235, 27, 203, 41, + 231, 193, 86, 254, 8, 2, 241, 220, 238, 156, 233, 58, 234, 226, 238, 159, + 86, 240, 139, 63, 240, 139, 231, 98, 228, 167, 247, 54, 232, 77, 241, + 204, 230, 181, 241, 204, 228, 229, 229, 187, 86, 230, 212, 63, 230, 212, + 237, 149, 246, 231, 237, 149, 77, 2, 237, 234, 237, 149, 77, 2, 254, 184, + 234, 213, 235, 2, 2, 251, 171, 238, 193, 253, 225, 232, 84, 63, 241, 238, + 237, 188, 86, 241, 238, 237, 188, 233, 23, 200, 235, 97, 237, 202, 240, + 196, 235, 45, 86, 42, 233, 78, 237, 135, 86, 41, 233, 78, 237, 135, 63, + 42, 233, 78, 237, 135, 63, 99, 233, 78, 237, 135, 63, 41, 233, 78, 237, + 135, 63, 103, 233, 78, 237, 135, 245, 189, 22, 229, 243, 236, 22, 53, + 230, 93, 53, 232, 85, 53, 232, 91, 242, 58, 234, 178, 237, 85, 253, 212, + 246, 209, 240, 221, 106, 232, 222, 240, 221, 106, 231, 89, 247, 53, 22, + 232, 104, 240, 176, 98, 254, 23, 236, 221, 238, 4, 22, 236, 230, 245, 62, + 98, 253, 122, 240, 242, 235, 66, 32, 235, 123, 235, 66, 32, 241, 178, + 235, 66, 32, 240, 207, 235, 66, 32, 233, 246, 235, 66, 32, 240, 199, 235, + 66, 32, 237, 168, 235, 66, 32, 231, 255, 235, 66, 32, 237, 99, 246, 56, + 106, 236, 48, 63, 234, 108, 240, 223, 63, 235, 213, 240, 223, 86, 235, + 213, 240, 223, 63, 254, 8, 2, 241, 220, 240, 225, 235, 53, 240, 211, 250, + 207, 235, 53, 240, 211, 234, 159, 237, 154, 53, 237, 99, 246, 235, 53, + 234, 134, 236, 208, 237, 17, 234, 167, 239, 200, 238, 102, 236, 255, 236, + 91, 236, 19, 250, 213, 240, 78, 239, 84, 233, 20, 229, 58, 230, 233, 232, + 72, 236, 189, 63, 240, 175, 241, 2, 63, 240, 175, 238, 39, 63, 240, 175, + 241, 225, 63, 240, 175, 235, 152, 63, 240, 175, 235, 186, 63, 240, 175, + 241, 211, 86, 240, 175, 241, 2, 86, 240, 175, 238, 39, 86, 240, 175, 241, + 225, 86, 240, 175, 235, 152, 86, 240, 175, 235, 186, 86, 240, 175, 241, + 211, 86, 241, 249, 240, 198, 63, 240, 196, 240, 198, 63, 235, 41, 240, + 198, 86, 248, 9, 240, 198, 63, 241, 249, 240, 198, 86, 240, 196, 240, + 198, 86, 235, 41, 240, 198, 63, 248, 9, 240, 198, 253, 225, 234, 228, + 235, 53, 240, 186, 237, 112, 240, 186, 237, 229, 237, 112, 238, 29, 237, + 229, 232, 6, 238, 29, 241, 53, 247, 141, 53, 241, 53, 235, 131, 53, 241, + 53, 240, 235, 53, 246, 184, 151, 237, 85, 246, 170, 151, 237, 85, 232, + 64, 231, 213, 98, 231, 213, 14, 32, 240, 57, 231, 224, 231, 213, 14, 32, + 240, 58, 231, 224, 231, 213, 14, 32, 240, 59, 231, 224, 231, 213, 14, 32, + 240, 60, 231, 224, 231, 213, 14, 32, 240, 61, 231, 224, 231, 213, 14, 32, + 240, 62, 231, 224, 231, 213, 14, 32, 240, 63, 231, 224, 231, 213, 14, 32, + 236, 92, 231, 100, 86, 232, 64, 231, 213, 98, 234, 205, 241, 59, 98, 222, + 248, 241, 59, 98, 232, 248, 241, 59, 53, 231, 186, 98, 253, 115, 236, 68, + 253, 115, 236, 69, 253, 115, 236, 70, 253, 115, 236, 71, 253, 115, 236, + 72, 253, 115, 236, 73, 63, 237, 40, 2, 56, 237, 41, 63, 237, 40, 2, 135, + 240, 169, 86, 237, 40, 2, 63, 56, 237, 41, 86, 237, 40, 2, 135, 63, 240, + 169, 233, 115, 32, 240, 242, 233, 115, 32, 247, 233, 237, 111, 32, 235, + 175, 240, 242, 237, 111, 32, 238, 21, 247, 233, 237, 111, 32, 238, 21, + 240, 242, 237, 111, 32, 235, 175, 247, 233, 63, 241, 131, 86, 241, 131, + 238, 4, 22, 245, 72, 235, 145, 235, 117, 236, 250, 241, 251, 106, 228, + 222, 236, 209, 234, 0, 236, 85, 243, 121, 241, 251, 106, 236, 104, 248, + 240, 98, 227, 240, 233, 124, 63, 240, 139, 237, 27, 53, 201, 237, 26, 53, + 235, 166, 237, 154, 53, 235, 166, 246, 235, 53, 230, 72, 237, 154, 22, + 246, 235, 53, 246, 235, 22, 237, 154, 53, 246, 235, 2, 195, 53, 246, 235, + 2, 195, 22, 246, 235, 22, 237, 154, 53, 61, 246, 235, 2, 195, 53, 169, + 246, 235, 2, 195, 53, 237, 60, 63, 235, 20, 237, 60, 86, 235, 20, 237, + 60, 3, 63, 235, 20, 234, 152, 98, 236, 52, 98, 233, 60, 229, 208, 98, + 236, 34, 236, 87, 252, 62, 236, 165, 238, 144, 236, 181, 244, 37, 240, + 76, 236, 28, 86, 247, 176, 236, 134, 234, 220, 229, 149, 233, 6, 227, 75, + 63, 233, 148, 247, 4, 63, 233, 148, 241, 2, 86, 233, 148, 247, 4, 86, + 233, 148, 241, 2, 240, 116, 241, 101, 231, 245, 86, 231, 245, 203, 241, + 101, 231, 245, 63, 231, 245, 232, 11, 234, 145, 53, 252, 8, 238, 192, + 232, 67, 232, 178, 237, 23, 240, 251, 237, 31, 240, 251, 203, 41, 235, + 133, 235, 133, 240, 116, 41, 235, 133, 63, 248, 111, 86, 248, 111, 240, + 245, 76, 112, 240, 245, 76, 227, 134, 254, 184, 112, 227, 134, 254, 184, + 237, 149, 254, 184, 112, 237, 149, 254, 184, 233, 124, 19, 237, 85, 112, + 19, 237, 85, 246, 157, 237, 95, 237, 85, 112, 246, 157, 237, 95, 237, 85, + 7, 237, 85, 233, 125, 63, 7, 237, 85, 233, 124, 7, 237, 85, 236, 145, + 237, 85, 247, 53, 106, 238, 173, 246, 160, 225, 105, 231, 198, 246, 160, + 227, 136, 231, 198, 112, 246, 160, 227, 136, 231, 198, 246, 160, 229, + 237, 231, 198, 86, 246, 160, 235, 50, 240, 139, 63, 246, 160, 235, 50, + 240, 139, 237, 165, 233, 124, 63, 240, 139, 33, 63, 240, 139, 246, 157, + 237, 95, 86, 240, 139, 86, 237, 95, 63, 240, 139, 233, 124, 86, 240, 139, + 112, 233, 124, 86, 240, 139, 233, 175, 240, 139, 233, 125, 63, 240, 139, + 112, 231, 198, 246, 157, 237, 95, 231, 198, 240, 142, 240, 12, 231, 198, + 240, 142, 235, 50, 86, 240, 139, 240, 142, 235, 50, 233, 175, 240, 139, + 253, 17, 235, 50, 86, 240, 139, 240, 142, 235, 50, 229, 212, 86, 240, + 139, 112, 240, 142, 235, 50, 229, 212, 86, 240, 139, 238, 79, 235, 50, + 86, 240, 139, 235, 210, 235, 50, 231, 198, 225, 105, 231, 198, 246, 157, + 237, 95, 225, 105, 231, 198, 112, 225, 105, 231, 198, 253, 17, 233, 228, + 86, 22, 63, 231, 238, 86, 231, 238, 63, 231, 238, 240, 142, 233, 228, + 233, 124, 86, 231, 238, 33, 246, 157, 237, 95, 240, 142, 235, 50, 240, + 139, 112, 225, 105, 233, 175, 231, 198, 230, 171, 245, 251, 231, 180, + 230, 171, 112, 236, 26, 230, 171, 233, 239, 112, 233, 239, 227, 136, 231, + 198, 240, 142, 225, 105, 232, 40, 231, 198, 112, 240, 142, 225, 105, 232, + 40, 231, 198, 233, 125, 63, 235, 20, 203, 41, 227, 202, 63, 235, 27, 240, + 116, 41, 227, 202, 63, 235, 27, 203, 41, 233, 125, 63, 235, 27, 240, 116, + 41, 233, 125, 63, 235, 27, 86, 235, 41, 240, 172, 63, 254, 184, 157, 61, + 125, 237, 60, 61, 125, 112, 61, 125, 112, 237, 62, 209, 240, 162, 231, + 199, 165, 231, 200, 112, 237, 62, 240, 162, 231, 199, 165, 231, 200, 112, + 47, 209, 240, 162, 231, 199, 165, 231, 200, 112, 47, 240, 162, 231, 199, + 165, 231, 200, 237, 153, 251, 238, 231, 242, 5, 231, 200, 112, 229, 165, + 165, 231, 200, 112, 240, 196, 229, 165, 165, 231, 200, 112, 86, 237, 204, + 235, 97, 112, 86, 240, 196, 235, 45, 237, 202, 237, 204, 235, 97, 237, + 202, 240, 196, 235, 45, 237, 60, 42, 229, 169, 231, 200, 237, 60, 41, + 229, 169, 231, 200, 237, 60, 231, 230, 42, 229, 169, 231, 200, 237, 60, + 231, 230, 41, 229, 169, 231, 200, 237, 60, 227, 185, 240, 117, 235, 22, + 231, 200, 237, 60, 227, 133, 240, 117, 235, 22, 231, 200, 112, 227, 185, + 240, 117, 231, 199, 165, 231, 200, 112, 227, 133, 240, 117, 231, 199, + 165, 231, 200, 112, 227, 185, 240, 117, 235, 22, 231, 200, 112, 227, 133, + 240, 117, 235, 22, 231, 200, 157, 42, 233, 89, 240, 158, 235, 22, 231, + 200, 157, 41, 233, 89, 240, 158, 235, 22, 231, 200, 237, 60, 42, 240, + 137, 235, 22, 231, 200, 237, 60, 41, 240, 137, 235, 22, 231, 200, 235, + 25, 233, 71, 33, 21, 118, 235, 25, 233, 71, 33, 21, 113, 235, 25, 233, + 71, 33, 21, 166, 235, 25, 233, 71, 33, 21, 158, 235, 25, 233, 71, 33, 21, + 173, 235, 25, 233, 71, 33, 21, 183, 235, 25, 233, 71, 33, 21, 194, 235, + 25, 233, 71, 33, 21, 187, 235, 25, 233, 71, 33, 21, 192, 235, 25, 233, + 71, 33, 65, 246, 179, 235, 25, 33, 30, 21, 118, 235, 25, 33, 30, 21, 113, + 235, 25, 33, 30, 21, 166, 235, 25, 33, 30, 21, 158, 235, 25, 33, 30, 21, + 173, 235, 25, 33, 30, 21, 183, 235, 25, 33, 30, 21, 194, 235, 25, 33, 30, + 21, 187, 235, 25, 33, 30, 21, 192, 235, 25, 33, 30, 65, 246, 179, 235, + 25, 233, 71, 33, 30, 21, 118, 235, 25, 233, 71, 33, 30, 21, 113, 235, 25, + 233, 71, 33, 30, 21, 166, 235, 25, 233, 71, 33, 30, 21, 158, 235, 25, + 233, 71, 33, 30, 21, 173, 235, 25, 233, 71, 33, 30, 21, 183, 235, 25, + 233, 71, 33, 30, 21, 194, 235, 25, 233, 71, 33, 30, 21, 187, 235, 25, + 233, 71, 33, 30, 21, 192, 235, 25, 233, 71, 33, 30, 65, 246, 179, 112, + 230, 123, 81, 58, 112, 240, 141, 246, 170, 58, 112, 81, 58, 112, 240, + 134, 246, 170, 58, 234, 87, 240, 143, 81, 58, 112, 229, 57, 81, 58, 225, + 107, 81, 58, 112, 225, 107, 81, 58, 237, 110, 225, 107, 81, 58, 112, 237, + 110, 225, 107, 81, 58, 86, 81, 58, 235, 226, 230, 119, 81, 230, 133, 235, + 226, 227, 157, 81, 230, 133, 86, 81, 230, 133, 112, 86, 237, 153, 231, + 191, 22, 81, 58, 112, 86, 237, 153, 235, 18, 22, 81, 58, 241, 250, 86, + 81, 58, 112, 225, 112, 86, 81, 58, 229, 55, 63, 81, 58, 230, 76, 63, 81, + 58, 229, 233, 233, 125, 63, 81, 58, 229, 20, 233, 125, 63, 81, 58, 112, + 203, 227, 135, 63, 81, 58, 112, 240, 116, 227, 135, 63, 81, 58, 235, 196, + 203, 227, 135, 63, 81, 58, 235, 196, 240, 116, 227, 135, 63, 81, 58, 33, + 112, 63, 81, 58, 227, 131, 81, 58, 225, 106, 240, 141, 246, 170, 58, 225, + 106, 81, 58, 225, 106, 240, 134, 246, 170, 58, 112, 225, 106, 240, 141, + 246, 170, 58, 112, 225, 106, 81, 58, 112, 225, 106, 240, 134, 246, 170, + 58, 227, 79, 81, 58, 112, 225, 103, 81, 58, 228, 221, 81, 58, 112, 228, + 221, 81, 58, 228, 0, 81, 58, 152, 229, 248, 237, 98, 63, 233, 80, 230, + 162, 3, 63, 231, 193, 227, 146, 246, 157, 235, 61, 246, 157, 231, 228, + 42, 233, 232, 253, 170, 230, 163, 41, 233, 232, 253, 170, 230, 163, 145, + 2, 56, 235, 57, 235, 37, 235, 54, 232, 38, 235, 61, 233, 83, 232, 38, + 233, 104, 61, 252, 219, 2, 169, 82, 182, 232, 114, 63, 235, 41, 2, 235, + 112, 246, 164, 22, 2, 246, 164, 235, 44, 106, 235, 71, 233, 139, 203, 41, + 237, 79, 2, 246, 164, 240, 116, 42, 237, 79, 2, 246, 164, 42, 241, 57, + 240, 253, 41, 241, 57, 240, 253, 246, 162, 241, 57, 240, 253, 240, 185, + 99, 240, 149, 240, 185, 103, 240, 149, 42, 22, 41, 47, 230, 141, 42, 22, + 41, 240, 149, 42, 232, 0, 182, 41, 240, 149, 182, 42, 240, 149, 99, 246, + 215, 2, 237, 40, 46, 236, 143, 235, 119, 254, 205, 169, 245, 139, 63, + 227, 194, 233, 90, 63, 227, 194, 235, 41, 2, 117, 240, 216, 63, 227, 194, + 235, 41, 2, 81, 240, 216, 63, 37, 2, 117, 240, 216, 63, 37, 2, 81, 240, + 216, 12, 42, 63, 37, 104, 12, 41, 63, 37, 104, 12, 42, 240, 117, 104, 12, + 41, 240, 117, 104, 12, 42, 47, 240, 117, 104, 12, 41, 47, 240, 117, 104, + 12, 42, 63, 233, 89, 240, 158, 104, 12, 41, 63, 233, 89, 240, 158, 104, + 12, 42, 231, 230, 228, 180, 12, 41, 231, 230, 228, 180, 235, 18, 231, + 212, 58, 231, 191, 231, 212, 58, 227, 184, 237, 253, 237, 40, 58, 231, + 209, 237, 253, 237, 40, 58, 41, 67, 2, 33, 240, 180, 182, 117, 58, 182, + 81, 58, 182, 42, 41, 58, 182, 117, 47, 58, 182, 81, 47, 58, 182, 42, 41, + 47, 58, 182, 117, 67, 246, 172, 125, 182, 81, 67, 246, 172, 125, 182, + 117, 47, 67, 246, 172, 125, 182, 81, 47, 67, 246, 172, 125, 182, 81, 233, + 156, 58, 39, 40, 238, 126, 39, 40, 236, 54, 39, 40, 236, 55, 39, 40, 234, + 58, 39, 40, 236, 56, 39, 40, 234, 59, 39, 40, 234, 65, 39, 40, 232, 115, + 39, 40, 236, 57, 39, 40, 234, 60, 39, 40, 234, 66, 39, 40, 232, 116, 39, + 40, 234, 71, 39, 40, 232, 121, 39, 40, 232, 136, 39, 40, 230, 247, 39, + 40, 236, 58, 39, 40, 234, 61, 39, 40, 234, 67, 39, 40, 232, 117, 39, 40, + 234, 72, 39, 40, 232, 122, 39, 40, 232, 137, 39, 40, 230, 248, 39, 40, + 234, 76, 39, 40, 232, 126, 39, 40, 232, 141, 39, 40, 230, 252, 39, 40, + 232, 151, 39, 40, 231, 6, 39, 40, 231, 26, 39, 40, 229, 253, 39, 40, 236, + 59, 39, 40, 234, 62, 39, 40, 234, 68, 39, 40, 232, 118, 39, 40, 234, 73, + 39, 40, 232, 123, 39, 40, 232, 138, 39, 40, 230, 249, 39, 40, 234, 77, + 39, 40, 232, 127, 39, 40, 232, 142, 39, 40, 230, 253, 39, 40, 232, 152, + 39, 40, 231, 7, 39, 40, 231, 27, 39, 40, 229, 254, 39, 40, 234, 80, 39, + 40, 232, 130, 39, 40, 232, 145, 39, 40, 231, 0, 39, 40, 232, 155, 39, 40, + 231, 10, 39, 40, 231, 30, 39, 40, 230, 1, 39, 40, 232, 161, 39, 40, 231, + 16, 39, 40, 231, 36, 39, 40, 230, 7, 39, 40, 231, 46, 39, 40, 230, 17, + 39, 40, 230, 32, 39, 40, 228, 243, 39, 40, 236, 60, 39, 40, 234, 63, 39, + 40, 234, 69, 39, 40, 232, 119, 39, 40, 234, 74, 39, 40, 232, 124, 39, 40, + 232, 139, 39, 40, 230, 250, 39, 40, 234, 78, 39, 40, 232, 128, 39, 40, + 232, 143, 39, 40, 230, 254, 39, 40, 232, 153, 39, 40, 231, 8, 39, 40, + 231, 28, 39, 40, 229, 255, 39, 40, 234, 81, 39, 40, 232, 131, 39, 40, + 232, 146, 39, 40, 231, 1, 39, 40, 232, 156, 39, 40, 231, 11, 39, 40, 231, + 31, 39, 40, 230, 2, 39, 40, 232, 162, 39, 40, 231, 17, 39, 40, 231, 37, + 39, 40, 230, 8, 39, 40, 231, 47, 39, 40, 230, 18, 39, 40, 230, 33, 39, + 40, 228, 244, 39, 40, 234, 83, 39, 40, 232, 133, 39, 40, 232, 148, 39, + 40, 231, 3, 39, 40, 232, 158, 39, 40, 231, 13, 39, 40, 231, 33, 39, 40, + 230, 4, 39, 40, 232, 164, 39, 40, 231, 19, 39, 40, 231, 39, 39, 40, 230, + 10, 39, 40, 231, 49, 39, 40, 230, 20, 39, 40, 230, 35, 39, 40, 228, 246, + 39, 40, 232, 167, 39, 40, 231, 22, 39, 40, 231, 42, 39, 40, 230, 13, 39, + 40, 231, 52, 39, 40, 230, 23, 39, 40, 230, 38, 39, 40, 228, 249, 39, 40, + 231, 56, 39, 40, 230, 27, 39, 40, 230, 42, 39, 40, 228, 253, 39, 40, 230, + 47, 39, 40, 229, 2, 39, 40, 229, 8, 39, 40, 227, 231, 39, 40, 236, 61, + 39, 40, 234, 64, 39, 40, 234, 70, 39, 40, 232, 120, 39, 40, 234, 75, 39, + 40, 232, 125, 39, 40, 232, 140, 39, 40, 230, 251, 39, 40, 234, 79, 39, + 40, 232, 129, 39, 40, 232, 144, 39, 40, 230, 255, 39, 40, 232, 154, 39, + 40, 231, 9, 39, 40, 231, 29, 39, 40, 230, 0, 39, 40, 234, 82, 39, 40, + 232, 132, 39, 40, 232, 147, 39, 40, 231, 2, 39, 40, 232, 157, 39, 40, + 231, 12, 39, 40, 231, 32, 39, 40, 230, 3, 39, 40, 232, 163, 39, 40, 231, + 18, 39, 40, 231, 38, 39, 40, 230, 9, 39, 40, 231, 48, 39, 40, 230, 19, + 39, 40, 230, 34, 39, 40, 228, 245, 39, 40, 234, 84, 39, 40, 232, 134, 39, + 40, 232, 149, 39, 40, 231, 4, 39, 40, 232, 159, 39, 40, 231, 14, 39, 40, + 231, 34, 39, 40, 230, 5, 39, 40, 232, 165, 39, 40, 231, 20, 39, 40, 231, + 40, 39, 40, 230, 11, 39, 40, 231, 50, 39, 40, 230, 21, 39, 40, 230, 36, + 39, 40, 228, 247, 39, 40, 232, 168, 39, 40, 231, 23, 39, 40, 231, 43, 39, + 40, 230, 14, 39, 40, 231, 53, 39, 40, 230, 24, 39, 40, 230, 39, 39, 40, + 228, 250, 39, 40, 231, 57, 39, 40, 230, 28, 39, 40, 230, 43, 39, 40, 228, + 254, 39, 40, 230, 48, 39, 40, 229, 3, 39, 40, 229, 9, 39, 40, 227, 232, + 39, 40, 234, 85, 39, 40, 232, 135, 39, 40, 232, 150, 39, 40, 231, 5, 39, + 40, 232, 160, 39, 40, 231, 15, 39, 40, 231, 35, 39, 40, 230, 6, 39, 40, + 232, 166, 39, 40, 231, 21, 39, 40, 231, 41, 39, 40, 230, 12, 39, 40, 231, + 51, 39, 40, 230, 22, 39, 40, 230, 37, 39, 40, 228, 248, 39, 40, 232, 169, + 39, 40, 231, 24, 39, 40, 231, 44, 39, 40, 230, 15, 39, 40, 231, 54, 39, + 40, 230, 25, 39, 40, 230, 40, 39, 40, 228, 251, 39, 40, 231, 58, 39, 40, + 230, 29, 39, 40, 230, 44, 39, 40, 228, 255, 39, 40, 230, 49, 39, 40, 229, + 4, 39, 40, 229, 10, 39, 40, 227, 233, 39, 40, 232, 170, 39, 40, 231, 25, + 39, 40, 231, 45, 39, 40, 230, 16, 39, 40, 231, 55, 39, 40, 230, 26, 39, + 40, 230, 41, 39, 40, 228, 252, 39, 40, 231, 59, 39, 40, 230, 30, 39, 40, + 230, 45, 39, 40, 229, 0, 39, 40, 230, 50, 39, 40, 229, 5, 39, 40, 229, + 11, 39, 40, 227, 234, 39, 40, 231, 60, 39, 40, 230, 31, 39, 40, 230, 46, + 39, 40, 229, 1, 39, 40, 230, 51, 39, 40, 229, 6, 39, 40, 229, 12, 39, 40, + 227, 235, 39, 40, 230, 52, 39, 40, 229, 7, 39, 40, 229, 13, 39, 40, 227, + 236, 39, 40, 229, 14, 39, 40, 227, 237, 39, 40, 227, 238, 39, 40, 227, + 162, 81, 230, 132, 67, 2, 61, 82, 81, 230, 132, 67, 2, 47, 61, 82, 117, + 47, 67, 2, 61, 82, 81, 47, 67, 2, 61, 82, 42, 41, 47, 67, 2, 61, 82, 81, + 230, 132, 67, 246, 172, 125, 117, 47, 67, 246, 172, 125, 81, 47, 67, 246, + 172, 125, 231, 191, 67, 2, 169, 82, 235, 18, 67, 2, 169, 82, 235, 18, + 237, 49, 58, 231, 191, 237, 49, 58, 117, 47, 246, 187, 58, 81, 47, 246, + 187, 58, 117, 237, 49, 246, 187, 58, 81, 237, 49, 246, 187, 58, 81, 230, + 132, 237, 49, 246, 187, 58, 81, 67, 2, 237, 50, 240, 214, 235, 18, 67, + 180, 125, 231, 191, 67, 180, 125, 81, 67, 2, 246, 237, 2, 61, 82, 81, 67, + 2, 246, 237, 2, 47, 61, 82, 81, 230, 132, 67, 2, 240, 133, 81, 230, 132, + 67, 2, 246, 237, 2, 61, 82, 81, 230, 132, 67, 2, 246, 237, 2, 47, 61, 82, + 117, 229, 178, 81, 229, 178, 117, 47, 229, 178, 81, 47, 229, 178, 117, + 67, 180, 86, 233, 90, 81, 67, 180, 86, 233, 90, 117, 67, 246, 172, 252, + 219, 180, 86, 233, 90, 81, 67, 246, 172, 252, 219, 180, 86, 233, 90, 240, + 134, 246, 184, 22, 240, 141, 246, 170, 58, 240, 134, 246, 170, 22, 240, + 141, 246, 184, 58, 240, 134, 246, 184, 67, 2, 88, 240, 134, 246, 170, 67, + 2, 88, 240, 141, 246, 170, 67, 2, 88, 240, 141, 246, 184, 67, 2, 88, 240, + 134, 246, 184, 67, 22, 240, 134, 246, 170, 58, 240, 134, 246, 170, 67, + 22, 240, 141, 246, 170, 58, 240, 141, 246, 170, 67, 22, 240, 141, 246, + 184, 58, 240, 141, 246, 184, 67, 22, 240, 134, 246, 184, 58, 237, 115, + 233, 74, 233, 77, 235, 84, 231, 236, 235, 84, 233, 74, 233, 77, 237, 115, + 231, 236, 240, 141, 246, 170, 67, 233, 77, 240, 134, 246, 170, 58, 240, + 134, 246, 170, 67, 233, 77, 240, 141, 246, 170, 58, 235, 84, 233, 74, + 233, 77, 240, 134, 246, 170, 58, 237, 115, 233, 74, 233, 77, 240, 141, + 246, 170, 58, 240, 134, 246, 170, 67, 233, 77, 240, 134, 246, 184, 58, + 240, 134, 246, 184, 67, 233, 77, 240, 134, 246, 170, 58, 247, 23, 67, + 233, 78, 233, 201, 237, 41, 67, 233, 78, 81, 247, 107, 235, 89, 233, 139, + 67, 233, 78, 81, 247, 107, 235, 89, 230, 134, 67, 233, 78, 231, 191, 247, + 107, 235, 89, 230, 143, 67, 233, 78, 231, 191, 247, 107, 235, 89, 229, + 177, 231, 136, 253, 29, 231, 209, 58, 232, 219, 253, 29, 227, 184, 58, + 252, 228, 253, 29, 227, 184, 58, 237, 59, 253, 29, 227, 184, 58, 252, + 228, 253, 29, 231, 209, 67, 2, 237, 124, 252, 228, 253, 29, 227, 184, 67, + 2, 240, 180, 203, 41, 228, 206, 231, 209, 58, 203, 42, 228, 206, 227, + 184, 58, 227, 184, 237, 58, 237, 40, 58, 231, 209, 237, 58, 237, 40, 58, + 81, 67, 64, 240, 125, 117, 58, 117, 67, 64, 240, 125, 81, 58, 240, 125, + 81, 67, 64, 117, 58, 81, 67, 2, 79, 51, 117, 67, 2, 79, 51, 81, 67, 235, + 42, 254, 184, 42, 41, 67, 235, 42, 3, 235, 20, 235, 18, 230, 132, 67, + 246, 172, 3, 235, 20, 42, 171, 99, 41, 171, 103, 233, 105, 42, 171, 103, + 41, 171, 99, 233, 105, 99, 171, 41, 103, 171, 42, 233, 105, 99, 171, 42, + 103, 171, 41, 233, 105, 42, 171, 99, 41, 171, 99, 233, 105, 99, 171, 41, + 103, 171, 41, 233, 105, 42, 171, 103, 41, 171, 103, 233, 105, 99, 171, + 42, 103, 171, 42, 233, 105, 117, 235, 14, 2, 171, 99, 180, 125, 81, 235, + 14, 2, 171, 99, 180, 125, 235, 18, 235, 14, 2, 171, 41, 180, 125, 231, + 191, 235, 14, 2, 171, 41, 180, 125, 117, 235, 14, 2, 171, 103, 180, 125, + 81, 235, 14, 2, 171, 103, 180, 125, 235, 18, 235, 14, 2, 171, 42, 180, + 125, 231, 191, 235, 14, 2, 171, 42, 180, 125, 117, 235, 14, 2, 171, 99, + 246, 172, 125, 81, 235, 14, 2, 171, 99, 246, 172, 125, 235, 18, 235, 14, + 2, 171, 41, 246, 172, 125, 231, 191, 235, 14, 2, 171, 41, 246, 172, 125, + 117, 235, 14, 2, 171, 103, 246, 172, 125, 81, 235, 14, 2, 171, 103, 246, + 172, 125, 235, 18, 235, 14, 2, 171, 42, 246, 172, 125, 231, 191, 235, 14, + 2, 171, 42, 246, 172, 125, 117, 235, 14, 2, 171, 99, 64, 117, 235, 14, 2, + 171, 240, 152, 235, 18, 235, 14, 2, 171, 42, 237, 94, 235, 18, 235, 14, + 2, 171, 237, 41, 81, 235, 14, 2, 171, 99, 64, 81, 235, 14, 2, 171, 240, + 152, 231, 191, 235, 14, 2, 171, 42, 237, 94, 231, 191, 235, 14, 2, 171, + 237, 41, 117, 235, 14, 2, 171, 99, 64, 81, 235, 14, 2, 171, 253, 19, 117, + 235, 14, 2, 171, 103, 64, 81, 235, 14, 2, 171, 240, 152, 81, 235, 14, 2, + 171, 99, 64, 117, 235, 14, 2, 171, 253, 19, 81, 235, 14, 2, 171, 103, 64, + 117, 235, 14, 2, 171, 240, 152, 117, 235, 14, 2, 171, 99, 64, 182, 240, + 151, 117, 235, 14, 2, 171, 103, 240, 144, 182, 240, 151, 81, 235, 14, 2, + 171, 99, 64, 182, 240, 151, 81, 235, 14, 2, 171, 103, 240, 144, 182, 240, + 151, 235, 18, 235, 14, 2, 171, 42, 237, 94, 231, 191, 235, 14, 2, 171, + 237, 41, 231, 191, 235, 14, 2, 171, 42, 237, 94, 235, 18, 235, 14, 2, + 171, 237, 41, 41, 47, 67, 2, 235, 98, 240, 228, 237, 51, 5, 64, 81, 58, + 240, 128, 233, 118, 64, 81, 58, 117, 67, 64, 240, 128, 231, 192, 81, 67, + 64, 240, 128, 231, 192, 81, 67, 64, 237, 78, 105, 96, 231, 190, 64, 117, + 58, 117, 67, 235, 42, 230, 128, 228, 175, 64, 81, 58, 237, 76, 64, 81, + 58, 117, 67, 235, 42, 235, 61, 233, 83, 64, 117, 58, 42, 247, 76, 240, + 133, 41, 247, 76, 240, 133, 99, 247, 76, 240, 133, 103, 247, 76, 240, + 133, 237, 49, 61, 252, 219, 230, 163, 255, 56, 150, 245, 194, 255, 56, + 150, 247, 219, 237, 66, 42, 63, 240, 137, 104, 41, 63, 240, 137, 104, 42, + 63, 228, 180, 41, 63, 228, 180, 255, 56, 150, 42, 240, 190, 104, 255, 56, + 150, 41, 240, 190, 104, 255, 56, 150, 42, 235, 151, 104, 255, 56, 150, + 41, 235, 151, 104, 42, 37, 235, 22, 2, 231, 197, 41, 37, 235, 22, 2, 231, + 197, 42, 37, 235, 22, 2, 247, 108, 254, 198, 252, 228, 235, 40, 41, 37, + 235, 22, 2, 247, 108, 254, 198, 237, 59, 235, 40, 42, 37, 235, 22, 2, + 247, 108, 254, 198, 237, 59, 235, 40, 41, 37, 235, 22, 2, 247, 108, 254, + 198, 252, 228, 235, 40, 42, 240, 117, 235, 22, 2, 246, 164, 41, 240, 117, + 235, 22, 2, 246, 164, 42, 253, 29, 231, 190, 104, 41, 253, 29, 228, 175, + 104, 47, 42, 253, 29, 228, 175, 104, 47, 41, 253, 29, 231, 190, 104, 42, + 86, 233, 89, 240, 158, 104, 41, 86, 233, 89, 240, 158, 104, 237, 50, 237, + 155, 61, 237, 170, 240, 138, 233, 99, 240, 117, 235, 71, 240, 132, 41, + 240, 117, 235, 30, 2, 235, 27, 233, 99, 41, 240, 117, 2, 246, 164, 240, + 117, 2, 255, 59, 235, 57, 240, 159, 237, 98, 232, 7, 240, 117, 235, 71, + 240, 132, 232, 7, 240, 117, 235, 71, 253, 19, 209, 237, 98, 200, 237, 98, + 240, 117, 2, 231, 197, 200, 240, 117, 2, 231, 197, 235, 78, 240, 117, + 235, 71, 253, 19, 235, 78, 240, 117, 235, 71, 240, 152, 233, 99, 240, + 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, 233, 78, 99, 22, 237, + 41, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, 233, + 78, 99, 22, 240, 132, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, 119, + 254, 198, 67, 233, 78, 103, 22, 237, 41, 233, 99, 240, 117, 2, 246, 157, + 253, 84, 237, 119, 254, 198, 67, 233, 78, 103, 22, 240, 132, 233, 99, + 240, 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, 233, 78, 41, 22, + 253, 19, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, 119, 254, 198, 67, + 233, 78, 42, 22, 253, 19, 233, 99, 240, 117, 2, 246, 157, 253, 84, 237, + 119, 254, 198, 67, 233, 78, 41, 22, 240, 152, 233, 99, 240, 117, 2, 246, + 157, 253, 84, 237, 119, 254, 198, 67, 233, 78, 42, 22, 240, 152, 200, + 240, 195, 248, 155, 240, 195, 253, 133, 2, 233, 95, 240, 195, 253, 133, + 2, 3, 237, 40, 46, 240, 195, 253, 133, 2, 41, 67, 46, 240, 195, 253, 133, + 2, 42, 67, 46, 237, 40, 2, 169, 125, 33, 61, 125, 33, 232, 2, 33, 235, + 37, 233, 104, 33, 227, 146, 237, 40, 235, 119, 254, 205, 169, 252, 219, + 22, 252, 228, 132, 235, 119, 254, 205, 61, 125, 237, 40, 2, 229, 151, + 254, 184, 33, 222, 227, 233, 130, 53, 99, 67, 235, 42, 235, 20, 33, 63, + 235, 45, 33, 235, 45, 33, 230, 128, 33, 227, 183, 237, 40, 2, 3, 237, 40, + 180, 252, 230, 237, 41, 237, 40, 2, 135, 169, 236, 244, 180, 252, 230, + 237, 41, 235, 51, 237, 115, 233, 74, 237, 84, 235, 51, 235, 84, 233, 74, + 237, 84, 235, 51, 231, 198, 235, 51, 3, 235, 20, 235, 51, 235, 27, 135, + 237, 184, 234, 229, 233, 80, 2, 56, 46, 233, 80, 2, 231, 197, 255, 59, + 254, 198, 231, 193, 233, 80, 2, 238, 46, 254, 217, 235, 110, 41, 233, 80, + 64, 42, 231, 193, 42, 233, 80, 237, 94, 61, 125, 61, 252, 219, 237, 94, + 41, 231, 193, 237, 233, 2, 42, 132, 237, 45, 237, 233, 2, 41, 132, 237, + 45, 86, 235, 154, 24, 2, 42, 132, 237, 45, 24, 2, 41, 132, 237, 45, 63, + 230, 167, 86, 230, 167, 42, 237, 193, 237, 155, 41, 237, 193, 237, 155, + 42, 47, 237, 193, 237, 155, 41, 47, 237, 193, 237, 155, 231, 83, 231, + 252, 254, 159, 107, 231, 252, 234, 129, 235, 194, 2, 61, 125, 229, 15, + 232, 0, 37, 2, 232, 102, 234, 179, 232, 208, 254, 29, 236, 229, 233, 101, + 237, 51, 5, 22, 235, 29, 232, 2, 237, 51, 5, 22, 235, 29, 233, 132, 2, + 240, 128, 46, 231, 239, 180, 22, 235, 29, 232, 2, 238, 250, 240, 20, 227, + 181, 227, 189, 233, 80, 2, 42, 132, 237, 45, 227, 189, 233, 80, 2, 41, + 132, 237, 45, 86, 235, 41, 2, 103, 58, 86, 233, 123, 63, 237, 40, 2, 103, + 58, 86, 237, 40, 2, 103, 58, 228, 185, 63, 235, 27, 228, 185, 86, 235, + 27, 228, 185, 63, 233, 90, 228, 185, 86, 233, 90, 228, 185, 63, 235, 20, + 228, 185, 86, 235, 20, 228, 2, 235, 37, 235, 54, 231, 192, 235, 54, 2, + 233, 95, 235, 37, 235, 54, 2, 169, 82, 253, 47, 233, 104, 253, 47, 235, + 37, 233, 104, 47, 240, 180, 237, 49, 240, 180, 227, 185, 237, 153, 240, + 117, 104, 227, 133, 237, 153, 240, 117, 104, 245, 254, 244, 147, 240, + 154, 33, 56, 231, 192, 240, 154, 33, 79, 231, 192, 240, 154, 33, 24, 231, + 192, 240, 154, 240, 182, 233, 118, 2, 246, 164, 240, 154, 240, 182, 233, + 118, 2, 240, 180, 240, 154, 37, 228, 183, 231, 192, 240, 154, 37, 240, + 182, 231, 192, 135, 235, 26, 22, 231, 192, 135, 235, 26, 145, 231, 192, + 240, 154, 24, 231, 192, 239, 118, 135, 247, 21, 232, 10, 2, 231, 208, + 231, 212, 233, 98, 231, 192, 238, 220, 248, 128, 231, 208, 233, 98, 2, + 47, 82, 233, 98, 236, 2, 2, 237, 84, 229, 236, 232, 196, 227, 184, 229, + 31, 246, 167, 229, 184, 2, 229, 211, 248, 129, 237, 194, 241, 63, 246, + 167, 229, 184, 2, 228, 206, 248, 129, 237, 194, 241, 63, 246, 167, 229, + 184, 190, 232, 207, 252, 230, 241, 63, 233, 98, 237, 194, 102, 240, 143, + 231, 192, 231, 128, 233, 98, 231, 192, 233, 98, 2, 117, 67, 2, 88, 233, + 98, 2, 24, 53, 233, 98, 2, 227, 186, 233, 98, 2, 237, 117, 233, 98, 2, + 233, 95, 233, 98, 2, 231, 197, 240, 253, 240, 185, 42, 233, 80, 231, 192, + 255, 56, 150, 237, 212, 228, 212, 255, 56, 150, 237, 212, 236, 188, 255, + 56, 150, 237, 212, 230, 91, 79, 5, 2, 3, 237, 40, 46, 79, 5, 2, 230, 125, + 237, 48, 46, 79, 5, 2, 240, 128, 46, 79, 5, 2, 56, 51, 79, 5, 2, 240, + 128, 51, 79, 5, 2, 231, 195, 113, 79, 5, 2, 86, 231, 193, 240, 172, 5, 2, + 240, 162, 46, 240, 172, 5, 2, 56, 51, 240, 172, 5, 2, 235, 84, 240, 169, + 240, 172, 5, 2, 237, 115, 240, 169, 79, 5, 254, 198, 42, 132, 235, 20, + 79, 5, 254, 198, 41, 132, 235, 20, 240, 74, 145, 240, 221, 233, 101, 227, + 134, 5, 2, 56, 46, 227, 134, 5, 2, 231, 197, 230, 147, 236, 193, 2, 237, + 59, 236, 33, 241, 247, 233, 101, 227, 134, 5, 254, 198, 42, 132, 235, 20, + 227, 134, 5, 254, 198, 41, 132, 235, 20, 33, 227, 134, 5, 2, 230, 125, + 235, 24, 227, 134, 5, 254, 198, 47, 235, 20, 33, 233, 130, 53, 79, 5, + 254, 198, 231, 193, 240, 172, 5, 254, 198, 231, 193, 227, 134, 5, 254, + 198, 231, 193, 233, 209, 233, 101, 233, 14, 233, 209, 233, 101, 255, 56, + 150, 231, 132, 228, 212, 228, 224, 145, 230, 178, 228, 183, 2, 246, 164, + 240, 182, 2, 240, 172, 53, 240, 182, 2, 233, 95, 228, 183, 2, 233, 95, + 228, 183, 2, 235, 26, 246, 230, 240, 182, 2, 235, 26, 253, 81, 240, 182, + 64, 227, 186, 228, 183, 64, 237, 117, 240, 182, 64, 252, 219, 64, 227, + 186, 228, 183, 64, 252, 219, 64, 237, 117, 240, 182, 237, 94, 22, 237, + 184, 2, 237, 117, 228, 183, 237, 94, 22, 237, 184, 2, 227, 186, 237, 58, + 240, 182, 2, 235, 207, 237, 58, 228, 183, 2, 235, 207, 47, 37, 227, 186, + 47, 37, 237, 117, 237, 58, 240, 182, 2, 238, 46, 22, 241, 247, 233, 101, + 235, 26, 22, 2, 56, 46, 235, 26, 145, 2, 56, 46, 47, 235, 26, 246, 230, + 47, 235, 26, 253, 81, 135, 228, 214, 235, 26, 246, 230, 135, 228, 214, + 235, 26, 253, 81, 235, 211, 240, 185, 253, 81, 235, 211, 240, 185, 246, + 230, 235, 26, 145, 229, 205, 235, 26, 246, 230, 235, 26, 22, 2, 237, 44, + 240, 214, 235, 26, 145, 2, 237, 44, 240, 214, 235, 26, 22, 2, 169, 240, + 151, 235, 26, 145, 2, 169, 240, 151, 235, 26, 22, 2, 47, 233, 95, 235, + 26, 22, 2, 231, 197, 235, 26, 22, 2, 47, 231, 197, 3, 254, 167, 2, 231, + 197, 235, 26, 145, 2, 47, 233, 95, 235, 26, 145, 2, 47, 231, 197, 255, + 56, 150, 238, 189, 223, 57, 255, 56, 150, 245, 113, 223, 57, 237, 51, 5, + 2, 56, 51, 231, 239, 2, 56, 46, 237, 49, 169, 252, 219, 2, 47, 61, 82, + 237, 49, 169, 252, 219, 2, 237, 49, 61, 82, 240, 128, 233, 118, 2, 56, + 46, 240, 128, 233, 118, 2, 237, 115, 240, 169, 235, 59, 240, 172, 234, + 221, 232, 100, 2, 56, 46, 237, 51, 2, 231, 198, 237, 78, 105, 180, 2, + 230, 125, 235, 24, 227, 187, 105, 145, 105, 96, 237, 51, 5, 64, 79, 53, + 79, 5, 64, 237, 51, 53, 237, 51, 5, 64, 240, 128, 231, 192, 47, 240, 194, + 237, 81, 135, 229, 196, 237, 51, 238, 58, 152, 229, 196, 237, 51, 238, + 58, 237, 51, 5, 2, 135, 197, 64, 22, 135, 197, 51, 230, 130, 2, 246, 160, + 197, 46, 231, 190, 2, 237, 40, 235, 57, 228, 175, 2, 237, 40, 235, 57, + 231, 190, 2, 233, 82, 165, 46, 228, 175, 2, 233, 82, 165, 46, 231, 190, + 145, 235, 29, 105, 96, 228, 175, 145, 235, 29, 105, 96, 231, 190, 145, + 235, 29, 105, 180, 2, 56, 235, 57, 228, 175, 145, 235, 29, 105, 180, 2, + 56, 235, 57, 231, 190, 145, 235, 29, 105, 180, 2, 56, 46, 228, 175, 145, + 235, 29, 105, 180, 2, 56, 46, 231, 190, 145, 235, 29, 105, 180, 2, 56, + 64, 237, 41, 228, 175, 145, 235, 29, 105, 180, 2, 56, 64, 240, 132, 231, + 190, 145, 228, 188, 228, 175, 145, 228, 188, 231, 190, 22, 229, 175, 190, + 105, 96, 228, 175, 22, 229, 175, 190, 105, 96, 231, 190, 22, 190, 228, + 188, 228, 175, 22, 190, 228, 188, 231, 190, 64, 229, 170, 105, 64, 227, + 183, 228, 175, 64, 229, 170, 105, 64, 230, 128, 231, 190, 64, 235, 59, + 145, 237, 81, 228, 175, 64, 235, 59, 145, 237, 81, 231, 190, 64, 235, 59, + 64, 227, 183, 228, 175, 64, 235, 59, 64, 230, 128, 231, 190, 64, 228, + 175, 64, 229, 170, 237, 81, 228, 175, 64, 231, 190, 64, 229, 170, 237, + 81, 231, 190, 64, 235, 29, 105, 64, 228, 175, 64, 235, 29, 237, 81, 228, + 175, 64, 235, 29, 105, 64, 231, 190, 64, 235, 29, 237, 81, 235, 29, 105, + 180, 145, 230, 128, 235, 29, 105, 180, 145, 227, 183, 235, 29, 105, 180, + 145, 231, 190, 2, 56, 235, 57, 235, 29, 105, 180, 145, 228, 175, 2, 56, + 235, 57, 229, 170, 105, 180, 145, 230, 128, 229, 170, 105, 180, 145, 227, + 183, 229, 170, 235, 29, 105, 180, 145, 230, 128, 229, 170, 235, 29, 105, + 180, 145, 227, 183, 235, 59, 145, 230, 128, 235, 59, 145, 227, 183, 235, + 59, 64, 231, 190, 64, 237, 51, 53, 235, 59, 64, 228, 175, 64, 237, 51, + 53, 47, 237, 162, 230, 128, 47, 237, 162, 227, 183, 47, 237, 162, 231, + 190, 2, 231, 197, 228, 175, 229, 205, 230, 128, 228, 175, 237, 94, 230, + 128, 231, 190, 237, 58, 254, 205, 237, 236, 228, 175, 237, 58, 254, 205, + 237, 236, 231, 190, 237, 58, 254, 205, 241, 112, 64, 235, 29, 237, 81, + 228, 175, 237, 58, 254, 205, 241, 112, 64, 235, 29, 237, 81, 235, 212, + 241, 78, 238, 18, 241, 78, 235, 212, 247, 212, 145, 105, 96, 238, 18, + 247, 212, 145, 105, 96, 237, 51, 5, 2, 242, 219, 46, 233, 106, 64, 229, + 175, 237, 51, 53, 233, 107, 64, 229, 175, 237, 51, 53, 233, 106, 64, 229, + 175, 190, 105, 96, 233, 107, 64, 229, 175, 190, 105, 96, 233, 106, 64, + 237, 51, 53, 233, 107, 64, 237, 51, 53, 233, 106, 64, 190, 105, 96, 233, + 107, 64, 190, 105, 96, 233, 106, 64, 237, 78, 105, 96, 233, 107, 64, 237, + 78, 105, 96, 233, 106, 64, 190, 237, 78, 105, 96, 233, 107, 64, 190, 237, + 78, 105, 96, 47, 232, 4, 47, 232, 9, 237, 76, 2, 246, 164, 233, 83, 2, + 246, 164, 237, 76, 2, 79, 5, 51, 233, 83, 2, 79, 5, 51, 237, 76, 2, 227, + 134, 5, 51, 233, 83, 2, 227, 134, 5, 51, 237, 76, 106, 145, 105, 180, 2, + 56, 46, 233, 83, 106, 145, 105, 180, 2, 56, 46, 237, 76, 106, 64, 237, + 51, 53, 233, 83, 106, 64, 237, 51, 53, 237, 76, 106, 64, 240, 128, 231, + 192, 233, 83, 106, 64, 240, 128, 231, 192, 237, 76, 106, 64, 237, 78, + 105, 96, 233, 83, 106, 64, 237, 78, 105, 96, 237, 76, 106, 64, 190, 105, + 96, 233, 83, 106, 64, 190, 105, 96, 37, 42, 246, 157, 77, 231, 192, 37, + 41, 246, 157, 77, 231, 192, 237, 58, 235, 61, 237, 58, 231, 228, 237, 58, + 237, 76, 145, 105, 96, 237, 58, 233, 83, 145, 105, 96, 237, 76, 64, 231, + 228, 233, 83, 64, 235, 61, 237, 76, 64, 235, 61, 233, 83, 64, 231, 228, + 233, 83, 237, 94, 235, 61, 233, 83, 237, 94, 22, 237, 184, 254, 205, 246, + 187, 2, 235, 61, 235, 44, 106, 235, 71, 230, 134, 232, 250, 2, 254, 157, + 247, 214, 230, 120, 227, 186, 234, 106, 230, 83, 240, 125, 42, 240, 149, + 240, 125, 103, 240, 149, 240, 125, 99, 240, 149, 228, 1, 2, 193, 61, 252, + 219, 237, 49, 41, 230, 141, 47, 61, 252, 219, 42, 230, 141, 61, 252, 219, + 47, 42, 230, 141, 47, 61, 252, 219, 47, 42, 230, 141, 182, 246, 187, 246, + 172, 42, 239, 103, 106, 47, 231, 210, 240, 125, 103, 246, 215, 2, 233, + 95, 240, 125, 99, 246, 215, 2, 231, 197, 240, 125, 99, 246, 215, 64, 240, + 125, 103, 240, 149, 47, 103, 240, 149, 47, 99, 240, 149, 47, 195, 190, + 53, 200, 47, 195, 190, 53, 246, 218, 190, 238, 188, 2, 200, 234, 166, + 237, 84, 61, 246, 167, 2, 237, 40, 46, 61, 246, 167, 2, 237, 40, 51, 103, + 246, 215, 2, 237, 40, 51, 233, 132, 2, 169, 82, 233, 132, 2, 240, 128, + 231, 192, 237, 49, 61, 252, 219, 237, 231, 231, 244, 237, 49, 61, 252, + 219, 2, 169, 82, 237, 49, 240, 194, 231, 192, 237, 49, 237, 162, 230, + 128, 237, 49, 237, 162, 227, 183, 229, 170, 235, 29, 231, 190, 145, 105, + 96, 229, 170, 235, 29, 228, 175, 145, 105, 96, 237, 49, 235, 54, 237, + 231, 231, 244, 240, 185, 237, 49, 61, 252, 219, 231, 192, 47, 235, 54, + 231, 192, 63, 61, 125, 240, 154, 63, 61, 125, 240, 134, 246, 170, 63, 58, + 240, 134, 246, 184, 63, 58, 240, 141, 246, 170, 63, 58, 240, 141, 246, + 184, 63, 58, 42, 41, 63, 58, 117, 86, 58, 235, 18, 86, 58, 231, 191, 86, + 58, 240, 134, 246, 170, 86, 58, 240, 134, 246, 184, 86, 58, 240, 141, + 246, 170, 86, 58, 240, 141, 246, 184, 86, 58, 42, 41, 86, 58, 99, 103, + 86, 58, 81, 67, 2, 253, 93, 230, 134, 81, 67, 2, 253, 93, 233, 139, 117, + 67, 2, 253, 93, 230, 134, 117, 67, 2, 253, 93, 233, 139, 37, 2, 252, 228, + 132, 237, 45, 37, 2, 237, 59, 132, 237, 45, 37, 2, 240, 116, 41, 233, 74, + 132, 237, 45, 37, 2, 203, 42, 233, 74, 132, 237, 45, 235, 41, 2, 42, 132, + 237, 45, 235, 41, 2, 41, 132, 237, 45, 235, 41, 2, 252, 228, 132, 237, + 45, 235, 41, 2, 237, 59, 132, 237, 45, 237, 50, 235, 27, 86, 240, 185, + 235, 27, 63, 240, 185, 235, 27, 86, 247, 114, 3, 235, 27, 63, 247, 114, + 3, 235, 27, 86, 231, 243, 63, 231, 243, 63, 233, 167, 86, 233, 167, 169, + 86, 233, 167, 86, 240, 185, 235, 20, 86, 237, 60, 233, 90, 63, 237, 60, + 233, 90, 86, 237, 60, 233, 123, 63, 237, 60, 233, 123, 86, 3, 233, 90, + 86, 3, 233, 123, 63, 3, 233, 123, 86, 169, 233, 149, 63, 169, 233, 149, + 86, 61, 233, 149, 63, 61, 233, 149, 42, 67, 2, 3, 235, 20, 152, 117, 235, + 73, 42, 67, 2, 33, 240, 180, 182, 117, 233, 156, 58, 117, 230, 132, 67, + 2, 61, 82, 117, 230, 132, 67, 2, 47, 61, 82, 117, 230, 132, 67, 246, 172, + 125, 117, 230, 132, 237, 49, 246, 187, 58, 117, 67, 2, 237, 50, 240, 214, + 117, 67, 2, 246, 237, 2, 61, 82, 117, 67, 2, 246, 237, 2, 47, 61, 82, + 117, 230, 132, 67, 2, 240, 133, 117, 230, 132, 67, 2, 246, 237, 2, 61, + 82, 117, 230, 132, 67, 2, 246, 237, 2, 47, 61, 82, 117, 67, 235, 42, 254, + 184, 247, 23, 67, 233, 78, 233, 201, 240, 132, 237, 51, 5, 64, 117, 58, + 235, 37, 240, 128, 233, 118, 64, 117, 58, 117, 67, 64, 235, 37, 237, 78, + 105, 96, 81, 67, 235, 42, 227, 183, 81, 67, 235, 42, 231, 228, 117, 231, + 212, 58, 81, 231, 212, 58, 235, 37, 240, 128, 233, 118, 64, 81, 58, 81, + 67, 64, 235, 37, 237, 78, 105, 96, 240, 128, 233, 118, 64, 117, 58, 117, + 67, 64, 237, 78, 105, 96, 117, 67, 64, 235, 37, 240, 128, 231, 192, 81, + 67, 64, 235, 37, 240, 128, 231, 192, 63, 237, 60, 240, 139, 86, 3, 240, + 139, 63, 3, 240, 139, 86, 227, 133, 231, 243, 63, 227, 133, 231, 243, + 115, 6, 1, 247, 246, 115, 6, 1, 241, 106, 115, 6, 1, 242, 17, 115, 6, 1, + 233, 207, 115, 6, 1, 237, 243, 115, 6, 1, 238, 82, 115, 6, 1, 233, 250, + 115, 6, 1, 237, 180, 115, 6, 1, 235, 235, 115, 6, 1, 240, 252, 115, 6, 1, + 59, 240, 252, 115, 6, 1, 74, 115, 6, 1, 235, 165, 115, 6, 1, 241, 170, + 115, 6, 1, 233, 216, 115, 6, 1, 233, 153, 115, 6, 1, 238, 27, 115, 6, 1, + 248, 125, 115, 6, 1, 235, 204, 115, 6, 1, 238, 42, 115, 6, 1, 238, 63, + 115, 6, 1, 235, 229, 115, 6, 1, 248, 187, 115, 6, 1, 237, 252, 115, 6, 1, + 241, 154, 115, 6, 1, 248, 126, 115, 6, 1, 253, 0, 115, 6, 1, 241, 241, + 115, 6, 1, 247, 58, 115, 6, 1, 235, 158, 115, 6, 1, 246, 165, 115, 6, 1, + 241, 24, 115, 6, 1, 242, 30, 115, 6, 1, 242, 29, 115, 6, 1, 235, 216, + 154, 115, 6, 1, 252, 233, 115, 6, 1, 3, 246, 183, 115, 6, 1, 3, 254, 21, + 2, 240, 133, 115, 6, 1, 252, 251, 115, 6, 1, 235, 95, 3, 246, 183, 115, + 6, 1, 253, 47, 246, 183, 115, 6, 1, 235, 95, 253, 47, 246, 183, 115, 6, + 1, 240, 226, 115, 6, 1, 233, 151, 115, 6, 1, 233, 237, 115, 6, 1, 230, + 218, 57, 115, 6, 1, 233, 214, 233, 153, 115, 3, 1, 247, 246, 115, 3, 1, + 241, 106, 115, 3, 1, 242, 17, 115, 3, 1, 233, 207, 115, 3, 1, 237, 243, + 115, 3, 1, 238, 82, 115, 3, 1, 233, 250, 115, 3, 1, 237, 180, 115, 3, 1, + 235, 235, 115, 3, 1, 240, 252, 115, 3, 1, 59, 240, 252, 115, 3, 1, 74, + 115, 3, 1, 235, 165, 115, 3, 1, 241, 170, 115, 3, 1, 233, 216, 115, 3, 1, + 233, 153, 115, 3, 1, 238, 27, 115, 3, 1, 248, 125, 115, 3, 1, 235, 204, + 115, 3, 1, 238, 42, 115, 3, 1, 238, 63, 115, 3, 1, 235, 229, 115, 3, 1, + 248, 187, 115, 3, 1, 237, 252, 115, 3, 1, 241, 154, 115, 3, 1, 248, 126, + 115, 3, 1, 253, 0, 115, 3, 1, 241, 241, 115, 3, 1, 247, 58, 115, 3, 1, + 235, 158, 115, 3, 1, 246, 165, 115, 3, 1, 241, 24, 115, 3, 1, 242, 30, + 115, 3, 1, 242, 29, 115, 3, 1, 235, 216, 154, 115, 3, 1, 252, 233, 115, + 3, 1, 3, 246, 183, 115, 3, 1, 3, 254, 21, 2, 240, 133, 115, 3, 1, 252, + 251, 115, 3, 1, 235, 95, 3, 246, 183, 115, 3, 1, 253, 47, 246, 183, 115, + 3, 1, 235, 95, 253, 47, 246, 183, 115, 3, 1, 240, 226, 115, 3, 1, 233, + 151, 115, 3, 1, 233, 237, 115, 3, 1, 230, 218, 57, 115, 3, 1, 233, 214, + 233, 153, 7, 6, 1, 255, 58, 2, 47, 125, 7, 3, 1, 255, 58, 2, 47, 125, 7, + 6, 1, 255, 58, 2, 237, 44, 205, 7, 6, 1, 255, 70, 2, 82, 7, 6, 1, 255, + 57, 2, 240, 133, 7, 3, 1, 102, 2, 82, 7, 3, 1, 255, 61, 2, 233, 74, 82, + 7, 6, 1, 255, 66, 2, 230, 126, 7, 3, 1, 255, 66, 2, 230, 126, 7, 6, 1, + 255, 67, 2, 230, 126, 7, 3, 1, 255, 67, 2, 230, 126, 7, 6, 1, 255, 56, 2, + 230, 126, 7, 3, 1, 255, 56, 2, 230, 126, 7, 6, 1, 237, 71, 7, 6, 1, 255, + 68, 2, 88, 7, 6, 1, 209, 57, 7, 3, 1, 255, 69, 2, 41, 88, 7, 6, 1, 255, + 71, 2, 88, 7, 3, 1, 255, 71, 2, 88, 7, 3, 1, 255, 69, 2, 240, 168, 7, 6, + 1, 132, 212, 7, 3, 1, 132, 212, 7, 3, 1, 234, 238, 246, 198, 7, 3, 1, + 161, 2, 238, 28, 7, 3, 1, 209, 255, 57, 2, 240, 133, 7, 3, 1, 130, 2, + 184, 246, 174, 235, 57, 7, 1, 3, 6, 209, 72, 7, 231, 195, 3, 1, 254, 192, + 52, 1, 6, 196, 70, 6, 1, 241, 93, 70, 3, 1, 241, 93, 70, 6, 1, 242, 20, + 70, 3, 1, 242, 20, 70, 6, 1, 237, 61, 70, 3, 1, 237, 61, 70, 6, 1, 237, + 237, 70, 3, 1, 237, 237, 70, 6, 1, 247, 73, 70, 3, 1, 247, 73, 70, 6, 1, + 248, 165, 70, 3, 1, 248, 165, 70, 6, 1, 242, 37, 70, 3, 1, 242, 37, 70, + 6, 1, 241, 150, 70, 3, 1, 241, 150, 70, 6, 1, 235, 223, 70, 3, 1, 235, + 223, 70, 6, 1, 238, 11, 70, 3, 1, 238, 11, 70, 6, 1, 240, 255, 70, 3, 1, + 240, 255, 70, 6, 1, 238, 19, 70, 3, 1, 238, 19, 70, 6, 1, 252, 239, 70, + 3, 1, 252, 239, 70, 6, 1, 252, 248, 70, 3, 1, 252, 248, 70, 6, 1, 247, + 83, 70, 3, 1, 247, 83, 70, 6, 1, 73, 70, 3, 1, 73, 70, 6, 1, 252, 223, + 70, 3, 1, 252, 223, 70, 6, 1, 252, 246, 70, 3, 1, 252, 246, 70, 6, 1, + 241, 74, 70, 3, 1, 241, 74, 70, 6, 1, 246, 212, 70, 3, 1, 246, 212, 70, + 6, 1, 253, 197, 70, 3, 1, 253, 197, 70, 6, 1, 253, 88, 70, 3, 1, 253, 88, + 70, 6, 1, 247, 157, 70, 3, 1, 247, 157, 70, 6, 1, 246, 204, 70, 3, 1, + 246, 204, 70, 6, 1, 247, 98, 70, 3, 1, 247, 98, 70, 6, 1, 231, 216, 240, + 174, 70, 3, 1, 231, 216, 240, 174, 70, 6, 1, 84, 70, 246, 224, 70, 3, 1, + 84, 70, 246, 224, 70, 6, 1, 227, 191, 247, 73, 70, 3, 1, 227, 191, 247, + 73, 70, 6, 1, 231, 216, 240, 255, 70, 3, 1, 231, 216, 240, 255, 70, 6, 1, + 231, 216, 252, 248, 70, 3, 1, 231, 216, 252, 248, 70, 6, 1, 227, 191, + 252, 248, 70, 3, 1, 227, 191, 252, 248, 70, 6, 1, 84, 70, 247, 98, 70, 3, + 1, 84, 70, 247, 98, 70, 6, 1, 237, 143, 70, 3, 1, 237, 143, 70, 6, 1, + 235, 117, 240, 212, 70, 3, 1, 235, 117, 240, 212, 70, 6, 1, 84, 70, 240, + 212, 70, 3, 1, 84, 70, 240, 212, 70, 6, 1, 84, 70, 246, 232, 70, 3, 1, + 84, 70, 246, 232, 70, 6, 1, 233, 184, 241, 1, 70, 3, 1, 233, 184, 241, 1, + 70, 6, 1, 231, 216, 240, 209, 70, 3, 1, 231, 216, 240, 209, 70, 6, 1, 84, + 70, 240, 209, 70, 3, 1, 84, 70, 240, 209, 70, 6, 1, 84, 70, 154, 70, 3, + 1, 84, 70, 154, 70, 6, 1, 233, 213, 154, 70, 3, 1, 233, 213, 154, 70, 6, + 1, 84, 70, 248, 59, 70, 3, 1, 84, 70, 248, 59, 70, 6, 1, 84, 70, 247, + 147, 70, 3, 1, 84, 70, 247, 147, 70, 6, 1, 84, 70, 235, 93, 70, 3, 1, 84, + 70, 235, 93, 70, 6, 1, 84, 70, 248, 29, 70, 3, 1, 84, 70, 248, 29, 70, 6, + 1, 84, 70, 237, 146, 70, 3, 1, 84, 70, 237, 146, 70, 6, 1, 84, 237, 92, + 237, 146, 70, 3, 1, 84, 237, 92, 237, 146, 70, 6, 1, 84, 237, 92, 247, + 182, 70, 3, 1, 84, 237, 92, 247, 182, 70, 6, 1, 84, 237, 92, 247, 44, 70, + 3, 1, 84, 237, 92, 247, 44, 70, 6, 1, 84, 237, 92, 247, 225, 70, 3, 1, + 84, 237, 92, 247, 225, 70, 14, 248, 78, 70, 14, 255, 11, 252, 246, 70, + 14, 254, 200, 252, 246, 70, 14, 234, 230, 70, 14, 254, 155, 252, 246, 70, + 14, 254, 80, 252, 246, 70, 14, 245, 167, 241, 74, 70, 84, 237, 92, 246, + 162, 240, 121, 70, 84, 237, 92, 237, 242, 233, 82, 76, 70, 84, 237, 92, + 234, 128, 233, 82, 76, 70, 84, 237, 92, 242, 19, 233, 140, 70, 233, 76, + 168, 240, 170, 70, 246, 162, 240, 121, 70, 227, 255, 233, 140, 87, 3, 1, + 253, 5, 87, 3, 1, 247, 121, 87, 3, 1, 247, 32, 87, 3, 1, 247, 131, 87, 3, + 1, 252, 232, 87, 3, 1, 247, 222, 87, 3, 1, 247, 237, 87, 3, 1, 247, 209, + 87, 3, 1, 253, 79, 87, 3, 1, 247, 39, 87, 3, 1, 247, 167, 87, 3, 1, 247, + 4, 87, 3, 1, 247, 92, 87, 3, 1, 253, 106, 87, 3, 1, 247, 187, 87, 3, 1, + 241, 90, 87, 3, 1, 247, 194, 87, 3, 1, 247, 49, 87, 3, 1, 247, 56, 87, 3, + 1, 253, 121, 87, 3, 1, 241, 61, 87, 3, 1, 241, 46, 87, 3, 1, 241, 39, 87, + 3, 1, 247, 193, 87, 3, 1, 240, 203, 87, 3, 1, 241, 32, 87, 3, 1, 246, + 241, 87, 3, 1, 247, 153, 87, 3, 1, 247, 125, 87, 3, 1, 241, 31, 87, 3, 1, + 247, 228, 87, 3, 1, 241, 44, 87, 3, 1, 247, 145, 87, 3, 1, 252, 252, 87, + 3, 1, 247, 81, 87, 3, 1, 252, 250, 87, 3, 1, 247, 146, 87, 3, 1, 247, + 150, 221, 1, 191, 221, 1, 252, 134, 221, 1, 246, 75, 221, 1, 252, 137, + 221, 1, 240, 94, 221, 1, 237, 230, 235, 143, 248, 196, 221, 1, 248, 196, + 221, 1, 252, 135, 221, 1, 246, 78, 221, 1, 246, 77, 221, 1, 240, 93, 221, + 1, 252, 148, 221, 1, 252, 136, 221, 1, 247, 231, 221, 1, 237, 122, 247, + 231, 221, 1, 240, 95, 221, 1, 247, 230, 221, 1, 237, 230, 235, 143, 247, + 230, 221, 1, 237, 122, 247, 230, 221, 1, 246, 80, 221, 1, 247, 117, 221, + 1, 242, 28, 221, 1, 237, 122, 242, 28, 221, 1, 248, 198, 221, 1, 237, + 122, 248, 198, 221, 1, 253, 28, 221, 1, 241, 86, 221, 1, 235, 240, 241, + 86, 221, 1, 237, 122, 241, 86, 221, 1, 252, 138, 221, 1, 252, 139, 221, + 1, 248, 197, 221, 1, 237, 122, 246, 79, 221, 1, 237, 122, 240, 242, 221, + 1, 252, 140, 221, 1, 252, 233, 221, 1, 252, 141, 221, 1, 246, 81, 221, 1, + 241, 85, 221, 1, 237, 122, 241, 85, 221, 1, 248, 243, 241, 85, 221, 1, + 252, 142, 221, 1, 246, 83, 221, 1, 246, 82, 221, 1, 247, 25, 221, 1, 246, + 84, 221, 1, 246, 76, 221, 1, 246, 85, 221, 1, 252, 143, 221, 1, 252, 144, + 221, 1, 252, 145, 221, 1, 248, 199, 221, 1, 231, 176, 248, 199, 221, 1, + 246, 86, 221, 52, 1, 227, 249, 76, 25, 4, 250, 227, 25, 4, 251, 21, 25, + 4, 251, 187, 25, 4, 251, 230, 25, 4, 245, 170, 25, 4, 249, 125, 25, 4, + 252, 26, 25, 4, 249, 162, 25, 4, 251, 69, 25, 4, 245, 25, 25, 4, 235, 31, + 253, 253, 25, 4, 252, 184, 25, 4, 249, 202, 25, 4, 243, 43, 25, 4, 250, + 136, 25, 4, 245, 246, 25, 4, 242, 251, 25, 4, 245, 70, 25, 4, 251, 113, + 25, 4, 243, 140, 25, 4, 243, 142, 25, 4, 238, 245, 25, 4, 243, 141, 25, + 4, 246, 190, 25, 4, 247, 204, 25, 4, 247, 202, 25, 4, 245, 196, 25, 4, + 245, 200, 25, 4, 248, 166, 25, 4, 247, 203, 25, 4, 249, 146, 25, 4, 249, + 150, 25, 4, 249, 148, 25, 4, 242, 236, 25, 4, 242, 237, 25, 4, 249, 147, + 25, 4, 249, 149, 25, 4, 248, 214, 25, 4, 248, 218, 25, 4, 248, 216, 25, + 4, 246, 136, 25, 4, 246, 140, 25, 4, 248, 215, 25, 4, 248, 217, 25, 4, + 242, 238, 25, 4, 242, 241, 25, 4, 242, 239, 25, 4, 238, 139, 25, 4, 238, + 140, 25, 4, 241, 30, 25, 4, 242, 240, 25, 4, 251, 157, 25, 4, 251, 164, + 25, 4, 251, 159, 25, 4, 245, 108, 25, 4, 245, 109, 25, 4, 251, 158, 25, + 4, 251, 160, 25, 4, 250, 199, 25, 4, 250, 203, 25, 4, 250, 201, 25, 4, + 244, 81, 25, 4, 244, 82, 25, 4, 250, 200, 25, 4, 250, 202, 25, 4, 252, + 125, 25, 4, 252, 132, 25, 4, 252, 127, 25, 4, 246, 70, 25, 4, 246, 71, + 25, 4, 252, 126, 25, 4, 252, 128, 25, 4, 250, 53, 25, 4, 250, 58, 25, 4, + 250, 56, 25, 4, 243, 165, 25, 4, 243, 166, 25, 4, 250, 54, 25, 4, 250, + 57, 36, 28, 1, 253, 73, 36, 28, 1, 253, 95, 36, 28, 1, 247, 13, 36, 28, + 1, 253, 20, 36, 28, 1, 246, 251, 36, 28, 1, 253, 46, 36, 28, 1, 177, 36, + 28, 1, 253, 58, 36, 28, 1, 253, 87, 36, 28, 1, 252, 232, 36, 28, 1, 73, + 36, 28, 1, 253, 0, 36, 28, 1, 253, 99, 36, 28, 1, 253, 116, 36, 28, 1, + 253, 9, 36, 28, 1, 154, 36, 28, 1, 246, 248, 36, 28, 1, 246, 217, 36, 28, + 1, 246, 165, 36, 28, 1, 237, 215, 36, 28, 1, 240, 226, 36, 28, 1, 238, + 206, 36, 28, 1, 57, 36, 28, 1, 253, 77, 36, 28, 1, 237, 201, 36, 28, 1, + 231, 254, 253, 137, 36, 28, 1, 247, 25, 36, 28, 1, 252, 233, 36, 28, 1, + 233, 93, 57, 36, 28, 1, 237, 102, 246, 183, 36, 28, 1, 253, 47, 246, 183, + 36, 28, 1, 233, 93, 253, 47, 246, 183, 41, 240, 117, 228, 186, 235, 70, + 41, 240, 117, 237, 50, 228, 186, 235, 70, 42, 228, 186, 104, 41, 228, + 186, 104, 42, 237, 50, 228, 186, 104, 41, 237, 50, 228, 186, 104, 237, + 105, 227, 206, 235, 70, 237, 105, 237, 50, 227, 206, 235, 70, 237, 50, + 227, 199, 235, 70, 42, 227, 199, 104, 41, 227, 199, 104, 237, 105, 235, + 27, 42, 237, 105, 233, 223, 104, 41, 237, 105, 233, 223, 104, 232, 177, + 234, 36, 228, 203, 237, 251, 228, 203, 200, 237, 251, 228, 203, 227, 243, + 237, 50, 236, 172, 231, 191, 235, 146, 235, 18, 235, 146, 237, 50, 227, + 133, 237, 98, 47, 235, 78, 235, 69, 233, 70, 228, 213, 251, 102, 235, + 155, 238, 10, 2, 219, 240, 128, 2, 246, 174, 46, 42, 184, 230, 192, 104, + 41, 184, 230, 192, 104, 240, 128, 2, 56, 46, 240, 128, 2, 56, 51, 42, 61, + 252, 219, 2, 237, 190, 41, 61, 252, 219, 2, 237, 190, 252, 228, 42, 132, + 104, 252, 228, 41, 132, 104, 237, 59, 42, 132, 104, 237, 59, 41, 132, + 104, 42, 233, 116, 97, 104, 41, 233, 116, 97, 104, 42, 47, 228, 180, 41, + 47, 228, 180, 135, 197, 107, 168, 56, 228, 182, 168, 56, 107, 135, 197, + 228, 182, 235, 51, 246, 160, 56, 228, 182, 246, 159, 56, 76, 200, 233, + 82, 76, 61, 205, 246, 174, 237, 209, 9, 29, 236, 200, 9, 29, 237, 198, 9, + 29, 237, 145, 118, 9, 29, 237, 145, 113, 9, 29, 237, 145, 166, 9, 29, + 236, 186, 9, 29, 246, 231, 9, 29, 238, 70, 9, 29, 241, 174, 118, 9, 29, + 241, 174, 113, 9, 29, 229, 197, 9, 29, 241, 232, 9, 29, 3, 118, 9, 29, 3, + 113, 9, 29, 247, 85, 118, 9, 29, 247, 85, 113, 9, 29, 247, 85, 166, 9, + 29, 247, 85, 158, 9, 29, 240, 7, 9, 29, 235, 225, 9, 29, 241, 248, 118, + 9, 29, 241, 248, 113, 9, 29, 240, 196, 118, 9, 29, 240, 196, 113, 9, 29, + 240, 251, 9, 29, 247, 196, 9, 29, 238, 149, 9, 29, 247, 54, 9, 29, 240, + 211, 9, 29, 237, 240, 9, 29, 236, 159, 9, 29, 232, 97, 9, 29, 242, 23, + 118, 9, 29, 242, 23, 113, 9, 29, 240, 207, 9, 29, 254, 2, 118, 9, 29, + 254, 2, 113, 9, 29, 230, 149, 132, 248, 180, 238, 76, 9, 29, 247, 127, 9, + 29, 248, 31, 9, 29, 241, 163, 9, 29, 247, 255, 106, 237, 199, 9, 29, 248, + 36, 9, 29, 238, 65, 118, 9, 29, 238, 65, 113, 9, 29, 235, 109, 9, 29, + 241, 73, 9, 29, 228, 181, 241, 73, 9, 29, 253, 154, 118, 9, 29, 253, 154, + 113, 9, 29, 253, 154, 166, 9, 29, 253, 154, 158, 9, 29, 244, 121, 9, 29, + 238, 50, 9, 29, 247, 195, 9, 29, 248, 35, 9, 29, 248, 123, 9, 29, 241, + 105, 118, 9, 29, 241, 105, 113, 9, 29, 241, 189, 9, 29, 235, 192, 9, 29, + 241, 41, 118, 9, 29, 241, 41, 113, 9, 29, 241, 41, 166, 9, 29, 238, 74, + 9, 29, 233, 194, 9, 29, 246, 184, 118, 9, 29, 246, 184, 113, 9, 29, 228, + 181, 247, 50, 9, 29, 230, 149, 240, 179, 9, 29, 240, 179, 9, 29, 228, + 181, 235, 215, 9, 29, 228, 181, 238, 52, 9, 29, 241, 38, 9, 29, 228, 181, + 241, 108, 9, 29, 230, 149, 242, 21, 9, 29, 247, 224, 118, 9, 29, 247, + 224, 113, 9, 29, 241, 110, 9, 29, 228, 181, 241, 40, 9, 29, 182, 118, 9, + 29, 182, 113, 9, 29, 228, 181, 241, 4, 9, 29, 228, 181, 241, 137, 9, 29, + 241, 195, 118, 9, 29, 241, 195, 113, 9, 29, 241, 219, 9, 29, 241, 102, 9, + 29, 228, 181, 238, 71, 233, 171, 9, 29, 228, 181, 241, 179, 9, 29, 228, + 181, 240, 199, 9, 29, 228, 181, 248, 38, 9, 29, 253, 175, 118, 9, 29, + 253, 175, 113, 9, 29, 253, 175, 166, 9, 29, 228, 181, 247, 136, 9, 29, + 240, 228, 9, 29, 228, 181, 238, 8, 9, 29, 241, 103, 9, 29, 238, 0, 9, 29, + 228, 181, 241, 130, 9, 29, 228, 181, 241, 27, 9, 29, 228, 181, 241, 231, + 9, 29, 230, 149, 237, 224, 9, 29, 230, 149, 235, 232, 9, 29, 228, 181, + 241, 134, 9, 29, 228, 191, 241, 37, 9, 29, 228, 181, 241, 37, 9, 29, 228, + 191, 237, 221, 9, 29, 228, 181, 237, 221, 9, 29, 228, 191, 235, 74, 9, + 29, 228, 181, 235, 74, 9, 29, 235, 105, 9, 29, 228, 191, 235, 105, 9, 29, + 228, 181, 235, 105, 49, 29, 118, 49, 29, 240, 138, 49, 29, 246, 164, 49, + 29, 237, 84, 49, 29, 236, 213, 49, 29, 88, 49, 29, 113, 49, 29, 248, 92, + 49, 29, 247, 4, 49, 29, 244, 93, 49, 29, 238, 202, 49, 29, 187, 49, 29, + 103, 246, 231, 49, 29, 238, 162, 49, 29, 248, 66, 49, 29, 238, 70, 49, + 29, 246, 157, 246, 231, 49, 29, 239, 72, 49, 29, 238, 36, 49, 29, 246, + 59, 49, 29, 240, 13, 49, 29, 41, 246, 157, 246, 231, 49, 29, 239, 9, 230, + 164, 49, 29, 246, 179, 49, 29, 229, 197, 49, 29, 241, 232, 49, 29, 237, + 198, 49, 29, 234, 199, 49, 29, 238, 90, 49, 29, 238, 26, 49, 29, 230, + 164, 49, 29, 237, 99, 49, 29, 234, 216, 49, 29, 253, 76, 49, 29, 255, 27, + 236, 233, 49, 29, 234, 99, 49, 29, 249, 119, 49, 29, 237, 225, 49, 29, + 237, 235, 49, 29, 245, 119, 49, 29, 244, 8, 49, 29, 237, 216, 49, 29, + 244, 89, 49, 29, 236, 37, 49, 29, 236, 239, 49, 29, 231, 255, 49, 29, + 239, 224, 49, 29, 246, 58, 49, 29, 234, 176, 49, 29, 237, 13, 49, 29, + 249, 208, 49, 29, 240, 125, 235, 225, 49, 29, 237, 50, 237, 198, 49, 29, + 182, 236, 243, 49, 29, 135, 239, 5, 49, 29, 239, 250, 49, 29, 247, 68, + 49, 29, 240, 8, 49, 29, 234, 23, 49, 29, 245, 218, 49, 29, 237, 204, 49, + 29, 234, 116, 49, 29, 243, 78, 49, 29, 240, 251, 49, 29, 235, 155, 49, + 29, 247, 196, 49, 29, 236, 211, 49, 29, 236, 51, 49, 29, 247, 244, 49, + 29, 235, 27, 49, 29, 247, 184, 49, 29, 247, 54, 49, 29, 251, 214, 49, 29, + 240, 211, 49, 29, 241, 81, 49, 29, 244, 86, 49, 29, 240, 121, 49, 29, + 237, 240, 49, 29, 237, 28, 49, 29, 254, 246, 247, 184, 49, 29, 234, 33, + 49, 29, 248, 40, 49, 29, 243, 12, 49, 29, 240, 21, 49, 29, 237, 168, 49, + 29, 240, 207, 49, 29, 243, 13, 49, 29, 236, 75, 49, 29, 47, 254, 184, 49, + 29, 132, 248, 180, 238, 76, 49, 29, 240, 2, 49, 29, 243, 106, 49, 29, + 247, 127, 49, 29, 248, 31, 49, 29, 233, 0, 49, 29, 241, 163, 49, 29, 239, + 102, 49, 29, 245, 252, 49, 29, 240, 24, 49, 29, 244, 103, 49, 29, 252, + 65, 49, 29, 238, 216, 49, 29, 247, 255, 106, 237, 199, 49, 29, 233, 26, + 49, 29, 237, 50, 245, 240, 49, 29, 237, 90, 49, 29, 245, 188, 49, 29, + 240, 156, 49, 29, 248, 36, 49, 29, 238, 64, 49, 29, 58, 49, 29, 240, 22, + 49, 29, 236, 237, 49, 29, 240, 46, 49, 29, 238, 252, 49, 29, 242, 234, + 49, 29, 240, 19, 49, 29, 235, 109, 49, 29, 245, 115, 49, 29, 241, 73, 49, + 29, 250, 126, 49, 29, 251, 51, 49, 29, 238, 50, 49, 29, 234, 102, 49, 29, + 248, 123, 49, 29, 246, 230, 49, 29, 245, 78, 49, 29, 247, 135, 49, 29, + 238, 132, 49, 29, 241, 189, 49, 29, 232, 231, 49, 29, 241, 233, 49, 29, + 235, 251, 49, 29, 235, 192, 49, 29, 235, 142, 49, 29, 236, 176, 49, 29, + 242, 211, 49, 29, 233, 31, 49, 29, 238, 158, 49, 29, 238, 254, 49, 29, + 238, 74, 49, 29, 236, 113, 49, 29, 238, 127, 49, 29, 247, 224, 230, 164, + 49, 29, 233, 194, 49, 29, 246, 55, 49, 29, 247, 50, 49, 29, 240, 179, 49, + 29, 235, 215, 49, 29, 237, 20, 49, 29, 242, 196, 49, 29, 251, 109, 49, + 29, 236, 4, 49, 29, 238, 52, 49, 29, 251, 176, 49, 29, 251, 195, 49, 29, + 241, 38, 49, 29, 242, 212, 49, 29, 241, 108, 49, 29, 236, 12, 49, 29, + 234, 164, 49, 29, 242, 21, 49, 29, 241, 110, 49, 29, 241, 84, 49, 29, + 228, 241, 49, 29, 235, 7, 49, 29, 241, 40, 49, 29, 241, 4, 49, 29, 241, + 137, 49, 29, 239, 120, 49, 29, 240, 1, 49, 29, 240, 125, 240, 27, 241, + 27, 49, 29, 241, 219, 49, 29, 241, 102, 49, 29, 240, 88, 49, 29, 240, + 223, 49, 29, 233, 171, 49, 29, 238, 71, 233, 171, 49, 29, 244, 92, 49, + 29, 240, 9, 49, 29, 241, 179, 49, 29, 240, 199, 49, 29, 248, 38, 49, 29, + 247, 136, 49, 29, 240, 228, 49, 29, 232, 194, 49, 29, 238, 8, 49, 29, + 241, 103, 49, 29, 245, 237, 49, 29, 243, 169, 49, 29, 238, 218, 49, 29, + 230, 98, 241, 84, 49, 29, 232, 16, 49, 29, 238, 0, 49, 29, 241, 130, 49, + 29, 241, 27, 49, 29, 241, 231, 49, 29, 241, 119, 49, 29, 237, 224, 49, + 29, 243, 171, 49, 29, 235, 232, 49, 29, 236, 156, 49, 29, 237, 45, 49, + 29, 230, 54, 49, 29, 241, 134, 49, 29, 237, 9, 49, 29, 243, 81, 49, 29, + 248, 146, 49, 29, 244, 251, 49, 29, 241, 37, 49, 29, 237, 221, 49, 29, + 235, 74, 49, 29, 235, 105, 49, 29, 237, 250, 90, 229, 168, 116, 42, 180, + 237, 41, 90, 229, 168, 116, 64, 180, 51, 90, 229, 168, 116, 42, 180, 237, + 44, 22, 237, 41, 90, 229, 168, 116, 64, 180, 237, 44, 22, 51, 90, 229, + 168, 116, 246, 162, 233, 45, 90, 229, 168, 116, 233, 137, 246, 172, 46, + 90, 229, 168, 116, 233, 137, 246, 172, 51, 90, 229, 168, 116, 233, 137, + 246, 172, 240, 132, 90, 229, 168, 116, 233, 137, 246, 172, 240, 116, 240, + 132, 90, 229, 168, 116, 233, 137, 246, 172, 240, 116, 237, 41, 90, 229, + 168, 116, 233, 137, 246, 172, 203, 240, 132, 90, 229, 168, 116, 232, 236, + 90, 237, 69, 90, 237, 67, 90, 246, 162, 240, 121, 243, 72, 76, 234, 133, + 231, 85, 233, 242, 98, 90, 231, 225, 76, 90, 235, 113, 76, 90, 65, 240, + 126, 42, 240, 117, 104, 41, 240, 117, 104, 42, 47, 240, 117, 104, 41, 47, + 240, 117, 104, 42, 237, 79, 104, 41, 237, 79, 104, 42, 63, 237, 79, 104, + 41, 63, 237, 79, 104, 42, 86, 230, 137, 104, 41, 86, 230, 137, 104, 237, + 210, 76, 250, 26, 76, 42, 233, 89, 240, 158, 104, 41, 233, 89, 240, 158, + 104, 42, 63, 230, 137, 104, 41, 63, 230, 137, 104, 42, 63, 233, 89, 240, + 158, 104, 41, 63, 233, 89, 240, 158, 104, 42, 63, 37, 104, 41, 63, 37, + 104, 247, 23, 240, 151, 200, 47, 241, 64, 231, 199, 76, 47, 241, 64, 231, + 199, 76, 184, 47, 241, 64, 231, 199, 76, 237, 210, 165, 240, 223, 233, + 97, 207, 118, 233, 97, 207, 113, 233, 97, 207, 166, 233, 97, 207, 158, + 233, 97, 207, 173, 233, 97, 207, 183, 233, 97, 207, 194, 233, 97, 207, + 187, 233, 97, 207, 192, 90, 244, 94, 206, 76, 90, 237, 115, 206, 76, 90, + 231, 249, 206, 76, 90, 234, 97, 206, 76, 26, 237, 62, 56, 206, 76, 26, + 47, 56, 206, 76, 246, 239, 240, 151, 61, 247, 40, 237, 120, 76, 61, 247, + 40, 237, 120, 2, 237, 107, 240, 181, 76, 61, 247, 40, 237, 120, 165, 240, + 116, 240, 170, 61, 247, 40, 237, 120, 2, 237, 107, 240, 181, 165, 240, + 116, 240, 170, 61, 247, 40, 237, 120, 165, 203, 240, 170, 33, 237, 210, + 76, 90, 167, 246, 167, 249, 241, 231, 247, 98, 233, 97, 207, 246, 179, + 233, 97, 207, 235, 52, 233, 97, 207, 235, 80, 61, 90, 231, 225, 76, 250, + 249, 76, 248, 128, 229, 226, 76, 90, 38, 230, 156, 90, 132, 249, 249, + 237, 69, 126, 1, 3, 57, 126, 1, 57, 126, 1, 3, 74, 126, 1, 74, 126, 1, 3, + 66, 126, 1, 66, 126, 1, 3, 72, 126, 1, 72, 126, 1, 3, 73, 126, 1, 73, + 126, 1, 177, 126, 1, 252, 205, 126, 1, 253, 7, 126, 1, 253, 39, 126, 1, + 253, 34, 126, 1, 253, 40, 126, 1, 253, 6, 126, 1, 253, 103, 126, 1, 253, + 33, 126, 1, 253, 76, 126, 1, 252, 204, 126, 1, 252, 226, 126, 1, 253, 24, + 126, 1, 253, 72, 126, 1, 253, 26, 126, 1, 253, 97, 126, 1, 253, 52, 126, + 1, 253, 46, 126, 1, 253, 25, 126, 1, 253, 65, 126, 1, 252, 202, 126, 1, + 252, 203, 126, 1, 253, 44, 126, 1, 253, 12, 126, 1, 3, 253, 18, 126, 1, + 253, 18, 126, 1, 253, 31, 126, 1, 253, 9, 126, 1, 253, 20, 126, 1, 96, + 126, 1, 253, 57, 126, 1, 252, 201, 126, 1, 252, 248, 126, 1, 252, 227, + 126, 1, 252, 247, 126, 1, 253, 8, 126, 1, 154, 126, 1, 252, 211, 126, 1, + 213, 126, 1, 253, 41, 126, 1, 253, 30, 126, 1, 252, 223, 126, 1, 253, 59, + 126, 1, 253, 48, 126, 1, 253, 82, 126, 1, 252, 252, 126, 1, 253, 73, 126, + 1, 253, 0, 126, 1, 253, 21, 126, 1, 253, 98, 126, 1, 253, 50, 126, 1, + 198, 126, 1, 252, 239, 126, 1, 252, 229, 126, 1, 253, 13, 126, 1, 253, + 14, 126, 1, 3, 191, 126, 1, 191, 126, 1, 3, 252, 233, 126, 1, 252, 233, + 126, 1, 3, 252, 251, 126, 1, 252, 251, 126, 1, 208, 126, 1, 253, 37, 126, + 1, 253, 3, 126, 1, 253, 36, 126, 1, 252, 246, 126, 1, 3, 252, 208, 126, + 1, 252, 208, 126, 1, 253, 27, 126, 1, 252, 250, 126, 1, 253, 10, 126, 1, + 199, 126, 1, 253, 139, 126, 1, 3, 177, 126, 1, 3, 253, 6, 36, 222, 252, + 237, 107, 240, 181, 76, 36, 222, 252, 229, 189, 240, 181, 76, 222, 252, + 237, 107, 240, 181, 76, 222, 252, 229, 189, 240, 181, 76, 126, 231, 225, + 76, 126, 237, 107, 231, 225, 76, 126, 235, 90, 246, 95, 222, 252, 47, + 235, 69, 48, 1, 3, 57, 48, 1, 57, 48, 1, 3, 74, 48, 1, 74, 48, 1, 3, 66, + 48, 1, 66, 48, 1, 3, 72, 48, 1, 72, 48, 1, 3, 73, 48, 1, 73, 48, 1, 177, + 48, 1, 252, 205, 48, 1, 253, 7, 48, 1, 253, 39, 48, 1, 253, 34, 48, 1, + 253, 40, 48, 1, 253, 6, 48, 1, 253, 103, 48, 1, 253, 33, 48, 1, 253, 76, + 48, 1, 252, 204, 48, 1, 252, 226, 48, 1, 253, 24, 48, 1, 253, 72, 48, 1, + 253, 26, 48, 1, 253, 97, 48, 1, 253, 52, 48, 1, 253, 46, 48, 1, 253, 25, + 48, 1, 253, 65, 48, 1, 252, 202, 48, 1, 252, 203, 48, 1, 253, 44, 48, 1, + 253, 12, 48, 1, 3, 253, 18, 48, 1, 253, 18, 48, 1, 253, 31, 48, 1, 253, + 9, 48, 1, 253, 20, 48, 1, 96, 48, 1, 253, 57, 48, 1, 252, 201, 48, 1, + 252, 248, 48, 1, 252, 227, 48, 1, 252, 247, 48, 1, 253, 8, 48, 1, 154, + 48, 1, 252, 211, 48, 1, 213, 48, 1, 253, 41, 48, 1, 253, 30, 48, 1, 252, + 223, 48, 1, 253, 59, 48, 1, 253, 48, 48, 1, 253, 82, 48, 1, 252, 252, 48, + 1, 253, 73, 48, 1, 253, 0, 48, 1, 253, 21, 48, 1, 253, 98, 48, 1, 253, + 50, 48, 1, 198, 48, 1, 252, 239, 48, 1, 252, 229, 48, 1, 253, 13, 48, 1, + 253, 14, 48, 1, 3, 191, 48, 1, 191, 48, 1, 3, 252, 233, 48, 1, 252, 233, + 48, 1, 3, 252, 251, 48, 1, 252, 251, 48, 1, 208, 48, 1, 253, 37, 48, 1, + 253, 3, 48, 1, 253, 36, 48, 1, 252, 246, 48, 1, 3, 252, 208, 48, 1, 252, + 208, 48, 1, 253, 27, 48, 1, 252, 250, 48, 1, 253, 10, 48, 1, 199, 48, 1, + 253, 139, 48, 1, 3, 177, 48, 1, 3, 253, 6, 48, 1, 252, 243, 48, 1, 253, + 138, 48, 1, 253, 95, 48, 1, 253, 108, 48, 237, 44, 246, 164, 222, 252, + 232, 39, 240, 181, 76, 48, 231, 225, 76, 48, 237, 107, 231, 225, 76, 48, + 235, 90, 244, 64, 176, 1, 254, 185, 176, 1, 254, 187, 176, 1, 185, 176, + 1, 254, 191, 176, 1, 222, 222, 176, 1, 254, 183, 176, 1, 199, 176, 1, + 149, 176, 1, 214, 176, 1, 254, 186, 176, 1, 212, 176, 1, 254, 192, 176, + 1, 254, 196, 176, 1, 254, 184, 176, 1, 254, 178, 176, 1, 253, 211, 176, + 1, 253, 160, 176, 1, 146, 176, 1, 254, 193, 176, 1, 254, 194, 176, 1, + 193, 176, 1, 57, 176, 1, 73, 176, 1, 72, 176, 1, 253, 144, 176, 1, 252, + 221, 176, 1, 253, 176, 176, 1, 252, 222, 176, 1, 253, 119, 176, 1, 253, + 5, 176, 1, 252, 232, 176, 1, 247, 9, 176, 1, 247, 0, 176, 1, 253, 99, + 176, 1, 74, 176, 1, 66, 176, 1, 253, 233, 176, 1, 196, 176, 1, 253, 69, + 176, 1, 254, 61, 176, 1, 253, 230, 26, 1, 235, 77, 26, 1, 228, 195, 26, + 1, 228, 199, 26, 1, 237, 139, 26, 1, 228, 201, 26, 1, 228, 202, 26, 1, + 235, 81, 26, 1, 228, 209, 26, 1, 237, 142, 26, 1, 227, 197, 26, 1, 228, + 204, 26, 1, 228, 205, 26, 1, 229, 188, 26, 1, 227, 140, 26, 1, 227, 139, + 26, 1, 228, 193, 26, 1, 237, 137, 26, 1, 237, 141, 26, 1, 229, 193, 26, + 1, 229, 180, 26, 1, 240, 213, 26, 1, 230, 159, 26, 1, 237, 134, 26, 1, + 237, 130, 26, 1, 229, 191, 26, 1, 233, 128, 26, 1, 233, 131, 26, 1, 233, + 138, 26, 1, 233, 133, 26, 1, 237, 133, 26, 1, 57, 26, 1, 253, 4, 26, 1, + 191, 26, 1, 247, 61, 26, 1, 253, 177, 26, 1, 72, 26, 1, 247, 232, 26, 1, + 253, 96, 26, 1, 73, 26, 1, 252, 208, 26, 1, 247, 223, 26, 1, 253, 15, 26, + 1, 252, 251, 26, 1, 66, 26, 1, 247, 227, 26, 1, 252, 250, 26, 1, 253, 27, + 26, 1, 252, 233, 26, 1, 253, 100, 26, 1, 253, 28, 26, 1, 74, 26, 235, 92, + 26, 1, 229, 219, 26, 1, 227, 196, 26, 1, 229, 204, 26, 1, 227, 144, 26, + 1, 222, 241, 26, 1, 227, 210, 26, 1, 222, 253, 26, 1, 227, 151, 26, 1, + 222, 242, 26, 1, 228, 200, 26, 1, 229, 200, 26, 1, 227, 143, 26, 1, 227, + 137, 26, 1, 227, 208, 26, 1, 227, 209, 26, 1, 222, 239, 26, 1, 222, 240, + 26, 1, 228, 215, 26, 1, 227, 149, 26, 1, 227, 138, 26, 1, 222, 231, 26, + 1, 228, 207, 26, 1, 229, 216, 26, 1, 228, 208, 26, 1, 229, 190, 26, 1, + 229, 215, 26, 1, 233, 174, 26, 1, 229, 192, 26, 1, 232, 13, 26, 1, 227, + 155, 26, 1, 222, 254, 26, 1, 223, 56, 26, 1, 229, 218, 26, 1, 228, 210, + 26, 1, 238, 83, 26, 1, 235, 233, 26, 1, 242, 31, 26, 1, 235, 234, 26, 1, + 238, 84, 26, 1, 242, 33, 26, 1, 237, 228, 26, 1, 235, 249, 90, 230, 129, + 236, 142, 76, 90, 230, 129, 235, 37, 76, 90, 230, 129, 168, 76, 90, 230, + 129, 135, 76, 90, 230, 129, 152, 76, 90, 230, 129, 246, 160, 76, 90, 230, + 129, 252, 228, 76, 90, 230, 129, 237, 44, 76, 90, 230, 129, 237, 59, 76, + 90, 230, 129, 240, 225, 76, 90, 230, 129, 237, 145, 76, 90, 230, 129, + 240, 239, 76, 90, 230, 129, 237, 182, 76, 90, 230, 129, 239, 7, 76, 90, + 230, 129, 241, 126, 76, 90, 230, 129, 253, 245, 76, 176, 1, 253, 48, 176, + 1, 253, 72, 176, 1, 253, 104, 176, 1, 253, 40, 176, 1, 252, 231, 176, 1, + 249, 228, 176, 1, 252, 220, 176, 1, 248, 124, 176, 1, 253, 149, 176, 1, + 248, 236, 176, 1, 250, 119, 176, 1, 248, 188, 176, 1, 253, 78, 176, 1, + 251, 55, 176, 1, 242, 48, 176, 1, 242, 67, 176, 1, 253, 140, 176, 1, 253, + 128, 176, 1, 251, 98, 176, 1, 244, 10, 176, 35, 1, 254, 187, 176, 35, 1, + 254, 183, 176, 35, 1, 254, 186, 176, 35, 1, 212, 9, 195, 254, 183, 9, + 195, 254, 170, 9, 195, 254, 172, 9, 195, 249, 136, 9, 195, 254, 10, 9, + 195, 250, 109, 9, 195, 250, 106, 9, 195, 253, 226, 9, 195, 243, 253, 9, + 195, 245, 234, 9, 195, 250, 107, 9, 195, 243, 254, 9, 195, 243, 234, 9, + 195, 250, 108, 9, 195, 243, 255, 9, 195, 199, 9, 195, 212, 9, 195, 193, + 9, 195, 254, 187, 9, 195, 254, 150, 9, 195, 222, 222, 9, 195, 253, 228, + 9, 195, 253, 224, 9, 195, 254, 154, 9, 195, 251, 247, 9, 195, 253, 195, + 9, 195, 254, 146, 9, 195, 254, 127, 9, 195, 254, 139, 9, 195, 254, 160, + 9, 195, 252, 2, 9, 195, 251, 246, 9, 195, 243, 252, 9, 195, 239, 36, 9, + 195, 254, 130, 9, 195, 254, 196, 48, 1, 3, 253, 34, 48, 1, 3, 253, 24, + 48, 1, 3, 253, 26, 48, 1, 3, 96, 48, 1, 3, 252, 227, 48, 1, 3, 154, 48, + 1, 3, 253, 41, 48, 1, 3, 253, 59, 48, 1, 3, 252, 252, 48, 1, 3, 253, 21, + 48, 1, 3, 252, 229, 48, 1, 3, 208, 48, 1, 3, 253, 37, 48, 1, 3, 253, 3, + 48, 1, 3, 253, 36, 48, 1, 3, 252, 246, 93, 26, 235, 77, 93, 26, 237, 139, + 93, 26, 235, 81, 93, 26, 237, 142, 93, 26, 237, 137, 93, 26, 237, 141, + 93, 26, 240, 213, 93, 26, 237, 134, 93, 26, 237, 130, 93, 26, 233, 128, + 93, 26, 233, 131, 93, 26, 233, 138, 93, 26, 233, 133, 93, 26, 237, 133, + 93, 26, 238, 14, 57, 93, 26, 241, 202, 57, 93, 26, 238, 75, 57, 93, 26, + 241, 223, 57, 93, 26, 241, 193, 57, 93, 26, 241, 212, 57, 93, 26, 248, + 163, 57, 93, 26, 241, 43, 57, 93, 26, 241, 34, 57, 93, 26, 235, 157, 57, + 93, 26, 235, 183, 57, 93, 26, 235, 224, 57, 93, 26, 235, 199, 57, 93, 26, + 241, 157, 57, 93, 26, 241, 34, 66, 93, 237, 159, 116, 239, 171, 93, 237, + 159, 116, 130, 253, 59, 93, 133, 118, 93, 133, 113, 93, 133, 166, 93, + 133, 158, 93, 133, 173, 93, 133, 183, 93, 133, 194, 93, 133, 187, 93, + 133, 192, 93, 133, 246, 179, 93, 133, 240, 211, 93, 133, 240, 207, 93, + 133, 237, 168, 93, 133, 242, 25, 93, 133, 238, 24, 93, 133, 237, 99, 93, + 133, 247, 54, 93, 133, 238, 66, 93, 133, 241, 151, 93, 133, 233, 238, 93, + 133, 241, 198, 93, 133, 233, 240, 93, 133, 230, 183, 93, 133, 225, 108, + 93, 133, 238, 16, 93, 133, 231, 133, 93, 133, 242, 231, 93, 133, 238, 67, + 93, 133, 230, 197, 93, 133, 229, 198, 93, 133, 232, 42, 93, 133, 232, 14, + 93, 133, 232, 186, 93, 133, 240, 148, 93, 133, 241, 233, 93, 133, 238, + 40, 229, 208, 53, 33, 65, 237, 97, 118, 33, 65, 237, 97, 113, 33, 65, + 237, 97, 166, 33, 65, 237, 97, 158, 33, 65, 237, 97, 173, 33, 65, 237, + 97, 183, 33, 65, 237, 97, 194, 33, 65, 237, 97, 187, 33, 65, 237, 97, + 192, 33, 65, 235, 80, 33, 65, 237, 106, 118, 33, 65, 237, 106, 113, 33, + 65, 237, 106, 166, 33, 65, 237, 106, 158, 33, 65, 237, 106, 173, 33, 26, + 235, 77, 33, 26, 237, 139, 33, 26, 235, 81, 33, 26, 237, 142, 33, 26, + 237, 137, 33, 26, 237, 141, 33, 26, 240, 213, 33, 26, 237, 134, 33, 26, + 237, 130, 33, 26, 233, 128, 33, 26, 233, 131, 33, 26, 233, 138, 33, 26, + 233, 133, 33, 26, 237, 133, 33, 26, 238, 14, 57, 33, 26, 241, 202, 57, + 33, 26, 238, 75, 57, 33, 26, 241, 223, 57, 33, 26, 241, 193, 57, 33, 26, + 241, 212, 57, 33, 26, 248, 163, 57, 33, 26, 241, 43, 57, 33, 26, 241, 34, + 57, 33, 26, 235, 157, 57, 33, 26, 235, 183, 57, 33, 26, 235, 224, 57, 33, + 26, 235, 199, 57, 33, 26, 241, 157, 57, 33, 237, 159, 116, 236, 23, 33, + 237, 159, 116, 239, 53, 33, 26, 241, 43, 66, 237, 159, 233, 242, 98, 33, + 133, 118, 33, 133, 113, 33, 133, 166, 33, 133, 158, 33, 133, 173, 33, + 133, 183, 33, 133, 194, 33, 133, 187, 33, 133, 192, 33, 133, 246, 179, + 33, 133, 240, 211, 33, 133, 240, 207, 33, 133, 237, 168, 33, 133, 242, + 25, 33, 133, 238, 24, 33, 133, 237, 99, 33, 133, 247, 54, 33, 133, 238, + 66, 33, 133, 241, 151, 33, 133, 233, 238, 33, 133, 241, 198, 33, 133, + 233, 240, 33, 133, 230, 183, 33, 133, 225, 108, 33, 133, 238, 16, 33, + 133, 236, 214, 33, 133, 244, 116, 33, 133, 236, 76, 33, 133, 233, 44, 33, + 133, 231, 67, 33, 133, 239, 203, 33, 133, 230, 228, 33, 133, 244, 13, 33, + 133, 240, 148, 33, 133, 243, 20, 33, 133, 234, 37, 33, 133, 243, 177, 33, + 133, 235, 111, 33, 133, 250, 232, 33, 133, 240, 132, 33, 133, 237, 41, + 33, 133, 232, 229, 33, 133, 233, 12, 33, 133, 238, 67, 33, 133, 230, 197, + 33, 133, 229, 198, 33, 133, 232, 42, 33, 133, 232, 14, 33, 133, 239, 143, + 33, 65, 237, 106, 183, 33, 65, 237, 106, 194, 33, 65, 237, 106, 187, 33, + 65, 237, 106, 192, 33, 65, 237, 203, 33, 65, 240, 184, 118, 33, 65, 240, + 184, 113, 33, 65, 240, 184, 166, 33, 65, 240, 184, 158, 33, 65, 240, 184, + 173, 33, 65, 240, 184, 183, 33, 65, 240, 184, 194, 33, 65, 240, 184, 187, + 33, 65, 240, 184, 192, 33, 65, 237, 100, 90, 167, 14, 32, 234, 132, 90, + 167, 14, 32, 232, 185, 90, 167, 14, 32, 239, 98, 90, 167, 14, 32, 238, + 99, 90, 167, 14, 32, 250, 252, 90, 167, 14, 32, 244, 36, 90, 167, 14, 32, + 244, 35, 90, 167, 14, 32, 235, 255, 90, 167, 14, 32, 231, 138, 90, 167, + 14, 32, 234, 174, 90, 167, 14, 32, 232, 235, 90, 167, 14, 32, 232, 108, + 37, 253, 224, 37, 249, 231, 37, 254, 52, 236, 135, 232, 220, 53, 33, 48, + 57, 33, 48, 74, 33, 48, 66, 33, 48, 72, 33, 48, 73, 33, 48, 177, 33, 48, + 253, 7, 33, 48, 253, 34, 33, 48, 253, 6, 33, 48, 253, 33, 33, 48, 252, + 204, 33, 48, 253, 24, 33, 48, 253, 26, 33, 48, 253, 52, 33, 48, 253, 25, + 33, 48, 252, 202, 33, 48, 253, 44, 33, 48, 253, 18, 33, 48, 253, 9, 33, + 48, 96, 33, 48, 252, 201, 33, 48, 252, 248, 33, 48, 252, 227, 33, 48, + 252, 247, 33, 48, 253, 8, 33, 48, 154, 33, 48, 253, 41, 33, 48, 253, 59, + 33, 48, 252, 252, 33, 48, 253, 21, 33, 48, 198, 33, 48, 252, 239, 33, 48, + 252, 229, 33, 48, 253, 13, 33, 48, 253, 14, 33, 48, 191, 33, 48, 252, + 233, 33, 48, 252, 251, 33, 48, 208, 33, 48, 253, 37, 33, 48, 253, 3, 33, + 48, 253, 36, 33, 48, 252, 246, 33, 48, 252, 208, 33, 48, 253, 27, 33, 48, + 252, 250, 33, 48, 253, 10, 37, 235, 248, 37, 235, 253, 37, 238, 96, 37, + 242, 41, 37, 236, 112, 37, 244, 11, 37, 252, 55, 37, 232, 181, 37, 238, + 196, 37, 245, 54, 37, 245, 55, 37, 239, 55, 37, 234, 136, 37, 234, 137, + 37, 238, 234, 37, 238, 233, 37, 243, 149, 37, 238, 248, 37, 236, 127, 37, + 234, 112, 37, 244, 60, 37, 230, 73, 37, 229, 34, 37, 231, 93, 37, 236, + 99, 37, 231, 77, 37, 231, 95, 37, 234, 142, 37, 239, 60, 37, 236, 124, + 37, 239, 73, 37, 234, 212, 37, 233, 17, 37, 234, 223, 37, 239, 241, 37, + 239, 242, 37, 238, 165, 37, 243, 59, 37, 243, 79, 37, 252, 27, 37, 244, + 166, 37, 239, 156, 37, 239, 4, 37, 232, 237, 37, 239, 179, 37, 234, 11, + 37, 231, 119, 37, 236, 187, 37, 245, 75, 37, 242, 208, 37, 232, 204, 37, + 236, 107, 37, 232, 90, 37, 239, 29, 37, 231, 78, 37, 245, 66, 37, 236, + 185, 37, 236, 105, 37, 239, 189, 37, 239, 186, 37, 238, 117, 37, 236, + 190, 37, 236, 14, 37, 248, 64, 37, 239, 202, 37, 239, 26, 37, 243, 232, + 37, 234, 147, 37, 239, 94, 37, 239, 93, 37, 236, 148, 37, 234, 149, 37, + 234, 161, 37, 244, 148, 37, 231, 102, 37, 241, 50, 37, 234, 158, 37, 234, + 157, 37, 240, 91, 37, 240, 92, 37, 246, 99, 37, 234, 209, 37, 245, 117, + 37, 239, 230, 37, 234, 211, 37, 245, 114, 37, 233, 13, 37, 240, 83, 90, + 167, 14, 32, 246, 180, 240, 126, 90, 167, 14, 32, 246, 180, 118, 90, 167, + 14, 32, 246, 180, 113, 90, 167, 14, 32, 246, 180, 166, 90, 167, 14, 32, + 246, 180, 158, 90, 167, 14, 32, 246, 180, 173, 90, 167, 14, 32, 246, 180, + 183, 90, 167, 14, 32, 246, 180, 194, 90, 167, 14, 32, 246, 180, 187, 90, + 167, 14, 32, 246, 180, 192, 90, 167, 14, 32, 246, 180, 246, 179, 90, 167, + 14, 32, 246, 180, 235, 68, 90, 167, 14, 32, 246, 180, 235, 72, 90, 167, + 14, 32, 246, 180, 231, 234, 90, 167, 14, 32, 246, 180, 231, 231, 90, 167, + 14, 32, 246, 180, 233, 141, 90, 167, 14, 32, 246, 180, 233, 135, 90, 167, + 14, 32, 246, 180, 230, 148, 90, 167, 14, 32, 246, 180, 231, 229, 90, 167, + 14, 32, 246, 180, 231, 233, 90, 167, 14, 32, 246, 180, 235, 52, 90, 167, + 14, 32, 246, 180, 229, 224, 90, 167, 14, 32, 246, 180, 229, 225, 90, 167, + 14, 32, 246, 180, 227, 213, 90, 167, 14, 32, 246, 180, 228, 220, 37, 250, + 94, 37, 252, 203, 37, 252, 222, 37, 125, 37, 254, 0, 37, 254, 126, 37, + 254, 45, 37, 255, 4, 233, 91, 37, 255, 4, 237, 152, 37, 253, 233, 37, + 253, 145, 247, 91, 236, 102, 37, 253, 145, 247, 91, 236, 252, 37, 253, + 145, 247, 91, 234, 239, 37, 253, 145, 247, 91, 239, 101, 37, 228, 232, + 37, 254, 242, 242, 56, 37, 252, 201, 37, 254, 207, 57, 37, 198, 37, 177, + 37, 254, 78, 37, 253, 246, 37, 254, 59, 37, 249, 142, 37, 244, 51, 37, + 254, 129, 37, 254, 112, 37, 254, 207, 254, 191, 37, 254, 207, 214, 37, + 254, 101, 37, 253, 240, 37, 253, 228, 37, 250, 165, 37, 251, 11, 37, 250, + 30, 37, 252, 19, 37, 254, 207, 149, 37, 254, 103, 37, 254, 44, 37, 254, + 83, 37, 254, 56, 37, 254, 116, 37, 254, 207, 185, 37, 253, 248, 37, 254, + 39, 37, 254, 84, 37, 255, 12, 233, 91, 37, 255, 3, 233, 91, 37, 255, 68, + 233, 91, 37, 254, 250, 233, 91, 37, 255, 12, 237, 152, 37, 255, 3, 237, + 152, 37, 255, 68, 237, 152, 37, 254, 250, 237, 152, 37, 255, 68, 107, + 193, 37, 255, 68, 107, 255, 59, 233, 91, 37, 213, 37, 248, 85, 37, 248, + 102, 37, 250, 40, 37, 251, 169, 37, 253, 191, 107, 193, 37, 253, 191, + 107, 255, 59, 233, 91, 37, 254, 135, 37, 254, 117, 37, 254, 207, 193, 37, + 254, 104, 37, 254, 136, 37, 253, 251, 37, 254, 207, 196, 37, 254, 106, + 37, 254, 88, 37, 255, 39, 241, 50, 37, 254, 137, 37, 254, 118, 37, 254, + 207, 254, 195, 37, 254, 107, 37, 253, 243, 37, 255, 40, 241, 50, 37, 255, + 67, 248, 120, 37, 255, 68, 248, 120, 37, 253, 140, 37, 254, 35, 37, 254, + 37, 37, 254, 38, 37, 255, 62, 107, 253, 240, 37, 253, 66, 37, 254, 42, + 37, 254, 64, 37, 154, 37, 253, 226, 37, 253, 79, 37, 253, 183, 37, 254, + 250, 234, 26, 37, 254, 85, 37, 254, 94, 37, 254, 95, 37, 250, 228, 37, + 254, 97, 37, 255, 37, 237, 216, 37, 251, 14, 37, 251, 22, 37, 254, 131, + 37, 254, 132, 37, 251, 118, 37, 254, 134, 37, 254, 151, 37, 254, 9, 37, + 254, 169, 37, 255, 69, 107, 185, 37, 102, 107, 185, 90, 167, 14, 32, 252, + 218, 118, 90, 167, 14, 32, 252, 218, 113, 90, 167, 14, 32, 252, 218, 166, + 90, 167, 14, 32, 252, 218, 158, 90, 167, 14, 32, 252, 218, 173, 90, 167, + 14, 32, 252, 218, 183, 90, 167, 14, 32, 252, 218, 194, 90, 167, 14, 32, + 252, 218, 187, 90, 167, 14, 32, 252, 218, 192, 90, 167, 14, 32, 252, 218, + 246, 179, 90, 167, 14, 32, 252, 218, 235, 68, 90, 167, 14, 32, 252, 218, + 235, 72, 90, 167, 14, 32, 252, 218, 231, 234, 90, 167, 14, 32, 252, 218, + 231, 231, 90, 167, 14, 32, 252, 218, 233, 141, 90, 167, 14, 32, 252, 218, + 233, 135, 90, 167, 14, 32, 252, 218, 230, 148, 90, 167, 14, 32, 252, 218, + 231, 229, 90, 167, 14, 32, 252, 218, 231, 233, 90, 167, 14, 32, 252, 218, + 235, 52, 90, 167, 14, 32, 252, 218, 229, 224, 90, 167, 14, 32, 252, 218, + 229, 225, 90, 167, 14, 32, 252, 218, 227, 213, 90, 167, 14, 32, 252, 218, + 228, 220, 90, 167, 14, 32, 252, 218, 229, 157, 90, 167, 14, 32, 252, 218, + 230, 121, 90, 167, 14, 32, 252, 218, 228, 171, 90, 167, 14, 32, 252, 218, + 228, 170, 90, 167, 14, 32, 252, 218, 229, 158, 90, 167, 14, 32, 252, 218, + 235, 80, 90, 167, 14, 32, 252, 218, 230, 118, 37, 247, 12, 181, 32, 252, + 230, 234, 38, 235, 123, 181, 32, 252, 230, 233, 7, 237, 99, 181, 32, 230, + 246, 254, 217, 252, 230, 230, 230, 181, 32, 235, 12, 238, 222, 181, 32, + 233, 249, 181, 32, 232, 99, 181, 32, 252, 230, 242, 63, 181, 32, 235, + 177, 232, 55, 181, 32, 3, 235, 219, 181, 32, 233, 54, 181, 32, 239, 185, + 181, 32, 230, 113, 181, 32, 230, 60, 181, 32, 240, 227, 230, 90, 181, 32, + 234, 162, 181, 32, 230, 56, 181, 32, 230, 184, 181, 32, 252, 105, 254, + 223, 252, 230, 234, 47, 181, 32, 232, 71, 181, 32, 227, 161, 181, 32, + 238, 125, 234, 246, 181, 32, 238, 251, 181, 32, 233, 27, 238, 98, 181, + 32, 235, 205, 181, 32, 231, 87, 181, 32, 240, 227, 235, 219, 181, 32, + 244, 151, 233, 195, 181, 32, 240, 227, 227, 150, 181, 32, 252, 230, 235, + 237, 237, 168, 181, 32, 252, 230, 234, 31, 240, 207, 181, 32, 231, 86, + 181, 32, 232, 175, 181, 32, 234, 208, 181, 32, 240, 227, 238, 36, 181, + 32, 233, 1, 181, 32, 232, 106, 106, 252, 230, 237, 57, 181, 32, 252, 230, + 236, 74, 181, 32, 229, 187, 181, 32, 229, 44, 181, 32, 228, 237, 181, 32, + 232, 109, 181, 32, 232, 27, 181, 32, 227, 220, 181, 32, 238, 160, 180, + 241, 191, 181, 32, 232, 24, 232, 55, 181, 32, 236, 196, 237, 16, 181, 32, + 230, 84, 181, 32, 252, 230, 246, 54, 181, 32, 230, 97, 181, 32, 252, 230, + 232, 16, 181, 32, 252, 230, 234, 9, 233, 246, 181, 32, 252, 230, 235, + 182, 245, 220, 231, 255, 181, 32, 228, 240, 181, 32, 252, 230, 234, 153, + 236, 144, 181, 32, 230, 221, 181, 32, 252, 230, 233, 63, 181, 32, 252, + 230, 238, 235, 240, 199, 181, 32, 252, 230, 239, 51, 241, 178, 181, 32, + 229, 250, 181, 32, 230, 78, 181, 32, 244, 9, 240, 48, 181, 32, 3, 227, + 150, 181, 32, 242, 44, 229, 183, 181, 32, 238, 118, 229, 183, 8, 4, 254, + 73, 8, 4, 254, 74, 8, 4, 74, 8, 4, 254, 70, 8, 4, 250, 115, 8, 4, 250, + 116, 8, 4, 253, 77, 8, 4, 250, 114, 8, 4, 253, 113, 8, 4, 254, 30, 8, 4, + 57, 8, 4, 254, 27, 8, 4, 252, 57, 8, 4, 254, 164, 8, 4, 252, 56, 8, 4, + 253, 188, 8, 4, 254, 122, 8, 4, 73, 8, 4, 253, 255, 8, 4, 254, 53, 8, 4, + 72, 8, 4, 253, 109, 8, 4, 249, 121, 8, 4, 249, 122, 8, 4, 253, 30, 8, 4, + 249, 120, 8, 4, 242, 206, 8, 4, 242, 207, 8, 4, 249, 118, 8, 4, 242, 205, + 8, 4, 249, 101, 8, 4, 249, 102, 8, 4, 252, 211, 8, 4, 249, 100, 8, 4, + 242, 222, 8, 4, 249, 129, 8, 4, 242, 221, 8, 4, 249, 128, 8, 4, 246, 231, + 8, 4, 253, 98, 8, 4, 249, 127, 8, 4, 249, 113, 8, 4, 253, 73, 8, 4, 249, + 111, 8, 4, 249, 132, 8, 4, 249, 133, 8, 4, 253, 48, 8, 4, 249, 130, 8, 4, + 242, 224, 8, 4, 247, 11, 8, 4, 249, 139, 8, 4, 249, 140, 8, 4, 253, 210, + 8, 4, 249, 137, 8, 4, 242, 226, 8, 4, 249, 138, 8, 4, 251, 111, 8, 4, + 251, 112, 8, 4, 252, 223, 8, 4, 251, 110, 8, 4, 245, 74, 8, 4, 251, 108, + 8, 4, 245, 73, 8, 4, 251, 104, 8, 4, 251, 105, 8, 4, 213, 8, 4, 247, 45, + 8, 4, 245, 85, 8, 4, 251, 121, 8, 4, 245, 84, 8, 4, 251, 115, 8, 4, 251, + 116, 8, 4, 253, 50, 8, 4, 251, 114, 8, 4, 248, 136, 8, 4, 251, 124, 8, 4, + 253, 82, 8, 4, 251, 122, 8, 4, 245, 86, 8, 4, 251, 123, 8, 4, 248, 138, + 8, 4, 251, 127, 8, 4, 254, 138, 8, 4, 251, 125, 8, 4, 245, 88, 8, 4, 251, + 126, 8, 4, 242, 183, 8, 4, 242, 184, 8, 4, 249, 103, 8, 4, 242, 182, 8, + 4, 238, 112, 8, 4, 238, 113, 8, 4, 242, 181, 8, 4, 238, 111, 8, 4, 242, + 177, 8, 4, 242, 178, 8, 4, 247, 66, 8, 4, 242, 176, 8, 4, 238, 115, 8, 4, + 242, 188, 8, 4, 238, 114, 8, 4, 242, 186, 8, 4, 242, 187, 8, 4, 249, 104, + 8, 4, 242, 185, 8, 4, 242, 180, 8, 4, 247, 250, 8, 4, 242, 179, 8, 4, + 241, 98, 8, 4, 242, 191, 8, 4, 249, 105, 8, 4, 242, 189, 8, 4, 238, 116, + 8, 4, 242, 190, 8, 4, 242, 193, 8, 4, 242, 194, 8, 4, 249, 106, 8, 4, + 242, 192, 8, 4, 244, 171, 8, 4, 244, 172, 8, 4, 251, 45, 8, 4, 244, 170, + 8, 4, 239, 129, 8, 4, 241, 200, 8, 4, 239, 128, 8, 4, 244, 168, 8, 4, + 244, 169, 8, 4, 251, 44, 8, 4, 244, 167, 8, 4, 244, 174, 8, 4, 244, 175, + 8, 4, 251, 46, 8, 4, 244, 173, 8, 4, 244, 178, 8, 4, 244, 179, 8, 4, 251, + 47, 8, 4, 244, 176, 8, 4, 239, 130, 8, 4, 244, 177, 8, 4, 244, 182, 8, 4, + 244, 183, 8, 4, 251, 48, 8, 4, 244, 180, 8, 4, 239, 131, 8, 4, 244, 181, + 8, 4, 243, 204, 8, 4, 243, 205, 8, 4, 250, 85, 8, 4, 243, 203, 8, 4, 239, + 17, 8, 4, 243, 202, 8, 4, 239, 16, 8, 4, 243, 200, 8, 4, 243, 201, 8, 4, + 250, 84, 8, 4, 243, 199, 8, 4, 239, 19, 8, 4, 243, 209, 8, 4, 239, 18, 8, + 4, 243, 207, 8, 4, 243, 208, 8, 4, 248, 62, 8, 4, 243, 206, 8, 4, 243, + 212, 8, 4, 243, 213, 8, 4, 250, 86, 8, 4, 243, 210, 8, 4, 239, 20, 8, 4, + 243, 211, 8, 4, 243, 216, 8, 4, 250, 87, 8, 4, 243, 214, 8, 4, 239, 21, + 8, 4, 243, 215, 8, 4, 251, 18, 8, 4, 251, 19, 8, 4, 252, 239, 8, 4, 251, + 17, 8, 4, 244, 144, 8, 4, 251, 12, 8, 4, 244, 143, 8, 4, 250, 250, 8, 4, + 250, 251, 8, 4, 198, 8, 4, 250, 247, 8, 4, 244, 157, 8, 4, 244, 158, 8, + 4, 251, 27, 8, 4, 244, 156, 8, 4, 251, 23, 8, 4, 251, 24, 8, 4, 253, 14, + 8, 4, 248, 101, 8, 4, 251, 7, 8, 4, 253, 13, 8, 4, 251, 30, 8, 4, 251, + 31, 8, 4, 252, 229, 8, 4, 251, 28, 8, 4, 244, 160, 8, 4, 251, 29, 8, 4, + 251, 34, 8, 4, 251, 35, 8, 4, 254, 108, 8, 4, 251, 33, 8, 4, 249, 251, 8, + 4, 249, 252, 8, 4, 253, 88, 8, 4, 249, 250, 8, 4, 249, 239, 8, 4, 249, + 240, 8, 4, 252, 234, 8, 4, 249, 238, 8, 4, 249, 255, 8, 4, 253, 148, 8, + 4, 249, 254, 8, 4, 250, 1, 8, 4, 250, 2, 8, 4, 253, 178, 8, 4, 250, 0, 8, + 4, 243, 110, 8, 4, 248, 40, 8, 4, 250, 7, 8, 4, 250, 8, 8, 4, 254, 57, 8, + 4, 250, 6, 8, 4, 252, 77, 8, 4, 252, 78, 8, 4, 253, 138, 8, 4, 252, 76, + 8, 4, 246, 46, 8, 4, 246, 47, 8, 4, 252, 75, 8, 4, 246, 45, 8, 4, 252, + 71, 8, 4, 252, 72, 8, 4, 252, 243, 8, 4, 252, 70, 8, 4, 252, 82, 8, 4, + 252, 84, 8, 4, 253, 108, 8, 4, 252, 81, 8, 4, 252, 74, 8, 4, 248, 190, 8, + 4, 252, 86, 8, 4, 252, 87, 8, 4, 253, 139, 8, 4, 252, 85, 8, 4, 246, 49, + 8, 4, 248, 193, 8, 4, 252, 91, 8, 4, 252, 92, 8, 4, 253, 201, 8, 4, 252, + 89, 8, 4, 246, 50, 8, 4, 252, 90, 8, 4, 249, 196, 8, 4, 249, 197, 8, 4, + 253, 12, 8, 4, 249, 194, 8, 4, 243, 69, 8, 4, 249, 192, 8, 4, 243, 68, 8, + 4, 249, 181, 8, 4, 249, 183, 8, 4, 252, 203, 8, 4, 249, 179, 8, 4, 243, + 86, 8, 4, 249, 212, 8, 4, 246, 164, 8, 4, 249, 206, 8, 4, 253, 57, 8, 4, + 249, 205, 8, 4, 249, 187, 8, 4, 253, 20, 8, 4, 249, 186, 8, 4, 249, 215, + 8, 4, 249, 216, 8, 4, 253, 31, 8, 4, 249, 213, 8, 4, 243, 88, 8, 4, 249, + 214, 8, 4, 252, 23, 8, 4, 252, 24, 8, 4, 253, 44, 8, 4, 252, 22, 8, 4, + 245, 250, 8, 4, 247, 57, 8, 4, 245, 249, 8, 4, 248, 170, 8, 4, 252, 10, + 8, 4, 252, 202, 8, 4, 252, 7, 8, 4, 246, 21, 8, 4, 246, 22, 8, 4, 252, + 34, 8, 4, 246, 20, 8, 4, 248, 179, 8, 4, 252, 28, 8, 4, 96, 8, 4, 247, + 214, 8, 4, 252, 16, 8, 4, 253, 9, 8, 4, 252, 13, 8, 4, 252, 36, 8, 4, + 252, 37, 8, 4, 253, 18, 8, 4, 252, 35, 8, 4, 246, 23, 8, 4, 247, 112, 8, + 4, 243, 41, 8, 4, 243, 42, 8, 4, 248, 23, 8, 4, 243, 40, 8, 4, 238, 176, + 8, 4, 243, 39, 8, 4, 238, 175, 8, 4, 243, 32, 8, 4, 243, 33, 8, 4, 246, + 192, 8, 4, 243, 31, 8, 4, 238, 178, 8, 4, 243, 47, 8, 4, 238, 177, 8, 4, + 243, 45, 8, 4, 243, 46, 8, 4, 247, 130, 8, 4, 243, 44, 8, 4, 243, 37, 8, + 4, 248, 22, 8, 4, 243, 36, 8, 4, 243, 49, 8, 4, 243, 50, 8, 4, 248, 24, + 8, 4, 243, 48, 8, 4, 238, 179, 8, 4, 241, 118, 8, 4, 244, 192, 8, 4, 244, + 193, 8, 4, 248, 107, 8, 4, 244, 191, 8, 4, 239, 132, 8, 4, 244, 190, 8, + 4, 244, 185, 8, 4, 244, 186, 8, 4, 247, 180, 8, 4, 244, 184, 8, 4, 244, + 196, 8, 4, 244, 197, 8, 4, 248, 108, 8, 4, 244, 195, 8, 4, 244, 189, 8, + 4, 248, 106, 8, 4, 244, 188, 8, 4, 244, 200, 8, 4, 244, 201, 8, 4, 248, + 109, 8, 4, 244, 198, 8, 4, 239, 133, 8, 4, 244, 199, 8, 4, 243, 224, 8, + 4, 243, 225, 8, 4, 250, 89, 8, 4, 243, 223, 8, 4, 239, 23, 8, 4, 239, 24, + 8, 4, 243, 222, 8, 4, 239, 22, 8, 4, 243, 218, 8, 4, 243, 219, 8, 4, 248, + 63, 8, 4, 243, 217, 8, 4, 239, 25, 8, 4, 243, 229, 8, 4, 243, 227, 8, 4, + 243, 228, 8, 4, 243, 226, 8, 4, 243, 221, 8, 4, 250, 88, 8, 4, 243, 220, + 8, 4, 243, 230, 8, 4, 251, 63, 8, 4, 251, 64, 8, 4, 252, 248, 8, 4, 251, + 62, 8, 4, 244, 228, 8, 4, 251, 60, 8, 4, 244, 227, 8, 4, 251, 43, 8, 4, + 252, 201, 8, 4, 251, 41, 8, 4, 245, 15, 8, 4, 251, 80, 8, 4, 245, 14, 8, + 4, 247, 184, 8, 4, 251, 72, 8, 4, 253, 8, 8, 4, 251, 70, 8, 4, 251, 52, + 8, 4, 252, 247, 8, 4, 251, 50, 8, 4, 251, 83, 8, 4, 251, 84, 8, 4, 252, + 227, 8, 4, 251, 81, 8, 4, 245, 16, 8, 4, 251, 82, 8, 4, 243, 186, 8, 4, + 243, 187, 8, 4, 250, 80, 8, 4, 243, 185, 8, 4, 239, 11, 8, 4, 243, 184, + 8, 4, 239, 10, 8, 4, 243, 180, 8, 4, 243, 181, 8, 4, 248, 61, 8, 4, 243, + 179, 8, 4, 239, 13, 8, 4, 243, 190, 8, 4, 239, 12, 8, 4, 243, 189, 8, 4, + 250, 81, 8, 4, 243, 188, 8, 4, 243, 183, 8, 4, 250, 79, 8, 4, 243, 182, + 8, 4, 243, 193, 8, 4, 243, 194, 8, 4, 250, 82, 8, 4, 243, 191, 8, 4, 239, + 14, 8, 4, 243, 192, 8, 4, 243, 197, 8, 4, 243, 198, 8, 4, 250, 83, 8, 4, + 243, 195, 8, 4, 239, 15, 8, 4, 243, 196, 8, 4, 250, 225, 8, 4, 250, 226, + 8, 4, 253, 42, 8, 4, 250, 223, 8, 4, 244, 101, 8, 4, 244, 102, 8, 4, 248, + 93, 8, 4, 244, 100, 8, 4, 250, 208, 8, 4, 250, 210, 8, 4, 252, 200, 8, 4, + 250, 206, 8, 4, 244, 110, 8, 4, 244, 111, 8, 4, 250, 236, 8, 4, 244, 109, + 8, 4, 250, 231, 8, 4, 250, 233, 8, 4, 253, 49, 8, 4, 250, 230, 8, 4, 250, + 216, 8, 4, 253, 80, 8, 4, 250, 214, 8, 4, 250, 239, 8, 4, 250, 240, 8, 4, + 253, 22, 8, 4, 250, 237, 8, 4, 244, 112, 8, 4, 250, 238, 8, 4, 250, 242, + 8, 4, 250, 243, 8, 4, 253, 186, 8, 4, 250, 241, 8, 4, 244, 113, 8, 4, + 248, 97, 8, 4, 250, 33, 8, 4, 250, 34, 8, 4, 253, 39, 8, 4, 250, 32, 8, + 4, 243, 147, 8, 4, 243, 148, 8, 4, 250, 31, 8, 4, 243, 146, 8, 4, 250, + 14, 8, 4, 250, 15, 8, 4, 252, 205, 8, 4, 250, 13, 8, 4, 243, 160, 8, 4, + 243, 161, 8, 4, 250, 46, 8, 4, 243, 159, 8, 4, 248, 56, 8, 4, 250, 39, 8, + 4, 253, 76, 8, 4, 250, 38, 8, 4, 250, 25, 8, 4, 250, 27, 8, 4, 253, 103, + 8, 4, 248, 47, 8, 4, 250, 48, 8, 4, 250, 49, 8, 4, 253, 40, 8, 4, 250, + 47, 8, 4, 243, 162, 8, 4, 248, 57, 8, 4, 248, 83, 8, 4, 250, 170, 8, 4, + 253, 7, 8, 4, 250, 169, 8, 4, 244, 59, 8, 4, 250, 166, 8, 4, 244, 58, 8, + 4, 250, 156, 8, 4, 250, 158, 8, 4, 177, 8, 4, 250, 155, 8, 4, 244, 71, 8, + 4, 250, 190, 8, 4, 244, 70, 8, 4, 250, 180, 8, 4, 250, 181, 8, 4, 253, + 33, 8, 4, 250, 179, 8, 4, 250, 160, 8, 4, 250, 161, 8, 4, 253, 6, 8, 4, + 250, 159, 8, 4, 250, 192, 8, 4, 250, 193, 8, 4, 253, 34, 8, 4, 250, 191, + 8, 4, 244, 73, 8, 4, 246, 220, 8, 4, 243, 132, 8, 4, 243, 133, 8, 4, 248, + 49, 8, 4, 238, 239, 8, 4, 243, 131, 8, 4, 238, 238, 8, 4, 243, 125, 8, 4, + 243, 126, 8, 4, 247, 77, 8, 4, 243, 124, 8, 4, 238, 241, 8, 4, 238, 242, + 8, 4, 241, 140, 8, 4, 238, 240, 8, 4, 243, 134, 8, 4, 243, 135, 8, 4, + 248, 50, 8, 4, 241, 139, 8, 4, 243, 129, 8, 4, 243, 130, 8, 4, 248, 48, + 8, 4, 243, 128, 8, 4, 243, 138, 8, 4, 243, 139, 8, 4, 248, 51, 8, 4, 243, + 136, 8, 4, 238, 243, 8, 4, 243, 137, 8, 4, 239, 109, 8, 4, 244, 133, 8, + 4, 244, 124, 8, 4, 244, 125, 8, 4, 251, 8, 8, 4, 244, 123, 8, 4, 239, + 111, 8, 4, 244, 137, 8, 4, 239, 110, 8, 4, 244, 135, 8, 4, 244, 136, 8, + 4, 247, 88, 8, 4, 244, 134, 8, 4, 244, 132, 8, 4, 251, 9, 8, 4, 244, 131, + 8, 4, 244, 140, 8, 4, 244, 141, 8, 4, 251, 10, 8, 4, 244, 138, 8, 4, 239, + 112, 8, 4, 244, 139, 8, 4, 241, 159, 8, 4, 243, 249, 8, 4, 250, 104, 8, + 4, 243, 248, 8, 4, 239, 31, 8, 4, 239, 32, 8, 4, 243, 247, 8, 4, 239, 30, + 8, 4, 243, 243, 8, 4, 243, 244, 8, 4, 250, 102, 8, 4, 243, 242, 8, 4, + 239, 34, 8, 4, 239, 35, 8, 4, 241, 161, 8, 4, 239, 33, 8, 4, 243, 250, 8, + 4, 243, 251, 8, 4, 250, 105, 8, 4, 241, 160, 8, 4, 243, 246, 8, 4, 250, + 103, 8, 4, 243, 245, 8, 4, 239, 139, 8, 4, 244, 215, 8, 4, 239, 138, 8, + 4, 244, 206, 8, 4, 244, 207, 8, 4, 246, 169, 8, 4, 244, 205, 8, 4, 239, + 141, 8, 4, 239, 142, 8, 4, 244, 224, 8, 4, 244, 221, 8, 4, 244, 222, 8, + 4, 247, 93, 8, 4, 244, 220, 8, 4, 244, 210, 8, 4, 251, 54, 8, 4, 244, + 209, 8, 4, 250, 78, 8, 4, 243, 176, 8, 4, 247, 81, 8, 4, 247, 147, 8, 4, + 250, 63, 8, 4, 154, 8, 4, 250, 62, 8, 4, 243, 239, 8, 4, 243, 240, 8, 4, + 250, 97, 8, 4, 243, 238, 8, 4, 250, 92, 8, 4, 250, 93, 8, 4, 253, 21, 8, + 4, 250, 91, 8, 4, 250, 69, 8, 4, 252, 252, 8, 4, 250, 68, 8, 4, 252, 95, + 8, 4, 252, 96, 8, 4, 252, 208, 8, 4, 252, 94, 8, 4, 246, 62, 8, 4, 252, + 108, 8, 4, 246, 61, 8, 4, 252, 106, 8, 4, 253, 10, 8, 4, 252, 104, 8, 4, + 252, 99, 8, 4, 252, 250, 8, 4, 252, 98, 8, 4, 252, 181, 8, 4, 252, 182, + 8, 4, 253, 72, 8, 4, 252, 180, 8, 4, 246, 130, 8, 4, 252, 178, 8, 4, 246, + 129, 8, 4, 252, 170, 8, 4, 252, 171, 8, 4, 252, 226, 8, 4, 252, 169, 8, + 4, 246, 133, 8, 4, 252, 190, 8, 4, 246, 132, 8, 4, 248, 211, 8, 4, 252, + 186, 8, 4, 253, 65, 8, 4, 252, 185, 8, 4, 252, 174, 8, 4, 253, 46, 8, 4, + 252, 173, 8, 4, 252, 191, 8, 4, 252, 192, 8, 4, 253, 97, 8, 4, 248, 212, + 8, 4, 246, 134, 8, 4, 248, 213, 8, 4, 252, 196, 8, 4, 252, 197, 8, 4, + 254, 182, 8, 4, 252, 194, 8, 4, 246, 135, 8, 4, 252, 195, 8, 4, 249, 160, + 8, 4, 249, 161, 8, 4, 253, 143, 8, 4, 248, 8, 8, 4, 243, 10, 8, 4, 243, + 11, 8, 4, 249, 158, 8, 4, 243, 9, 8, 4, 248, 5, 8, 4, 249, 145, 8, 4, + 252, 215, 8, 4, 248, 4, 8, 4, 243, 21, 8, 4, 249, 166, 8, 4, 241, 111, 8, + 4, 249, 164, 8, 4, 249, 165, 8, 4, 253, 66, 8, 4, 249, 163, 8, 4, 249, + 154, 8, 4, 253, 141, 8, 4, 249, 153, 8, 4, 249, 168, 8, 4, 249, 169, 8, + 4, 253, 172, 8, 4, 248, 12, 8, 4, 243, 22, 8, 4, 249, 167, 8, 4, 248, 16, + 8, 4, 249, 172, 8, 4, 253, 213, 8, 4, 248, 15, 8, 4, 243, 23, 8, 4, 249, + 171, 8, 4, 246, 145, 8, 4, 246, 146, 8, 4, 248, 216, 8, 4, 246, 144, 8, + 4, 238, 85, 8, 4, 240, 113, 8, 4, 246, 143, 8, 4, 240, 112, 8, 4, 246, + 138, 8, 4, 246, 139, 8, 4, 248, 214, 8, 4, 246, 137, 8, 4, 246, 148, 8, + 4, 248, 217, 8, 4, 246, 147, 8, 4, 246, 142, 8, 4, 248, 215, 8, 4, 246, + 141, 8, 4, 246, 151, 8, 4, 248, 218, 8, 4, 246, 149, 8, 4, 240, 114, 8, + 4, 246, 150, 8, 4, 246, 154, 8, 4, 246, 155, 8, 4, 252, 198, 8, 4, 246, + 152, 8, 4, 240, 115, 8, 4, 246, 153, 8, 4, 245, 40, 8, 4, 245, 41, 8, 4, + 251, 88, 8, 4, 245, 39, 8, 4, 239, 166, 8, 4, 245, 38, 8, 4, 239, 165, 8, + 4, 245, 35, 8, 4, 245, 36, 8, 4, 251, 86, 8, 4, 245, 34, 8, 4, 239, 167, + 8, 4, 245, 44, 8, 4, 245, 43, 8, 4, 245, 42, 8, 4, 245, 37, 8, 4, 251, + 87, 8, 4, 245, 46, 8, 4, 251, 89, 8, 4, 241, 209, 8, 4, 239, 168, 8, 4, + 245, 45, 8, 4, 245, 49, 8, 4, 245, 50, 8, 4, 251, 90, 8, 4, 245, 47, 8, + 4, 239, 169, 8, 4, 245, 48, 8, 4, 251, 227, 8, 4, 183, 8, 4, 253, 24, 8, + 4, 251, 226, 8, 4, 245, 183, 8, 4, 251, 222, 8, 4, 245, 182, 8, 4, 251, + 211, 8, 4, 251, 213, 8, 4, 252, 204, 8, 4, 251, 210, 8, 4, 245, 225, 8, + 4, 251, 242, 8, 4, 245, 224, 8, 4, 251, 233, 8, 4, 251, 235, 8, 4, 253, + 25, 8, 4, 251, 232, 8, 4, 251, 217, 8, 4, 253, 52, 8, 4, 251, 216, 8, 4, + 251, 244, 8, 4, 251, 245, 8, 4, 253, 26, 8, 4, 251, 243, 8, 4, 245, 228, + 8, 4, 247, 205, 8, 4, 251, 251, 8, 4, 251, 252, 8, 4, 254, 153, 8, 4, + 251, 249, 8, 4, 245, 230, 8, 4, 251, 250, 8, 4, 245, 205, 8, 4, 245, 206, + 8, 4, 247, 202, 8, 4, 245, 204, 8, 4, 240, 17, 8, 4, 245, 203, 8, 4, 240, + 16, 8, 4, 245, 198, 8, 4, 245, 199, 8, 4, 246, 190, 8, 4, 245, 197, 8, 4, + 245, 208, 8, 4, 245, 209, 8, 4, 247, 203, 8, 4, 245, 207, 8, 4, 245, 202, + 8, 4, 248, 166, 8, 4, 245, 201, 8, 4, 245, 211, 8, 4, 245, 212, 8, 4, + 247, 204, 8, 4, 245, 210, 8, 4, 245, 215, 8, 4, 245, 216, 8, 4, 251, 236, + 8, 4, 245, 213, 8, 4, 240, 18, 8, 4, 245, 214, 8, 4, 246, 110, 8, 4, 246, + 111, 8, 4, 246, 223, 8, 4, 246, 109, 8, 4, 240, 105, 8, 4, 246, 119, 8, + 4, 240, 104, 8, 4, 246, 117, 8, 4, 246, 118, 8, 4, 247, 239, 8, 4, 246, + 116, 8, 4, 246, 113, 8, 4, 246, 114, 8, 4, 246, 251, 8, 4, 246, 112, 8, + 4, 246, 122, 8, 4, 246, 123, 8, 4, 247, 240, 8, 4, 246, 120, 8, 4, 240, + 106, 8, 4, 246, 121, 8, 4, 246, 127, 8, 4, 246, 128, 8, 4, 252, 175, 8, + 4, 246, 125, 8, 4, 240, 107, 8, 4, 246, 126, 8, 4, 242, 245, 8, 4, 242, + 246, 8, 4, 246, 176, 8, 4, 242, 244, 8, 4, 238, 152, 8, 4, 238, 153, 8, + 4, 243, 0, 8, 4, 238, 151, 8, 4, 242, 254, 8, 4, 242, 255, 8, 4, 247, 29, + 8, 4, 242, 253, 8, 4, 242, 248, 8, 4, 242, 249, 8, 4, 246, 217, 8, 4, + 242, 247, 8, 4, 243, 3, 8, 4, 247, 124, 8, 4, 243, 1, 8, 4, 238, 154, 8, + 4, 243, 2, 8, 4, 243, 7, 8, 4, 243, 8, 8, 4, 249, 157, 8, 4, 243, 5, 8, + 4, 238, 155, 8, 4, 243, 6, 8, 4, 245, 121, 8, 4, 246, 221, 8, 4, 239, + 227, 8, 4, 245, 129, 8, 4, 245, 127, 8, 4, 245, 128, 8, 4, 248, 151, 8, + 4, 245, 126, 8, 4, 245, 124, 8, 4, 245, 125, 8, 4, 251, 191, 8, 4, 245, + 123, 8, 4, 245, 132, 8, 4, 245, 133, 8, 4, 251, 192, 8, 4, 245, 130, 8, + 4, 239, 228, 8, 4, 245, 131, 8, 4, 245, 136, 8, 4, 245, 137, 8, 4, 251, + 193, 8, 4, 245, 134, 8, 4, 239, 229, 8, 4, 245, 135, 8, 4, 244, 253, 8, + 4, 244, 254, 8, 4, 248, 117, 8, 4, 244, 252, 8, 4, 245, 3, 8, 4, 251, 74, + 8, 4, 245, 2, 8, 4, 245, 0, 8, 4, 245, 1, 8, 4, 251, 73, 8, 4, 244, 255, + 8, 4, 245, 6, 8, 4, 245, 7, 8, 4, 251, 75, 8, 4, 245, 4, 8, 4, 239, 157, + 8, 4, 245, 5, 8, 4, 245, 10, 8, 4, 245, 11, 8, 4, 251, 76, 8, 4, 245, 8, + 8, 4, 239, 158, 8, 4, 245, 9, 8, 4, 241, 235, 8, 4, 245, 160, 8, 4, 246, + 165, 8, 4, 245, 158, 8, 4, 239, 253, 8, 4, 245, 173, 8, 4, 239, 252, 8, + 4, 245, 171, 8, 4, 245, 172, 8, 4, 246, 245, 8, 4, 241, 240, 8, 4, 245, + 163, 8, 4, 245, 164, 8, 4, 246, 186, 8, 4, 245, 162, 8, 4, 245, 175, 8, + 4, 245, 176, 8, 4, 246, 246, 8, 4, 245, 174, 8, 4, 239, 254, 8, 4, 241, + 242, 8, 4, 245, 180, 8, 4, 245, 181, 8, 4, 248, 160, 8, 4, 245, 178, 8, + 4, 239, 255, 8, 4, 245, 179, 8, 4, 248, 146, 8, 4, 251, 174, 8, 4, 208, + 8, 4, 247, 196, 8, 4, 245, 141, 8, 4, 251, 196, 8, 4, 245, 140, 8, 4, + 251, 189, 8, 4, 251, 190, 8, 4, 252, 246, 8, 4, 251, 188, 8, 4, 251, 180, + 8, 4, 253, 36, 8, 4, 251, 178, 8, 4, 251, 199, 8, 4, 251, 200, 8, 4, 253, + 3, 8, 4, 251, 197, 8, 4, 245, 142, 8, 4, 251, 198, 8, 4, 251, 205, 8, 4, + 251, 206, 8, 4, 254, 6, 8, 4, 251, 203, 8, 4, 245, 144, 8, 4, 251, 204, + 8, 4, 250, 133, 8, 4, 250, 134, 8, 4, 253, 104, 8, 4, 250, 132, 8, 4, + 244, 18, 8, 4, 244, 19, 8, 4, 250, 131, 8, 4, 244, 17, 8, 4, 244, 39, 8, + 4, 244, 40, 8, 4, 250, 141, 8, 4, 244, 38, 8, 4, 247, 15, 8, 4, 250, 139, + 8, 4, 253, 90, 8, 4, 250, 138, 8, 4, 250, 144, 8, 4, 250, 145, 8, 4, 253, + 118, 8, 4, 250, 142, 8, 4, 244, 41, 8, 4, 250, 143, 8, 4, 250, 149, 8, 4, + 250, 150, 8, 4, 254, 75, 8, 4, 250, 147, 8, 4, 244, 42, 8, 4, 250, 148, + 8, 4, 251, 139, 8, 4, 251, 140, 8, 4, 253, 131, 8, 4, 251, 138, 8, 4, + 245, 98, 8, 4, 245, 99, 8, 4, 251, 137, 8, 4, 245, 97, 8, 4, 245, 102, 8, + 4, 245, 103, 8, 4, 248, 144, 8, 4, 245, 101, 8, 4, 248, 143, 8, 4, 251, + 144, 8, 4, 253, 159, 8, 4, 251, 143, 8, 4, 251, 151, 8, 4, 251, 153, 8, + 4, 253, 132, 8, 4, 251, 149, 8, 4, 245, 104, 8, 4, 251, 150, 8, 4, 251, + 163, 8, 4, 251, 165, 8, 4, 254, 141, 8, 4, 251, 161, 8, 4, 245, 110, 8, + 4, 251, 162, 8, 4, 244, 22, 8, 4, 244, 23, 8, 4, 248, 71, 8, 4, 244, 21, + 8, 4, 239, 45, 8, 4, 239, 46, 8, 4, 241, 166, 8, 4, 239, 44, 8, 4, 239, + 48, 8, 4, 244, 27, 8, 4, 239, 47, 8, 4, 244, 25, 8, 4, 244, 26, 8, 4, + 248, 72, 8, 4, 244, 24, 8, 4, 241, 167, 8, 4, 244, 30, 8, 4, 248, 73, 8, + 4, 244, 28, 8, 4, 239, 49, 8, 4, 244, 29, 8, 4, 244, 32, 8, 4, 244, 33, + 8, 4, 248, 74, 8, 4, 244, 31, 8, 4, 244, 233, 8, 4, 244, 234, 8, 4, 248, + 113, 8, 4, 244, 232, 8, 4, 239, 147, 8, 4, 239, 148, 8, 4, 244, 231, 8, + 4, 239, 146, 8, 4, 239, 149, 8, 4, 244, 239, 8, 4, 244, 237, 8, 4, 244, + 238, 8, 4, 248, 114, 8, 4, 244, 236, 8, 4, 244, 242, 8, 4, 248, 115, 8, + 4, 244, 240, 8, 4, 239, 150, 8, 4, 244, 241, 8, 4, 244, 245, 8, 4, 244, + 246, 8, 4, 251, 66, 8, 4, 244, 243, 8, 4, 239, 151, 8, 4, 244, 244, 8, 4, + 245, 22, 8, 4, 245, 23, 8, 4, 247, 44, 8, 4, 241, 207, 8, 4, 239, 161, 8, + 4, 239, 162, 8, 4, 245, 21, 8, 4, 239, 160, 8, 4, 239, 164, 8, 4, 245, + 29, 8, 4, 239, 163, 8, 4, 245, 27, 8, 4, 245, 28, 8, 4, 247, 19, 8, 4, + 241, 208, 8, 4, 245, 31, 8, 4, 245, 32, 8, 4, 247, 185, 8, 4, 245, 30, 8, + 4, 252, 114, 8, 4, 252, 115, 8, 4, 253, 38, 8, 4, 252, 113, 8, 4, 246, + 64, 8, 4, 246, 65, 8, 4, 252, 112, 8, 4, 246, 63, 8, 4, 246, 67, 8, 4, + 252, 121, 8, 4, 252, 119, 8, 4, 252, 120, 8, 4, 254, 18, 8, 4, 252, 117, + 8, 4, 252, 131, 8, 4, 252, 133, 8, 4, 254, 174, 8, 4, 252, 129, 8, 4, + 246, 72, 8, 4, 252, 130, 8, 4, 248, 202, 8, 4, 252, 152, 8, 4, 253, 28, + 8, 4, 252, 151, 8, 4, 246, 90, 8, 4, 246, 91, 8, 4, 252, 149, 8, 4, 246, + 89, 8, 4, 246, 102, 8, 4, 246, 103, 8, 4, 252, 157, 8, 4, 246, 101, 8, 4, + 248, 203, 8, 4, 252, 155, 8, 4, 252, 251, 8, 4, 252, 154, 8, 4, 252, 160, + 8, 4, 252, 161, 8, 4, 252, 233, 8, 4, 252, 158, 8, 4, 246, 104, 8, 4, + 252, 159, 8, 4, 252, 164, 8, 4, 252, 165, 8, 4, 253, 203, 8, 4, 252, 162, + 8, 4, 246, 105, 8, 4, 252, 163, 8, 29, 248, 143, 8, 29, 253, 42, 8, 29, + 248, 83, 8, 29, 241, 207, 8, 29, 248, 15, 8, 29, 247, 202, 8, 29, 241, + 139, 8, 29, 248, 47, 8, 29, 252, 239, 8, 29, 241, 159, 8, 29, 248, 97, 8, + 29, 241, 98, 8, 29, 248, 101, 8, 29, 252, 251, 8, 29, 248, 136, 8, 29, + 241, 161, 8, 29, 248, 170, 8, 29, 252, 205, 8, 29, 248, 212, 8, 29, 248, + 16, 8, 29, 241, 118, 8, 29, 247, 11, 8, 29, 241, 140, 8, 29, 241, 208, 8, + 29, 253, 18, 8, 29, 253, 255, 8, 29, 241, 167, 8, 29, 248, 211, 8, 29, + 248, 138, 8, 29, 248, 62, 8, 29, 248, 202, 8, 29, 248, 193, 8, 29, 248, + 160, 8, 29, 248, 190, 8, 29, 252, 226, 8, 29, 253, 90, 8, 29, 241, 209, + 8, 29, 248, 74, 8, 29, 248, 56, 8, 29, 241, 166, 8, 29, 253, 10, 8, 29, + 253, 31, 8, 29, 241, 242, 8, 29, 248, 93, 8, 29, 253, 213, 8, 29, 241, + 111, 8, 29, 248, 8, 8, 29, 241, 160, 8, 29, 241, 235, 8, 29, 248, 213, 8, + 29, 241, 240, 8, 29, 246, 217, 8, 29, 238, 85, 8, 29, 241, 200, 8, 29, + 253, 6, 34, 4, 252, 231, 34, 4, 249, 224, 34, 4, 247, 149, 34, 4, 247, + 226, 34, 4, 246, 53, 34, 4, 247, 46, 34, 4, 242, 203, 34, 4, 247, 28, 34, + 4, 244, 118, 34, 4, 244, 66, 34, 4, 239, 107, 34, 4, 243, 116, 34, 4, + 247, 140, 34, 4, 247, 113, 34, 4, 247, 106, 34, 4, 240, 238, 34, 4, 243, + 61, 34, 4, 238, 184, 34, 4, 247, 168, 34, 4, 247, 197, 34, 4, 247, 30, + 34, 4, 244, 187, 34, 4, 247, 50, 34, 4, 241, 70, 34, 4, 247, 64, 34, 4, + 241, 25, 34, 4, 248, 6, 34, 4, 247, 38, 34, 4, 244, 230, 34, 4, 247, 62, + 34, 4, 248, 80, 34, 4, 239, 135, 34, 4, 247, 144, 34, 4, 247, 172, 34, 4, + 247, 181, 34, 4, 241, 206, 34, 4, 74, 34, 4, 253, 79, 34, 4, 253, 41, 34, + 4, 250, 76, 34, 4, 253, 27, 34, 4, 252, 100, 34, 4, 252, 223, 34, 4, 249, + 115, 34, 4, 253, 30, 34, 4, 251, 1, 34, 4, 250, 183, 34, 4, 244, 128, 34, + 4, 250, 17, 34, 4, 253, 88, 34, 4, 253, 138, 34, 4, 253, 44, 34, 4, 247, + 7, 34, 4, 249, 190, 34, 4, 243, 64, 34, 4, 253, 42, 34, 4, 253, 37, 34, + 4, 253, 12, 34, 4, 248, 107, 34, 4, 253, 24, 34, 4, 247, 51, 34, 4, 253, + 72, 34, 4, 247, 238, 34, 4, 253, 143, 34, 4, 253, 104, 34, 4, 248, 113, + 34, 4, 253, 28, 34, 4, 253, 7, 34, 4, 244, 212, 34, 4, 253, 39, 34, 4, + 252, 239, 34, 4, 252, 248, 34, 4, 247, 44, 34, 4, 57, 34, 4, 253, 5, 34, + 4, 244, 204, 34, 4, 154, 34, 4, 250, 61, 34, 4, 252, 208, 34, 4, 252, 93, + 34, 4, 213, 34, 4, 246, 199, 34, 4, 252, 211, 34, 4, 248, 99, 34, 4, 248, + 85, 34, 4, 244, 65, 34, 4, 244, 126, 34, 4, 248, 46, 34, 4, 252, 234, 34, + 4, 252, 243, 34, 4, 252, 202, 34, 4, 246, 173, 34, 4, 246, 196, 34, 4, + 243, 62, 34, 4, 252, 200, 34, 4, 208, 34, 4, 252, 203, 34, 4, 247, 180, + 34, 4, 252, 204, 34, 4, 246, 165, 34, 4, 252, 226, 34, 4, 246, 223, 34, + 4, 252, 215, 34, 4, 252, 213, 34, 4, 251, 65, 34, 4, 191, 34, 4, 177, 34, + 4, 247, 39, 34, 4, 241, 201, 34, 4, 252, 205, 34, 4, 198, 34, 4, 252, + 201, 34, 4, 246, 181, 34, 4, 252, 220, 34, 4, 251, 99, 34, 4, 248, 65, + 34, 4, 247, 116, 34, 4, 246, 57, 34, 4, 247, 189, 34, 4, 242, 204, 34, 4, + 249, 126, 34, 4, 244, 119, 34, 4, 244, 68, 34, 4, 239, 108, 34, 4, 243, + 119, 34, 4, 248, 39, 34, 4, 252, 80, 34, 4, 247, 109, 34, 4, 241, 80, 34, + 4, 243, 67, 34, 4, 238, 185, 34, 4, 247, 87, 34, 4, 248, 149, 34, 4, 249, + 204, 34, 4, 244, 194, 34, 4, 247, 104, 34, 4, 241, 239, 34, 4, 248, 210, + 34, 4, 246, 115, 34, 4, 247, 126, 34, 4, 250, 137, 34, 4, 244, 235, 34, + 4, 247, 234, 34, 4, 247, 162, 34, 4, 239, 137, 34, 4, 250, 37, 34, 4, + 247, 175, 34, 4, 247, 183, 34, 4, 245, 26, 34, 4, 66, 34, 4, 253, 121, + 34, 4, 253, 59, 34, 4, 250, 96, 34, 4, 253, 109, 34, 4, 252, 107, 34, 4, + 253, 82, 34, 4, 249, 116, 34, 4, 253, 48, 34, 4, 251, 3, 34, 4, 250, 185, + 34, 4, 244, 130, 34, 4, 250, 19, 34, 4, 253, 178, 34, 4, 253, 139, 34, 4, + 253, 18, 34, 4, 247, 213, 34, 4, 249, 191, 34, 4, 243, 66, 34, 4, 253, + 22, 34, 4, 253, 3, 34, 4, 253, 31, 34, 4, 248, 109, 34, 4, 253, 26, 34, + 4, 246, 246, 34, 4, 253, 97, 34, 4, 247, 240, 34, 4, 253, 172, 34, 4, + 253, 118, 34, 4, 248, 115, 34, 4, 252, 233, 34, 4, 253, 34, 34, 4, 244, + 214, 34, 4, 253, 40, 34, 4, 252, 229, 34, 4, 252, 227, 34, 4, 247, 185, + 34, 4, 73, 34, 4, 253, 106, 34, 4, 244, 218, 34, 4, 253, 21, 34, 4, 248, + 64, 34, 4, 253, 10, 34, 4, 252, 103, 34, 4, 253, 50, 34, 4, 247, 254, 34, + 4, 253, 98, 34, 4, 251, 2, 34, 4, 250, 184, 34, 4, 244, 129, 34, 4, 250, + 18, 34, 4, 243, 118, 34, 4, 253, 148, 34, 4, 253, 108, 34, 4, 96, 34, 4, + 246, 228, 34, 4, 248, 26, 34, 4, 243, 65, 34, 4, 253, 49, 34, 4, 252, + 246, 34, 4, 253, 57, 34, 4, 248, 108, 34, 4, 253, 25, 34, 4, 246, 245, + 34, 4, 253, 65, 34, 4, 247, 239, 34, 4, 253, 66, 34, 4, 253, 90, 34, 4, + 248, 114, 34, 4, 252, 251, 34, 4, 253, 33, 34, 4, 244, 213, 34, 4, 253, + 76, 34, 4, 253, 14, 34, 4, 253, 8, 34, 4, 247, 19, 34, 4, 72, 34, 4, 252, + 232, 34, 4, 244, 208, 34, 4, 252, 252, 34, 4, 250, 66, 34, 4, 252, 250, + 34, 4, 252, 97, 34, 4, 253, 0, 34, 4, 249, 114, 34, 4, 253, 73, 34, 4, + 251, 0, 34, 4, 250, 182, 34, 4, 244, 67, 34, 4, 244, 127, 34, 4, 250, 16, + 34, 4, 243, 117, 34, 4, 253, 147, 34, 4, 253, 95, 34, 4, 253, 9, 34, 4, + 246, 247, 34, 4, 249, 189, 34, 4, 243, 63, 34, 4, 253, 80, 34, 4, 253, + 36, 34, 4, 253, 20, 34, 4, 248, 106, 34, 4, 253, 52, 34, 4, 246, 186, 34, + 4, 253, 46, 34, 4, 246, 251, 34, 4, 253, 141, 34, 4, 253, 117, 34, 4, + 247, 43, 34, 4, 253, 96, 34, 4, 253, 6, 34, 4, 244, 211, 34, 4, 239, 136, + 34, 4, 253, 103, 34, 4, 250, 23, 34, 4, 253, 13, 34, 4, 252, 247, 34, 4, + 248, 119, 34, 4, 253, 69, 34, 4, 230, 77, 34, 237, 67, 34, 246, 162, 240, + 121, 34, 233, 82, 76, 34, 4, 240, 231, 252, 234, 34, 4, 240, 231, 177, + 34, 4, 240, 231, 247, 104, 34, 14, 238, 214, 34, 14, 239, 59, 34, 14, + 245, 253, 34, 14, 248, 112, 34, 14, 242, 173, 34, 14, 247, 139, 34, 14, + 247, 207, 34, 14, 241, 117, 34, 14, 238, 190, 34, 14, 244, 69, 34, 14, + 246, 2, 34, 14, 243, 75, 34, 14, 244, 34, 34, 21, 240, 126, 34, 21, 118, + 34, 21, 113, 34, 21, 166, 34, 21, 158, 34, 21, 173, 34, 21, 183, 34, 21, + 194, 34, 21, 187, 34, 21, 192, 34, 4, 240, 231, 198, 34, 4, 240, 231, + 253, 57, 28, 6, 1, 235, 236, 28, 3, 1, 235, 236, 28, 6, 1, 237, 180, 28, + 3, 1, 237, 180, 28, 6, 1, 200, 246, 255, 28, 3, 1, 200, 246, 255, 28, 6, + 1, 240, 146, 28, 3, 1, 240, 146, 28, 6, 1, 237, 201, 28, 3, 1, 237, 201, + 28, 6, 1, 231, 254, 253, 137, 28, 3, 1, 231, 254, 253, 137, 28, 6, 1, + 241, 104, 237, 68, 28, 3, 1, 241, 104, 237, 68, 28, 6, 1, 235, 195, 247, + 118, 28, 3, 1, 235, 195, 247, 118, 28, 6, 1, 247, 119, 2, 247, 248, 247, + 118, 28, 3, 1, 247, 119, 2, 247, 248, 247, 118, 28, 6, 1, 233, 93, 247, + 25, 28, 3, 1, 233, 93, 247, 25, 28, 6, 1, 200, 252, 233, 28, 3, 1, 200, + 252, 233, 28, 6, 1, 233, 93, 57, 28, 3, 1, 233, 93, 57, 28, 6, 1, 237, + 58, 237, 102, 246, 183, 28, 3, 1, 237, 58, 237, 102, 246, 183, 28, 6, 1, + 235, 153, 246, 183, 28, 3, 1, 235, 153, 246, 183, 28, 6, 1, 233, 93, 237, + 58, 237, 102, 246, 183, 28, 3, 1, 233, 93, 237, 58, 237, 102, 246, 183, + 28, 6, 1, 253, 202, 28, 3, 1, 253, 202, 28, 6, 1, 246, 227, 253, 20, 28, + 3, 1, 246, 227, 253, 20, 28, 6, 1, 246, 227, 253, 58, 28, 3, 1, 246, 227, + 253, 58, 28, 6, 1, 246, 227, 253, 87, 28, 3, 1, 246, 227, 253, 87, 28, 6, + 1, 231, 241, 73, 28, 3, 1, 231, 241, 73, 28, 6, 1, 232, 15, 73, 28, 3, 1, + 232, 15, 73, 28, 6, 1, 47, 231, 241, 73, 28, 3, 1, 47, 231, 241, 73, 28, + 1, 230, 80, 73, 36, 28, 240, 80, 36, 28, 253, 53, 233, 152, 53, 36, 28, + 235, 56, 233, 152, 53, 36, 28, 233, 117, 233, 152, 53, 234, 225, 231, + 198, 36, 28, 235, 181, 36, 28, 233, 225, 28, 235, 181, 28, 233, 225, 28, + 6, 1, 247, 134, 28, 3, 1, 247, 134, 28, 6, 1, 241, 124, 28, 3, 1, 241, + 124, 28, 6, 1, 242, 38, 28, 3, 1, 242, 38, 28, 6, 1, 241, 30, 28, 3, 1, + 241, 30, 28, 6, 1, 241, 125, 28, 3, 1, 241, 125, 28, 6, 1, 254, 212, 2, + 237, 44, 88, 28, 3, 1, 254, 212, 2, 237, 44, 88, 28, 6, 1, 247, 59, 28, + 3, 1, 247, 59, 28, 6, 1, 242, 12, 28, 3, 1, 242, 12, 28, 6, 1, 242, 11, + 28, 3, 1, 242, 11, 28, 6, 1, 241, 255, 28, 3, 1, 241, 255, 28, 6, 1, 247, + 151, 28, 3, 1, 247, 151, 28, 6, 1, 241, 16, 28, 3, 1, 241, 16, 52, 1, + 235, 63, 206, 253, 122, 241, 62, 52, 1, 235, 63, 206, 247, 24, 241, 62, + 52, 1, 235, 63, 206, 253, 122, 238, 48, 52, 1, 235, 63, 206, 247, 24, + 238, 48, 52, 1, 235, 63, 206, 253, 122, 253, 132, 52, 1, 235, 63, 206, + 247, 24, 253, 132, 52, 1, 235, 63, 206, 253, 122, 253, 3, 52, 1, 235, 63, + 206, 247, 24, 253, 3, 52, 1, 230, 153, 237, 50, 206, 125, 52, 1, 201, + 237, 50, 206, 125, 52, 1, 253, 152, 237, 50, 206, 125, 52, 1, 184, 237, + 50, 206, 125, 52, 1, 231, 237, 237, 50, 206, 125, 52, 1, 230, 153, 237, + 50, 231, 211, 206, 125, 52, 1, 201, 237, 50, 231, 211, 206, 125, 52, 1, + 253, 152, 237, 50, 231, 211, 206, 125, 52, 1, 184, 237, 50, 231, 211, + 206, 125, 52, 1, 231, 237, 237, 50, 231, 211, 206, 125, 52, 1, 230, 153, + 231, 211, 206, 125, 52, 1, 201, 231, 211, 206, 125, 52, 1, 253, 152, 231, + 211, 206, 125, 52, 1, 184, 231, 211, 206, 125, 52, 1, 231, 237, 231, 211, + 206, 125, 52, 1, 56, 61, 125, 52, 1, 56, 237, 84, 52, 1, 56, 169, 125, + 52, 1, 203, 41, 237, 79, 237, 98, 52, 1, 237, 105, 99, 58, 52, 1, 237, + 105, 103, 58, 52, 1, 237, 105, 229, 165, 76, 52, 1, 237, 105, 233, 70, + 229, 165, 76, 52, 1, 184, 233, 70, 229, 165, 76, 52, 1, 237, 165, 22, + 201, 240, 167, 52, 1, 237, 165, 22, 184, 240, 167, 7, 6, 1, 227, 192, + 240, 174, 7, 3, 1, 227, 192, 240, 174, 7, 6, 1, 227, 192, 246, 224, 7, 3, + 1, 227, 192, 246, 224, 7, 6, 1, 241, 153, 7, 3, 1, 241, 153, 7, 6, 1, + 254, 13, 7, 3, 1, 254, 13, 7, 6, 1, 232, 56, 7, 3, 1, 232, 56, 7, 6, 1, + 230, 180, 7, 3, 1, 230, 180, 7, 6, 1, 232, 18, 2, 237, 67, 7, 3, 1, 232, + 18, 2, 237, 67, 7, 1, 3, 6, 254, 191, 7, 1, 3, 6, 193, 7, 6, 1, 252, 212, + 7, 3, 1, 252, 212, 7, 6, 1, 253, 168, 7, 3, 1, 253, 168, 7, 6, 1, 252, + 222, 7, 3, 1, 252, 222, 7, 6, 1, 253, 169, 7, 3, 1, 253, 169, 7, 6, 1, + 255, 2, 2, 169, 125, 7, 3, 1, 255, 2, 2, 169, 125, 7, 6, 1, 253, 114, 7, + 3, 1, 253, 114, 7, 6, 1, 200, 255, 62, 2, 246, 164, 7, 3, 1, 200, 255, + 62, 2, 246, 164, 7, 6, 1, 255, 67, 2, 82, 7, 3, 1, 255, 67, 2, 82, 7, 6, + 1, 255, 67, 2, 233, 74, 82, 7, 3, 1, 255, 67, 2, 233, 74, 82, 7, 6, 1, + 255, 67, 2, 195, 22, 233, 74, 82, 7, 3, 1, 255, 67, 2, 195, 22, 233, 74, + 82, 7, 6, 1, 237, 150, 149, 7, 3, 1, 237, 150, 149, 7, 6, 1, 255, 58, 2, + 201, 82, 7, 3, 1, 255, 58, 2, 201, 82, 7, 6, 1, 130, 2, 182, 195, 233, + 87, 7, 3, 1, 130, 2, 182, 195, 233, 87, 7, 6, 1, 130, 2, 240, 202, 7, 3, + 1, 130, 2, 240, 202, 7, 6, 1, 252, 220, 7, 3, 1, 252, 220, 7, 6, 1, 255, + 70, 2, 195, 235, 42, 230, 126, 7, 3, 1, 255, 70, 2, 195, 235, 42, 230, + 126, 7, 6, 1, 255, 70, 2, 232, 22, 7, 3, 1, 255, 70, 2, 232, 22, 7, 6, 1, + 255, 70, 2, 233, 241, 240, 133, 7, 3, 1, 255, 70, 2, 233, 241, 240, 133, + 7, 6, 1, 255, 75, 2, 195, 235, 42, 230, 126, 7, 3, 1, 255, 75, 2, 195, + 235, 42, 230, 126, 7, 6, 1, 255, 75, 2, 233, 74, 82, 7, 3, 1, 255, 75, 2, + 233, 74, 82, 7, 6, 1, 255, 57, 233, 143, 7, 3, 1, 255, 57, 233, 143, 7, + 6, 1, 254, 5, 233, 143, 7, 3, 1, 254, 5, 233, 143, 7, 6, 1, 255, 69, 2, + 233, 74, 82, 7, 3, 1, 255, 69, 2, 233, 74, 82, 7, 6, 1, 253, 201, 7, 3, + 1, 253, 201, 7, 6, 1, 230, 219, 254, 193, 7, 3, 1, 230, 219, 254, 193, 7, + 6, 1, 241, 19, 2, 82, 7, 3, 1, 241, 19, 2, 82, 7, 6, 1, 241, 19, 2, 195, + 235, 42, 230, 126, 7, 3, 1, 241, 19, 2, 195, 235, 42, 230, 126, 7, 6, 1, + 242, 18, 7, 3, 1, 242, 18, 7, 6, 1, 253, 125, 7, 3, 1, 253, 125, 7, 6, 1, + 253, 182, 7, 3, 1, 253, 182, 7, 6, 1, 248, 10, 7, 3, 1, 248, 10, 52, 1, + 254, 165, 7, 3, 1, 249, 211, 7, 3, 1, 247, 18, 7, 3, 1, 251, 26, 7, 3, 1, + 251, 79, 7, 3, 1, 248, 152, 7, 1, 3, 6, 248, 152, 7, 3, 1, 248, 184, 7, + 3, 1, 253, 199, 7, 6, 1, 235, 38, 222, 222, 7, 3, 1, 235, 38, 222, 222, + 7, 6, 1, 235, 38, 254, 191, 7, 3, 1, 235, 38, 254, 191, 7, 6, 1, 235, 38, + 214, 7, 6, 1, 209, 235, 38, 214, 7, 3, 1, 209, 235, 38, 214, 7, 6, 1, + 209, 149, 7, 3, 1, 209, 149, 7, 6, 1, 235, 38, 146, 7, 3, 1, 235, 38, + 146, 7, 6, 1, 235, 38, 193, 7, 3, 1, 235, 38, 193, 7, 6, 1, 235, 38, 254, + 183, 7, 3, 1, 235, 38, 254, 183, 52, 1, 184, 230, 125, 235, 24, 52, 1, + 237, 66, 52, 1, 240, 125, 237, 51, 53, 7, 6, 1, 232, 44, 7, 3, 1, 232, + 44, 7, 230, 146, 1, 200, 254, 191, 7, 230, 146, 1, 200, 254, 187, 7, 230, + 146, 1, 233, 70, 185, 7, 230, 146, 1, 255, 55, 238, 22, 7, 230, 146, 1, + 235, 83, 185, 237, 42, 240, 127, 1, 57, 237, 42, 240, 127, 1, 74, 237, + 42, 240, 127, 5, 232, 176, 237, 42, 240, 127, 1, 66, 237, 42, 240, 127, + 1, 72, 237, 42, 240, 127, 1, 73, 237, 42, 240, 127, 5, 234, 117, 237, 42, + 240, 127, 1, 253, 33, 237, 42, 240, 127, 1, 247, 158, 237, 42, 240, 127, + 1, 253, 76, 237, 42, 240, 127, 1, 248, 52, 237, 42, 240, 127, 5, 231, + 206, 237, 42, 240, 127, 1, 253, 66, 237, 42, 240, 127, 1, 247, 29, 237, + 42, 240, 127, 1, 253, 90, 237, 42, 240, 127, 1, 250, 129, 237, 42, 240, + 127, 1, 247, 217, 237, 42, 240, 127, 1, 241, 82, 237, 42, 240, 127, 1, + 247, 130, 237, 42, 240, 127, 1, 243, 38, 237, 42, 240, 127, 1, 96, 237, + 42, 240, 127, 1, 246, 228, 237, 42, 240, 127, 1, 253, 57, 237, 42, 240, + 127, 1, 248, 26, 237, 42, 240, 127, 1, 253, 8, 237, 42, 240, 127, 1, 253, + 50, 237, 42, 240, 127, 1, 247, 99, 237, 42, 240, 127, 1, 253, 98, 237, + 42, 240, 127, 1, 247, 254, 237, 42, 240, 127, 1, 253, 14, 237, 42, 240, + 127, 1, 252, 246, 237, 42, 240, 127, 1, 253, 49, 237, 42, 240, 127, 1, + 248, 151, 237, 42, 240, 127, 1, 253, 25, 237, 42, 240, 127, 1, 253, 21, + 237, 42, 240, 127, 31, 5, 57, 237, 42, 240, 127, 31, 5, 74, 237, 42, 240, + 127, 31, 5, 66, 237, 42, 240, 127, 31, 5, 72, 237, 42, 240, 127, 31, 5, + 252, 220, 237, 42, 240, 127, 237, 189, 235, 190, 237, 42, 240, 127, 237, + 189, 235, 191, 237, 42, 240, 127, 237, 189, 236, 146, 237, 42, 240, 127, + 237, 189, 236, 147, 217, 1, 177, 217, 1, 246, 178, 217, 1, 252, 205, 217, + 1, 246, 169, 217, 1, 252, 215, 217, 1, 246, 176, 217, 1, 252, 213, 217, + 1, 246, 181, 217, 1, 252, 202, 217, 1, 246, 173, 217, 1, 252, 203, 217, + 1, 252, 201, 217, 1, 213, 217, 1, 246, 182, 217, 1, 252, 211, 217, 1, + 198, 217, 1, 246, 216, 217, 1, 240, 240, 217, 1, 246, 254, 217, 1, 252, + 208, 217, 1, 246, 223, 217, 1, 252, 226, 217, 1, 3, 57, 217, 1, 191, 217, + 1, 208, 217, 1, 252, 200, 217, 1, 246, 165, 217, 1, 252, 204, 217, 1, + 154, 217, 1, 57, 217, 1, 74, 217, 1, 66, 217, 1, 72, 217, 1, 73, 217, 1, + 253, 35, 217, 1, 253, 83, 217, 1, 252, 234, 217, 1, 247, 77, 217, 1, 252, + 231, 217, 231, 189, 1, 252, 208, 217, 231, 189, 1, 191, 217, 1, 246, 191, + 217, 1, 240, 150, 217, 1, 246, 192, 217, 1, 246, 203, 217, 1, 231, 235, + 191, 217, 1, 233, 62, 246, 165, 217, 1, 237, 107, 154, 217, 1, 232, 78, + 252, 234, 217, 231, 189, 1, 208, 217, 231, 149, 1, 208, 217, 1, 228, 184, + 217, 237, 62, 247, 148, 76, 217, 47, 247, 148, 76, 217, 165, 240, 192, + 217, 165, 47, 240, 192, 141, 5, 231, 206, 141, 5, 233, 102, 141, 1, 57, + 141, 1, 252, 212, 141, 1, 74, 141, 1, 252, 216, 141, 1, 66, 141, 1, 252, + 224, 141, 1, 153, 146, 141, 1, 153, 252, 249, 141, 1, 153, 149, 141, 1, + 153, 252, 245, 141, 1, 72, 141, 1, 252, 231, 141, 1, 252, 221, 141, 1, + 73, 141, 1, 252, 220, 141, 1, 252, 222, 141, 1, 177, 141, 1, 246, 178, + 141, 1, 252, 205, 141, 1, 246, 202, 141, 1, 246, 169, 141, 1, 252, 215, + 141, 1, 246, 176, 141, 1, 252, 213, 141, 1, 246, 213, 141, 1, 246, 181, + 141, 1, 246, 191, 141, 1, 240, 150, 141, 1, 246, 192, 141, 1, 240, 166, + 141, 1, 246, 203, 141, 1, 252, 202, 141, 1, 246, 173, 141, 1, 252, 203, + 141, 1, 246, 196, 141, 1, 252, 201, 141, 1, 213, 141, 1, 246, 182, 141, + 1, 252, 211, 141, 1, 246, 199, 141, 1, 198, 141, 1, 191, 141, 1, 208, + 141, 1, 252, 200, 141, 1, 252, 243, 141, 1, 246, 165, 141, 1, 246, 190, + 141, 1, 252, 204, 141, 1, 154, 141, 1, 246, 225, 141, 231, 194, 5, 239, + 2, 141, 31, 5, 252, 212, 141, 31, 5, 74, 141, 31, 5, 252, 216, 141, 31, + 5, 66, 141, 31, 5, 252, 224, 141, 31, 5, 153, 146, 141, 31, 5, 153, 252, + 249, 141, 31, 5, 153, 149, 141, 31, 5, 153, 252, 245, 141, 31, 5, 72, + 141, 31, 5, 252, 231, 141, 31, 5, 252, 221, 141, 31, 5, 73, 141, 31, 5, + 252, 220, 141, 31, 5, 252, 222, 141, 5, 235, 43, 141, 237, 109, 141, 47, + 237, 109, 141, 21, 240, 126, 141, 21, 118, 141, 21, 113, 141, 21, 166, + 141, 21, 158, 141, 21, 173, 141, 21, 183, 141, 21, 194, 141, 21, 187, + 141, 21, 192, 240, 119, 254, 188, 21, 240, 126, 240, 119, 254, 188, 21, + 118, 240, 119, 254, 188, 21, 113, 240, 119, 254, 188, 21, 166, 240, 119, + 254, 188, 21, 158, 240, 119, 254, 188, 21, 173, 240, 119, 254, 188, 21, + 183, 240, 119, 254, 188, 21, 194, 240, 119, 254, 188, 21, 187, 240, 119, + 254, 188, 21, 192, 240, 119, 254, 188, 1, 177, 240, 119, 254, 188, 1, + 246, 178, 240, 119, 254, 188, 1, 252, 205, 240, 119, 254, 188, 1, 246, + 169, 240, 119, 254, 188, 1, 252, 204, 240, 119, 254, 188, 1, 246, 165, + 240, 119, 254, 188, 1, 252, 226, 240, 119, 254, 188, 1, 246, 181, 240, + 119, 254, 188, 1, 252, 202, 240, 119, 254, 188, 1, 250, 95, 240, 119, + 254, 188, 1, 252, 201, 240, 119, 254, 188, 1, 213, 240, 119, 254, 188, 1, + 246, 182, 240, 119, 254, 188, 1, 198, 240, 119, 254, 188, 1, 252, 203, + 240, 119, 254, 188, 1, 252, 211, 240, 119, 254, 188, 1, 208, 240, 119, + 254, 188, 1, 191, 240, 119, 254, 188, 1, 252, 200, 240, 119, 254, 188, 1, + 252, 208, 240, 119, 254, 188, 1, 246, 173, 240, 119, 254, 188, 1, 154, + 240, 119, 254, 188, 1, 252, 243, 240, 119, 254, 188, 1, 252, 215, 240, + 119, 254, 188, 1, 57, 240, 119, 254, 188, 1, 253, 15, 240, 119, 254, 188, + 1, 74, 240, 119, 254, 188, 1, 252, 220, 240, 119, 254, 188, 31, 253, 71, + 240, 119, 254, 188, 31, 72, 240, 119, 254, 188, 31, 66, 240, 119, 254, + 188, 31, 252, 231, 240, 119, 254, 188, 31, 73, 240, 119, 254, 188, 206, + 235, 203, 240, 119, 254, 188, 206, 238, 135, 240, 119, 254, 188, 206, + 242, 232, 235, 203, 240, 119, 254, 188, 5, 247, 129, 240, 119, 254, 188, + 5, 245, 177, 237, 47, 1, 177, 237, 47, 1, 252, 205, 237, 47, 1, 246, 169, + 237, 47, 1, 252, 202, 237, 47, 1, 252, 203, 237, 47, 1, 252, 201, 237, + 47, 1, 213, 237, 47, 1, 252, 211, 237, 47, 1, 198, 237, 47, 1, 252, 215, + 237, 47, 1, 252, 213, 237, 47, 1, 246, 181, 237, 47, 1, 252, 204, 237, + 47, 1, 208, 237, 47, 1, 252, 200, 237, 47, 1, 191, 237, 47, 1, 252, 208, + 237, 47, 1, 154, 237, 47, 1, 248, 99, 237, 47, 1, 241, 201, 237, 47, 1, + 247, 180, 237, 47, 1, 245, 24, 237, 47, 1, 57, 237, 47, 31, 5, 74, 237, + 47, 31, 5, 66, 237, 47, 31, 5, 72, 237, 47, 31, 5, 252, 221, 237, 47, 31, + 5, 73, 237, 47, 31, 5, 252, 222, 237, 47, 31, 5, 253, 100, 237, 47, 31, + 5, 254, 49, 237, 47, 231, 194, 5, 253, 69, 237, 47, 231, 194, 5, 199, + 237, 47, 231, 194, 5, 146, 237, 47, 231, 194, 5, 212, 237, 47, 235, 43, + 237, 47, 235, 135, 76, 136, 1, 57, 136, 1, 74, 136, 1, 66, 136, 1, 72, + 136, 1, 252, 221, 136, 1, 73, 136, 1, 177, 136, 1, 246, 178, 136, 1, 252, + 205, 136, 1, 246, 202, 136, 1, 244, 223, 136, 1, 246, 169, 136, 1, 246, + 176, 136, 1, 242, 250, 136, 1, 252, 213, 136, 1, 246, 213, 136, 1, 244, + 226, 136, 1, 251, 57, 136, 1, 244, 225, 136, 1, 252, 202, 136, 1, 246, + 173, 136, 1, 252, 203, 136, 1, 246, 196, 136, 1, 251, 77, 136, 1, 252, + 201, 136, 1, 246, 192, 136, 1, 213, 136, 1, 251, 117, 136, 1, 246, 182, + 136, 1, 252, 211, 136, 1, 246, 199, 136, 1, 251, 25, 136, 1, 198, 136, 1, + 247, 66, 136, 1, 191, 136, 1, 208, 136, 1, 252, 200, 136, 1, 252, 243, + 136, 1, 246, 190, 136, 1, 252, 204, 136, 1, 154, 136, 31, 5, 252, 212, + 136, 31, 5, 74, 136, 31, 5, 252, 216, 136, 31, 5, 253, 176, 136, 31, 5, + 66, 136, 31, 5, 253, 15, 136, 31, 5, 73, 136, 31, 5, 252, 221, 136, 31, + 5, 252, 222, 136, 31, 5, 253, 71, 136, 231, 194, 5, 191, 136, 231, 194, + 5, 208, 136, 231, 194, 5, 252, 200, 136, 231, 194, 5, 252, 208, 136, 1, + 35, 254, 186, 136, 1, 35, 214, 136, 1, 35, 253, 69, 136, 231, 194, 5, 35, + 253, 69, 136, 1, 35, 253, 211, 136, 1, 35, 254, 183, 136, 1, 35, 199, + 136, 1, 35, 254, 187, 136, 1, 35, 254, 190, 136, 1, 35, 146, 136, 1, 35, + 149, 136, 1, 35, 253, 194, 136, 231, 194, 5, 35, 185, 136, 231, 194, 5, + 35, 212, 136, 21, 240, 126, 136, 21, 118, 136, 21, 113, 136, 21, 166, + 136, 21, 158, 136, 21, 173, 136, 21, 183, 136, 21, 194, 136, 21, 187, + 136, 21, 192, 136, 229, 161, 236, 236, 136, 229, 161, 237, 109, 136, 229, + 161, 47, 237, 109, 136, 229, 161, 237, 49, 237, 109, 9, 11, 225, 115, 9, + 11, 225, 116, 9, 11, 225, 117, 9, 11, 225, 118, 9, 11, 225, 119, 9, 11, + 225, 120, 9, 11, 225, 121, 9, 11, 225, 122, 9, 11, 225, 123, 9, 11, 225, + 124, 9, 11, 225, 125, 9, 11, 225, 126, 9, 11, 225, 127, 9, 11, 225, 128, + 9, 11, 225, 129, 9, 11, 225, 130, 9, 11, 225, 131, 9, 11, 225, 132, 9, + 11, 225, 133, 9, 11, 225, 134, 9, 11, 225, 135, 9, 11, 225, 136, 9, 11, + 225, 137, 9, 11, 225, 138, 9, 11, 225, 139, 9, 11, 225, 140, 9, 11, 225, + 141, 9, 11, 225, 142, 9, 11, 225, 143, 9, 11, 225, 144, 9, 11, 225, 145, + 9, 11, 225, 146, 9, 11, 225, 147, 9, 11, 225, 148, 9, 11, 225, 149, 9, + 11, 225, 150, 9, 11, 225, 151, 9, 11, 225, 152, 9, 11, 225, 153, 9, 11, + 225, 154, 9, 11, 225, 155, 9, 11, 225, 156, 9, 11, 225, 157, 9, 11, 225, + 158, 9, 11, 225, 159, 9, 11, 225, 160, 9, 11, 225, 161, 9, 11, 225, 162, + 9, 11, 225, 163, 9, 11, 225, 164, 9, 11, 225, 165, 9, 11, 225, 166, 9, + 11, 225, 167, 9, 11, 225, 168, 9, 11, 225, 169, 9, 11, 225, 170, 9, 11, + 225, 171, 9, 11, 225, 172, 9, 11, 225, 173, 9, 11, 225, 174, 9, 11, 225, + 175, 9, 11, 225, 176, 9, 11, 225, 177, 9, 11, 225, 178, 9, 11, 225, 179, + 9, 11, 225, 180, 9, 11, 225, 181, 9, 11, 225, 182, 9, 11, 225, 183, 9, + 11, 225, 184, 9, 11, 225, 185, 9, 11, 225, 186, 9, 11, 225, 187, 9, 11, + 225, 188, 9, 11, 225, 189, 9, 11, 225, 190, 9, 11, 225, 191, 9, 11, 225, + 192, 9, 11, 225, 193, 9, 11, 225, 194, 9, 11, 225, 195, 9, 11, 225, 196, + 9, 11, 225, 197, 9, 11, 225, 198, 9, 11, 225, 199, 9, 11, 225, 200, 9, + 11, 225, 201, 9, 11, 225, 202, 9, 11, 225, 203, 9, 11, 225, 204, 9, 11, + 225, 205, 9, 11, 225, 206, 9, 11, 225, 207, 9, 11, 225, 208, 9, 11, 225, + 209, 9, 11, 225, 210, 9, 11, 225, 211, 9, 11, 225, 212, 9, 11, 225, 213, + 9, 11, 225, 214, 9, 11, 225, 215, 9, 11, 225, 216, 9, 11, 225, 217, 9, + 11, 225, 218, 9, 11, 225, 219, 9, 11, 225, 220, 9, 11, 225, 221, 9, 11, + 225, 222, 9, 11, 225, 223, 9, 11, 225, 224, 9, 11, 225, 225, 9, 11, 225, + 226, 9, 11, 225, 227, 9, 11, 225, 228, 9, 11, 225, 229, 9, 11, 225, 230, + 9, 11, 225, 231, 9, 11, 225, 232, 9, 11, 225, 233, 9, 11, 225, 234, 9, + 11, 225, 235, 9, 11, 225, 236, 9, 11, 225, 237, 9, 11, 225, 238, 9, 11, + 225, 239, 9, 11, 225, 240, 9, 11, 225, 241, 9, 11, 225, 242, 9, 11, 225, + 243, 9, 11, 225, 244, 9, 11, 225, 245, 9, 11, 225, 246, 9, 11, 225, 247, + 9, 11, 225, 248, 9, 11, 225, 249, 9, 11, 225, 250, 9, 11, 225, 251, 9, + 11, 225, 252, 9, 11, 225, 253, 9, 11, 225, 254, 9, 11, 225, 255, 9, 11, + 226, 0, 9, 11, 226, 1, 9, 11, 226, 2, 9, 11, 226, 3, 9, 11, 226, 4, 9, + 11, 226, 5, 9, 11, 226, 6, 9, 11, 226, 7, 9, 11, 226, 8, 9, 11, 226, 9, + 9, 11, 226, 10, 9, 11, 226, 11, 9, 11, 226, 12, 9, 11, 226, 13, 9, 11, + 226, 14, 9, 11, 226, 15, 9, 11, 226, 16, 9, 11, 226, 17, 9, 11, 226, 18, + 9, 11, 226, 19, 9, 11, 226, 20, 9, 11, 226, 21, 9, 11, 226, 22, 9, 11, + 226, 23, 9, 11, 226, 24, 9, 11, 226, 25, 9, 11, 226, 26, 9, 11, 226, 27, + 9, 11, 226, 28, 9, 11, 226, 29, 9, 11, 226, 30, 9, 11, 226, 31, 9, 11, + 226, 32, 9, 11, 226, 33, 9, 11, 226, 34, 9, 11, 226, 35, 9, 11, 226, 36, + 9, 11, 226, 37, 9, 11, 226, 38, 9, 11, 226, 39, 9, 11, 226, 40, 9, 11, + 226, 41, 9, 11, 226, 42, 9, 11, 226, 43, 9, 11, 226, 44, 9, 11, 226, 45, + 9, 11, 226, 46, 9, 11, 226, 47, 9, 11, 226, 48, 9, 11, 226, 49, 9, 11, + 226, 50, 9, 11, 226, 51, 9, 11, 226, 52, 9, 11, 226, 53, 9, 11, 226, 54, + 9, 11, 226, 55, 9, 11, 226, 56, 9, 11, 226, 57, 9, 11, 226, 58, 9, 11, + 226, 59, 9, 11, 226, 60, 9, 11, 226, 61, 9, 11, 226, 62, 9, 11, 226, 63, + 9, 11, 226, 64, 9, 11, 226, 65, 9, 11, 226, 66, 9, 11, 226, 67, 9, 11, + 226, 68, 9, 11, 226, 69, 9, 11, 226, 70, 9, 11, 226, 71, 9, 11, 226, 72, + 9, 11, 226, 73, 9, 11, 226, 74, 9, 11, 226, 75, 9, 11, 226, 76, 9, 11, + 226, 77, 9, 11, 226, 78, 9, 11, 226, 79, 9, 11, 226, 80, 9, 11, 226, 81, + 9, 11, 226, 82, 9, 11, 226, 83, 9, 11, 226, 84, 9, 11, 226, 85, 9, 11, + 226, 86, 9, 11, 226, 87, 9, 11, 226, 88, 9, 11, 226, 89, 9, 11, 226, 90, + 9, 11, 226, 91, 9, 11, 226, 92, 9, 11, 226, 93, 9, 11, 226, 94, 9, 11, + 226, 95, 9, 11, 226, 96, 9, 11, 226, 97, 9, 11, 226, 98, 9, 11, 226, 99, + 9, 11, 226, 100, 9, 11, 226, 101, 9, 11, 226, 102, 9, 11, 226, 103, 9, + 11, 226, 104, 9, 11, 226, 105, 9, 11, 226, 106, 9, 11, 226, 107, 9, 11, + 226, 108, 9, 11, 226, 109, 9, 11, 226, 110, 9, 11, 226, 111, 9, 11, 226, + 112, 9, 11, 226, 113, 9, 11, 226, 114, 9, 11, 226, 115, 9, 11, 226, 116, + 9, 11, 226, 117, 9, 11, 226, 118, 9, 11, 226, 119, 9, 11, 226, 120, 9, + 11, 226, 121, 9, 11, 226, 122, 9, 11, 226, 123, 9, 11, 226, 124, 9, 11, + 226, 125, 9, 11, 226, 126, 9, 11, 226, 127, 9, 11, 226, 128, 9, 11, 226, + 129, 9, 11, 226, 130, 9, 11, 226, 131, 9, 11, 226, 132, 9, 11, 226, 133, + 9, 11, 226, 134, 9, 11, 226, 135, 9, 11, 226, 136, 9, 11, 226, 137, 9, + 11, 226, 138, 9, 11, 226, 139, 9, 11, 226, 140, 9, 11, 226, 141, 9, 11, + 226, 142, 9, 11, 226, 143, 9, 11, 226, 144, 9, 11, 226, 145, 9, 11, 226, + 146, 9, 11, 226, 147, 9, 11, 226, 148, 9, 11, 226, 149, 9, 11, 226, 150, + 9, 11, 226, 151, 9, 11, 226, 152, 9, 11, 226, 153, 9, 11, 226, 154, 9, + 11, 226, 155, 9, 11, 226, 156, 9, 11, 226, 157, 9, 11, 226, 158, 9, 11, + 226, 159, 9, 11, 226, 160, 9, 11, 226, 161, 9, 11, 226, 162, 9, 11, 226, + 163, 9, 11, 226, 164, 9, 11, 226, 165, 9, 11, 226, 166, 9, 11, 226, 167, + 9, 11, 226, 168, 9, 11, 226, 169, 9, 11, 226, 170, 9, 11, 226, 171, 9, + 11, 226, 172, 9, 11, 226, 173, 9, 11, 226, 174, 9, 11, 226, 175, 9, 11, + 226, 176, 9, 11, 226, 177, 9, 11, 226, 178, 9, 11, 226, 179, 9, 11, 226, + 180, 9, 11, 226, 181, 9, 11, 226, 182, 9, 11, 226, 183, 9, 11, 226, 184, + 9, 11, 226, 185, 9, 11, 226, 186, 9, 11, 226, 187, 9, 11, 226, 188, 9, + 11, 226, 189, 9, 11, 226, 190, 9, 11, 226, 191, 9, 11, 226, 192, 9, 11, + 226, 193, 9, 11, 226, 194, 9, 11, 226, 195, 9, 11, 226, 196, 9, 11, 226, + 197, 9, 11, 226, 198, 9, 11, 226, 199, 9, 11, 226, 200, 9, 11, 226, 201, + 9, 11, 226, 202, 9, 11, 226, 203, 9, 11, 226, 204, 9, 11, 226, 205, 9, + 11, 226, 206, 9, 11, 226, 207, 9, 11, 226, 208, 9, 11, 226, 209, 9, 11, + 226, 210, 9, 11, 226, 211, 9, 11, 226, 212, 9, 11, 226, 213, 9, 11, 226, + 214, 9, 11, 226, 215, 9, 11, 226, 216, 9, 11, 226, 217, 9, 11, 226, 218, + 9, 11, 226, 219, 9, 11, 226, 220, 9, 11, 226, 221, 9, 11, 226, 222, 9, + 11, 226, 223, 9, 11, 226, 224, 9, 11, 226, 225, 9, 11, 226, 226, 9, 11, + 226, 227, 9, 11, 226, 228, 9, 11, 226, 229, 9, 11, 226, 230, 9, 11, 226, + 231, 9, 11, 226, 232, 9, 11, 226, 233, 9, 11, 226, 234, 9, 11, 226, 235, + 9, 11, 226, 236, 9, 11, 226, 237, 9, 11, 226, 238, 9, 11, 226, 239, 9, + 11, 226, 240, 9, 11, 226, 241, 9, 11, 226, 242, 9, 11, 226, 243, 9, 11, + 226, 244, 9, 11, 226, 245, 9, 11, 226, 246, 9, 11, 226, 247, 9, 11, 226, + 248, 9, 11, 226, 249, 9, 11, 226, 250, 9, 11, 226, 251, 9, 11, 226, 252, + 9, 11, 226, 253, 9, 11, 226, 254, 9, 11, 226, 255, 9, 11, 227, 0, 9, 11, + 227, 1, 9, 11, 227, 2, 9, 11, 227, 3, 9, 11, 227, 4, 9, 11, 227, 5, 9, + 11, 227, 6, 9, 11, 227, 7, 9, 11, 227, 8, 9, 11, 227, 9, 9, 11, 227, 10, + 9, 11, 227, 11, 9, 11, 227, 12, 9, 11, 227, 13, 9, 11, 227, 14, 9, 11, + 227, 15, 9, 11, 227, 16, 9, 11, 227, 17, 9, 11, 227, 18, 9, 11, 227, 19, + 9, 11, 227, 20, 9, 11, 227, 21, 9, 11, 227, 22, 9, 11, 227, 23, 9, 11, + 227, 24, 9, 11, 227, 25, 9, 11, 227, 26, 9, 11, 227, 27, 9, 11, 227, 28, + 9, 11, 227, 29, 9, 11, 227, 30, 9, 11, 227, 31, 9, 11, 227, 32, 9, 11, + 227, 33, 9, 11, 227, 34, 9, 11, 227, 35, 9, 11, 227, 36, 9, 11, 227, 37, + 9, 11, 227, 38, 9, 11, 227, 39, 9, 11, 227, 40, 9, 11, 227, 41, 9, 11, + 227, 42, 9, 11, 227, 43, 9, 11, 227, 44, 9, 11, 227, 45, 9, 11, 227, 46, + 9, 11, 227, 47, 9, 11, 227, 48, 9, 11, 227, 49, 9, 11, 227, 50, 9, 11, + 227, 51, 9, 11, 227, 52, 9, 11, 227, 53, 9, 11, 227, 54, 9, 11, 227, 55, + 9, 11, 227, 56, 9, 11, 227, 57, 9, 11, 227, 58, 9, 11, 227, 59, 9, 11, + 227, 60, 9, 11, 227, 61, 9, 11, 227, 62, 9, 11, 227, 63, 9, 11, 227, 64, + 9, 11, 227, 65, 9, 11, 227, 66, 9, 11, 227, 67, 9, 11, 227, 68, 9, 11, + 227, 69, 7, 3, 20, 254, 54, 7, 3, 20, 253, 88, 7, 3, 20, 254, 55, 7, 3, + 20, 249, 245, 7, 3, 20, 249, 246, 7, 3, 20, 182, 255, 59, 254, 183, 7, 3, + 20, 253, 195, 120, 3, 20, 253, 151, 247, 94, 120, 3, 20, 253, 151, 247, + 137, 120, 3, 20, 253, 151, 247, 152, 120, 3, 20, 254, 168, 247, 94, 120, + 3, 20, 253, 151, 247, 229, 78, 1, 253, 164, 2, 238, 6, 78, 240, 143, 227, + 247, 237, 22, 78, 20, 235, 106, 253, 164, 253, 164, 237, 187, 78, 1, 229, + 182, 241, 97, 78, 1, 246, 240, 240, 174, 78, 1, 246, 240, 237, 238, 78, + 1, 246, 240, 252, 252, 78, 1, 246, 240, 247, 1, 78, 1, 246, 240, 237, + 205, 78, 1, 246, 240, 35, 247, 41, 78, 1, 246, 240, 241, 222, 78, 1, 246, + 240, 248, 171, 78, 1, 229, 182, 79, 53, 78, 1, 246, 244, 2, 246, 244, + 246, 164, 78, 1, 246, 244, 2, 253, 193, 246, 164, 78, 1, 246, 244, 2, + 237, 200, 22, 246, 244, 246, 164, 78, 1, 246, 244, 2, 237, 200, 22, 253, + 193, 246, 164, 78, 1, 92, 2, 237, 187, 78, 1, 92, 2, 235, 134, 78, 1, 92, + 2, 237, 206, 78, 1, 253, 171, 2, 235, 33, 78, 1, 241, 143, 2, 235, 33, + 78, 1, 241, 116, 2, 235, 33, 78, 1, 255, 29, 2, 237, 206, 78, 1, 253, + 200, 2, 235, 33, 78, 1, 246, 107, 2, 235, 33, 78, 1, 254, 158, 2, 235, + 33, 78, 1, 253, 164, 2, 235, 33, 78, 1, 35, 252, 214, 2, 235, 33, 78, 1, + 252, 214, 2, 235, 33, 78, 1, 244, 90, 2, 235, 33, 78, 1, 254, 100, 2, + 235, 33, 78, 1, 253, 23, 2, 235, 33, 78, 1, 239, 234, 2, 235, 33, 78, 1, + 35, 254, 231, 2, 235, 33, 78, 1, 254, 231, 2, 235, 33, 78, 1, 246, 8, 2, + 235, 33, 78, 1, 254, 140, 2, 235, 33, 78, 1, 251, 179, 2, 235, 33, 78, 1, + 246, 244, 2, 235, 33, 78, 1, 254, 156, 2, 235, 33, 78, 1, 253, 200, 2, + 238, 7, 78, 1, 253, 171, 2, 241, 11, 78, 1, 252, 214, 2, 241, 11, 78, 1, + 254, 231, 2, 241, 11, 78, 20, 92, 237, 205, 10, 1, 92, 242, 22, 44, 15, + 10, 1, 92, 242, 22, 35, 15, 10, 1, 247, 67, 44, 15, 10, 1, 247, 67, 35, + 15, 10, 1, 247, 67, 59, 15, 10, 1, 247, 67, 124, 15, 10, 1, 253, 158, 44, + 15, 10, 1, 253, 158, 35, 15, 10, 1, 253, 158, 59, 15, 10, 1, 253, 158, + 124, 15, 10, 1, 240, 244, 44, 15, 10, 1, 240, 244, 35, 15, 10, 1, 240, + 244, 59, 15, 10, 1, 240, 244, 124, 15, 10, 1, 237, 192, 44, 15, 10, 1, + 237, 192, 35, 15, 10, 1, 237, 192, 59, 15, 10, 1, 237, 192, 124, 15, 10, + 1, 241, 17, 44, 15, 10, 1, 241, 17, 35, 15, 10, 1, 241, 17, 59, 15, 10, + 1, 241, 17, 124, 15, 10, 1, 247, 110, 44, 15, 10, 1, 247, 110, 35, 15, + 10, 1, 247, 110, 59, 15, 10, 1, 247, 110, 124, 15, 10, 1, 253, 163, 44, + 15, 10, 1, 253, 163, 35, 15, 10, 1, 253, 163, 59, 15, 10, 1, 253, 163, + 124, 15, 10, 1, 241, 9, 44, 15, 10, 1, 241, 9, 35, 15, 10, 1, 241, 9, 59, + 15, 10, 1, 241, 9, 124, 15, 10, 1, 247, 72, 44, 15, 10, 1, 247, 72, 35, + 15, 10, 1, 247, 72, 59, 15, 10, 1, 247, 72, 124, 15, 10, 1, 247, 96, 44, + 15, 10, 1, 247, 96, 35, 15, 10, 1, 247, 96, 59, 15, 10, 1, 247, 96, 124, + 15, 10, 1, 240, 237, 44, 15, 10, 1, 240, 237, 35, 15, 10, 1, 240, 237, + 59, 15, 10, 1, 240, 237, 124, 15, 10, 1, 235, 100, 44, 15, 10, 1, 235, + 100, 35, 15, 10, 1, 235, 100, 59, 15, 10, 1, 235, 100, 124, 15, 10, 1, + 237, 239, 44, 15, 10, 1, 237, 239, 35, 15, 10, 1, 241, 115, 44, 15, 10, + 1, 241, 115, 35, 15, 10, 1, 253, 216, 44, 15, 10, 1, 253, 216, 35, 15, + 10, 1, 248, 21, 44, 15, 10, 1, 248, 21, 35, 15, 10, 1, 253, 235, 44, 15, + 10, 1, 253, 235, 35, 15, 10, 1, 248, 150, 44, 15, 10, 1, 248, 150, 35, + 15, 10, 1, 240, 191, 44, 15, 10, 1, 240, 191, 35, 15, 10, 1, 240, 191, + 59, 15, 10, 1, 240, 191, 124, 15, 10, 1, 253, 102, 44, 15, 10, 1, 253, + 102, 35, 15, 10, 1, 253, 102, 59, 15, 10, 1, 253, 102, 124, 15, 10, 1, + 247, 79, 44, 15, 10, 1, 247, 79, 35, 15, 10, 1, 247, 79, 59, 15, 10, 1, + 247, 79, 124, 15, 10, 1, 241, 7, 44, 15, 10, 1, 241, 7, 35, 15, 10, 1, + 241, 7, 59, 15, 10, 1, 241, 7, 124, 15, 10, 1, 246, 156, 238, 1, 44, 15, + 10, 1, 246, 156, 238, 1, 35, 15, 10, 1, 241, 12, 44, 15, 10, 1, 241, 12, + 35, 15, 10, 1, 241, 12, 59, 15, 10, 1, 241, 12, 124, 15, 10, 1, 252, 207, + 2, 62, 64, 44, 15, 10, 1, 252, 207, 2, 62, 64, 35, 15, 10, 1, 252, 207, + 247, 34, 44, 15, 10, 1, 252, 207, 247, 34, 35, 15, 10, 1, 252, 207, 247, + 34, 59, 15, 10, 1, 252, 207, 247, 34, 124, 15, 10, 1, 252, 207, 229, 179, + 44, 15, 10, 1, 252, 207, 229, 179, 35, 15, 10, 1, 252, 207, 229, 179, 59, + 15, 10, 1, 252, 207, 229, 179, 124, 15, 10, 1, 62, 237, 123, 44, 15, 10, + 1, 62, 237, 123, 35, 15, 10, 1, 62, 237, 123, 2, 164, 64, 44, 15, 10, 1, + 62, 237, 123, 2, 164, 64, 35, 15, 10, 1, 254, 241, 44, 15, 10, 1, 254, + 241, 35, 15, 10, 1, 254, 241, 59, 15, 10, 1, 254, 241, 124, 15, 10, 1, + 97, 44, 15, 10, 1, 97, 35, 15, 10, 1, 254, 222, 44, 15, 10, 1, 254, 222, + 35, 15, 10, 1, 254, 226, 44, 15, 10, 1, 254, 226, 35, 15, 10, 1, 97, 2, + 164, 64, 44, 15, 10, 1, 254, 254, 44, 15, 10, 1, 254, 254, 35, 15, 10, 1, + 235, 49, 254, 222, 44, 15, 10, 1, 235, 49, 254, 222, 35, 15, 10, 1, 235, + 49, 254, 226, 44, 15, 10, 1, 235, 49, 254, 226, 35, 15, 10, 1, 161, 44, + 15, 10, 1, 161, 35, 15, 10, 1, 161, 59, 15, 10, 1, 161, 124, 15, 10, 1, + 237, 167, 238, 13, 235, 49, 92, 175, 59, 15, 10, 1, 237, 167, 238, 13, + 235, 49, 92, 175, 124, 15, 10, 20, 62, 2, 164, 64, 2, 92, 44, 15, 10, 20, + 62, 2, 164, 64, 2, 92, 35, 15, 10, 20, 62, 2, 164, 64, 2, 254, 215, 44, + 15, 10, 20, 62, 2, 164, 64, 2, 254, 215, 35, 15, 10, 20, 62, 2, 164, 64, + 2, 253, 54, 44, 15, 10, 20, 62, 2, 164, 64, 2, 253, 54, 35, 15, 10, 20, + 62, 2, 164, 64, 2, 97, 44, 15, 10, 20, 62, 2, 164, 64, 2, 97, 35, 15, 10, + 20, 62, 2, 164, 64, 2, 254, 222, 44, 15, 10, 20, 62, 2, 164, 64, 2, 254, + 222, 35, 15, 10, 20, 62, 2, 164, 64, 2, 254, 226, 44, 15, 10, 20, 62, 2, + 164, 64, 2, 254, 226, 35, 15, 10, 20, 62, 2, 164, 64, 2, 161, 44, 15, 10, + 20, 62, 2, 164, 64, 2, 161, 35, 15, 10, 20, 62, 2, 164, 64, 2, 161, 59, + 15, 10, 20, 237, 167, 235, 49, 62, 2, 164, 64, 2, 92, 175, 44, 15, 10, + 20, 237, 167, 235, 49, 62, 2, 164, 64, 2, 92, 175, 35, 15, 10, 20, 237, + 167, 235, 49, 62, 2, 164, 64, 2, 92, 175, 59, 15, 10, 1, 240, 176, 62, + 44, 15, 10, 1, 240, 176, 62, 35, 15, 10, 1, 240, 176, 62, 59, 15, 10, 1, + 240, 176, 62, 124, 15, 10, 20, 62, 2, 164, 64, 2, 123, 44, 15, 10, 20, + 62, 2, 164, 64, 2, 101, 44, 15, 10, 20, 62, 2, 164, 64, 2, 55, 44, 15, + 10, 20, 62, 2, 164, 64, 2, 92, 175, 44, 15, 10, 20, 62, 2, 164, 64, 2, + 62, 44, 15, 10, 20, 252, 217, 2, 123, 44, 15, 10, 20, 252, 217, 2, 101, + 44, 15, 10, 20, 252, 217, 2, 202, 44, 15, 10, 20, 252, 217, 2, 55, 44, + 15, 10, 20, 252, 217, 2, 92, 175, 44, 15, 10, 20, 252, 217, 2, 62, 44, + 15, 10, 20, 252, 210, 2, 123, 44, 15, 10, 20, 252, 210, 2, 101, 44, 15, + 10, 20, 252, 210, 2, 202, 44, 15, 10, 20, 252, 210, 2, 55, 44, 15, 10, + 20, 252, 210, 2, 92, 175, 44, 15, 10, 20, 252, 210, 2, 62, 44, 15, 10, + 20, 246, 205, 2, 123, 44, 15, 10, 20, 246, 205, 2, 55, 44, 15, 10, 20, + 246, 205, 2, 92, 175, 44, 15, 10, 20, 246, 205, 2, 62, 44, 15, 10, 20, + 123, 2, 101, 44, 15, 10, 20, 123, 2, 55, 44, 15, 10, 20, 101, 2, 123, 44, + 15, 10, 20, 101, 2, 55, 44, 15, 10, 20, 202, 2, 123, 44, 15, 10, 20, 202, + 2, 101, 44, 15, 10, 20, 202, 2, 55, 44, 15, 10, 20, 246, 163, 2, 123, 44, + 15, 10, 20, 246, 163, 2, 101, 44, 15, 10, 20, 246, 163, 2, 202, 44, 15, + 10, 20, 246, 163, 2, 55, 44, 15, 10, 20, 252, 240, 2, 101, 44, 15, 10, + 20, 252, 240, 2, 55, 44, 15, 10, 20, 252, 237, 2, 123, 44, 15, 10, 20, + 252, 237, 2, 101, 44, 15, 10, 20, 252, 237, 2, 202, 44, 15, 10, 20, 252, + 237, 2, 55, 44, 15, 10, 20, 252, 241, 2, 101, 44, 15, 10, 20, 252, 241, + 2, 55, 44, 15, 10, 20, 253, 110, 2, 55, 44, 15, 10, 20, 252, 244, 2, 123, + 44, 15, 10, 20, 252, 244, 2, 55, 44, 15, 10, 20, 240, 157, 2, 123, 44, + 15, 10, 20, 240, 157, 2, 55, 44, 15, 10, 20, 252, 235, 2, 123, 44, 15, + 10, 20, 252, 235, 2, 101, 44, 15, 10, 20, 252, 235, 2, 202, 44, 15, 10, + 20, 252, 235, 2, 55, 44, 15, 10, 20, 252, 235, 2, 92, 175, 44, 15, 10, + 20, 252, 235, 2, 62, 44, 15, 10, 20, 253, 1, 2, 101, 44, 15, 10, 20, 253, + 1, 2, 55, 44, 15, 10, 20, 253, 1, 2, 92, 175, 44, 15, 10, 20, 253, 1, 2, + 62, 44, 15, 10, 20, 252, 214, 2, 92, 44, 15, 10, 20, 252, 214, 2, 123, + 44, 15, 10, 20, 252, 214, 2, 101, 44, 15, 10, 20, 252, 214, 2, 202, 44, + 15, 10, 20, 252, 214, 2, 216, 44, 15, 10, 20, 252, 214, 2, 55, 44, 15, + 10, 20, 252, 214, 2, 92, 175, 44, 15, 10, 20, 252, 214, 2, 62, 44, 15, + 10, 20, 216, 2, 123, 44, 15, 10, 20, 216, 2, 101, 44, 15, 10, 20, 216, 2, + 202, 44, 15, 10, 20, 216, 2, 55, 44, 15, 10, 20, 216, 2, 92, 175, 44, 15, + 10, 20, 216, 2, 62, 44, 15, 10, 20, 55, 2, 123, 44, 15, 10, 20, 55, 2, + 101, 44, 15, 10, 20, 55, 2, 202, 44, 15, 10, 20, 55, 2, 55, 44, 15, 10, + 20, 55, 2, 92, 175, 44, 15, 10, 20, 55, 2, 62, 44, 15, 10, 20, 246, 156, + 2, 123, 44, 15, 10, 20, 246, 156, 2, 101, 44, 15, 10, 20, 246, 156, 2, + 202, 44, 15, 10, 20, 246, 156, 2, 55, 44, 15, 10, 20, 246, 156, 2, 92, + 175, 44, 15, 10, 20, 246, 156, 2, 62, 44, 15, 10, 20, 252, 207, 2, 123, + 44, 15, 10, 20, 252, 207, 2, 55, 44, 15, 10, 20, 252, 207, 2, 92, 175, + 44, 15, 10, 20, 252, 207, 2, 62, 44, 15, 10, 20, 62, 2, 123, 44, 15, 10, + 20, 62, 2, 101, 44, 15, 10, 20, 62, 2, 202, 44, 15, 10, 20, 62, 2, 55, + 44, 15, 10, 20, 62, 2, 92, 175, 44, 15, 10, 20, 62, 2, 62, 44, 15, 10, + 20, 247, 211, 2, 229, 163, 92, 44, 15, 10, 20, 252, 225, 2, 229, 163, 92, + 44, 15, 10, 20, 92, 175, 2, 229, 163, 92, 44, 15, 10, 20, 237, 96, 2, + 233, 196, 44, 15, 10, 20, 237, 96, 2, 233, 210, 44, 15, 10, 20, 237, 96, + 2, 240, 224, 44, 15, 10, 20, 237, 96, 2, 240, 248, 44, 15, 10, 20, 237, + 96, 2, 241, 0, 44, 15, 10, 20, 237, 96, 2, 229, 163, 92, 44, 15, 10, 20, + 62, 2, 164, 64, 2, 252, 225, 35, 15, 10, 20, 62, 2, 164, 64, 2, 246, 250, + 35, 15, 10, 20, 62, 2, 164, 64, 2, 55, 35, 15, 10, 20, 62, 2, 164, 64, 2, + 246, 156, 35, 15, 10, 20, 62, 2, 164, 64, 2, 92, 175, 35, 15, 10, 20, 62, + 2, 164, 64, 2, 62, 35, 15, 10, 20, 252, 217, 2, 252, 225, 35, 15, 10, 20, + 252, 217, 2, 246, 250, 35, 15, 10, 20, 252, 217, 2, 55, 35, 15, 10, 20, + 252, 217, 2, 246, 156, 35, 15, 10, 20, 252, 217, 2, 92, 175, 35, 15, 10, + 20, 252, 217, 2, 62, 35, 15, 10, 20, 252, 210, 2, 252, 225, 35, 15, 10, + 20, 252, 210, 2, 246, 250, 35, 15, 10, 20, 252, 210, 2, 55, 35, 15, 10, + 20, 252, 210, 2, 246, 156, 35, 15, 10, 20, 252, 210, 2, 92, 175, 35, 15, + 10, 20, 252, 210, 2, 62, 35, 15, 10, 20, 246, 205, 2, 252, 225, 35, 15, + 10, 20, 246, 205, 2, 246, 250, 35, 15, 10, 20, 246, 205, 2, 55, 35, 15, + 10, 20, 246, 205, 2, 246, 156, 35, 15, 10, 20, 246, 205, 2, 92, 175, 35, + 15, 10, 20, 246, 205, 2, 62, 35, 15, 10, 20, 252, 235, 2, 92, 175, 35, + 15, 10, 20, 252, 235, 2, 62, 35, 15, 10, 20, 253, 1, 2, 92, 175, 35, 15, + 10, 20, 253, 1, 2, 62, 35, 15, 10, 20, 252, 214, 2, 92, 35, 15, 10, 20, + 252, 214, 2, 216, 35, 15, 10, 20, 252, 214, 2, 55, 35, 15, 10, 20, 252, + 214, 2, 92, 175, 35, 15, 10, 20, 252, 214, 2, 62, 35, 15, 10, 20, 216, 2, + 55, 35, 15, 10, 20, 216, 2, 92, 175, 35, 15, 10, 20, 216, 2, 62, 35, 15, + 10, 20, 55, 2, 92, 35, 15, 10, 20, 55, 2, 55, 35, 15, 10, 20, 246, 156, + 2, 252, 225, 35, 15, 10, 20, 246, 156, 2, 246, 250, 35, 15, 10, 20, 246, + 156, 2, 55, 35, 15, 10, 20, 246, 156, 2, 246, 156, 35, 15, 10, 20, 246, + 156, 2, 92, 175, 35, 15, 10, 20, 246, 156, 2, 62, 35, 15, 10, 20, 92, + 175, 2, 229, 163, 92, 35, 15, 10, 20, 62, 2, 252, 225, 35, 15, 10, 20, + 62, 2, 246, 250, 35, 15, 10, 20, 62, 2, 55, 35, 15, 10, 20, 62, 2, 246, + 156, 35, 15, 10, 20, 62, 2, 92, 175, 35, 15, 10, 20, 62, 2, 62, 35, 15, + 10, 20, 62, 2, 164, 64, 2, 123, 59, 15, 10, 20, 62, 2, 164, 64, 2, 101, + 59, 15, 10, 20, 62, 2, 164, 64, 2, 202, 59, 15, 10, 20, 62, 2, 164, 64, + 2, 55, 59, 15, 10, 20, 62, 2, 164, 64, 2, 252, 207, 59, 15, 10, 20, 252, + 217, 2, 123, 59, 15, 10, 20, 252, 217, 2, 101, 59, 15, 10, 20, 252, 217, + 2, 202, 59, 15, 10, 20, 252, 217, 2, 55, 59, 15, 10, 20, 252, 217, 2, + 252, 207, 59, 15, 10, 20, 252, 210, 2, 123, 59, 15, 10, 20, 252, 210, 2, + 101, 59, 15, 10, 20, 252, 210, 2, 202, 59, 15, 10, 20, 252, 210, 2, 55, + 59, 15, 10, 20, 252, 210, 2, 252, 207, 59, 15, 10, 20, 246, 205, 2, 55, + 59, 15, 10, 20, 123, 2, 101, 59, 15, 10, 20, 123, 2, 55, 59, 15, 10, 20, + 101, 2, 123, 59, 15, 10, 20, 101, 2, 55, 59, 15, 10, 20, 202, 2, 123, 59, + 15, 10, 20, 202, 2, 55, 59, 15, 10, 20, 246, 163, 2, 123, 59, 15, 10, 20, + 246, 163, 2, 101, 59, 15, 10, 20, 246, 163, 2, 202, 59, 15, 10, 20, 246, + 163, 2, 55, 59, 15, 10, 20, 252, 240, 2, 101, 59, 15, 10, 20, 252, 240, + 2, 202, 59, 15, 10, 20, 252, 240, 2, 55, 59, 15, 10, 20, 252, 237, 2, + 123, 59, 15, 10, 20, 252, 237, 2, 101, 59, 15, 10, 20, 252, 237, 2, 202, + 59, 15, 10, 20, 252, 237, 2, 55, 59, 15, 10, 20, 252, 241, 2, 101, 59, + 15, 10, 20, 253, 110, 2, 55, 59, 15, 10, 20, 252, 244, 2, 123, 59, 15, + 10, 20, 252, 244, 2, 55, 59, 15, 10, 20, 240, 157, 2, 123, 59, 15, 10, + 20, 240, 157, 2, 55, 59, 15, 10, 20, 252, 235, 2, 123, 59, 15, 10, 20, + 252, 235, 2, 101, 59, 15, 10, 20, 252, 235, 2, 202, 59, 15, 10, 20, 252, + 235, 2, 55, 59, 15, 10, 20, 253, 1, 2, 101, 59, 15, 10, 20, 253, 1, 2, + 55, 59, 15, 10, 20, 252, 214, 2, 123, 59, 15, 10, 20, 252, 214, 2, 101, + 59, 15, 10, 20, 252, 214, 2, 202, 59, 15, 10, 20, 252, 214, 2, 216, 59, + 15, 10, 20, 252, 214, 2, 55, 59, 15, 10, 20, 216, 2, 123, 59, 15, 10, 20, + 216, 2, 101, 59, 15, 10, 20, 216, 2, 202, 59, 15, 10, 20, 216, 2, 55, 59, + 15, 10, 20, 216, 2, 252, 207, 59, 15, 10, 20, 55, 2, 123, 59, 15, 10, 20, + 55, 2, 101, 59, 15, 10, 20, 55, 2, 202, 59, 15, 10, 20, 55, 2, 55, 59, + 15, 10, 20, 246, 156, 2, 123, 59, 15, 10, 20, 246, 156, 2, 101, 59, 15, + 10, 20, 246, 156, 2, 202, 59, 15, 10, 20, 246, 156, 2, 55, 59, 15, 10, + 20, 246, 156, 2, 252, 207, 59, 15, 10, 20, 252, 207, 2, 123, 59, 15, 10, + 20, 252, 207, 2, 55, 59, 15, 10, 20, 252, 207, 2, 229, 163, 92, 59, 15, + 10, 20, 62, 2, 123, 59, 15, 10, 20, 62, 2, 101, 59, 15, 10, 20, 62, 2, + 202, 59, 15, 10, 20, 62, 2, 55, 59, 15, 10, 20, 62, 2, 252, 207, 59, 15, + 10, 20, 62, 2, 164, 64, 2, 55, 124, 15, 10, 20, 62, 2, 164, 64, 2, 252, + 207, 124, 15, 10, 20, 252, 217, 2, 55, 124, 15, 10, 20, 252, 217, 2, 252, + 207, 124, 15, 10, 20, 252, 210, 2, 55, 124, 15, 10, 20, 252, 210, 2, 252, + 207, 124, 15, 10, 20, 246, 205, 2, 55, 124, 15, 10, 20, 246, 205, 2, 252, + 207, 124, 15, 10, 20, 246, 163, 2, 55, 124, 15, 10, 20, 246, 163, 2, 252, + 207, 124, 15, 10, 20, 240, 129, 2, 55, 124, 15, 10, 20, 240, 129, 2, 252, + 207, 124, 15, 10, 20, 252, 214, 2, 216, 124, 15, 10, 20, 252, 214, 2, 55, + 124, 15, 10, 20, 216, 2, 55, 124, 15, 10, 20, 246, 156, 2, 55, 124, 15, + 10, 20, 246, 156, 2, 252, 207, 124, 15, 10, 20, 62, 2, 55, 124, 15, 10, + 20, 62, 2, 252, 207, 124, 15, 10, 20, 237, 96, 2, 240, 224, 124, 15, 10, + 20, 237, 96, 2, 240, 248, 124, 15, 10, 20, 237, 96, 2, 241, 0, 124, 15, + 10, 20, 252, 241, 2, 92, 175, 44, 15, 10, 20, 252, 241, 2, 62, 44, 15, + 10, 20, 252, 244, 2, 92, 175, 44, 15, 10, 20, 252, 244, 2, 62, 44, 15, + 10, 20, 240, 157, 2, 92, 175, 44, 15, 10, 20, 240, 157, 2, 62, 44, 15, + 10, 20, 246, 163, 2, 92, 175, 44, 15, 10, 20, 246, 163, 2, 62, 44, 15, + 10, 20, 240, 129, 2, 92, 175, 44, 15, 10, 20, 240, 129, 2, 62, 44, 15, + 10, 20, 101, 2, 92, 175, 44, 15, 10, 20, 101, 2, 62, 44, 15, 10, 20, 123, + 2, 92, 175, 44, 15, 10, 20, 123, 2, 62, 44, 15, 10, 20, 202, 2, 92, 175, + 44, 15, 10, 20, 202, 2, 62, 44, 15, 10, 20, 252, 240, 2, 92, 175, 44, 15, + 10, 20, 252, 240, 2, 62, 44, 15, 10, 20, 252, 237, 2, 92, 175, 44, 15, + 10, 20, 252, 237, 2, 62, 44, 15, 10, 20, 240, 129, 2, 123, 44, 15, 10, + 20, 240, 129, 2, 101, 44, 15, 10, 20, 240, 129, 2, 202, 44, 15, 10, 20, + 240, 129, 2, 55, 44, 15, 10, 20, 240, 129, 2, 252, 225, 44, 15, 10, 20, + 246, 163, 2, 252, 225, 44, 15, 10, 20, 252, 240, 2, 252, 225, 44, 15, 10, + 20, 252, 237, 2, 252, 225, 44, 15, 10, 20, 252, 241, 2, 92, 175, 35, 15, + 10, 20, 252, 241, 2, 62, 35, 15, 10, 20, 252, 244, 2, 92, 175, 35, 15, + 10, 20, 252, 244, 2, 62, 35, 15, 10, 20, 240, 157, 2, 92, 175, 35, 15, + 10, 20, 240, 157, 2, 62, 35, 15, 10, 20, 246, 163, 2, 92, 175, 35, 15, + 10, 20, 246, 163, 2, 62, 35, 15, 10, 20, 240, 129, 2, 92, 175, 35, 15, + 10, 20, 240, 129, 2, 62, 35, 15, 10, 20, 101, 2, 92, 175, 35, 15, 10, 20, + 101, 2, 62, 35, 15, 10, 20, 123, 2, 92, 175, 35, 15, 10, 20, 123, 2, 62, + 35, 15, 10, 20, 202, 2, 92, 175, 35, 15, 10, 20, 202, 2, 62, 35, 15, 10, + 20, 252, 240, 2, 92, 175, 35, 15, 10, 20, 252, 240, 2, 62, 35, 15, 10, + 20, 252, 237, 2, 92, 175, 35, 15, 10, 20, 252, 237, 2, 62, 35, 15, 10, + 20, 240, 129, 2, 123, 35, 15, 10, 20, 240, 129, 2, 101, 35, 15, 10, 20, + 240, 129, 2, 202, 35, 15, 10, 20, 240, 129, 2, 55, 35, 15, 10, 20, 240, + 129, 2, 252, 225, 35, 15, 10, 20, 246, 163, 2, 252, 225, 35, 15, 10, 20, + 252, 240, 2, 252, 225, 35, 15, 10, 20, 252, 237, 2, 252, 225, 35, 15, 10, + 20, 240, 129, 2, 123, 59, 15, 10, 20, 240, 129, 2, 101, 59, 15, 10, 20, + 240, 129, 2, 202, 59, 15, 10, 20, 240, 129, 2, 55, 59, 15, 10, 20, 246, + 163, 2, 252, 207, 59, 15, 10, 20, 240, 129, 2, 252, 207, 59, 15, 10, 20, + 252, 241, 2, 55, 59, 15, 10, 20, 246, 163, 2, 123, 124, 15, 10, 20, 246, + 163, 2, 101, 124, 15, 10, 20, 246, 163, 2, 202, 124, 15, 10, 20, 240, + 129, 2, 123, 124, 15, 10, 20, 240, 129, 2, 101, 124, 15, 10, 20, 240, + 129, 2, 202, 124, 15, 10, 20, 252, 241, 2, 55, 124, 15, 10, 20, 253, 110, + 2, 55, 124, 15, 10, 20, 92, 2, 233, 150, 35, 15, 10, 20, 92, 2, 233, 150, + 44, 15, 238, 32, 42, 228, 180, 238, 32, 41, 228, 180, 10, 20, 252, 210, + 2, 123, 2, 55, 59, 15, 10, 20, 252, 210, 2, 101, 2, 123, 35, 15, 10, 20, + 252, 210, 2, 101, 2, 123, 59, 15, 10, 20, 252, 210, 2, 101, 2, 55, 59, + 15, 10, 20, 252, 210, 2, 202, 2, 55, 59, 15, 10, 20, 252, 210, 2, 55, 2, + 123, 59, 15, 10, 20, 252, 210, 2, 55, 2, 101, 59, 15, 10, 20, 252, 210, + 2, 55, 2, 202, 59, 15, 10, 20, 123, 2, 55, 2, 101, 35, 15, 10, 20, 123, + 2, 55, 2, 101, 59, 15, 10, 20, 101, 2, 55, 2, 62, 35, 15, 10, 20, 101, 2, + 55, 2, 92, 175, 35, 15, 10, 20, 246, 163, 2, 101, 2, 123, 59, 15, 10, 20, + 246, 163, 2, 123, 2, 101, 59, 15, 10, 20, 246, 163, 2, 123, 2, 92, 175, + 35, 15, 10, 20, 246, 163, 2, 55, 2, 101, 35, 15, 10, 20, 246, 163, 2, 55, + 2, 101, 59, 15, 10, 20, 246, 163, 2, 55, 2, 123, 59, 15, 10, 20, 246, + 163, 2, 55, 2, 55, 35, 15, 10, 20, 246, 163, 2, 55, 2, 55, 59, 15, 10, + 20, 252, 240, 2, 101, 2, 101, 35, 15, 10, 20, 252, 240, 2, 101, 2, 101, + 59, 15, 10, 20, 252, 240, 2, 55, 2, 55, 35, 15, 10, 20, 240, 129, 2, 101, + 2, 55, 35, 15, 10, 20, 240, 129, 2, 101, 2, 55, 59, 15, 10, 20, 240, 129, + 2, 123, 2, 62, 35, 15, 10, 20, 240, 129, 2, 55, 2, 202, 35, 15, 10, 20, + 240, 129, 2, 55, 2, 202, 59, 15, 10, 20, 240, 129, 2, 55, 2, 55, 35, 15, + 10, 20, 240, 129, 2, 55, 2, 55, 59, 15, 10, 20, 252, 237, 2, 101, 2, 92, + 175, 35, 15, 10, 20, 252, 237, 2, 202, 2, 55, 35, 15, 10, 20, 252, 237, + 2, 202, 2, 55, 59, 15, 10, 20, 252, 241, 2, 55, 2, 101, 35, 15, 10, 20, + 252, 241, 2, 55, 2, 101, 59, 15, 10, 20, 252, 241, 2, 55, 2, 55, 59, 15, + 10, 20, 252, 241, 2, 55, 2, 62, 35, 15, 10, 20, 252, 244, 2, 123, 2, 55, + 35, 15, 10, 20, 252, 244, 2, 55, 2, 55, 35, 15, 10, 20, 252, 244, 2, 55, + 2, 55, 59, 15, 10, 20, 252, 244, 2, 55, 2, 92, 175, 35, 15, 10, 20, 240, + 157, 2, 55, 2, 55, 35, 15, 10, 20, 240, 157, 2, 55, 2, 62, 35, 15, 10, + 20, 240, 157, 2, 55, 2, 92, 175, 35, 15, 10, 20, 252, 235, 2, 202, 2, 55, + 35, 15, 10, 20, 252, 235, 2, 202, 2, 55, 59, 15, 10, 20, 253, 1, 2, 55, + 2, 101, 35, 15, 10, 20, 253, 1, 2, 55, 2, 55, 35, 15, 10, 20, 216, 2, + 101, 2, 55, 35, 15, 10, 20, 216, 2, 101, 2, 62, 35, 15, 10, 20, 216, 2, + 101, 2, 92, 175, 35, 15, 10, 20, 216, 2, 123, 2, 123, 59, 15, 10, 20, + 216, 2, 123, 2, 123, 35, 15, 10, 20, 216, 2, 202, 2, 55, 35, 15, 10, 20, + 216, 2, 202, 2, 55, 59, 15, 10, 20, 216, 2, 55, 2, 101, 35, 15, 10, 20, + 216, 2, 55, 2, 101, 59, 15, 10, 20, 55, 2, 101, 2, 123, 59, 15, 10, 20, + 55, 2, 101, 2, 55, 59, 15, 10, 20, 55, 2, 101, 2, 62, 35, 15, 10, 20, 55, + 2, 123, 2, 101, 59, 15, 10, 20, 55, 2, 123, 2, 55, 59, 15, 10, 20, 55, 2, + 202, 2, 123, 59, 15, 10, 20, 55, 2, 202, 2, 55, 59, 15, 10, 20, 55, 2, + 123, 2, 202, 59, 15, 10, 20, 252, 207, 2, 55, 2, 123, 59, 15, 10, 20, + 252, 207, 2, 55, 2, 55, 59, 15, 10, 20, 246, 156, 2, 101, 2, 55, 59, 15, + 10, 20, 246, 156, 2, 101, 2, 92, 175, 35, 15, 10, 20, 246, 156, 2, 123, + 2, 55, 35, 15, 10, 20, 246, 156, 2, 123, 2, 55, 59, 15, 10, 20, 246, 156, + 2, 123, 2, 92, 175, 35, 15, 10, 20, 246, 156, 2, 55, 2, 62, 35, 15, 10, + 20, 246, 156, 2, 55, 2, 92, 175, 35, 15, 10, 20, 62, 2, 55, 2, 55, 35, + 15, 10, 20, 62, 2, 55, 2, 55, 59, 15, 10, 20, 252, 217, 2, 202, 2, 62, + 35, 15, 10, 20, 252, 210, 2, 123, 2, 62, 35, 15, 10, 20, 252, 210, 2, + 123, 2, 92, 175, 35, 15, 10, 20, 252, 210, 2, 202, 2, 62, 35, 15, 10, 20, + 252, 210, 2, 202, 2, 92, 175, 35, 15, 10, 20, 252, 210, 2, 55, 2, 62, 35, + 15, 10, 20, 252, 210, 2, 55, 2, 92, 175, 35, 15, 10, 20, 123, 2, 55, 2, + 62, 35, 15, 10, 20, 123, 2, 101, 2, 92, 175, 35, 15, 10, 20, 123, 2, 55, + 2, 92, 175, 35, 15, 10, 20, 246, 163, 2, 202, 2, 92, 175, 35, 15, 10, 20, + 252, 240, 2, 101, 2, 62, 35, 15, 10, 20, 240, 129, 2, 101, 2, 62, 35, 15, + 10, 20, 252, 237, 2, 101, 2, 62, 35, 15, 10, 20, 216, 2, 123, 2, 62, 35, + 15, 10, 20, 216, 2, 55, 2, 62, 35, 15, 10, 20, 62, 2, 101, 2, 62, 35, 15, + 10, 20, 62, 2, 123, 2, 62, 35, 15, 10, 20, 62, 2, 55, 2, 62, 35, 15, 10, + 20, 55, 2, 55, 2, 62, 35, 15, 10, 20, 253, 1, 2, 55, 2, 62, 35, 15, 10, + 20, 246, 156, 2, 101, 2, 62, 35, 15, 10, 20, 253, 1, 2, 55, 2, 101, 59, + 15, 10, 20, 216, 2, 101, 2, 55, 59, 15, 10, 20, 252, 244, 2, 55, 2, 62, + 35, 15, 10, 20, 252, 214, 2, 55, 2, 62, 35, 15, 10, 20, 246, 156, 2, 123, + 2, 101, 59, 15, 10, 20, 55, 2, 202, 2, 62, 35, 15, 10, 20, 216, 2, 123, + 2, 55, 59, 15, 10, 20, 252, 214, 2, 55, 2, 55, 35, 15, 10, 20, 216, 2, + 123, 2, 55, 35, 15, 10, 20, 246, 156, 2, 123, 2, 101, 35, 15, 10, 20, + 123, 2, 101, 2, 62, 35, 15, 10, 20, 101, 2, 123, 2, 62, 35, 15, 10, 20, + 55, 2, 123, 2, 62, 35, 15, 10, 20, 252, 235, 2, 55, 2, 62, 35, 15, 10, + 20, 252, 217, 2, 101, 2, 62, 35, 15, 10, 20, 252, 214, 2, 55, 2, 55, 59, + 15, 10, 20, 252, 244, 2, 123, 2, 55, 59, 15, 10, 20, 252, 240, 2, 55, 2, + 55, 59, 15, 10, 20, 246, 163, 2, 202, 2, 62, 35, 15, 10, 20, 246, 156, 2, + 123, 2, 62, 35, 15, 10, 20, 241, 230, 248, 189, 254, 203, 235, 187, 247, + 20, 5, 44, 15, 10, 20, 251, 128, 248, 189, 254, 203, 235, 187, 247, 20, + 5, 44, 15, 10, 20, 242, 54, 44, 15, 10, 20, 242, 51, 44, 15, 10, 20, 234, + 163, 44, 15, 10, 20, 245, 150, 44, 15, 10, 20, 239, 215, 44, 15, 10, 20, + 237, 171, 44, 15, 10, 20, 235, 9, 44, 15, 10, 20, 241, 230, 44, 15, 10, + 20, 229, 214, 237, 171, 233, 64, 10, 20, 225, 93, 251, 181, 53, 10, 20, + 232, 87, 232, 73, 230, 226, 38, 230, 99, 38, 230, 100, 38, 230, 101, 38, + 230, 102, 38, 230, 103, 38, 230, 104, 38, 230, 105, 38, 230, 106, 38, + 230, 107, 38, 229, 59, 38, 229, 60, 38, 229, 61, 38, 229, 62, 38, 229, + 63, 38, 229, 64, 38, 229, 65, 228, 178, 211, 32, 61, 237, 67, 228, 178, + 211, 32, 61, 90, 237, 67, 228, 178, 211, 32, 61, 90, 246, 162, 240, 121, + 228, 178, 211, 32, 61, 237, 66, 228, 178, 211, 32, 61, 230, 140, 228, + 178, 211, 32, 61, 229, 165, 76, 228, 178, 211, 32, 61, 233, 82, 76, 228, + 178, 211, 32, 61, 42, 63, 230, 137, 104, 228, 178, 211, 32, 61, 41, 63, + 230, 137, 234, 22, 228, 178, 211, 32, 61, 169, 231, 218, 36, 20, 42, 240, + 170, 36, 20, 41, 240, 170, 36, 47, 240, 128, 42, 240, 170, 36, 47, 240, + 128, 41, 240, 170, 36, 237, 83, 42, 240, 170, 36, 237, 83, 41, 240, 170, + 36, 230, 237, 235, 16, 228, 178, 211, 32, 61, 135, 56, 235, 128, 228, + 178, 211, 32, 61, 254, 213, 240, 151, 228, 178, 211, 32, 61, 254, 199, + 240, 151, 228, 178, 211, 32, 61, 184, 240, 138, 228, 178, 211, 32, 61, + 246, 239, 184, 240, 138, 228, 178, 211, 32, 61, 42, 228, 180, 228, 178, + 211, 32, 61, 41, 228, 180, 228, 178, 211, 32, 61, 42, 240, 137, 104, 228, + 178, 211, 32, 61, 41, 240, 137, 104, 228, 178, 211, 32, 61, 42, 233, 89, + 240, 158, 104, 228, 178, 211, 32, 61, 41, 233, 89, 240, 158, 104, 228, + 178, 211, 32, 61, 42, 86, 230, 137, 104, 228, 178, 211, 32, 61, 41, 86, + 230, 137, 104, 228, 178, 211, 32, 61, 42, 47, 240, 117, 104, 228, 178, + 211, 32, 61, 41, 47, 240, 117, 104, 228, 178, 211, 32, 61, 42, 240, 117, + 104, 228, 178, 211, 32, 61, 41, 240, 117, 104, 228, 178, 211, 32, 61, 42, + 237, 79, 104, 228, 178, 211, 32, 61, 41, 237, 79, 104, 228, 178, 211, 32, + 61, 42, 63, 237, 79, 104, 228, 178, 211, 32, 61, 41, 63, 237, 79, 104, + 238, 47, 246, 164, 63, 238, 47, 246, 164, 228, 178, 211, 32, 61, 42, 37, + 104, 228, 178, 211, 32, 61, 41, 37, 104, 237, 110, 231, 223, 230, 176, + 231, 223, 246, 239, 231, 223, 47, 246, 239, 231, 223, 237, 110, 184, 240, + 138, 230, 176, 184, 240, 138, 246, 239, 184, 240, 138, 3, 237, 67, 3, 90, + 237, 67, 3, 246, 162, 240, 121, 3, 230, 140, 3, 237, 66, 3, 233, 82, 76, + 3, 229, 165, 76, 3, 254, 213, 240, 151, 3, 42, 228, 180, 3, 41, 228, 180, + 3, 42, 240, 137, 104, 3, 41, 240, 137, 104, 3, 42, 233, 89, 240, 158, + 104, 3, 41, 233, 89, 240, 158, 104, 3, 65, 53, 3, 230, 142, 3, 231, 198, + 3, 79, 53, 3, 227, 193, 3, 231, 190, 53, 3, 228, 175, 53, 3, 237, 51, 53, + 3, 235, 37, 233, 104, 3, 237, 179, 53, 3, 235, 86, 53, 3, 230, 145, 253, + 113, 10, 233, 150, 44, 15, 10, 236, 254, 2, 233, 150, 46, 10, 233, 196, + 44, 15, 10, 246, 237, 232, 193, 10, 233, 210, 44, 15, 10, 240, 224, 44, + 15, 10, 240, 224, 124, 15, 10, 240, 248, 44, 15, 10, 240, 248, 124, 15, + 10, 241, 0, 44, 15, 10, 241, 0, 124, 15, 10, 237, 96, 44, 15, 10, 237, + 96, 124, 15, 10, 241, 252, 44, 15, 10, 241, 252, 124, 15, 10, 1, 164, 44, + 15, 10, 1, 92, 2, 240, 229, 64, 44, 15, 10, 1, 92, 2, 240, 229, 64, 35, + 15, 10, 1, 92, 2, 164, 64, 44, 15, 10, 1, 92, 2, 164, 64, 35, 15, 10, 1, + 253, 54, 2, 164, 64, 44, 15, 10, 1, 253, 54, 2, 164, 64, 35, 15, 10, 1, + 92, 2, 164, 240, 144, 44, 15, 10, 1, 92, 2, 164, 240, 144, 35, 15, 10, 1, + 62, 2, 164, 64, 44, 15, 10, 1, 62, 2, 164, 64, 35, 15, 10, 1, 62, 2, 164, + 64, 59, 15, 10, 1, 62, 2, 164, 64, 124, 15, 10, 1, 92, 44, 15, 10, 1, 92, + 35, 15, 10, 1, 252, 217, 44, 15, 10, 1, 252, 217, 35, 15, 10, 1, 252, + 217, 59, 15, 10, 1, 252, 217, 124, 15, 10, 1, 252, 210, 235, 129, 44, 15, + 10, 1, 252, 210, 235, 129, 35, 15, 10, 1, 252, 210, 44, 15, 10, 1, 252, + 210, 35, 15, 10, 1, 252, 210, 59, 15, 10, 1, 252, 210, 124, 15, 10, 1, + 246, 205, 44, 15, 10, 1, 246, 205, 35, 15, 10, 1, 246, 205, 59, 15, 10, + 1, 246, 205, 124, 15, 10, 1, 123, 44, 15, 10, 1, 123, 35, 15, 10, 1, 123, + 59, 15, 10, 1, 123, 124, 15, 10, 1, 101, 44, 15, 10, 1, 101, 35, 15, 10, + 1, 101, 59, 15, 10, 1, 101, 124, 15, 10, 1, 202, 44, 15, 10, 1, 202, 35, + 15, 10, 1, 202, 59, 15, 10, 1, 202, 124, 15, 10, 1, 253, 56, 44, 15, 10, + 1, 253, 56, 35, 15, 10, 1, 247, 211, 44, 15, 10, 1, 247, 211, 35, 15, 10, + 1, 252, 225, 44, 15, 10, 1, 252, 225, 35, 15, 10, 1, 246, 250, 44, 15, + 10, 1, 246, 250, 35, 15, 10, 1, 246, 163, 44, 15, 10, 1, 246, 163, 35, + 15, 10, 1, 246, 163, 59, 15, 10, 1, 246, 163, 124, 15, 10, 1, 240, 129, + 44, 15, 10, 1, 240, 129, 35, 15, 10, 1, 240, 129, 59, 15, 10, 1, 240, + 129, 124, 15, 10, 1, 252, 240, 44, 15, 10, 1, 252, 240, 35, 15, 10, 1, + 252, 240, 59, 15, 10, 1, 252, 240, 124, 15, 10, 1, 252, 237, 44, 15, 10, + 1, 252, 237, 35, 15, 10, 1, 252, 237, 59, 15, 10, 1, 252, 237, 124, 15, + 10, 1, 252, 241, 44, 15, 10, 1, 252, 241, 35, 15, 10, 1, 252, 241, 59, + 15, 10, 1, 252, 241, 124, 15, 10, 1, 253, 110, 44, 15, 10, 1, 253, 110, + 35, 15, 10, 1, 253, 110, 59, 15, 10, 1, 253, 110, 124, 15, 10, 1, 252, + 244, 44, 15, 10, 1, 252, 244, 35, 15, 10, 1, 252, 244, 59, 15, 10, 1, + 252, 244, 124, 15, 10, 1, 240, 157, 44, 15, 10, 1, 240, 157, 35, 15, 10, + 1, 240, 157, 59, 15, 10, 1, 240, 157, 124, 15, 10, 1, 252, 235, 44, 15, + 10, 1, 252, 235, 35, 15, 10, 1, 252, 235, 59, 15, 10, 1, 252, 235, 124, + 15, 10, 1, 253, 1, 44, 15, 10, 1, 253, 1, 35, 15, 10, 1, 253, 1, 59, 15, + 10, 1, 253, 1, 124, 15, 10, 1, 252, 214, 44, 15, 10, 1, 252, 214, 35, 15, + 10, 1, 252, 214, 59, 15, 10, 1, 252, 214, 124, 15, 10, 1, 216, 44, 15, + 10, 1, 216, 35, 15, 10, 1, 216, 59, 15, 10, 1, 216, 124, 15, 10, 1, 55, + 44, 15, 10, 1, 55, 35, 15, 10, 1, 55, 59, 15, 10, 1, 55, 124, 15, 10, 1, + 246, 156, 44, 15, 10, 1, 246, 156, 35, 15, 10, 1, 246, 156, 59, 15, 10, + 1, 246, 156, 124, 15, 10, 1, 252, 207, 44, 15, 10, 1, 252, 207, 35, 15, + 10, 1, 252, 207, 59, 15, 10, 1, 252, 207, 124, 15, 10, 1, 253, 54, 44, + 15, 10, 1, 253, 54, 35, 15, 10, 1, 92, 175, 44, 15, 10, 1, 92, 175, 35, + 15, 10, 1, 62, 44, 15, 10, 1, 62, 35, 15, 10, 1, 62, 59, 15, 10, 1, 62, + 124, 15, 10, 20, 216, 2, 92, 2, 240, 229, 64, 44, 15, 10, 20, 216, 2, 92, + 2, 240, 229, 64, 35, 15, 10, 20, 216, 2, 92, 2, 164, 64, 44, 15, 10, 20, + 216, 2, 92, 2, 164, 64, 35, 15, 10, 20, 216, 2, 92, 2, 164, 240, 144, 44, + 15, 10, 20, 216, 2, 92, 2, 164, 240, 144, 35, 15, 10, 20, 216, 2, 92, 44, + 15, 10, 20, 216, 2, 92, 35, 15, 247, 27, 241, 23, 233, 173, 237, 69, 100, + 229, 165, 76, 100, 231, 199, 76, 100, 65, 53, 100, 237, 179, 53, 100, + 235, 86, 53, 100, 230, 142, 100, 229, 172, 100, 42, 228, 180, 100, 41, + 228, 180, 100, 231, 198, 100, 79, 53, 100, 237, 67, 100, 227, 193, 100, + 246, 162, 240, 121, 100, 233, 104, 100, 21, 240, 126, 100, 21, 118, 100, + 21, 113, 100, 21, 166, 100, 21, 158, 100, 21, 173, 100, 21, 183, 100, 21, + 194, 100, 21, 187, 100, 21, 192, 100, 237, 66, 100, 230, 140, 100, 231, + 190, 53, 100, 237, 51, 53, 100, 228, 175, 53, 100, 233, 82, 76, 100, 230, + 145, 253, 113, 100, 7, 6, 1, 57, 100, 7, 6, 1, 254, 185, 100, 7, 6, 1, + 254, 194, 100, 7, 6, 1, 222, 222, 100, 7, 6, 1, 72, 100, 7, 6, 1, 254, + 191, 100, 7, 6, 1, 214, 100, 7, 6, 1, 212, 100, 7, 6, 1, 74, 100, 7, 6, + 1, 254, 192, 100, 7, 6, 1, 254, 186, 100, 7, 6, 1, 149, 100, 7, 6, 1, + 185, 100, 7, 6, 1, 199, 100, 7, 6, 1, 73, 100, 7, 6, 1, 254, 187, 100, 7, + 6, 1, 254, 196, 100, 7, 6, 1, 146, 100, 7, 6, 1, 193, 100, 7, 6, 1, 254, + 183, 100, 7, 6, 1, 66, 100, 7, 6, 1, 196, 100, 7, 6, 1, 254, 195, 100, 7, + 6, 1, 254, 184, 100, 7, 6, 1, 254, 190, 100, 7, 6, 1, 254, 193, 100, 42, + 37, 104, 100, 235, 37, 233, 104, 100, 41, 37, 104, 100, 230, 125, 235, + 24, 100, 184, 240, 138, 100, 240, 163, 235, 24, 100, 7, 3, 1, 57, 100, 7, + 3, 1, 254, 185, 100, 7, 3, 1, 254, 194, 100, 7, 3, 1, 222, 222, 100, 7, + 3, 1, 72, 100, 7, 3, 1, 254, 191, 100, 7, 3, 1, 214, 100, 7, 3, 1, 212, + 100, 7, 3, 1, 74, 100, 7, 3, 1, 254, 192, 100, 7, 3, 1, 254, 186, 100, 7, + 3, 1, 149, 100, 7, 3, 1, 185, 100, 7, 3, 1, 199, 100, 7, 3, 1, 73, 100, + 7, 3, 1, 254, 187, 100, 7, 3, 1, 254, 196, 100, 7, 3, 1, 146, 100, 7, 3, + 1, 193, 100, 7, 3, 1, 254, 183, 100, 7, 3, 1, 66, 100, 7, 3, 1, 196, 100, + 7, 3, 1, 254, 195, 100, 7, 3, 1, 254, 184, 100, 7, 3, 1, 254, 190, 100, + 7, 3, 1, 254, 193, 100, 42, 240, 137, 104, 100, 61, 240, 138, 100, 41, + 240, 137, 104, 100, 205, 100, 42, 63, 228, 180, 100, 41, 63, 228, 180, + 83, 90, 246, 162, 240, 121, 83, 42, 237, 79, 104, 83, 41, 237, 79, 104, + 83, 90, 237, 67, 83, 48, 237, 44, 246, 164, 83, 48, 1, 253, 10, 83, 48, + 1, 3, 57, 83, 48, 1, 3, 74, 83, 48, 1, 3, 66, 83, 48, 1, 3, 72, 83, 48, + 1, 3, 73, 83, 48, 1, 3, 191, 83, 48, 1, 3, 252, 233, 83, 48, 1, 3, 252, + 251, 83, 48, 1, 3, 253, 18, 83, 222, 252, 232, 39, 240, 181, 76, 83, 48, + 1, 57, 83, 48, 1, 74, 83, 48, 1, 66, 83, 48, 1, 72, 83, 48, 1, 73, 83, + 48, 1, 177, 83, 48, 1, 253, 7, 83, 48, 1, 253, 34, 83, 48, 1, 253, 6, 83, + 48, 1, 253, 33, 83, 48, 1, 252, 204, 83, 48, 1, 253, 24, 83, 48, 1, 253, + 26, 83, 48, 1, 253, 52, 83, 48, 1, 253, 25, 83, 48, 1, 252, 202, 83, 48, + 1, 253, 44, 83, 48, 1, 253, 18, 83, 48, 1, 253, 9, 83, 48, 1, 96, 83, 48, + 1, 252, 201, 83, 48, 1, 252, 248, 83, 48, 1, 252, 227, 83, 48, 1, 252, + 247, 83, 48, 1, 253, 8, 83, 48, 1, 154, 83, 48, 1, 253, 41, 83, 48, 1, + 253, 59, 83, 48, 1, 252, 252, 83, 48, 1, 253, 21, 83, 48, 1, 198, 83, 48, + 1, 252, 239, 83, 48, 1, 252, 229, 83, 48, 1, 253, 13, 83, 48, 1, 253, 14, + 83, 48, 1, 191, 83, 48, 1, 252, 233, 83, 48, 1, 252, 251, 83, 48, 1, 208, + 83, 48, 1, 253, 37, 83, 48, 1, 253, 3, 83, 48, 1, 253, 36, 83, 48, 1, + 252, 246, 83, 48, 1, 252, 208, 83, 48, 1, 199, 83, 48, 237, 107, 240, + 181, 76, 83, 48, 229, 189, 240, 181, 76, 83, 26, 235, 92, 83, 26, 1, 235, + 77, 83, 26, 1, 228, 195, 83, 26, 1, 228, 199, 83, 26, 1, 237, 139, 83, + 26, 1, 228, 201, 83, 26, 1, 228, 202, 83, 26, 1, 235, 81, 83, 26, 1, 228, + 209, 83, 26, 1, 237, 142, 83, 26, 1, 227, 197, 83, 26, 1, 228, 204, 83, + 26, 1, 228, 205, 83, 26, 1, 229, 188, 83, 26, 1, 227, 140, 83, 26, 1, + 227, 139, 83, 26, 1, 228, 193, 83, 26, 1, 237, 137, 83, 26, 1, 237, 141, + 83, 26, 1, 229, 193, 83, 26, 1, 229, 180, 83, 26, 1, 240, 213, 83, 26, 1, + 230, 159, 83, 26, 1, 237, 134, 83, 26, 1, 237, 130, 83, 26, 1, 229, 191, + 83, 26, 1, 233, 128, 83, 26, 1, 233, 131, 83, 26, 1, 233, 138, 83, 26, 1, + 233, 133, 83, 26, 1, 237, 133, 83, 26, 1, 57, 83, 26, 1, 253, 4, 83, 26, + 1, 191, 83, 26, 1, 247, 61, 83, 26, 1, 253, 177, 83, 26, 1, 72, 83, 26, + 1, 247, 232, 83, 26, 1, 253, 96, 83, 26, 1, 73, 83, 26, 1, 252, 208, 83, + 26, 1, 247, 223, 83, 26, 1, 253, 15, 83, 26, 1, 252, 251, 83, 26, 1, 66, + 83, 26, 1, 247, 227, 83, 26, 1, 252, 250, 83, 26, 1, 253, 27, 83, 26, 1, + 252, 233, 83, 26, 1, 253, 100, 83, 26, 1, 253, 28, 83, 26, 1, 74, 100, + 248, 7, 53, 100, 241, 215, 53, 100, 190, 53, 100, 235, 16, 100, 237, 150, + 125, 100, 254, 19, 53, 100, 254, 16, 53, 83, 243, 108, 157, 231, 210, 83, + 117, 58, 83, 235, 18, 58, 83, 81, 58, 83, 231, 191, 58, 83, 86, 235, 27, + 83, 63, 235, 20, 229, 185, 230, 129, 235, 145, 229, 185, 230, 129, 230, + 131, 229, 185, 230, 129, 230, 117, 239, 170, 229, 213, 230, 177, 229, + 213, 230, 177, 50, 45, 4, 248, 251, 57, 50, 45, 4, 249, 20, 72, 50, 45, + 4, 249, 12, 74, 50, 45, 4, 249, 40, 73, 50, 45, 4, 248, 253, 66, 50, 45, + 4, 248, 244, 252, 203, 50, 45, 4, 249, 27, 253, 20, 50, 45, 4, 248, 250, + 253, 12, 50, 45, 4, 249, 1, 253, 57, 50, 45, 4, 249, 31, 253, 31, 50, 45, + 4, 249, 36, 252, 213, 50, 45, 4, 249, 28, 253, 117, 50, 45, 4, 249, 18, + 253, 90, 50, 45, 4, 249, 42, 253, 118, 50, 45, 4, 249, 54, 177, 50, 45, + 4, 249, 26, 253, 6, 50, 45, 4, 249, 44, 253, 7, 50, 45, 4, 249, 47, 253, + 33, 50, 45, 4, 249, 57, 253, 34, 50, 45, 4, 249, 56, 198, 50, 45, 4, 249, + 0, 253, 13, 50, 45, 4, 249, 50, 252, 239, 50, 45, 4, 249, 2, 253, 14, 50, + 45, 4, 249, 7, 252, 229, 50, 45, 4, 248, 249, 252, 201, 50, 45, 4, 249, + 8, 252, 247, 50, 45, 4, 249, 14, 252, 248, 50, 45, 4, 249, 32, 253, 8, + 50, 45, 4, 249, 35, 252, 227, 50, 45, 4, 248, 246, 213, 50, 45, 4, 249, + 49, 253, 0, 50, 45, 4, 249, 21, 252, 223, 50, 45, 4, 248, 254, 253, 50, + 50, 45, 4, 249, 30, 253, 82, 50, 45, 4, 249, 3, 253, 35, 50, 45, 4, 249, + 55, 253, 190, 50, 45, 4, 249, 6, 253, 131, 50, 45, 4, 249, 16, 253, 159, + 50, 45, 4, 249, 39, 208, 50, 45, 4, 249, 11, 253, 36, 50, 45, 4, 249, 33, + 253, 37, 50, 45, 4, 248, 245, 252, 246, 50, 45, 4, 249, 10, 253, 3, 50, + 45, 4, 249, 15, 252, 204, 50, 45, 4, 248, 252, 253, 52, 50, 45, 4, 249, + 23, 253, 24, 50, 45, 4, 248, 255, 253, 25, 50, 45, 4, 249, 37, 253, 26, + 50, 45, 4, 249, 38, 252, 202, 50, 45, 4, 248, 247, 253, 9, 50, 45, 4, + 249, 19, 253, 44, 50, 45, 4, 248, 248, 96, 50, 45, 4, 249, 46, 253, 18, + 50, 45, 4, 249, 34, 252, 208, 50, 45, 4, 249, 52, 252, 250, 50, 45, 4, + 249, 22, 253, 27, 50, 45, 4, 249, 24, 253, 10, 50, 45, 4, 249, 4, 252, + 226, 50, 45, 4, 249, 51, 253, 46, 50, 45, 4, 249, 5, 253, 65, 50, 45, 4, + 249, 9, 253, 165, 50, 45, 4, 249, 25, 254, 22, 50, 45, 4, 249, 58, 252, + 222, 50, 45, 4, 249, 48, 247, 134, 50, 45, 4, 249, 60, 249, 218, 50, 45, + 4, 249, 29, 247, 95, 50, 45, 4, 249, 13, 251, 120, 50, 45, 4, 249, 41, + 251, 119, 50, 45, 4, 249, 53, 251, 166, 50, 45, 4, 249, 17, 251, 167, 50, + 45, 4, 249, 45, 251, 186, 50, 45, 4, 249, 43, 252, 3, 50, 45, 4, 249, 59, + 247, 59, 50, 45, 4, 249, 61, 113, 50, 45, 14, 242, 69, 50, 45, 14, 242, + 70, 50, 45, 14, 242, 71, 50, 45, 14, 242, 72, 50, 45, 14, 242, 73, 50, + 45, 14, 242, 74, 50, 45, 14, 242, 75, 50, 45, 14, 242, 76, 50, 45, 14, + 242, 77, 50, 45, 14, 242, 78, 50, 45, 14, 242, 79, 50, 45, 14, 242, 80, + 50, 45, 14, 242, 81, 50, 45, 14, 242, 82, 50, 45, 89, 249, 62, 247, 4, + 50, 45, 89, 249, 63, 237, 225, 50, 45, 89, 249, 64, 241, 119, 50, 45, 89, + 249, 65, 238, 205, 50, 45, 89, 242, 83, 244, 117, 50, 45, 89, 242, 84, + 233, 29, 50, 45, 89, 242, 85, 248, 35, 50, 45, 89, 242, 86, 247, 195, 50, + 45, 89, 242, 87, 233, 24, 50, 45, 89, 242, 88, 234, 119, 50, 45, 89, 242, + 89, 251, 234, 50, 45, 89, 242, 90, 242, 210, 50, 45, 89, 242, 91, 247, + 127, 50, 45, 89, 242, 92, 242, 216, 50, 45, 89, 249, 66, 237, 224, 50, + 45, 89, 249, 67, 236, 8, 50, 45, 89, 249, 68, 239, 173, 50, 45, 89, 249, + 69, 240, 11, 50, 45, 89, 249, 70, 234, 44, 50, 45, 233, 115, 249, 71, + 244, 50, 50, 45, 233, 115, 249, 72, 236, 116, 50, 45, 89, 249, 73, 248, + 121, 50, 45, 89, 249, 74, 241, 84, 50, 45, 89, 242, 93, 50, 45, 233, 115, + 249, 75, 238, 100, 50, 45, 233, 115, 249, 76, 244, 120, 50, 45, 89, 249, + 77, 236, 16, 50, 45, 89, 249, 78, 241, 40, 50, 45, 89, 242, 94, 50, 45, + 89, 249, 79, 242, 26, 50, 45, 89, 242, 95, 50, 45, 89, 242, 96, 50, 45, + 89, 249, 80, 240, 179, 50, 45, 89, 242, 97, 50, 45, 89, 242, 98, 50, 45, + 89, 242, 99, 50, 45, 233, 115, 249, 81, 240, 55, 50, 45, 89, 242, 101, + 50, 45, 89, 242, 102, 50, 45, 89, 249, 82, 237, 199, 50, 45, 89, 242, + 103, 50, 45, 89, 242, 104, 50, 45, 89, 249, 83, 234, 110, 50, 45, 89, + 249, 84, 235, 250, 50, 45, 89, 242, 105, 50, 45, 89, 242, 106, 50, 45, + 89, 242, 107, 50, 45, 89, 242, 108, 50, 45, 89, 242, 109, 50, 45, 89, + 242, 110, 50, 45, 89, 242, 111, 50, 45, 89, 242, 112, 50, 45, 89, 242, + 113, 50, 45, 89, 249, 85, 239, 119, 50, 45, 89, 242, 114, 50, 45, 89, + 249, 86, 241, 81, 50, 45, 89, 242, 115, 50, 45, 89, 242, 116, 50, 45, 89, + 242, 117, 50, 45, 89, 242, 118, 50, 45, 89, 242, 119, 50, 45, 89, 242, + 120, 50, 45, 89, 242, 121, 50, 45, 89, 242, 122, 50, 45, 89, 242, 123, + 50, 45, 89, 242, 124, 50, 45, 89, 242, 125, 50, 45, 89, 249, 87, 235, + 176, 50, 45, 89, 249, 88, 231, 69, 50, 45, 89, 249, 89, 234, 15, 50, 45, + 89, 249, 90, 238, 64, 50, 45, 89, 249, 91, 58, 50, 45, 89, 242, 152, 50, + 45, 89, 249, 92, 240, 25, 50, 45, 89, 242, 153, 50, 45, 89, 242, 154, 50, + 45, 89, 249, 93, 237, 29, 233, 191, 50, 45, 89, 249, 94, 233, 191, 50, + 45, 89, 249, 95, 236, 25, 238, 225, 50, 45, 89, 249, 96, 240, 84, 50, 45, + 89, 242, 155, 50, 45, 89, 242, 156, 50, 45, 233, 115, 249, 97, 238, 187, + 50, 45, 89, 242, 157, 50, 45, 89, 242, 158, 50, 45, 89, 242, 160, 50, 45, + 89, 242, 161, 50, 45, 89, 242, 162, 50, 45, 89, 249, 98, 243, 28, 50, 45, + 89, 242, 163, 50, 45, 89, 242, 164, 50, 45, 89, 242, 165, 50, 45, 89, + 242, 166, 50, 45, 89, 242, 167, 50, 45, 89, 237, 53, 242, 100, 50, 45, + 89, 237, 53, 242, 126, 50, 45, 89, 237, 53, 242, 127, 50, 45, 89, 237, + 53, 242, 128, 50, 45, 89, 237, 53, 242, 129, 50, 45, 89, 237, 53, 242, + 130, 50, 45, 89, 237, 53, 242, 131, 50, 45, 89, 237, 53, 242, 132, 50, + 45, 89, 237, 53, 242, 133, 50, 45, 89, 237, 53, 242, 134, 50, 45, 89, + 237, 53, 242, 135, 50, 45, 89, 237, 53, 242, 136, 50, 45, 89, 237, 53, + 242, 137, 50, 45, 89, 237, 53, 242, 138, 50, 45, 89, 237, 53, 242, 139, + 50, 45, 89, 237, 53, 242, 140, 50, 45, 89, 237, 53, 242, 141, 50, 45, 89, + 237, 53, 242, 142, 50, 45, 89, 237, 53, 242, 143, 50, 45, 89, 237, 53, + 242, 144, 50, 45, 89, 237, 53, 242, 145, 50, 45, 89, 237, 53, 242, 146, + 50, 45, 89, 237, 53, 242, 147, 50, 45, 89, 237, 53, 242, 148, 50, 45, 89, + 237, 53, 242, 149, 50, 45, 89, 237, 53, 242, 150, 50, 45, 89, 237, 53, + 242, 151, 50, 45, 89, 237, 53, 242, 159, 50, 45, 89, 237, 53, 242, 168, + 210, 247, 8, 231, 247, 240, 138, 210, 247, 8, 231, 247, 246, 164, 210, + 240, 245, 76, 210, 65, 118, 210, 65, 113, 210, 65, 166, 210, 65, 158, + 210, 65, 173, 210, 65, 183, 210, 65, 194, 210, 65, 187, 210, 65, 192, + 210, 65, 246, 179, 210, 65, 235, 52, 210, 65, 235, 80, 210, 65, 237, 203, + 210, 65, 237, 100, 210, 65, 238, 62, 210, 65, 233, 235, 210, 65, 235, + 169, 210, 65, 235, 132, 210, 65, 168, 233, 75, 210, 65, 135, 233, 75, + 210, 65, 152, 233, 75, 210, 65, 246, 160, 233, 75, 210, 65, 246, 159, + 233, 75, 210, 65, 253, 17, 233, 75, 210, 65, 240, 155, 233, 75, 210, 65, + 240, 142, 233, 75, 210, 65, 246, 208, 233, 75, 210, 65, 168, 231, 196, + 210, 65, 135, 231, 196, 210, 65, 152, 231, 196, 210, 65, 246, 160, 231, + 196, 210, 65, 246, 159, 231, 196, 210, 65, 253, 17, 231, 196, 210, 65, + 240, 155, 231, 196, 210, 65, 240, 142, 231, 196, 210, 65, 246, 208, 231, + 196, 210, 65, 253, 53, 231, 196, 210, 65, 237, 97, 231, 196, 210, 65, + 237, 106, 231, 196, 210, 65, 240, 184, 231, 196, 210, 65, 240, 189, 231, + 196, 210, 65, 245, 187, 231, 196, 210, 65, 236, 218, 231, 196, 210, 65, + 238, 197, 231, 196, 210, 65, 239, 144, 231, 196, 210, 237, 169, 247, 122, + 246, 34, 210, 237, 169, 240, 225, 233, 122, 210, 237, 169, 237, 145, 233, + 122, 210, 237, 169, 240, 239, 233, 122, 210, 237, 169, 237, 182, 233, + 122, 210, 254, 46, 235, 85, 240, 225, 233, 122, 210, 239, 88, 235, 85, + 240, 225, 233, 122, 210, 235, 85, 237, 145, 233, 122, 210, 235, 85, 240, + 239, 233, 122, 19, 230, 124, 240, 140, 168, 233, 155, 19, 230, 124, 240, + 140, 168, 240, 170, 19, 230, 124, 240, 140, 168, 234, 86, 19, 230, 124, + 240, 140, 173, 19, 230, 124, 240, 140, 237, 100, 19, 230, 124, 240, 140, + 246, 159, 233, 75, 19, 230, 124, 240, 140, 246, 159, 231, 196, 19, 230, + 124, 240, 140, 240, 189, 231, 196, 19, 230, 124, 240, 140, 246, 159, 233, + 126, 19, 230, 124, 240, 140, 253, 53, 233, 126, 19, 230, 124, 240, 140, + 240, 189, 233, 126, 19, 230, 124, 240, 140, 168, 235, 56, 233, 126, 19, + 230, 124, 240, 140, 246, 159, 235, 56, 233, 126, 19, 230, 124, 240, 140, + 168, 233, 117, 233, 126, 19, 230, 124, 240, 140, 246, 159, 233, 117, 233, + 126, 19, 230, 124, 240, 140, 246, 159, 233, 121, 19, 230, 124, 240, 140, + 253, 53, 233, 121, 19, 230, 124, 240, 140, 240, 189, 233, 121, 19, 230, + 124, 240, 140, 168, 235, 56, 233, 121, 19, 230, 124, 240, 140, 246, 159, + 235, 56, 233, 121, 19, 230, 124, 240, 140, 168, 233, 117, 233, 121, 19, + 230, 124, 240, 140, 253, 53, 233, 117, 233, 121, 19, 230, 124, 240, 140, + 240, 189, 233, 117, 233, 121, 19, 230, 124, 240, 140, 253, 53, 241, 51, + 19, 230, 124, 236, 103, 168, 232, 251, 19, 230, 124, 233, 108, 118, 19, + 230, 124, 230, 166, 118, 19, 230, 124, 230, 165, 113, 19, 230, 124, 233, + 108, 113, 19, 230, 124, 234, 45, 135, 232, 21, 19, 230, 124, 230, 165, + 135, 232, 21, 19, 230, 124, 230, 144, 173, 19, 230, 124, 230, 144, 246, + 179, 19, 230, 124, 230, 144, 253, 53, 231, 235, 15, 19, 230, 124, 230, + 166, 246, 179, 19, 230, 124, 232, 230, 246, 179, 19, 230, 124, 233, 108, + 246, 179, 19, 230, 124, 233, 108, 235, 80, 19, 230, 124, 230, 144, 237, + 100, 19, 230, 124, 230, 144, 240, 189, 231, 235, 15, 19, 230, 124, 230, + 166, 237, 100, 19, 230, 124, 233, 108, 237, 100, 19, 230, 124, 233, 108, + 168, 233, 75, 19, 230, 124, 233, 108, 152, 233, 75, 19, 230, 124, 230, + 165, 246, 159, 233, 75, 19, 230, 124, 230, 144, 246, 159, 233, 75, 19, + 230, 124, 233, 108, 246, 159, 233, 75, 19, 230, 124, 232, 93, 246, 159, + 233, 75, 19, 230, 124, 239, 127, 246, 159, 233, 75, 19, 230, 124, 233, + 108, 168, 231, 196, 19, 230, 124, 233, 108, 246, 159, 231, 196, 19, 230, + 124, 236, 45, 246, 159, 241, 51, 19, 230, 124, 234, 233, 240, 189, 241, + 51, 19, 168, 132, 53, 19, 168, 132, 5, 231, 235, 15, 19, 135, 237, 218, + 53, 19, 152, 233, 176, 53, 19, 248, 200, 53, 19, 240, 28, 53, 19, 235, + 167, 53, 19, 251, 96, 53, 19, 135, 241, 8, 53, 19, 152, 241, 8, 53, 19, + 246, 160, 241, 8, 53, 19, 246, 159, 241, 8, 53, 19, 234, 160, 53, 19, + 236, 126, 247, 122, 53, 19, 244, 105, 53, 19, 239, 177, 53, 19, 240, 89, + 53, 19, 238, 107, 53, 19, 238, 105, 53, 19, 238, 253, 53, 19, 234, 252, + 247, 122, 53, 19, 247, 27, 53, 240, 118, 236, 219, 53, 240, 118, 246, 33, + 53, 240, 118, 234, 219, 53, 240, 118, 235, 208, 53, 240, 118, 236, 50, + 235, 208, 53, 240, 118, 236, 231, 53, 240, 118, 234, 48, 53, 240, 118, + 233, 5, 53, 240, 118, 231, 139, 53, 240, 118, 232, 174, 53, 240, 118, + 254, 203, 53, 240, 118, 232, 94, 53, 233, 69, 246, 158, 5, 230, 89, 233, + 69, 246, 158, 5, 239, 199, 240, 228, 233, 69, 246, 158, 5, 234, 240, 240, + 228, 233, 69, 246, 158, 5, 234, 27, 233, 69, 246, 158, 5, 237, 235, 233, + 69, 246, 158, 5, 237, 225, 233, 69, 246, 158, 5, 235, 176, 233, 69, 246, + 158, 5, 232, 197, 233, 69, 246, 158, 5, 240, 42, 233, 69, 246, 158, 5, + 58, 233, 69, 246, 158, 5, 247, 68, 233, 69, 246, 158, 5, 236, 225, 233, + 69, 246, 158, 5, 243, 16, 233, 69, 246, 158, 5, 232, 226, 233, 69, 246, + 158, 5, 234, 155, 233, 69, 246, 158, 5, 251, 212, 233, 69, 246, 158, 5, + 248, 92, 233, 69, 246, 158, 5, 230, 232, 233, 69, 246, 158, 5, 232, 92, + 239, 198, 233, 69, 246, 158, 5, 236, 53, 233, 69, 246, 158, 5, 243, 19, + 233, 69, 246, 158, 5, 240, 3, 233, 69, 246, 158, 5, 236, 35, 233, 69, + 246, 158, 5, 234, 17, 233, 69, 246, 158, 5, 245, 168, 233, 69, 246, 158, + 5, 240, 179, 233, 69, 246, 158, 5, 243, 175, 233, 69, 246, 158, 5, 242, + 217, 247, 3, 233, 69, 246, 158, 5, 248, 5, 233, 69, 246, 158, 5, 247, + 195, 233, 69, 246, 158, 5, 238, 195, 233, 69, 246, 158, 5, 243, 80, 233, + 69, 246, 158, 5, 240, 54, 233, 69, 246, 158, 5, 247, 28, 233, 69, 246, + 158, 5, 245, 77, 241, 81, 233, 69, 246, 158, 5, 246, 48, 233, 69, 246, + 158, 5, 234, 186, 233, 69, 246, 158, 5, 234, 210, 233, 69, 246, 158, 5, + 244, 104, 233, 69, 246, 158, 5, 255, 43, 240, 217, 233, 69, 246, 158, 5, + 237, 250, 233, 69, 246, 158, 5, 236, 96, 233, 69, 246, 158, 5, 233, 32, + 233, 69, 246, 158, 5, 3, 247, 244, 233, 69, 246, 158, 5, 246, 239, 242, + 172, 233, 69, 246, 158, 5, 36, 235, 78, 82, 237, 52, 1, 57, 237, 52, 1, + 72, 237, 52, 1, 254, 185, 237, 52, 1, 254, 33, 237, 52, 1, 214, 237, 52, + 1, 222, 222, 237, 52, 1, 74, 237, 52, 1, 254, 195, 237, 52, 1, 254, 193, + 237, 52, 1, 253, 135, 237, 52, 1, 254, 192, 237, 52, 1, 254, 186, 237, + 52, 1, 254, 196, 237, 52, 1, 149, 237, 52, 1, 185, 237, 52, 1, 199, 237, + 52, 1, 253, 248, 237, 52, 1, 253, 155, 237, 52, 1, 66, 237, 52, 1, 254, + 187, 237, 52, 1, 253, 183, 237, 52, 1, 146, 237, 52, 1, 193, 237, 52, 1, + 254, 183, 237, 52, 1, 253, 196, 237, 52, 1, 253, 5, 237, 52, 1, 252, 232, + 237, 52, 1, 212, 237, 52, 1, 254, 184, 237, 38, 1, 57, 237, 38, 1, 254, + 124, 237, 38, 1, 222, 222, 237, 38, 1, 149, 237, 38, 1, 252, 66, 237, 38, + 1, 146, 237, 38, 1, 254, 92, 237, 38, 1, 253, 165, 237, 38, 1, 254, 196, + 237, 38, 1, 254, 185, 237, 38, 1, 185, 237, 38, 1, 73, 237, 38, 1, 254, + 41, 237, 38, 1, 254, 183, 237, 38, 1, 253, 160, 237, 38, 1, 251, 220, + 237, 38, 1, 193, 237, 38, 1, 242, 227, 237, 38, 1, 66, 237, 38, 1, 253, + 155, 237, 38, 1, 254, 184, 237, 38, 1, 199, 237, 38, 1, 252, 31, 237, 38, + 1, 254, 187, 237, 38, 1, 253, 194, 237, 38, 1, 74, 237, 38, 1, 72, 237, + 38, 1, 246, 43, 237, 38, 1, 254, 186, 237, 38, 1, 254, 76, 237, 38, 1, + 254, 111, 237, 38, 1, 252, 224, 237, 38, 1, 214, 237, 38, 1, 254, 58, + 237, 38, 1, 253, 195, 237, 38, 1, 251, 237, 237, 38, 1, 253, 69, 237, 38, + 1, 252, 216, 237, 38, 1, 242, 228, 237, 38, 1, 253, 196, 237, 38, 1, 246, + 41, 237, 38, 1, 252, 249, 237, 38, 1, 253, 246, 237, 38, 1, 250, 253, + 237, 38, 1, 250, 254, 237, 38, 1, 250, 255, 237, 38, 1, 250, 212, 237, + 38, 1, 253, 218, 237, 38, 1, 246, 42, 84, 27, 1, 57, 84, 27, 1, 253, 73, + 84, 27, 1, 253, 6, 84, 27, 1, 253, 20, 84, 27, 1, 72, 84, 27, 1, 253, 95, + 84, 27, 1, 253, 46, 84, 27, 1, 252, 252, 84, 27, 1, 246, 247, 84, 27, 1, + 74, 84, 27, 1, 177, 84, 27, 1, 253, 58, 84, 27, 1, 253, 87, 84, 27, 1, + 252, 232, 84, 27, 1, 246, 232, 84, 27, 1, 73, 84, 27, 1, 253, 0, 84, 27, + 1, 246, 186, 84, 27, 1, 253, 34, 84, 27, 1, 253, 99, 84, 27, 1, 253, 116, + 84, 27, 1, 253, 9, 84, 27, 1, 66, 84, 27, 1, 249, 227, 84, 27, 1, 248, + 130, 84, 27, 1, 248, 82, 84, 27, 1, 253, 124, 84, 27, 1, 249, 232, 84, + 27, 1, 246, 217, 84, 27, 1, 252, 216, 84, 27, 1, 252, 224, 84, 27, 207, + 118, 84, 27, 207, 173, 84, 27, 207, 246, 179, 84, 27, 207, 237, 100, 237, + 54, 1, 242, 46, 237, 54, 1, 234, 12, 237, 54, 1, 243, 145, 237, 54, 1, + 243, 25, 237, 54, 1, 235, 241, 237, 54, 1, 233, 3, 237, 54, 1, 244, 14, + 237, 54, 1, 243, 168, 237, 54, 1, 237, 5, 237, 54, 1, 249, 226, 237, 54, + 1, 239, 74, 237, 54, 1, 239, 79, 237, 54, 1, 239, 95, 237, 54, 1, 236, + 163, 237, 54, 1, 250, 128, 237, 54, 1, 246, 37, 237, 54, 1, 232, 238, + 237, 54, 1, 235, 132, 237, 54, 1, 239, 213, 237, 54, 1, 239, 238, 237, + 54, 1, 240, 33, 237, 54, 1, 240, 86, 237, 54, 1, 238, 212, 237, 54, 1, + 239, 38, 237, 54, 1, 238, 9, 237, 54, 1, 239, 176, 237, 54, 1, 246, 208, + 233, 75, 233, 72, 1, 242, 55, 233, 72, 1, 240, 160, 233, 72, 1, 238, 232, + 233, 72, 1, 246, 178, 233, 72, 1, 237, 75, 233, 72, 1, 253, 21, 233, 72, + 1, 253, 10, 233, 72, 1, 240, 173, 233, 72, 1, 243, 233, 233, 72, 1, 247, + 210, 233, 72, 1, 247, 63, 233, 72, 1, 247, 1, 233, 72, 1, 240, 203, 233, + 72, 1, 237, 82, 233, 72, 1, 247, 41, 233, 72, 1, 243, 60, 233, 72, 1, + 246, 195, 233, 72, 1, 253, 97, 233, 72, 1, 239, 235, 233, 72, 1, 246, + 224, 233, 72, 1, 253, 82, 233, 72, 1, 241, 229, 233, 72, 1, 245, 100, + 233, 72, 1, 239, 214, 233, 72, 1, 237, 3, 233, 72, 1, 237, 255, 233, 72, + 1, 96, 233, 72, 1, 74, 233, 72, 1, 66, 233, 72, 1, 247, 204, 233, 72, + 247, 8, 233, 140, 84, 235, 15, 5, 57, 84, 235, 15, 5, 74, 84, 235, 15, 5, + 66, 84, 235, 15, 5, 177, 84, 235, 15, 5, 253, 34, 84, 235, 15, 5, 252, + 205, 84, 235, 15, 5, 253, 40, 84, 235, 15, 5, 253, 83, 84, 235, 15, 5, + 252, 215, 84, 235, 15, 5, 252, 213, 84, 235, 15, 5, 253, 104, 84, 235, + 15, 5, 252, 202, 84, 235, 15, 5, 253, 18, 84, 235, 15, 5, 252, 203, 84, + 235, 15, 5, 253, 12, 84, 235, 15, 5, 253, 31, 84, 235, 15, 5, 246, 173, + 84, 235, 15, 5, 213, 84, 235, 15, 5, 252, 211, 84, 235, 15, 5, 252, 234, + 84, 235, 15, 5, 252, 201, 84, 235, 15, 5, 252, 227, 84, 235, 15, 5, 198, + 84, 235, 15, 5, 252, 239, 84, 235, 15, 5, 252, 229, 84, 235, 15, 5, 191, + 84, 235, 15, 5, 252, 243, 84, 235, 15, 5, 253, 138, 84, 235, 15, 5, 208, + 84, 235, 15, 5, 253, 3, 84, 235, 15, 5, 252, 200, 84, 235, 15, 5, 252, + 204, 84, 235, 15, 5, 252, 226, 84, 235, 15, 5, 246, 165, 84, 235, 15, 5, + 246, 190, 84, 235, 15, 5, 154, 84, 235, 15, 5, 229, 232, 84, 235, 15, 5, + 227, 218, 84, 235, 15, 5, 227, 219, 84, 235, 15, 5, 228, 173, 84, 235, + 15, 5, 230, 242, 84, 235, 15, 5, 228, 235, 84, 235, 15, 5, 242, 170, 84, + 235, 15, 5, 234, 24, 84, 235, 15, 247, 8, 233, 140, 84, 235, 15, 65, 118, + 84, 235, 15, 65, 113, 84, 235, 15, 65, 246, 179, 84, 235, 15, 65, 235, + 52, 84, 235, 15, 65, 233, 75, 143, 6, 1, 182, 74, 143, 6, 1, 182, 72, + 143, 6, 1, 182, 57, 143, 6, 1, 182, 253, 111, 143, 6, 1, 182, 73, 143, 6, + 1, 182, 252, 220, 143, 6, 1, 240, 125, 74, 143, 6, 1, 240, 125, 72, 143, + 6, 1, 240, 125, 57, 143, 6, 1, 240, 125, 253, 111, 143, 6, 1, 240, 125, + 73, 143, 6, 1, 240, 125, 252, 220, 143, 6, 1, 253, 114, 143, 6, 1, 254, + 1, 143, 6, 1, 253, 109, 143, 6, 1, 247, 62, 143, 6, 1, 212, 143, 6, 1, + 247, 46, 143, 6, 1, 247, 28, 143, 6, 1, 247, 106, 143, 6, 1, 247, 30, + 143, 6, 1, 240, 246, 143, 6, 1, 247, 38, 143, 6, 1, 248, 79, 143, 6, 1, + 248, 45, 143, 6, 1, 253, 124, 143, 6, 1, 247, 113, 143, 6, 1, 246, 242, + 143, 6, 1, 240, 238, 143, 6, 1, 253, 116, 143, 6, 1, 247, 64, 143, 6, 1, + 246, 232, 143, 6, 1, 241, 25, 143, 6, 1, 253, 99, 143, 6, 1, 253, 58, + 143, 6, 1, 253, 87, 143, 6, 1, 252, 232, 143, 6, 1, 247, 0, 143, 6, 1, + 253, 157, 143, 6, 1, 253, 220, 143, 3, 1, 182, 74, 143, 3, 1, 182, 72, + 143, 3, 1, 182, 57, 143, 3, 1, 182, 253, 111, 143, 3, 1, 182, 73, 143, 3, + 1, 182, 252, 220, 143, 3, 1, 240, 125, 74, 143, 3, 1, 240, 125, 72, 143, + 3, 1, 240, 125, 57, 143, 3, 1, 240, 125, 253, 111, 143, 3, 1, 240, 125, + 73, 143, 3, 1, 240, 125, 252, 220, 143, 3, 1, 253, 114, 143, 3, 1, 254, + 1, 143, 3, 1, 253, 109, 143, 3, 1, 247, 62, 143, 3, 1, 212, 143, 3, 1, + 247, 46, 143, 3, 1, 247, 28, 143, 3, 1, 247, 106, 143, 3, 1, 247, 30, + 143, 3, 1, 240, 246, 143, 3, 1, 247, 38, 143, 3, 1, 248, 79, 143, 3, 1, + 248, 45, 143, 3, 1, 253, 124, 143, 3, 1, 247, 113, 143, 3, 1, 246, 242, + 143, 3, 1, 240, 238, 143, 3, 1, 253, 116, 143, 3, 1, 247, 64, 143, 3, 1, + 246, 232, 143, 3, 1, 241, 25, 143, 3, 1, 253, 99, 143, 3, 1, 253, 58, + 143, 3, 1, 253, 87, 143, 3, 1, 252, 232, 143, 3, 1, 247, 0, 143, 3, 1, + 253, 157, 143, 3, 1, 253, 220, 235, 17, 1, 245, 63, 235, 17, 1, 248, 179, + 235, 17, 1, 244, 57, 235, 17, 1, 247, 140, 235, 17, 1, 240, 36, 235, 17, + 1, 253, 25, 235, 17, 1, 245, 227, 235, 17, 1, 236, 29, 235, 17, 1, 252, + 146, 235, 17, 1, 243, 237, 235, 17, 1, 249, 117, 235, 17, 1, 243, 52, + 235, 17, 1, 250, 11, 235, 17, 1, 252, 83, 235, 17, 1, 245, 245, 235, 17, + 1, 248, 210, 235, 17, 1, 233, 218, 235, 17, 1, 239, 52, 235, 17, 1, 252, + 102, 235, 17, 1, 239, 1, 235, 17, 1, 244, 106, 235, 17, 1, 244, 146, 235, + 17, 1, 254, 67, 235, 17, 1, 249, 225, 235, 17, 1, 246, 177, 235, 17, 1, + 248, 230, 235, 17, 1, 253, 106, 235, 17, 1, 242, 26, 235, 17, 1, 247, + 186, 235, 17, 1, 253, 111, 235, 17, 1, 245, 118, 235, 17, 1, 246, 195, + 235, 17, 1, 247, 136, 235, 17, 1, 248, 231, 235, 17, 1, 248, 66, 235, 17, + 1, 253, 19, 235, 17, 1, 251, 94, 235, 17, 1, 245, 56, 235, 17, 1, 248, + 121, 235, 17, 1, 248, 242, 235, 17, 1, 248, 239, 235, 17, 1, 253, 81, + 235, 17, 1, 248, 232, 235, 17, 1, 248, 34, 235, 17, 1, 238, 106, 235, 17, + 1, 247, 135, 235, 17, 1, 250, 113, 235, 17, 1, 252, 147, 235, 21, 1, 240, + 174, 235, 21, 1, 252, 211, 235, 21, 1, 252, 202, 235, 21, 1, 252, 213, + 235, 21, 1, 253, 83, 235, 21, 1, 246, 178, 235, 21, 1, 243, 54, 235, 21, + 1, 208, 235, 21, 1, 252, 204, 235, 21, 1, 239, 248, 235, 21, 1, 246, 196, + 235, 21, 1, 242, 235, 235, 21, 1, 252, 205, 235, 21, 1, 252, 234, 235, + 21, 1, 245, 89, 235, 21, 1, 244, 43, 235, 21, 1, 244, 84, 235, 21, 1, + 244, 145, 235, 21, 1, 245, 17, 235, 21, 1, 247, 60, 235, 21, 1, 154, 235, + 21, 1, 191, 235, 21, 1, 57, 235, 21, 1, 72, 235, 21, 1, 74, 235, 21, 1, + 73, 235, 21, 1, 66, 235, 21, 1, 252, 212, 235, 21, 1, 252, 231, 235, 21, + 1, 252, 220, 235, 21, 21, 240, 126, 235, 21, 21, 118, 235, 21, 21, 113, + 235, 21, 21, 166, 235, 21, 21, 158, 235, 21, 21, 173, 235, 21, 21, 183, + 235, 21, 21, 194, 235, 21, 21, 187, 235, 21, 21, 192, 218, 4, 57, 218, 4, + 72, 218, 4, 74, 218, 4, 73, 218, 4, 66, 218, 4, 252, 213, 218, 4, 253, + 90, 218, 4, 177, 218, 4, 253, 6, 218, 4, 253, 7, 218, 4, 253, 33, 218, 4, + 253, 34, 218, 4, 252, 200, 218, 4, 253, 80, 218, 4, 253, 42, 218, 4, 253, + 49, 218, 4, 253, 22, 218, 4, 198, 218, 4, 253, 13, 218, 4, 252, 239, 218, + 4, 253, 14, 218, 4, 252, 229, 218, 4, 252, 201, 218, 4, 252, 247, 218, 4, + 252, 248, 218, 4, 253, 8, 218, 4, 252, 227, 218, 4, 213, 218, 4, 253, 0, + 218, 4, 252, 223, 218, 4, 253, 50, 218, 4, 253, 82, 218, 4, 208, 218, 4, + 253, 36, 218, 4, 253, 37, 218, 4, 252, 246, 218, 4, 253, 3, 218, 4, 252, + 204, 218, 4, 253, 52, 218, 4, 253, 24, 218, 4, 253, 25, 218, 4, 253, 26, + 218, 4, 252, 202, 218, 4, 253, 9, 218, 4, 253, 44, 218, 4, 96, 218, 4, + 253, 18, 218, 4, 252, 208, 218, 4, 252, 250, 218, 4, 253, 27, 218, 4, + 253, 10, 218, 4, 253, 83, 218, 4, 254, 17, 218, 4, 252, 226, 218, 4, 253, + 65, 230, 127, 1, 248, 233, 230, 127, 1, 247, 253, 230, 127, 1, 243, 114, + 230, 127, 1, 243, 57, 230, 127, 1, 252, 252, 230, 127, 1, 247, 225, 230, + 127, 1, 252, 168, 230, 127, 1, 248, 60, 230, 127, 1, 247, 210, 230, 127, + 1, 247, 63, 230, 127, 1, 247, 1, 230, 127, 1, 244, 88, 230, 127, 1, 247, + 41, 230, 127, 1, 246, 195, 230, 127, 1, 245, 156, 230, 127, 1, 246, 224, + 230, 127, 1, 253, 0, 230, 127, 1, 241, 229, 230, 127, 1, 248, 142, 230, + 127, 1, 245, 120, 230, 127, 1, 240, 203, 230, 127, 1, 246, 212, 230, 127, + 65, 118, 230, 127, 65, 246, 179, 230, 127, 65, 235, 52, 230, 127, 65, + 168, 233, 75, 230, 127, 247, 8, 230, 131, 237, 55, 1, 57, 237, 55, 1, + 254, 185, 237, 55, 1, 214, 237, 55, 1, 222, 222, 237, 55, 1, 72, 237, 55, + 1, 196, 237, 55, 1, 74, 237, 55, 1, 254, 190, 237, 55, 1, 254, 186, 237, + 55, 1, 149, 237, 55, 1, 185, 237, 55, 1, 199, 237, 55, 1, 73, 237, 55, 1, + 146, 237, 55, 1, 253, 194, 237, 55, 1, 254, 183, 237, 55, 1, 66, 237, 55, + 1, 254, 191, 237, 55, 1, 254, 196, 237, 55, 1, 193, 237, 55, 1, 253, 196, + 237, 55, 1, 253, 5, 237, 55, 1, 252, 232, 237, 55, 1, 253, 186, 237, 55, + 1, 253, 155, 237, 55, 1, 254, 194, 237, 55, 230, 160, 76, 178, 1, 57, + 178, 31, 5, 74, 178, 31, 5, 66, 178, 31, 5, 153, 146, 178, 31, 5, 72, + 178, 31, 5, 73, 178, 31, 237, 101, 76, 178, 5, 47, 246, 174, 51, 178, 5, + 231, 206, 178, 5, 233, 102, 178, 1, 177, 178, 1, 246, 178, 178, 1, 252, + 205, 178, 1, 246, 202, 178, 1, 252, 215, 178, 1, 246, 176, 178, 1, 252, + 213, 178, 1, 246, 181, 178, 1, 246, 191, 178, 1, 240, 150, 178, 1, 246, + 192, 178, 1, 240, 166, 178, 1, 246, 203, 178, 1, 252, 202, 178, 1, 246, + 173, 178, 1, 252, 203, 178, 1, 246, 196, 178, 1, 252, 201, 178, 1, 213, + 178, 1, 246, 182, 178, 1, 252, 211, 178, 1, 246, 199, 178, 1, 198, 178, + 1, 191, 178, 1, 208, 178, 1, 252, 200, 178, 1, 252, 243, 178, 1, 246, + 165, 178, 1, 246, 190, 178, 1, 252, 204, 178, 1, 252, 226, 178, 1, 154, + 178, 1, 247, 161, 178, 1, 240, 52, 178, 5, 252, 219, 46, 178, 5, 238, + 138, 178, 5, 56, 51, 178, 235, 43, 178, 21, 118, 178, 21, 113, 178, 21, + 166, 178, 21, 158, 178, 65, 246, 179, 178, 65, 235, 52, 178, 65, 168, + 233, 75, 178, 65, 168, 231, 196, 178, 229, 161, 246, 164, 178, 229, 161, + 3, 235, 20, 178, 229, 161, 235, 20, 178, 229, 161, 234, 39, 125, 178, + 229, 161, 232, 227, 178, 229, 161, 239, 89, 178, 229, 161, 237, 109, 178, + 229, 161, 47, 237, 109, 178, 229, 161, 239, 87, 13, 5, 57, 13, 5, 102, + 24, 57, 13, 5, 102, 24, 246, 206, 13, 5, 102, 24, 246, 201, 240, 131, 13, + 5, 102, 24, 154, 13, 5, 102, 24, 246, 234, 13, 5, 102, 24, 240, 171, 240, + 130, 13, 5, 102, 24, 240, 230, 13, 5, 102, 24, 247, 200, 13, 5, 253, 165, + 13, 5, 253, 166, 13, 5, 254, 202, 24, 240, 204, 13, 5, 254, 202, 24, 247, + 31, 240, 130, 13, 5, 254, 202, 24, 247, 12, 13, 5, 254, 202, 24, 246, + 201, 240, 131, 13, 5, 254, 202, 24, 154, 13, 5, 254, 202, 24, 253, 32, + 240, 130, 13, 5, 254, 202, 24, 241, 162, 13, 5, 254, 202, 24, 237, 160, + 13, 5, 254, 202, 24, 238, 53, 13, 5, 254, 202, 24, 97, 79, 97, 79, 66, + 13, 5, 254, 202, 240, 130, 13, 5, 248, 227, 13, 5, 253, 11, 24, 237, 172, + 13, 5, 253, 11, 24, 246, 201, 240, 131, 13, 5, 253, 11, 24, 254, 206, 79, + 252, 232, 13, 5, 253, 11, 24, 241, 68, 13, 5, 253, 11, 24, 240, 187, 13, + 5, 253, 206, 13, 5, 254, 25, 13, 5, 255, 1, 24, 237, 181, 13, 5, 255, 1, + 24, 241, 71, 79, 240, 208, 13, 5, 253, 112, 13, 5, 254, 209, 24, 253, + 112, 13, 5, 254, 209, 24, 241, 120, 13, 5, 254, 209, 24, 240, 208, 13, 5, + 254, 209, 24, 154, 13, 5, 254, 209, 24, 240, 254, 13, 5, 254, 209, 24, + 253, 7, 13, 5, 254, 209, 24, 246, 186, 13, 5, 254, 209, 24, 246, 249, 13, + 5, 242, 52, 13, 5, 238, 93, 13, 5, 241, 94, 13, 5, 248, 234, 24, 246, + 186, 13, 5, 253, 5, 13, 5, 254, 216, 107, 253, 5, 13, 5, 254, 216, 152, + 237, 166, 13, 5, 254, 216, 79, 247, 42, 233, 119, 254, 216, 79, 241, 55, + 13, 5, 254, 216, 79, 247, 42, 233, 91, 13, 5, 238, 97, 13, 5, 242, 60, + 13, 5, 242, 62, 13, 5, 248, 237, 24, 246, 220, 13, 5, 238, 103, 13, 5, + 238, 108, 13, 5, 246, 177, 13, 5, 252, 254, 248, 208, 240, 131, 13, 5, + 252, 254, 248, 77, 240, 131, 13, 5, 252, 254, 107, 252, 254, 247, 111, + 107, 247, 111, 247, 111, 107, 247, 111, 247, 45, 13, 5, 252, 254, 107, + 252, 254, 107, 246, 177, 13, 5, 252, 254, 107, 252, 254, 107, 252, 254, + 233, 77, 252, 254, 107, 252, 254, 107, 246, 177, 13, 5, 240, 204, 13, 5, + 235, 108, 13, 5, 252, 211, 13, 5, 246, 206, 13, 5, 242, 169, 13, 5, 236, + 5, 13, 5, 247, 120, 13, 5, 254, 31, 107, 247, 120, 13, 5, 237, 172, 13, + 5, 125, 13, 5, 238, 110, 13, 5, 253, 30, 13, 5, 254, 234, 24, 57, 13, 5, + 254, 234, 24, 246, 197, 13, 5, 254, 234, 24, 253, 32, 240, 130, 13, 5, + 253, 48, 13, 5, 254, 210, 107, 254, 210, 253, 166, 13, 5, 254, 210, 107, + 254, 210, 253, 121, 13, 5, 254, 210, 233, 77, 253, 48, 13, 5, 237, 196, + 13, 5, 242, 218, 107, 237, 196, 13, 5, 247, 11, 13, 5, 242, 223, 13, 5, + 252, 203, 13, 5, 248, 17, 13, 5, 252, 238, 237, 56, 24, 102, 79, 241, 5, + 13, 5, 252, 238, 237, 56, 24, 241, 94, 13, 5, 252, 238, 237, 56, 24, 237, + 172, 13, 5, 252, 238, 237, 56, 24, 253, 30, 13, 5, 252, 238, 237, 56, 24, + 252, 205, 13, 5, 252, 238, 237, 56, 24, 254, 248, 79, 241, 5, 13, 5, 252, + 238, 237, 56, 24, 253, 39, 13, 5, 252, 238, 237, 56, 24, 240, 250, 13, 5, + 252, 238, 237, 56, 24, 246, 233, 13, 5, 252, 238, 237, 56, 24, 154, 13, + 5, 252, 238, 237, 56, 24, 253, 149, 13, 5, 252, 238, 237, 56, 24, 255, + 32, 79, 253, 22, 13, 5, 252, 238, 237, 56, 24, 247, 16, 13, 5, 252, 238, + 237, 56, 24, 252, 200, 13, 5, 252, 238, 237, 56, 24, 253, 22, 13, 5, 252, + 238, 237, 56, 24, 254, 240, 79, 238, 23, 13, 5, 252, 238, 237, 56, 24, + 247, 18, 13, 5, 252, 238, 237, 56, 24, 252, 247, 13, 5, 252, 238, 237, + 56, 24, 254, 125, 79, 247, 45, 13, 5, 252, 238, 237, 56, 24, 253, 24, 13, + 5, 252, 238, 237, 56, 24, 240, 187, 13, 5, 252, 238, 237, 56, 24, 254, + 232, 79, 240, 250, 13, 5, 252, 238, 237, 56, 24, 246, 249, 13, 5, 249, + 177, 13, 5, 248, 19, 13, 5, 238, 170, 13, 5, 238, 171, 13, 5, 253, 12, + 13, 5, 248, 27, 13, 5, 249, 193, 13, 5, 253, 215, 24, 246, 186, 13, 5, + 241, 120, 13, 5, 248, 28, 13, 5, 254, 43, 237, 158, 97, 247, 36, 240, + 156, 13, 5, 240, 156, 13, 5, 253, 31, 13, 5, 254, 247, 107, 253, 31, 13, + 5, 254, 247, 240, 130, 13, 5, 254, 247, 233, 134, 13, 5, 247, 132, 13, 5, + 254, 47, 24, 240, 222, 13, 5, 243, 82, 13, 5, 247, 133, 13, 5, 238, 194, + 13, 5, 249, 209, 13, 5, 248, 33, 13, 5, 243, 83, 13, 5, 247, 31, 240, + 130, 13, 5, 247, 31, 247, 36, 240, 130, 13, 5, 243, 84, 13, 5, 243, 87, + 13, 5, 72, 13, 5, 161, 24, 247, 45, 13, 5, 161, 107, 161, 253, 23, 107, + 246, 195, 13, 5, 253, 218, 13, 5, 254, 219, 24, 102, 79, 254, 204, 79, + 252, 203, 13, 5, 254, 219, 24, 246, 197, 13, 5, 254, 219, 24, 252, 239, + 13, 5, 254, 219, 24, 247, 6, 13, 5, 254, 219, 24, 246, 186, 13, 5, 254, + 219, 24, 66, 13, 5, 243, 93, 13, 5, 243, 94, 13, 5, 253, 58, 13, 5, 252, + 232, 13, 5, 254, 199, 24, 240, 249, 13, 5, 254, 199, 24, 246, 201, 240, + 131, 13, 5, 254, 199, 24, 253, 13, 13, 5, 254, 199, 233, 77, 252, 232, + 13, 5, 254, 199, 233, 119, 252, 232, 13, 5, 254, 199, 233, 91, 13, 5, + 243, 100, 13, 5, 237, 181, 13, 5, 240, 222, 13, 5, 243, 104, 13, 5, 246, + 193, 24, 57, 13, 5, 246, 193, 24, 102, 79, 247, 2, 13, 5, 246, 193, 24, + 102, 79, 253, 184, 24, 247, 2, 13, 5, 246, 193, 24, 253, 5, 13, 5, 246, + 193, 24, 246, 206, 13, 5, 246, 193, 24, 247, 31, 240, 130, 13, 5, 246, + 193, 24, 247, 31, 247, 36, 240, 130, 13, 5, 246, 193, 24, 154, 13, 5, + 246, 193, 24, 254, 204, 240, 130, 13, 5, 246, 193, 24, 253, 32, 240, 130, + 13, 5, 246, 193, 24, 235, 76, 13, 5, 246, 193, 24, 237, 158, 233, 91, 13, + 5, 246, 193, 24, 247, 84, 13, 5, 246, 193, 24, 252, 200, 13, 5, 246, 193, + 24, 253, 184, 24, 247, 2, 13, 5, 246, 193, 24, 253, 42, 13, 5, 246, 193, + 24, 253, 22, 13, 5, 246, 193, 24, 253, 107, 13, 5, 246, 193, 24, 253, 45, + 13, 5, 252, 205, 13, 5, 254, 248, 240, 130, 13, 5, 248, 43, 13, 5, 252, + 199, 24, 102, 79, 254, 218, 79, 154, 13, 5, 252, 199, 24, 102, 79, 154, + 13, 5, 252, 199, 24, 102, 79, 246, 234, 13, 5, 252, 199, 24, 253, 11, + 252, 12, 79, 247, 208, 13, 5, 252, 199, 24, 253, 5, 13, 5, 252, 199, 24, + 246, 177, 13, 5, 252, 199, 24, 247, 243, 79, 247, 12, 13, 5, 252, 199, + 24, 246, 206, 13, 5, 252, 199, 24, 252, 219, 79, 208, 13, 5, 252, 199, + 24, 247, 11, 13, 5, 252, 199, 24, 253, 209, 79, 208, 13, 5, 252, 199, 24, + 252, 203, 13, 5, 252, 199, 24, 253, 12, 13, 5, 252, 199, 24, 253, 215, + 24, 246, 186, 13, 5, 252, 199, 24, 247, 132, 13, 5, 252, 199, 24, 253, + 58, 13, 5, 252, 199, 24, 254, 211, 79, 252, 200, 13, 5, 252, 199, 24, + 252, 232, 13, 5, 252, 199, 24, 254, 199, 24, 246, 201, 240, 131, 13, 5, + 252, 199, 24, 246, 201, 240, 131, 13, 5, 252, 199, 24, 246, 197, 13, 5, + 252, 199, 24, 253, 39, 13, 5, 252, 199, 24, 247, 78, 13, 5, 252, 199, 24, + 253, 180, 79, 57, 13, 5, 252, 199, 24, 248, 54, 79, 253, 26, 13, 5, 252, + 199, 24, 254, 204, 79, 254, 240, 79, 240, 222, 13, 5, 252, 199, 24, 247, + 80, 13, 5, 252, 199, 24, 254, 65, 79, 252, 200, 13, 5, 252, 199, 24, 254, + 201, 79, 253, 42, 13, 5, 252, 199, 24, 241, 158, 13, 5, 252, 199, 24, + 253, 32, 240, 130, 13, 5, 252, 199, 24, 254, 71, 79, 255, 30, 79, 246, + 177, 13, 5, 252, 199, 24, 247, 16, 13, 5, 252, 199, 24, 235, 76, 13, 5, + 252, 199, 24, 247, 159, 13, 5, 252, 199, 24, 254, 81, 79, 247, 2, 13, 5, + 252, 199, 24, 254, 86, 79, 253, 5, 13, 5, 252, 199, 24, 252, 200, 13, 5, + 252, 199, 24, 254, 206, 79, 252, 232, 13, 5, 252, 199, 24, 252, 239, 13, + 5, 252, 199, 24, 246, 195, 13, 5, 252, 199, 24, 253, 23, 107, 246, 195, + 13, 5, 252, 199, 24, 213, 13, 5, 252, 199, 24, 247, 6, 13, 5, 252, 199, + 24, 247, 101, 13, 5, 252, 199, 24, 246, 186, 13, 5, 252, 199, 24, 253, + 64, 79, 247, 112, 13, 5, 252, 199, 24, 241, 15, 13, 5, 252, 199, 24, 247, + 21, 13, 5, 252, 199, 24, 240, 187, 13, 5, 252, 199, 24, 66, 13, 5, 252, + 199, 24, 253, 45, 13, 5, 252, 199, 24, 254, 208, 79, 253, 31, 13, 5, 252, + 199, 107, 248, 43, 13, 5, 241, 136, 13, 5, 250, 9, 233, 77, 241, 136, 13, + 5, 248, 44, 13, 5, 253, 89, 107, 253, 89, 253, 75, 107, 246, 197, 13, 5, + 247, 12, 13, 5, 253, 179, 253, 89, 107, 253, 89, 253, 75, 107, 246, 197, + 13, 5, 238, 230, 13, 5, 250, 12, 13, 5, 247, 32, 13, 5, 240, 249, 13, 5, + 246, 201, 240, 131, 13, 5, 246, 201, 107, 240, 249, 13, 5, 246, 201, 233, + 77, 240, 249, 13, 5, 246, 197, 13, 5, 243, 115, 13, 5, 236, 89, 13, 5, + 234, 111, 13, 5, 236, 93, 24, 246, 220, 13, 5, 253, 39, 13, 5, 254, 228, + 24, 72, 13, 5, 254, 228, 24, 66, 13, 5, 254, 228, 233, 77, 253, 39, 13, + 5, 247, 78, 13, 5, 253, 180, 107, 247, 78, 13, 5, 253, 180, 233, 77, 247, + 78, 13, 5, 238, 246, 13, 5, 240, 250, 13, 5, 248, 54, 240, 130, 13, 5, + 243, 150, 13, 5, 247, 33, 24, 102, 79, 246, 234, 13, 5, 247, 33, 24, 246, + 201, 240, 131, 13, 5, 247, 33, 24, 246, 234, 13, 5, 247, 33, 24, 254, + 240, 79, 246, 234, 13, 5, 247, 33, 24, 213, 13, 5, 238, 249, 13, 5, 240, + 208, 13, 5, 246, 243, 233, 77, 240, 208, 13, 5, 246, 243, 24, 246, 206, + 13, 5, 246, 243, 24, 240, 187, 13, 5, 246, 243, 240, 131, 13, 5, 253, 40, + 13, 5, 255, 28, 233, 77, 253, 40, 13, 5, 250, 43, 13, 5, 253, 126, 24, + 247, 16, 13, 5, 253, 126, 24, 253, 237, 24, 253, 32, 240, 130, 13, 5, + 253, 126, 24, 246, 195, 13, 5, 253, 126, 24, 253, 192, 79, 241, 20, 13, + 5, 253, 126, 240, 130, 13, 5, 246, 233, 13, 5, 253, 127, 24, 102, 79, + 246, 220, 13, 5, 253, 127, 24, 246, 220, 13, 5, 253, 127, 107, 253, 127, + 237, 185, 13, 5, 250, 44, 13, 5, 250, 45, 13, 5, 254, 62, 24, 246, 186, + 13, 5, 248, 57, 13, 5, 241, 147, 13, 5, 238, 255, 13, 5, 236, 100, 13, 5, + 154, 13, 5, 254, 204, 240, 131, 13, 5, 254, 204, 240, 130, 13, 5, 247, + 80, 13, 5, 253, 41, 13, 5, 254, 201, 24, 246, 177, 13, 5, 254, 201, 24, + 240, 204, 13, 5, 254, 201, 24, 246, 206, 13, 5, 254, 201, 24, 240, 156, + 13, 5, 254, 201, 24, 248, 44, 13, 5, 254, 201, 24, 247, 160, 13, 5, 254, + 201, 24, 246, 195, 13, 5, 254, 201, 24, 246, 186, 13, 5, 254, 201, 24, + 66, 13, 5, 253, 59, 13, 5, 241, 158, 13, 5, 247, 37, 24, 253, 5, 13, 5, + 247, 37, 24, 247, 80, 13, 5, 247, 37, 24, 235, 76, 13, 5, 247, 37, 24, + 241, 47, 13, 5, 247, 37, 24, 253, 45, 13, 5, 243, 235, 13, 5, 74, 13, 5, + 255, 55, 57, 13, 5, 253, 229, 13, 5, 244, 2, 13, 5, 247, 82, 107, 247, + 82, 247, 11, 13, 5, 247, 82, 107, 247, 82, 233, 91, 13, 5, 254, 68, 13, + 5, 246, 234, 13, 5, 253, 32, 248, 27, 13, 5, 253, 32, 253, 37, 13, 5, + 253, 32, 107, 253, 32, 247, 52, 107, 247, 52, 254, 208, 107, 253, 45, 13, + 5, 253, 32, 240, 130, 13, 5, 254, 69, 13, 5, 255, 31, 24, 246, 201, 240, + 131, 13, 5, 250, 117, 13, 5, 253, 78, 13, 5, 254, 221, 24, 240, 187, 13, + 5, 254, 221, 233, 77, 253, 78, 13, 5, 254, 221, 233, 119, 253, 78, 13, 5, + 254, 221, 233, 91, 13, 5, 241, 162, 13, 5, 253, 79, 13, 5, 253, 149, 13, + 5, 248, 68, 13, 5, 177, 13, 5, 188, 24, 57, 13, 5, 188, 24, 253, 206, 13, + 5, 188, 24, 255, 18, 79, 247, 84, 13, 5, 188, 24, 240, 204, 13, 5, 188, + 24, 246, 206, 13, 5, 188, 24, 237, 172, 13, 5, 188, 24, 125, 13, 5, 188, + 24, 253, 30, 13, 5, 188, 24, 237, 181, 13, 5, 188, 24, 240, 222, 13, 5, + 188, 24, 252, 205, 13, 5, 188, 24, 247, 12, 13, 5, 188, 24, 246, 201, + 240, 131, 13, 5, 188, 24, 246, 197, 13, 5, 188, 24, 253, 75, 79, 246, + 236, 79, 57, 13, 5, 188, 24, 253, 39, 13, 5, 188, 24, 240, 250, 13, 5, + 188, 24, 246, 243, 79, 247, 101, 13, 5, 188, 24, 246, 243, 233, 77, 240, + 208, 13, 5, 188, 24, 253, 40, 13, 5, 188, 24, 241, 147, 13, 5, 188, 24, + 246, 234, 13, 5, 188, 24, 253, 78, 13, 5, 188, 24, 247, 16, 13, 5, 188, + 24, 253, 7, 13, 5, 188, 24, 247, 159, 13, 5, 188, 24, 253, 42, 13, 5, + 188, 24, 253, 22, 13, 5, 188, 24, 253, 13, 13, 5, 188, 24, 254, 206, 79, + 253, 31, 13, 5, 188, 24, 254, 206, 79, 253, 39, 13, 5, 188, 24, 254, 206, + 79, 253, 9, 13, 5, 188, 24, 252, 239, 13, 5, 188, 24, 255, 11, 79, 238, + 30, 13, 5, 188, 24, 252, 247, 13, 5, 188, 24, 246, 195, 13, 5, 188, 24, + 252, 223, 13, 5, 188, 24, 253, 3, 13, 5, 188, 24, 252, 204, 13, 5, 188, + 24, 247, 101, 13, 5, 188, 24, 246, 165, 13, 5, 188, 24, 246, 186, 13, 5, + 188, 24, 241, 15, 13, 5, 188, 24, 246, 246, 13, 5, 188, 24, 248, 161, 13, + 5, 188, 24, 238, 68, 13, 5, 188, 24, 247, 56, 13, 5, 188, 24, 66, 13, 5, + 188, 24, 253, 107, 13, 5, 188, 24, 253, 45, 13, 5, 188, 24, 247, 220, 24, + 213, 13, 5, 188, 24, 246, 249, 13, 5, 188, 24, 253, 72, 13, 5, 248, 75, + 13, 5, 254, 77, 233, 77, 248, 75, 13, 5, 250, 151, 13, 5, 241, 168, 13, + 5, 240, 254, 13, 5, 244, 45, 13, 5, 241, 169, 13, 5, 250, 153, 107, 241, + 169, 13, 5, 247, 16, 13, 5, 253, 237, 24, 253, 32, 240, 130, 13, 5, 247, + 155, 13, 5, 253, 238, 24, 246, 206, 13, 5, 253, 238, 233, 77, 247, 155, + 13, 5, 244, 46, 13, 5, 244, 47, 13, 5, 235, 76, 13, 5, 237, 158, 215, 24, + 97, 107, 215, 24, 66, 13, 5, 237, 158, 107, 237, 158, 215, 24, 97, 107, + 215, 24, 66, 13, 5, 239, 66, 13, 5, 253, 7, 13, 5, 254, 249, 24, 246, + 206, 13, 5, 254, 249, 24, 66, 13, 5, 254, 249, 24, 253, 45, 13, 5, 247, + 159, 13, 5, 247, 160, 13, 5, 239, 71, 13, 5, 244, 61, 13, 5, 235, 184, + 13, 5, 237, 56, 107, 235, 184, 13, 5, 253, 34, 13, 5, 254, 238, 107, 254, + 201, 24, 247, 243, 254, 238, 107, 254, 201, 24, 240, 204, 13, 5, 247, 84, + 13, 5, 250, 187, 13, 5, 254, 87, 235, 30, 15, 13, 5, 250, 188, 13, 5, + 248, 86, 13, 5, 253, 241, 240, 130, 13, 5, 250, 189, 13, 5, 246, 220, 13, + 5, 253, 242, 233, 119, 246, 220, 13, 5, 235, 127, 13, 5, 236, 125, 13, 5, + 252, 200, 13, 5, 237, 160, 13, 5, 215, 24, 57, 13, 5, 215, 24, 102, 79, + 254, 218, 79, 154, 13, 5, 215, 24, 102, 79, 246, 197, 13, 5, 215, 24, + 102, 79, 247, 2, 13, 5, 215, 24, 253, 112, 13, 5, 215, 24, 253, 5, 13, 5, + 215, 24, 252, 254, 248, 208, 240, 131, 13, 5, 215, 24, 246, 206, 13, 5, + 215, 24, 253, 30, 13, 5, 215, 24, 248, 19, 13, 5, 215, 24, 252, 232, 13, + 5, 215, 24, 252, 205, 13, 5, 215, 24, 246, 197, 13, 5, 215, 24, 246, 233, + 13, 5, 215, 24, 253, 127, 79, 246, 233, 13, 5, 215, 24, 154, 13, 5, 215, + 24, 247, 80, 13, 5, 215, 24, 254, 201, 24, 246, 195, 13, 5, 215, 24, 253, + 32, 240, 130, 13, 5, 215, 24, 253, 78, 13, 5, 215, 24, 254, 221, 79, 154, + 13, 5, 215, 24, 254, 221, 79, 253, 22, 13, 5, 215, 24, 253, 7, 13, 5, + 215, 24, 247, 160, 13, 5, 215, 24, 247, 84, 13, 5, 215, 24, 248, 86, 13, + 5, 215, 24, 253, 241, 79, 254, 201, 79, 57, 13, 5, 215, 24, 237, 160, 13, + 5, 215, 24, 241, 47, 13, 5, 215, 24, 253, 22, 13, 5, 215, 24, 247, 170, + 13, 5, 215, 24, 253, 13, 13, 5, 215, 24, 254, 206, 79, 252, 232, 13, 5, + 215, 24, 240, 230, 13, 5, 215, 24, 252, 247, 13, 5, 215, 24, 253, 64, 79, + 247, 21, 13, 5, 215, 24, 241, 71, 79, 246, 243, 79, 237, 181, 13, 5, 215, + 24, 241, 71, 79, 246, 243, 240, 131, 13, 5, 215, 24, 240, 236, 13, 5, + 215, 24, 251, 221, 79, 240, 236, 13, 5, 215, 24, 247, 21, 13, 5, 215, 24, + 247, 105, 13, 5, 215, 24, 240, 187, 13, 5, 215, 24, 254, 212, 79, 102, + 79, 254, 253, 79, 252, 201, 13, 5, 215, 24, 66, 13, 5, 215, 24, 97, 79, + 57, 13, 5, 215, 24, 97, 79, 97, 79, 66, 13, 5, 215, 24, 254, 232, 79, + 246, 177, 13, 5, 215, 24, 253, 45, 13, 5, 215, 24, 246, 249, 13, 5, 215, + 233, 91, 13, 5, 238, 17, 13, 5, 240, 171, 24, 246, 186, 13, 5, 240, 171, + 24, 253, 64, 79, 247, 21, 13, 5, 240, 171, 240, 130, 13, 5, 240, 171, + 247, 36, 107, 240, 171, 247, 36, 246, 186, 13, 5, 236, 128, 13, 5, 247, + 2, 13, 5, 253, 184, 24, 247, 2, 13, 5, 248, 89, 13, 5, 216, 24, 246, 220, + 13, 5, 216, 24, 253, 242, 79, 253, 3, 13, 5, 253, 42, 13, 5, 250, 221, + 13, 5, 236, 136, 13, 5, 241, 47, 13, 5, 253, 22, 13, 5, 254, 240, 24, + 246, 206, 13, 5, 247, 169, 13, 5, 252, 236, 24, 253, 112, 13, 5, 252, + 236, 24, 246, 206, 13, 5, 252, 236, 24, 240, 222, 13, 5, 252, 236, 24, + 249, 233, 240, 131, 13, 5, 252, 236, 24, 246, 201, 240, 131, 13, 5, 252, + 236, 24, 254, 201, 24, 246, 206, 13, 5, 252, 236, 24, 253, 78, 13, 5, + 252, 236, 24, 241, 168, 13, 5, 252, 236, 24, 240, 254, 13, 5, 252, 236, + 24, 250, 152, 79, 246, 177, 13, 5, 252, 236, 24, 253, 7, 13, 5, 252, 236, + 24, 254, 229, 79, 246, 177, 13, 5, 252, 236, 24, 237, 160, 13, 5, 252, + 236, 24, 254, 206, 79, 252, 232, 13, 5, 252, 236, 24, 252, 247, 13, 5, + 252, 236, 24, 252, 227, 13, 5, 252, 236, 24, 255, 16, 79, 246, 177, 13, + 5, 252, 236, 24, 251, 224, 79, 253, 48, 13, 5, 252, 236, 24, 241, 20, 13, + 5, 252, 236, 240, 131, 13, 5, 252, 236, 233, 77, 247, 169, 13, 5, 252, + 236, 233, 119, 247, 169, 13, 5, 252, 236, 233, 91, 13, 5, 252, 236, 233, + 134, 13, 5, 250, 234, 13, 5, 237, 185, 13, 5, 241, 49, 107, 237, 185, 13, + 5, 241, 49, 233, 119, 237, 185, 13, 5, 241, 49, 233, 134, 13, 5, 250, + 235, 13, 5, 247, 170, 13, 5, 247, 18, 13, 5, 253, 185, 107, 247, 18, 13, + 5, 253, 185, 107, 253, 185, 253, 75, 107, 246, 197, 13, 5, 198, 13, 5, + 255, 10, 24, 240, 187, 13, 5, 255, 10, 240, 130, 13, 5, 250, 245, 13, 5, + 250, 246, 13, 5, 250, 248, 13, 5, 241, 5, 13, 5, 238, 23, 13, 5, 253, 13, + 13, 5, 251, 5, 13, 5, 252, 239, 13, 5, 247, 174, 13, 5, 252, 229, 13, 5, + 254, 207, 107, 252, 229, 13, 5, 248, 103, 13, 5, 254, 105, 240, 130, 13, + 5, 236, 160, 13, 5, 236, 162, 13, 5, 240, 230, 13, 5, 247, 5, 24, 57, 13, + 5, 247, 5, 24, 246, 220, 13, 5, 247, 5, 24, 252, 226, 13, 5, 247, 5, 107, + 240, 230, 13, 5, 247, 5, 107, 247, 5, 24, 102, 79, 252, 201, 13, 5, 247, + 5, 233, 77, 240, 230, 13, 5, 239, 122, 13, 5, 241, 6, 24, 57, 13, 5, 241, + 6, 24, 102, 79, 253, 12, 13, 5, 241, 6, 24, 253, 12, 13, 5, 241, 6, 240, + 130, 13, 5, 252, 201, 13, 5, 251, 36, 13, 5, 241, 55, 13, 5, 247, 42, + 232, 209, 13, 5, 247, 42, 24, 254, 7, 240, 131, 13, 5, 247, 42, 233, 119, + 241, 55, 13, 5, 239, 124, 13, 5, 254, 110, 233, 222, 13, 5, 251, 39, 13, + 5, 244, 164, 13, 5, 252, 247, 13, 5, 254, 251, 24, 57, 13, 5, 254, 251, + 24, 253, 45, 13, 5, 254, 251, 233, 134, 13, 5, 252, 248, 13, 5, 254, 230, + 24, 72, 13, 5, 251, 58, 13, 5, 251, 61, 13, 5, 253, 249, 24, 246, 201, + 240, 131, 13, 5, 253, 249, 24, 253, 75, 79, 246, 201, 240, 131, 13, 5, + 236, 166, 13, 5, 237, 87, 24, 253, 5, 13, 5, 237, 87, 24, 246, 177, 13, + 5, 237, 87, 24, 252, 254, 79, 246, 177, 13, 5, 237, 87, 24, 246, 233, 13, + 5, 237, 87, 24, 254, 206, 79, 246, 201, 240, 131, 13, 5, 237, 87, 24, + 252, 247, 13, 5, 237, 87, 24, 246, 195, 13, 5, 237, 87, 24, 246, 186, 13, + 5, 237, 87, 24, 253, 64, 79, 102, 253, 5, 13, 5, 237, 87, 24, 253, 64, + 79, 246, 177, 13, 5, 237, 87, 24, 253, 64, 79, 252, 254, 79, 246, 177, + 13, 5, 237, 87, 24, 254, 232, 79, 246, 177, 13, 5, 237, 87, 24, 246, 249, + 13, 5, 239, 145, 13, 5, 252, 227, 13, 5, 245, 12, 13, 5, 246, 195, 13, 5, + 253, 23, 240, 171, 24, 246, 197, 13, 5, 253, 23, 240, 171, 24, 241, 5, + 13, 5, 253, 23, 240, 171, 24, 247, 6, 13, 5, 253, 23, 240, 171, 24, 253, + 192, 107, 253, 23, 240, 171, 24, 247, 6, 13, 5, 253, 23, 240, 171, 24, + 246, 249, 13, 5, 253, 23, 240, 131, 13, 5, 253, 23, 107, 246, 195, 13, 5, + 253, 23, 233, 77, 246, 195, 13, 5, 253, 23, 233, 77, 253, 23, 240, 171, + 107, 238, 17, 13, 5, 238, 30, 13, 5, 240, 177, 253, 11, 24, 235, 108, 13, + 5, 240, 177, 253, 11, 24, 253, 30, 13, 5, 240, 177, 253, 11, 24, 247, + 133, 13, 5, 240, 177, 253, 11, 24, 246, 233, 13, 5, 240, 177, 253, 11, + 24, 253, 32, 240, 130, 13, 5, 240, 177, 253, 11, 24, 240, 254, 13, 5, + 240, 177, 253, 11, 24, 252, 200, 13, 5, 240, 177, 253, 11, 24, 252, 247, + 13, 5, 240, 177, 253, 11, 24, 238, 59, 13, 5, 240, 177, 253, 11, 24, 253, + 107, 13, 5, 240, 177, 237, 56, 24, 253, 30, 13, 5, 240, 177, 237, 56, 24, + 254, 234, 66, 13, 5, 213, 13, 5, 251, 101, 13, 5, 251, 103, 13, 5, 247, + 45, 13, 5, 239, 194, 13, 5, 252, 223, 13, 5, 254, 200, 24, 57, 13, 5, + 254, 200, 24, 253, 166, 13, 5, 254, 200, 24, 253, 30, 13, 5, 254, 200, + 24, 253, 48, 13, 5, 254, 200, 24, 72, 13, 5, 254, 200, 24, 74, 13, 5, + 254, 200, 24, 253, 229, 13, 5, 254, 200, 24, 66, 13, 5, 254, 200, 24, + 253, 107, 13, 5, 254, 200, 233, 77, 252, 223, 13, 5, 238, 34, 13, 5, 241, + 10, 24, 247, 155, 13, 5, 241, 10, 24, 253, 45, 13, 5, 241, 10, 24, 252, + 226, 13, 5, 241, 10, 233, 119, 238, 34, 13, 5, 208, 13, 5, 251, 168, 13, + 5, 253, 37, 13, 5, 253, 3, 13, 5, 252, 204, 13, 5, 252, 253, 233, 222, + 13, 5, 247, 200, 13, 5, 252, 253, 24, 57, 13, 5, 252, 253, 24, 253, 31, + 13, 5, 252, 253, 24, 247, 132, 13, 5, 252, 253, 24, 154, 13, 5, 252, 253, + 24, 247, 16, 13, 5, 252, 253, 24, 246, 220, 13, 5, 252, 253, 24, 247, 18, + 13, 5, 252, 253, 24, 252, 239, 13, 5, 252, 253, 24, 246, 195, 13, 5, 252, + 253, 24, 247, 6, 13, 5, 252, 253, 24, 241, 15, 13, 5, 252, 253, 24, 247, + 208, 13, 5, 252, 253, 24, 253, 107, 13, 5, 252, 253, 24, 254, 14, 13, 5, + 252, 253, 24, 253, 199, 13, 5, 252, 253, 24, 253, 161, 13, 5, 252, 253, + 24, 246, 249, 13, 5, 252, 253, 107, 247, 200, 13, 5, 252, 253, 240, 130, + 13, 5, 247, 6, 13, 5, 253, 192, 215, 24, 240, 204, 13, 5, 236, 206, 13, + 5, 247, 101, 13, 5, 246, 165, 13, 5, 241, 68, 13, 5, 246, 236, 24, 57, + 13, 5, 246, 236, 24, 246, 206, 13, 5, 246, 236, 24, 240, 208, 13, 5, 246, + 236, 24, 252, 247, 13, 5, 246, 236, 24, 240, 236, 13, 5, 246, 236, 24, + 247, 112, 13, 5, 246, 236, 24, 66, 13, 5, 246, 236, 24, 97, 79, 57, 13, + 5, 245, 157, 13, 5, 239, 243, 13, 5, 237, 116, 13, 5, 246, 186, 13, 5, + 253, 64, 253, 59, 13, 5, 253, 64, 107, 253, 64, 253, 89, 107, 253, 89, + 253, 75, 107, 246, 197, 13, 5, 253, 64, 107, 253, 64, 253, 134, 107, 253, + 134, 253, 75, 107, 246, 197, 13, 5, 239, 245, 13, 5, 245, 161, 13, 5, + 238, 53, 13, 5, 236, 223, 13, 5, 233, 25, 13, 5, 241, 15, 13, 5, 248, + 158, 24, 57, 13, 5, 248, 158, 24, 253, 78, 13, 5, 245, 166, 13, 5, 246, + 222, 24, 57, 13, 5, 246, 222, 24, 247, 120, 13, 5, 246, 222, 24, 237, + 196, 13, 5, 246, 222, 24, 248, 28, 13, 5, 246, 222, 24, 246, 197, 13, 5, + 246, 222, 24, 246, 234, 13, 5, 246, 222, 24, 253, 32, 240, 130, 13, 5, + 246, 222, 24, 235, 127, 13, 5, 246, 222, 24, 247, 170, 13, 5, 246, 222, + 24, 248, 103, 13, 5, 246, 222, 24, 247, 6, 13, 5, 236, 226, 13, 5, 245, + 169, 13, 5, 247, 52, 240, 131, 13, 5, 247, 52, 107, 247, 52, 253, 209, + 107, 247, 11, 13, 5, 239, 249, 13, 5, 246, 246, 13, 5, 254, 7, 107, 233, + 70, 246, 246, 13, 5, 240, 236, 13, 5, 236, 228, 13, 5, 253, 24, 13, 5, + 255, 16, 240, 130, 13, 5, 248, 161, 13, 5, 241, 245, 13, 5, 248, 162, + 107, 248, 162, 240, 236, 13, 5, 245, 185, 13, 5, 238, 59, 13, 5, 253, 26, + 13, 5, 254, 253, 107, 253, 26, 13, 5, 251, 240, 13, 5, 245, 222, 13, 5, + 238, 68, 13, 5, 247, 21, 13, 5, 236, 247, 13, 5, 247, 205, 13, 5, 245, + 226, 13, 5, 252, 202, 13, 5, 254, 214, 231, 198, 13, 5, 254, 214, 24, + 253, 41, 13, 5, 254, 214, 24, 252, 239, 13, 5, 254, 214, 240, 130, 13, 5, + 247, 208, 13, 5, 253, 134, 107, 253, 134, 254, 230, 107, 254, 230, 249, + 195, 107, 240, 156, 13, 5, 253, 134, 233, 91, 13, 5, 247, 105, 13, 5, + 108, 24, 253, 30, 13, 5, 108, 24, 246, 233, 13, 5, 108, 24, 246, 186, 13, + 5, 108, 24, 246, 246, 13, 5, 108, 24, 241, 20, 13, 5, 108, 24, 253, 45, + 13, 5, 240, 187, 13, 5, 247, 56, 13, 5, 253, 9, 13, 5, 254, 212, 240, + 130, 13, 5, 253, 44, 13, 5, 255, 49, 240, 131, 13, 5, 252, 21, 13, 5, + 248, 172, 13, 5, 253, 136, 24, 240, 187, 13, 5, 253, 136, 107, 248, 172, + 13, 5, 253, 136, 107, 253, 136, 253, 89, 107, 253, 89, 253, 75, 107, 246, + 197, 13, 5, 253, 18, 13, 5, 241, 20, 13, 5, 248, 183, 13, 5, 248, 184, + 13, 5, 247, 112, 13, 5, 254, 12, 107, 254, 12, 254, 255, 107, 252, 226, + 13, 5, 66, 13, 5, 97, 246, 233, 13, 5, 97, 97, 66, 13, 5, 97, 107, 97, + 254, 242, 107, 254, 242, 253, 75, 107, 246, 197, 13, 5, 97, 107, 97, 254, + 152, 107, 247, 205, 13, 5, 97, 107, 97, 97, 200, 107, 97, 232, 5, 13, 5, + 253, 107, 13, 5, 254, 14, 13, 5, 253, 45, 13, 5, 254, 208, 235, 127, 13, + 5, 254, 208, 24, 246, 206, 13, 5, 254, 208, 24, 252, 239, 13, 5, 254, + 208, 24, 97, 79, 97, 79, 66, 13, 5, 254, 208, 24, 97, 79, 97, 79, 97, + 240, 130, 13, 5, 254, 208, 240, 130, 13, 5, 254, 208, 233, 134, 13, 5, + 254, 208, 236, 224, 24, 246, 206, 13, 5, 246, 30, 13, 5, 253, 199, 13, 5, + 254, 243, 24, 237, 160, 13, 5, 254, 243, 24, 254, 206, 79, 252, 203, 13, + 5, 254, 243, 24, 241, 68, 13, 5, 254, 243, 24, 66, 13, 5, 240, 66, 13, 5, + 246, 32, 13, 5, 247, 220, 24, 235, 76, 13, 5, 247, 220, 24, 213, 13, 5, + 253, 121, 13, 5, 255, 51, 240, 130, 13, 5, 253, 161, 13, 5, 254, 244, + 233, 77, 253, 161, 13, 5, 254, 244, 233, 134, 13, 5, 252, 58, 13, 5, 253, + 94, 24, 102, 79, 154, 13, 5, 253, 94, 24, 102, 79, 252, 201, 13, 5, 253, + 94, 24, 253, 112, 13, 5, 253, 94, 24, 154, 13, 5, 253, 94, 24, 246, 195, + 13, 5, 253, 94, 24, 253, 107, 13, 5, 253, 94, 24, 254, 232, 79, 246, 177, + 13, 5, 253, 94, 24, 254, 232, 79, 253, 30, 13, 5, 252, 59, 13, 5, 252, + 61, 13, 5, 246, 35, 13, 5, 252, 63, 13, 5, 252, 242, 24, 57, 13, 5, 252, + 242, 24, 235, 108, 13, 5, 252, 242, 24, 125, 13, 5, 252, 242, 24, 248, + 33, 13, 5, 252, 242, 24, 252, 205, 13, 5, 252, 242, 24, 247, 12, 13, 5, + 252, 242, 24, 246, 201, 240, 131, 13, 5, 252, 242, 24, 246, 197, 13, 5, + 252, 242, 24, 253, 40, 13, 5, 252, 242, 24, 154, 13, 5, 252, 242, 24, + 246, 234, 13, 5, 252, 242, 24, 253, 78, 13, 5, 252, 242, 24, 248, 68, 13, + 5, 252, 242, 24, 253, 7, 13, 5, 252, 242, 24, 247, 18, 13, 5, 252, 242, + 24, 247, 174, 13, 5, 252, 242, 24, 213, 13, 5, 252, 242, 24, 246, 186, + 13, 5, 252, 242, 24, 241, 245, 13, 5, 252, 242, 24, 253, 18, 13, 5, 252, + 242, 24, 97, 79, 246, 233, 13, 5, 252, 242, 24, 253, 45, 13, 5, 252, 242, + 24, 238, 80, 13, 5, 238, 80, 13, 5, 246, 36, 24, 66, 13, 5, 246, 249, 13, + 5, 253, 162, 24, 57, 13, 5, 253, 162, 24, 253, 34, 13, 5, 253, 162, 24, + 246, 220, 13, 5, 253, 162, 24, 240, 187, 13, 5, 246, 39, 13, 5, 246, 38, + 13, 5, 237, 18, 13, 5, 240, 70, 13, 5, 252, 67, 13, 5, 254, 166, 24, 235, + 76, 13, 5, 252, 68, 13, 5, 252, 226, 13, 5, 254, 255, 240, 131, 13, 5, + 254, 255, 235, 51, 24, 246, 220, 13, 5, 252, 166, 13, 5, 246, 106, 13, 5, + 252, 172, 13, 5, 253, 72, 13, 5, 255, 54, 107, 253, 72, 13, 5, 252, 176, + 13, 5, 252, 177, 13, 5, 254, 179, 248, 77, 240, 131, 13, 5, 252, 179, 13, + 5, 246, 131, 13, 5, 253, 97, 13, 5, 252, 188, 13, 5, 254, 181, 24, 57, + 13, 5, 240, 110, 13, 5, 252, 189, 13, 111, 5, 135, 246, 177, 13, 111, 5, + 152, 246, 177, 13, 111, 5, 246, 160, 246, 177, 13, 111, 5, 246, 159, 246, + 177, 13, 111, 5, 253, 17, 246, 177, 13, 111, 5, 240, 155, 246, 177, 13, + 111, 5, 240, 142, 246, 177, 13, 111, 5, 246, 208, 246, 177, 13, 111, 5, + 152, 240, 156, 13, 111, 5, 246, 160, 240, 156, 13, 111, 5, 246, 159, 240, + 156, 13, 111, 5, 253, 17, 240, 156, 13, 111, 5, 240, 155, 240, 156, 13, + 111, 5, 240, 142, 240, 156, 13, 111, 5, 246, 208, 240, 156, 13, 111, 5, + 246, 160, 66, 13, 111, 5, 246, 159, 66, 13, 111, 5, 253, 17, 66, 13, 111, + 5, 240, 155, 66, 13, 111, 5, 240, 142, 66, 13, 111, 5, 246, 208, 66, 13, + 111, 5, 168, 237, 113, 13, 111, 5, 135, 237, 113, 13, 111, 5, 152, 237, + 113, 13, 111, 5, 246, 160, 237, 113, 13, 111, 5, 246, 159, 237, 113, 13, + 111, 5, 253, 17, 237, 113, 13, 111, 5, 240, 155, 237, 113, 13, 111, 5, + 240, 142, 237, 113, 13, 111, 5, 246, 208, 237, 113, 13, 111, 5, 168, 237, + 156, 13, 111, 5, 135, 237, 156, 13, 111, 5, 152, 237, 156, 13, 111, 5, + 246, 160, 237, 156, 13, 111, 5, 246, 159, 237, 156, 13, 111, 5, 135, 237, + 116, 13, 111, 5, 152, 237, 116, 13, 111, 5, 152, 241, 69, 235, 30, 15, + 13, 111, 5, 246, 160, 237, 116, 13, 111, 5, 246, 159, 237, 116, 13, 111, + 5, 253, 17, 237, 116, 13, 111, 5, 240, 155, 237, 116, 13, 111, 5, 240, + 142, 237, 116, 13, 111, 5, 246, 208, 237, 116, 13, 111, 5, 168, 237, 163, + 13, 111, 5, 135, 237, 163, 13, 111, 5, 152, 237, 163, 13, 111, 5, 152, + 245, 159, 235, 30, 15, 13, 111, 5, 246, 160, 237, 163, 13, 111, 5, 246, + 159, 237, 163, 13, 111, 5, 241, 69, 24, 253, 179, 79, 240, 156, 13, 111, + 5, 241, 69, 24, 253, 179, 79, 247, 174, 13, 111, 5, 168, 240, 219, 13, + 111, 5, 135, 240, 219, 13, 111, 5, 152, 240, 219, 13, 111, 5, 152, 249, + 131, 235, 30, 15, 13, 111, 5, 246, 160, 240, 219, 13, 111, 5, 246, 159, + 240, 219, 13, 111, 5, 152, 235, 30, 211, 238, 207, 13, 111, 5, 152, 235, + 30, 211, 238, 208, 13, 111, 5, 246, 160, 235, 30, 211, 239, 86, 13, 111, + 5, 246, 160, 235, 30, 211, 236, 137, 13, 111, 5, 246, 160, 235, 30, 211, + 241, 181, 57, 13, 111, 5, 246, 160, 235, 30, 211, 241, 181, 254, 185, 13, + 111, 5, 253, 17, 235, 30, 211, 242, 65, 13, 111, 5, 240, 155, 235, 30, + 211, 239, 41, 13, 111, 5, 240, 155, 235, 30, 211, 248, 67, 57, 13, 111, + 5, 240, 155, 235, 30, 211, 248, 67, 254, 185, 13, 111, 5, 240, 142, 235, + 30, 211, 246, 40, 13, 111, 5, 240, 142, 235, 30, 211, 240, 69, 13, 111, + 5, 246, 208, 235, 30, 211, 236, 109, 13, 111, 5, 246, 208, 235, 30, 211, + 234, 126, 13, 111, 5, 246, 208, 235, 30, 211, 234, 127, 13, 111, 5, 246, + 208, 235, 30, 211, 239, 40, 57, 13, 111, 5, 135, 252, 254, 240, 131, 13, + 111, 5, 152, 252, 254, 240, 131, 13, 111, 5, 246, 160, 252, 254, 240, + 131, 13, 111, 5, 246, 159, 252, 254, 240, 131, 13, 111, 5, 253, 17, 252, + 254, 240, 131, 13, 111, 5, 168, 240, 218, 13, 111, 5, 135, 240, 218, 13, + 111, 5, 152, 240, 218, 13, 111, 5, 246, 160, 240, 218, 13, 111, 5, 246, + 160, 247, 249, 235, 30, 15, 13, 111, 5, 246, 159, 240, 218, 13, 111, 5, + 246, 159, 247, 249, 235, 30, 15, 13, 111, 5, 231, 109, 13, 111, 5, 231, + 108, 13, 111, 5, 168, 237, 244, 13, 111, 5, 135, 237, 244, 13, 111, 5, + 168, 240, 239, 240, 156, 13, 111, 5, 135, 237, 218, 240, 156, 13, 111, 5, + 246, 159, 240, 0, 240, 156, 13, 111, 5, 168, 240, 239, 235, 30, 211, 57, + 13, 111, 5, 135, 237, 218, 235, 30, 211, 57, 13, 111, 5, 168, 237, 112, + 246, 177, 13, 111, 5, 168, 235, 53, 246, 177, 13, 111, 5, 84, 233, 158, + 168, 238, 61, 13, 111, 5, 84, 233, 158, 168, 233, 155, 13, 229, 161, 5, + 84, 233, 158, 247, 8, 233, 140, 13, 229, 161, 5, 61, 237, 66, 13, 229, + 161, 5, 233, 74, 237, 66, 13, 229, 161, 5, 233, 74, 232, 57, 43, 23, 14, + 237, 77, 43, 23, 14, 236, 42, 43, 23, 14, 228, 179, 43, 23, 14, 241, 58, + 228, 190, 43, 23, 14, 241, 58, 237, 132, 43, 23, 14, 237, 223, 228, 190, + 43, 23, 14, 237, 223, 237, 132, 43, 23, 14, 232, 213, 43, 23, 14, 231, + 174, 43, 23, 14, 229, 46, 43, 23, 14, 231, 188, 43, 23, 14, 233, 66, 237, + 132, 43, 23, 14, 232, 217, 43, 23, 14, 241, 95, 228, 190, 43, 23, 14, + 253, 221, 228, 190, 43, 23, 14, 235, 220, 43, 23, 14, 231, 92, 43, 23, + 14, 229, 230, 43, 23, 14, 230, 173, 237, 132, 43, 23, 14, 234, 237, 43, + 23, 14, 240, 38, 43, 23, 14, 238, 31, 231, 202, 43, 23, 14, 237, 157, + 231, 202, 43, 23, 14, 236, 194, 43, 23, 14, 232, 95, 43, 23, 14, 240, 73, + 43, 23, 14, 248, 69, 231, 202, 43, 23, 14, 235, 96, 231, 202, 43, 23, 14, + 231, 240, 231, 202, 43, 23, 14, 233, 18, 43, 23, 14, 232, 245, 43, 23, + 14, 236, 240, 232, 69, 43, 23, 14, 239, 178, 231, 202, 43, 23, 14, 237, + 21, 231, 202, 43, 23, 14, 233, 185, 231, 202, 43, 23, 14, 232, 70, 43, + 23, 14, 235, 185, 43, 23, 14, 239, 221, 43, 23, 14, 238, 33, 231, 202, + 43, 23, 14, 234, 248, 43, 23, 14, 227, 217, 43, 23, 14, 236, 216, 43, 23, + 14, 235, 139, 231, 202, 43, 23, 14, 235, 139, 251, 6, 234, 232, 43, 23, + 14, 232, 31, 231, 202, 43, 23, 14, 240, 35, 43, 23, 14, 239, 83, 43, 23, + 14, 249, 219, 43, 23, 14, 246, 5, 43, 23, 14, 234, 244, 43, 23, 14, 231, + 94, 43, 23, 14, 241, 95, 253, 221, 246, 194, 43, 23, 14, 237, 72, 231, + 202, 43, 23, 14, 231, 82, 43, 23, 14, 233, 181, 231, 202, 43, 23, 14, + 239, 57, 233, 55, 43, 23, 14, 232, 247, 43, 23, 14, 231, 127, 43, 23, 14, + 232, 215, 43, 23, 14, 233, 192, 231, 202, 43, 23, 14, 234, 202, 43, 23, + 14, 229, 206, 231, 202, 43, 23, 14, 229, 207, 231, 202, 43, 23, 14, 234, + 124, 43, 23, 14, 241, 199, 43, 23, 14, 234, 190, 43, 23, 14, 234, 140, + 241, 26, 43, 23, 14, 233, 181, 241, 26, 43, 23, 14, 228, 165, 43, 23, 14, + 227, 242, 43, 23, 14, 248, 69, 246, 194, 43, 23, 14, 238, 31, 246, 194, + 43, 23, 14, 241, 58, 246, 194, 43, 23, 14, 234, 191, 43, 23, 14, 232, + 216, 43, 23, 14, 225, 98, 43, 23, 14, 225, 94, 43, 23, 14, 234, 189, 246, + 194, 43, 23, 14, 231, 240, 253, 91, 246, 252, 43, 23, 14, 235, 96, 253, + 91, 246, 252, 43, 23, 14, 237, 35, 43, 23, 14, 230, 173, 246, 194, 43, + 23, 14, 230, 172, 233, 50, 246, 194, 43, 23, 14, 235, 13, 43, 23, 14, + 225, 95, 43, 23, 14, 234, 93, 43, 23, 14, 234, 30, 43, 23, 14, 239, 114, + 244, 12, 43, 23, 14, 237, 223, 246, 194, 43, 23, 14, 238, 33, 246, 194, + 43, 23, 14, 233, 2, 246, 194, 43, 23, 14, 236, 174, 43, 23, 14, 229, 228, + 43, 23, 14, 234, 146, 43, 23, 14, 229, 207, 246, 194, 43, 23, 14, 229, + 206, 246, 194, 43, 23, 14, 237, 245, 229, 45, 43, 23, 14, 234, 143, 43, + 23, 14, 223, 59, 43, 23, 14, 233, 181, 246, 194, 43, 23, 14, 230, 53, 43, + 23, 14, 235, 139, 246, 194, 43, 23, 14, 240, 26, 43, 23, 14, 233, 192, + 246, 194, 43, 23, 14, 232, 179, 43, 23, 14, 239, 240, 246, 194, 43, 23, + 14, 246, 66, 235, 185, 43, 23, 14, 223, 55, 43, 23, 14, 225, 100, 43, 23, + 14, 227, 80, 43, 23, 14, 222, 238, 43, 23, 14, 222, 229, 43, 23, 14, 227, + 81, 43, 23, 14, 225, 101, 43, 23, 14, 225, 113, 43, 23, 14, 227, 141, 43, + 23, 14, 237, 245, 227, 141, 43, 23, 14, 232, 31, 246, 194, 43, 23, 14, + 229, 223, 249, 234, 43, 23, 14, 229, 223, 249, 236, 43, 23, 14, 245, 244, + 235, 147, 43, 23, 14, 252, 17, 253, 150, 234, 5, 43, 23, 14, 231, 90, 43, + 23, 14, 231, 65, 43, 23, 14, 248, 201, 240, 201, 43, 23, 14, 248, 201, + 246, 252, 43, 23, 14, 234, 231, 43, 23, 14, 238, 15, 246, 252, 43, 23, + 14, 243, 71, 231, 202, 43, 23, 14, 235, 126, 231, 202, 43, 23, 14, 235, + 126, 241, 26, 43, 23, 14, 235, 126, 246, 194, 43, 23, 14, 233, 185, 246, + 194, 43, 23, 14, 242, 61, 43, 23, 14, 237, 132, 43, 23, 14, 237, 8, 43, + 23, 14, 233, 52, 43, 23, 14, 233, 170, 43, 23, 14, 237, 161, 249, 229, + 233, 193, 43, 23, 14, 237, 161, 253, 174, 233, 160, 43, 23, 14, 237, 161, + 246, 6, 233, 160, 43, 23, 14, 237, 161, 234, 243, 233, 160, 43, 23, 14, + 237, 161, 236, 110, 233, 193, 43, 23, 14, 237, 157, 253, 91, 246, 252, + 43, 23, 14, 237, 157, 227, 190, 232, 76, 43, 23, 14, 237, 157, 227, 190, + 237, 241, 43, 23, 14, 232, 112, 43, 23, 14, 233, 162, 227, 190, 233, 186, + 240, 201, 43, 23, 14, 233, 162, 227, 190, 233, 186, 246, 252, 43, 23, 14, + 233, 162, 227, 190, 237, 241, 43, 23, 14, 231, 182, 43, 23, 14, 238, 101, + 43, 23, 14, 230, 69, 43, 23, 14, 234, 52, 43, 23, 14, 240, 193, 248, 134, + 241, 96, 43, 23, 14, 240, 193, 232, 75, 43, 23, 14, 240, 193, 241, 96, + 43, 23, 14, 240, 193, 236, 154, 43, 23, 14, 240, 193, 244, 122, 43, 23, + 14, 240, 193, 238, 3, 43, 23, 14, 240, 193, 231, 75, 43, 23, 14, 240, + 193, 248, 134, 238, 3, 43, 23, 14, 233, 94, 238, 37, 237, 86, 43, 23, 14, + 233, 94, 247, 242, 238, 37, 237, 86, 43, 23, 14, 233, 94, 233, 200, 237, + 86, 43, 23, 14, 233, 94, 247, 242, 233, 200, 237, 86, 43, 23, 14, 233, + 94, 240, 47, 237, 86, 43, 23, 14, 233, 94, 231, 181, 43, 23, 14, 233, 94, + 233, 180, 237, 86, 43, 23, 14, 233, 94, 233, 180, 235, 188, 237, 86, 43, + 23, 14, 233, 94, 235, 188, 237, 86, 43, 23, 14, 233, 94, 235, 202, 237, + 86, 43, 23, 14, 239, 43, 238, 72, 230, 188, 43, 23, 14, 230, 172, 238, + 72, 230, 188, 43, 23, 14, 231, 250, 229, 152, 43, 23, 14, 231, 250, 229, + 201, 43, 23, 14, 231, 250, 232, 19, 43, 23, 14, 233, 94, 246, 44, 237, + 86, 43, 23, 14, 233, 94, 231, 126, 237, 86, 43, 23, 14, 233, 94, 235, + 202, 233, 180, 237, 86, 43, 23, 14, 230, 187, 255, 60, 235, 147, 43, 23, + 14, 230, 187, 255, 60, 234, 56, 43, 23, 14, 236, 64, 253, 150, 237, 72, + 248, 192, 43, 23, 14, 232, 206, 43, 23, 14, 230, 70, 43, 23, 14, 237, 72, + 234, 8, 234, 49, 239, 37, 43, 23, 14, 237, 72, 231, 221, 213, 43, 23, 14, + 237, 72, 231, 221, 241, 199, 43, 23, 14, 237, 72, 251, 40, 237, 86, 43, + 23, 14, 237, 72, 231, 221, 253, 12, 43, 23, 14, 237, 72, 235, 136, 234, + 53, 253, 12, 43, 23, 14, 237, 72, 231, 221, 253, 6, 43, 23, 14, 237, 72, + 231, 221, 253, 65, 43, 23, 14, 237, 72, 231, 221, 254, 230, 240, 201, 43, + 23, 14, 237, 72, 231, 221, 254, 230, 246, 252, 43, 23, 14, 237, 72, 235, + 189, 237, 175, 232, 19, 43, 23, 14, 237, 72, 235, 189, 237, 175, 229, + 201, 43, 23, 14, 238, 215, 235, 136, 237, 175, 240, 72, 43, 23, 14, 237, + 72, 235, 136, 237, 175, 236, 251, 43, 23, 14, 237, 72, 236, 164, 43, 23, + 14, 241, 33, 240, 111, 43, 23, 14, 241, 33, 236, 123, 43, 23, 14, 241, + 33, 236, 235, 43, 23, 14, 237, 72, 255, 55, 237, 148, 227, 152, 43, 23, + 14, 237, 72, 231, 63, 230, 224, 43, 23, 14, 237, 148, 228, 219, 43, 23, + 14, 237, 131, 228, 219, 43, 23, 14, 237, 131, 227, 152, 43, 23, 14, 237, + 131, 247, 65, 253, 174, 231, 217, 43, 23, 14, 237, 131, 229, 202, 235, + 222, 231, 217, 43, 23, 14, 237, 131, 232, 20, 255, 7, 231, 217, 43, 23, + 14, 237, 131, 230, 217, 248, 122, 231, 217, 43, 23, 14, 237, 148, 247, + 65, 253, 174, 231, 217, 43, 23, 14, 237, 148, 229, 202, 235, 222, 231, + 217, 43, 23, 14, 237, 148, 232, 20, 255, 7, 231, 217, 43, 23, 14, 237, + 148, 230, 217, 248, 122, 231, 217, 43, 23, 14, 237, 254, 236, 49, 43, 23, + 14, 237, 254, 237, 33, 43, 23, 14, 233, 147, 247, 65, 239, 113, 43, 23, + 14, 233, 147, 247, 65, 236, 152, 43, 23, 14, 233, 147, 237, 132, 43, 23, + 14, 233, 147, 233, 245, 43, 23, 14, 233, 120, 233, 245, 43, 23, 14, 233, + 120, 235, 141, 233, 202, 43, 23, 14, 233, 120, 235, 141, 232, 58, 43, 23, + 14, 233, 120, 235, 141, 229, 222, 43, 23, 14, 233, 120, 235, 252, 43, 23, + 14, 233, 120, 237, 195, 233, 202, 43, 23, 14, 233, 120, 237, 195, 232, + 58, 43, 23, 14, 233, 120, 237, 195, 229, 222, 43, 23, 14, 234, 54, 254, + 60, 43, 23, 14, 232, 111, 253, 119, 43, 23, 14, 235, 138, 43, 23, 14, + 235, 67, 213, 43, 23, 14, 235, 67, 248, 192, 43, 23, 14, 235, 67, 252, + 205, 43, 23, 14, 235, 67, 253, 12, 43, 23, 14, 235, 67, 253, 6, 43, 23, + 14, 235, 67, 253, 65, 43, 23, 14, 235, 67, 252, 248, 43, 23, 14, 231, + 240, 253, 91, 241, 192, 43, 23, 14, 235, 96, 253, 91, 241, 192, 43, 23, + 14, 231, 240, 253, 91, 240, 201, 43, 23, 14, 235, 96, 253, 91, 240, 201, + 43, 23, 14, 238, 15, 240, 201, 43, 23, 14, 237, 157, 253, 91, 240, 201, + 23, 14, 237, 62, 233, 127, 23, 14, 47, 233, 127, 23, 14, 35, 233, 127, + 23, 14, 235, 37, 35, 233, 127, 23, 14, 237, 110, 233, 127, 23, 14, 240, + 125, 233, 127, 23, 14, 42, 237, 120, 53, 23, 14, 41, 237, 120, 53, 23, + 14, 237, 120, 240, 169, 23, 14, 253, 56, 238, 45, 23, 14, 254, 218, 242, + 233, 23, 14, 238, 45, 23, 14, 243, 17, 23, 14, 233, 177, 232, 187, 23, + 14, 233, 177, 232, 188, 23, 14, 233, 177, 232, 189, 23, 14, 233, 205, 23, + 14, 236, 77, 51, 23, 14, 238, 130, 76, 23, 14, 234, 25, 23, 14, 238, 128, + 23, 14, 104, 23, 14, 234, 175, 237, 147, 23, 14, 234, 255, 237, 147, 23, + 14, 231, 178, 237, 147, 23, 14, 232, 192, 237, 147, 23, 14, 232, 190, + 237, 147, 23, 14, 234, 224, 237, 147, 23, 14, 231, 145, 230, 185, 23, 14, + 230, 63, 230, 185, 23, 14, 255, 65, 240, 220, 23, 14, 255, 65, 247, 69, + 237, 140, 240, 243, 23, 14, 255, 65, 247, 69, 237, 140, 237, 173, 23, 14, + 255, 62, 240, 220, 23, 14, 255, 72, 240, 220, 23, 14, 255, 72, 247, 69, + 237, 140, 240, 243, 23, 14, 255, 72, 247, 69, 237, 140, 237, 173, 23, 14, + 248, 32, 236, 30, 23, 14, 248, 32, 236, 31, 23, 14, 233, 219, 235, 85, + 240, 148, 23, 14, 47, 238, 49, 23, 14, 47, 241, 132, 23, 14, 247, 141, + 253, 19, 23, 14, 247, 141, 240, 152, 23, 14, 235, 131, 253, 19, 23, 14, + 235, 131, 240, 152, 23, 14, 240, 235, 253, 19, 23, 14, 240, 235, 240, + 152, 23, 14, 235, 53, 206, 238, 49, 23, 14, 235, 53, 206, 241, 132, 23, + 14, 238, 161, 242, 2, 23, 14, 254, 40, 242, 2, 23, 14, 237, 140, 240, + 243, 23, 14, 237, 140, 237, 173, 23, 14, 228, 216, 240, 243, 23, 14, 228, + 216, 237, 173, 23, 14, 244, 155, 240, 148, 23, 14, 242, 24, 240, 148, 23, + 14, 132, 240, 148, 23, 14, 235, 53, 240, 148, 23, 14, 237, 112, 240, 148, + 23, 14, 232, 6, 240, 148, 23, 14, 227, 211, 240, 148, 23, 14, 228, 218, + 240, 148, 23, 14, 168, 235, 56, 227, 212, 240, 148, 23, 14, 255, 74, 231, + 226, 23, 14, 79, 231, 226, 23, 14, 237, 40, 255, 74, 231, 226, 23, 14, + 37, 233, 84, 237, 90, 23, 14, 37, 233, 84, 237, 45, 23, 14, 233, 80, 233, + 84, 99, 237, 90, 23, 14, 233, 80, 233, 84, 99, 237, 45, 23, 14, 233, 80, + 233, 84, 42, 237, 90, 23, 14, 233, 80, 233, 84, 42, 237, 45, 23, 14, 233, + 80, 233, 84, 41, 237, 90, 23, 14, 233, 80, 233, 84, 41, 237, 45, 23, 14, + 233, 80, 233, 84, 103, 237, 90, 23, 14, 233, 80, 233, 84, 103, 237, 45, + 23, 14, 233, 80, 233, 84, 99, 41, 237, 90, 23, 14, 233, 80, 233, 84, 99, + 41, 237, 45, 23, 14, 247, 176, 233, 84, 237, 90, 23, 14, 247, 176, 233, + 84, 237, 45, 23, 14, 227, 154, 233, 84, 103, 237, 90, 23, 14, 227, 154, + 233, 84, 103, 237, 45, 23, 14, 229, 169, 231, 226, 23, 14, 252, 79, 231, + 226, 23, 14, 233, 84, 237, 45, 23, 14, 251, 78, 231, 226, 23, 14, 235, + 159, 233, 84, 237, 90, 23, 14, 235, 159, 233, 84, 237, 45, 23, 14, 237, + 46, 23, 14, 242, 24, 240, 186, 23, 14, 132, 240, 186, 23, 14, 235, 53, + 240, 186, 23, 14, 237, 112, 240, 186, 23, 14, 232, 6, 240, 186, 23, 14, + 227, 211, 240, 186, 23, 14, 228, 218, 240, 186, 23, 14, 168, 235, 56, + 227, 212, 240, 186, 23, 14, 36, 240, 214, 23, 14, 36, 229, 150, 240, 214, + 23, 14, 36, 230, 214, 23, 14, 36, 230, 215, 23, 14, 36, 230, 216, 23, 14, + 233, 164, 230, 214, 23, 14, 233, 164, 230, 215, 23, 14, 233, 164, 230, + 216, 23, 14, 36, 228, 226, 246, 164, 23, 14, 36, 236, 79, 23, 14, 36, + 236, 80, 23, 14, 36, 236, 81, 23, 14, 36, 236, 82, 23, 14, 36, 236, 83, + 23, 14, 240, 205, 241, 99, 23, 14, 252, 255, 241, 99, 23, 14, 240, 205, + 247, 57, 23, 14, 252, 255, 247, 57, 23, 14, 240, 205, 241, 246, 23, 14, + 252, 255, 241, 246, 23, 14, 240, 205, 235, 200, 23, 14, 252, 255, 235, + 200, 23, 14, 36, 235, 24, 23, 14, 36, 233, 28, 23, 14, 36, 237, 0, 23, + 14, 36, 227, 179, 23, 14, 36, 234, 151, 23, 14, 36, 223, 49, 23, 14, 36, + 223, 58, 23, 14, 36, 239, 90, 23, 14, 230, 174, 253, 19, 23, 14, 230, + 174, 240, 152, 23, 14, 36, 243, 76, 23, 14, 36, 251, 183, 23, 14, 36, + 243, 107, 23, 14, 36, 240, 5, 23, 14, 36, 242, 200, 23, 14, 36, 47, 235, + 142, 23, 14, 36, 237, 49, 235, 142, 23, 14, 229, 56, 23, 14, 236, 245, + 23, 14, 254, 193, 23, 14, 239, 197, 23, 14, 239, 106, 23, 14, 238, 224, + 23, 14, 230, 241, 23, 14, 228, 236, 23, 14, 241, 145, 248, 116, 237, 84, + 23, 14, 241, 145, 248, 116, 254, 252, 237, 84, 23, 14, 254, 161, 23, 14, + 242, 13, 23, 14, 233, 70, 242, 13, 23, 14, 248, 185, 237, 84, 23, 14, + 248, 185, 253, 19, 23, 14, 233, 103, 233, 35, 23, 14, 233, 103, 233, 36, + 23, 14, 233, 103, 233, 37, 23, 14, 233, 103, 233, 38, 23, 14, 233, 103, + 233, 39, 23, 14, 233, 103, 233, 40, 23, 14, 233, 103, 233, 41, 23, 14, + 233, 103, 233, 42, 23, 14, 233, 103, 233, 43, 23, 14, 233, 103, 231, 146, + 23, 14, 233, 103, 231, 147, 23, 14, 229, 22, 23, 14, 229, 41, 23, 14, + 252, 255, 106, 236, 241, 23, 14, 237, 177, 237, 84, 23, 14, 36, 103, 247, + 68, 23, 14, 36, 99, 247, 68, 23, 14, 36, 232, 202, 23, 14, 36, 251, 229, + 231, 121, 23, 14, 241, 60, 76, 23, 14, 241, 60, 99, 76, 23, 14, 132, 241, + 60, 76, 23, 14, 232, 25, 253, 19, 23, 14, 232, 25, 240, 152, 23, 14, 2, + 229, 19, 23, 14, 243, 27, 23, 14, 249, 178, 247, 241, 23, 14, 236, 150, + 23, 14, 238, 22, 23, 14, 236, 15, 23, 14, 230, 169, 237, 90, 23, 14, 230, + 169, 237, 45, 23, 14, 236, 157, 23, 14, 238, 25, 237, 45, 23, 14, 230, + 170, 237, 90, 23, 14, 230, 170, 237, 45, 23, 14, 248, 41, 237, 90, 23, + 14, 248, 41, 237, 45, 23, 14, 241, 184, 233, 227, 240, 148, 23, 14, 241, + 184, 230, 155, 240, 148, 23, 14, 238, 131, 240, 148, 23, 14, 230, 169, + 240, 148, 23, 14, 238, 25, 240, 148, 23, 14, 230, 170, 240, 148, 23, 14, + 237, 121, 232, 3, 253, 86, 230, 139, 232, 34, 23, 14, 237, 121, 232, 3, + 253, 86, 230, 139, 229, 199, 23, 14, 237, 121, 232, 3, 253, 86, 230, 139, + 233, 227, 227, 201, 23, 14, 237, 121, 229, 176, 253, 86, 230, 139, 232, + 34, 23, 14, 237, 121, 229, 176, 253, 86, 230, 139, 229, 199, 23, 14, 237, + 121, 229, 176, 253, 86, 230, 139, 230, 155, 227, 201, 23, 14, 237, 121, + 229, 176, 253, 86, 230, 139, 230, 155, 227, 228, 23, 14, 237, 121, 229, + 176, 253, 86, 230, 139, 230, 155, 227, 229, 23, 14, 238, 164, 23, 14, + 232, 26, 255, 62, 240, 220, 23, 14, 232, 26, 255, 72, 240, 220, 23, 14, + 37, 254, 185, 23, 14, 240, 77, 23, 14, 234, 194, 23, 14, 236, 32, 23, 14, + 231, 137, 23, 14, 232, 98, 23, 14, 233, 53, 23, 14, 231, 123, 23, 14, + 232, 253, 235, 172, 23, 14, 233, 19, 235, 172, 23, 14, 234, 250, 231, + 135, 23, 14, 254, 128, 230, 114, 19, 240, 136, 150, 232, 48, 19, 240, + 136, 150, 232, 49, 19, 240, 136, 150, 233, 46, 19, 240, 136, 150, 232, + 50, 19, 240, 136, 150, 232, 51, 19, 240, 136, 150, 233, 47, 19, 240, 136, + 150, 232, 52, 19, 240, 136, 150, 232, 53, 19, 240, 136, 150, 233, 48, 19, + 240, 136, 150, 231, 151, 19, 240, 136, 150, 230, 198, 19, 240, 136, 150, + 230, 199, 19, 240, 136, 150, 230, 200, 19, 240, 136, 150, 230, 201, 19, + 240, 136, 150, 231, 152, 19, 240, 136, 150, 231, 153, 19, 240, 136, 150, + 230, 202, 19, 240, 136, 150, 230, 203, 19, 240, 136, 150, 230, 204, 19, + 240, 136, 150, 231, 154, 19, 240, 136, 150, 231, 155, 19, 240, 136, 150, + 231, 156, 19, 240, 136, 150, 230, 205, 19, 240, 136, 150, 230, 206, 19, + 240, 136, 150, 230, 207, 19, 240, 136, 150, 230, 208, 19, 240, 136, 150, + 230, 209, 19, 240, 136, 150, 230, 210, 19, 240, 136, 150, 230, 211, 19, + 228, 176, 150, 232, 48, 19, 228, 176, 150, 232, 49, 19, 228, 176, 150, + 232, 50, 19, 228, 176, 150, 232, 51, 19, 228, 176, 150, 232, 52, 19, 228, + 176, 150, 232, 53, 19, 228, 176, 150, 230, 198, 19, 228, 176, 150, 230, + 199, 19, 228, 176, 150, 230, 200, 19, 228, 176, 150, 230, 201, 19, 228, + 176, 150, 230, 202, 19, 228, 176, 150, 230, 203, 19, 228, 176, 150, 230, + 204, 19, 228, 176, 150, 230, 205, 19, 228, 176, 150, 230, 206, 19, 228, + 176, 150, 231, 157, 19, 228, 176, 150, 231, 158, 19, 228, 176, 150, 231, + 159, 19, 228, 176, 150, 231, 160, 19, 228, 176, 150, 231, 161, 19, 228, + 176, 150, 231, 162, 19, 228, 176, 150, 231, 163, 19, 228, 176, 150, 231, + 164, 19, 228, 176, 150, 231, 165, 19, 228, 176, 150, 231, 166, 19, 228, + 176, 150, 231, 167, 19, 228, 176, 150, 231, 168, 19, 228, 176, 150, 231, + 169, 19, 228, 176, 150, 231, 170, 19, 228, 176, 150, 231, 171, 19, 228, + 176, 150, 231, 172, 19, 228, 176, 150, 231, 173, 19, 228, 176, 150, 230, + 207, 19, 228, 176, 150, 230, 208, 19, 228, 176, 150, 230, 209, 19, 228, + 176, 150, 230, 210, 19, 228, 176, 150, 230, 211, 36, 19, 23, 233, 247, + 36, 19, 23, 230, 213, 36, 19, 23, 230, 193, 19, 23, 236, 132, 233, 115, + 32, 237, 99, 237, 111, 32, 234, 121, 237, 99, 237, 111, 32, 243, 236, + 237, 99, 237, 111, 32, 235, 168, 235, 123, 237, 111, 32, 235, 168, 239, + 28, 237, 111, 32, 237, 99, 142, 32, 235, 111, 142, 32, 246, 162, 235, 20, + 142, 32, 239, 115, 142, 32, 234, 14, 142, 32, 235, 182, 237, 216, 142, + 32, 228, 231, 142, 32, 235, 254, 142, 32, 229, 187, 142, 32, 232, 88, + 247, 186, 142, 32, 227, 225, 145, 229, 251, 142, 32, 229, 252, 142, 32, + 228, 174, 142, 32, 232, 27, 142, 32, 229, 47, 142, 32, 238, 40, 142, 32, + 234, 35, 142, 32, 235, 177, 240, 217, 142, 32, 233, 249, 142, 32, 230, + 184, 142, 32, 233, 253, 142, 32, 234, 206, 142, 32, 230, 95, 142, 32, + 243, 92, 142, 32, 250, 140, 142, 32, 229, 241, 142, 32, 231, 64, 142, 32, + 236, 62, 142, 32, 236, 24, 142, 32, 227, 224, 142, 32, 18, 230, 96, 142, + 32, 234, 180, 142, 32, 236, 131, 142, 32, 230, 235, 142, 32, 234, 139, + 142, 32, 231, 72, 142, 32, 233, 33, 142, 32, 236, 195, 142, 32, 232, 195, + 142, 32, 231, 134, 142, 32, 254, 89, 145, 239, 117, 142, 32, 232, 43, + 142, 32, 243, 151, 180, 241, 191, 142, 32, 230, 55, 142, 32, 240, 23, + 142, 32, 231, 76, 142, 32, 229, 17, 142, 32, 234, 188, 142, 32, 236, 201, + 142, 32, 236, 84, 142, 32, 235, 4, 145, 235, 10, 142, 32, 230, 238, 142, + 32, 233, 218, 142, 32, 232, 182, 142, 32, 240, 67, 142, 32, 227, 227, + 142, 32, 237, 58, 238, 26, 142, 32, 229, 21, 142, 32, 232, 24, 253, 79, + 142, 32, 234, 154, 142, 32, 227, 214, 142, 32, 227, 163, 142, 32, 238, + 191, 142, 32, 238, 81, 142, 32, 234, 222, 142, 32, 239, 42, 142, 32, 230, + 244, 142, 32, 230, 243, 142, 32, 234, 55, 142, 32, 230, 58, 142, 32, 231, + 140, 142, 32, 233, 30, 142, 32, 232, 201, 142, 32, 229, 183, 142, 32, + 234, 32, 142, 32, 234, 100, 142, 32, 228, 223, 142, 32, 229, 239, 142, + 32, 254, 223, 252, 230, 240, 75, 142, 32, 227, 226, 142, 32, 231, 96, + 142, 32, 231, 70, 233, 85, 253, 2, 246, 229, 21, 118, 233, 85, 253, 2, + 246, 229, 21, 113, 233, 85, 253, 2, 246, 229, 21, 166, 233, 85, 253, 2, + 246, 229, 21, 158, 233, 85, 253, 2, 246, 229, 21, 173, 233, 85, 253, 2, + 246, 229, 21, 183, 233, 85, 253, 2, 246, 229, 21, 194, 233, 85, 253, 2, + 246, 229, 21, 187, 233, 85, 253, 2, 246, 229, 21, 192, 233, 85, 253, 2, + 246, 238, 21, 118, 233, 85, 253, 2, 246, 238, 21, 113, 233, 85, 253, 2, + 246, 238, 21, 166, 233, 85, 253, 2, 246, 238, 21, 158, 233, 85, 253, 2, + 246, 238, 21, 173, 233, 85, 253, 2, 246, 238, 21, 183, 233, 85, 253, 2, + 246, 238, 21, 194, 233, 85, 253, 2, 246, 238, 21, 187, 233, 85, 253, 2, + 246, 238, 21, 192, 12, 18, 6, 57, 12, 18, 6, 254, 185, 12, 18, 6, 254, + 194, 12, 18, 6, 222, 222, 12, 18, 6, 72, 12, 18, 6, 254, 191, 12, 18, 6, + 214, 12, 18, 6, 212, 12, 18, 6, 74, 12, 18, 6, 254, 192, 12, 18, 6, 254, + 186, 12, 18, 6, 149, 12, 18, 6, 185, 12, 18, 6, 199, 12, 18, 6, 73, 12, + 18, 6, 254, 187, 12, 18, 6, 254, 196, 12, 18, 6, 146, 12, 18, 6, 193, 12, + 18, 6, 254, 183, 12, 18, 6, 66, 12, 18, 6, 196, 12, 18, 6, 254, 195, 12, + 18, 6, 254, 184, 12, 18, 6, 254, 190, 12, 18, 6, 254, 193, 12, 18, 3, 57, + 12, 18, 3, 254, 185, 12, 18, 3, 254, 194, 12, 18, 3, 222, 222, 12, 18, 3, + 72, 12, 18, 3, 254, 191, 12, 18, 3, 214, 12, 18, 3, 212, 12, 18, 3, 74, + 12, 18, 3, 254, 192, 12, 18, 3, 254, 186, 12, 18, 3, 149, 12, 18, 3, 185, + 12, 18, 3, 199, 12, 18, 3, 73, 12, 18, 3, 254, 187, 12, 18, 3, 254, 196, + 12, 18, 3, 146, 12, 18, 3, 193, 12, 18, 3, 254, 183, 12, 18, 3, 66, 12, + 18, 3, 196, 12, 18, 3, 254, 195, 12, 18, 3, 254, 184, 12, 18, 3, 254, + 190, 12, 18, 3, 254, 193, 12, 27, 6, 57, 12, 27, 6, 254, 185, 12, 27, 6, + 254, 194, 12, 27, 6, 222, 222, 12, 27, 6, 72, 12, 27, 6, 254, 191, 12, + 27, 6, 214, 12, 27, 6, 212, 12, 27, 6, 74, 12, 27, 6, 254, 192, 12, 27, + 6, 254, 186, 12, 27, 6, 149, 12, 27, 6, 185, 12, 27, 6, 199, 12, 27, 6, + 73, 12, 27, 6, 254, 187, 12, 27, 6, 254, 196, 12, 27, 6, 146, 12, 27, 6, + 193, 12, 27, 6, 254, 183, 12, 27, 6, 66, 12, 27, 6, 196, 12, 27, 6, 254, + 195, 12, 27, 6, 254, 184, 12, 27, 6, 254, 190, 12, 27, 6, 254, 193, 12, + 27, 3, 57, 12, 27, 3, 254, 185, 12, 27, 3, 254, 194, 12, 27, 3, 222, 222, + 12, 27, 3, 72, 12, 27, 3, 254, 191, 12, 27, 3, 214, 12, 27, 3, 74, 12, + 27, 3, 254, 192, 12, 27, 3, 254, 186, 12, 27, 3, 149, 12, 27, 3, 185, 12, + 27, 3, 199, 12, 27, 3, 73, 12, 27, 3, 254, 187, 12, 27, 3, 254, 196, 12, + 27, 3, 146, 12, 27, 3, 193, 12, 27, 3, 254, 183, 12, 27, 3, 66, 12, 27, + 3, 196, 12, 27, 3, 254, 195, 12, 27, 3, 254, 184, 12, 27, 3, 254, 190, + 12, 27, 3, 254, 193, 12, 18, 27, 6, 57, 12, 18, 27, 6, 254, 185, 12, 18, + 27, 6, 254, 194, 12, 18, 27, 6, 222, 222, 12, 18, 27, 6, 72, 12, 18, 27, + 6, 254, 191, 12, 18, 27, 6, 214, 12, 18, 27, 6, 212, 12, 18, 27, 6, 74, + 12, 18, 27, 6, 254, 192, 12, 18, 27, 6, 254, 186, 12, 18, 27, 6, 149, 12, + 18, 27, 6, 185, 12, 18, 27, 6, 199, 12, 18, 27, 6, 73, 12, 18, 27, 6, + 254, 187, 12, 18, 27, 6, 254, 196, 12, 18, 27, 6, 146, 12, 18, 27, 6, + 193, 12, 18, 27, 6, 254, 183, 12, 18, 27, 6, 66, 12, 18, 27, 6, 196, 12, + 18, 27, 6, 254, 195, 12, 18, 27, 6, 254, 184, 12, 18, 27, 6, 254, 190, + 12, 18, 27, 6, 254, 193, 12, 18, 27, 3, 57, 12, 18, 27, 3, 254, 185, 12, + 18, 27, 3, 254, 194, 12, 18, 27, 3, 222, 222, 12, 18, 27, 3, 72, 12, 18, + 27, 3, 254, 191, 12, 18, 27, 3, 214, 12, 18, 27, 3, 212, 12, 18, 27, 3, + 74, 12, 18, 27, 3, 254, 192, 12, 18, 27, 3, 254, 186, 12, 18, 27, 3, 149, + 12, 18, 27, 3, 185, 12, 18, 27, 3, 199, 12, 18, 27, 3, 73, 12, 18, 27, 3, + 254, 187, 12, 18, 27, 3, 254, 196, 12, 18, 27, 3, 146, 12, 18, 27, 3, + 193, 12, 18, 27, 3, 254, 183, 12, 18, 27, 3, 66, 12, 18, 27, 3, 196, 12, + 18, 27, 3, 254, 195, 12, 18, 27, 3, 254, 184, 12, 18, 27, 3, 254, 190, + 12, 18, 27, 3, 254, 193, 12, 95, 6, 57, 12, 95, 6, 254, 194, 12, 95, 6, + 222, 222, 12, 95, 6, 214, 12, 95, 6, 254, 192, 12, 95, 6, 254, 186, 12, + 95, 6, 199, 12, 95, 6, 73, 12, 95, 6, 254, 187, 12, 95, 6, 254, 196, 12, + 95, 6, 193, 12, 95, 6, 254, 183, 12, 95, 6, 66, 12, 95, 6, 196, 12, 95, + 6, 254, 195, 12, 95, 6, 254, 184, 12, 95, 6, 254, 190, 12, 95, 6, 254, + 193, 12, 95, 3, 57, 12, 95, 3, 254, 185, 12, 95, 3, 254, 194, 12, 95, 3, + 222, 222, 12, 95, 3, 254, 191, 12, 95, 3, 212, 12, 95, 3, 74, 12, 95, 3, + 254, 192, 12, 95, 3, 254, 186, 12, 95, 3, 149, 12, 95, 3, 185, 12, 95, 3, + 199, 12, 95, 3, 254, 187, 12, 95, 3, 254, 196, 12, 95, 3, 146, 12, 95, 3, + 193, 12, 95, 3, 254, 183, 12, 95, 3, 66, 12, 95, 3, 196, 12, 95, 3, 254, + 195, 12, 95, 3, 254, 184, 12, 95, 3, 254, 190, 12, 95, 3, 254, 193, 12, + 18, 95, 6, 57, 12, 18, 95, 6, 254, 185, 12, 18, 95, 6, 254, 194, 12, 18, + 95, 6, 222, 222, 12, 18, 95, 6, 72, 12, 18, 95, 6, 254, 191, 12, 18, 95, + 6, 214, 12, 18, 95, 6, 212, 12, 18, 95, 6, 74, 12, 18, 95, 6, 254, 192, + 12, 18, 95, 6, 254, 186, 12, 18, 95, 6, 149, 12, 18, 95, 6, 185, 12, 18, + 95, 6, 199, 12, 18, 95, 6, 73, 12, 18, 95, 6, 254, 187, 12, 18, 95, 6, + 254, 196, 12, 18, 95, 6, 146, 12, 18, 95, 6, 193, 12, 18, 95, 6, 254, + 183, 12, 18, 95, 6, 66, 12, 18, 95, 6, 196, 12, 18, 95, 6, 254, 195, 12, + 18, 95, 6, 254, 184, 12, 18, 95, 6, 254, 190, 12, 18, 95, 6, 254, 193, + 12, 18, 95, 3, 57, 12, 18, 95, 3, 254, 185, 12, 18, 95, 3, 254, 194, 12, + 18, 95, 3, 222, 222, 12, 18, 95, 3, 72, 12, 18, 95, 3, 254, 191, 12, 18, + 95, 3, 214, 12, 18, 95, 3, 212, 12, 18, 95, 3, 74, 12, 18, 95, 3, 254, + 192, 12, 18, 95, 3, 254, 186, 12, 18, 95, 3, 149, 12, 18, 95, 3, 185, 12, + 18, 95, 3, 199, 12, 18, 95, 3, 73, 12, 18, 95, 3, 254, 187, 12, 18, 95, + 3, 254, 196, 12, 18, 95, 3, 146, 12, 18, 95, 3, 193, 12, 18, 95, 3, 254, + 183, 12, 18, 95, 3, 66, 12, 18, 95, 3, 196, 12, 18, 95, 3, 254, 195, 12, + 18, 95, 3, 254, 184, 12, 18, 95, 3, 254, 190, 12, 18, 95, 3, 254, 193, + 12, 110, 6, 57, 12, 110, 6, 254, 185, 12, 110, 6, 222, 222, 12, 110, 6, + 72, 12, 110, 6, 254, 191, 12, 110, 6, 214, 12, 110, 6, 254, 192, 12, 110, + 6, 254, 186, 12, 110, 6, 149, 12, 110, 6, 185, 12, 110, 6, 199, 12, 110, + 6, 73, 12, 110, 6, 254, 187, 12, 110, 6, 254, 196, 12, 110, 6, 193, 12, + 110, 6, 254, 183, 12, 110, 6, 66, 12, 110, 6, 196, 12, 110, 6, 254, 195, + 12, 110, 6, 254, 184, 12, 110, 6, 254, 190, 12, 110, 3, 57, 12, 110, 3, + 254, 185, 12, 110, 3, 254, 194, 12, 110, 3, 222, 222, 12, 110, 3, 72, 12, + 110, 3, 254, 191, 12, 110, 3, 214, 12, 110, 3, 212, 12, 110, 3, 74, 12, + 110, 3, 254, 192, 12, 110, 3, 254, 186, 12, 110, 3, 149, 12, 110, 3, 185, + 12, 110, 3, 199, 12, 110, 3, 73, 12, 110, 3, 254, 187, 12, 110, 3, 254, + 196, 12, 110, 3, 146, 12, 110, 3, 193, 12, 110, 3, 254, 183, 12, 110, 3, + 66, 12, 110, 3, 196, 12, 110, 3, 254, 195, 12, 110, 3, 254, 184, 12, 110, + 3, 254, 190, 12, 110, 3, 254, 193, 12, 159, 6, 57, 12, 159, 6, 254, 185, + 12, 159, 6, 222, 222, 12, 159, 6, 72, 12, 159, 6, 254, 191, 12, 159, 6, + 214, 12, 159, 6, 74, 12, 159, 6, 254, 192, 12, 159, 6, 254, 186, 12, 159, + 6, 149, 12, 159, 6, 185, 12, 159, 6, 73, 12, 159, 6, 193, 12, 159, 6, + 254, 183, 12, 159, 6, 66, 12, 159, 6, 196, 12, 159, 6, 254, 195, 12, 159, + 6, 254, 184, 12, 159, 6, 254, 190, 12, 159, 3, 57, 12, 159, 3, 254, 185, + 12, 159, 3, 254, 194, 12, 159, 3, 222, 222, 12, 159, 3, 72, 12, 159, 3, + 254, 191, 12, 159, 3, 214, 12, 159, 3, 212, 12, 159, 3, 74, 12, 159, 3, + 254, 192, 12, 159, 3, 254, 186, 12, 159, 3, 149, 12, 159, 3, 185, 12, + 159, 3, 199, 12, 159, 3, 73, 12, 159, 3, 254, 187, 12, 159, 3, 254, 196, + 12, 159, 3, 146, 12, 159, 3, 193, 12, 159, 3, 254, 183, 12, 159, 3, 66, + 12, 159, 3, 196, 12, 159, 3, 254, 195, 12, 159, 3, 254, 184, 12, 159, 3, + 254, 190, 12, 159, 3, 254, 193, 12, 18, 110, 6, 57, 12, 18, 110, 6, 254, + 185, 12, 18, 110, 6, 254, 194, 12, 18, 110, 6, 222, 222, 12, 18, 110, 6, + 72, 12, 18, 110, 6, 254, 191, 12, 18, 110, 6, 214, 12, 18, 110, 6, 212, + 12, 18, 110, 6, 74, 12, 18, 110, 6, 254, 192, 12, 18, 110, 6, 254, 186, + 12, 18, 110, 6, 149, 12, 18, 110, 6, 185, 12, 18, 110, 6, 199, 12, 18, + 110, 6, 73, 12, 18, 110, 6, 254, 187, 12, 18, 110, 6, 254, 196, 12, 18, + 110, 6, 146, 12, 18, 110, 6, 193, 12, 18, 110, 6, 254, 183, 12, 18, 110, + 6, 66, 12, 18, 110, 6, 196, 12, 18, 110, 6, 254, 195, 12, 18, 110, 6, + 254, 184, 12, 18, 110, 6, 254, 190, 12, 18, 110, 6, 254, 193, 12, 18, + 110, 3, 57, 12, 18, 110, 3, 254, 185, 12, 18, 110, 3, 254, 194, 12, 18, + 110, 3, 222, 222, 12, 18, 110, 3, 72, 12, 18, 110, 3, 254, 191, 12, 18, + 110, 3, 214, 12, 18, 110, 3, 212, 12, 18, 110, 3, 74, 12, 18, 110, 3, + 254, 192, 12, 18, 110, 3, 254, 186, 12, 18, 110, 3, 149, 12, 18, 110, 3, + 185, 12, 18, 110, 3, 199, 12, 18, 110, 3, 73, 12, 18, 110, 3, 254, 187, + 12, 18, 110, 3, 254, 196, 12, 18, 110, 3, 146, 12, 18, 110, 3, 193, 12, + 18, 110, 3, 254, 183, 12, 18, 110, 3, 66, 12, 18, 110, 3, 196, 12, 18, + 110, 3, 254, 195, 12, 18, 110, 3, 254, 184, 12, 18, 110, 3, 254, 190, 12, + 18, 110, 3, 254, 193, 12, 30, 6, 57, 12, 30, 6, 254, 185, 12, 30, 6, 254, + 194, 12, 30, 6, 222, 222, 12, 30, 6, 72, 12, 30, 6, 254, 191, 12, 30, 6, + 214, 12, 30, 6, 212, 12, 30, 6, 74, 12, 30, 6, 254, 192, 12, 30, 6, 254, + 186, 12, 30, 6, 149, 12, 30, 6, 185, 12, 30, 6, 199, 12, 30, 6, 73, 12, + 30, 6, 254, 187, 12, 30, 6, 254, 196, 12, 30, 6, 146, 12, 30, 6, 193, 12, + 30, 6, 254, 183, 12, 30, 6, 66, 12, 30, 6, 196, 12, 30, 6, 254, 195, 12, + 30, 6, 254, 184, 12, 30, 6, 254, 190, 12, 30, 6, 254, 193, 12, 30, 3, 57, + 12, 30, 3, 254, 185, 12, 30, 3, 254, 194, 12, 30, 3, 222, 222, 12, 30, 3, + 72, 12, 30, 3, 254, 191, 12, 30, 3, 214, 12, 30, 3, 212, 12, 30, 3, 74, + 12, 30, 3, 254, 192, 12, 30, 3, 254, 186, 12, 30, 3, 149, 12, 30, 3, 185, + 12, 30, 3, 199, 12, 30, 3, 73, 12, 30, 3, 254, 187, 12, 30, 3, 254, 196, + 12, 30, 3, 146, 12, 30, 3, 193, 12, 30, 3, 254, 183, 12, 30, 3, 66, 12, + 30, 3, 196, 12, 30, 3, 254, 195, 12, 30, 3, 254, 184, 12, 30, 3, 254, + 190, 12, 30, 3, 254, 193, 12, 30, 18, 6, 57, 12, 30, 18, 6, 254, 185, 12, + 30, 18, 6, 254, 194, 12, 30, 18, 6, 222, 222, 12, 30, 18, 6, 72, 12, 30, + 18, 6, 254, 191, 12, 30, 18, 6, 214, 12, 30, 18, 6, 212, 12, 30, 18, 6, + 74, 12, 30, 18, 6, 254, 192, 12, 30, 18, 6, 254, 186, 12, 30, 18, 6, 149, + 12, 30, 18, 6, 185, 12, 30, 18, 6, 199, 12, 30, 18, 6, 73, 12, 30, 18, 6, + 254, 187, 12, 30, 18, 6, 254, 196, 12, 30, 18, 6, 146, 12, 30, 18, 6, + 193, 12, 30, 18, 6, 254, 183, 12, 30, 18, 6, 66, 12, 30, 18, 6, 196, 12, + 30, 18, 6, 254, 195, 12, 30, 18, 6, 254, 184, 12, 30, 18, 6, 254, 190, + 12, 30, 18, 6, 254, 193, 12, 30, 18, 3, 57, 12, 30, 18, 3, 254, 185, 12, + 30, 18, 3, 254, 194, 12, 30, 18, 3, 222, 222, 12, 30, 18, 3, 72, 12, 30, + 18, 3, 254, 191, 12, 30, 18, 3, 214, 12, 30, 18, 3, 212, 12, 30, 18, 3, + 74, 12, 30, 18, 3, 254, 192, 12, 30, 18, 3, 254, 186, 12, 30, 18, 3, 149, + 12, 30, 18, 3, 185, 12, 30, 18, 3, 199, 12, 30, 18, 3, 73, 12, 30, 18, 3, + 254, 187, 12, 30, 18, 3, 254, 196, 12, 30, 18, 3, 146, 12, 30, 18, 3, + 193, 12, 30, 18, 3, 254, 183, 12, 30, 18, 3, 66, 12, 30, 18, 3, 196, 12, + 30, 18, 3, 254, 195, 12, 30, 18, 3, 254, 184, 12, 30, 18, 3, 254, 190, + 12, 30, 18, 3, 254, 193, 12, 30, 27, 6, 57, 12, 30, 27, 6, 254, 185, 12, + 30, 27, 6, 254, 194, 12, 30, 27, 6, 222, 222, 12, 30, 27, 6, 72, 12, 30, + 27, 6, 254, 191, 12, 30, 27, 6, 214, 12, 30, 27, 6, 212, 12, 30, 27, 6, + 74, 12, 30, 27, 6, 254, 192, 12, 30, 27, 6, 254, 186, 12, 30, 27, 6, 149, + 12, 30, 27, 6, 185, 12, 30, 27, 6, 199, 12, 30, 27, 6, 73, 12, 30, 27, 6, + 254, 187, 12, 30, 27, 6, 254, 196, 12, 30, 27, 6, 146, 12, 30, 27, 6, + 193, 12, 30, 27, 6, 254, 183, 12, 30, 27, 6, 66, 12, 30, 27, 6, 196, 12, + 30, 27, 6, 254, 195, 12, 30, 27, 6, 254, 184, 12, 30, 27, 6, 254, 190, + 12, 30, 27, 6, 254, 193, 12, 30, 27, 3, 57, 12, 30, 27, 3, 254, 185, 12, + 30, 27, 3, 254, 194, 12, 30, 27, 3, 222, 222, 12, 30, 27, 3, 72, 12, 30, + 27, 3, 254, 191, 12, 30, 27, 3, 214, 12, 30, 27, 3, 212, 12, 30, 27, 3, + 74, 12, 30, 27, 3, 254, 192, 12, 30, 27, 3, 254, 186, 12, 30, 27, 3, 149, + 12, 30, 27, 3, 185, 12, 30, 27, 3, 199, 12, 30, 27, 3, 73, 12, 30, 27, 3, + 254, 187, 12, 30, 27, 3, 254, 196, 12, 30, 27, 3, 146, 12, 30, 27, 3, + 193, 12, 30, 27, 3, 254, 183, 12, 30, 27, 3, 66, 12, 30, 27, 3, 196, 12, + 30, 27, 3, 254, 195, 12, 30, 27, 3, 254, 184, 12, 30, 27, 3, 254, 190, + 12, 30, 27, 3, 254, 193, 12, 30, 18, 27, 6, 57, 12, 30, 18, 27, 6, 254, + 185, 12, 30, 18, 27, 6, 254, 194, 12, 30, 18, 27, 6, 222, 222, 12, 30, + 18, 27, 6, 72, 12, 30, 18, 27, 6, 254, 191, 12, 30, 18, 27, 6, 214, 12, + 30, 18, 27, 6, 212, 12, 30, 18, 27, 6, 74, 12, 30, 18, 27, 6, 254, 192, + 12, 30, 18, 27, 6, 254, 186, 12, 30, 18, 27, 6, 149, 12, 30, 18, 27, 6, + 185, 12, 30, 18, 27, 6, 199, 12, 30, 18, 27, 6, 73, 12, 30, 18, 27, 6, + 254, 187, 12, 30, 18, 27, 6, 254, 196, 12, 30, 18, 27, 6, 146, 12, 30, + 18, 27, 6, 193, 12, 30, 18, 27, 6, 254, 183, 12, 30, 18, 27, 6, 66, 12, + 30, 18, 27, 6, 196, 12, 30, 18, 27, 6, 254, 195, 12, 30, 18, 27, 6, 254, + 184, 12, 30, 18, 27, 6, 254, 190, 12, 30, 18, 27, 6, 254, 193, 12, 30, + 18, 27, 3, 57, 12, 30, 18, 27, 3, 254, 185, 12, 30, 18, 27, 3, 254, 194, + 12, 30, 18, 27, 3, 222, 222, 12, 30, 18, 27, 3, 72, 12, 30, 18, 27, 3, + 254, 191, 12, 30, 18, 27, 3, 214, 12, 30, 18, 27, 3, 212, 12, 30, 18, 27, + 3, 74, 12, 30, 18, 27, 3, 254, 192, 12, 30, 18, 27, 3, 254, 186, 12, 30, + 18, 27, 3, 149, 12, 30, 18, 27, 3, 185, 12, 30, 18, 27, 3, 199, 12, 30, + 18, 27, 3, 73, 12, 30, 18, 27, 3, 254, 187, 12, 30, 18, 27, 3, 254, 196, + 12, 30, 18, 27, 3, 146, 12, 30, 18, 27, 3, 193, 12, 30, 18, 27, 3, 254, + 183, 12, 30, 18, 27, 3, 66, 12, 30, 18, 27, 3, 196, 12, 30, 18, 27, 3, + 254, 195, 12, 30, 18, 27, 3, 254, 184, 12, 30, 18, 27, 3, 254, 190, 12, + 30, 18, 27, 3, 254, 193, 12, 189, 6, 57, 12, 189, 6, 254, 185, 12, 189, + 6, 254, 194, 12, 189, 6, 222, 222, 12, 189, 6, 72, 12, 189, 6, 254, 191, + 12, 189, 6, 214, 12, 189, 6, 212, 12, 189, 6, 74, 12, 189, 6, 254, 192, + 12, 189, 6, 254, 186, 12, 189, 6, 149, 12, 189, 6, 185, 12, 189, 6, 199, + 12, 189, 6, 73, 12, 189, 6, 254, 187, 12, 189, 6, 254, 196, 12, 189, 6, + 146, 12, 189, 6, 193, 12, 189, 6, 254, 183, 12, 189, 6, 66, 12, 189, 6, + 196, 12, 189, 6, 254, 195, 12, 189, 6, 254, 184, 12, 189, 6, 254, 190, + 12, 189, 6, 254, 193, 12, 189, 3, 57, 12, 189, 3, 254, 185, 12, 189, 3, + 254, 194, 12, 189, 3, 222, 222, 12, 189, 3, 72, 12, 189, 3, 254, 191, 12, + 189, 3, 214, 12, 189, 3, 212, 12, 189, 3, 74, 12, 189, 3, 254, 192, 12, + 189, 3, 254, 186, 12, 189, 3, 149, 12, 189, 3, 185, 12, 189, 3, 199, 12, + 189, 3, 73, 12, 189, 3, 254, 187, 12, 189, 3, 254, 196, 12, 189, 3, 146, + 12, 189, 3, 193, 12, 189, 3, 254, 183, 12, 189, 3, 66, 12, 189, 3, 196, + 12, 189, 3, 254, 195, 12, 189, 3, 254, 184, 12, 189, 3, 254, 190, 12, + 189, 3, 254, 193, 12, 27, 3, 235, 46, 74, 12, 27, 3, 235, 46, 254, 192, + 12, 18, 6, 237, 71, 12, 18, 6, 240, 160, 12, 18, 6, 237, 61, 12, 18, 6, + 237, 75, 12, 18, 6, 233, 96, 12, 18, 6, 240, 173, 12, 18, 6, 246, 219, + 12, 18, 6, 237, 89, 12, 18, 6, 240, 146, 12, 18, 6, 237, 91, 12, 18, 6, + 237, 82, 12, 18, 6, 252, 229, 12, 18, 6, 252, 227, 12, 18, 6, 253, 38, + 12, 18, 6, 233, 100, 12, 18, 6, 252, 223, 12, 18, 6, 246, 209, 12, 18, 6, + 240, 178, 98, 12, 18, 6, 237, 73, 12, 18, 6, 246, 212, 12, 18, 6, 233, + 92, 12, 18, 6, 246, 198, 12, 18, 6, 246, 200, 12, 18, 6, 246, 204, 12, + 18, 6, 237, 68, 12, 18, 237, 138, 12, 18, 3, 237, 71, 12, 18, 3, 240, + 160, 12, 18, 3, 237, 61, 12, 18, 3, 237, 75, 12, 18, 3, 233, 96, 12, 18, + 3, 240, 173, 12, 18, 3, 246, 219, 12, 18, 3, 237, 89, 12, 18, 3, 240, + 146, 12, 18, 3, 237, 91, 12, 18, 3, 237, 82, 12, 18, 3, 252, 229, 12, 18, + 3, 252, 227, 12, 18, 3, 253, 38, 12, 18, 3, 233, 100, 12, 18, 3, 252, + 223, 12, 18, 3, 246, 209, 12, 18, 3, 35, 237, 73, 12, 18, 3, 237, 73, 12, + 18, 3, 246, 212, 12, 18, 3, 233, 92, 12, 18, 3, 246, 198, 12, 18, 3, 246, + 200, 12, 18, 3, 246, 204, 12, 18, 3, 237, 68, 12, 18, 235, 79, 227, 188, + 12, 18, 235, 28, 98, 12, 18, 240, 178, 98, 12, 18, 240, 210, 98, 12, 18, + 253, 120, 98, 12, 18, 253, 70, 98, 12, 18, 254, 200, 98, 12, 27, 6, 237, + 71, 12, 27, 6, 240, 160, 12, 27, 6, 237, 61, 12, 27, 6, 237, 75, 12, 27, + 6, 233, 96, 12, 27, 6, 240, 173, 12, 27, 6, 246, 219, 12, 27, 6, 237, 89, + 12, 27, 6, 240, 146, 12, 27, 6, 237, 91, 12, 27, 6, 237, 82, 12, 27, 6, + 252, 229, 12, 27, 6, 252, 227, 12, 27, 6, 253, 38, 12, 27, 6, 233, 100, + 12, 27, 6, 252, 223, 12, 27, 6, 246, 209, 12, 27, 6, 240, 178, 98, 12, + 27, 6, 237, 73, 12, 27, 6, 246, 212, 12, 27, 6, 233, 92, 12, 27, 6, 246, + 198, 12, 27, 6, 246, 200, 12, 27, 6, 246, 204, 12, 27, 6, 237, 68, 12, + 27, 237, 138, 12, 27, 3, 237, 71, 12, 27, 3, 240, 160, 12, 27, 3, 237, + 61, 12, 27, 3, 237, 75, 12, 27, 3, 233, 96, 12, 27, 3, 240, 173, 12, 27, + 3, 246, 219, 12, 27, 3, 237, 89, 12, 27, 3, 240, 146, 12, 27, 3, 237, 91, + 12, 27, 3, 237, 82, 12, 27, 3, 252, 229, 12, 27, 3, 252, 227, 12, 27, 3, + 253, 38, 12, 27, 3, 233, 100, 12, 27, 3, 252, 223, 12, 27, 3, 246, 209, + 12, 27, 3, 35, 237, 73, 12, 27, 3, 237, 73, 12, 27, 3, 246, 212, 12, 27, + 3, 233, 92, 12, 27, 3, 246, 198, 12, 27, 3, 246, 200, 12, 27, 3, 246, + 204, 12, 27, 3, 237, 68, 12, 27, 235, 79, 227, 188, 12, 27, 235, 28, 98, + 12, 27, 240, 178, 98, 12, 27, 240, 210, 98, 12, 27, 253, 120, 98, 12, 27, + 253, 70, 98, 12, 27, 254, 200, 98, 12, 18, 27, 6, 237, 71, 12, 18, 27, 6, + 240, 160, 12, 18, 27, 6, 237, 61, 12, 18, 27, 6, 237, 75, 12, 18, 27, 6, + 233, 96, 12, 18, 27, 6, 240, 173, 12, 18, 27, 6, 246, 219, 12, 18, 27, 6, + 237, 89, 12, 18, 27, 6, 240, 146, 12, 18, 27, 6, 237, 91, 12, 18, 27, 6, + 237, 82, 12, 18, 27, 6, 252, 229, 12, 18, 27, 6, 252, 227, 12, 18, 27, 6, + 253, 38, 12, 18, 27, 6, 233, 100, 12, 18, 27, 6, 252, 223, 12, 18, 27, 6, + 246, 209, 12, 18, 27, 6, 240, 178, 98, 12, 18, 27, 6, 237, 73, 12, 18, + 27, 6, 246, 212, 12, 18, 27, 6, 233, 92, 12, 18, 27, 6, 246, 198, 12, 18, + 27, 6, 246, 200, 12, 18, 27, 6, 246, 204, 12, 18, 27, 6, 237, 68, 12, 18, + 27, 237, 138, 12, 18, 27, 3, 237, 71, 12, 18, 27, 3, 240, 160, 12, 18, + 27, 3, 237, 61, 12, 18, 27, 3, 237, 75, 12, 18, 27, 3, 233, 96, 12, 18, + 27, 3, 240, 173, 12, 18, 27, 3, 246, 219, 12, 18, 27, 3, 237, 89, 12, 18, + 27, 3, 240, 146, 12, 18, 27, 3, 237, 91, 12, 18, 27, 3, 237, 82, 12, 18, + 27, 3, 252, 229, 12, 18, 27, 3, 252, 227, 12, 18, 27, 3, 253, 38, 12, 18, + 27, 3, 233, 100, 12, 18, 27, 3, 252, 223, 12, 18, 27, 3, 246, 209, 12, + 18, 27, 3, 35, 237, 73, 12, 18, 27, 3, 237, 73, 12, 18, 27, 3, 246, 212, + 12, 18, 27, 3, 233, 92, 12, 18, 27, 3, 246, 198, 12, 18, 27, 3, 246, 200, + 12, 18, 27, 3, 246, 204, 12, 18, 27, 3, 237, 68, 12, 18, 27, 235, 79, + 227, 188, 12, 18, 27, 235, 28, 98, 12, 18, 27, 240, 178, 98, 12, 18, 27, + 240, 210, 98, 12, 18, 27, 253, 120, 98, 12, 18, 27, 253, 70, 98, 12, 18, + 27, 254, 200, 98, 12, 30, 18, 6, 237, 71, 12, 30, 18, 6, 240, 160, 12, + 30, 18, 6, 237, 61, 12, 30, 18, 6, 237, 75, 12, 30, 18, 6, 233, 96, 12, + 30, 18, 6, 240, 173, 12, 30, 18, 6, 246, 219, 12, 30, 18, 6, 237, 89, 12, + 30, 18, 6, 240, 146, 12, 30, 18, 6, 237, 91, 12, 30, 18, 6, 237, 82, 12, + 30, 18, 6, 252, 229, 12, 30, 18, 6, 252, 227, 12, 30, 18, 6, 253, 38, 12, + 30, 18, 6, 233, 100, 12, 30, 18, 6, 252, 223, 12, 30, 18, 6, 246, 209, + 12, 30, 18, 6, 240, 178, 98, 12, 30, 18, 6, 237, 73, 12, 30, 18, 6, 246, + 212, 12, 30, 18, 6, 233, 92, 12, 30, 18, 6, 246, 198, 12, 30, 18, 6, 246, + 200, 12, 30, 18, 6, 246, 204, 12, 30, 18, 6, 237, 68, 12, 30, 18, 237, + 138, 12, 30, 18, 3, 237, 71, 12, 30, 18, 3, 240, 160, 12, 30, 18, 3, 237, + 61, 12, 30, 18, 3, 237, 75, 12, 30, 18, 3, 233, 96, 12, 30, 18, 3, 240, + 173, 12, 30, 18, 3, 246, 219, 12, 30, 18, 3, 237, 89, 12, 30, 18, 3, 240, + 146, 12, 30, 18, 3, 237, 91, 12, 30, 18, 3, 237, 82, 12, 30, 18, 3, 252, + 229, 12, 30, 18, 3, 252, 227, 12, 30, 18, 3, 253, 38, 12, 30, 18, 3, 233, + 100, 12, 30, 18, 3, 252, 223, 12, 30, 18, 3, 246, 209, 12, 30, 18, 3, 35, + 237, 73, 12, 30, 18, 3, 237, 73, 12, 30, 18, 3, 246, 212, 12, 30, 18, 3, + 233, 92, 12, 30, 18, 3, 246, 198, 12, 30, 18, 3, 246, 200, 12, 30, 18, 3, + 246, 204, 12, 30, 18, 3, 237, 68, 12, 30, 18, 235, 79, 227, 188, 12, 30, + 18, 235, 28, 98, 12, 30, 18, 240, 178, 98, 12, 30, 18, 240, 210, 98, 12, + 30, 18, 253, 120, 98, 12, 30, 18, 253, 70, 98, 12, 30, 18, 254, 200, 98, + 12, 30, 18, 27, 6, 237, 71, 12, 30, 18, 27, 6, 240, 160, 12, 30, 18, 27, + 6, 237, 61, 12, 30, 18, 27, 6, 237, 75, 12, 30, 18, 27, 6, 233, 96, 12, + 30, 18, 27, 6, 240, 173, 12, 30, 18, 27, 6, 246, 219, 12, 30, 18, 27, 6, + 237, 89, 12, 30, 18, 27, 6, 240, 146, 12, 30, 18, 27, 6, 237, 91, 12, 30, + 18, 27, 6, 237, 82, 12, 30, 18, 27, 6, 252, 229, 12, 30, 18, 27, 6, 252, + 227, 12, 30, 18, 27, 6, 253, 38, 12, 30, 18, 27, 6, 233, 100, 12, 30, 18, + 27, 6, 252, 223, 12, 30, 18, 27, 6, 246, 209, 12, 30, 18, 27, 6, 240, + 178, 98, 12, 30, 18, 27, 6, 237, 73, 12, 30, 18, 27, 6, 246, 212, 12, 30, + 18, 27, 6, 233, 92, 12, 30, 18, 27, 6, 246, 198, 12, 30, 18, 27, 6, 246, + 200, 12, 30, 18, 27, 6, 246, 204, 12, 30, 18, 27, 6, 237, 68, 12, 30, 18, + 27, 237, 138, 12, 30, 18, 27, 3, 237, 71, 12, 30, 18, 27, 3, 240, 160, + 12, 30, 18, 27, 3, 237, 61, 12, 30, 18, 27, 3, 237, 75, 12, 30, 18, 27, + 3, 233, 96, 12, 30, 18, 27, 3, 240, 173, 12, 30, 18, 27, 3, 246, 219, 12, + 30, 18, 27, 3, 237, 89, 12, 30, 18, 27, 3, 240, 146, 12, 30, 18, 27, 3, + 237, 91, 12, 30, 18, 27, 3, 237, 82, 12, 30, 18, 27, 3, 252, 229, 12, 30, + 18, 27, 3, 252, 227, 12, 30, 18, 27, 3, 253, 38, 12, 30, 18, 27, 3, 233, + 100, 12, 30, 18, 27, 3, 252, 223, 12, 30, 18, 27, 3, 246, 209, 12, 30, + 18, 27, 3, 35, 237, 73, 12, 30, 18, 27, 3, 237, 73, 12, 30, 18, 27, 3, + 246, 212, 12, 30, 18, 27, 3, 233, 92, 12, 30, 18, 27, 3, 246, 198, 12, + 30, 18, 27, 3, 246, 200, 12, 30, 18, 27, 3, 246, 204, 12, 30, 18, 27, 3, + 237, 68, 12, 30, 18, 27, 235, 79, 227, 188, 12, 30, 18, 27, 235, 28, 98, + 12, 30, 18, 27, 240, 178, 98, 12, 30, 18, 27, 240, 210, 98, 12, 30, 18, + 27, 253, 120, 98, 12, 30, 18, 27, 253, 70, 98, 12, 30, 18, 27, 254, 200, + 98, 12, 18, 6, 233, 129, 12, 18, 3, 233, 129, 12, 18, 21, 240, 126, 12, + 18, 21, 118, 12, 18, 21, 113, 12, 18, 21, 166, 12, 18, 21, 158, 12, 18, + 21, 173, 12, 18, 21, 183, 12, 18, 21, 194, 12, 18, 21, 187, 12, 18, 21, + 192, 12, 159, 21, 240, 126, 12, 159, 21, 118, 12, 159, 21, 113, 12, 159, + 21, 166, 12, 159, 21, 158, 12, 159, 21, 173, 12, 159, 21, 183, 12, 159, + 21, 194, 12, 159, 21, 187, 12, 159, 21, 192, 12, 30, 21, 240, 126, 12, + 30, 21, 118, 12, 30, 21, 113, 12, 30, 21, 166, 12, 30, 21, 158, 12, 30, + 21, 173, 12, 30, 21, 183, 12, 30, 21, 194, 12, 30, 21, 187, 12, 30, 21, + 192, 12, 30, 18, 21, 240, 126, 12, 30, 18, 21, 118, 12, 30, 18, 21, 113, + 12, 30, 18, 21, 166, 12, 30, 18, 21, 158, 12, 30, 18, 21, 173, 12, 30, + 18, 21, 183, 12, 30, 18, 21, 194, 12, 30, 18, 21, 187, 12, 30, 18, 21, + 192, 12, 189, 21, 240, 126, 12, 189, 21, 118, 12, 189, 21, 113, 12, 189, + 21, 166, 12, 189, 21, 158, 12, 189, 21, 173, 12, 189, 21, 183, 12, 189, + 21, 194, 12, 189, 21, 187, 12, 189, 21, 192, 235, 19, 75, 246, 170, 240, + 199, 235, 19, 75, 240, 141, 240, 199, 235, 19, 75, 246, 184, 240, 199, + 235, 19, 75, 240, 134, 240, 199, 235, 19, 75, 254, 142, 235, 74, 235, 19, + 75, 243, 156, 235, 74, 235, 19, 75, 63, 235, 74, 235, 19, 75, 168, 106, + 229, 173, 235, 19, 75, 135, 106, 229, 173, 235, 19, 75, 152, 106, 229, + 173, 235, 19, 75, 246, 160, 106, 229, 173, 235, 19, 75, 246, 159, 106, + 229, 173, 235, 19, 75, 253, 17, 106, 229, 173, 235, 19, 75, 240, 155, + 106, 229, 173, 235, 19, 75, 240, 142, 106, 229, 173, 235, 19, 75, 246, + 208, 106, 229, 173, 235, 19, 75, 168, 106, 233, 109, 235, 19, 75, 135, + 106, 233, 109, 235, 19, 75, 152, 106, 233, 109, 235, 19, 75, 246, 160, + 106, 233, 109, 235, 19, 75, 246, 159, 106, 233, 109, 235, 19, 75, 253, + 17, 106, 233, 109, 235, 19, 75, 240, 155, 106, 233, 109, 235, 19, 75, + 240, 142, 106, 233, 109, 235, 19, 75, 246, 208, 106, 233, 109, 235, 19, + 75, 168, 106, 233, 110, 235, 19, 75, 135, 106, 233, 110, 235, 19, 75, + 152, 106, 233, 110, 235, 19, 75, 246, 160, 106, 233, 110, 235, 19, 75, + 246, 159, 106, 233, 110, 235, 19, 75, 253, 17, 106, 233, 110, 235, 19, + 75, 240, 155, 106, 233, 110, 235, 19, 75, 240, 142, 106, 233, 110, 235, + 19, 75, 246, 208, 106, 233, 110, 235, 19, 75, 245, 80, 235, 19, 75, 236, + 177, 235, 19, 75, 235, 109, 235, 19, 75, 227, 160, 235, 19, 75, 236, 238, + 235, 19, 75, 236, 248, 235, 19, 75, 236, 1, 235, 19, 75, 237, 30, 235, + 19, 75, 239, 50, 235, 19, 75, 240, 217, 109, 75, 169, 240, 217, 109, 75, + 223, 0, 109, 75, 223, 1, 109, 75, 223, 2, 109, 75, 223, 3, 109, 75, 223, + 4, 109, 75, 223, 5, 109, 75, 223, 6, 109, 75, 223, 7, 109, 75, 223, 8, + 109, 75, 223, 9, 109, 75, 223, 10, 109, 75, 223, 11, 109, 75, 223, 12, + 109, 75, 223, 13, 109, 75, 223, 14, 109, 75, 223, 15, 109, 75, 223, 16, + 109, 75, 223, 17, 109, 75, 223, 18, 109, 75, 223, 19, 109, 75, 223, 20, + 109, 75, 223, 21, 109, 75, 223, 22, 109, 75, 223, 23, 109, 75, 223, 24, + 109, 75, 223, 25, 109, 75, 223, 26, 109, 75, 223, 27, 109, 75, 223, 28, + 109, 75, 223, 29, 109, 75, 223, 30, 109, 75, 223, 31, 109, 75, 223, 32, + 109, 75, 223, 33, 109, 75, 223, 34, 109, 75, 223, 35, 109, 75, 223, 36, + 109, 75, 223, 37, 109, 75, 223, 38, 109, 75, 223, 39, 109, 75, 223, 40, + 109, 75, 223, 41, 109, 75, 223, 42, 109, 75, 223, 43, 109, 75, 223, 44, + 109, 75, 223, 45, 109, 75, 223, 46, 109, 75, 223, 47, 109, 75, 223, 48, + 109, 75, 61, 240, 217, 109, 75, 227, 82, 109, 75, 227, 83, 109, 75, 227, + 84, 109, 75, 227, 85, 109, 75, 227, 86, 109, 75, 227, 87, 109, 75, 227, + 88, 109, 75, 227, 89, 109, 75, 227, 90, 109, 75, 227, 91, 109, 75, 227, + 92, 109, 75, 227, 93, 109, 75, 227, 94, 109, 75, 227, 95, 109, 75, 227, + 96, 109, 75, 227, 97, 109, 75, 227, 98, 109, 75, 227, 99, 109, 75, 227, + 100, 109, 75, 227, 101, 109, 75, 227, 102, 109, 75, 227, 103, 109, 75, + 227, 104, 109, 75, 227, 105, 109, 75, 227, 106, 109, 75, 227, 107, 109, + 75, 227, 108, 109, 75, 227, 109, 109, 75, 227, 110, 109, 75, 227, 111, + 109, 75, 227, 112, 109, 75, 227, 113, 109, 75, 227, 114, 109, 75, 227, + 115, 109, 75, 227, 116, 109, 75, 227, 117, 109, 75, 227, 118, 109, 75, + 227, 119, 109, 75, 227, 120, 109, 75, 227, 121, 109, 75, 227, 122, 109, + 75, 227, 123, 109, 75, 227, 124, 109, 75, 227, 125, 109, 75, 227, 126, + 109, 75, 227, 127, 109, 75, 227, 128, 109, 75, 227, 129, 109, 75, 227, + 130, 9, 11, 223, 63, 9, 11, 223, 64, 9, 11, 223, 65, 9, 11, 223, 66, 9, + 11, 223, 67, 9, 11, 223, 68, 9, 11, 223, 69, 9, 11, 223, 70, 9, 11, 223, + 71, 9, 11, 223, 72, 9, 11, 223, 73, 9, 11, 223, 74, 9, 11, 223, 75, 9, + 11, 223, 76, 9, 11, 223, 77, 9, 11, 223, 78, 9, 11, 223, 79, 9, 11, 223, + 80, 9, 11, 223, 81, 9, 11, 223, 82, 9, 11, 223, 83, 9, 11, 223, 84, 9, + 11, 223, 85, 9, 11, 223, 86, 9, 11, 223, 87, 9, 11, 223, 88, 9, 11, 223, + 89, 9, 11, 223, 90, 9, 11, 223, 91, 9, 11, 223, 92, 9, 11, 223, 93, 9, + 11, 223, 94, 9, 11, 223, 95, 9, 11, 223, 96, 9, 11, 223, 97, 9, 11, 223, + 98, 9, 11, 223, 99, 9, 11, 223, 100, 9, 11, 223, 101, 9, 11, 223, 102, 9, + 11, 223, 103, 9, 11, 223, 104, 9, 11, 223, 105, 9, 11, 223, 106, 9, 11, + 223, 107, 9, 11, 223, 108, 9, 11, 223, 109, 9, 11, 223, 110, 9, 11, 223, + 111, 9, 11, 223, 112, 9, 11, 223, 113, 9, 11, 223, 114, 9, 11, 223, 115, + 9, 11, 223, 116, 9, 11, 223, 117, 9, 11, 223, 118, 9, 11, 223, 119, 9, + 11, 223, 120, 9, 11, 223, 121, 9, 11, 223, 122, 9, 11, 223, 123, 9, 11, + 223, 124, 9, 11, 223, 125, 9, 11, 223, 126, 9, 11, 223, 127, 9, 11, 223, + 128, 9, 11, 223, 129, 9, 11, 223, 130, 9, 11, 223, 131, 9, 11, 223, 132, + 9, 11, 223, 133, 9, 11, 223, 134, 9, 11, 223, 135, 9, 11, 223, 136, 9, + 11, 223, 137, 9, 11, 223, 138, 9, 11, 223, 139, 9, 11, 223, 140, 9, 11, + 223, 141, 9, 11, 223, 142, 9, 11, 223, 143, 9, 11, 223, 144, 9, 11, 223, + 145, 9, 11, 223, 146, 9, 11, 223, 147, 9, 11, 223, 148, 9, 11, 223, 149, + 9, 11, 223, 150, 9, 11, 223, 151, 9, 11, 223, 152, 9, 11, 223, 153, 9, + 11, 223, 154, 9, 11, 223, 155, 9, 11, 223, 156, 9, 11, 223, 157, 9, 11, + 223, 158, 9, 11, 223, 159, 9, 11, 223, 160, 9, 11, 223, 161, 9, 11, 223, + 162, 9, 11, 223, 163, 9, 11, 223, 164, 9, 11, 223, 165, 9, 11, 223, 166, + 9, 11, 223, 167, 9, 11, 223, 168, 9, 11, 223, 169, 9, 11, 223, 170, 9, + 11, 223, 171, 9, 11, 223, 172, 9, 11, 223, 173, 9, 11, 223, 174, 9, 11, + 223, 175, 9, 11, 223, 176, 9, 11, 223, 177, 9, 11, 223, 178, 9, 11, 223, + 179, 9, 11, 223, 180, 9, 11, 223, 181, 9, 11, 223, 182, 9, 11, 223, 183, + 9, 11, 223, 184, 9, 11, 223, 185, 9, 11, 223, 186, 9, 11, 223, 187, 9, + 11, 223, 188, 9, 11, 223, 189, 9, 11, 223, 190, 9, 11, 223, 191, 9, 11, + 223, 192, 9, 11, 223, 193, 9, 11, 223, 194, 9, 11, 223, 195, 9, 11, 223, + 196, 9, 11, 223, 197, 9, 11, 223, 198, 9, 11, 223, 199, 9, 11, 223, 200, + 9, 11, 223, 201, 9, 11, 223, 202, 9, 11, 223, 203, 9, 11, 223, 204, 9, + 11, 223, 205, 9, 11, 223, 206, 9, 11, 223, 207, 9, 11, 223, 208, 9, 11, + 223, 209, 9, 11, 223, 210, 9, 11, 223, 211, 9, 11, 223, 212, 9, 11, 223, + 213, 9, 11, 223, 214, 9, 11, 223, 215, 9, 11, 223, 216, 9, 11, 223, 217, + 9, 11, 223, 218, 9, 11, 223, 219, 9, 11, 223, 220, 9, 11, 223, 221, 9, + 11, 223, 222, 9, 11, 223, 223, 9, 11, 223, 224, 9, 11, 223, 225, 9, 11, + 223, 226, 9, 11, 223, 227, 9, 11, 223, 228, 9, 11, 223, 229, 9, 11, 223, + 230, 9, 11, 223, 231, 9, 11, 223, 232, 9, 11, 223, 233, 9, 11, 223, 234, + 9, 11, 223, 235, 9, 11, 223, 236, 9, 11, 223, 237, 9, 11, 223, 238, 9, + 11, 223, 239, 9, 11, 223, 240, 9, 11, 223, 241, 9, 11, 223, 242, 9, 11, + 223, 243, 9, 11, 223, 244, 9, 11, 223, 245, 9, 11, 223, 246, 9, 11, 223, + 247, 9, 11, 223, 248, 9, 11, 223, 249, 9, 11, 223, 250, 9, 11, 223, 251, + 9, 11, 223, 252, 9, 11, 223, 253, 9, 11, 223, 254, 9, 11, 223, 255, 9, + 11, 224, 0, 9, 11, 224, 1, 9, 11, 224, 2, 9, 11, 224, 3, 9, 11, 224, 4, + 9, 11, 224, 5, 9, 11, 224, 6, 9, 11, 224, 7, 9, 11, 224, 8, 9, 11, 224, + 9, 9, 11, 224, 10, 9, 11, 224, 11, 9, 11, 224, 12, 9, 11, 224, 13, 9, 11, + 224, 14, 9, 11, 224, 15, 9, 11, 224, 16, 9, 11, 224, 17, 9, 11, 224, 18, + 9, 11, 224, 19, 9, 11, 224, 20, 9, 11, 224, 21, 9, 11, 224, 22, 9, 11, + 224, 23, 9, 11, 224, 24, 9, 11, 224, 25, 9, 11, 224, 26, 9, 11, 224, 27, + 9, 11, 224, 28, 9, 11, 224, 29, 9, 11, 224, 30, 9, 11, 224, 31, 9, 11, + 224, 32, 9, 11, 224, 33, 9, 11, 224, 34, 9, 11, 224, 35, 9, 11, 224, 36, + 9, 11, 224, 37, 9, 11, 224, 38, 9, 11, 224, 39, 9, 11, 224, 40, 9, 11, + 224, 41, 9, 11, 224, 42, 9, 11, 224, 43, 9, 11, 224, 44, 9, 11, 224, 45, + 9, 11, 224, 46, 9, 11, 224, 47, 9, 11, 224, 48, 9, 11, 224, 49, 9, 11, + 224, 50, 9, 11, 224, 51, 9, 11, 224, 52, 9, 11, 224, 53, 9, 11, 224, 54, + 9, 11, 224, 55, 9, 11, 224, 56, 9, 11, 224, 57, 9, 11, 224, 58, 9, 11, + 224, 59, 9, 11, 224, 60, 9, 11, 224, 61, 9, 11, 224, 62, 9, 11, 224, 63, + 9, 11, 224, 64, 9, 11, 224, 65, 9, 11, 224, 66, 9, 11, 224, 67, 9, 11, + 224, 68, 9, 11, 224, 69, 9, 11, 224, 70, 9, 11, 224, 71, 9, 11, 224, 72, + 9, 11, 224, 73, 9, 11, 224, 74, 9, 11, 224, 75, 9, 11, 224, 76, 9, 11, + 224, 77, 9, 11, 224, 78, 9, 11, 224, 79, 9, 11, 224, 80, 9, 11, 224, 81, + 9, 11, 224, 82, 9, 11, 224, 83, 9, 11, 224, 84, 9, 11, 224, 85, 9, 11, + 224, 86, 9, 11, 224, 87, 9, 11, 224, 88, 9, 11, 224, 89, 9, 11, 224, 90, + 9, 11, 224, 91, 9, 11, 224, 92, 9, 11, 224, 93, 9, 11, 224, 94, 9, 11, + 224, 95, 9, 11, 224, 96, 9, 11, 224, 97, 9, 11, 224, 98, 9, 11, 224, 99, + 9, 11, 224, 100, 9, 11, 224, 101, 9, 11, 224, 102, 9, 11, 224, 103, 9, + 11, 224, 104, 9, 11, 224, 105, 9, 11, 224, 106, 9, 11, 224, 107, 9, 11, + 224, 108, 9, 11, 224, 109, 9, 11, 224, 110, 9, 11, 224, 111, 9, 11, 224, + 112, 9, 11, 224, 113, 9, 11, 224, 114, 9, 11, 224, 115, 9, 11, 224, 116, + 9, 11, 224, 117, 9, 11, 224, 118, 9, 11, 224, 119, 9, 11, 224, 120, 9, + 11, 224, 121, 9, 11, 224, 122, 9, 11, 224, 123, 9, 11, 224, 124, 9, 11, + 224, 125, 9, 11, 224, 126, 9, 11, 224, 127, 9, 11, 224, 128, 9, 11, 224, + 129, 9, 11, 224, 130, 9, 11, 224, 131, 9, 11, 224, 132, 9, 11, 224, 133, + 9, 11, 224, 134, 9, 11, 224, 135, 9, 11, 224, 136, 9, 11, 224, 137, 9, + 11, 224, 138, 9, 11, 224, 139, 9, 11, 224, 140, 9, 11, 224, 141, 9, 11, + 224, 142, 9, 11, 224, 143, 9, 11, 224, 144, 9, 11, 224, 145, 9, 11, 224, + 146, 9, 11, 224, 147, 9, 11, 224, 148, 9, 11, 224, 149, 9, 11, 224, 150, + 9, 11, 224, 151, 9, 11, 224, 152, 9, 11, 224, 153, 9, 11, 224, 154, 9, + 11, 224, 155, 9, 11, 224, 156, 9, 11, 224, 157, 9, 11, 224, 158, 9, 11, + 224, 159, 9, 11, 224, 160, 9, 11, 224, 161, 9, 11, 224, 162, 9, 11, 224, + 163, 9, 11, 224, 164, 9, 11, 224, 165, 9, 11, 224, 166, 9, 11, 224, 167, + 9, 11, 224, 168, 9, 11, 224, 169, 9, 11, 224, 170, 9, 11, 224, 171, 9, + 11, 224, 172, 9, 11, 224, 173, 9, 11, 224, 174, 9, 11, 224, 175, 9, 11, + 224, 176, 9, 11, 224, 177, 9, 11, 224, 178, 9, 11, 224, 179, 9, 11, 224, + 180, 9, 11, 224, 181, 9, 11, 224, 182, 9, 11, 224, 183, 9, 11, 224, 184, + 9, 11, 224, 185, 9, 11, 224, 186, 9, 11, 224, 187, 9, 11, 224, 188, 9, + 11, 224, 189, 9, 11, 224, 190, 9, 11, 224, 191, 9, 11, 224, 192, 9, 11, + 224, 193, 9, 11, 224, 194, 9, 11, 224, 195, 9, 11, 224, 196, 9, 11, 224, + 197, 9, 11, 224, 198, 9, 11, 224, 199, 9, 11, 224, 200, 9, 11, 224, 201, + 9, 11, 224, 202, 9, 11, 224, 203, 9, 11, 224, 204, 9, 11, 224, 205, 9, + 11, 224, 206, 9, 11, 224, 207, 9, 11, 224, 208, 9, 11, 224, 209, 9, 11, + 224, 210, 9, 11, 224, 211, 9, 11, 224, 212, 9, 11, 224, 213, 9, 11, 224, + 214, 9, 11, 224, 215, 9, 11, 224, 216, 9, 11, 224, 217, 9, 11, 224, 218, + 9, 11, 224, 219, 9, 11, 224, 220, 9, 11, 224, 221, 9, 11, 224, 222, 9, + 11, 224, 223, 9, 11, 224, 224, 9, 11, 224, 225, 9, 11, 224, 226, 9, 11, + 224, 227, 9, 11, 224, 228, 9, 11, 224, 229, 9, 11, 224, 230, 9, 11, 224, + 231, 9, 11, 224, 232, 9, 11, 224, 233, 9, 11, 224, 234, 9, 11, 224, 235, + 9, 11, 224, 236, 9, 11, 224, 237, 9, 11, 224, 238, 9, 11, 224, 239, 9, + 11, 224, 240, 9, 11, 224, 241, 9, 11, 224, 242, 9, 11, 224, 243, 9, 11, + 224, 244, 9, 11, 224, 245, 9, 11, 224, 246, 9, 11, 224, 247, 9, 11, 224, + 248, 9, 11, 224, 249, 9, 11, 224, 250, 9, 11, 224, 251, 9, 11, 224, 252, + 9, 11, 224, 253, 9, 11, 224, 254, 9, 11, 224, 255, 9, 11, 225, 0, 9, 11, + 225, 1, 9, 11, 225, 2, 9, 11, 225, 3, 9, 11, 225, 4, 9, 11, 225, 5, 9, + 11, 225, 6, 9, 11, 225, 7, 9, 11, 225, 8, 9, 11, 225, 9, 9, 11, 225, 10, + 9, 11, 225, 11, 9, 11, 225, 12, 9, 11, 225, 13, 9, 11, 225, 14, 9, 11, + 225, 15, 9, 11, 225, 16, 9, 11, 225, 17, 9, 11, 225, 18, 9, 11, 225, 19, + 9, 11, 225, 20, 9, 11, 225, 21, 9, 11, 225, 22, 9, 11, 225, 23, 9, 11, + 225, 24, 9, 11, 225, 25, 9, 11, 225, 26, 9, 11, 225, 27, 9, 11, 225, 28, + 9, 11, 225, 29, 9, 11, 225, 30, 9, 11, 225, 31, 9, 11, 225, 32, 9, 11, + 225, 33, 9, 11, 225, 34, 9, 11, 225, 35, 9, 11, 225, 36, 9, 11, 225, 37, + 9, 11, 225, 38, 9, 11, 225, 39, 9, 11, 225, 40, 9, 11, 225, 41, 9, 11, + 225, 42, 9, 11, 225, 43, 9, 11, 225, 44, 9, 11, 225, 45, 9, 11, 225, 46, + 9, 11, 225, 47, 9, 11, 225, 48, 9, 11, 225, 49, 9, 11, 225, 50, 9, 11, + 225, 51, 9, 11, 225, 52, 9, 11, 225, 53, 9, 11, 225, 54, 9, 11, 225, 55, + 9, 11, 225, 56, 9, 11, 225, 57, 9, 11, 225, 58, 9, 11, 225, 59, 9, 11, + 225, 60, 9, 11, 225, 61, 9, 11, 225, 62, 9, 11, 225, 63, 9, 11, 225, 64, + 9, 11, 225, 65, 9, 11, 225, 66, 9, 11, 225, 67, 9, 11, 225, 68, 9, 11, + 225, 69, 9, 11, 225, 70, 9, 11, 225, 71, 9, 11, 225, 72, 9, 11, 225, 73, + 9, 11, 225, 74, 9, 11, 225, 75, 9, 11, 225, 76, 9, 11, 225, 77, 9, 11, + 225, 78, 9, 11, 225, 79, 9, 11, 225, 80, 9, 11, 225, 81, 9, 11, 225, 82, + 9, 11, 225, 83, 9, 11, 225, 84, 9, 11, 225, 85, 9, 11, 225, 86, 9, 11, + 225, 87, 9, 11, 225, 88, 9, 11, 225, 89, 9, 11, 225, 90, 9, 11, 225, 91, + 9, 11, 225, 92, 234, 144, 247, 105, 108, 237, 69, 108, 229, 165, 76, 108, + 231, 199, 76, 108, 65, 53, 108, 237, 179, 53, 108, 235, 86, 53, 108, 230, + 142, 108, 229, 172, 108, 42, 228, 180, 108, 41, 228, 180, 108, 231, 198, + 108, 79, 53, 108, 237, 67, 108, 227, 193, 108, 246, 162, 240, 121, 108, + 233, 104, 108, 21, 240, 126, 108, 21, 118, 108, 21, 113, 108, 21, 166, + 108, 21, 158, 108, 21, 173, 108, 21, 183, 108, 21, 194, 108, 21, 187, + 108, 21, 192, 108, 237, 66, 108, 230, 140, 108, 231, 190, 53, 108, 237, + 51, 53, 108, 228, 175, 53, 108, 233, 82, 76, 108, 230, 145, 253, 113, + 108, 7, 6, 1, 57, 108, 7, 6, 1, 254, 185, 108, 7, 6, 1, 254, 194, 108, 7, + 6, 1, 222, 222, 108, 7, 6, 1, 72, 108, 7, 6, 1, 254, 191, 108, 7, 6, 1, + 214, 108, 7, 6, 1, 212, 108, 7, 6, 1, 74, 108, 7, 6, 1, 254, 192, 108, 7, + 6, 1, 254, 186, 108, 7, 6, 1, 149, 108, 7, 6, 1, 185, 108, 7, 6, 1, 199, + 108, 7, 6, 1, 73, 108, 7, 6, 1, 254, 187, 108, 7, 6, 1, 254, 196, 108, 7, + 6, 1, 146, 108, 7, 6, 1, 193, 108, 7, 6, 1, 254, 183, 108, 7, 6, 1, 66, + 108, 7, 6, 1, 196, 108, 7, 6, 1, 254, 195, 108, 7, 6, 1, 254, 184, 108, + 7, 6, 1, 254, 190, 108, 7, 6, 1, 254, 193, 108, 42, 37, 104, 108, 235, + 37, 233, 104, 108, 41, 37, 104, 108, 230, 125, 235, 24, 108, 184, 240, + 138, 108, 240, 163, 235, 24, 108, 7, 3, 1, 57, 108, 7, 3, 1, 254, 185, + 108, 7, 3, 1, 254, 194, 108, 7, 3, 1, 222, 222, 108, 7, 3, 1, 72, 108, 7, + 3, 1, 254, 191, 108, 7, 3, 1, 214, 108, 7, 3, 1, 212, 108, 7, 3, 1, 74, + 108, 7, 3, 1, 254, 192, 108, 7, 3, 1, 254, 186, 108, 7, 3, 1, 149, 108, + 7, 3, 1, 185, 108, 7, 3, 1, 199, 108, 7, 3, 1, 73, 108, 7, 3, 1, 254, + 187, 108, 7, 3, 1, 254, 196, 108, 7, 3, 1, 146, 108, 7, 3, 1, 193, 108, + 7, 3, 1, 254, 183, 108, 7, 3, 1, 66, 108, 7, 3, 1, 196, 108, 7, 3, 1, + 254, 195, 108, 7, 3, 1, 254, 184, 108, 7, 3, 1, 254, 190, 108, 7, 3, 1, + 254, 193, 108, 42, 240, 137, 104, 108, 61, 240, 138, 108, 41, 240, 137, + 104, 108, 205, 238, 137, 247, 105, 38, 229, 66, 38, 229, 67, 38, 229, 68, + 38, 229, 69, 38, 229, 70, 38, 229, 71, 38, 229, 72, 38, 229, 73, 38, 229, + 74, 38, 229, 75, 38, 229, 76, 38, 229, 77, 38, 229, 78, 38, 229, 79, 38, + 229, 80, 38, 229, 81, 38, 229, 82, 38, 229, 83, 38, 229, 84, 38, 229, 85, + 38, 229, 86, 38, 229, 87, 38, 229, 88, 38, 229, 89, 38, 229, 90, 38, 229, + 91, 38, 229, 92, 38, 229, 93, 38, 229, 94, 38, 229, 95, 38, 229, 96, 38, + 229, 97, 38, 229, 98, 38, 229, 99, 38, 229, 100, 38, 229, 101, 38, 229, + 102, 38, 229, 103, 38, 229, 104, 38, 229, 105, 38, 229, 106, 38, 229, + 107, 38, 229, 108, 38, 229, 109, 38, 229, 110, 38, 229, 111, 38, 229, + 112, 38, 229, 113, 38, 229, 114, 38, 229, 115, 38, 229, 116, 38, 229, + 117, 38, 229, 118, 38, 229, 119, 38, 229, 120, 38, 229, 121, 38, 229, + 122, 38, 229, 123, 38, 229, 124, 38, 229, 125, 38, 229, 126, 38, 229, + 127, 38, 229, 128, 38, 229, 129, 38, 229, 130, 38, 229, 131, 38, 229, + 132, 38, 229, 133, 38, 229, 134, 38, 229, 135, 38, 229, 136, 38, 229, + 137, 38, 229, 138, 38, 229, 139, 38, 229, 140, 38, 229, 141, 38, 229, + 142, 38, 229, 143, 38, 229, 144, 38, 229, 145, 38, 229, 146, 38, 229, + 147, 38, 229, 148, 38, 228, 3, 38, 228, 4, 38, 228, 5, 38, 228, 6, 38, + 228, 7, 38, 228, 8, 38, 228, 9, 38, 228, 10, 38, 228, 11, 38, 228, 12, + 38, 228, 13, 38, 228, 14, 38, 228, 15, 38, 228, 16, 38, 228, 17, 38, 228, + 18, 38, 228, 19, 38, 228, 20, 38, 228, 21, 38, 228, 22, 38, 228, 23, 38, + 228, 24, 38, 228, 25, 38, 228, 26, 38, 228, 27, 38, 228, 28, 38, 228, 29, + 38, 228, 30, 38, 228, 31, 38, 228, 32, 38, 228, 33, 38, 228, 34, 38, 228, + 35, 38, 228, 36, 38, 228, 37, 38, 228, 38, 38, 228, 39, 38, 228, 40, 38, + 228, 41, 38, 228, 42, 38, 228, 43, 38, 228, 44, 38, 228, 45, 38, 228, 46, + 38, 228, 47, 38, 228, 48, 38, 228, 49, 38, 228, 50, 38, 228, 51, 38, 228, + 52, 38, 228, 53, 38, 228, 54, 38, 228, 55, 38, 228, 56, 38, 228, 57, 38, + 228, 58, 38, 228, 59, 38, 228, 60, 38, 228, 61, 38, 228, 62, 38, 228, 63, + 38, 228, 64, 38, 228, 65, 38, 228, 66, 38, 228, 67, 38, 228, 68, 38, 228, + 69, 38, 228, 70, 38, 228, 71, 38, 228, 72, 38, 228, 73, 38, 228, 74, 38, + 228, 75, 38, 228, 76, 38, 228, 77, 38, 228, 78, 38, 228, 79, 38, 228, 80, + 38, 228, 81, 38, 228, 82, 38, 228, 83, 38, 228, 84, 38, 228, 85, 38, 228, + 86, 38, 228, 87, 38, 228, 88, 38, 228, 89, 38, 228, 90, 38, 228, 91, 38, + 228, 92, 38, 228, 93, 38, 228, 94, 38, 228, 95, 38, 228, 96, 38, 228, 97, + 38, 228, 98, 38, 228, 99, 38, 228, 100, 38, 228, 101, 38, 228, 102, 38, + 228, 103, 38, 228, 104, 38, 228, 105, 38, 228, 106, 38, 228, 107, 38, + 228, 108, 38, 228, 109, 38, 228, 110, 38, 228, 111, 38, 228, 112, 38, + 228, 113, 38, 228, 114, 38, 228, 115, 38, 228, 116, 38, 228, 117, 38, + 228, 118, 38, 228, 119, 38, 228, 120, 38, 228, 121, 38, 228, 122, 38, + 228, 123, 38, 228, 124, 38, 228, 125, 38, 228, 126, 38, 228, 127, 38, + 228, 128, 38, 228, 129, 38, 228, 130, 38, 228, 131, 38, 228, 132, 38, + 228, 133, 38, 228, 134, 38, 228, 135, 38, 228, 136, 38, 228, 137, 38, + 228, 138, 38, 228, 139, 38, 228, 140, 38, 228, 141, 38, 228, 142, 38, + 228, 143, 38, 228, 144, 38, 228, 145, 38, 228, 146, 38, 228, 147, 38, + 228, 148, 38, 228, 149, 38, 228, 150, 38, 228, 151, 38, 228, 152, 38, + 228, 153, 38, 228, 154, 38, 228, 155, 38, 228, 156, 38, 228, 157, 38, + 228, 158, 38, 228, 159, }; static unsigned char phrasebook_offset1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 16, 16, 16, 16, - 16, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 16, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 16, 16, 16, 16, 16, 16, 16, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 16, 52, 53, 54, + 16, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 16, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 97, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 100, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8791,8 +10344,8 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 16, 16, 16, 16, 108, 16, 109, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 16, 120, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8801,11 +10354,12 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 16, 16, 128, - 129, 130, 131, 16, 16, 16, 16, 16, 16, 132, 16, 16, 16, 133, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 16, + 139, 140, 141, 142, 143, 16, 16, 16, 16, 16, 16, 144, 16, 145, 16, 146, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 147, 148, 149, 150, 151, 152, 153, 16, 154, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8825,9 +10379,10 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 134, 135, 136, - 137, 138, 16, 139, 16, 140, 141, 142, 143, 144, 145, 146, 147, 16, 16, + 16, 155, 156, 157, 158, 159, 16, 160, 16, 161, 162, 163, 164, 165, 166, + 167, 168, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 169, 170, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -8857,9 +10412,8 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 171, 172, 173, 174, 175, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 148, 149, - 150, 151, 152, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -9171,8 +10725,9 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 176, + 16, 177, 178, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 153, 16, 154, 155, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, @@ -9256,3288 +10811,4427 @@ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, + 16, 16, 16, 16, 16, }; static unsigned int phrasebook_offset2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 6, 9, 11, 14, 17, 19, 21, 24, 27, 29, 32, - 34, 36, 39, 41, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 69, 72, - 75, 78, 82, 86, 90, 95, 99, 103, 108, 112, 116, 120, 124, 129, 133, 137, - 141, 145, 149, 154, 158, 162, 166, 170, 174, 179, 183, 188, 193, 196, - 200, 203, 206, 209, 213, 217, 221, 226, 230, 234, 239, 243, 247, 251, - 255, 260, 264, 268, 272, 276, 280, 285, 289, 293, 297, 301, 305, 310, - 314, 319, 324, 328, 331, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 340, 345, - 348, 351, 354, 357, 360, 363, 364, 367, 373, 380, 382, 386, 389, 390, - 393, 396, 399, 402, 406, 409, 412, 416, 418, 421, 427, 434, 442, 450, - 457, 462, 468, 474, 481, 487, 493, 501, 506, 514, 520, 526, 533, 539, - 545, 551, 558, 564, 569, 576, 582, 588, 595, 601, 607, 610, 616, 622, - 628, 635, 641, 648, 653, 659, 665, 671, 678, 684, 690, 698, 703, 711, - 717, 723, 730, 736, 742, 748, 755, 761, 766, 773, 779, 785, 792, 798, - 804, 807, 813, 819, 825, 832, 838, 845, 850, 857, 863, 869, 876, 883, - 890, 897, 904, 911, 919, 927, 935, 943, 951, 959, 967, 975, 982, 989, - 995, 1001, 1008, 1015, 1022, 1029, 1036, 1043, 1050, 1057, 1065, 1073, - 1081, 1089, 1097, 1105, 1113, 1121, 1129, 1137, 1144, 1151, 1157, 1163, - 1169, 1175, 1182, 1189, 1196, 1203, 1210, 1216, 1221, 1226, 1234, 1242, - 1250, 1258, 1263, 1270, 1277, 1285, 1293, 1301, 1309, 1319, 1329, 1336, - 1343, 1350, 1357, 1365, 1373, 1381, 1389, 1400, 1405, 1410, 1416, 1422, - 1429, 1436, 1443, 1450, 1455, 1460, 1467, 1474, 1482, 1490, 1498, 1506, - 1513, 1520, 1528, 1536, 1544, 1552, 1560, 1568, 1576, 1584, 1592, 1600, - 1607, 1614, 1620, 1626, 1632, 1638, 1645, 1652, 1660, 1668, 1675, 1682, - 1689, 1696, 1704, 1712, 1720, 1728, 1735, 1742, 1749, 1757, 1765, 1773, - 1781, 1786, 1792, 1798, 1805, 1812, 1817, 1822, 1828, 1835, 1842, 1848, - 1855, 1863, 1871, 1877, 1882, 1887, 1893, 1900, 1907, 1914, 1919, 1924, - 1929, 1935, 1942, 1949, 1956, 1963, 1968, 1976, 1986, 1994, 2001, 2008, - 2013, 2018, 2025, 2032, 2036, 2041, 2046, 2051, 2058, 2067, 2074, 2081, - 2090, 2097, 2104, 2109, 2116, 2123, 2130, 2137, 2144, 2149, 2156, 2163, - 2171, 2176, 2181, 2186, 2196, 2200, 2206, 2212, 2218, 2224, 2232, 2245, - 2253, 2258, 2267, 2272, 2277, 2286, 2291, 2298, 2305, 2312, 2319, 2326, - 2333, 2340, 2347, 2356, 2365, 2374, 2383, 2393, 2403, 2412, 2421, 2426, - 2435, 2444, 2453, 2462, 2469, 2476, 2483, 2490, 2498, 2506, 2514, 2522, - 2529, 2536, 2545, 2554, 2562, 2570, 2578, 2583, 2593, 2598, 2605, 2612, - 2617, 2622, 2629, 2636, 2646, 2656, 2663, 2670, 2679, 2688, 2695, 2702, - 2711, 2720, 2727, 2734, 2743, 2752, 2759, 2766, 2775, 2784, 2791, 2798, - 2807, 2816, 2824, 2832, 2842, 2852, 2859, 2866, 2875, 2884, 2893, 2902, - 2911, 2920, 2925, 2930, 2938, 2946, 2956, 2964, 2969, 2974, 2981, 2988, - 2995, 3002, 3009, 3016, 3025, 3034, 3043, 3052, 3059, 3066, 3075, 3084, - 3091, 3098, 3106, 3114, 3122, 3128, 3135, 3142, 3148, 3155, 3162, 3169, - 3178, 3188, 3198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3204, 3209, - 3214, 3220, 3226, 3232, 3240, 3248, 3255, 3260, 3265, 3272, 3278, 3285, - 3294, 3303, 3312, 3319, 3324, 3329, 3334, 3341, 3346, 3353, 3360, 3366, - 3371, 3376, 3385, 3393, 3402, 3407, 3412, 3422, 3429, 3437, 3446, 3451, - 3457, 3463, 3470, 3475, 3480, 3490, 3498, 3507, 3515, 3523, 3532, 3537, - 3544, 3551, 3556, 3568, 3576, 3584, 3589, 3598, 3603, 3608, 3615, 3620, - 3626, 3632, 3638, 3647, 3655, 3660, 3668, 3673, 3681, 3688, 3694, 3700, - 3705, 3713, 3721, 3726, 3734, 3740, 3745, 3752, 3760, 3769, 3776, 3783, - 3793, 3800, 3807, 3817, 3824, 3831, 3838, 3844, 3850, 3859, 3871, 3875, - 3882, 3886, 3890, 3895, 3903, 3910, 3915, 3920, 3924, 3929, 3934, 3938, - 3943, 3949, 3955, 3960, 3966, 3971, 3976, 3981, 3986, 3991, 3993, 3998, - 4001, 4007, 4013, 4019, 4023, 4030, 4037, 4043, 4050, 4058, 4066, 4071, - 4076, 4081, 4086, 4088, 4090, 4093, 4095, 4097, 4102, 4107, 4113, 4118, - 4122, 4126, 4130, 4137, 4143, 4148, 4154, 4159, 4165, 4173, 4181, 4185, - 4189, 4194, 4200, 4206, 4212, 4218, 4223, 4231, 4240, 4249, 4253, 4259, - 4266, 4273, 4280, 4287, 4291, 4297, 4302, 4307, 4312, 4316, 4318, 4320, - 4323, 4326, 4329, 4331, 4335, 4339, 4345, 4348, 4353, 4359, 4365, 4368, - 4373, 4378, 4382, 4387, 4392, 4398, 4404, 4409, 4414, 4418, 4421, 4427, - 4432, 4437, 4442, 4447, 4453, 4459, 4462, 4466, 4470, 4474, 4477, 4480, - 4485, 4489, 4496, 4500, 4505, 4509, 4515, 4519, 4523, 4527, 4532, 4537, - 4544, 4550, 4557, 4563, 4569, 4575, 4578, 4582, 4586, 4589, 4593, 4598, - 4603, 4607, 4611, 4617, 4621, 4625, 4630, 4636, 4640, 4645, 4649, 4655, - 4660, 4665, 4670, 4675, 4681, 4684, 4688, 4693, 4698, 4707, 4713, 4717, - 4721, 4726, 4730, 4735, 4739, 4742, 4747, 4750, 4756, 4761, 4766, 4771, - 4776, 4781, 4786, 4792, 4797, 4802, 4807, 4812, 4817, 4822, 0, 0, 0, 0, - 4827, 4830, 0, 0, 0, 0, 4834, 0, 0, 0, 4837, 0, 0, 0, 0, 0, 4841, 4844, - 4849, 4856, 4861, 4869, 4877, 0, 4885, 0, 4893, 4901, 4908, 4919, 4924, - 4929, 4934, 4939, 4944, 4949, 4954, 4959, 4964, 4969, 4974, 4979, 4984, - 4989, 4994, 4999, 0, 5004, 5009, 5014, 5019, 5024, 5029, 5034, 5039, - 5047, 5055, 5062, 5070, 5078, 5086, 5097, 5102, 5107, 5112, 5117, 5122, - 5127, 5132, 5137, 5142, 5147, 5152, 5157, 5162, 5167, 5172, 5177, 5182, - 5188, 5193, 5198, 5203, 5208, 5213, 5218, 5223, 5231, 5239, 5247, 5255, - 0, 5262, 5266, 5270, 5277, 5287, 5297, 5301, 5305, 5309, 5315, 5322, - 5326, 5331, 5335, 5340, 5344, 5349, 5353, 5358, 5363, 5368, 5373, 5378, - 5383, 5388, 5393, 5398, 5403, 5408, 5413, 5418, 5423, 5428, 5432, 5436, - 5442, 5446, 5451, 5457, 5464, 5469, 5474, 5481, 5486, 5491, 5498, 5506, - 5515, 5525, 5532, 5537, 5542, 5547, 5554, 5559, 5565, 5570, 5575, 5580, - 5585, 5590, 5595, 5601, 5607, 5612, 5616, 5621, 5626, 5631, 5636, 5641, - 5646, 5651, 5655, 5661, 5665, 5670, 5675, 5680, 5684, 5689, 5694, 5699, - 5704, 5708, 5713, 5717, 5722, 5727, 5732, 5737, 5743, 5748, 5754, 5758, - 5763, 5767, 5771, 5776, 5781, 5786, 5791, 5796, 5801, 5806, 5810, 5816, - 5820, 5825, 5830, 5835, 5839, 5844, 5849, 5854, 5859, 5863, 5868, 5872, - 5877, 5882, 5887, 5892, 5898, 5903, 5909, 5913, 5918, 5922, 5929, 5934, - 5939, 5944, 5951, 5956, 5962, 5967, 5972, 5977, 5982, 5987, 5992, 5998, - 6004, 6009, 6014, 6019, 6024, 6029, 6035, 6041, 6048, 6055, 6064, 6073, - 6080, 6087, 6096, 6105, 6110, 6115, 6120, 6125, 6130, 6135, 6140, 6145, - 6156, 6167, 6172, 6177, 6184, 6191, 6198, 6205, 6210, 6215, 6220, 6225, - 6229, 6233, 6237, 6242, 0, 6247, 6254, 6259, 6268, 6277, 6283, 6289, - 6297, 6305, 6313, 6321, 6328, 6335, 6344, 6353, 6361, 6369, 6377, 6385, - 6393, 6401, 6409, 6417, 6424, 6431, 6437, 6443, 6451, 6459, 6466, 6473, - 6482, 6491, 6497, 6503, 6511, 6519, 6527, 6535, 6541, 6547, 6555, 6563, - 6571, 6579, 6586, 6593, 6601, 6609, 6617, 6625, 6630, 6635, 6642, 6649, - 6659, 6669, 6673, 6681, 6689, 6696, 6703, 6711, 6719, 6726, 6733, 6741, - 6749, 6756, 6763, 6771, 0, 6779, 6786, 6793, 6799, 6805, 6811, 6817, - 6825, 6833, 6838, 6843, 6850, 6857, 6864, 6871, 6878, 6885, 6892, 6899, - 6905, 6911, 6917, 6923, 6929, 6935, 6941, 6947, 6955, 6963, 6969, 6975, - 6981, 6987, 6993, 6999, 7006, 7013, 7020, 7027, 7035, 7043, 7050, 0, 0, - 0, 0, 0, 0, 7057, 7064, 7071, 7078, 7085, 7092, 7099, 7106, 7113, 7120, - 7127, 7134, 7141, 7148, 7155, 7162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7169, - 7174, 7179, 7184, 7189, 7194, 7199, 7204, 7209, 7213, 7218, 7223, 7228, - 7233, 7238, 7243, 7248, 7253, 7258, 7263, 7268, 7273, 7278, 7283, 7288, - 7293, 7298, 7303, 7308, 7313, 7318, 7323, 7328, 7333, 7338, 7343, 7348, - 7353, 0, 0, 7358, 7365, 7368, 7372, 7376, 7379, 7383, 0, 7387, 7392, - 7397, 7402, 7407, 7412, 7417, 7422, 7427, 7431, 7436, 7441, 7446, 7451, - 7456, 7461, 7466, 7471, 7476, 7481, 7486, 7491, 7496, 7501, 7506, 7511, - 7516, 7521, 7526, 7531, 7536, 7541, 7546, 7551, 7556, 7561, 7566, 7571, - 7576, 0, 7583, 7587, 0, 0, 0, 0, 0, 0, 7590, 7595, 7600, 7605, 7612, - 7619, 7624, 7629, 7634, 7639, 7644, 7649, 7654, 7661, 7666, 7673, 7680, - 7685, 7692, 7697, 7702, 7707, 7714, 7719, 7724, 7731, 7740, 7745, 7750, - 7755, 7760, 7766, 7771, 7778, 7785, 7792, 7797, 7802, 7807, 7812, 7817, - 0, 7822, 7827, 7835, 7840, 7845, 7850, 7855, 7862, 7869, 7876, 7881, - 7886, 7893, 0, 0, 0, 0, 0, 0, 0, 0, 7900, 7904, 7908, 7912, 7916, 7920, - 7924, 7928, 7932, 7936, 7940, 7945, 7949, 7953, 7958, 7962, 7967, 7971, - 7975, 7979, 7984, 7988, 7993, 7997, 8001, 8005, 8009, 0, 0, 0, 0, 0, - 8013, 8020, 8028, 8035, 8040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8045, - 8048, 8052, 8057, 0, 0, 0, 0, 0, 0, 0, 8061, 8064, 8067, 8072, 8078, - 8082, 8090, 8096, 8102, 8110, 8114, 0, 0, 0, 0, 0, 8119, 0, 0, 8122, - 8129, 0, 8133, 8137, 8144, 8150, 8157, 8163, 8169, 8173, 8177, 8183, - 8187, 8191, 8195, 8199, 8203, 8207, 8211, 8215, 8219, 8223, 8227, 8231, - 8235, 8239, 8243, 8247, 0, 0, 0, 0, 0, 8251, 8254, 8258, 8262, 8266, - 8270, 8274, 8278, 8282, 8286, 8291, 8295, 8298, 8301, 8304, 8307, 8310, - 8313, 8316, 8319, 8323, 8326, 8329, 8334, 8339, 8344, 8347, 8354, 8363, - 8368, 8372, 0, 8379, 8384, 8388, 8392, 8396, 8400, 8404, 8408, 8412, - 8416, 8420, 8424, 8429, 8434, 8441, 8447, 8453, 8459, 8464, 8472, 8480, - 8485, 8491, 8497, 8503, 8509, 8513, 8517, 8521, 8528, 8538, 8542, 8546, - 8550, 8556, 8564, 8568, 8572, 8579, 8583, 8587, 8591, 8598, 8605, 8617, - 8621, 8625, 8629, 8639, 8648, 8652, 8659, 8666, 8673, 8682, 8693, 8701, - 8705, 8714, 8725, 8733, 8746, 8754, 8762, 8770, 8778, 8784, 8793, 8800, - 8804, 8812, 8816, 8823, 8831, 8835, 8841, 8848, 8855, 8859, 8867, 8871, - 8878, 8882, 8890, 8894, 8902, 8908, 8914, 8921, 8928, 8934, 8939, 8943, - 8949, 8956, 8962, 8969, 8976, 8982, 8991, 8999, 9006, 9012, 9016, 9019, - 9023, 9029, 9037, 9041, 9047, 9053, 9059, 9066, 9069, 9076, 9081, 9089, - 9093, 9097, 9109, 9121, 9127, 9133, 9138, 9144, 9149, 9155, 9165, 9172, - 9181, 9191, 9197, 9202, 9207, 9211, 9215, 9220, 9225, 9231, 9238, 9245, - 9256, 9261, 9269, 9277, 9284, 9290, 9296, 9302, 9308, 9314, 9320, 9326, - 9332, 9338, 9345, 9352, 9359, 9365, 9373, 9381, 9387, 9393, 9399, 9404, - 9409, 9413, 9420, 9426, 9435, 9443, 9446, 9451, 9456, 0, 9461, 9465, - 9469, 9475, 9479, 9483, 9489, 9493, 9501, 9505, 9509, 9513, 9517, 9521, - 9527, 9531, 9537, 9541, 9545, 9549, 9553, 9557, 9562, 9565, 9569, 9574, - 9578, 9582, 9586, 9590, 9594, 9599, 9604, 9609, 9613, 9617, 9622, 9626, - 9630, 9635, 9639, 9643, 9650, 9657, 9661, 9665, 9670, 9674, 9678, 9681, - 9686, 9689, 9692, 9697, 9702, 9706, 9710, 9716, 9722, 9725, 0, 0, 9728, - 9734, 9740, 9746, 9756, 9768, 9780, 9797, 9809, 9820, 9827, 9834, 9845, - 9860, 9871, 9877, 9886, 9894, 9906, 9916, 9924, 9936, 9943, 9951, 9963, - 9969, 9975, 9982, 9989, 9995, 10000, 10010, 10017, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10027, 10031, 10035, 10039, 10043, - 10047, 10051, 10055, 10059, 10063, 10067, 10071, 10075, 10079, 10083, - 10087, 10091, 10095, 10099, 10103, 10107, 10111, 10115, 10119, 10123, - 10127, 10131, 10135, 10139, 10143, 10147, 10151, 10155, 10158, 10162, - 10166, 10170, 10174, 10178, 10181, 10184, 10187, 10190, 10193, 10196, - 10199, 10202, 10205, 10208, 10211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10215, 10219, 10223, 10227, 10232, 10235, 10239, 10242, 10246, - 10249, 10253, 10257, 10261, 10266, 10271, 10274, 10278, 10283, 10288, - 10291, 10295, 10298, 10302, 10306, 10310, 10314, 10318, 10322, 10326, - 10330, 10334, 10338, 10342, 10346, 10350, 10354, 10358, 10362, 10366, - 10370, 10374, 10378, 10382, 10386, 10390, 10394, 10397, 10400, 10404, - 10408, 10412, 10416, 10420, 10424, 10428, 10432, 10436, 0, 0, 10439, - 10443, 10447, 10452, 10456, 10461, 10465, 10470, 10475, 10481, 10487, - 10493, 10497, 10502, 10508, 10514, 10518, 10523, 0, 0, 10527, 10530, - 10536, 10542, 10547, 0, 0, 0, 10552, 10556, 10560, 10564, 10568, 10572, - 10576, 10580, 10584, 10589, 10594, 10599, 10605, 10608, 10612, 10616, - 10619, 10622, 10625, 10628, 10631, 10634, 10637, 10640, 10643, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10647, 0, 0, 0, 10652, 10656, 10660, 0, 10664, - 10667, 10671, 10674, 10678, 10681, 10685, 10689, 0, 0, 10693, 10696, 0, - 0, 10700, 10703, 10707, 10710, 10714, 10718, 10722, 10726, 10730, 10734, - 10738, 10742, 10746, 10750, 10754, 10758, 10762, 10766, 10770, 10774, - 10778, 10782, 0, 10786, 10790, 10794, 10798, 10802, 10805, 10808, 0, - 10812, 0, 0, 0, 10816, 10820, 10824, 10828, 0, 0, 10831, 10835, 10839, - 10844, 10848, 10853, 10857, 10862, 10867, 0, 0, 10873, 10877, 0, 0, - 10882, 10886, 10891, 10895, 0, 0, 0, 0, 0, 0, 0, 0, 10901, 0, 0, 0, 0, - 10907, 10911, 0, 10915, 10919, 10924, 10929, 10934, 0, 0, 10940, 10944, - 10947, 10950, 10953, 10956, 10959, 10962, 10965, 10968, 10971, 10980, - 10988, 10992, 10996, 11002, 11008, 11014, 11020, 11035, 11042, 0, 0, 0, - 0, 0, 0, 11045, 11051, 11055, 0, 11059, 11062, 11066, 11069, 11073, - 11076, 0, 0, 0, 0, 11080, 11084, 0, 0, 11088, 11092, 11096, 11099, 11103, - 11107, 11111, 11115, 11119, 11123, 11127, 11131, 11135, 11139, 11143, - 11147, 11151, 11155, 11159, 11163, 11167, 11171, 0, 11175, 11179, 11183, - 11187, 11191, 11194, 11197, 0, 11201, 11205, 0, 11209, 11213, 0, 11217, - 11221, 0, 0, 11224, 0, 11228, 11233, 11237, 11242, 11246, 0, 0, 0, 0, - 11251, 11256, 0, 0, 11261, 11266, 11271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11275, 11279, 11283, 11287, 0, 11291, 0, 0, 0, 0, 0, 0, 0, 11295, 11299, - 11302, 11305, 11308, 11311, 11314, 11317, 11320, 11323, 11326, 11329, - 11332, 11335, 11338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11343, 11347, - 11351, 0, 11355, 11358, 11362, 11365, 11369, 11372, 11376, 11380, 11384, - 0, 11389, 11392, 11396, 0, 11401, 11404, 11408, 11411, 11415, 11419, - 11423, 11427, 11431, 11435, 11439, 11443, 11447, 11451, 11455, 11459, - 11463, 11467, 11471, 11475, 11479, 11483, 0, 11487, 11491, 11495, 11499, - 11503, 11506, 11509, 0, 11513, 11517, 0, 11521, 11525, 11529, 11533, - 11537, 0, 0, 11540, 11544, 11548, 11553, 11557, 11562, 11566, 11571, - 11576, 11582, 0, 11588, 11592, 11597, 0, 11603, 11607, 11612, 0, 0, - 11616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11619, 11624, 11629, - 11634, 0, 0, 11640, 11644, 11647, 11650, 11653, 11656, 11659, 11662, - 11665, 11668, 0, 11671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 11675, 11679, 11683, 0, 11687, 11690, 11694, 11697, 11701, 11704, 11708, - 11712, 0, 0, 11716, 11719, 0, 0, 11723, 11726, 11730, 11733, 11737, - 11741, 11745, 11749, 11753, 11757, 11761, 11765, 11769, 11773, 11777, - 11781, 11785, 11789, 11793, 11797, 11801, 11805, 0, 11809, 11813, 11817, - 11821, 11825, 11828, 11831, 0, 11835, 11839, 0, 11843, 11847, 11851, - 11855, 11859, 0, 0, 11862, 11866, 11870, 11875, 11879, 11884, 11888, - 11893, 0, 0, 0, 11898, 11902, 0, 0, 11907, 11911, 11916, 0, 0, 0, 0, 0, - 0, 0, 0, 11920, 11926, 0, 0, 0, 0, 11932, 11936, 0, 11940, 11944, 11949, - 0, 0, 0, 0, 11954, 11958, 11961, 11964, 11967, 11970, 11973, 11976, - 11979, 11982, 11985, 11988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11992, 11996, 0, 12000, 12003, 12007, 12010, 12014, 12017, 0, 0, 0, - 12021, 12024, 12028, 0, 12032, 12035, 12039, 12043, 0, 0, 0, 12046, - 12050, 0, 12054, 0, 12058, 12062, 0, 0, 0, 12066, 12070, 0, 0, 0, 12074, - 12078, 12082, 0, 0, 0, 12086, 12089, 12092, 12096, 12100, 12104, 12108, - 12112, 12116, 12120, 12124, 12128, 0, 0, 0, 0, 12131, 12136, 12140, - 12145, 12149, 0, 0, 0, 12154, 12158, 12163, 0, 12168, 12172, 12177, - 12182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 12192, 12196, 12199, 12202, 12205, 12208, 12211, 12214, 12217, - 12220, 12223, 12227, 12233, 12239, 12243, 12247, 12251, 12255, 12259, - 12264, 12268, 0, 0, 0, 0, 0, 0, 12271, 12275, 12279, 0, 12283, 12286, - 12290, 12293, 12297, 12300, 12304, 12308, 0, 12312, 12315, 12319, 0, - 12323, 12326, 12330, 12334, 12337, 12341, 12345, 12349, 12353, 12357, - 12361, 12365, 12369, 12373, 12377, 12381, 12385, 12389, 12393, 12397, - 12401, 12405, 12409, 0, 12413, 12417, 12421, 12425, 12429, 12432, 12435, - 12439, 12443, 12447, 0, 12451, 12455, 12459, 12463, 12467, 0, 0, 0, 0, - 12470, 12475, 12479, 12484, 12488, 12493, 12498, 0, 12504, 12508, 12513, - 0, 12518, 12522, 12527, 12532, 0, 0, 0, 0, 0, 0, 0, 12536, 12540, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12546, 12551, 0, 0, 0, 0, 12556, 12560, 12563, - 12566, 12569, 12572, 12575, 12578, 12581, 12584, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12587, 12591, 0, 12595, 12598, 12602, - 12605, 12609, 12612, 12616, 12620, 0, 12624, 12627, 12631, 0, 12635, - 12638, 12642, 12646, 12649, 12653, 12657, 12661, 12665, 12669, 12673, - 12677, 12681, 12685, 12689, 12693, 12697, 12701, 12705, 12709, 12713, - 12717, 12721, 0, 12725, 12729, 12733, 12737, 12741, 12744, 12747, 12751, - 12755, 12759, 0, 12763, 12767, 12771, 12775, 12779, 0, 0, 12782, 12786, - 12790, 12795, 12799, 12804, 12808, 12813, 12818, 0, 12824, 12828, 12833, - 0, 12838, 12842, 12847, 12852, 0, 0, 0, 0, 0, 0, 0, 12856, 12860, 0, 0, - 0, 0, 0, 0, 0, 12866, 0, 12870, 12875, 0, 0, 0, 0, 12880, 12884, 12887, - 12890, 12893, 12896, 12899, 12902, 12905, 12908, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12911, 12915, 0, 12919, 12922, 12926, - 12929, 12933, 12936, 12940, 12944, 0, 12948, 12951, 12955, 0, 12959, - 12962, 12966, 12970, 12973, 12977, 12981, 12985, 12989, 12993, 12997, - 13001, 13005, 13009, 13013, 13017, 13021, 13025, 13029, 13033, 13037, - 13041, 13045, 0, 13049, 13053, 13057, 13061, 13065, 13068, 13071, 13075, - 13079, 13083, 13087, 13091, 13095, 13099, 13103, 13107, 0, 0, 0, 0, - 13110, 13115, 13119, 13124, 13128, 13133, 0, 0, 13138, 13142, 13147, 0, - 13152, 13156, 13161, 13166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13170, 0, 0, 0, 0, - 0, 0, 0, 0, 13176, 13181, 0, 0, 0, 0, 13186, 13190, 13193, 13196, 13199, - 13202, 13205, 13208, 13211, 13214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13217, 13221, 0, 13225, 13229, 13233, 13237, 13241, 13245, - 13249, 13253, 13257, 13261, 13265, 13269, 13273, 13277, 13281, 13285, - 13289, 13293, 0, 0, 0, 13297, 13303, 13309, 13315, 13321, 13327, 13333, - 13339, 13345, 13351, 13357, 13363, 13371, 13377, 13383, 13389, 13395, - 13401, 13407, 13413, 13419, 13425, 13431, 13437, 0, 13443, 13449, 13455, - 13461, 13467, 13473, 13477, 13483, 13487, 0, 13491, 0, 0, 13497, 13501, - 13507, 13513, 13519, 13523, 13529, 0, 0, 0, 13533, 0, 0, 0, 0, 13537, - 13542, 13549, 13556, 13563, 13570, 0, 13577, 0, 13584, 13589, 13594, - 13601, 13608, 13617, 13628, 13637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13642, 13649, 13656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13661, 13667, 13673, 13679, 13685, 13691, 13697, 13703, 13709, 13715, - 13721, 13727, 13733, 13739, 13745, 13750, 13756, 13762, 13768, 13774, - 13780, 13785, 13791, 13797, 13803, 13809, 13815, 13821, 13827, 13833, - 13839, 13845, 13851, 13856, 13862, 13868, 13872, 13878, 13882, 13888, - 13894, 13900, 13906, 13912, 13918, 13923, 13929, 13933, 13938, 13944, - 13950, 13956, 13961, 13967, 13973, 13979, 13984, 13990, 0, 0, 0, 0, - 13994, 14000, 14005, 14011, 14016, 14024, 14032, 14036, 14040, 14044, - 14050, 14056, 14062, 14068, 14072, 14076, 14080, 14084, 14088, 14091, - 14094, 14097, 14100, 14103, 14106, 14109, 14112, 14115, 14119, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14123, 14127, 0, 14133, 0, 0, 14139, 14143, - 0, 14147, 0, 0, 14153, 0, 0, 0, 0, 0, 0, 14157, 14161, 14164, 14170, 0, - 14176, 14180, 14184, 14188, 14194, 14200, 14206, 0, 14212, 14216, 14220, - 0, 14226, 0, 14232, 0, 0, 14236, 14242, 0, 14248, 14251, 14257, 14260, - 14264, 14271, 14276, 14281, 14285, 14290, 14295, 14300, 14304, 0, 14309, - 14316, 14322, 0, 0, 14328, 14332, 14337, 14341, 14346, 0, 14351, 0, - 14356, 14362, 14368, 14374, 14380, 14384, 0, 0, 14387, 14391, 14394, - 14397, 14400, 14403, 14406, 14409, 14412, 14415, 0, 0, 14418, 14423, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14428, 14432, 14443, 14458, 14473, 14483, - 14494, 14507, 14518, 14524, 14532, 14542, 14548, 14556, 14560, 14566, - 14572, 14580, 14590, 14598, 14611, 14617, 14625, 14633, 14645, 14653, - 14661, 14669, 14677, 14685, 14693, 14701, 14711, 14715, 14718, 14721, - 14724, 14727, 14730, 14733, 14736, 14739, 14742, 14746, 14750, 14754, - 14758, 14762, 14766, 14770, 14774, 14778, 14783, 14789, 14799, 14813, - 14823, 14829, 14835, 14843, 14851, 14859, 14867, 14873, 14879, 14882, - 14886, 14890, 14894, 14898, 14902, 14906, 0, 14910, 14914, 14918, 14922, - 14926, 14930, 14934, 14938, 14942, 14946, 14950, 14954, 14958, 14962, - 14966, 14970, 14973, 14977, 14981, 14985, 14989, 14993, 14997, 15001, - 15005, 15008, 15012, 15016, 15020, 15024, 15028, 15031, 15034, 15038, 0, - 0, 0, 0, 0, 0, 15044, 15049, 15053, 15058, 15062, 15067, 15072, 15078, - 15083, 15089, 15093, 15098, 15102, 15107, 15117, 15123, 15128, 15134, - 15144, 15150, 15154, 15158, 15164, 15170, 15178, 15184, 15192, 0, 0, 0, - 0, 15200, 15204, 15209, 15214, 15219, 15224, 15229, 15234, 0, 15239, - 15244, 15249, 15254, 15259, 15264, 15269, 15274, 15279, 15284, 15289, - 15294, 15299, 15304, 15309, 15314, 15318, 15323, 15328, 15333, 15338, - 15343, 15348, 15353, 15358, 15362, 15367, 15372, 15377, 15382, 15387, - 15391, 15395, 15400, 15407, 15413, 0, 15420, 15427, 15440, 15447, 15454, - 15462, 15470, 15476, 15482, 15488, 15498, 15504, 15510, 15520, 15530, 0, - 0, 15540, 15548, 15560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15572, 15575, 15579, 15583, 15587, 15591, 15595, 15599, - 15603, 15607, 15611, 15615, 15619, 15623, 15627, 15631, 15635, 15639, - 15643, 15647, 15651, 15655, 15659, 15663, 15667, 15671, 15674, 15677, - 15681, 15685, 15689, 15693, 15696, 15700, 0, 15703, 15706, 15710, 15713, - 15717, 0, 15720, 15723, 0, 15727, 15732, 15736, 15741, 15745, 15750, - 15754, 0, 0, 0, 15759, 15763, 15767, 15771, 0, 0, 0, 0, 0, 0, 15775, - 15779, 15782, 15785, 15788, 15791, 15794, 15797, 15800, 15803, 15806, - 15812, 15816, 15820, 15824, 15828, 15832, 15836, 15840, 15844, 15849, - 15853, 15858, 15863, 15869, 15874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15880, 15885, 15890, 15895, 15900, 15905, - 15910, 15915, 15920, 15925, 15930, 15935, 15940, 15945, 15950, 15955, - 15960, 15965, 15970, 15975, 15980, 15985, 15990, 15995, 16000, 16005, - 16010, 16015, 16020, 16025, 16030, 16035, 16040, 16045, 16050, 16055, - 16060, 16065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16070, 16074, 16078, 16082, - 16086, 16090, 16094, 16098, 16102, 16106, 16110, 16114, 16118, 16122, - 16126, 16130, 16134, 16138, 16142, 16146, 16150, 16154, 16158, 16162, - 16166, 16170, 16174, 16178, 16182, 16186, 16190, 16194, 16198, 16202, - 16206, 16210, 16214, 16218, 16222, 16226, 16230, 16234, 16239, 16243, - 16248, 0, 0, 0, 16253, 16257, 16261, 16265, 16269, 16273, 16277, 16281, - 16285, 16289, 16293, 16297, 16301, 16305, 16309, 16313, 16317, 16321, - 16325, 16329, 16333, 16337, 16341, 16345, 16349, 16353, 16357, 16361, - 16365, 16369, 16373, 16377, 16381, 16385, 16389, 16393, 16397, 16401, - 16405, 16409, 16413, 16417, 16421, 16425, 16429, 16433, 16437, 16441, - 16445, 16449, 16453, 16457, 16461, 16465, 16469, 16473, 16477, 16481, - 16485, 16489, 16493, 16497, 16501, 16505, 16509, 16513, 16517, 16521, - 16525, 16529, 16533, 16537, 16541, 16545, 16549, 16553, 16557, 16561, - 16565, 16569, 16573, 16577, 16581, 16585, 16589, 16593, 16597, 16601, - 16605, 16609, 0, 0, 0, 0, 0, 16613, 16617, 16621, 16624, 16628, 16631, - 16635, 16639, 16642, 16646, 16650, 16653, 16657, 16661, 16665, 16669, - 16672, 16676, 16680, 16684, 16688, 16692, 16696, 16699, 16703, 16707, - 16711, 16715, 16719, 16723, 16727, 16731, 16735, 16739, 16743, 16747, - 16751, 16755, 16759, 16763, 16767, 16771, 16775, 16779, 16783, 16787, - 16791, 16795, 16799, 16803, 16807, 16811, 16815, 16819, 16823, 16827, - 16831, 16835, 16839, 16843, 16847, 16851, 16855, 16859, 16863, 16867, - 16871, 16875, 0, 0, 0, 0, 0, 16879, 16883, 16887, 16891, 16895, 16899, - 16903, 16907, 16911, 16915, 16919, 16923, 16927, 16931, 16935, 16939, - 16943, 16947, 16951, 16955, 16959, 16963, 16967, 16971, 16975, 16979, - 16983, 16987, 16991, 16995, 16999, 17003, 17007, 17011, 17015, 17019, - 17023, 17027, 17031, 17035, 17039, 17043, 17047, 17051, 17055, 17059, - 17063, 17067, 17071, 17075, 17079, 17083, 17087, 17091, 17095, 17099, - 17103, 17107, 17111, 17115, 17119, 17123, 17127, 17131, 17135, 17139, - 17143, 17147, 17151, 17155, 17159, 17163, 17167, 17171, 17175, 17179, - 17183, 17187, 17191, 17195, 17199, 17203, 0, 0, 0, 0, 0, 0, 17207, 17210, - 17214, 17218, 17222, 17226, 17230, 17234, 17238, 17242, 17246, 17250, - 17254, 17258, 17262, 17266, 17270, 17274, 17278, 17282, 17286, 17290, - 17294, 17298, 17302, 17305, 17309, 17313, 17317, 17321, 17325, 17329, - 17333, 17337, 17341, 17345, 17349, 17353, 17357, 17361, 17365, 17369, - 17373, 17377, 17381, 17385, 17389, 17393, 17397, 17401, 17405, 17409, - 17413, 17417, 17421, 17425, 17429, 17433, 17437, 17441, 17445, 17449, - 17453, 17457, 17461, 17465, 17469, 17473, 17477, 17481, 17485, 17489, - 17493, 0, 17497, 17501, 17505, 17509, 0, 0, 17513, 17517, 17521, 17525, - 17529, 17533, 17537, 0, 17541, 0, 17545, 17549, 17553, 17557, 0, 0, - 17561, 17565, 17569, 17573, 17577, 17581, 17585, 17589, 17593, 17597, - 17601, 17605, 17609, 17613, 17617, 17621, 17625, 17629, 17633, 17637, - 17641, 17645, 17649, 17652, 17656, 17660, 17664, 17668, 17672, 17676, - 17680, 17684, 17688, 17692, 17696, 17700, 17704, 17708, 17712, 17716, - 17720, 0, 17724, 17728, 17732, 17736, 0, 0, 17740, 17744, 17748, 17752, - 17756, 17760, 17764, 17768, 17772, 17776, 17780, 17784, 17788, 17792, - 17796, 17800, 17804, 17809, 17814, 17819, 17825, 17831, 17836, 17841, - 17847, 17850, 17854, 17858, 17862, 17866, 17870, 17874, 17878, 0, 17882, - 17886, 17890, 17894, 0, 0, 17898, 17902, 17906, 17910, 17914, 17918, - 17922, 0, 17926, 0, 17930, 17934, 17938, 17942, 0, 0, 17946, 17950, - 17954, 17958, 17962, 17966, 17970, 17974, 17978, 17983, 17988, 17993, - 17999, 18005, 18010, 0, 18015, 18019, 18023, 18027, 18031, 18035, 18039, - 18043, 18047, 18051, 18055, 18059, 18063, 18067, 18071, 18075, 18079, - 18082, 18086, 18090, 18094, 18098, 18102, 18106, 18110, 18114, 18118, - 18122, 18126, 18130, 18134, 18138, 18142, 18146, 18150, 18154, 18158, - 18162, 18166, 18170, 18174, 18178, 18182, 18186, 18190, 18194, 18198, - 18202, 18206, 18210, 18214, 18218, 18222, 18226, 18230, 18234, 18238, 0, - 18242, 18246, 18250, 18254, 0, 0, 18258, 18262, 18266, 18270, 18274, - 18278, 18282, 18286, 18290, 18294, 18298, 18302, 18306, 18310, 18314, - 18318, 18322, 18326, 18330, 18334, 18338, 18342, 18346, 18350, 18354, - 18358, 18362, 18366, 18370, 18374, 18378, 18382, 18386, 18390, 18394, - 18398, 18402, 18406, 18410, 18414, 18418, 18422, 18426, 18430, 18434, - 18438, 18442, 18446, 18450, 18454, 18458, 18462, 18466, 18470, 18474, - 18478, 18482, 18486, 18490, 18494, 18498, 18502, 18506, 18510, 18514, - 18518, 18522, 0, 0, 0, 0, 18526, 18531, 18535, 18538, 18542, 18545, - 18548, 18551, 18556, 18560, 18565, 18568, 18571, 18574, 18577, 18580, - 18583, 18586, 18589, 18592, 18596, 18600, 18604, 18608, 18612, 18616, - 18620, 18624, 18628, 18632, 0, 0, 0, 18638, 18644, 18648, 18652, 18656, - 18662, 18666, 18670, 18674, 18680, 18684, 18688, 18692, 18698, 18702, - 18706, 18710, 18716, 18722, 18728, 18736, 18742, 18748, 18754, 18760, - 18766, 0, 0, 0, 0, 0, 0, 18772, 18775, 18778, 18781, 18784, 18787, 18790, - 18794, 18797, 18801, 18805, 18809, 18813, 18817, 18820, 18824, 18828, - 18832, 18836, 18840, 18844, 18848, 18852, 18856, 18860, 18864, 18867, - 18871, 18875, 18879, 18883, 18887, 18891, 18895, 18899, 18903, 18907, - 18911, 18915, 18919, 18923, 18927, 18931, 18935, 18939, 18943, 18946, - 18950, 18954, 18958, 18962, 18966, 18970, 18974, 18978, 18982, 18986, - 18990, 18994, 18998, 19002, 19006, 19010, 19014, 19018, 19022, 19026, - 19030, 19034, 19038, 19042, 19046, 19050, 19054, 19058, 19062, 19066, - 19070, 19074, 19078, 19081, 19085, 19089, 19093, 19097, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 19101, 19104, 19108, 19111, 19115, 19118, 19122, 19128, - 19133, 19137, 19140, 19144, 19148, 19153, 19157, 19162, 19166, 19171, - 19175, 19180, 19184, 19189, 19195, 19199, 19204, 19208, 19213, 19219, - 19223, 19229, 19234, 19238, 19242, 19250, 19258, 19265, 19270, 19275, - 19284, 19291, 19298, 19303, 19309, 19313, 19317, 19321, 19325, 19329, - 19333, 19337, 19341, 19345, 19349, 19355, 19360, 19365, 19369, 19373, - 19377, 19382, 19386, 19391, 19395, 19400, 19404, 19409, 19413, 19418, - 19422, 19427, 19431, 19436, 19442, 19445, 19449, 19453, 19457, 19461, - 19465, 19469, 19472, 19476, 19482, 19487, 19492, 19496, 19500, 19504, - 19509, 19513, 19518, 19522, 19527, 19530, 19534, 19538, 19543, 19547, - 19552, 19556, 19561, 19567, 19570, 19574, 19578, 19582, 19586, 19590, - 19594, 19598, 19602, 19606, 19610, 19616, 19619, 19623, 19627, 19632, - 19636, 19641, 19645, 19650, 19654, 19659, 19663, 19668, 19672, 19677, - 19681, 19686, 19692, 19696, 19700, 19706, 19712, 19718, 19724, 19728, - 19732, 19736, 19740, 19744, 19748, 19754, 19758, 19762, 19766, 19771, - 19775, 19780, 19784, 19789, 19793, 19798, 19802, 19807, 19811, 19816, - 19820, 19825, 19831, 19835, 19841, 19845, 19849, 19853, 19857, 19861, - 19865, 19871, 19874, 19878, 19882, 19887, 19891, 19896, 19900, 19905, - 19909, 19914, 19918, 19923, 19927, 19932, 19936, 19941, 19947, 19950, - 19954, 19958, 19963, 19968, 19972, 19976, 19980, 19984, 19988, 19992, - 19998, 20002, 20006, 20010, 20015, 20019, 20024, 20028, 20033, 20039, - 20042, 20047, 20051, 20055, 20059, 20063, 20067, 20071, 20075, 20081, - 20085, 20089, 20093, 20098, 20102, 20107, 20111, 20116, 20120, 20125, - 20129, 20134, 20138, 20143, 20147, 20152, 20155, 20159, 20163, 20167, - 20171, 20175, 20179, 20183, 20187, 20193, 20197, 20201, 20205, 20210, - 20214, 20219, 20223, 20228, 20232, 20237, 20241, 20246, 20250, 20255, - 20259, 20264, 20270, 20273, 20278, 20282, 20287, 20293, 20299, 20305, - 20311, 20317, 20323, 20329, 20333, 20337, 20341, 20345, 20349, 20353, - 20357, 20361, 20366, 20370, 20375, 20379, 20384, 20388, 20393, 20397, - 20402, 20406, 20411, 20415, 20420, 20424, 20428, 20432, 20436, 20440, - 20444, 20448, 20454, 20457, 20461, 20465, 20470, 20474, 20479, 20483, - 20488, 20492, 20497, 20501, 20506, 20510, 20515, 20519, 20524, 20530, - 20534, 20540, 20545, 20551, 20555, 20561, 20566, 20570, 20574, 20578, - 20582, 20586, 20591, 20595, 20599, 20604, 20608, 20613, 20616, 20620, - 20624, 20628, 20632, 20636, 20640, 20644, 20648, 20652, 20656, 20660, - 20665, 20669, 20673, 20679, 20683, 20689, 20693, 20699, 20703, 20707, - 20711, 20715, 20719, 20724, 20728, 20732, 20736, 20740, 20744, 20748, - 20752, 20756, 20760, 20764, 20770, 20776, 20782, 20788, 20794, 20799, - 20805, 20810, 20815, 20819, 20823, 20827, 20831, 20835, 20839, 20843, - 20847, 20851, 20855, 20859, 20863, 20867, 20872, 20877, 20882, 20887, - 20891, 20895, 20899, 20903, 20907, 20911, 20915, 20919, 20923, 20929, - 20935, 20941, 20947, 20953, 20959, 20965, 20971, 20977, 20981, 20985, - 20989, 20993, 20997, 21001, 21005, 21011, 21017, 21023, 21029, 21035, - 21041, 21047, 21053, 21058, 21063, 21068, 21073, 21078, 21084, 21090, - 21096, 21102, 21108, 21114, 21120, 21126, 21132, 21138, 21144, 21149, - 21155, 21161, 21167, 21172, 21177, 21182, 21187, 21192, 21197, 21202, - 21207, 21212, 21217, 21222, 21227, 21232, 21237, 21242, 21247, 21252, - 21257, 21262, 21267, 21272, 21277, 21282, 21287, 21292, 21297, 21302, - 21307, 21312, 21317, 21322, 21327, 21332, 21337, 21342, 21347, 21352, - 21357, 21362, 21367, 21372, 21377, 21382, 21386, 21391, 21396, 21401, - 21406, 21411, 21416, 21421, 21426, 21431, 21436, 21441, 21446, 21451, - 21456, 21461, 21466, 21471, 21476, 21481, 21486, 21491, 21496, 21501, - 21506, 21511, 21516, 21521, 21526, 21531, 21536, 21540, 21545, 21550, - 21555, 21560, 21565, 21569, 21574, 21580, 21585, 21590, 21595, 21600, - 21606, 21611, 21616, 21621, 21626, 21631, 21636, 21641, 21646, 21651, - 21656, 21661, 21666, 21671, 21676, 21681, 21686, 21691, 21696, 21701, - 21706, 21711, 21716, 21721, 21726, 21731, 21736, 21741, 21746, 21751, - 21756, 21761, 21766, 21771, 21776, 21781, 21786, 21791, 21796, 21801, - 21806, 21811, 21816, 21821, 21826, 21832, 21837, 21842, 21847, 21852, - 21857, 21862, 21867, 21872, 21877, 21882, 21887, 21892, 21897, 21902, - 21907, 21912, 21917, 21922, 21927, 21932, 21937, 21942, 21947, 21952, - 21957, 21962, 21967, 21972, 21977, 21982, 21987, 21992, 21997, 22002, - 22007, 22012, 22017, 22022, 22027, 22031, 22035, 22039, 22043, 22047, - 22051, 22055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22059, 22064, 22069, 22074, - 22079, 22084, 22089, 22094, 22099, 22104, 22109, 22114, 22119, 22124, - 22129, 22134, 22139, 22144, 22149, 22154, 22159, 22164, 22169, 22174, - 22179, 22184, 22189, 22194, 22199, 0, 0, 0, 22205, 22215, 22218, 22225, - 22229, 22233, 22237, 22245, 22249, 22254, 22259, 22264, 22268, 22273, - 22278, 22281, 22285, 22289, 22298, 22302, 22306, 22312, 22315, 22319, - 22326, 22330, 22338, 22343, 22348, 22353, 22358, 22367, 22372, 22376, - 22385, 22388, 22393, 22397, 22403, 22408, 22414, 22421, 22427, 22432, - 22439, 22444, 22448, 22452, 22461, 22466, 22469, 22478, 22483, 22487, - 22491, 22498, 22505, 22510, 22515, 22524, 22528, 22532, 22536, 22543, - 22550, 22554, 22558, 22562, 22566, 22570, 22574, 22578, 22582, 22586, - 22590, 22593, 22598, 22603, 22608, 22612, 22616, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 22620, 22624, 22628, 22632, 22636, 22641, 22646, - 22651, 22656, 22661, 22666, 22671, 22675, 0, 22679, 22684, 22689, 22694, - 22698, 22703, 22708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22713, 22717, - 22721, 22725, 22729, 22734, 22739, 22744, 22749, 22754, 22759, 22764, - 22768, 22772, 22777, 22782, 22787, 22792, 22796, 22801, 22806, 22811, - 22817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22822, 22826, 22830, 22834, 22838, - 22843, 22848, 22853, 22858, 22863, 22868, 22873, 22877, 22881, 22886, - 22891, 22896, 22901, 22905, 22910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 22915, 22919, 22923, 22927, 22931, 22936, 22941, 22946, 22951, 22956, - 22961, 22966, 22970, 0, 22974, 22979, 22984, 0, 22989, 22994, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22999, 23002, 23006, 23010, 23014, 23018, 23022, - 23026, 23030, 23034, 23038, 23042, 23046, 23050, 23054, 23058, 23062, - 23066, 23069, 23073, 23077, 23081, 23085, 23089, 23093, 23097, 23101, - 23105, 23109, 23113, 23117, 23121, 23125, 23128, 23132, 23136, 23142, - 23148, 23154, 23160, 23166, 23172, 23178, 23184, 23190, 23196, 23202, - 23208, 23214, 23220, 23229, 23238, 23244, 23250, 23256, 23261, 23265, - 23270, 23275, 23280, 23284, 23289, 23294, 23299, 23303, 23308, 23312, - 23317, 23322, 23327, 23332, 23336, 23340, 23344, 23348, 23352, 23356, - 23360, 23364, 23368, 23372, 23378, 23382, 23386, 23390, 23394, 23398, - 23406, 23412, 23416, 23422, 23426, 23432, 23436, 0, 0, 23440, 23444, - 23447, 23450, 23453, 23456, 23459, 23462, 23465, 23468, 0, 0, 0, 0, 0, 0, - 23471, 23479, 23487, 23495, 23503, 23511, 23519, 23527, 23535, 23543, 0, - 0, 0, 0, 0, 0, 23551, 23554, 23557, 23560, 23564, 23567, 23572, 23579, - 23587, 23592, 23598, 23601, 23608, 23615, 23622, 0, 23626, 23630, 23633, - 23636, 23639, 23642, 23645, 23648, 23651, 23654, 0, 0, 0, 0, 0, 0, 23657, - 23660, 23663, 23666, 23669, 23672, 23676, 23680, 23684, 23688, 23692, - 23696, 23700, 23704, 23708, 23711, 23715, 23719, 23723, 23727, 23731, - 23735, 23739, 23742, 23746, 23750, 23754, 23757, 23761, 23765, 23769, - 23773, 23777, 23781, 23785, 23789, 23796, 23801, 23806, 23811, 23816, - 23822, 23828, 23834, 23840, 23846, 23852, 23858, 23863, 23869, 23875, - 23881, 23887, 23893, 23898, 23904, 23909, 23915, 23921, 23927, 23933, - 23939, 23944, 23949, 23955, 23961, 23966, 23972, 23977, 23983, 23988, - 23994, 24000, 24006, 24012, 24018, 24024, 24030, 24036, 24042, 24048, - 24054, 24060, 24066, 24071, 24076, 24082, 24088, 0, 0, 0, 0, 0, 0, 0, 0, - 24094, 24103, 24112, 24120, 24128, 24138, 24146, 24155, 24162, 24169, - 24176, 24184, 24192, 24200, 24208, 24216, 24224, 24232, 24240, 24248, - 24256, 24264, 24272, 24280, 24288, 24298, 24308, 24318, 24328, 24338, - 24348, 24358, 24368, 24378, 24388, 24398, 24408, 24418, 24428, 24436, - 24444, 24454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24462, 24467, - 24470, 24474, 24478, 24482, 24486, 24490, 24494, 24498, 24502, 24506, - 24510, 24514, 24518, 24522, 24526, 24530, 24534, 24538, 24542, 24545, - 24548, 24552, 24556, 24560, 24564, 24568, 24572, 0, 0, 0, 24575, 24579, - 24583, 24587, 24592, 24597, 24602, 24607, 24611, 24615, 24619, 24624, 0, - 0, 0, 0, 24629, 24633, 24638, 24643, 24648, 24653, 24658, 24662, 24667, - 24672, 24676, 24680, 0, 0, 0, 0, 24684, 0, 0, 0, 24688, 24692, 24696, - 24700, 24703, 24706, 24709, 24712, 24715, 24718, 24721, 24724, 24727, - 24732, 24738, 24744, 24750, 24756, 24761, 24767, 24773, 24779, 24785, - 24791, 24796, 24802, 24808, 24813, 24819, 24825, 24831, 24837, 24842, - 24847, 24853, 24859, 24864, 24870, 24875, 24881, 24886, 24892, 0, 0, - 24898, 24904, 24910, 24916, 24922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24928, 24935, 24942, 24948, 24955, 24962, 24968, 24975, 24982, 24989, - 24996, 25002, 25009, 25016, 25022, 25029, 25036, 25043, 25050, 25057, - 25064, 25071, 25078, 25084, 25091, 25098, 25104, 25111, 25118, 25125, - 25132, 25139, 25146, 25152, 25159, 25166, 25172, 25179, 25186, 25193, - 25200, 25207, 0, 0, 0, 0, 0, 0, 25214, 25222, 25229, 25236, 25242, 25249, - 25255, 25262, 25268, 25275, 25282, 25289, 25296, 25303, 25310, 25317, - 25324, 25331, 25337, 25344, 25350, 25356, 25363, 25369, 25375, 25381, 0, - 0, 0, 0, 0, 0, 25387, 25393, 25398, 25403, 25408, 25413, 25418, 25423, - 25428, 25433, 0, 0, 0, 0, 25438, 25444, 25450, 25454, 25460, 25466, - 25472, 25478, 25484, 25490, 25496, 25502, 25508, 25514, 25520, 25526, - 25532, 25538, 25544, 25548, 25554, 25560, 25566, 25572, 25578, 25584, - 25590, 25596, 25602, 25608, 25614, 25620, 25626, 25632, 25638, 25642, - 25647, 25652, 25657, 25662, 25667, 25671, 25676, 25681, 25686, 25691, - 25696, 25701, 25706, 25711, 25716, 25720, 25725, 25730, 25735, 25740, - 25744, 25748, 25753, 25758, 25763, 25768, 0, 0, 25774, 25778, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25785, 25790, - 25796, 25802, 25809, 25815, 25820, 25826, 25831, 25838, 25843, 25848, - 25854, 25862, 25867, 25873, 25878, 25885, 25891, 25899, 25907, 25913, - 25919, 25926, 25933, 25938, 25944, 25950, 25955, 25960, 25966, 25974, - 25981, 25986, 25992, 25998, 26004, 26012, 26016, 26022, 26028, 26034, - 26040, 26046, 26052, 26056, 26061, 26065, 26071, 26075, 26079, 26084, - 26088, 26092, 26096, 26100, 26105, 26109, 26113, 26117, 26122, 26126, - 26131, 26135, 26139, 26143, 26147, 26152, 26156, 26161, 26166, 26172, - 26176, 26180, 26184, 26189, 26195, 26202, 26206, 26211, 26216, 26220, - 26225, 26229, 26235, 26242, 26249, 26253, 26257, 26261, 26267, 26272, - 26276, 26281, 26286, 26292, 26297, 26303, 26308, 26314, 26320, 26326, - 26332, 26339, 26346, 26353, 26360, 26367, 26372, 26380, 26389, 26398, - 26407, 26416, 26425, 26434, 26446, 26455, 26464, 26473, 26478, 26483, - 26489, 26497, 26504, 26511, 26518, 26525, 26532, 26540, 26549, 26558, - 26567, 26576, 26585, 26594, 26603, 26612, 26621, 26630, 26639, 26648, - 26657, 26666, 26674, 26682, 26693, 26701, 26711, 26722, 26731, 26739, - 26749, 26758, 26766, 26775, 26781, 26786, 26794, 26799, 26806, 26811, - 26820, 26825, 26830, 26836, 26841, 26846, 26853, 26861, 26870, 26879, - 26884, 26891, 26901, 26909, 26918, 26923, 26929, 26934, 26941, 26946, - 26955, 26960, 26965, 26970, 26977, 26982, 26987, 26996, 27004, 27009, - 27014, 27021, 27028, 27032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27036, - 27044, 27052, 27059, 27066, 27073, 27080, 27088, 27096, 27106, 27116, - 27124, 27132, 27140, 27148, 27157, 27166, 27174, 27182, 27190, 27198, - 27207, 27216, 27225, 27234, 27241, 27248, 27256, 27264, 27274, 27284, - 27292, 27300, 27307, 27314, 27322, 27330, 27338, 27346, 27353, 27360, - 27368, 27376, 27385, 27394, 27402, 27410, 27419, 27428, 27435, 27442, - 27450, 27458, 27467, 27476, 27484, 27492, 27503, 27514, 27523, 27532, - 27540, 27548, 27555, 27562, 27570, 27578, 27586, 27594, 27602, 27610, - 27618, 27626, 27635, 27644, 27652, 27660, 27669, 27678, 27687, 27696, - 27705, 27714, 27723, 27732, 27739, 27746, 27754, 27762, 27770, 27778, - 27786, 27794, 27805, 27816, 27825, 27834, 27842, 27850, 27858, 27866, - 27877, 27888, 27899, 27910, 27922, 27934, 27942, 27950, 27958, 27966, - 27975, 27984, 27992, 28000, 28008, 28016, 28024, 28032, 28039, 28046, - 28055, 28064, 28073, 28082, 28089, 28096, 28104, 28112, 28119, 28126, - 28133, 28140, 28147, 28154, 28162, 28170, 28178, 28186, 28194, 28202, - 28209, 28216, 28224, 28232, 28240, 28248, 28256, 28264, 28273, 28282, - 28291, 28298, 28307, 28316, 28325, 0, 0, 0, 0, 28334, 28341, 28348, - 28356, 28364, 28372, 28380, 28388, 28396, 28406, 28416, 28424, 28432, - 28441, 28450, 28459, 28468, 28477, 28486, 28497, 28508, 28517, 28526, - 28536, 28546, 28553, 28560, 28568, 28576, 28582, 28588, 28596, 28604, - 28612, 28620, 28630, 28640, 28648, 28656, 28665, 28674, 28682, 28690, - 28697, 28704, 28711, 28718, 28726, 28734, 28742, 28750, 28758, 28766, - 28776, 28786, 28794, 28802, 28811, 28820, 28829, 28838, 28847, 28856, - 28867, 28878, 28887, 28896, 28906, 28916, 28923, 28930, 28938, 28946, - 28955, 28964, 28973, 28982, 28993, 29004, 29013, 29022, 29032, 29042, - 29049, 29056, 29064, 29072, 29081, 29090, 29097, 0, 0, 0, 0, 0, 0, 29104, - 29111, 29118, 29126, 29134, 29142, 29150, 29159, 29168, 29175, 29182, - 29190, 29198, 29206, 29214, 29223, 29232, 29240, 29248, 29257, 29266, - 29275, 0, 0, 29284, 29292, 29300, 29309, 29318, 29327, 0, 0, 29336, - 29344, 29352, 29361, 29370, 29379, 29388, 29398, 29408, 29416, 29424, - 29433, 29442, 29451, 29460, 29470, 29480, 29488, 29496, 29505, 29514, - 29523, 29532, 29542, 29552, 29560, 29568, 29577, 29586, 29595, 29604, - 29614, 29624, 29632, 29640, 29649, 29658, 29667, 0, 0, 29676, 29684, - 29692, 29701, 29710, 29719, 0, 0, 29728, 29736, 29744, 29753, 29762, - 29771, 29780, 29790, 0, 29800, 0, 29808, 0, 29817, 0, 29826, 29836, - 29843, 29850, 29858, 29866, 29874, 29882, 29891, 29900, 29907, 29914, - 29922, 29930, 29938, 29946, 29955, 29964, 29970, 29976, 29983, 29990, - 29997, 30004, 30011, 30018, 30025, 30032, 30039, 30046, 30052, 0, 0, - 30058, 30067, 30076, 30088, 30100, 30112, 30124, 30136, 30148, 30157, - 30166, 30178, 30190, 30202, 30214, 30226, 30238, 30248, 30258, 30271, - 30284, 30297, 30310, 30323, 30336, 30346, 30356, 30369, 30382, 30395, - 30408, 30421, 30434, 30443, 30452, 30464, 30476, 30488, 30500, 30512, - 30524, 30533, 30542, 30554, 30566, 30578, 30590, 30602, 30614, 30621, - 30627, 30637, 30644, 0, 30654, 30661, 30671, 30678, 30684, 30690, 30696, - 30703, 30706, 30709, 30712, 30715, 30721, 30732, 30740, 0, 30751, 30759, - 30770, 30777, 30784, 30791, 30798, 30806, 30810, 30814, 30819, 30827, - 30834, 30844, 0, 0, 30854, 30862, 30873, 30881, 30888, 30895, 0, 30902, - 30906, 30910, 30915, 30923, 30930, 30940, 30950, 30958, 30966, 30974, - 30985, 30993, 31000, 31007, 31014, 31022, 31027, 31032, 0, 0, 31034, - 31044, 31051, 0, 31061, 31068, 31078, 31085, 31092, 31098, 31104, 31111, - 31113, 0, 31116, 31120, 31124, 31128, 31132, 31136, 31140, 31144, 31148, - 31152, 31156, 31160, 31166, 31172, 31178, 31181, 31184, 31186, 31190, - 31194, 31198, 31202, 31204, 31208, 31212, 31218, 31224, 31231, 31238, - 31243, 31248, 31254, 31260, 31262, 31265, 31267, 31271, 31276, 31280, - 31283, 31287, 31291, 31295, 31299, 31303, 31309, 31313, 31317, 31323, - 31328, 31335, 31337, 31340, 31344, 31347, 31351, 31356, 31358, 31366, - 31374, 31377, 31381, 31383, 31385, 31387, 31390, 31396, 31398, 31402, - 31406, 31413, 31420, 31424, 31429, 31434, 31439, 31443, 31447, 31451, - 31454, 31457, 31461, 31468, 31473, 31477, 31481, 31486, 31490, 31494, - 31499, 31504, 31508, 31512, 31516, 31518, 31523, 31528, 31532, 31536, - 31540, 0, 0, 0, 0, 0, 0, 31544, 31550, 31556, 31563, 31570, 31575, 31580, - 31584, 0, 0, 31590, 31593, 31596, 31599, 31602, 31605, 31608, 31613, - 31617, 31622, 31627, 31632, 31638, 31642, 31645, 31648, 31651, 31654, - 31657, 31660, 31663, 31666, 31669, 31674, 31678, 31683, 31688, 0, 31693, - 31699, 31705, 31711, 31717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31724, - 31727, 31730, 31733, 31738, 31741, 31744, 31747, 31750, 31753, 31756, - 31760, 31763, 31766, 31769, 31772, 31775, 31780, 31783, 31786, 31789, - 31792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31795, 31799, 31803, 31810, 31818, 31823, 31828, 31832, - 31836, 31841, 31848, 31855, 31859, 31864, 31869, 31874, 31879, 31885, - 31890, 31895, 31900, 31909, 31916, 31923, 31927, 31932, 31938, 31943, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31950, 31954, - 31961, 31965, 31969, 31974, 31978, 31982, 31986, 31988, 31992, 31995, - 31998, 32002, 32005, 32009, 32018, 32021, 32025, 32028, 32031, 32037, - 32040, 32043, 32049, 32052, 32055, 32059, 32062, 32066, 32069, 32073, - 32075, 32078, 32081, 32085, 32087, 32091, 32094, 32097, 32102, 32107, - 32113, 32116, 32119, 32122, 32127, 32130, 32133, 32136, 32140, 32144, - 32147, 32150, 32152, 32155, 32158, 32161, 32165, 32170, 32173, 32177, - 32181, 32185, 32189, 32194, 32198, 32202, 32206, 32211, 32215, 32219, - 32223, 32227, 32231, 32235, 32238, 0, 0, 0, 0, 0, 0, 32241, 32249, 32256, - 32264, 32271, 32278, 32286, 32294, 32302, 32310, 32317, 32325, 32333, - 32338, 32342, 32346, 32350, 32354, 32358, 32362, 32366, 32370, 32374, - 32379, 32384, 32389, 32394, 32401, 32408, 32415, 32420, 32425, 32430, - 32435, 32440, 32445, 32450, 32455, 32460, 32466, 32472, 32478, 32484, - 32492, 32500, 32508, 32518, 32525, 32532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32540, 32542, 32545, 32547, 32550, 32553, 32556, 32561, 32566, - 32571, 32576, 32580, 32584, 32588, 32592, 32597, 32603, 32608, 32614, - 32619, 32624, 32629, 32635, 32640, 32646, 32652, 32656, 32660, 32665, - 32670, 32675, 32680, 32685, 32693, 32701, 32709, 32717, 32724, 32732, - 32739, 32746, 32754, 32765, 32771, 32777, 32783, 32789, 32796, 32803, - 32809, 32815, 32822, 32829, 32835, 32843, 32849, 32854, 32860, 32865, - 32871, 32878, 32885, 32890, 32896, 32901, 32904, 32908, 32911, 32915, - 32919, 32923, 32929, 32935, 32941, 32947, 32951, 32955, 32959, 32963, - 32969, 32975, 32979, 32984, 32988, 32993, 32997, 33001, 33004, 33008, - 33011, 33015, 33022, 33030, 33041, 33052, 33057, 33066, 33073, 33081, - 33089, 33093, 33099, 33107, 33111, 33116, 33121, 33127, 33133, 33139, - 33146, 33150, 33154, 33159, 33162, 33164, 33168, 33172, 33179, 33183, - 33185, 33187, 33191, 33198, 33203, 33209, 33218, 33225, 33230, 33234, - 33238, 33242, 33245, 33248, 33251, 33255, 33259, 33263, 33267, 33271, - 33274, 33278, 33282, 33285, 33287, 33290, 33292, 33296, 33300, 33302, - 33307, 33310, 33314, 33318, 33322, 33324, 33326, 33328, 33331, 33335, - 33339, 33343, 33347, 33351, 33357, 33363, 33365, 33367, 33369, 33371, - 33374, 33376, 33380, 33382, 33386, 33388, 33393, 33397, 33401, 33403, - 33406, 33410, 33415, 33419, 33428, 33438, 33442, 33447, 33453, 33456, - 33460, 33463, 33468, 33472, 33478, 33482, 33493, 33501, 33505, 33509, - 33515, 33519, 33522, 33524, 33527, 33531, 33535, 33541, 33545, 33549, - 33552, 33555, 33559, 33564, 33569, 33574, 33580, 33586, 33593, 33600, - 33604, 33608, 33610, 33614, 33617, 33620, 33628, 33636, 33642, 33648, - 33657, 33666, 33671, 33676, 33684, 33692, 33694, 33696, 33701, 33706, - 33712, 33718, 33723, 33728, 33732, 33736, 33742, 33748, 33754, 33760, - 33770, 33780, 33787, 33794, 33796, 33800, 33804, 33809, 33814, 33821, - 33828, 33831, 33834, 33837, 33840, 33843, 33848, 33852, 33857, 33862, - 33865, 33868, 33872, 33876, 33880, 33885, 33888, 33891, 33894, 33897, - 33899, 33901, 33903, 33905, 33913, 33921, 33926, 33929, 33934, 33944, - 33950, 33956, 33962, 33970, 33978, 33989, 33993, 33997, 33999, 34005, - 34007, 34009, 34011, 34013, 34018, 34021, 34027, 34033, 34037, 34041, - 34045, 34048, 34052, 34056, 34058, 34067, 34076, 34081, 34086, 34091, - 34097, 34103, 34106, 34109, 34112, 34115, 34117, 34122, 34127, 34132, - 34138, 34144, 34151, 34158, 34163, 34168, 34173, 34178, 34186, 34194, - 34202, 34210, 34218, 34226, 34234, 34242, 34250, 34258, 34265, 34276, - 34285, 34299, 34302, 34307, 34313, 34319, 34326, 34340, 34355, 34361, - 34367, 34374, 34380, 34388, 34394, 34407, 34421, 34426, 34432, 34439, - 34442, 34445, 34447, 34450, 34453, 34455, 34457, 34461, 34464, 34467, - 34470, 34473, 34478, 34483, 34488, 34493, 34496, 34499, 34501, 34503, - 34505, 34509, 34513, 34517, 34523, 34526, 34528, 34530, 34535, 34540, - 34545, 34550, 34555, 34560, 34562, 34564, 34573, 34577, 34583, 34592, - 34594, 34598, 34602, 34609, 34613, 34615, 34619, 34621, 34625, 34629, - 34633, 34635, 34637, 34639, 34644, 34651, 34658, 34665, 34672, 34679, - 34686, 34692, 34698, 34704, 34710, 34717, 34724, 34731, 34738, 34744, - 34750, 34757, 34764, 34770, 34778, 34785, 34793, 34800, 34808, 34815, - 34823, 34831, 34838, 34846, 34853, 34861, 34868, 34876, 34883, 34890, - 34897, 34904, 34910, 34918, 34925, 34931, 34938, 34945, 34951, 34957, - 34963, 34968, 34976, 34984, 34990, 34996, 35002, 35008, 35013, 35019, - 35026, 35034, 35041, 35048, 35055, 35060, 35065, 35070, 35076, 35083, - 35090, 35096, 35101, 35105, 35113, 35119, 35122, 35130, 35133, 35138, - 35143, 35146, 35149, 35157, 35160, 35165, 35168, 35175, 35180, 35187, - 35190, 35193, 35196, 35201, 35206, 35209, 35212, 35220, 35223, 35228, - 35235, 35239, 35243, 35248, 35253, 35258, 35263, 35268, 35273, 35278, - 35283, 35290, 35296, 35303, 35310, 35316, 35323, 35330, 35339, 35346, - 35352, 35359, 35368, 35375, 35379, 35384, 35395, 35406, 35410, 35414, - 35418, 35422, 35433, 35437, 35442, 35447, 35452, 35457, 35462, 35467, - 35476, 35485, 35493, 35503, 35513, 35521, 35531, 35541, 35549, 35559, - 35569, 35577, 35585, 35595, 35605, 35608, 35611, 35614, 35619, 35623, - 35630, 35638, 35646, 35655, 35662, 35666, 35670, 35674, 35678, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35680, 35684, 35691, 35698, 35705, 35712, - 35716, 35720, 35724, 35728, 35733, 35739, 35744, 35750, 35756, 35762, - 35768, 35776, 35783, 35790, 35797, 35804, 35810, 35816, 35825, 35829, - 35836, 35840, 35844, 35850, 35856, 35862, 35868, 35872, 35876, 35879, - 35883, 35887, 35894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35901, 35904, 35908, 35912, 35918, 35924, 35930, - 35938, 35945, 35949, 35957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35962, 35965, 35968, 35971, 35974, 35977, 35980, 35983, - 35986, 35989, 35993, 35997, 36001, 36005, 36009, 36013, 36017, 36021, - 36025, 36029, 36033, 36036, 36039, 36042, 36045, 36048, 36051, 36054, - 36057, 36060, 36064, 36068, 36072, 36076, 36080, 36084, 36088, 36092, - 36096, 36100, 36104, 36110, 36115, 36120, 36126, 36132, 36138, 36144, - 36150, 36156, 36162, 36168, 36174, 36180, 36186, 36192, 36198, 36204, - 36210, 36216, 36222, 36227, 36232, 36238, 36243, 36248, 36254, 36259, - 36264, 36269, 36274, 36280, 36285, 36290, 36295, 36300, 36305, 36311, - 36316, 36321, 36326, 36331, 36336, 36342, 36347, 36353, 36359, 36364, - 36369, 36375, 36380, 36385, 36391, 36396, 36401, 36406, 36411, 36417, - 36422, 36427, 36432, 36437, 36442, 36448, 36453, 36458, 36463, 36468, - 36473, 36479, 36484, 36490, 36496, 36501, 36506, 36512, 36517, 36522, - 36528, 36533, 36538, 36543, 36548, 36554, 36559, 36564, 36569, 36574, - 36579, 36585, 36590, 36595, 36600, 36605, 36610, 36616, 36621, 36627, - 36633, 36637, 36643, 36649, 36655, 36661, 36667, 36673, 36679, 36685, - 36691, 36697, 36701, 36705, 36709, 36713, 36717, 36721, 36725, 36729, - 36733, 36738, 36744, 36749, 36754, 36759, 36764, 36773, 36782, 36791, - 36800, 36809, 36818, 36827, 36836, 36842, 36850, 36858, 36864, 36871, - 36879, 36887, 36894, 36900, 36908, 36916, 36922, 36929, 36937, 36945, - 36952, 36958, 36966, 36975, 36984, 36992, 37001, 37010, 37016, 37023, - 37031, 37040, 37049, 37057, 37066, 37075, 37082, 37089, 37098, 37107, - 37115, 37123, 37132, 37141, 37148, 37155, 37164, 37173, 37181, 37189, - 37198, 37207, 37214, 37221, 37230, 37239, 37247, 37256, 37265, 37273, - 37283, 37293, 37303, 37313, 37322, 37331, 37340, 37349, 37356, 37364, - 37372, 37380, 37388, 37393, 37398, 37407, 37415, 37421, 37430, 37438, - 37445, 37454, 37462, 37468, 37477, 37485, 37492, 37501, 37509, 37515, - 37524, 37532, 37539, 37548, 37556, 37563, 37572, 37580, 37587, 37596, - 37604, 37611, 37619, 37628, 37637, 37645, 37656, 37666, 37673, 37678, - 37683, 37687, 37692, 37697, 37702, 37706, 37711, 37718, 37726, 37733, - 37741, 37745, 37752, 37759, 37765, 37769, 37776, 37782, 37789, 37793, - 37800, 37806, 37813, 37817, 37823, 37830, 37837, 37841, 37844, 37848, - 37852, 37859, 37866, 37871, 37875, 37880, 37890, 37897, 37908, 37918, - 37922, 37930, 37940, 37943, 37946, 37953, 37961, 37966, 37971, 37979, - 37988, 37997, 38005, 38009, 38013, 38016, 38019, 38023, 38027, 38030, - 38033, 38038, 38043, 38049, 38055, 38060, 38065, 38071, 38077, 38082, - 38087, 38092, 38097, 38103, 38109, 38114, 38119, 38125, 38131, 38136, - 38141, 38144, 38147, 38156, 38158, 38160, 38163, 38167, 38172, 38174, - 38177, 38183, 38189, 38195, 38201, 38209, 38221, 38226, 38231, 38235, - 38240, 38247, 38254, 38262, 38270, 38278, 38286, 38290, 38294, 38299, - 38304, 38309, 38314, 38317, 38323, 38329, 38338, 38347, 38355, 38363, - 38372, 38381, 38385, 38392, 38399, 38406, 38413, 38420, 38427, 38434, - 38441, 38445, 38449, 38453, 38458, 38463, 38469, 38475, 38479, 38485, - 38487, 38489, 38491, 38493, 38496, 38499, 38501, 38503, 38505, 38509, - 38513, 38515, 38517, 38520, 38523, 38527, 38533, 38538, 38540, 38547, - 38551, 38556, 38561, 38563, 38572, 38578, 38584, 38590, 38596, 38602, - 38608, 38613, 38616, 38619, 38622, 38624, 38626, 38630, 38634, 38639, - 38644, 38649, 38652, 38656, 38661, 38664, 38668, 38673, 38678, 38683, - 38688, 38693, 38698, 38703, 38708, 38713, 38718, 38723, 38728, 38734, - 38740, 38746, 38748, 38751, 38753, 38756, 38758, 38760, 38762, 38764, - 38766, 38768, 38770, 38772, 38774, 38776, 38778, 38780, 38782, 38784, - 38786, 38788, 38790, 38795, 38800, 38805, 38810, 38815, 38820, 38825, - 38830, 38835, 38840, 38845, 38850, 38855, 38860, 38865, 38870, 38875, - 38880, 38885, 38890, 38894, 38898, 38902, 38908, 38914, 38919, 38924, - 38929, 38934, 38939, 38944, 38952, 38960, 38968, 38976, 38984, 38992, - 39000, 39008, 39014, 39019, 39024, 39029, 39032, 39036, 39040, 39044, - 39048, 39052, 39056, 39061, 39067, 39073, 39080, 39085, 39090, 39097, - 39104, 39111, 39118, 39121, 39124, 39129, 39131, 39135, 39140, 39142, - 39144, 39146, 39148, 39153, 39156, 0, 0, 0, 39158, 39161, 39165, 39170, - 39175, 39183, 39189, 39195, 39207, 39214, 39221, 39226, 39231, 39237, - 39240, 39243, 39248, 39250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39254, 39259, 39262, - 39267, 0, 39270, 39275, 39279, 39281, 0, 0, 39283, 39287, 39291, 39295, - 39297, 39301, 39304, 39307, 39310, 39314, 39317, 39321, 39324, 39328, - 39333, 39337, 39343, 39350, 39353, 39359, 39364, 39368, 39373, 39379, - 39385, 39392, 39398, 39405, 0, 39412, 39419, 39423, 39430, 39436, 39441, - 39447, 39451, 39456, 39459, 39465, 39471, 39478, 39486, 39493, 39502, - 39512, 39519, 39525, 39529, 39537, 39542, 39551, 39554, 39557, 39566, - 39577, 39584, 39586, 39592, 39597, 39599, 39602, 39606, 39614, 0, 39623, - 0, 39628, 39635, 39642, 39649, 0, 0, 0, 39656, 0, 39663, 39666, 39670, - 39673, 39684, 39694, 39704, 0, 0, 39713, 39722, 39728, 39736, 39740, - 39748, 39752, 39760, 39767, 39774, 39783, 39792, 39801, 39810, 39819, - 39828, 39836, 39844, 39854, 39864, 39873, 39882, 39889, 39896, 39903, - 39910, 39917, 39924, 39931, 39938, 39945, 39953, 39959, 39965, 39971, - 39977, 39983, 39989, 39995, 40001, 40007, 40014, 40022, 40030, 40038, - 40046, 40054, 40062, 40070, 40078, 40086, 40095, 0, 0, 0, 40100, 40106, - 40109, 40115, 40121, 40126, 40130, 40135, 40141, 40148, 40151, 40158, - 40165, 40169, 40178, 40187, 40192, 40198, 40203, 40208, 40215, 40222, - 40229, 40236, 0, 40244, 40252, 40257, 40261, 40268, 40272, 40279, 40287, - 40292, 40300, 40304, 40309, 40313, 40318, 0, 40322, 40327, 40336, 40338, - 40342, 40346, 40353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40360, 40368, 40372, - 40379, 40386, 40393, 40398, 40403, 40409, 40414, 40419, 40425, 40430, - 40433, 40437, 40441, 40447, 40456, 40461, 40470, 40479, 40485, 40491, - 40496, 40501, 40505, 40509, 40514, 0, 0, 0, 0, 40519, 40524, 40529, - 40535, 40541, 40547, 40550, 40553, 40557, 40561, 40565, 40570, 40576, - 40582, 40589, 40596, 40601, 40605, 40609, 40613, 40617, 40621, 40625, - 40629, 40633, 40637, 40641, 40645, 40649, 40653, 40657, 40661, 40665, - 40669, 40673, 40677, 40681, 40685, 40689, 40693, 40697, 40701, 40705, - 40709, 40713, 40717, 40721, 40725, 40729, 40733, 40737, 40741, 40745, - 40749, 40753, 40757, 40761, 40765, 40769, 40773, 40777, 40781, 40785, - 40789, 40793, 40797, 40801, 40805, 40809, 40813, 40817, 40821, 40825, - 40829, 40833, 40837, 40841, 40845, 40849, 40853, 40857, 40861, 40865, - 40869, 40873, 40877, 40881, 40885, 40889, 40893, 40897, 40901, 40905, - 40909, 40913, 40917, 40921, 40925, 40929, 40933, 40937, 40941, 40945, - 40949, 40953, 40957, 40961, 40965, 40969, 40973, 40977, 40981, 40985, - 40989, 40993, 40997, 41001, 41005, 41009, 41013, 41017, 41021, 41025, - 41029, 41033, 41037, 41041, 41045, 41049, 41053, 41057, 41061, 41065, - 41069, 41073, 41077, 41081, 41085, 41089, 41093, 41097, 41101, 41105, - 41109, 41113, 41117, 41121, 41125, 41129, 41133, 41137, 41141, 41145, - 41149, 41153, 41157, 41161, 41165, 41169, 41173, 41177, 41181, 41185, - 41189, 41193, 41197, 41201, 41205, 41209, 41213, 41217, 41221, 41225, - 41229, 41233, 41237, 41241, 41245, 41249, 41253, 41257, 41261, 41265, - 41269, 41273, 41277, 41281, 41285, 41289, 41293, 41297, 41301, 41305, - 41309, 41313, 41317, 41321, 41325, 41329, 41333, 41337, 41341, 41345, - 41349, 41353, 41357, 41361, 41365, 41369, 41373, 41377, 41381, 41385, - 41389, 41393, 41397, 41401, 41405, 41409, 41413, 41417, 41421, 41425, - 41429, 41433, 41437, 41441, 41445, 41449, 41453, 41457, 41461, 41465, - 41469, 41473, 41477, 41481, 41485, 41489, 41493, 41497, 41501, 41505, - 41509, 41513, 41517, 41521, 41525, 41529, 41533, 41537, 41541, 41545, - 41549, 41553, 41557, 41561, 41565, 41569, 41573, 41577, 41581, 41585, - 41589, 41593, 41597, 41601, 41605, 41609, 41613, 41617, 41621, 41625, - 41632, 41640, 41646, 41652, 41659, 41666, 41672, 41678, 41684, 41690, - 41695, 41700, 41705, 41710, 41716, 41722, 41730, 41737, 41742, 41747, - 41755, 41764, 41771, 41781, 41792, 41795, 41798, 41802, 41806, 41812, - 41818, 41828, 41838, 41848, 41858, 41865, 41872, 41879, 41886, 41897, - 41908, 41919, 41930, 41940, 41950, 41962, 41974, 41985, 41996, 42008, - 42020, 42028, 42038, 42048, 42059, 42070, 42077, 42084, 42091, 42098, - 42108, 42118, 42125, 42132, 42138, 42144, 42151, 42158, 42165, 42171, - 42177, 42182, 42190, 42200, 42208, 42216, 42224, 42232, 42240, 42248, - 42256, 42264, 42271, 42278, 42286, 42294, 42301, 42308, 42316, 42324, - 42332, 42340, 42349, 42358, 42366, 42374, 42383, 42392, 42404, 42418, - 42430, 42444, 42456, 42468, 42480, 42492, 42501, 42511, 42520, 42530, - 42544, 42558, 42566, 42572, 42579, 42586, 42593, 42600, 42605, 42611, - 42616, 42621, 42627, 42632, 42637, 42642, 42647, 42652, 42659, 42664, - 42671, 42676, 42681, 42685, 42689, 42696, 42703, 42710, 42717, 42724, - 42731, 42744, 42757, 42770, 42783, 42790, 42797, 42803, 42809, 42816, - 42823, 42830, 42837, 42841, 42846, 42853, 42860, 42867, 42873, 42877, - 42884, 42891, 42894, 42897, 42901, 42906, 42913, 42920, 42938, 42957, - 42975, 42994, 43013, 43032, 43051, 43070, 43075, 43082, 43090, 43098, - 43106, 43110, 43113, 43116, 43121, 43124, 43142, 43147, 43153, 43159, - 43163, 43166, 43169, 43172, 43180, 43190, 43198, 43206, 43210, 43215, - 43219, 43224, 43229, 43234, 43240, 43249, 43256, 43263, 43271, 43278, - 43285, 43288, 43295, 43302, 43305, 43308, 43313, 43318, 43324, 43330, - 43334, 43340, 43347, 43351, 43357, 43361, 43365, 43373, 43385, 43393, - 43397, 43399, 43408, 43417, 43423, 43426, 43431, 43436, 43441, 43446, - 43451, 43456, 43461, 43466, 43468, 43474, 43479, 43486, 43490, 43496, - 43499, 43503, 43509, 43515, 43517, 43519, 43525, 43532, 43539, 43548, - 43557, 43564, 43571, 43577, 43583, 43589, 43594, 43599, 43605, 43611, - 43616, 43623, 43627, 43631, 43644, 43657, 43668, 43677, 43683, 43690, - 43696, 43701, 43706, 43711, 43716, 43718, 43725, 43732, 43739, 43746, - 43753, 43761, 43768, 43774, 43781, 43788, 43795, 43802, 43808, 43816, - 43824, 43833, 43842, 43849, 43855, 43861, 43870, 43874, 43883, 43892, - 43900, 43908, 43912, 43919, 43926, 43933, 43937, 43943, 43950, 43955, - 43960, 43966, 43971, 43976, 43983, 43990, 43995, 44000, 44008, 44016, - 44026, 44036, 44043, 44050, 44054, 44058, 44070, 44076, 44082, 44087, - 44092, 44099, 44106, 44112, 44118, 44127, 44135, 44143, 44150, 44157, - 44164, 44170, 44177, 44183, 44190, 44197, 44204, 44211, 44217, 44222, - 44231, 44241, 44248, 44257, 44263, 44268, 44273, 44281, 44287, 44294, - 44301, 44309, 44314, 44321, 44328, 44339, 44346, 44352, 44358, 44365, - 44372, 44379, 44386, 44397, 44408, 44418, 44428, 44439, 44451, 44456, - 44461, 44469, 44477, 44483, 44489, 44498, 44507, 44515, 44523, 44531, - 44539, 44549, 44559, 44573, 44587, 44594, 44601, 44612, 44623, 44630, - 44637, 44646, 44655, 44660, 44665, 44674, 44683, 44688, 44693, 44701, - 44707, 44713, 44721, 44729, 44742, 44755, 44759, 44763, 44770, 44777, - 44784, 44792, 44800, 44808, 44816, 44822, 44828, 44834, 44840, 44847, - 44854, 44862, 44870, 44873, 44876, 44881, 44886, 44893, 44900, 44907, - 44914, 44923, 44932, 44939, 44946, 44954, 44962, 44970, 44978, 44985, - 44992, 44999, 45006, 45010, 45014, 45021, 45028, 45033, 45038, 45043, - 45048, 45054, 45068, 45075, 45082, 45086, 45088, 45090, 45095, 45100, - 45105, 45109, 45117, 45124, 45131, 45139, 45151, 45159, 45167, 45178, - 45182, 45186, 45191, 45197, 45208, 45214, 45220, 45226, 45231, 45238, - 45247, 45255, 45261, 45267, 45273, 45282, 45291, 45299, 45308, 45313, - 45316, 45321, 45327, 45333, 45339, 45345, 45349, 45352, 45356, 45360, - 45366, 45372, 45378, 45384, 45388, 45392, 45399, 45406, 45413, 45420, - 45427, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45434, 45439, 45444, 45449, - 45454, 45459, 45464, 45469, 45474, 45479, 45484, 45490, 45494, 45499, - 45504, 45509, 45514, 45519, 45524, 45529, 45534, 45539, 45544, 45549, - 45554, 45559, 45564, 45569, 45574, 45579, 45584, 45589, 45594, 45599, - 45604, 45610, 45615, 45621, 45630, 45635, 45643, 45650, 45659, 45664, - 45669, 45674, 45680, 0, 45687, 45692, 45697, 45702, 45707, 45712, 45717, - 45722, 45727, 45732, 45737, 45743, 45747, 45752, 45757, 45762, 45767, - 45772, 45777, 45782, 45787, 45792, 45797, 45802, 45807, 45812, 45817, - 45822, 45827, 45832, 45837, 45842, 45847, 45852, 45857, 45863, 45868, - 45874, 45883, 45888, 45896, 45903, 45912, 45917, 45922, 45927, 45933, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 45940, 45945, 45950, 45955, 45960, 45965, 45970, - 45975, 45980, 45985, 45990, 45995, 46000, 46005, 46010, 46015, 46020, - 46025, 46030, 46035, 46040, 46045, 46050, 46055, 46060, 46065, 46070, - 46075, 46080, 46085, 46090, 46094, 46098, 46103, 46108, 46113, 46118, - 46123, 46128, 46133, 46138, 46143, 46148, 46153, 46158, 46163, 46168, - 46173, 46178, 46183, 46188, 46195, 46202, 46209, 46216, 46223, 46230, - 46237, 46244, 46251, 46258, 46265, 46272, 46279, 46286, 46291, 46296, - 46303, 46310, 46317, 46324, 46331, 46338, 46345, 46352, 46359, 46366, - 46373, 46380, 46386, 46392, 46398, 46404, 46411, 46418, 46425, 46432, - 46439, 46446, 46453, 46460, 46467, 46474, 46482, 46490, 46498, 46506, - 46514, 46522, 46530, 46538, 46542, 46548, 46554, 46558, 46564, 46570, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46576, 46583, 46592, 46601, 46609, - 46616, 46620, 46625, 46630, 46635, 46640, 46645, 46650, 46655, 46660, - 46665, 46670, 46675, 46680, 46685, 46690, 46695, 46700, 46705, 46710, - 46715, 46720, 46725, 46730, 46735, 46740, 46745, 46750, 46755, 46760, - 46765, 46770, 46775, 46780, 46785, 46790, 46795, 46800, 46805, 46810, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 46815, 46818, 46822, 46826, 46830, 46834, - 46842, 46846, 46850, 46854, 46858, 46862, 46866, 46870, 46874, 46880, - 46884, 46888, 46896, 46902, 46906, 46910, 46914, 46920, 46924, 46930, - 46934, 46938, 46944, 46950, 46954, 46958, 46962, 46968, 46974, 46978, - 46982, 46986, 46990, 46994, 47000, 47006, 47010, 47014, 47018, 47022, - 47026, 47030, 47034, 47038, 47042, 47046, 47050, 47056, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47066, - 47070, 47074, 47078, 47082, 47086, 47090, 47094, 47098, 47102, 47106, - 47112, 47116, 47120, 47124, 47128, 47132, 47136, 47140, 47144, 47148, - 47152, 47156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47160, 47164, 47168, 47172, - 47176, 47180, 47184, 0, 47188, 47192, 47196, 47200, 47204, 47208, 47212, - 0, 47216, 47220, 47224, 47228, 47232, 47236, 47240, 0, 47244, 47248, - 47252, 47256, 47260, 47264, 47268, 0, 47272, 47276, 47280, 47284, 47288, - 47292, 47296, 0, 47300, 47304, 47308, 47312, 47316, 47320, 47324, 0, - 47328, 47332, 47336, 47340, 47344, 47348, 47352, 0, 47356, 47360, 47364, - 47368, 47372, 47376, 47380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47384, 47390, - 47398, 47402, 47406, 47412, 47418, 47424, 47432, 47438, 47442, 47446, - 47450, 47456, 47462, 47466, 47468, 47472, 47477, 47479, 47483, 47487, - 47491, 47497, 0, 0, 0, 0, 47502, 47507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47512, 47516, 47520, 47525, - 47530, 47535, 47539, 47543, 47547, 47552, 47557, 47561, 47565, 47569, - 47573, 47578, 47583, 47588, 47593, 47597, 47601, 47606, 47611, 47616, - 47621, 47625, 0, 47629, 47633, 47637, 47641, 47645, 47649, 47653, 47658, - 47663, 47667, 47672, 47677, 47686, 47690, 47694, 47698, 47705, 47709, - 47714, 47719, 47723, 47727, 47733, 47738, 47743, 47748, 47753, 47757, - 47761, 47765, 47769, 47773, 47778, 47783, 47787, 47791, 47796, 47801, - 47806, 47810, 47814, 47819, 47824, 47830, 47836, 47840, 47846, 47852, - 47856, 47862, 47868, 47873, 47878, 47882, 47888, 47892, 47896, 47902, - 47908, 47913, 47918, 47922, 47926, 47934, 47940, 47946, 47952, 47957, - 47962, 47967, 47973, 47977, 47983, 47987, 47991, 47997, 48003, 48009, - 48015, 48021, 48027, 48033, 48039, 48045, 48051, 48057, 48063, 48067, - 48073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48079, 48082, 48086, 48090, - 48094, 48098, 48101, 48104, 48108, 48112, 48116, 48120, 48123, 48128, - 48132, 48136, 48140, 48146, 48150, 48154, 48158, 48162, 48169, 48175, - 48179, 48183, 48187, 48191, 48195, 48199, 48203, 48207, 48211, 48215, - 48219, 48225, 48229, 48233, 48237, 48241, 48245, 48249, 48253, 48257, - 48261, 48265, 48269, 48273, 48277, 48281, 48285, 48289, 48295, 48301, - 48306, 48311, 48315, 48319, 48323, 48327, 48331, 48335, 48339, 48343, - 48347, 48351, 48355, 48359, 48363, 48367, 48371, 48375, 48379, 48383, - 48387, 48391, 48395, 48398, 48402, 48406, 48412, 48416, 48420, 48424, - 48428, 48432, 48436, 48440, 48444, 48448, 48455, 48459, 48463, 48467, - 48471, 48475, 48479, 48483, 48487, 48491, 48495, 48499, 48503, 48510, - 48514, 48520, 48524, 48528, 48532, 48536, 48540, 48543, 48547, 48551, - 48555, 48559, 48563, 48567, 48571, 48575, 48579, 48583, 48587, 48591, - 48595, 48599, 48603, 48607, 48611, 48615, 48619, 48623, 48627, 48631, - 48635, 48639, 48643, 48647, 48651, 48655, 48659, 48663, 48667, 48671, - 48677, 48681, 48685, 48689, 48693, 48697, 48701, 48705, 48709, 48713, - 48717, 48721, 48725, 48729, 48733, 48737, 48741, 48745, 48749, 48753, - 48757, 48761, 48765, 48769, 48773, 48777, 48781, 48785, 48793, 48797, - 48801, 48805, 48809, 48813, 48819, 48823, 48827, 48831, 48835, 48839, - 48843, 48847, 48851, 48855, 48859, 48863, 48867, 48871, 48877, 48881, - 48885, 48889, 48893, 48897, 48901, 48905, 48909, 48913, 48917, 48921, - 48925, 48929, 48933, 48937, 48941, 48945, 48949, 48953, 48957, 48961, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 48965, 48972, 48979, 48989, 48999, 49007, 49016, 49025, 49035, 49046, - 49056, 49067, 0, 0, 0, 0, 49073, 49076, 49079, 49083, 49086, 49093, - 49097, 49101, 49105, 49108, 49111, 49115, 49119, 49123, 49127, 49132, - 49137, 49142, 49147, 49150, 49153, 49159, 49165, 49170, 49175, 49182, - 49189, 49193, 49197, 49201, 49208, 49214, 49221, 49226, 49230, 49234, - 49238, 49242, 49246, 49250, 49254, 49258, 49262, 49267, 49272, 49277, - 49282, 49288, 49293, 49297, 49303, 49314, 49323, 49337, 49346, 49350, - 49359, 49364, 49369, 49374, 49379, 49382, 49387, 49391, 0, 49397, 49401, - 49404, 49408, 49411, 49415, 49418, 49422, 49425, 49429, 49432, 49435, - 49439, 49443, 49447, 49451, 49455, 49459, 49463, 49467, 49471, 49475, - 49479, 49483, 49487, 49491, 49495, 49499, 49503, 49507, 49511, 49515, - 49519, 49523, 49527, 49532, 49536, 49540, 49544, 49548, 49551, 49555, - 49559, 49563, 49567, 49571, 49575, 49578, 49582, 49586, 49590, 49594, - 49598, 49602, 49606, 49610, 49614, 49618, 49622, 49626, 49630, 49634, - 49637, 49641, 49645, 49649, 49653, 49657, 49660, 49665, 49669, 49674, - 49678, 49682, 49686, 49690, 49694, 49698, 49703, 49707, 49711, 49715, - 49719, 49722, 49726, 49730, 0, 0, 49735, 49743, 49751, 49758, 49765, - 49769, 49775, 49780, 49785, 49789, 49792, 49796, 49799, 49803, 49806, - 49810, 49813, 49817, 49820, 49823, 49827, 49831, 49835, 49839, 49843, - 49847, 49851, 49855, 49859, 49863, 49867, 49871, 49875, 49879, 49883, - 49887, 49891, 49895, 49899, 49903, 49907, 49911, 49915, 49920, 49924, - 49928, 49932, 49936, 49939, 49943, 49947, 49951, 49955, 49959, 49963, - 49966, 49970, 49974, 49978, 49982, 49986, 49990, 49994, 49998, 50002, - 50006, 50010, 50014, 50018, 50022, 50025, 50029, 50033, 50037, 50041, - 50045, 50048, 50053, 50057, 50062, 50066, 50070, 50074, 50078, 50082, - 50086, 50091, 50095, 50099, 50103, 50107, 50110, 50114, 50118, 50123, - 50127, 50131, 50135, 50139, 50144, 50151, 50155, 50161, 0, 0, 0, 0, 0, - 50166, 50169, 50172, 50175, 50179, 50182, 50185, 50188, 50191, 50194, - 50198, 50201, 50204, 50208, 50211, 50215, 50219, 50223, 50226, 50230, - 50234, 50237, 50240, 50243, 50246, 50250, 50254, 50258, 50262, 50266, - 50270, 50274, 50278, 50282, 50286, 50289, 50292, 50296, 50299, 50303, 0, - 0, 0, 0, 50307, 50311, 50315, 50319, 50323, 50327, 50331, 50335, 50339, - 50343, 50347, 50351, 50355, 50359, 50363, 50367, 50371, 50375, 50379, - 50383, 50387, 50391, 50395, 50399, 50403, 50407, 50411, 50415, 50419, - 50423, 50427, 50430, 50434, 50437, 50441, 50445, 50448, 50452, 50456, - 50459, 50463, 50467, 50471, 50475, 50478, 50482, 50486, 50490, 50494, - 50498, 50502, 50505, 50508, 50512, 50516, 50520, 50524, 50528, 50532, - 50536, 50540, 50544, 50548, 50552, 50556, 50560, 50564, 50568, 50572, - 50576, 50580, 50584, 50588, 50592, 50596, 50600, 50604, 50608, 50612, - 50616, 50620, 50624, 50628, 50632, 50636, 50640, 50644, 50648, 50652, - 50656, 50660, 50664, 50668, 50672, 0, 50676, 50682, 50688, 50694, 50699, - 50704, 50710, 50716, 50722, 50728, 50734, 50740, 50746, 50752, 50758, - 50764, 50770, 50774, 50778, 50782, 50786, 50790, 50794, 50798, 50802, - 50806, 50810, 50814, 50818, 50822, 50826, 50830, 50834, 50838, 50842, - 50846, 50850, 50854, 50858, 50863, 0, 0, 0, 0, 0, 0, 0, 0, 50867, 50871, - 50876, 50881, 50886, 50891, 50896, 50901, 50906, 50911, 50916, 50921, - 50926, 50931, 50936, 50941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50945, 50950, 50955, - 50960, 50964, 50969, 50973, 50978, 50983, 50988, 50993, 50998, 51003, - 51008, 51013, 51018, 51023, 51027, 51031, 51035, 51039, 51043, 51047, - 51051, 51055, 51059, 51063, 51067, 51071, 51075, 51079, 51084, 51089, - 51094, 51099, 51104, 51109, 51114, 51119, 51124, 51129, 51134, 51139, - 51144, 51149, 51154, 51160, 0, 51167, 51170, 51173, 51176, 51179, 51182, - 51185, 51188, 51191, 51194, 51198, 51202, 51206, 51210, 51214, 51218, - 51222, 51226, 51230, 51234, 51238, 51242, 51246, 51250, 51254, 51258, - 51262, 51266, 51270, 51274, 51278, 51282, 51286, 51290, 51294, 51298, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51302, 51305, 51310, 51315, 51320, - 51325, 51330, 51335, 51340, 51345, 51350, 51354, 51359, 51364, 51369, - 51374, 51379, 51383, 51387, 51391, 51395, 51399, 51403, 51407, 51411, - 51415, 51419, 51423, 51427, 51431, 51435, 51440, 51445, 51450, 51455, - 51460, 51465, 51470, 51475, 51480, 51485, 51490, 51495, 51500, 51505, - 51511, 51517, 51522, 51527, 51530, 51533, 51536, 51539, 51542, 51545, - 51548, 51551, 51554, 51558, 51562, 51566, 51570, 51574, 51578, 51582, - 51586, 51590, 51594, 51598, 51602, 51606, 51610, 51614, 51618, 51622, - 51626, 51630, 51634, 51638, 51642, 51646, 51650, 51654, 51658, 51662, - 51666, 51670, 51674, 51678, 51681, 51685, 51689, 51693, 51697, 51701, - 51705, 51709, 51713, 51718, 51723, 51728, 51733, 51737, 51742, 51747, - 51752, 51757, 51762, 51767, 51772, 51777, 51782, 51786, 51792, 51798, - 51804, 51810, 51816, 51822, 51828, 51834, 51840, 51846, 51852, 51858, - 51861, 51864, 51867, 51872, 51875, 51878, 51881, 51884, 51887, 51890, - 51894, 51898, 51902, 51906, 51910, 51914, 51918, 51922, 51926, 51930, - 51934, 51938, 51942, 51945, 51949, 51953, 51957, 51961, 51965, 51968, - 51972, 51976, 51980, 51984, 51987, 51991, 51995, 51999, 52003, 52006, - 52010, 52014, 52018, 52022, 52026, 52030, 52034, 52038, 52042, 52046, 0, - 52050, 52053, 52056, 52059, 52062, 52065, 52068, 52071, 52074, 52077, - 52080, 52083, 52086, 52089, 52092, 52095, 52098, 52101, 52104, 52107, - 52110, 52113, 52116, 52119, 52122, 52125, 52128, 52131, 52134, 52137, - 52140, 52143, 52146, 52149, 52152, 52155, 52158, 52161, 52164, 52167, - 52170, 52173, 52176, 52179, 52182, 52185, 52188, 52191, 52194, 52197, - 52200, 52203, 52206, 52209, 52212, 52215, 52218, 52221, 52224, 52227, - 52230, 52233, 52236, 52239, 52242, 52245, 52248, 52251, 52254, 52257, - 52260, 52263, 52266, 52269, 52272, 52275, 52278, 52281, 52284, 52287, - 52290, 52293, 52296, 52299, 52302, 52305, 52308, 52311, 52314, 52322, - 52329, 52336, 52343, 52350, 52357, 52364, 52371, 52378, 52385, 52393, - 52401, 52409, 52417, 52425, 52433, 52441, 52449, 52457, 52465, 52473, - 52481, 52489, 52497, 52505, 52508, 52511, 52514, 52516, 52519, 52522, - 52525, 52530, 52535, 52538, 52545, 52552, 52559, 52566, 52569, 52574, - 52577, 52581, 52583, 52585, 52588, 52591, 52594, 52597, 52600, 52603, - 52606, 52611, 52615, 52618, 52621, 52624, 52627, 52630, 52633, 52636, - 52640, 52643, 52646, 52649, 52652, 52655, 52659, 52662, 52665, 52668, - 52673, 52678, 52683, 52688, 52693, 52698, 52703, 52708, 52714, 52723, - 52726, 52729, 52732, 52735, 52738, 52744, 52753, 52756, 52759, 52763, - 52766, 52769, 52772, 52776, 52779, 52782, 52787, 52790, 52793, 52798, - 52801, 52804, 52809, 52814, 52819, 52822, 52825, 52828, 52831, 52838, - 52841, 52844, 52847, 52849, 52852, 52855, 52858, 52863, 52866, 52869, - 52872, 52875, 52878, 52883, 52886, 52889, 52892, 52895, 52898, 52901, - 52904, 52907, 52910, 52916, 52921, 52928, 52935, 52942, 52949, 52956, - 52963, 52970, 52977, 52984, 52992, 53000, 53008, 53016, 53024, 53032, - 53040, 53048, 53056, 53064, 53072, 53080, 53088, 53096, 53104, 53112, - 53120, 53128, 53136, 53144, 53152, 53160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53163, 53171, 53179, 53189, 53195, 53199, 53203, 53209, - 53215, 53220, 53224, 53228, 53232, 53236, 53242, 53246, 53250, 53254, - 53264, 53268, 53272, 53278, 53282, 53288, 53292, 53296, 53302, 53308, - 53314, 53322, 53330, 53334, 53338, 53342, 53348, 53352, 53361, 53367, - 53371, 53375, 53379, 53383, 53387, 53391, 53398, 53404, 53410, 53414, - 53420, 53424, 53430, 53438, 53448, 53452, 53460, 53464, 53470, 53478, - 53486, 53490, 53494, 53500, 53505, 53511, 53517, 53521, 53525, 53528, - 53532, 53536, 53540, 53544, 53548, 53552, 53556, 53559, 53563, 53567, - 53571, 53575, 53579, 53583, 53586, 53590, 53594, 53597, 53601, 53605, - 53609, 53613, 53617, 53621, 53625, 53629, 53633, 53637, 53641, 53645, - 53649, 53653, 53657, 53661, 53665, 53669, 53673, 53677, 53681, 53685, - 53689, 53693, 53697, 53701, 53705, 53709, 53713, 53717, 53721, 53725, - 53729, 53733, 53737, 53741, 53745, 53749, 53753, 53757, 53761, 53765, - 53769, 53773, 53777, 53781, 53785, 53789, 53793, 53797, 53801, 53805, - 53809, 53813, 53817, 53821, 53825, 53829, 53833, 53837, 53841, 53845, - 53849, 53853, 53857, 53861, 53865, 53869, 53873, 53877, 53881, 53885, - 53889, 53893, 53897, 53901, 53905, 53909, 53913, 53917, 53921, 53925, - 53929, 53933, 53937, 53941, 53945, 53949, 53953, 53957, 53961, 53965, - 53969, 53973, 53977, 53981, 53985, 53989, 53993, 53997, 54001, 54005, - 54009, 54013, 54017, 54021, 54025, 54029, 54033, 54037, 54041, 54045, - 54049, 54053, 54057, 54061, 54065, 54069, 54073, 54077, 54081, 54085, - 54089, 54093, 54097, 54101, 54105, 54109, 54113, 54117, 54121, 54125, - 54129, 54133, 54137, 54141, 54145, 54149, 54153, 54157, 54161, 54165, - 54169, 54173, 54177, 54181, 54185, 54189, 54193, 54197, 54201, 54205, - 54209, 54213, 54217, 54221, 54225, 54229, 54233, 54237, 54241, 54245, - 54248, 54252, 54256, 54260, 54264, 54268, 54272, 54276, 54280, 54284, - 54288, 54292, 54296, 54300, 54304, 54308, 54312, 54316, 54320, 54324, - 54328, 54332, 54336, 54340, 54344, 54348, 54352, 54356, 54360, 54364, - 54368, 54372, 54376, 54380, 54384, 54388, 54392, 54396, 54400, 54404, - 54408, 54412, 54416, 54420, 54424, 54428, 54432, 54436, 54440, 54444, - 54448, 54452, 54456, 54460, 54464, 54468, 54472, 54476, 54480, 54484, - 54488, 54492, 54496, 54500, 54504, 54508, 54512, 54516, 54520, 54524, - 54528, 54532, 54536, 54540, 54544, 54548, 54552, 54556, 54560, 54564, - 54568, 54572, 54576, 54580, 54584, 54588, 54592, 54596, 54600, 54604, - 54608, 54612, 54616, 54620, 54624, 54628, 54632, 54636, 54640, 54644, - 54648, 54652, 54656, 54660, 54664, 54668, 54672, 54676, 54680, 54684, - 54688, 54692, 54696, 54700, 54704, 54708, 54711, 54715, 54719, 54723, - 54727, 54731, 54735, 54739, 54743, 54747, 54751, 54755, 54759, 54763, - 54767, 54771, 54775, 54779, 54783, 54787, 54791, 54795, 54799, 54803, - 54807, 54811, 54815, 54819, 54823, 54827, 54831, 54835, 54839, 54843, - 54847, 54851, 54855, 54859, 54863, 54867, 54871, 54875, 54879, 54883, - 54887, 54891, 54895, 54899, 54903, 54907, 54911, 54915, 54919, 54923, - 54927, 54931, 54935, 54939, 54943, 54947, 54951, 54955, 54959, 54963, - 54967, 54971, 54975, 54979, 54983, 54987, 54991, 54995, 54999, 55003, - 55007, 55011, 55015, 55019, 55023, 55027, 55031, 55035, 55039, 55043, - 55047, 55051, 55055, 55059, 55063, 55067, 55071, 55075, 55079, 55083, - 55087, 55091, 55095, 55099, 55103, 55107, 55111, 55115, 55119, 55123, - 55127, 55131, 55135, 55139, 55143, 55147, 55151, 55155, 55159, 55163, - 55167, 55171, 55175, 55179, 55183, 55187, 55191, 55195, 55199, 55203, - 55207, 55211, 55215, 55219, 55223, 55227, 55231, 55235, 55239, 55243, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 6, 9, 11, 14, 17, 19, 21, 24, 27, 29, 31, + 33, 35, 39, 41, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 69, 72, + 75, 78, 82, 86, 91, 96, 101, 105, 110, 114, 118, 122, 127, 132, 136, 140, + 144, 148, 153, 158, 162, 166, 171, 175, 179, 184, 189, 194, 199, 202, + 206, 209, 213, 216, 220, 224, 229, 234, 239, 243, 248, 252, 256, 260, + 265, 270, 274, 278, 282, 286, 291, 296, 300, 304, 309, 313, 317, 322, + 327, 332, 337, 341, 344, 348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 353, 358, + 361, 364, 367, 370, 373, 376, 377, 380, 386, 394, 396, 400, 403, 405, + 408, 411, 414, 417, 421, 424, 427, 431, 433, 436, 442, 450, 457, 464, + 471, 476, 483, 489, 496, 502, 508, 516, 521, 529, 536, 542, 549, 555, + 563, 570, 578, 585, 590, 597, 604, 610, 617, 623, 629, 632, 638, 645, + 651, 658, 664, 671, 676, 682, 689, 695, 702, 708, 714, 722, 727, 735, + 742, 748, 755, 761, 769, 776, 784, 791, 796, 803, 810, 816, 823, 829, + 835, 838, 844, 851, 857, 864, 870, 877, 882, 889, 896, 903, 910, 917, + 924, 931, 938, 945, 953, 961, 969, 977, 985, 993, 1001, 1009, 1016, 1023, + 1030, 1037, 1044, 1051, 1058, 1065, 1072, 1079, 1086, 1093, 1101, 1109, + 1117, 1125, 1133, 1141, 1149, 1157, 1165, 1173, 1180, 1187, 1194, 1201, + 1209, 1217, 1225, 1233, 1241, 1249, 1257, 1263, 1268, 1273, 1281, 1289, + 1297, 1305, 1310, 1317, 1324, 1332, 1340, 1348, 1356, 1366, 1376, 1383, + 1390, 1397, 1404, 1412, 1420, 1428, 1436, 1447, 1452, 1457, 1464, 1471, + 1478, 1485, 1492, 1499, 1504, 1509, 1516, 1523, 1531, 1539, 1547, 1555, + 1562, 1569, 1577, 1585, 1593, 1601, 1609, 1617, 1625, 1633, 1641, 1649, + 1656, 1663, 1669, 1675, 1682, 1689, 1696, 1703, 1711, 1719, 1726, 1733, + 1740, 1747, 1755, 1763, 1771, 1779, 1786, 1793, 1800, 1808, 1816, 1824, + 1832, 1837, 1843, 1849, 1856, 1863, 1868, 1873, 1879, 1886, 1893, 1900, + 1907, 1915, 1923, 1929, 1934, 1939, 1945, 1952, 1959, 1966, 1971, 1976, + 1981, 1988, 1995, 2002, 2009, 2016, 2021, 2029, 2039, 2047, 2054, 2061, + 2066, 2071, 2078, 2085, 2089, 2094, 2099, 2104, 2111, 2120, 2127, 2134, + 2143, 2150, 2157, 2162, 2169, 2176, 2183, 2190, 2197, 2202, 2209, 2216, + 2224, 2229, 2234, 2239, 2249, 2253, 2259, 2265, 2271, 2277, 2285, 2298, + 2306, 2311, 2321, 2326, 2331, 2341, 2346, 2353, 2360, 2368, 2376, 2383, + 2390, 2397, 2404, 2414, 2424, 2433, 2442, 2452, 2462, 2472, 2482, 2487, + 2497, 2507, 2517, 2527, 2535, 2543, 2550, 2557, 2565, 2573, 2581, 2589, + 2596, 2603, 2613, 2623, 2631, 2639, 2647, 2652, 2662, 2667, 2674, 2681, + 2686, 2691, 2699, 2707, 2717, 2727, 2734, 2741, 2749, 2757, 2765, 2773, + 2782, 2791, 2799, 2807, 2816, 2825, 2834, 2843, 2853, 2863, 2871, 2879, + 2888, 2897, 2906, 2915, 2925, 2935, 2943, 2951, 2960, 2969, 2978, 2987, + 2996, 3005, 3010, 3015, 3023, 3031, 3041, 3049, 3054, 3059, 3066, 3073, + 3080, 3087, 3094, 3101, 3111, 3121, 3131, 3141, 3148, 3155, 3165, 3175, + 3183, 3191, 3199, 3207, 3215, 3222, 3229, 3236, 3242, 3249, 3256, 3263, + 3272, 3282, 3292, 3299, 3306, 3312, 3317, 3322, 3328, 3334, 3341, 3348, + 3359, 3369, 3376, 3383, 3390, 3397, 3402, 3407, 3413, 3419, 3425, 3433, + 3441, 3448, 3453, 3458, 3465, 3471, 3478, 3487, 3496, 3505, 3512, 3517, + 3522, 3527, 3534, 3539, 3546, 3553, 3560, 3565, 3570, 3579, 3587, 3596, + 3601, 3606, 3616, 3623, 3631, 3640, 3645, 3651, 3657, 3664, 3669, 3674, + 3684, 3692, 3701, 3709, 3717, 3726, 3731, 3738, 3745, 3750, 3761, 3769, + 3777, 3783, 3792, 3797, 3802, 3809, 3814, 3820, 3826, 3832, 3841, 3849, + 3854, 3862, 3868, 3876, 3884, 3890, 3896, 3902, 3910, 3918, 3923, 3931, + 3937, 3942, 3949, 3957, 3966, 3973, 3980, 3990, 3997, 4004, 4014, 4021, + 4028, 4035, 4041, 4047, 4056, 4068, 4072, 4079, 4084, 4088, 4093, 4101, + 4108, 4113, 4118, 4122, 4127, 4132, 4136, 4141, 4147, 4153, 4159, 4166, + 4171, 4176, 4181, 4186, 4192, 4194, 4199, 4203, 4209, 4215, 4221, 4226, + 4233, 4240, 4246, 4253, 4261, 4269, 4274, 4279, 4283, 4288, 4290, 4292, + 4295, 4297, 4299, 4304, 4309, 4315, 4320, 4324, 4328, 4333, 4341, 4347, + 4352, 4358, 4363, 4369, 4377, 4385, 4389, 4393, 4398, 4404, 4410, 4416, + 4422, 4427, 4435, 4444, 4453, 4457, 4463, 4470, 4477, 4484, 4491, 4495, + 4501, 4506, 4511, 4516, 4521, 4523, 4526, 4529, 4532, 4535, 4537, 4541, + 4545, 4551, 4554, 4559, 4565, 4571, 4574, 4579, 4584, 4588, 4593, 4599, + 4605, 4611, 4616, 4621, 4626, 4629, 4635, 4640, 4645, 4649, 4654, 4660, + 4666, 4669, 4673, 4677, 4681, 4684, 4687, 4692, 4696, 4703, 4707, 4713, + 4717, 4723, 4727, 4731, 4735, 4740, 4745, 4751, 4756, 4763, 4769, 4775, + 4781, 4784, 4788, 4792, 4795, 4799, 4804, 4809, 4813, 4817, 4823, 4827, + 4831, 4836, 4842, 4847, 4852, 4856, 4862, 4867, 4872, 4877, 4882, 4888, + 4891, 4895, 4900, 4905, 4914, 4920, 4925, 4929, 4934, 4938, 4943, 4947, + 4951, 4956, 4959, 4965, 4970, 4975, 4980, 4985, 4990, 4995, 5001, 5007, + 5012, 5017, 5022, 5028, 5033, 5039, 5044, 5049, 5056, 5063, 5066, 5070, + 5077, 0, 0, 5084, 5087, 5095, 5104, 5114, 0, 0, 0, 0, 0, 5118, 5121, + 5126, 5134, 5139, 5147, 5155, 0, 5163, 0, 5171, 5179, 5187, 5198, 5203, + 5208, 5213, 5218, 5223, 5228, 5233, 5238, 5243, 5248, 5253, 5258, 5263, + 5268, 5273, 5278, 0, 5283, 5288, 5293, 5298, 5303, 5308, 5313, 5318, + 5326, 5334, 5342, 5350, 5358, 5366, 5377, 5382, 5387, 5392, 5397, 5402, + 5407, 5412, 5417, 5422, 5427, 5432, 5437, 5442, 5447, 5452, 5457, 5462, + 5468, 5473, 5478, 5483, 5488, 5493, 5498, 5503, 5511, 5519, 5527, 5535, + 5543, 5548, 5552, 5556, 5563, 5573, 5583, 5587, 5591, 5595, 5601, 5608, + 5612, 5617, 5621, 5626, 5630, 5635, 5639, 5644, 5649, 5654, 5659, 5664, + 5669, 5674, 5679, 5684, 5689, 5694, 5699, 5704, 5709, 5714, 5718, 5722, + 5728, 5732, 5737, 5743, 5750, 5755, 5760, 5767, 5772, 5777, 5783, 5791, + 5800, 5810, 5818, 5823, 5828, 5833, 5840, 5845, 5851, 5856, 5861, 5866, + 5871, 5876, 5881, 5889, 5895, 5900, 5904, 5909, 5914, 5919, 5924, 5929, + 5934, 5939, 5943, 5949, 5953, 5958, 5963, 5968, 5972, 5977, 5982, 5987, + 5992, 5996, 6001, 6005, 6010, 6015, 6020, 6025, 6031, 6036, 6042, 6046, + 6051, 6055, 6059, 6064, 6069, 6074, 6079, 6084, 6089, 6094, 6098, 6104, + 6108, 6113, 6118, 6123, 6127, 6132, 6137, 6142, 6147, 6151, 6156, 6160, + 6165, 6170, 6175, 6180, 6186, 6191, 6197, 6201, 6206, 6210, 6218, 6223, + 6228, 6233, 6240, 6245, 6251, 6256, 6261, 6266, 6271, 6276, 6281, 6289, + 6295, 6300, 6305, 6310, 6315, 6320, 6326, 6332, 6339, 6346, 6355, 6364, + 6371, 6378, 6387, 6396, 6401, 6406, 6411, 6416, 6421, 6426, 6431, 6436, + 6447, 6458, 6463, 6468, 6475, 6482, 6490, 6498, 6503, 6508, 6513, 6518, + 6522, 6526, 6530, 6535, 6540, 6544, 6551, 6556, 6566, 6576, 6582, 6588, + 6596, 6604, 6612, 6620, 6627, 6634, 6643, 6652, 6660, 6668, 6676, 6684, + 6691, 6698, 6705, 6712, 6718, 6724, 6730, 6736, 6744, 6752, 6759, 6766, + 6775, 6784, 6790, 6796, 6804, 6812, 6820, 6828, 6834, 6840, 6848, 6856, + 6864, 6872, 6879, 6886, 6894, 6902, 6910, 6918, 6923, 6928, 6935, 6942, + 6952, 6962, 6966, 6974, 6982, 6988, 6994, 7002, 7010, 7017, 7024, 7032, + 7040, 7047, 7054, 7062, 7070, 7075, 7082, 7089, 7095, 7101, 7107, 7113, + 7121, 7129, 7134, 7139, 7146, 7153, 7160, 7167, 7174, 7181, 7188, 7195, + 7203, 7211, 7218, 7225, 7231, 7237, 7243, 7249, 7257, 7265, 7271, 7277, + 7284, 7291, 7297, 7303, 7310, 7317, 7324, 7331, 7339, 7347, 7354, 7361, + 7370, 7379, 7386, 7393, 7400, 7407, 7414, 7421, 7428, 7435, 7442, 7449, + 7456, 7463, 7470, 7477, 7484, 7491, 7498, 7505, 7512, 7519, 7525, 7531, + 7538, 7545, 7550, 7555, 7560, 7565, 7570, 7575, 7580, 7585, 7590, 7595, + 7601, 7607, 7616, 7625, 7634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7643, 7648, 7653, 7658, 7663, 7668, 7673, 7678, 7683, 7687, 7692, 7697, + 7702, 7707, 7712, 7717, 7722, 7727, 7732, 7737, 7742, 7747, 7752, 7757, + 7762, 7767, 7772, 7777, 7781, 7786, 7791, 7796, 7801, 7806, 7811, 7816, + 7821, 7826, 0, 0, 7831, 7838, 7841, 7845, 7849, 7852, 7856, 0, 7860, + 7865, 7870, 7875, 7880, 7885, 7890, 7895, 7900, 7904, 7909, 7914, 7919, + 7924, 7929, 7934, 7939, 7944, 7949, 7954, 7959, 7964, 7969, 7974, 7979, + 7984, 7989, 7994, 7998, 8003, 8008, 8013, 8018, 8023, 8028, 8033, 8038, + 8043, 8048, 0, 8055, 8060, 0, 0, 0, 0, 0, 0, 8063, 8068, 8073, 8078, + 8085, 8092, 8097, 8102, 8107, 8112, 8117, 8122, 8127, 8134, 8139, 8146, + 8153, 8158, 8165, 8170, 8175, 8180, 8187, 8192, 8197, 8204, 8213, 8218, + 8223, 8228, 8233, 8239, 8244, 8251, 8258, 8265, 8270, 8275, 8280, 8285, + 8290, 8295, 8305, 8310, 8318, 8323, 8328, 8333, 8338, 8345, 8352, 8359, + 8365, 8370, 8377, 0, 0, 0, 0, 0, 0, 0, 0, 8384, 8388, 8392, 8396, 8400, + 8404, 8408, 8412, 8416, 8420, 8424, 8429, 8433, 8437, 8442, 8446, 8451, + 8455, 8459, 8463, 8468, 8472, 8477, 8481, 8485, 8489, 8493, 0, 0, 0, 0, + 0, 8497, 8504, 8512, 8519, 8524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8529, + 8532, 8536, 8541, 0, 0, 8545, 8551, 8557, 8560, 8567, 8576, 8579, 8582, + 8587, 8593, 8597, 8605, 8611, 8617, 8625, 8629, 8634, 8644, 8649, 8653, + 8657, 8661, 0, 0, 8664, 8671, 0, 8675, 8679, 8686, 8692, 8699, 8705, + 8711, 8715, 8719, 8725, 8729, 8733, 8737, 8741, 8745, 8749, 8753, 8757, + 8761, 8765, 8769, 8773, 8777, 8781, 8785, 8789, 8793, 8801, 8809, 8818, + 8827, 8836, 8839, 8843, 8847, 8851, 8855, 8859, 8863, 8867, 8871, 8876, + 8880, 8883, 8886, 8889, 8892, 8895, 8898, 8901, 8904, 8908, 8911, 8914, + 8919, 8924, 8930, 8933, 8940, 8949, 8954, 8958, 0, 8965, 8970, 8974, + 8978, 8982, 8986, 8990, 8994, 8998, 9002, 9006, 9010, 9015, 9020, 9027, + 9033, 9039, 9045, 9050, 9058, 9066, 9071, 9077, 9083, 9089, 9095, 9099, + 9103, 9107, 9114, 9124, 9128, 9132, 9136, 9142, 9150, 9154, 9158, 9165, + 9169, 9173, 9177, 9184, 9191, 9203, 9207, 9211, 9215, 9225, 9234, 9238, + 9245, 9252, 9259, 9268, 9279, 9287, 9291, 9300, 9311, 9319, 9332, 9340, + 9348, 9356, 9364, 9370, 9379, 9386, 9390, 9398, 9402, 9409, 9417, 9421, + 9427, 9434, 9441, 9445, 9453, 9457, 9464, 9468, 9476, 9480, 9488, 9494, + 9500, 9507, 9514, 9521, 9527, 9531, 9538, 9546, 9552, 9559, 9566, 9572, + 9581, 9589, 9596, 9602, 9606, 9609, 9613, 9619, 9627, 9631, 9637, 9643, + 9649, 9656, 9659, 9666, 9671, 9679, 9684, 9688, 9700, 9712, 9718, 9724, + 9729, 9735, 9740, 9746, 9756, 9763, 9772, 9782, 9788, 9793, 9798, 9802, + 9806, 9811, 9816, 9822, 9830, 9838, 9849, 9854, 9862, 9870, 9877, 9883, + 9889, 9895, 9901, 9907, 9913, 9919, 9925, 9931, 9938, 9945, 9952, 9958, + 9966, 9974, 9980, 9987, 9994, 9999, 10004, 10008, 10015, 10022, 10031, + 10040, 10043, 10048, 10053, 0, 10058, 10062, 10066, 10072, 10076, 10080, + 10086, 10090, 10098, 10102, 10106, 10110, 10114, 10118, 10124, 10128, + 10134, 10138, 10142, 10146, 10150, 10154, 10159, 10162, 10166, 10171, + 10175, 10179, 10183, 10187, 10191, 10197, 10203, 10209, 10213, 10217, + 10222, 10226, 10230, 10235, 10239, 10243, 10250, 10257, 10261, 10265, + 10270, 10274, 10278, 10281, 10286, 10289, 10292, 10297, 10302, 10306, + 10310, 10316, 10322, 10325, 0, 0, 10328, 10334, 10340, 10346, 10356, + 10368, 10380, 10397, 10409, 10420, 10427, 10434, 10445, 10460, 10471, + 10477, 10486, 10494, 10506, 10516, 10524, 10536, 10543, 10551, 10563, + 10569, 10575, 10583, 10591, 10598, 10603, 10613, 10620, 10630, 10640, + 10653, 10667, 10681, 10691, 10702, 10713, 10726, 10739, 10753, 10765, + 10777, 10790, 10803, 10815, 10828, 10836, 10844, 10849, 10854, 10859, + 10864, 10869, 10874, 10879, 10884, 10889, 10894, 10899, 10904, 10909, + 10914, 10919, 10924, 10929, 10934, 10939, 10944, 10949, 10954, 10959, + 10964, 10969, 10974, 10979, 10984, 10989, 10994, 10999, 11004, 11008, + 11013, 11018, 11023, 11028, 11033, 11037, 11041, 11045, 11049, 11053, + 11057, 11061, 11065, 11069, 11073, 11077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 11082, 11086, 11089, 11092, 11095, 11098, 11101, 11104, + 11107, 11110, 11113, 11116, 11120, 11123, 11126, 11129, 11133, 11136, + 11140, 11143, 11147, 11150, 11154, 11158, 11162, 11166, 11169, 11173, + 11177, 11181, 11185, 11188, 11192, 11198, 11201, 11205, 11209, 11212, + 11216, 11219, 11225, 11231, 11237, 11242, 11249, 11256, 11264, 11271, + 11277, 11283, 11290, 11295, 11300, 11305, 11310, 11316, 11320, 11323, + 11327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11330, 11334, 11338, + 11342, 11347, 11350, 11354, 11357, 11361, 11364, 11368, 11372, 11376, + 11381, 11386, 11389, 11393, 11398, 11403, 11406, 11410, 11413, 11417, + 11421, 11425, 11429, 11433, 11437, 11441, 11445, 11449, 11453, 11457, + 11461, 11465, 11469, 11473, 11477, 11481, 11485, 11489, 11493, 11496, + 11500, 11504, 11508, 11511, 11514, 11517, 11521, 11525, 11529, 11533, + 11537, 11541, 11545, 11549, 0, 0, 11552, 11556, 11560, 11565, 11569, + 11574, 11578, 11583, 11588, 11594, 11600, 11606, 11610, 11615, 11621, + 11627, 11631, 11636, 0, 0, 11640, 11643, 11649, 11655, 11660, 0, 0, 0, + 11665, 11669, 11673, 11677, 11681, 11685, 11689, 11693, 11697, 11702, + 11707, 11712, 11718, 11721, 11725, 11729, 11732, 11735, 11738, 11741, + 11744, 11747, 11750, 11753, 11756, 11760, 11767, 0, 0, 0, 0, 0, 0, 0, 0, + 11772, 11776, 11780, 11786, 11790, 0, 11794, 11798, 11802, 0, 11806, + 11809, 11813, 11816, 11820, 11823, 11827, 11831, 0, 0, 11835, 11838, 0, + 0, 11842, 11845, 11849, 11852, 11856, 11860, 11864, 11868, 11872, 11876, + 11880, 11884, 11888, 11892, 11896, 11900, 11904, 11908, 11912, 11916, + 11920, 11924, 0, 11928, 11931, 11935, 11939, 11943, 11946, 11949, 0, + 11952, 0, 0, 0, 11956, 11960, 11964, 11968, 0, 0, 11971, 11975, 11979, + 11984, 11988, 11993, 11997, 12002, 12007, 0, 0, 12013, 12017, 0, 0, + 12022, 12026, 12031, 12035, 0, 0, 0, 0, 0, 0, 0, 0, 12041, 0, 0, 0, 0, + 12047, 12051, 0, 12055, 12059, 12064, 12069, 12074, 0, 0, 12080, 12084, + 12087, 12090, 12093, 12096, 12099, 12102, 12105, 12108, 12111, 12120, + 12128, 12132, 12136, 12142, 12148, 12154, 12160, 12174, 12181, 0, 0, 0, + 0, 0, 0, 12184, 12190, 12194, 0, 12198, 12201, 12205, 12208, 12212, + 12215, 0, 0, 0, 0, 12219, 12223, 0, 0, 12227, 12231, 12235, 12238, 12242, + 12246, 12250, 12254, 12258, 12262, 12266, 12270, 12274, 12278, 12282, + 12286, 12290, 12294, 12298, 12302, 12306, 12310, 0, 12314, 12317, 12321, + 12325, 12329, 12332, 12335, 0, 12338, 12342, 0, 12346, 12350, 0, 12354, + 12358, 0, 0, 12361, 0, 12365, 12370, 12374, 12379, 12383, 0, 0, 0, 0, + 12388, 12393, 0, 0, 12398, 12403, 12408, 0, 0, 0, 12412, 0, 0, 0, 0, 0, + 0, 0, 12416, 12420, 12424, 12428, 0, 12432, 0, 0, 0, 0, 0, 0, 0, 12436, + 12440, 12443, 12446, 12449, 12452, 12455, 12458, 12461, 12464, 12467, + 12470, 12473, 12476, 12479, 12484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12488, 12492, 12496, 0, 12500, 12503, 12507, 12510, 12514, 12517, 12521, + 12525, 12529, 0, 12534, 12537, 12541, 0, 12546, 12549, 12553, 12556, + 12560, 12564, 12568, 12572, 12576, 12580, 12584, 12588, 12592, 12596, + 12600, 12604, 12608, 12612, 12616, 12620, 12624, 12628, 0, 12632, 12635, + 12639, 12643, 12647, 12650, 12653, 0, 12656, 12660, 0, 12664, 12668, + 12672, 12676, 12680, 0, 0, 12683, 12687, 12691, 12696, 12700, 12705, + 12709, 12714, 12719, 12725, 0, 12731, 12735, 12740, 0, 12746, 12750, + 12755, 0, 0, 12759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12762, + 12767, 12772, 12777, 0, 0, 12783, 12787, 12790, 12793, 12796, 12799, + 12802, 12805, 12808, 12811, 0, 12814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12818, 12822, 12826, 0, 12830, 12833, 12837, 12840, 12844, + 12847, 12851, 12855, 0, 0, 12859, 12862, 0, 0, 12866, 12869, 12873, + 12876, 12880, 12884, 12888, 12892, 12896, 12900, 12904, 12908, 12912, + 12916, 12920, 12924, 12928, 12932, 12936, 12940, 12944, 12948, 0, 12952, + 12955, 12959, 12963, 12967, 12970, 12973, 0, 12976, 12980, 0, 12984, + 12988, 12992, 12996, 13000, 0, 0, 13003, 13007, 13011, 13016, 13020, + 13025, 13029, 13034, 13039, 0, 0, 13045, 13049, 0, 0, 13054, 13058, + 13063, 0, 0, 0, 0, 0, 0, 0, 0, 13067, 13073, 0, 0, 0, 0, 13079, 13083, 0, + 13087, 13091, 13096, 13101, 13106, 0, 0, 13112, 13116, 13119, 13122, + 13125, 13128, 13131, 13134, 13137, 13140, 13143, 13146, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13150, 13154, 0, 13158, 13161, 13165, + 13168, 13172, 13175, 0, 0, 0, 13179, 13182, 13186, 0, 13190, 13193, + 13197, 13201, 0, 0, 0, 13204, 13208, 0, 13212, 0, 13216, 13220, 0, 0, 0, + 13224, 13228, 0, 0, 0, 13232, 13236, 13240, 0, 0, 0, 13243, 13246, 13249, + 13252, 13256, 13260, 13264, 13268, 13272, 13276, 13280, 13284, 0, 0, 0, + 0, 13287, 13292, 13296, 13301, 13305, 0, 0, 0, 13310, 13314, 13319, 0, + 13324, 13328, 13333, 13338, 0, 0, 13342, 0, 0, 0, 0, 0, 0, 13345, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13351, 13355, 13358, 13361, 13364, + 13367, 13370, 13373, 13376, 13379, 13382, 13386, 13391, 13396, 13400, + 13404, 13408, 13412, 13416, 13421, 13425, 0, 0, 0, 0, 0, 0, 13428, 13432, + 13436, 0, 13440, 13443, 13447, 13450, 13454, 13457, 13461, 13465, 0, + 13469, 13472, 13476, 0, 13480, 13483, 13487, 13491, 13494, 13498, 13502, + 13506, 13510, 13514, 13518, 13522, 13526, 13530, 13534, 13538, 13542, + 13546, 13550, 13554, 13558, 13562, 13566, 0, 13570, 13573, 13577, 13581, + 13585, 13588, 13591, 13594, 13598, 13602, 0, 13606, 13610, 13614, 13618, + 13622, 0, 0, 0, 13625, 13629, 13634, 13638, 13643, 13647, 13652, 13657, + 0, 13663, 13667, 13672, 0, 13677, 13681, 13686, 13691, 0, 0, 0, 0, 0, 0, + 0, 13695, 13699, 0, 13705, 13709, 0, 0, 0, 0, 0, 0, 13713, 13718, 13723, + 13728, 0, 0, 13734, 13738, 13741, 13744, 13747, 13750, 13753, 13756, + 13759, 13762, 0, 0, 0, 0, 0, 0, 0, 0, 13765, 13778, 13790, 13802, 13814, + 13826, 13838, 13850, 0, 0, 13854, 13858, 0, 13862, 13865, 13869, 13872, + 13876, 13879, 13883, 13887, 0, 13891, 13894, 13898, 0, 13902, 13905, + 13909, 13913, 13916, 13920, 13924, 13928, 13932, 13936, 13940, 13944, + 13948, 13952, 13956, 13960, 13964, 13968, 13972, 13976, 13980, 13984, + 13988, 0, 13992, 13995, 13999, 14003, 14007, 14010, 14013, 14016, 14020, + 14024, 0, 14028, 14032, 14036, 14040, 14044, 0, 0, 14047, 14051, 14055, + 14060, 14064, 14069, 14073, 14078, 14083, 0, 14089, 14093, 14098, 0, + 14103, 14107, 14112, 14117, 0, 0, 0, 0, 0, 0, 0, 14121, 14125, 0, 0, 0, + 0, 0, 0, 0, 14131, 0, 14135, 14140, 14145, 14150, 0, 0, 14156, 14160, + 14163, 14166, 14169, 14172, 14175, 14178, 14181, 14184, 0, 14187, 14191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14195, 14199, 0, 14203, + 14206, 14210, 14213, 14217, 14220, 14224, 14228, 0, 14232, 14235, 14239, + 0, 14243, 14246, 14250, 14254, 14257, 14261, 14265, 14269, 14273, 14277, + 14281, 14285, 14289, 14293, 14297, 14301, 14305, 14309, 14313, 14317, + 14321, 14325, 14329, 0, 14333, 14336, 14340, 14344, 14348, 14351, 14354, + 14357, 14361, 14365, 14369, 14373, 14377, 14381, 14385, 14389, 0, 0, 0, + 14392, 14396, 14401, 14405, 14410, 14414, 14419, 14424, 0, 14430, 14434, + 14439, 0, 14444, 14448, 14453, 14458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14462, + 0, 0, 0, 0, 0, 0, 0, 0, 14468, 14473, 14478, 14483, 0, 0, 14489, 14493, + 14496, 14499, 14502, 14505, 14508, 14511, 14514, 14517, 14520, 14524, + 14529, 14534, 14540, 14546, 0, 0, 0, 14552, 14556, 14562, 14567, 14573, + 14578, 14584, 0, 0, 14590, 14594, 0, 14598, 14602, 14606, 14610, 14614, + 14618, 14622, 14626, 14630, 14634, 14638, 14642, 14646, 14650, 14654, + 14658, 14662, 14666, 0, 0, 0, 14670, 14676, 14682, 14688, 14694, 14700, + 14706, 14712, 14718, 14724, 14730, 14736, 14744, 14750, 14756, 14762, + 14768, 14774, 14780, 14786, 14792, 14798, 14804, 14810, 0, 14816, 14822, + 14828, 14834, 14840, 14846, 14850, 14856, 14860, 0, 14864, 0, 0, 14870, + 14874, 14880, 14886, 14892, 14896, 14902, 0, 0, 0, 14906, 0, 0, 0, 0, + 14910, 14915, 14922, 14929, 14936, 14943, 0, 14950, 0, 14957, 14962, + 14967, 14974, 14981, 14990, 15001, 15010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15015, 15022, 15029, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15034, 15040, 15046, 15052, 15058, 15064, 15070, 15076, 15082, + 15088, 15094, 15100, 15106, 15112, 15118, 15123, 15129, 15135, 15141, + 15147, 15153, 15158, 15164, 15170, 15176, 15182, 15188, 15194, 15200, + 15206, 15212, 15218, 15224, 15229, 15235, 15241, 15245, 15251, 15255, + 15261, 15267, 15273, 15279, 15285, 15291, 15296, 15302, 15306, 15311, + 15317, 15323, 15329, 15334, 15340, 15346, 15352, 15357, 15363, 0, 0, 0, + 0, 15367, 15373, 15378, 15384, 15389, 15397, 15405, 15409, 15413, 15417, + 15423, 15429, 15435, 15441, 15445, 15449, 15453, 15457, 15461, 15464, + 15467, 15470, 15473, 15476, 15479, 15482, 15485, 15488, 15492, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15496, 15500, 0, 15506, 0, 0, 15512, 15516, + 0, 15520, 0, 0, 15526, 0, 0, 0, 0, 0, 0, 15530, 15534, 15537, 15543, 0, + 15549, 15553, 15557, 15561, 15567, 15573, 15579, 0, 15585, 15589, 15593, + 0, 15599, 0, 15605, 0, 0, 15609, 15615, 0, 15621, 15624, 15630, 15633, + 15637, 15644, 15649, 15654, 15658, 15663, 15668, 15673, 15677, 0, 15682, + 15689, 15695, 0, 0, 15701, 15705, 15710, 15714, 15719, 0, 15724, 0, + 15729, 15735, 15741, 15747, 15753, 15757, 0, 0, 15760, 15764, 15767, + 15770, 15773, 15776, 15779, 15782, 15785, 15788, 0, 0, 15791, 15796, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15801, 15805, 15816, 15831, 15846, 15856, + 15867, 15880, 15891, 15897, 15905, 15915, 15921, 15929, 15933, 15939, + 15945, 15953, 15963, 15971, 15984, 15990, 15998, 16006, 16018, 16025, + 16033, 16041, 16049, 16057, 16065, 16073, 16083, 16087, 16090, 16093, + 16096, 16099, 16102, 16105, 16108, 16111, 16114, 16118, 16122, 16126, + 16130, 16134, 16138, 16142, 16146, 16150, 16155, 16161, 16171, 16185, + 16195, 16201, 16207, 16215, 16223, 16231, 16239, 16245, 16251, 16254, + 16258, 16262, 16266, 16270, 16274, 16278, 0, 16282, 16286, 16290, 16294, + 16298, 16302, 16306, 16310, 16314, 16318, 16322, 16326, 16329, 16333, + 16337, 16341, 16344, 16348, 16352, 16356, 16360, 16364, 16368, 16372, + 16376, 16379, 16382, 16386, 16390, 16394, 16398, 16401, 16404, 16408, + 16413, 16417, 0, 0, 0, 0, 16421, 16426, 16430, 16435, 16439, 16444, + 16449, 16455, 16460, 16466, 16470, 16475, 16479, 16484, 16494, 16500, + 16505, 16511, 16521, 16527, 16531, 16535, 16541, 16547, 16555, 16561, + 16569, 0, 0, 0, 0, 16577, 16582, 16588, 16594, 16600, 16606, 16612, + 16618, 0, 16624, 16630, 16636, 16642, 16648, 16654, 16660, 16666, 16672, + 16678, 16684, 16690, 16695, 16701, 16707, 16713, 16718, 16724, 16730, + 16736, 16742, 16748, 16754, 16760, 16766, 16771, 16776, 16782, 16788, + 16794, 16800, 16805, 16810, 16816, 16824, 16831, 0, 16838, 16845, 16858, + 16865, 16872, 16880, 16888, 16894, 16900, 16906, 16916, 16921, 16927, + 16937, 16947, 0, 16957, 16967, 16975, 16987, 16999, 17005, 17019, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17034, 17037, 17041, + 17045, 17049, 17053, 17057, 17061, 17065, 17069, 17073, 17077, 17081, + 17085, 17089, 17093, 17097, 17101, 17105, 17109, 17113, 17117, 17120, + 17124, 17128, 17132, 17135, 17138, 17141, 17145, 17149, 17153, 17156, + 17160, 17163, 17168, 17171, 17175, 17178, 17182, 17185, 17190, 17193, + 17197, 17204, 17209, 17213, 17218, 17222, 17227, 17231, 17236, 17243, + 17249, 17254, 17258, 17262, 17266, 17270, 17274, 17280, 17286, 17293, + 17299, 17305, 17309, 17312, 17315, 17318, 17321, 17324, 17327, 17330, + 17333, 17336, 17342, 17346, 17350, 17354, 17358, 17362, 17366, 17370, + 17374, 17379, 17383, 17388, 17393, 17399, 17404, 17410, 17416, 17422, + 17428, 17434, 17443, 17451, 17460, 17468, 17477, 17486, 17497, 17507, + 17517, 17528, 17539, 17549, 17559, 17569, 17579, 17589, 17599, 17609, + 17619, 17627, 17634, 17640, 17647, 17652, 17658, 17664, 17670, 17676, + 17682, 17688, 17694, 17700, 17706, 17712, 17718, 17723, 17732, 17739, + 17745, 17752, 17760, 17766, 17772, 17778, 17784, 17792, 17800, 17810, + 17818, 17826, 17832, 17837, 17842, 17847, 17852, 17857, 17862, 17867, + 17872, 0, 0, 0, 0, 17877, 17882, 17888, 17893, 17898, 17903, 17908, + 17913, 17918, 17923, 17928, 17933, 17938, 17943, 17948, 17953, 17958, + 17963, 17968, 17973, 17978, 17983, 17988, 17993, 17998, 18003, 18008, + 18013, 18018, 18023, 18028, 18033, 18038, 18043, 18048, 18053, 18058, + 18063, 18068, 18073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18078, 18082, 18086, + 18090, 18094, 18098, 18102, 18106, 18110, 18114, 18118, 18122, 18126, + 18130, 18134, 18138, 18142, 18146, 18150, 18154, 18158, 18162, 18166, + 18170, 18174, 18178, 18182, 18186, 18190, 18194, 18198, 18202, 18206, + 18210, 18214, 18218, 18222, 18226, 18230, 18234, 18238, 18242, 18247, + 18251, 18256, 0, 0, 0, 18261, 18265, 18269, 18273, 18277, 18281, 18285, + 18289, 18293, 18297, 18301, 18305, 18309, 18313, 18317, 18321, 18325, + 18329, 18333, 18337, 18341, 18345, 18349, 18353, 18357, 18361, 18365, + 18369, 18373, 18377, 18381, 18385, 18389, 18393, 18397, 18401, 18405, + 18409, 18413, 18417, 18421, 18425, 18429, 18433, 18437, 18441, 18445, + 18449, 18453, 18457, 18461, 18465, 18469, 18473, 18477, 18481, 18485, + 18489, 18493, 18497, 18501, 18505, 18509, 18513, 18517, 18521, 18525, + 18529, 18533, 18537, 18541, 18545, 18549, 18553, 18557, 18561, 18565, + 18569, 18573, 18577, 18581, 18585, 18589, 18593, 18597, 18601, 18605, + 18609, 18613, 18617, 0, 0, 0, 0, 0, 18621, 18625, 18629, 18632, 18636, + 18639, 18643, 18647, 18650, 18654, 18658, 18661, 18665, 18669, 18673, + 18677, 18680, 18684, 18688, 18692, 18696, 18700, 18704, 18707, 18711, + 18715, 18719, 18723, 18727, 18731, 18735, 18739, 18743, 18747, 18751, + 18755, 18759, 18763, 18767, 18771, 18775, 18779, 18783, 18787, 18791, + 18795, 18799, 18803, 18807, 18811, 18815, 18819, 18823, 18827, 18831, + 18835, 18839, 18843, 18847, 18851, 18855, 18859, 18863, 18867, 18871, + 18875, 18879, 18883, 0, 0, 0, 0, 0, 18887, 18891, 18895, 18899, 18903, + 18907, 18911, 18915, 18919, 18923, 18927, 18931, 18935, 18939, 18943, + 18947, 18951, 18955, 18959, 18963, 18967, 18971, 18975, 18979, 18983, + 18987, 18991, 18995, 18999, 19003, 19007, 19011, 19015, 19019, 19023, + 19027, 19031, 19035, 19039, 19043, 19047, 19051, 19055, 19059, 19063, + 19067, 19071, 19075, 19079, 19083, 19087, 19091, 19095, 19099, 19103, + 19107, 19111, 19115, 19119, 19123, 19127, 19131, 19135, 19139, 19143, + 19147, 19151, 19155, 19159, 19163, 19167, 19171, 19175, 19179, 19183, + 19187, 19191, 19195, 19199, 19203, 19207, 19211, 0, 0, 0, 0, 0, 0, 19215, + 19218, 19222, 19226, 19230, 19234, 19238, 19242, 19246, 19250, 19254, + 19258, 19262, 19266, 19270, 19274, 19278, 19282, 19286, 19290, 19294, + 19298, 19302, 19306, 19310, 19313, 19317, 19321, 19325, 19329, 19333, + 19337, 19341, 19345, 19349, 19353, 19357, 19361, 19365, 19369, 19373, + 19376, 19380, 19384, 19388, 19392, 19396, 19400, 19404, 19408, 19412, + 19416, 19420, 19424, 19428, 19432, 19436, 19440, 19444, 19448, 19452, + 19456, 19460, 19464, 19468, 19472, 19476, 19480, 19484, 19488, 19492, + 19496, 19500, 0, 19504, 19508, 19512, 19516, 0, 0, 19520, 19524, 19528, + 19532, 19536, 19540, 19544, 0, 19548, 0, 19552, 19556, 19560, 19564, 0, + 0, 19568, 19572, 19576, 19580, 19584, 19588, 19592, 19596, 19600, 19604, + 19608, 19612, 19616, 19620, 19624, 19628, 19632, 19636, 19640, 19644, + 19648, 19652, 19656, 19659, 19663, 19667, 19671, 19675, 19679, 19683, + 19687, 19691, 19695, 19699, 19703, 19707, 19711, 19715, 19719, 19723, + 19727, 0, 19731, 19735, 19739, 19743, 0, 0, 19747, 19751, 19755, 19759, + 19763, 19767, 19771, 19775, 19779, 19783, 19787, 19791, 19795, 19799, + 19803, 19807, 19811, 19816, 19821, 19826, 19832, 19838, 19843, 19848, + 19854, 19857, 19861, 19865, 19869, 19873, 19877, 19881, 19885, 0, 19889, + 19893, 19897, 19901, 0, 0, 19905, 19909, 19913, 19917, 19921, 19925, + 19929, 0, 19933, 0, 19937, 19941, 19945, 19949, 0, 0, 19953, 19957, + 19961, 19965, 19969, 19973, 19977, 19981, 19985, 19990, 19995, 20000, + 20006, 20012, 20017, 0, 20022, 20026, 20030, 20034, 20038, 20042, 20046, + 20050, 20054, 20058, 20062, 20066, 20070, 20074, 20078, 20082, 20086, + 20089, 20093, 20097, 20101, 20105, 20109, 20113, 20117, 20121, 20125, + 20129, 20133, 20137, 20141, 20145, 20149, 20153, 20157, 20161, 20165, + 20169, 20173, 20177, 20181, 20185, 20189, 20193, 20197, 20201, 20205, + 20209, 20213, 20217, 20221, 20225, 20229, 20233, 20237, 20241, 20245, 0, + 20249, 20253, 20257, 20261, 0, 0, 20265, 20269, 20273, 20277, 20281, + 20285, 20289, 20293, 20297, 20301, 20305, 20309, 20313, 20317, 20321, + 20325, 20329, 20333, 20337, 20341, 20345, 20349, 20353, 20357, 20361, + 20365, 20369, 20373, 20377, 20381, 20385, 20389, 20393, 20397, 20401, + 20405, 20409, 20413, 20417, 20421, 20425, 20429, 20433, 20437, 20441, + 20445, 20449, 20453, 20457, 20461, 20465, 20469, 20473, 20477, 20481, + 20485, 20489, 20492, 20496, 20500, 20504, 20508, 20512, 20516, 20520, + 20524, 20528, 0, 0, 0, 0, 20532, 20537, 20541, 20544, 20549, 20552, + 20555, 20558, 20563, 20567, 20572, 20575, 20578, 20581, 20584, 20587, + 20590, 20593, 20596, 20599, 20603, 20607, 20611, 20615, 20619, 20623, + 20627, 20631, 20635, 20639, 0, 0, 0, 20645, 20651, 20655, 20659, 20663, + 20669, 20673, 20677, 20681, 20687, 20691, 20695, 20699, 20705, 20709, + 20713, 20717, 20723, 20729, 20735, 20743, 20749, 20755, 20761, 20767, + 20773, 0, 0, 0, 0, 0, 0, 20779, 20782, 20785, 20788, 20791, 20794, 20797, + 20801, 20804, 20808, 20812, 20816, 20820, 20824, 20827, 20831, 20835, + 20839, 20843, 20847, 20851, 20855, 20859, 20863, 20867, 20871, 20874, + 20878, 20882, 20886, 20890, 20894, 20898, 20902, 20906, 20910, 20914, + 20918, 20922, 20926, 20930, 20934, 20938, 20942, 20946, 20950, 20953, + 20957, 20961, 20965, 20969, 20973, 20977, 20981, 20985, 20989, 20993, + 20997, 21001, 21005, 21009, 21013, 21017, 21021, 21025, 21029, 21033, + 21037, 21041, 21045, 21049, 21053, 21057, 21061, 21065, 21069, 21073, + 21077, 21081, 21085, 21088, 21092, 21096, 21100, 21104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21108, 21111, 21115, 21118, 21122, 21125, 21129, 21135, + 21140, 21144, 21147, 21151, 21155, 21160, 21164, 21169, 21173, 21178, + 21182, 21187, 21191, 21196, 21202, 21206, 21211, 21215, 21220, 21226, + 21230, 21236, 21242, 21246, 21251, 21259, 21267, 21274, 21279, 21284, + 21293, 21300, 21307, 21312, 21318, 21322, 21326, 21330, 21334, 21338, + 21342, 21346, 21350, 21354, 21358, 21364, 21369, 21374, 21377, 21381, + 21385, 21390, 21394, 21399, 21403, 21408, 21412, 21417, 21421, 21426, + 21430, 21435, 21439, 21444, 21450, 21454, 21459, 21463, 21467, 21471, + 21475, 21479, 21482, 21486, 21492, 21497, 21502, 21506, 21510, 21514, + 21519, 21523, 21528, 21532, 21537, 21540, 21544, 21548, 21553, 21557, + 21562, 21566, 21571, 21577, 21581, 21585, 21589, 21593, 21597, 21601, + 21605, 21609, 21613, 21617, 21621, 21627, 21630, 21634, 21638, 21643, + 21647, 21652, 21656, 21661, 21665, 21670, 21674, 21679, 21683, 21688, + 21692, 21697, 21703, 21707, 21711, 21717, 21723, 21729, 21735, 21739, + 21743, 21747, 21751, 21755, 21759, 21765, 21769, 21773, 21777, 21782, + 21786, 21791, 21795, 21800, 21804, 21809, 21813, 21818, 21822, 21827, + 21831, 21836, 21842, 21846, 21852, 21856, 21860, 21864, 21868, 21872, + 21876, 21882, 21885, 21889, 21893, 21898, 21902, 21907, 21911, 21916, + 21920, 21925, 21929, 21934, 21938, 21943, 21947, 21952, 21958, 21961, + 21965, 21969, 21974, 21979, 21983, 21987, 21991, 21995, 21999, 22003, + 22009, 22013, 22017, 22021, 22026, 22030, 22035, 22039, 22044, 22050, + 22053, 22058, 22062, 22066, 22070, 22074, 22078, 22082, 22086, 22092, + 22096, 22100, 22104, 22109, 22113, 22118, 22122, 22127, 22131, 22136, + 22140, 22145, 22149, 22154, 22158, 22163, 22166, 22170, 22174, 22178, + 22182, 22186, 22190, 22194, 22198, 22204, 22208, 22212, 22216, 22221, + 22225, 22230, 22234, 22239, 22243, 22248, 22252, 22257, 22261, 22266, + 22270, 22275, 22281, 22284, 22289, 22293, 22298, 22304, 22310, 22316, + 22322, 22328, 22334, 22340, 22344, 22348, 22352, 22356, 22360, 22364, + 22368, 22372, 22377, 22381, 22386, 22390, 22395, 22399, 22404, 22408, + 22413, 22417, 22422, 22426, 22431, 22435, 22439, 22443, 22447, 22451, + 22455, 22459, 22465, 22468, 22472, 22476, 22481, 22485, 22490, 22494, + 22499, 22503, 22508, 22512, 22517, 22521, 22526, 22530, 22535, 22541, + 22545, 22551, 22556, 22562, 22566, 22572, 22577, 22581, 22585, 22589, + 22593, 22597, 22602, 22605, 22609, 22614, 22618, 22623, 22626, 22630, + 22634, 22638, 22642, 22646, 22650, 22654, 22658, 22662, 22666, 22670, + 22675, 22679, 22683, 22689, 22693, 22699, 22703, 22709, 22713, 22717, + 22721, 22725, 22729, 22734, 22738, 22742, 22746, 22750, 22754, 22758, + 22762, 22766, 22770, 22774, 22780, 22786, 22792, 22798, 22804, 22809, + 22815, 22820, 22825, 22829, 22833, 22837, 22841, 22845, 22849, 22853, + 22857, 22861, 22865, 22869, 22873, 22877, 22882, 22887, 22892, 22896, + 22900, 22904, 22908, 22912, 22916, 22920, 22924, 22928, 22932, 22938, + 22944, 22950, 22956, 22962, 22968, 22974, 22980, 22986, 22990, 22994, + 22998, 23002, 23006, 23010, 23014, 23020, 23026, 23032, 23038, 23044, + 23050, 23056, 23062, 23068, 23073, 23078, 23083, 23088, 23094, 23100, + 23106, 23112, 23118, 23124, 23130, 23136, 23142, 23148, 23154, 23159, + 23165, 23171, 23177, 23182, 23187, 23192, 23197, 23202, 23207, 23212, + 23217, 23222, 23227, 23232, 23237, 23241, 23246, 23251, 23256, 23261, + 23266, 23271, 23276, 23281, 23286, 23291, 23296, 23301, 23306, 23311, + 23316, 23321, 23326, 23331, 23336, 23341, 23346, 23351, 23356, 23361, + 23366, 23371, 23376, 23381, 23386, 23390, 23395, 23400, 23405, 23410, + 23415, 23420, 23425, 23430, 23435, 23440, 23445, 23450, 23455, 23460, + 23465, 23470, 23475, 23480, 23485, 23490, 23495, 23500, 23505, 23510, + 23515, 23520, 23525, 23530, 23535, 23540, 23545, 23549, 23554, 23559, + 23564, 23569, 23574, 23578, 23583, 23589, 23594, 23599, 23604, 23609, + 23615, 23620, 23625, 23630, 23635, 23640, 23645, 23650, 23655, 23660, + 23665, 23670, 23675, 23680, 23685, 23690, 23695, 23700, 23705, 23710, + 23715, 23720, 23725, 23730, 23735, 23740, 23745, 23750, 23755, 23760, + 23765, 23770, 23775, 23780, 23785, 23790, 23795, 23800, 23805, 23810, + 23815, 23820, 23825, 23830, 23835, 23841, 23846, 23851, 23856, 23861, + 23866, 23871, 23876, 23881, 23886, 23891, 23896, 23901, 23906, 23911, + 23916, 23921, 23926, 23931, 23936, 23941, 23946, 23951, 23956, 23961, + 23966, 23971, 23976, 23981, 23986, 23991, 23996, 24001, 24006, 24011, + 24016, 24021, 24026, 24031, 24037, 24041, 24045, 24049, 24053, 24057, + 24061, 24065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24069, 24074, 24079, 24084, + 24089, 24094, 24099, 24104, 24109, 24114, 24119, 24124, 24129, 24134, + 24139, 24144, 24149, 24154, 24159, 24164, 24169, 24174, 24179, 24184, + 24189, 24194, 24199, 24204, 24209, 0, 0, 0, 24215, 24225, 24228, 24235, + 24239, 24243, 24247, 24255, 24259, 24264, 24269, 24274, 24278, 24283, + 24288, 24291, 24295, 24299, 24308, 24312, 24316, 24322, 24325, 24329, + 24336, 24340, 24348, 24353, 24358, 24363, 24368, 24377, 24382, 24386, + 24395, 24398, 24404, 24408, 24414, 24419, 24425, 24433, 24439, 24444, + 24451, 24456, 24460, 24464, 24474, 24480, 24484, 24494, 24500, 24504, + 24508, 24515, 24522, 24527, 24532, 24541, 24545, 24549, 24553, 24561, + 24568, 24572, 24576, 24580, 24584, 24588, 24592, 24596, 24600, 24604, + 24608, 24612, 24617, 24622, 24627, 24631, 24635, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24639, 24643, 24647, 24651, 24655, 24660, 24665, + 24670, 24675, 24680, 24684, 24689, 24693, 0, 24697, 24702, 24707, 24712, + 24716, 24721, 24726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24731, 24735, + 24739, 24743, 24747, 24752, 24757, 24762, 24767, 24772, 24776, 24781, + 24785, 24789, 24793, 24798, 24803, 24808, 24812, 24817, 24822, 24827, + 24833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24838, 24842, 24846, 24850, 24854, + 24859, 24864, 24869, 24874, 24879, 24883, 24888, 24892, 24896, 24900, + 24905, 24910, 24915, 24919, 24924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24929, 24933, 24937, 24941, 24945, 24950, 24955, 24960, 24965, 24970, + 24974, 24979, 24983, 0, 24987, 24992, 24997, 0, 25002, 25007, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25012, 25015, 25019, 25023, 25027, 25031, 25035, + 25039, 25043, 25047, 25051, 25055, 25059, 25063, 25067, 25071, 25075, + 25079, 25082, 25086, 25090, 25094, 25098, 25102, 25106, 25110, 25114, + 25118, 25122, 25126, 25130, 25134, 25138, 25141, 25145, 25149, 25155, + 25161, 25167, 25173, 25179, 25185, 25191, 25197, 25203, 25209, 25215, + 25221, 25227, 25233, 25242, 25251, 25257, 25263, 25269, 25274, 25278, + 25283, 25288, 25293, 25297, 25302, 25307, 25312, 25316, 25321, 25325, + 25330, 25335, 25340, 25345, 25349, 25353, 25357, 25361, 25365, 25369, + 25373, 25377, 25381, 25385, 25391, 25395, 25399, 25403, 25407, 25411, + 25419, 25425, 25429, 25435, 25439, 25445, 25449, 0, 0, 25453, 25457, + 25460, 25463, 25466, 25469, 25472, 25475, 25478, 25481, 0, 0, 0, 0, 0, 0, + 25484, 25492, 25500, 25508, 25516, 25524, 25532, 25540, 25548, 25556, 0, + 0, 0, 0, 0, 0, 25564, 25567, 25570, 25573, 25578, 25581, 25586, 25593, + 25601, 25606, 25613, 25616, 25623, 25630, 25637, 0, 25641, 25645, 25648, + 25651, 25654, 25657, 25660, 25663, 25666, 25669, 0, 0, 0, 0, 0, 0, 25672, + 25675, 25678, 25681, 25684, 25687, 25691, 25695, 25699, 25703, 25707, + 25711, 25714, 25718, 25722, 25725, 25729, 25733, 25737, 25741, 25745, + 25749, 25753, 25756, 25759, 25763, 25767, 25770, 25774, 25778, 25782, + 25786, 25790, 25794, 25798, 25802, 25809, 25814, 25819, 25824, 25829, + 25835, 25841, 25847, 25853, 25858, 25864, 25870, 25875, 25881, 25887, + 25893, 25899, 25905, 25910, 25916, 25921, 25927, 25933, 25939, 25945, + 25951, 25956, 25961, 25967, 25973, 25978, 25984, 25989, 25995, 26000, + 26005, 26011, 26017, 26023, 26029, 26035, 26041, 26047, 26053, 26059, + 26065, 26071, 26077, 26082, 26087, 26092, 26098, 0, 0, 0, 0, 0, 0, 0, 0, + 26104, 26113, 26122, 26130, 26138, 26148, 26156, 26165, 26172, 26179, + 26186, 26194, 26202, 26210, 26218, 26226, 26234, 26242, 26250, 26257, + 26265, 26273, 26281, 26289, 26297, 26307, 26317, 26327, 26337, 26347, + 26357, 26367, 26377, 26387, 26397, 26407, 26417, 26427, 26437, 26445, + 26453, 26463, 26471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26481, 26486, + 26489, 26493, 26497, 26501, 26505, 26509, 26513, 26517, 26521, 26525, + 26529, 26533, 26537, 26541, 26545, 26548, 26552, 26556, 26560, 26563, + 26566, 26569, 26573, 26577, 26581, 26585, 26589, 0, 0, 0, 26592, 26596, + 26600, 26604, 26609, 26614, 26619, 26624, 26628, 26632, 26637, 26642, 0, + 0, 0, 0, 26648, 26652, 26657, 26662, 26667, 26672, 26676, 26680, 26684, + 26689, 26693, 26697, 0, 0, 0, 0, 26701, 0, 0, 0, 26705, 26709, 26713, + 26717, 26720, 26723, 26726, 26729, 26732, 26735, 26738, 26741, 26744, + 26749, 26755, 26761, 26767, 26773, 26778, 26784, 26790, 26796, 26801, + 26807, 26812, 26818, 26824, 26829, 26835, 26841, 26847, 26853, 26858, + 26863, 26869, 26875, 26880, 26886, 26891, 26897, 26902, 26908, 0, 0, + 26914, 26920, 26926, 26932, 26938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26944, 26951, 26958, 26964, 26971, 26978, 26984, 26991, 26998, 27005, + 27012, 27018, 27025, 27032, 27038, 27045, 27052, 27059, 27066, 27073, + 27080, 27086, 27093, 27099, 27105, 27112, 27118, 27125, 27132, 27139, + 27146, 27153, 27160, 27166, 27173, 27180, 27186, 27193, 27200, 27207, + 27214, 27221, 0, 0, 0, 0, 0, 0, 27228, 27236, 27243, 27250, 27256, 27263, + 27269, 27276, 27282, 27289, 27296, 27303, 27310, 27317, 27324, 27331, + 27338, 27345, 27351, 27358, 27364, 27370, 27377, 27384, 27391, 27397, 0, + 0, 0, 0, 0, 0, 27403, 27409, 27414, 27419, 27424, 27429, 27434, 27439, + 27444, 27449, 0, 0, 0, 0, 27454, 27460, 27466, 27470, 27476, 27482, + 27488, 27494, 27500, 27506, 27512, 27518, 27524, 27530, 27536, 27542, + 27548, 27554, 27560, 27564, 27570, 27576, 27582, 27588, 27594, 27600, + 27606, 27612, 27618, 27624, 27630, 27636, 27642, 27648, 27654, 27658, + 27663, 27668, 27673, 27677, 27682, 27686, 27691, 27696, 27701, 27706, + 27711, 27716, 27721, 27726, 27731, 27735, 27739, 27744, 27749, 27754, + 27758, 27762, 27767, 27772, 27777, 27782, 0, 0, 27788, 27792, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27799, 27805, + 27811, 27815, 27819, 27823, 27827, 27833, 27837, 27843, 27847, 27853, + 27859, 27867, 27873, 27881, 27885, 27889, 27893, 27899, 27902, 27907, + 27911, 27917, 27921, 27925, 27931, 27935, 27941, 27945, 27951, 27959, + 27967, 27975, 27981, 27985, 27991, 27995, 28001, 28005, 28008, 28014, + 28018, 28024, 28027, 28030, 28033, 28037, 28041, 28047, 28053, 28057, + 28060, 28064, 28069, 28074, 28081, 28086, 28093, 28100, 28109, 28116, + 28125, 28130, 28137, 28144, 28153, 28158, 28165, 28170, 28176, 28182, + 28188, 28194, 28200, 28206, 0, 0, 0, 0, 28212, 28216, 28219, 28222, + 28225, 28228, 28231, 28234, 28237, 28240, 28243, 28246, 28249, 28252, + 28257, 28262, 28267, 28270, 28275, 28280, 28285, 28290, 28297, 28302, + 28307, 28312, 28317, 28324, 28330, 28336, 28342, 28348, 28354, 28363, + 28372, 28378, 28384, 28393, 28402, 28411, 28420, 28429, 28438, 28447, + 28456, 0, 0, 0, 28465, 28469, 28473, 28477, 28480, 28483, 28486, 28490, + 28493, 28496, 28500, 28503, 28507, 28511, 28515, 28519, 28523, 28527, + 28531, 28535, 28539, 28543, 28546, 28550, 28554, 28558, 28561, 28564, + 28567, 28571, 28575, 28579, 28583, 28586, 28592, 28598, 28604, 28609, + 28614, 28619, 28624, 28629, 28634, 0, 0, 0, 28638, 28642, 28646, 28650, + 28653, 28656, 28659, 28662, 28665, 28668, 28671, 28674, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28677, 28680, 28684, + 28688, 28692, 28696, 28700, 28704, 28708, 28712, 28716, 28720, 28724, + 28728, 28732, 28735, 28739, 28743, 28747, 28751, 28755, 28759, 28762, + 28766, 28770, 28774, 28778, 28781, 28784, 28788, 28791, 28795, 28799, + 28803, 28807, 28811, 28814, 28819, 28824, 28829, 28833, 28837, 28842, + 28846, 28851, 28855, 28861, 28866, 28871, 28876, 28882, 28887, 28893, + 28899, 28905, 28909, 0, 0, 0, 28913, 28918, 28927, 28932, 28939, 28944, + 28948, 28951, 28954, 28957, 28960, 28963, 28966, 28969, 28972, 0, 0, 0, + 28975, 28979, 28983, 28987, 28994, 29000, 29006, 29012, 29018, 29024, + 29030, 29036, 29042, 29048, 29055, 29062, 29069, 29076, 29083, 29090, + 29097, 29104, 29111, 29118, 29125, 29132, 29139, 29146, 29153, 29160, + 29167, 29174, 29181, 29188, 29195, 29202, 29209, 29216, 29223, 29230, + 29237, 29244, 29251, 29258, 29266, 29274, 29282, 29288, 29294, 29300, + 29308, 29317, 29322, 29328, 29334, 29342, 29348, 29354, 29360, 29365, + 29372, 29377, 29383, 29389, 29397, 29402, 29408, 29413, 29420, 29426, + 29434, 29442, 29448, 29454, 29461, 29468, 29474, 29480, 29486, 29492, + 29497, 29503, 29511, 29518, 29523, 29529, 29535, 29541, 29549, 29553, + 29559, 29565, 29571, 29577, 29583, 29589, 29593, 29598, 29603, 29610, + 29615, 29619, 29624, 29628, 29632, 29636, 29641, 29646, 29650, 29654, + 29658, 29663, 29667, 29672, 29677, 29681, 29686, 29690, 29695, 29699, + 29704, 29709, 29715, 29720, 29725, 29729, 29734, 29740, 29747, 29751, + 29756, 29761, 29765, 29770, 29774, 29780, 29787, 29794, 29799, 29804, + 29808, 29814, 29819, 29823, 29828, 29833, 29839, 29844, 29850, 29855, + 29861, 29867, 29873, 29879, 29886, 29893, 29900, 29907, 29914, 29919, + 29927, 29936, 29945, 29954, 29963, 29972, 29981, 29993, 30002, 30011, + 30020, 30025, 30030, 30036, 30044, 30052, 30059, 30066, 30073, 30080, + 30088, 30097, 30106, 30115, 30124, 30133, 30142, 30151, 30160, 30169, + 30178, 30187, 30196, 30205, 30214, 30222, 30231, 30242, 30250, 30260, + 30271, 30280, 30289, 30299, 30308, 30316, 30325, 30331, 30336, 30344, + 30349, 30356, 30361, 30370, 30375, 30380, 30387, 30392, 30397, 30405, + 30413, 30422, 30431, 30436, 30443, 30453, 30461, 30470, 30475, 30481, + 30486, 30493, 30498, 30507, 30512, 30517, 30522, 30529, 30534, 30539, + 30548, 30556, 30561, 30566, 30573, 30580, 30584, 30588, 30591, 30594, + 30597, 30600, 30603, 30606, 30613, 30616, 30619, 30624, 30628, 30632, + 30636, 30640, 30644, 30654, 30660, 30666, 30672, 30680, 30688, 30694, + 30699, 30705, 30711, 30716, 30722, 30728, 30733, 30739, 30745, 30753, + 30758, 30764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 30770, 30775, 30784, 30792, 30800, 30807, 30814, 30821, 30828, + 30836, 30844, 30854, 30864, 30872, 30880, 30888, 30896, 30905, 30914, + 30922, 30930, 30939, 30948, 30958, 30968, 30977, 30986, 30994, 31002, + 31010, 31018, 31028, 31038, 31046, 31054, 31062, 31070, 31078, 31086, + 31094, 31102, 31109, 31116, 31124, 31132, 31141, 31150, 31159, 31168, + 31178, 31188, 31195, 31202, 31210, 31218, 31227, 31236, 31244, 31252, + 31264, 31276, 31285, 31294, 31303, 31312, 31319, 31326, 31334, 31342, + 31350, 31358, 31366, 31374, 31382, 31390, 31399, 31408, 31417, 31426, + 31435, 31444, 31453, 31462, 31472, 31482, 31491, 31500, 31507, 31514, + 31522, 31530, 31538, 31546, 31554, 31562, 31574, 31586, 31595, 31604, + 31612, 31620, 31628, 31636, 31647, 31658, 31669, 31680, 31692, 31704, + 31712, 31720, 31728, 31736, 31745, 31754, 31763, 31772, 31780, 31788, + 31796, 31804, 31812, 31820, 31829, 31838, 31847, 31856, 31863, 31870, + 31878, 31886, 31894, 31902, 31909, 31916, 31923, 31930, 31938, 31946, + 31954, 31962, 31970, 31978, 31985, 31992, 32000, 32008, 32016, 32024, + 32032, 32040, 32049, 32058, 32067, 32074, 32083, 32092, 32101, 32110, + 32120, 32129, 32135, 32140, 32147, 32154, 32162, 32170, 32179, 32188, + 32198, 32208, 32219, 32230, 32239, 32248, 32258, 32268, 32277, 32286, + 32296, 32306, 32317, 32328, 32337, 32346, 32356, 32366, 32373, 32380, + 32388, 32396, 32402, 32408, 32417, 32426, 32436, 32446, 32457, 32468, + 32477, 32486, 32496, 32506, 32515, 32524, 32532, 32540, 32547, 32554, + 32562, 32570, 32579, 32588, 32598, 32608, 32619, 32630, 32639, 32648, + 32658, 32668, 32677, 32686, 32696, 32706, 32717, 32728, 32737, 32746, + 32756, 32766, 32773, 32780, 32788, 32796, 32805, 32814, 32824, 32834, + 32845, 32856, 32865, 32874, 32884, 32894, 32902, 32910, 32918, 32926, + 32935, 32944, 32951, 32958, 32965, 32972, 32978, 32984, 32992, 33000, + 33008, 33016, 33026, 33036, 33046, 33056, 33066, 33076, 33084, 33092, + 33102, 33112, 33122, 33132, 33142, 33152, 33160, 33168, 33178, 33188, + 33198, 0, 0, 33208, 33216, 33224, 33234, 33244, 33254, 0, 0, 33264, + 33272, 33280, 33290, 33300, 33310, 33320, 33330, 33340, 33348, 33356, + 33366, 33376, 33386, 33396, 33406, 33416, 33424, 33432, 33442, 33452, + 33462, 33472, 33482, 33492, 33500, 33508, 33518, 33528, 33538, 33548, + 33558, 33568, 33576, 33584, 33594, 33604, 33614, 0, 0, 33624, 33632, + 33640, 33650, 33660, 33670, 0, 0, 33680, 33688, 33696, 33706, 33716, + 33726, 33736, 33746, 0, 33756, 0, 33764, 0, 33774, 0, 33784, 33794, + 33802, 33810, 33820, 33830, 33840, 33850, 33860, 33870, 33878, 33886, + 33896, 33906, 33916, 33926, 33936, 33946, 33954, 33962, 33970, 33978, + 33986, 33994, 34002, 34010, 34018, 34026, 34034, 34042, 34050, 0, 0, + 34058, 34068, 34078, 34091, 34104, 34117, 34130, 34143, 34156, 34166, + 34176, 34189, 34202, 34215, 34228, 34241, 34254, 34264, 34274, 34287, + 34300, 34313, 34326, 34339, 34352, 34362, 34372, 34385, 34398, 34411, + 34424, 34437, 34450, 34460, 34470, 34483, 34496, 34509, 34522, 34535, + 34548, 34558, 34568, 34581, 34594, 34607, 34620, 34633, 34646, 34654, + 34662, 34673, 34681, 0, 34692, 34700, 34711, 34719, 34727, 34735, 34743, + 34751, 34754, 34757, 34760, 34763, 34769, 34780, 34788, 0, 34799, 34807, + 34818, 34826, 34834, 34842, 34850, 34858, 34863, 34868, 34873, 34881, + 34889, 34900, 0, 0, 34911, 34919, 34930, 34938, 34946, 34954, 0, 34962, + 34967, 34972, 34977, 34985, 34993, 35004, 35015, 35023, 35031, 35039, + 35050, 35058, 35066, 35074, 35082, 35090, 35096, 35102, 0, 0, 35105, + 35116, 35124, 0, 35135, 35143, 35154, 35162, 35170, 35178, 35186, 35194, + 35197, 0, 35200, 35204, 35208, 35212, 35216, 35220, 35224, 35228, 35232, + 35236, 35240, 35244, 35250, 35256, 35262, 35265, 35268, 35270, 35274, + 35278, 35282, 35286, 35288, 35292, 35296, 35302, 35308, 35315, 35322, + 35327, 35332, 35338, 35344, 35346, 35349, 35351, 35355, 35359, 35363, + 35366, 35370, 35374, 35378, 35382, 35386, 35392, 35396, 35400, 35406, + 35411, 35418, 35420, 35423, 35427, 35430, 35434, 35439, 35441, 35450, + 35459, 35462, 35466, 35468, 35470, 35472, 35475, 35481, 35483, 35487, + 35491, 35498, 35505, 35509, 35514, 35519, 35524, 35528, 35532, 35536, + 35539, 35542, 35546, 35553, 35558, 35562, 35566, 35571, 35575, 35579, + 35584, 35589, 35593, 35597, 35601, 35603, 35608, 35613, 35617, 35621, + 35625, 35629, 0, 0, 0, 0, 0, 35633, 35639, 35645, 35651, 35657, 35662, + 35667, 35671, 0, 0, 35677, 35680, 35683, 35686, 35689, 35692, 35695, + 35699, 35703, 35708, 35713, 35718, 35724, 35728, 35731, 35734, 35737, + 35740, 35743, 35746, 35749, 35752, 35755, 35759, 35763, 35768, 35773, 0, + 35778, 35784, 35790, 35796, 35803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35810, 35813, 35816, 35819, 35824, 35827, 35830, 35833, 35836, 35839, + 35842, 35846, 35849, 35852, 35855, 35858, 35861, 35866, 35869, 35872, + 35875, 35878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35881, 35886, 35891, 35898, 35906, 35911, 35916, 35920, + 35924, 35929, 35936, 35943, 35947, 35952, 35957, 35962, 35967, 35974, + 35979, 35984, 35989, 35998, 36005, 36011, 36015, 36020, 36026, 36031, + 36038, 36046, 36054, 36058, 36062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 36066, 36070, 36077, 36081, 36085, 36090, 36094, 36098, 36102, + 36104, 36108, 36111, 36114, 36118, 36121, 36125, 36133, 36136, 36140, + 36143, 36146, 36152, 36155, 36158, 36164, 36168, 36172, 36176, 36179, + 36183, 36186, 36190, 36192, 36195, 36198, 36202, 36204, 36208, 36211, + 36214, 36219, 36224, 36230, 36233, 36236, 36240, 36245, 36248, 36251, + 36254, 36258, 36262, 36265, 36268, 36270, 36273, 36276, 36279, 36283, + 36288, 36291, 36295, 36299, 36303, 36307, 36312, 36316, 36320, 36324, + 36329, 36334, 36339, 36343, 36347, 36352, 36356, 36359, 36362, 36364, + 36368, 0, 0, 0, 36374, 36381, 36388, 36395, 36402, 36409, 36417, 36424, + 36432, 36439, 36446, 36454, 36462, 36467, 36471, 36475, 36479, 36483, + 36487, 36491, 36495, 36499, 36503, 36508, 36513, 36518, 36523, 36529, + 36536, 36542, 36547, 36552, 36557, 36562, 36567, 36572, 36577, 36582, + 36587, 36593, 36599, 36605, 36611, 36618, 36626, 36633, 36643, 36650, + 36657, 36664, 36670, 36678, 36686, 36693, 0, 0, 0, 0, 0, 0, 0, 36701, + 36703, 36706, 36708, 36711, 36714, 36717, 36722, 36727, 36732, 36737, + 36741, 36745, 36749, 36753, 36758, 36764, 36769, 36775, 36780, 36785, + 36790, 36796, 36801, 36807, 36813, 36817, 36821, 36826, 36831, 36836, + 36841, 36846, 36854, 36862, 36870, 36878, 36885, 36893, 36900, 36907, + 36915, 36925, 36932, 36939, 36946, 36953, 36961, 36969, 36976, 36983, + 36991, 36999, 37004, 37012, 37017, 37022, 37028, 37033, 37039, 37046, + 37053, 37058, 37064, 37069, 37072, 37076, 37079, 37083, 37087, 37091, + 37097, 37103, 37109, 37115, 37119, 37123, 37127, 37131, 37137, 37143, + 37147, 37152, 37156, 37161, 37165, 37169, 37172, 37176, 37179, 37183, + 37190, 37198, 37209, 37220, 37225, 37234, 37241, 37249, 37257, 37261, + 37267, 37275, 37279, 37284, 37289, 37295, 37301, 37307, 37314, 37318, + 37322, 37327, 37330, 37332, 37336, 37340, 37347, 37351, 37353, 37355, + 37359, 37366, 37371, 37377, 37386, 37393, 37398, 37402, 37406, 37410, + 37413, 37416, 37419, 37423, 37427, 37431, 37435, 37439, 37442, 37446, + 37450, 37453, 37455, 37458, 37460, 37464, 37468, 37470, 37475, 37478, + 37482, 37486, 37490, 37492, 37494, 37496, 37499, 37503, 37507, 37511, + 37515, 37519, 37525, 37531, 37533, 37535, 37537, 37539, 37542, 37544, + 37548, 37550, 37554, 37556, 37561, 37565, 37569, 37571, 37574, 37578, + 37583, 37587, 37596, 37606, 37610, 37615, 37621, 37624, 37628, 37631, + 37636, 37640, 37646, 37650, 37661, 37669, 37673, 37677, 37683, 37687, + 37690, 37692, 37695, 37699, 37703, 37709, 37713, 37717, 37720, 37723, + 37727, 37732, 37737, 37742, 37747, 37752, 37759, 37766, 37770, 37774, + 37776, 37780, 37783, 37786, 37794, 37802, 37808, 37814, 37823, 37832, + 37837, 37842, 37850, 37858, 37860, 37862, 37867, 37872, 37878, 37884, + 37889, 37894, 37898, 37902, 37908, 37914, 37920, 37926, 37936, 37946, + 37953, 37960, 37962, 37966, 37970, 37975, 37980, 37987, 37994, 37997, + 38000, 38003, 38006, 38009, 38014, 38018, 38023, 38028, 38031, 38034, + 38038, 38042, 38046, 38051, 38054, 38057, 38060, 38063, 38065, 38067, + 38069, 38071, 38079, 38087, 38092, 38095, 38100, 38110, 38116, 38122, + 38128, 38136, 38144, 38155, 38159, 38163, 38165, 38171, 38173, 38175, + 38177, 38179, 38185, 38188, 38194, 38200, 38204, 38208, 38212, 38215, + 38219, 38223, 38225, 38234, 38243, 38248, 38253, 38258, 38264, 38270, + 38273, 38276, 38279, 38282, 38284, 38289, 38294, 38299, 38305, 38311, + 38318, 38325, 38330, 38335, 38340, 38345, 38353, 38361, 38369, 38377, + 38385, 38393, 38401, 38409, 38417, 38425, 38432, 38443, 38452, 38466, + 38469, 38474, 38480, 38486, 38493, 38507, 38522, 38528, 38534, 38541, + 38547, 38555, 38561, 38574, 38588, 38593, 38599, 38606, 38609, 38612, + 38614, 38617, 38620, 38622, 38624, 38628, 38631, 38634, 38637, 38640, + 38645, 38650, 38655, 38660, 38663, 38666, 38668, 38670, 38672, 38676, + 38680, 38684, 38690, 38693, 38695, 38697, 38702, 38707, 38712, 38717, + 38722, 38727, 38729, 38731, 38740, 38744, 38751, 38760, 38762, 38767, + 38772, 38779, 38783, 38785, 38789, 38791, 38795, 38799, 38803, 38805, + 38807, 38809, 38814, 38821, 38828, 38835, 38842, 38849, 38856, 38863, + 38870, 38876, 38882, 38889, 38896, 38903, 38910, 38916, 38922, 38929, + 38936, 38943, 38951, 38958, 38966, 38973, 38981, 38988, 38996, 39004, + 39011, 39019, 39026, 39034, 39041, 39049, 39056, 39063, 39070, 39077, + 39084, 39092, 39099, 39106, 39113, 39120, 39126, 39132, 39138, 39144, + 39152, 39160, 39166, 39172, 39178, 39184, 39189, 39195, 39202, 39210, + 39217, 39224, 39231, 39236, 39241, 39246, 39253, 39260, 39267, 39274, + 39279, 39283, 39292, 39298, 39301, 39309, 39312, 39317, 39322, 39325, + 39328, 39336, 39339, 39344, 39347, 39354, 39359, 39367, 39370, 39373, + 39376, 39381, 39386, 39389, 39392, 39399, 39402, 39407, 39414, 39418, + 39422, 39427, 39432, 39438, 39443, 39448, 39454, 39459, 39464, 39472, + 39478, 39485, 39493, 39499, 39506, 39514, 39523, 39530, 39536, 39544, + 39553, 39560, 39564, 39569, 39581, 39593, 39597, 39601, 39605, 39609, + 39619, 39623, 39628, 39633, 39638, 39643, 39648, 39653, 39663, 39673, + 39681, 39691, 39701, 39709, 39719, 39729, 39737, 39747, 39757, 39765, + 39773, 39783, 39793, 39796, 39799, 39802, 39807, 39811, 39817, 39824, + 39831, 39839, 39846, 39850, 39854, 39858, 39862, 39864, 39868, 39872, + 39877, 39882, 39889, 39896, 39899, 39906, 39908, 39910, 39914, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39918, + 39922, 39929, 39936, 39943, 39950, 39954, 39958, 39962, 39966, 39971, + 39977, 39982, 39987, 39993, 39999, 40005, 40013, 40020, 40027, 40034, + 40041, 40047, 40053, 40062, 40066, 40073, 40077, 40081, 40087, 40093, + 40099, 40105, 40109, 40113, 40116, 40120, 40124, 40130, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40136, 40139, + 40143, 40147, 40153, 40159, 40165, 40173, 40180, 40184, 40192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40197, 40200, + 40203, 40206, 40209, 40212, 40215, 40218, 40221, 40224, 40228, 40232, + 40236, 40240, 40244, 40248, 40252, 40256, 40260, 40264, 40268, 40271, + 40274, 40277, 40280, 40283, 40286, 40289, 40292, 40295, 40299, 40303, + 40307, 40311, 40315, 40319, 40323, 40327, 40331, 40335, 40339, 40345, + 40351, 40357, 40364, 40371, 40378, 40385, 40392, 40399, 40406, 40413, + 40420, 40427, 40434, 40441, 40448, 40455, 40462, 40469, 40476, 40481, + 40487, 40493, 40499, 40504, 40510, 40515, 40520, 40525, 40531, 40537, + 40542, 40547, 40552, 40557, 40563, 40569, 40574, 40579, 40585, 40590, + 40595, 40601, 40607, 40613, 40619, 40624, 40630, 40636, 40642, 40647, + 40653, 40658, 40663, 40668, 40674, 40680, 40685, 40690, 40695, 40700, + 40706, 40712, 40717, 40722, 40728, 40733, 40738, 40744, 40750, 40756, + 40762, 40767, 40773, 40779, 40785, 40790, 40796, 40801, 40806, 40811, + 40817, 40823, 40828, 40833, 40838, 40843, 40849, 40855, 40860, 40865, + 40871, 40876, 40881, 40887, 40893, 40899, 40905, 40909, 40915, 40921, + 40927, 40933, 40939, 40945, 40951, 40957, 40963, 40969, 40973, 40977, + 40981, 40985, 40989, 40993, 40997, 41001, 41005, 41010, 41016, 41021, + 41026, 41031, 41036, 41045, 41054, 41063, 41072, 41081, 41090, 41099, + 41108, 41115, 41123, 41131, 41138, 41145, 41153, 41161, 41168, 41175, + 41183, 41191, 41198, 41205, 41213, 41221, 41228, 41235, 41243, 41252, + 41261, 41269, 41278, 41287, 41294, 41301, 41309, 41318, 41327, 41335, + 41344, 41353, 41360, 41367, 41376, 41385, 41393, 41401, 41410, 41419, + 41426, 41433, 41442, 41451, 41459, 41467, 41476, 41485, 41492, 41499, + 41508, 41517, 41525, 41534, 41543, 41551, 41561, 41571, 41581, 41591, + 41600, 41609, 41618, 41627, 41634, 41642, 41650, 41658, 41666, 41671, + 41676, 41685, 41693, 41700, 41709, 41717, 41724, 41733, 41741, 41748, + 41757, 41765, 41772, 41781, 41789, 41796, 41805, 41813, 41820, 41829, + 41837, 41844, 41853, 41861, 41868, 41877, 41885, 41892, 41901, 41910, + 41919, 41928, 41940, 41952, 41959, 41964, 41969, 41974, 41979, 41984, + 41989, 41994, 41999, 42007, 42015, 42023, 42031, 42036, 42042, 42048, + 42054, 42058, 42065, 42071, 42078, 42082, 42089, 42095, 42102, 42106, + 42112, 42118, 42124, 42128, 42131, 42135, 42139, 42146, 42152, 42157, + 42162, 42168, 42180, 42189, 42202, 42215, 42221, 42230, 42242, 42245, + 42248, 42255, 42263, 42268, 42273, 42281, 42291, 42301, 42309, 42313, + 42317, 42320, 42323, 42327, 42331, 42334, 42337, 42342, 42347, 42353, + 42359, 42364, 42369, 42375, 42381, 42386, 42391, 42396, 42401, 42407, + 42413, 42418, 42423, 42429, 42435, 42440, 42445, 42448, 42451, 42460, + 42462, 42464, 42467, 42471, 42477, 42479, 42482, 42489, 42496, 42503, + 42511, 42521, 42535, 42540, 42545, 42549, 42554, 42562, 42569, 42578, + 42587, 42595, 42603, 42608, 42612, 42617, 42622, 42628, 42634, 42637, + 42643, 42649, 42659, 42668, 42676, 42684, 42693, 42702, 42706, 42714, + 42721, 42728, 42736, 42745, 42753, 42761, 42770, 42775, 42780, 42784, + 42789, 42794, 42800, 42806, 42810, 42816, 42818, 42820, 42822, 42824, + 42827, 42830, 42832, 42834, 42836, 42840, 42844, 42846, 42848, 42851, + 42854, 42858, 42864, 42870, 42872, 42879, 42883, 42888, 42893, 42895, + 42904, 42910, 42916, 42922, 42928, 42934, 42940, 42945, 42948, 42951, + 42954, 42956, 42958, 42962, 42966, 42971, 42976, 42981, 42984, 42988, + 42993, 42996, 43000, 43005, 43010, 43015, 43020, 43025, 43030, 43035, + 43040, 43045, 43050, 43055, 43060, 43066, 43072, 43078, 43080, 43083, + 43085, 43088, 43090, 43092, 43094, 43096, 43098, 43100, 43102, 43104, + 43106, 43108, 43110, 43112, 43114, 43116, 43118, 43120, 43122, 43127, + 43132, 43137, 43142, 43147, 43152, 43157, 43162, 43167, 43172, 43177, + 43182, 43187, 43192, 43197, 43202, 43207, 43212, 43217, 43222, 43226, + 43230, 43234, 43240, 43246, 43251, 43256, 43261, 43266, 43271, 43276, + 43284, 43292, 43300, 43308, 43316, 43324, 43332, 43340, 43346, 43351, + 43356, 43361, 43364, 43368, 43372, 43376, 43380, 43384, 43388, 43395, + 43402, 43410, 43418, 43423, 43428, 43435, 43442, 43449, 43456, 43459, + 43462, 43467, 43469, 43473, 43478, 43480, 43482, 43484, 43486, 43491, + 43494, 43496, 0, 0, 43501, 43504, 43508, 43513, 43518, 43526, 43532, + 43537, 43548, 43554, 43560, 43565, 43570, 43576, 43579, 43582, 43587, + 43589, 43593, 43595, 43597, 43599, 43601, 43603, 43605, 43610, 43612, + 43614, 43616, 0, 0, 0, 43618, 43623, 43628, 43633, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 43638, 43644, 43647, 43652, 0, 43655, 43660, 43664, + 43666, 0, 0, 43668, 43672, 43676, 43680, 43682, 43687, 43690, 43693, + 43696, 43700, 43704, 43709, 43713, 43718, 43723, 43727, 43733, 43740, + 43743, 43749, 43754, 43758, 43763, 43769, 43775, 43782, 43788, 43795, 0, + 43802, 43809, 43813, 43820, 43826, 43831, 43837, 43841, 43846, 43849, + 43855, 43861, 43868, 43876, 43883, 43892, 43902, 43909, 43915, 43919, + 43927, 43932, 43941, 43944, 43947, 43956, 43967, 43974, 43976, 43982, + 43987, 43989, 43992, 43996, 44004, 0, 44013, 0, 44018, 44025, 44033, + 44040, 0, 0, 0, 44048, 0, 44056, 44059, 44063, 44066, 44077, 44087, + 44097, 0, 0, 44106, 44115, 44121, 44129, 44133, 44141, 44145, 44153, + 44160, 44167, 44176, 44185, 44195, 44205, 44215, 44225, 44234, 44243, + 44253, 44263, 44272, 44281, 44288, 44295, 44302, 44309, 44316, 44323, + 44330, 44337, 44344, 44352, 44358, 44364, 44370, 44376, 44382, 44388, + 44394, 44400, 44406, 44413, 44421, 44429, 44437, 44445, 44453, 44461, + 44469, 44477, 44485, 44494, 0, 0, 0, 44499, 44505, 44508, 44514, 44520, + 44525, 44529, 44534, 44540, 44547, 44550, 44557, 44564, 44568, 44577, + 44586, 44591, 44597, 44602, 44607, 44614, 44621, 44628, 44636, 0, 44644, + 44653, 44658, 44662, 44669, 44673, 44680, 44688, 44693, 44701, 44705, + 44710, 44714, 44719, 0, 44723, 44728, 44737, 44739, 44743, 44747, 44754, + 44761, 44766, 44774, 44780, 0, 44786, 0, 0, 0, 44789, 44797, 44801, + 44808, 44815, 44823, 44828, 44833, 44839, 44844, 44849, 44855, 44860, + 44863, 44867, 44871, 44878, 44887, 44892, 44901, 44910, 44916, 44922, + 44927, 44932, 44937, 44942, 44948, 44954, 44962, 44970, 44976, 44982, + 44987, 44992, 44999, 45006, 45012, 45015, 45018, 45022, 45026, 45030, + 45035, 45041, 45047, 45054, 45061, 45066, 45070, 45074, 45078, 45082, + 45086, 45090, 45094, 45098, 45102, 45106, 45110, 45114, 45118, 45122, + 45126, 45130, 45134, 45138, 45142, 45146, 45150, 45154, 45158, 45162, + 45166, 45170, 45174, 45178, 45182, 45186, 45190, 45194, 45198, 45202, + 45206, 45210, 45214, 45218, 45222, 45226, 45230, 45234, 45238, 45242, + 45246, 45250, 45254, 45258, 45262, 45266, 45270, 45274, 45278, 45282, + 45286, 45290, 45294, 45298, 45302, 45306, 45310, 45314, 45318, 45322, + 45326, 45330, 45334, 45338, 45342, 45346, 45350, 45354, 45358, 45362, + 45366, 45370, 45374, 45378, 45382, 45386, 45390, 45394, 45398, 45402, + 45406, 45410, 45414, 45418, 45422, 45426, 45430, 45434, 45438, 45442, + 45446, 45450, 45454, 45458, 45462, 45466, 45470, 45474, 45478, 45482, + 45486, 45490, 45494, 45498, 45502, 45506, 45510, 45514, 45518, 45522, + 45526, 45530, 45534, 45538, 45542, 45546, 45550, 45554, 45558, 45562, + 45566, 45570, 45574, 45578, 45582, 45586, 45590, 45594, 45598, 45602, + 45606, 45610, 45614, 45618, 45622, 45626, 45630, 45634, 45638, 45642, + 45646, 45650, 45654, 45658, 45662, 45666, 45670, 45674, 45678, 45682, + 45686, 45690, 45694, 45698, 45702, 45706, 45710, 45714, 45718, 45722, + 45726, 45730, 45734, 45738, 45742, 45746, 45750, 45754, 45758, 45762, + 45766, 45770, 45774, 45778, 45782, 45786, 45790, 45794, 45798, 45802, + 45806, 45810, 45814, 45818, 45822, 45826, 45830, 45834, 45838, 45842, + 45846, 45850, 45854, 45858, 45862, 45866, 45870, 45874, 45878, 45882, + 45886, 45890, 45894, 45898, 45902, 45906, 45910, 45914, 45918, 45922, + 45926, 45930, 45934, 45938, 45942, 45946, 45950, 45954, 45958, 45962, + 45966, 45970, 45974, 45978, 45982, 45986, 45990, 45994, 45998, 46002, + 46006, 46010, 46014, 46018, 46022, 46026, 46030, 46034, 46038, 46042, + 46046, 46050, 46054, 46058, 46062, 46066, 46070, 46074, 46078, 46082, + 46086, 46090, 46097, 46105, 46111, 46117, 46124, 46131, 46137, 46143, + 46149, 46155, 46160, 46165, 46170, 46175, 46181, 46187, 46195, 46202, + 46207, 46212, 46220, 46229, 46236, 46246, 46257, 46260, 46263, 46267, + 46271, 46277, 46283, 46293, 46303, 46313, 46323, 46330, 46337, 46344, + 46351, 46362, 46373, 46384, 46395, 46405, 46415, 46427, 46439, 46450, + 46461, 46473, 46485, 46494, 46504, 46514, 46525, 46536, 46543, 46550, + 46557, 46564, 46574, 46584, 46591, 46598, 46605, 46612, 46619, 46626, + 46633, 46638, 46643, 46649, 46657, 46667, 46675, 46683, 46691, 46699, + 46707, 46715, 46723, 46731, 46739, 46747, 46756, 46765, 46773, 46781, + 46790, 46799, 46808, 46817, 46827, 46837, 46846, 46855, 46865, 46875, + 46889, 46906, 46920, 46937, 46951, 46965, 46979, 46993, 47003, 47014, + 47024, 47035, 47052, 47069, 47077, 47083, 47090, 47097, 47104, 47111, + 47116, 47122, 47127, 47132, 47138, 47143, 47148, 47153, 47158, 47163, + 47170, 47175, 47182, 47187, 47192, 47196, 47200, 47207, 47214, 47221, + 47228, 47235, 47242, 47255, 47268, 47281, 47294, 47302, 47310, 47316, + 47322, 47329, 47336, 47343, 47350, 47354, 47359, 47367, 47375, 47383, + 47390, 47394, 47402, 47410, 47413, 47416, 47421, 47427, 47435, 47443, + 47463, 47483, 47503, 47523, 47543, 47563, 47583, 47603, 47608, 47615, + 47624, 47632, 47640, 47645, 47648, 47651, 47656, 47659, 47678, 47685, + 47691, 47697, 47701, 47704, 47707, 47710, 47721, 47733, 47741, 47749, + 47753, 47758, 47762, 47767, 47772, 47777, 47783, 47792, 47799, 47806, + 47814, 47821, 47828, 47831, 47837, 47843, 47846, 47849, 47854, 47859, + 47865, 47871, 47875, 47880, 47887, 47891, 47897, 47901, 47905, 47913, + 47925, 47933, 47937, 47939, 47948, 47957, 47963, 47966, 47972, 47978, + 47983, 47988, 47993, 47998, 48003, 48008, 48010, 48016, 48021, 48028, + 48032, 48038, 48041, 48045, 48052, 48059, 48061, 48063, 48069, 48075, + 48081, 48090, 48099, 48106, 48113, 48119, 48125, 48130, 48135, 48140, + 48146, 48152, 48157, 48164, 48168, 48172, 48185, 48198, 48209, 48218, + 48224, 48231, 48236, 48241, 48246, 48251, 48256, 48258, 48265, 48272, + 48279, 48286, 48293, 48301, 48307, 48312, 48318, 48324, 48330, 48337, + 48343, 48351, 48359, 48367, 48375, 48382, 48388, 48394, 48403, 48407, + 48416, 48425, 48434, 48442, 48446, 48452, 48459, 48466, 48470, 48476, + 48483, 48488, 48493, 48499, 48504, 48509, 48516, 48523, 48528, 48533, + 48541, 48549, 48559, 48569, 48576, 48583, 48587, 48591, 48603, 48609, + 48615, 48620, 48625, 48632, 48639, 48645, 48651, 48660, 48668, 48676, + 48683, 48690, 48697, 48703, 48710, 48716, 48723, 48730, 48737, 48744, + 48750, 48755, 48764, 48774, 48781, 48790, 48796, 48801, 48806, 48815, + 48821, 48827, 48833, 48841, 48846, 48853, 48860, 48871, 48878, 48885, + 48892, 48899, 48906, 48913, 48920, 48931, 48942, 48952, 48962, 48974, + 48986, 48991, 48996, 49004, 49012, 49018, 49024, 49033, 49042, 49050, + 49058, 49066, 49074, 49084, 49094, 49108, 49122, 49129, 49136, 49147, + 49158, 49165, 49172, 49181, 49190, 49195, 49200, 49209, 49218, 49223, + 49228, 49236, 49242, 49248, 49256, 49264, 49277, 49290, 49294, 49298, + 49305, 49312, 49319, 49327, 49335, 49343, 49351, 49357, 49363, 49369, + 49375, 49382, 49389, 49397, 49405, 49408, 49411, 49416, 49421, 49427, + 49433, 49440, 49447, 49456, 49465, 49472, 49479, 49487, 49495, 49503, + 49511, 49518, 49525, 49532, 49539, 49543, 49547, 49554, 49561, 49566, + 49571, 49576, 49581, 49587, 49601, 49608, 49615, 49619, 49621, 49623, + 49628, 49633, 49638, 49642, 49650, 49657, 49664, 49672, 49684, 49692, + 49700, 49711, 49715, 49719, 49723, 49728, 49739, 49746, 49753, 49760, + 49765, 49772, 49781, 49789, 49795, 49801, 49807, 49816, 49825, 49833, + 49842, 49847, 49850, 49855, 49861, 49867, 49873, 49879, 49883, 49886, + 49890, 49894, 49900, 49906, 49912, 49918, 49922, 49926, 49933, 49940, + 49947, 49954, 49961, 49968, 49978, 49987, 49994, 50001, 50009, 50017, + 50021, 50026, 50031, 50037, 50043, 50046, 50049, 50052, 50055, 50059, + 50064, 50069, 50074, 50079, 50084, 50088, 50092, 50096, 50100, 50104, + 50108, 50112, 50118, 50122, 50128, 50133, 50140, 50148, 50155, 50163, + 50170, 50178, 50187, 50194, 50204, 50215, 50221, 50230, 50236, 50245, + 50254, 50260, 50266, 50270, 50274, 50283, 50292, 50299, 50306, 50315, 0, + 0, 0, 50324, 50329, 50333, 50337, 50342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50347, 50352, 50357, 50362, 50367, 50372, 50377, + 50382, 50387, 50392, 50397, 50403, 50407, 50412, 50417, 50422, 50427, + 50432, 50437, 50442, 50447, 50452, 50457, 50462, 50467, 50472, 50477, + 50482, 50487, 50492, 50497, 50502, 50507, 50512, 50517, 50523, 50528, + 50534, 50543, 50548, 50556, 50563, 50572, 50577, 50582, 50587, 50593, 0, + 50600, 50605, 50610, 50615, 50620, 50625, 50630, 50635, 50640, 50645, + 50650, 50656, 50660, 50665, 50670, 50675, 50680, 50685, 50690, 50695, + 50700, 50705, 50710, 50715, 50720, 50725, 50730, 50735, 50740, 50745, + 50750, 50755, 50760, 50765, 50770, 50776, 50781, 50787, 50796, 50801, + 50809, 50816, 50825, 50830, 50835, 50840, 50846, 0, 50853, 50861, 50869, + 50878, 50885, 50893, 50899, 50908, 50916, 50924, 50932, 50940, 50948, + 50956, 50961, 50968, 0, 50973, 50981, 50988, 50995, 51003, 51008, 51013, + 51020, 51027, 51036, 51046, 51052, 51059, 0, 0, 51063, 51068, 51073, + 51078, 51083, 51088, 51093, 51098, 51103, 51108, 51113, 51118, 51123, + 51128, 51133, 51138, 51143, 51148, 51153, 51158, 51163, 51168, 51173, + 51178, 51183, 51188, 51193, 51198, 51203, 51208, 51213, 51217, 51221, + 51226, 51231, 51236, 51241, 51246, 51251, 51256, 51261, 51266, 51271, + 51276, 51281, 51286, 51291, 51296, 51301, 51306, 51311, 51318, 51325, + 51332, 51339, 51346, 51353, 51360, 51367, 51374, 51381, 51388, 51395, + 51402, 51409, 51414, 51419, 51426, 51433, 51440, 51447, 51454, 51461, + 51468, 51475, 51482, 51489, 51496, 51503, 51509, 51515, 51521, 51527, + 51534, 51541, 51548, 51555, 51562, 51569, 51576, 51583, 51590, 51597, + 51605, 51613, 51621, 51629, 51637, 51645, 51653, 51661, 51665, 51671, + 51677, 51681, 51687, 51693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51699, 51707, 51716, 51725, 51733, 51739, 51744, 51749, 51754, 51759, + 51764, 51769, 51774, 51779, 51784, 51789, 51794, 51799, 51804, 51809, + 51814, 51819, 51824, 51829, 51834, 51839, 51844, 51849, 51854, 51859, + 51864, 51869, 51874, 51879, 51884, 51889, 51894, 51899, 51904, 51909, + 51914, 51919, 51924, 51929, 51934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51939, + 51942, 51946, 51950, 51954, 51958, 51966, 51970, 51974, 51978, 51982, + 51986, 51990, 51994, 51998, 52004, 52008, 52012, 52020, 52026, 52030, + 52034, 52038, 52044, 52048, 52054, 52058, 52062, 52068, 52074, 52078, + 52082, 52086, 52092, 52098, 52102, 52106, 52110, 52114, 52118, 52124, + 52130, 52134, 52138, 52142, 52146, 52150, 52154, 52158, 52162, 52166, + 52170, 52174, 52180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52184, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52190, 52194, 52198, 52202, 52206, 52210, + 52214, 52218, 52222, 52226, 52230, 52236, 52240, 52244, 52248, 52252, + 52256, 52260, 52264, 52268, 52272, 52276, 52280, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 52284, 52288, 52292, 52296, 52300, 52304, 52308, 0, 52312, 52316, + 52320, 52324, 52328, 52332, 52336, 0, 52340, 52344, 52348, 52352, 52356, + 52360, 52364, 0, 52368, 52372, 52376, 52380, 52384, 52388, 52392, 0, + 52396, 52400, 52404, 52408, 52412, 52416, 52420, 0, 52424, 52428, 52432, + 52436, 52440, 52444, 52448, 0, 52452, 52456, 52460, 52464, 52468, 52472, + 52476, 0, 52480, 52484, 52488, 52492, 52496, 52500, 52504, 0, 52508, + 52513, 52518, 52523, 52528, 52533, 52538, 52542, 52547, 52552, 52557, + 52561, 52566, 52571, 52576, 52581, 52585, 52590, 52595, 52600, 52605, + 52610, 52615, 52619, 52624, 52629, 52636, 52641, 52646, 52652, 52659, + 52666, 52675, 52682, 52691, 52695, 52699, 52705, 52711, 52717, 52725, + 52731, 52735, 52739, 52743, 52749, 52755, 52759, 52761, 52765, 52770, + 52772, 52776, 52780, 52784, 52790, 52795, 52799, 52803, 52807, 52813, + 52818, 52823, 52828, 52833, 52840, 52847, 52852, 52857, 52862, 52867, + 52872, 52877, 52881, 52885, 52892, 52899, 52906, 52910, 52914, 52916, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52920, 52924, 52928, 52933, 52938, 52943, 52947, 52951, + 52955, 52960, 52965, 52969, 52973, 52977, 52981, 52986, 52991, 52996, + 53001, 53005, 53009, 53014, 53019, 53024, 53029, 53033, 0, 53037, 53041, + 53045, 53049, 53053, 53057, 53061, 53066, 53071, 53075, 53080, 53085, + 53094, 53098, 53102, 53106, 53113, 53117, 53122, 53127, 53131, 53135, + 53141, 53146, 53151, 53156, 53161, 53165, 53169, 53173, 53177, 53181, + 53186, 53191, 53195, 53199, 53204, 53209, 53214, 53218, 53222, 53227, + 53232, 53238, 53244, 53248, 53254, 53260, 53264, 53270, 53276, 53281, + 53286, 53290, 53296, 53300, 53304, 53310, 53316, 53321, 53326, 53330, + 53334, 53342, 53348, 53354, 53360, 53365, 53370, 53375, 53381, 53385, + 53391, 53395, 53399, 53405, 53411, 53417, 53423, 53429, 53435, 53441, + 53447, 53453, 53459, 53465, 53471, 53475, 53481, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53487, 53490, 53494, 53498, 53502, 53506, 53509, 53512, + 53516, 53520, 53524, 53528, 53531, 53536, 53540, 53544, 53548, 53554, + 53558, 53562, 53566, 53570, 53577, 53583, 53587, 53591, 53595, 53599, + 53603, 53607, 53611, 53615, 53619, 53623, 53627, 53633, 53637, 53641, + 53645, 53649, 53653, 53657, 53661, 53665, 53669, 53673, 53677, 53681, + 53685, 53689, 53693, 53697, 53703, 53709, 53714, 53719, 53723, 53727, + 53731, 53735, 53739, 53743, 53747, 53751, 53755, 53759, 53763, 53767, + 53771, 53775, 53779, 53783, 53787, 53791, 53795, 53799, 53803, 53807, + 53811, 53815, 53821, 53825, 53829, 53833, 53837, 53841, 53845, 53849, + 53853, 53858, 53865, 53869, 53873, 53877, 53881, 53885, 53889, 53893, + 53897, 53901, 53905, 53909, 53913, 53920, 53924, 53930, 53934, 53938, + 53942, 53946, 53950, 53953, 53957, 53961, 53965, 53969, 53973, 53977, + 53981, 53985, 53989, 53993, 53997, 54001, 54005, 54009, 54013, 54017, + 54021, 54025, 54029, 54033, 54037, 54041, 54045, 54049, 54053, 54057, + 54061, 54065, 54069, 54073, 54077, 54081, 54087, 54091, 54095, 54099, + 54103, 54107, 54111, 54115, 54119, 54123, 54127, 54131, 54135, 54139, + 54143, 54147, 54151, 54155, 54159, 54163, 54167, 54171, 54175, 54179, + 54183, 54187, 54191, 54195, 54203, 54207, 54211, 54215, 54219, 54223, + 54229, 54233, 54237, 54241, 54245, 54249, 54253, 54257, 54261, 54265, + 54269, 54273, 54277, 54281, 54287, 54291, 54295, 54299, 54303, 54307, + 54311, 54315, 54319, 54323, 54327, 54331, 54335, 54339, 54343, 54347, + 54351, 54355, 54359, 54363, 54367, 54371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54375, 54383, 54390, + 54401, 54411, 54419, 54428, 54437, 54447, 54459, 54471, 54482, 0, 0, 0, + 0, 54488, 54491, 54494, 54499, 54502, 54509, 54513, 54517, 54521, 54525, + 54529, 54534, 54539, 54543, 54547, 54552, 54557, 54562, 54567, 54570, + 54573, 54579, 54585, 54590, 54595, 54602, 54609, 54613, 54617, 54621, + 54628, 54634, 54641, 54646, 54650, 54654, 54658, 54662, 54666, 54670, + 54674, 54678, 54682, 54687, 54692, 54697, 54702, 54708, 54713, 54717, + 54723, 54734, 54744, 54759, 54768, 54772, 54781, 54786, 54791, 54796, + 54801, 54804, 54809, 54813, 0, 54819, 54823, 54826, 54830, 54833, 54837, + 54840, 54844, 54847, 54851, 54854, 54857, 54861, 54865, 54869, 54873, + 54877, 54881, 54885, 54889, 54893, 54897, 54901, 54905, 54909, 54913, + 54917, 54921, 54925, 54929, 54933, 54937, 54941, 54945, 54949, 54954, + 54958, 54962, 54966, 54970, 54973, 54977, 54981, 54985, 54989, 54993, + 54997, 55000, 55004, 55007, 55011, 55015, 55019, 55023, 55027, 55031, + 55035, 55039, 55043, 55047, 55051, 55055, 55058, 55062, 55066, 55070, + 55074, 55078, 55081, 55086, 55090, 55095, 55099, 55102, 55106, 55110, + 55114, 55118, 55123, 55127, 55131, 55135, 55139, 55142, 55146, 55150, 0, + 0, 55155, 55163, 55171, 55178, 55185, 55189, 55195, 55200, 55205, 55209, + 55212, 55216, 55219, 55223, 55226, 55230, 55233, 55237, 55240, 55243, 55247, 55251, 55255, 55259, 55263, 55267, 55271, 55275, 55279, 55283, 55287, 55291, 55295, 55299, 55303, 55307, 55311, 55315, 55319, 55323, - 55327, 55331, 55335, 55339, 55343, 55347, 55351, 55355, 55359, 55363, - 55367, 55371, 55375, 55379, 55383, 55387, 55391, 55395, 55399, 55403, - 55407, 55411, 55415, 55419, 55423, 55427, 55431, 55435, 55439, 55443, - 55447, 55451, 55455, 55459, 55463, 55467, 55471, 55475, 55479, 55483, - 55487, 55491, 55495, 55499, 55503, 55507, 55511, 55515, 55519, 55523, - 55527, 55531, 55535, 55539, 55543, 55547, 55551, 55555, 55559, 55563, - 55566, 55570, 55574, 55578, 55582, 55586, 55590, 55594, 55598, 55602, - 55606, 55610, 55614, 55618, 55622, 55626, 55630, 55634, 55638, 55642, - 55646, 55650, 55654, 55658, 55662, 55666, 55670, 55674, 55678, 55682, - 55686, 55690, 55694, 55698, 55702, 55706, 55710, 55714, 55718, 55722, - 55726, 55730, 55734, 55738, 55742, 55746, 55750, 55754, 55758, 55762, - 55766, 55770, 55774, 55778, 55782, 55786, 55790, 55794, 55798, 55802, - 55806, 55810, 55814, 55818, 55822, 55826, 55830, 55834, 55838, 55842, - 55846, 55850, 55854, 55858, 55862, 55866, 55870, 55874, 55878, 55882, - 55886, 55890, 55894, 55898, 55902, 55906, 55910, 55914, 55918, 55922, - 55926, 55930, 55934, 55938, 55942, 55946, 55950, 55954, 55958, 55962, - 55966, 55970, 55974, 55978, 55982, 55986, 55990, 55994, 55998, 56002, - 56006, 56010, 56014, 56018, 56021, 56025, 56029, 56033, 56037, 56041, - 56045, 56049, 56053, 56057, 56061, 56065, 56069, 56073, 56077, 56081, - 56085, 56089, 56093, 56097, 56101, 56105, 56109, 56113, 56117, 56121, - 56125, 56129, 56133, 56137, 56141, 56145, 56149, 56153, 56157, 56161, - 56165, 56169, 56173, 56177, 56181, 56185, 56189, 56193, 56197, 56201, - 56205, 56209, 56213, 56217, 56221, 56225, 56229, 56233, 56237, 56241, - 56245, 56249, 56253, 56257, 56261, 56265, 56269, 56273, 56277, 56281, - 56285, 56289, 56293, 56297, 56301, 56305, 56309, 56313, 56317, 56321, - 56325, 56329, 56333, 56337, 56341, 56345, 56349, 56353, 56357, 56361, - 56365, 56369, 56373, 56377, 56381, 56385, 56389, 56393, 56397, 56401, - 56405, 56409, 56413, 56417, 56421, 56425, 56429, 56433, 56437, 56441, - 56445, 56449, 56453, 56457, 56461, 56465, 56469, 56473, 56477, 56481, - 56485, 56489, 56493, 56497, 56501, 56505, 56509, 56513, 56517, 56521, - 56525, 56529, 56533, 56537, 56541, 56545, 56549, 56553, 56557, 56561, - 56565, 56569, 56573, 56577, 56581, 56585, 56589, 56593, 56597, 56601, - 56605, 56609, 56613, 56617, 56621, 56624, 56628, 56632, 56636, 56640, - 56644, 56648, 56652, 56656, 56660, 56664, 56668, 56672, 56676, 56680, - 56684, 56688, 56692, 56696, 56700, 56704, 56708, 56712, 56716, 56720, - 56724, 56728, 56732, 56736, 56740, 56744, 56748, 56752, 56756, 56760, - 56764, 56768, 56772, 56776, 56780, 56784, 56788, 56792, 56796, 56800, - 56804, 56808, 56812, 56816, 56820, 56824, 56828, 56832, 56836, 56840, - 56844, 56848, 56852, 56856, 56860, 56864, 56868, 56872, 56876, 56880, - 56884, 56888, 56892, 56896, 56900, 56904, 56908, 56912, 56916, 56920, - 56924, 56928, 56932, 56936, 56940, 56944, 56948, 56952, 56956, 56960, - 56964, 56968, 56972, 56976, 56980, 56984, 56988, 56992, 56996, 57000, - 57004, 57008, 57012, 57016, 57020, 57024, 57028, 57032, 57036, 57040, - 57044, 57048, 57052, 57056, 57060, 57064, 57068, 57072, 57076, 57080, - 57084, 57088, 57092, 57096, 57100, 57104, 57108, 57112, 57116, 57120, - 57124, 57128, 57132, 57136, 57140, 57144, 57148, 57152, 57156, 57160, - 57164, 57168, 57172, 57176, 57180, 57184, 57188, 57192, 57196, 57200, - 57204, 57208, 57212, 57216, 57220, 57224, 57228, 57232, 57236, 57240, - 57244, 57248, 57252, 57256, 57260, 57264, 57268, 57272, 57276, 57280, - 57284, 57288, 57292, 57296, 57300, 57304, 57308, 57312, 57316, 57320, - 57324, 57328, 57332, 57336, 57340, 57344, 57348, 57352, 57356, 57360, - 57364, 57368, 57372, 57376, 57380, 57384, 57388, 57392, 57396, 57400, - 57404, 57408, 57412, 57416, 57420, 57424, 57428, 57432, 57436, 57440, - 57444, 57448, 57452, 57456, 57460, 57464, 57468, 57472, 57476, 57480, - 57484, 57488, 57492, 57496, 57500, 57504, 57508, 57512, 57516, 57520, - 57524, 57528, 57532, 57536, 57540, 57544, 57548, 57552, 57556, 57560, - 57564, 57568, 57572, 57576, 57580, 57584, 57588, 57592, 57596, 57600, - 57604, 57608, 57612, 57616, 57620, 57624, 57628, 57632, 57636, 57640, - 57644, 57648, 57652, 57656, 57660, 57664, 57668, 57672, 57676, 57680, - 57684, 57688, 57692, 57696, 57700, 57704, 57708, 57712, 57716, 57720, - 57724, 57728, 57732, 57736, 57740, 57744, 57748, 57752, 57756, 57760, - 57764, 57768, 57772, 57776, 57780, 57784, 57788, 57792, 57796, 57800, - 57804, 57808, 57812, 57816, 57820, 57824, 57828, 57832, 57836, 57840, - 57844, 57848, 57852, 57856, 57860, 57864, 57868, 57872, 57876, 57880, - 57884, 57888, 57892, 57896, 57900, 57904, 57908, 57912, 57916, 57920, - 57924, 57928, 57932, 57936, 57940, 57944, 57948, 57952, 57956, 57960, - 57964, 57968, 57972, 57976, 57980, 57984, 57988, 57992, 57996, 58000, - 58004, 58008, 58012, 58016, 58020, 58024, 58028, 58032, 58036, 58040, - 58044, 58048, 58052, 58056, 58060, 58064, 58068, 58072, 58076, 58080, - 58084, 58088, 58092, 58096, 58100, 58104, 58108, 58112, 58116, 58120, - 58124, 58128, 58132, 58136, 58140, 58144, 58148, 58152, 58156, 58160, - 58164, 0, 0, 0, 58168, 58172, 58176, 58180, 58184, 58188, 58192, 58196, - 58200, 58204, 58208, 58212, 58216, 58220, 58224, 58228, 58232, 58236, - 58240, 58244, 58248, 58252, 58256, 58260, 58264, 58268, 58272, 58276, - 58280, 58284, 58288, 58292, 58296, 58300, 58304, 58308, 58312, 58316, - 58320, 58324, 58328, 58332, 58336, 58340, 58344, 58348, 58352, 58356, - 58360, 58364, 58368, 58372, 58376, 58380, 58384, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 58388, 58397, 58406, 58415, 58424, 58433, 58442, 58451, 58460, 58468, - 58475, 58483, 58490, 58498, 58508, 58517, 58527, 58536, 58546, 58554, - 58561, 58569, 58576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58584, 58590, 58596, - 58603, 58609, 58615, 58621, 58628, 58635, 58642, 58649, 58656, 58663, - 58670, 58677, 58684, 58691, 58698, 58705, 58712, 58719, 58725, 58732, - 58739, 58746, 58753, 58760, 58767, 58774, 58781, 58788, 58795, 58802, - 58809, 58816, 58823, 58830, 58837, 58844, 58851, 58859, 58867, 58875, - 58883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58891, 58895, 58899, 58903, - 58907, 58911, 58915, 58919, 58923, 58927, 58931, 58935, 58939, 58943, - 58947, 58951, 58955, 58959, 58963, 58967, 58971, 58975, 58979, 58983, - 58987, 58991, 58995, 58999, 59003, 59007, 59011, 59015, 59019, 59023, - 59027, 59031, 59035, 59039, 59043, 59047, 59051, 59055, 59059, 59063, - 59067, 59071, 59075, 59079, 59083, 59087, 59091, 59095, 59099, 59103, - 59107, 59111, 59115, 59119, 59123, 59127, 59131, 59135, 59139, 59143, - 59147, 59151, 59155, 59159, 59163, 59167, 59171, 59175, 59179, 59183, - 59187, 59191, 59195, 59199, 59203, 59207, 59211, 59215, 59219, 59223, - 59227, 59231, 59235, 59239, 59243, 59247, 59251, 59255, 59259, 59263, - 59267, 59271, 59275, 59279, 59283, 59287, 59291, 59295, 59299, 59303, - 59307, 59311, 59315, 59319, 59323, 59327, 59331, 59335, 59339, 59343, - 59347, 59351, 59355, 59359, 59363, 59367, 59371, 59375, 59379, 59383, - 59387, 59391, 59395, 59399, 59403, 59407, 59411, 59415, 59419, 59423, - 59427, 59431, 59435, 59439, 59443, 59447, 59451, 59455, 59459, 59463, - 59467, 59471, 59475, 59479, 59483, 59487, 59491, 59495, 59499, 59503, - 59507, 59511, 59515, 59519, 59523, 59527, 59531, 59535, 59539, 59543, - 59547, 59551, 59555, 59559, 59563, 59567, 59571, 59575, 59579, 59583, - 59587, 59591, 59595, 59599, 59603, 59607, 59611, 59615, 59619, 59623, - 59627, 59631, 59635, 59639, 59643, 59647, 59651, 59655, 59659, 59663, - 59667, 59671, 59675, 59679, 59683, 59687, 59691, 59695, 59699, 59703, - 59707, 59711, 59715, 59719, 59723, 59727, 59731, 59735, 59739, 59743, - 59747, 59751, 59755, 59759, 59763, 59767, 59771, 59775, 59779, 59783, - 59787, 59791, 59795, 59799, 59803, 59807, 59811, 59815, 59819, 59823, - 59827, 59831, 59835, 59839, 59843, 59847, 59851, 59855, 59859, 59863, - 59867, 59871, 59875, 59879, 59883, 59887, 59891, 59895, 59899, 59903, - 59907, 59911, 59915, 59919, 59923, 59927, 59931, 59935, 59939, 59943, - 59947, 59951, 59955, 59959, 59963, 59967, 59971, 59975, 59979, 59983, - 59987, 59991, 59995, 59999, 60003, 60007, 60011, 60015, 60019, 60023, - 60027, 60031, 60035, 60039, 60043, 60047, 60051, 60055, 60059, 60063, - 60067, 60071, 60075, 60079, 60083, 60087, 60091, 60095, 0, 0, 60099, - 60103, 60107, 60111, 60115, 60119, 60123, 60127, 60131, 60135, 60139, - 60143, 60147, 60151, 60155, 60159, 60163, 60167, 60171, 60175, 60179, - 60183, 60187, 60191, 60195, 60199, 60203, 60207, 60211, 60215, 60219, - 60223, 60227, 60231, 60235, 60239, 60243, 60247, 60251, 60255, 60259, - 60263, 60267, 60271, 60275, 60279, 60283, 60287, 60291, 60295, 60299, - 60303, 60307, 60311, 60315, 60319, 60323, 60327, 60331, 0, 0, 0, 0, 0, - 60335, 60339, 60343, 60347, 60351, 60355, 60359, 60363, 60367, 60371, - 60375, 60379, 60383, 60387, 60391, 60395, 60399, 60403, 60407, 60411, - 60415, 60419, 60423, 60427, 60431, 60435, 60439, 60443, 60447, 60451, - 60455, 60459, 60463, 60467, 60471, 60475, 60479, 60483, 60487, 60491, - 60495, 60499, 60503, 60507, 60511, 60515, 60519, 60523, 60527, 60531, - 60535, 60539, 60543, 60547, 60551, 60555, 60559, 60563, 60567, 60571, - 60575, 60579, 60583, 60587, 60591, 60595, 60599, 60603, 60607, 60611, - 60615, 60619, 60623, 60627, 60631, 60635, 60639, 60643, 60647, 60651, - 60655, 60659, 60663, 60667, 60671, 60675, 60679, 60683, 60687, 60691, - 60695, 60699, 60703, 60707, 60711, 60715, 60719, 60723, 60727, 60731, - 60735, 60739, 60743, 60747, 60751, 60755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 60759, 60764, 60769, 60774, 60779, 60784, 60791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60796, 60803, 60810, 60817, 60824, 0, 0, 0, 0, 0, - 60831, 60838, 60845, 60855, 60861, 60867, 60873, 60879, 60885, 60891, - 60898, 60904, 60910, 60917, 60926, 60935, 60947, 60959, 60965, 60971, - 60977, 60984, 60991, 60998, 61005, 61012, 0, 61019, 61026, 61033, 61041, - 61048, 0, 61055, 0, 61062, 61069, 0, 61076, 61084, 0, 61091, 61098, - 61105, 61112, 61119, 61126, 61133, 61140, 61147, 61154, 61159, 61166, - 61173, 61179, 61185, 61191, 61197, 61203, 61209, 61215, 61221, 61227, - 61233, 61239, 61245, 61251, 61257, 61263, 61269, 61275, 61281, 61287, - 61293, 61299, 61305, 61311, 61317, 61323, 61329, 61335, 61341, 61347, - 61353, 61359, 61365, 61371, 61377, 61383, 61389, 61395, 61401, 61407, - 61413, 61419, 61425, 61431, 61437, 61443, 61449, 61455, 61461, 61467, - 61473, 61479, 61485, 61491, 61497, 61503, 61509, 61515, 61521, 61527, - 61533, 61539, 61545, 61551, 61557, 61563, 61569, 61575, 61581, 61587, - 61593, 61599, 61605, 61611, 61617, 61623, 61629, 61636, 61643, 61649, - 61655, 61661, 61667, 61676, 61685, 61693, 61701, 61709, 61717, 61725, - 61733, 61741, 61749, 61756, 61763, 61773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61783, 61789, 61795, 61801, 61807, 61812, 61817, 61823, 61829, 61835, - 61841, 61849, 61855, 61861, 61869, 61877, 61885, 61893, 61898, 61903, - 61908, 61913, 61925, 61937, 61947, 61957, 61968, 61979, 61990, 62001, - 62011, 62021, 62032, 62043, 62054, 62065, 62075, 62085, 62095, 62110, - 62125, 62140, 62147, 62154, 62161, 62168, 62178, 62188, 62198, 62209, - 62219, 62227, 62235, 62243, 62251, 62260, 62268, 62276, 62284, 62292, - 62300, 62309, 62317, 62325, 62333, 62342, 62350, 62357, 62364, 62371, - 62378, 62385, 62392, 62399, 62407, 62415, 62423, 62431, 62439, 62447, - 62455, 62463, 62471, 62479, 62487, 62495, 62503, 62511, 62519, 62527, - 62535, 62543, 62551, 62559, 62567, 62576, 62584, 62592, 62600, 62609, - 62617, 62625, 62633, 62641, 62649, 62657, 62665, 62674, 62682, 62689, - 62696, 62703, 62710, 62718, 62725, 62732, 62739, 62746, 62753, 62761, - 62768, 62775, 62782, 62789, 62796, 62804, 62811, 62819, 62827, 62836, - 62844, 62851, 62858, 62865, 62872, 62880, 62887, 62897, 62907, 62917, - 62926, 62935, 62944, 62953, 62962, 62972, 62983, 62994, 63004, 63014, - 63025, 63035, 63044, 63053, 63061, 63069, 63078, 63086, 63095, 63104, - 63112, 63120, 63129, 63137, 63146, 63155, 63163, 63171, 63180, 63188, - 63197, 63205, 63214, 63222, 63230, 63238, 63246, 63255, 63263, 63270, - 63278, 63285, 63292, 63299, 63307, 63315, 63322, 63329, 63337, 63344, - 63354, 63362, 63370, 63377, 63384, 63392, 63399, 63409, 63419, 63429, - 63439, 63450, 63458, 63466, 63474, 63482, 63491, 63499, 63507, 63515, - 63523, 63532, 63540, 63547, 63554, 63561, 63568, 63575, 63582, 63590, - 63598, 63606, 63614, 63622, 63630, 63638, 63646, 63654, 63662, 63670, - 63678, 63686, 63694, 63702, 63710, 63718, 63726, 63734, 63742, 63750, - 63758, 63766, 63774, 63782, 63790, 63798, 63806, 63813, 63820, 63827, - 63834, 63842, 63849, 63856, 63863, 63870, 63877, 63884, 63891, 63898, - 63906, 63914, 63922, 63932, 63939, 63946, 63953, 63960, 63968, 63978, - 63989, 63997, 64006, 64014, 64023, 64031, 64040, 64048, 64057, 64065, - 64074, 64082, 64090, 64097, 64104, 64112, 64119, 64127, 64136, 64145, - 64154, 64163, 64171, 64180, 64188, 64197, 64205, 64214, 64222, 64231, - 64239, 64247, 64254, 64262, 64269, 64277, 64284, 64293, 64301, 64310, - 64318, 64326, 64334, 64342, 64350, 64359, 64368, 64377, 64386, 64395, - 64403, 64412, 64420, 64429, 64437, 64446, 64454, 64463, 64471, 64479, - 64486, 64494, 64501, 64509, 64516, 64525, 64533, 64542, 64550, 64558, - 64566, 64574, 64582, 64591, 64600, 64609, 64618, 64626, 64634, 64642, - 64650, 64659, 64668, 64676, 64684, 64692, 64700, 64708, 64716, 64724, - 64732, 64740, 64748, 64756, 64761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64766, 64776, 64786, 64796, 64806, 64816, 64826, 64836, 64846, - 64855, 64864, 64873, 64883, 64893, 64903, 64914, 64924, 64934, 64944, - 64954, 64964, 64974, 64984, 64994, 65004, 65014, 65024, 65034, 65044, - 65054, 65064, 65075, 65085, 65095, 65105, 65115, 65125, 65135, 65145, - 65155, 65165, 65176, 65186, 65196, 65207, 65217, 65227, 65237, 65247, - 65256, 65265, 65275, 65284, 65293, 65302, 65311, 65320, 65329, 65338, - 65347, 65356, 65365, 65374, 65383, 0, 0, 65392, 65401, 65411, 65421, - 65430, 65440, 65449, 65458, 65468, 65477, 65487, 65496, 65505, 65515, - 65525, 65536, 65546, 65557, 65567, 65578, 65587, 65597, 65607, 65618, - 65628, 65638, 65648, 65657, 65666, 65675, 65684, 65693, 65702, 65712, - 65721, 65731, 65740, 65750, 65760, 65769, 65778, 65787, 65797, 65806, - 65815, 65824, 65833, 65842, 65852, 65862, 65872, 65882, 65892, 65902, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65911, 65926, 65941, 65947, - 65953, 65959, 65965, 65971, 65977, 65983, 65989, 65997, 66001, 66004, 0, - 0, 66012, 66015, 66018, 66021, 66024, 66027, 66030, 66033, 66036, 66039, - 66042, 66045, 66048, 66051, 66054, 66057, 66060, 66068, 66077, 66087, - 66095, 66103, 66112, 66121, 66132, 66144, 0, 0, 0, 0, 0, 0, 66153, 66158, - 66163, 66170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66177, 66187, 66197, - 66207, 66216, 66227, 66236, 66245, 66255, 66265, 66277, 66289, 66300, - 66311, 66321, 66331, 66340, 66349, 66359, 66369, 66380, 66391, 66395, - 66400, 66409, 66418, 66422, 66426, 66430, 66435, 66440, 66445, 66450, - 66453, 66457, 0, 66461, 66464, 66467, 66471, 66475, 66480, 66484, 66488, - 66493, 66498, 66505, 66512, 66515, 66518, 66521, 66525, 66528, 66532, - 66536, 0, 66540, 66545, 66549, 66553, 0, 0, 0, 0, 66558, 66563, 66570, - 66575, 66580, 0, 66585, 66590, 66595, 66600, 66605, 66610, 66615, 66620, - 66625, 66630, 66635, 66640, 66649, 66658, 66666, 66674, 66683, 66692, - 66701, 66710, 66718, 66726, 66734, 66742, 66747, 66752, 66758, 66764, - 66770, 66776, 66784, 66792, 66798, 66804, 66810, 66816, 66822, 66828, - 66834, 66840, 66845, 66850, 66855, 66860, 66865, 66870, 66875, 66880, - 66885, 66890, 66895, 66900, 66906, 66912, 66918, 66924, 66930, 66936, - 66942, 66948, 66954, 66960, 66966, 66972, 66978, 66984, 66990, 66996, - 67002, 67008, 67014, 67020, 67026, 67032, 67038, 67044, 67050, 67056, - 67062, 67068, 67074, 67080, 67086, 67092, 67098, 67104, 67110, 67116, - 67122, 67128, 67134, 67140, 67146, 67152, 67158, 67164, 67170, 67176, - 67182, 67188, 67194, 67200, 67206, 67212, 67217, 67222, 67227, 67232, - 67237, 67242, 67247, 67252, 67257, 67262, 67267, 67272, 67278, 67284, - 67290, 67296, 67302, 67308, 67314, 67320, 67325, 67330, 67335, 67340, - 67351, 67362, 67372, 67382, 67393, 67404, 67411, 0, 0, 67418, 0, 67426, - 67430, 67434, 67437, 67441, 67445, 67448, 67451, 67455, 67459, 67462, - 67466, 67469, 67472, 67476, 67479, 67483, 67486, 67489, 67492, 67495, - 67498, 67501, 67504, 67507, 67510, 67513, 67516, 67520, 67524, 67528, - 67532, 67537, 67542, 67547, 67553, 67558, 67563, 67569, 67574, 67579, - 67584, 67589, 67595, 67600, 67605, 67610, 67615, 67620, 67626, 67631, - 67636, 67641, 67646, 67651, 67657, 67662, 67668, 67674, 67678, 67683, - 67687, 67691, 67695, 67700, 67705, 67710, 67716, 67721, 67726, 67732, - 67737, 67742, 67747, 67752, 67758, 67763, 67768, 67773, 67778, 67783, - 67789, 67794, 67799, 67804, 67809, 67814, 67820, 67825, 67831, 67837, - 67842, 67846, 67851, 67853, 67858, 67863, 67868, 67873, 67878, 67882, - 67888, 67893, 67898, 67903, 67908, 67913, 67918, 67923, 67929, 67935, - 67941, 67949, 67953, 67957, 67961, 67965, 67969, 67973, 67978, 67983, - 67988, 67993, 67998, 68003, 68008, 68013, 68018, 68023, 68028, 68033, - 68038, 68042, 68047, 68052, 68057, 68062, 68067, 68071, 68076, 68081, - 68086, 68091, 68095, 68100, 68105, 68110, 68115, 68119, 68124, 68129, - 68134, 68139, 68144, 68149, 68154, 68159, 68163, 68170, 68177, 68181, - 68186, 68191, 68196, 68201, 68206, 68211, 68216, 68221, 68226, 68231, - 68236, 68241, 68246, 68251, 68256, 68261, 68266, 68271, 68276, 68281, - 68286, 68291, 68296, 68301, 68306, 68311, 68316, 68321, 68326, 0, 0, 0, - 68331, 68335, 68340, 68344, 68349, 68354, 0, 0, 68358, 68363, 68368, - 68372, 68377, 68382, 0, 0, 68387, 68392, 68396, 68401, 68406, 68411, 0, - 0, 68416, 68421, 68426, 0, 0, 0, 68430, 68434, 68438, 68441, 68443, - 68447, 68451, 0, 68455, 68461, 68464, 68468, 68471, 68475, 68479, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68483, 68489, 68495, 68501, 68507, 0, 0, 68511, - 68517, 68523, 68529, 68535, 68541, 68548, 68555, 68562, 68569, 68576, - 68583, 0, 68590, 68597, 68604, 68610, 68617, 68624, 68631, 68638, 68644, - 68651, 68658, 68665, 68672, 68679, 68686, 68693, 68700, 68707, 68714, - 68721, 68728, 68735, 68742, 68749, 68756, 68763, 0, 68770, 68777, 68784, - 68791, 68798, 68805, 68812, 68819, 68826, 68833, 68840, 68847, 68854, - 68861, 68867, 68874, 68881, 68888, 68895, 0, 68902, 68909, 0, 68916, - 68923, 68930, 68937, 68944, 68951, 68958, 68965, 68972, 68979, 68986, - 68993, 69000, 69007, 69014, 0, 0, 69020, 69025, 69030, 69035, 69040, - 69045, 69050, 69055, 69060, 69065, 69070, 69075, 69080, 69085, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69090, 69097, 69104, 69111, 69118, 69125, 69132, - 69139, 69146, 69153, 69160, 69167, 69174, 69181, 69188, 69195, 69202, - 69209, 69216, 69223, 69231, 69239, 69246, 69253, 69258, 69266, 69274, - 69281, 69288, 69293, 69300, 69305, 69310, 69317, 69322, 69327, 69332, - 69340, 69345, 69350, 69357, 69362, 69367, 69374, 69381, 69386, 69391, - 69396, 69401, 69406, 69411, 69416, 69421, 69426, 69433, 69438, 69445, - 69450, 69455, 69460, 69465, 69470, 69475, 69480, 69485, 69490, 69495, - 69500, 69507, 69514, 69521, 69528, 69534, 69539, 69546, 69551, 69556, - 69565, 69572, 69581, 69588, 69593, 69598, 69606, 69611, 69616, 69621, - 69626, 69631, 69638, 69643, 69648, 69653, 69658, 69663, 69670, 69677, - 69684, 69691, 69698, 69705, 69712, 69719, 69726, 69733, 69740, 69747, - 69754, 69761, 69768, 69775, 69782, 69789, 69796, 69803, 69810, 69817, - 69824, 69831, 69838, 69845, 69852, 69859, 0, 0, 0, 0, 0, 69866, 69873, - 69880, 0, 0, 0, 0, 69884, 69887, 69890, 69893, 69896, 69899, 69902, - 69905, 69908, 69911, 69915, 69919, 69923, 69927, 69931, 69935, 69939, - 69943, 69947, 69953, 69958, 69963, 69969, 69975, 69981, 69987, 69993, - 69999, 70005, 70010, 70015, 70021, 70027, 70033, 70039, 70045, 70051, - 70057, 70063, 70069, 70075, 70081, 70087, 70093, 70099, 0, 0, 0, 70105, - 70112, 70119, 70126, 70133, 70140, 70149, 70158, 70165, 70172, 70180, - 70188, 70196, 70201, 70207, 70215, 70223, 70231, 70239, 70247, 70255, - 70265, 70275, 70285, 70295, 70303, 70311, 70319, 70329, 70339, 70349, - 70359, 70369, 70377, 70385, 70390, 70395, 70400, 70405, 70412, 70419, - 70424, 70430, 70439, 70445, 70451, 70457, 70463, 70469, 70478, 70484, - 70490, 70498, 70505, 70513, 70521, 70529, 70537, 70545, 70553, 70561, - 70569, 70577, 70582, 70590, 70595, 70600, 70604, 70608, 70612, 70616, - 70621, 70626, 70632, 70638, 70642, 70648, 70652, 70656, 70660, 70664, - 70668, 70672, 70678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70682, 70686, 70691, 70696, 70701, 70705, 70710, 70715, - 70720, 70725, 70729, 70733, 70738, 70743, 70748, 70753, 70757, 70762, - 70767, 70772, 70777, 70782, 70787, 70791, 70796, 70801, 70806, 70811, - 70816, 70821, 70826, 0, 70831, 70835, 70839, 70844, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 70849, 70854, 70859, 70864, 70869, 70874, 70879, 70884, - 70889, 70894, 70899, 70904, 70909, 70914, 70919, 70924, 70929, 70934, - 70939, 70944, 70949, 70954, 70959, 70964, 70969, 70974, 70979, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 70986, 70991, 70996, 71001, 71006, 71011, 71016, 71021, 71026, - 71031, 71036, 71041, 71046, 71051, 71056, 71061, 71066, 71071, 71076, - 71081, 71086, 71091, 71096, 71101, 71106, 71111, 71116, 71120, 71124, - 71128, 0, 71133, 71139, 71143, 71147, 71151, 71155, 71160, 71165, 71170, - 71175, 71180, 71185, 71190, 71195, 71200, 71205, 71210, 71215, 71220, - 71225, 71230, 71235, 71240, 71245, 71249, 71254, 71259, 71263, 71268, - 71273, 71278, 71283, 71288, 71293, 71298, 71303, 71308, 0, 0, 0, 0, - 71312, 71317, 71322, 71327, 71332, 71337, 71342, 71347, 71352, 71358, - 71362, 71366, 71371, 71376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 71381, 71386, 71391, 71396, 71402, 71407, 71413, 71419, 71425, - 71431, 71438, 71444, 71451, 71456, 71461, 71466, 71471, 71475, 71480, - 71485, 71490, 71495, 71500, 71505, 71510, 71515, 71520, 71525, 71530, - 71535, 71540, 71545, 71550, 71555, 71560, 71565, 71570, 71575, 71580, - 71585, 71590, 71595, 71600, 71605, 71611, 71616, 71622, 71628, 71634, - 71640, 71647, 71653, 71660, 71665, 71670, 71675, 71680, 71684, 71689, - 71694, 71699, 71704, 71709, 71714, 71719, 71724, 71729, 71734, 71739, - 71744, 71749, 71754, 71759, 71764, 71769, 71774, 71779, 71784, 71789, - 71794, 71799, 71803, 71807, 71811, 71815, 71819, 71823, 71827, 71831, - 71835, 71839, 71843, 71847, 71851, 71855, 71859, 71863, 71867, 71871, - 71875, 71879, 71883, 71887, 71891, 71895, 71899, 71903, 71907, 71911, - 71915, 71919, 71923, 71927, 71931, 71935, 71939, 71943, 71947, 71951, - 71955, 71959, 71963, 71967, 71971, 71975, 71979, 71983, 71987, 71991, - 71996, 72001, 72006, 72011, 72016, 72021, 72026, 72031, 72036, 72041, - 72046, 72051, 72056, 72061, 72066, 72071, 72076, 72081, 72086, 72091, - 72095, 72099, 72103, 72107, 72111, 72115, 72119, 72124, 72129, 0, 0, - 72134, 72139, 72143, 72147, 72151, 72155, 72159, 72163, 72167, 72171, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72175, 72178, 72181, 72184, 72187, - 72190, 0, 0, 72194, 0, 72198, 72201, 72205, 72209, 72213, 72217, 72221, - 72225, 72229, 72233, 72237, 72240, 72244, 72248, 72252, 72256, 72260, - 72264, 72268, 72272, 72276, 72280, 72284, 72288, 72292, 72296, 72300, - 72304, 72308, 72312, 72316, 72320, 72324, 72328, 72332, 72336, 72340, - 72344, 72348, 72351, 72355, 72359, 72363, 72367, 0, 72371, 72375, 0, 0, - 0, 72379, 0, 0, 72383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55327, 55331, 55335, 55340, 55344, 55348, 55352, 55356, 55359, 55363, + 55367, 55371, 55375, 55379, 55383, 55386, 55390, 55393, 55397, 55401, + 55405, 55409, 55413, 55417, 55421, 55425, 55429, 55433, 55437, 55441, + 55444, 55448, 55452, 55456, 55460, 55464, 55467, 55472, 55476, 55481, + 55485, 55488, 55492, 55496, 55500, 55504, 55509, 55513, 55517, 55521, + 55525, 55528, 55532, 55536, 55541, 55545, 55549, 55553, 55557, 55562, + 55569, 55573, 55579, 0, 0, 0, 0, 0, 55584, 55588, 55592, 55595, 55599, + 55603, 55607, 55610, 55613, 55616, 55620, 55623, 55627, 55631, 55635, + 55639, 55643, 55647, 55650, 55654, 55658, 55661, 55664, 55667, 55670, + 55674, 55678, 55682, 55686, 55690, 55694, 55698, 55702, 55706, 55710, + 55713, 55716, 55720, 55723, 55727, 55731, 0, 0, 0, 55735, 55739, 55743, + 55747, 55751, 55755, 55759, 55763, 55767, 55771, 55775, 55779, 55783, + 55787, 55791, 55795, 55799, 55803, 55807, 55811, 55815, 55819, 55823, + 55827, 55831, 55835, 55839, 55843, 55847, 55851, 55855, 55858, 55862, + 55865, 55869, 55873, 55876, 55880, 55884, 55887, 55891, 55895, 55899, + 55903, 55906, 55910, 55914, 55918, 55922, 55926, 55930, 55933, 55936, + 55940, 55944, 55948, 55952, 55956, 55960, 55964, 55968, 55972, 55976, + 55980, 55984, 55988, 55992, 55996, 56000, 56004, 56008, 56012, 56016, + 56020, 56024, 56028, 56032, 56036, 56040, 56044, 56048, 56052, 56056, + 56060, 56064, 56068, 56072, 56076, 56080, 56084, 56088, 56092, 56096, + 56100, 0, 56104, 56110, 56116, 56121, 56126, 56131, 56137, 56143, 56149, + 56155, 56161, 56167, 56173, 56179, 56185, 56191, 56197, 56201, 56205, + 56209, 56213, 56217, 56221, 56225, 56229, 56233, 56237, 56241, 56245, + 56249, 56253, 56257, 56261, 56265, 56269, 56273, 56277, 56282, 56287, + 56292, 0, 0, 0, 0, 0, 0, 0, 0, 56296, 56300, 56304, 56308, 56312, 56316, + 56320, 56324, 56328, 56332, 56336, 56340, 56344, 56348, 56352, 56356, + 56359, 56362, 56365, 56369, 56373, 56377, 56381, 56385, 56389, 56393, + 56397, 56401, 56405, 56409, 56413, 56417, 56421, 56425, 56429, 56433, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56437, 56442, 56447, 56452, 56456, + 56461, 56465, 56470, 56475, 56480, 56485, 56490, 56494, 56499, 56504, + 56509, 56514, 56518, 56522, 56526, 56530, 56534, 56538, 56542, 56546, + 56550, 56554, 56558, 56562, 56566, 56570, 56575, 56580, 56585, 56590, + 56595, 56600, 56605, 56610, 56615, 56620, 56625, 56630, 56635, 56640, + 56645, 56651, 0, 56658, 56661, 56664, 56667, 56670, 56673, 56676, 56679, + 56682, 56685, 56689, 56693, 56697, 56701, 56705, 56709, 56713, 56717, + 56721, 56725, 56729, 56733, 56737, 56741, 56745, 56749, 56753, 56757, + 56761, 56765, 56769, 56773, 56777, 56781, 56785, 56789, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56793, 56796, 56801, 56806, 56811, 56816, 56821, 56826, + 56831, 56836, 56841, 56845, 56850, 56855, 56860, 56865, 56870, 56874, + 56878, 56882, 56886, 56890, 56894, 56898, 56902, 56906, 56910, 56914, + 56918, 56922, 56926, 56931, 56936, 56941, 56946, 56951, 56956, 56961, + 56966, 56971, 56976, 56981, 56986, 56991, 56996, 57002, 57008, 57013, + 57018, 57021, 57024, 57027, 57030, 57033, 57036, 57039, 57042, 57045, + 57049, 57053, 57057, 57061, 57065, 57069, 57073, 57077, 57081, 57085, + 57089, 57093, 57097, 57101, 57105, 57109, 57113, 57117, 57121, 57125, + 57129, 57133, 57137, 57141, 57145, 57149, 57153, 57157, 57161, 57165, + 57169, 57173, 57177, 57181, 57185, 57189, 57193, 57197, 57201, 57205, + 57210, 57215, 57220, 57225, 57229, 57234, 57239, 57244, 57249, 57254, + 57259, 57264, 57269, 57274, 57278, 57284, 57290, 57296, 57302, 57308, + 57314, 57320, 57326, 57332, 57338, 57344, 57350, 57353, 57356, 57359, + 57364, 57367, 57370, 57373, 57376, 57379, 57382, 57386, 57390, 57394, + 57398, 57402, 57406, 57410, 57414, 57418, 57422, 57426, 57430, 57434, + 57437, 57441, 57445, 57449, 57453, 57457, 57460, 57464, 57468, 57472, + 57476, 57479, 57483, 57487, 57491, 57495, 57498, 57502, 57506, 57509, + 57513, 57517, 57521, 57525, 57529, 57533, 57537, 0, 57541, 57544, 57547, + 57550, 57553, 57556, 57559, 57562, 57565, 57568, 57571, 57574, 57577, + 57580, 57583, 57586, 57589, 57592, 57595, 57598, 57601, 57604, 57607, + 57610, 57613, 57616, 57619, 57622, 57625, 57628, 57631, 57634, 57637, + 57640, 57643, 57646, 57649, 57652, 57655, 57658, 57661, 57664, 57667, + 57670, 57673, 57676, 57679, 57682, 57685, 57688, 57691, 57694, 57697, + 57700, 57703, 57706, 57709, 57712, 57715, 57718, 57721, 57724, 57727, + 57730, 57733, 57736, 57739, 57742, 57745, 57748, 57751, 57754, 57757, + 57760, 57763, 57766, 57769, 57772, 57775, 57778, 57781, 57784, 57787, + 57790, 57793, 57796, 57799, 57802, 57805, 57813, 57820, 57827, 57834, + 57841, 57848, 57855, 57862, 57869, 57876, 57884, 57892, 57900, 57908, + 57916, 57924, 57932, 57940, 57948, 57956, 57964, 57972, 57980, 57988, + 57996, 57999, 58002, 58005, 58007, 58010, 58013, 58016, 58021, 58026, + 58029, 58036, 58043, 58050, 58057, 58060, 58065, 58068, 58072, 58074, + 58076, 58079, 58082, 58085, 58088, 58091, 58094, 58097, 58102, 58106, + 58109, 58112, 58115, 58118, 58121, 58124, 58127, 58131, 58134, 58137, + 58140, 58143, 58146, 58150, 58153, 58156, 58159, 58164, 58169, 58174, + 58179, 58184, 58189, 58194, 58199, 58204, 58212, 58214, 58217, 58220, + 58223, 58226, 58231, 58239, 58242, 58245, 58249, 58252, 58255, 58258, + 58262, 58265, 58268, 58273, 58276, 58279, 58284, 58287, 58290, 58295, + 58300, 58305, 58308, 58311, 58314, 58317, 58323, 58326, 58329, 58332, + 58334, 58337, 58340, 58343, 58348, 58351, 58354, 58357, 58360, 58363, + 58368, 58371, 58374, 58377, 58380, 58383, 58386, 58389, 58392, 58395, + 58400, 58404, 58411, 58418, 58425, 58432, 58439, 58446, 58453, 58460, + 58467, 58475, 58483, 58491, 58499, 58507, 58515, 58523, 58531, 58539, + 58547, 58555, 58563, 58571, 58579, 58587, 58595, 58603, 58611, 58619, + 58627, 58635, 58643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72387, 72390, 72394, 72398, 0, 72403, 72407, 0, 0, 0, 0, 0, 72411, 72416, - 72422, 72426, 72430, 72433, 72437, 72441, 0, 72445, 72449, 72453, 0, - 72457, 72461, 72465, 72469, 72473, 72477, 72481, 72485, 72489, 72493, - 72497, 72501, 72505, 72509, 72513, 72517, 72520, 72523, 72527, 72531, - 72535, 72539, 72543, 72547, 72551, 72554, 72558, 0, 0, 0, 0, 72562, - 72567, 72571, 0, 0, 0, 0, 72575, 72578, 72581, 72584, 72587, 72590, - 72594, 72598, 72604, 0, 0, 0, 0, 0, 0, 0, 0, 72610, 72615, 72621, 72626, - 72632, 72637, 72642, 72647, 72653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72658, 72663, 72668, 72673, 72680, 72687, 72694, 72701, 72706, - 72711, 72716, 72721, 72728, 72733, 72740, 72747, 72752, 72757, 72762, - 72769, 72774, 72779, 72786, 72793, 72798, 72803, 72808, 72815, 72822, - 72829, 72834, 72839, 72846, 72853, 72860, 72867, 72872, 72877, 72882, - 72889, 72894, 72899, 72904, 72911, 72920, 72927, 72932, 72937, 72942, - 72947, 72952, 72957, 72966, 72973, 72978, 72985, 72992, 72997, 73002, - 73007, 73014, 73019, 73026, 73033, 73038, 73043, 73048, 73055, 73062, - 73067, 73072, 73079, 73086, 73093, 73098, 73103, 73108, 73113, 73120, - 73129, 73138, 73143, 73150, 73159, 73164, 73169, 73174, 73179, 73186, - 73193, 73200, 73207, 73212, 73217, 73222, 73229, 73236, 73243, 73248, - 73253, 73260, 73265, 73272, 73277, 73284, 73289, 73296, 73303, 73308, - 73313, 73318, 73323, 73328, 73333, 73338, 73343, 73348, 73355, 73362, - 73369, 73376, 73383, 73392, 73397, 73402, 73409, 73416, 73421, 73428, - 73435, 73442, 73449, 73456, 73463, 73468, 73473, 73478, 73483, 73488, - 73497, 73506, 73515, 73524, 73533, 73542, 73551, 73560, 73565, 73576, - 73587, 73596, 73601, 73606, 73611, 73616, 73625, 73632, 73639, 73646, - 73653, 73660, 73667, 73676, 73685, 73696, 73705, 73716, 73725, 73732, - 73741, 73752, 73761, 73770, 73779, 73788, 73795, 73802, 73809, 73818, - 73827, 73838, 73847, 73856, 73867, 73872, 73877, 73888, 73897, 73906, - 73915, 73924, 73935, 73944, 73953, 73964, 73975, 73986, 73997, 74008, - 74019, 74026, 74033, 74040, 74047, 74057, 74066, 74073, 74080, 74087, - 74098, 74109, 74120, 74131, 74142, 74153, 74164, 74175, 74182, 74189, - 74198, 74207, 74214, 74221, 74228, 74237, 74246, 74255, 74262, 74271, - 74280, 74289, 74296, 74303, 74308, 74315, 74322, 74329, 74336, 74343, - 74350, 74357, 74366, 74375, 74384, 74393, 74400, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74409, 74415, 74420, 74425, 74432, 74438, 74444, 74450, 74456, - 74462, 74468, 74474, 74478, 74482, 74488, 74494, 74500, 74504, 74509, - 74514, 74518, 74522, 74525, 74531, 74537, 74543, 74549, 74555, 74561, - 74567, 74573, 74579, 74589, 74599, 74605, 74611, 74621, 74631, 74637, 0, - 0, 0, 74643, 74648, 74653, 74659, 74665, 74671, 74677, 74683, 74689, - 74696, 74703, 74709, 74715, 74721, 74727, 74733, 74739, 74745, 74751, - 74756, 74762, 74768, 74774, 74780, 74786, 74796, 74802, 74808, 74815, - 74822, 74829, 74838, 74847, 74856, 74865, 74874, 74883, 74892, 74901, - 74911, 74921, 74929, 74937, 74946, 74955, 74961, 74967, 74973, 74979, - 74987, 74995, 74999, 75005, 75010, 75016, 75022, 75028, 75034, 75040, - 75050, 75055, 75062, 75067, 75072, 75077, 75083, 75089, 75095, 75102, - 75107, 75112, 75117, 75122, 75127, 75133, 75139, 75145, 75151, 75157, - 75163, 75169, 75175, 75180, 75185, 75190, 75195, 75200, 75205, 75210, - 75215, 75221, 75227, 75232, 75237, 75242, 75247, 75252, 75258, 75265, - 75269, 75273, 75277, 75281, 75285, 75289, 75293, 75297, 75305, 75315, - 75319, 75323, 75329, 75335, 75341, 75347, 75353, 75359, 75365, 75371, - 75377, 75383, 75389, 75395, 75401, 75407, 75411, 75415, 75422, 75428, - 75434, 75440, 75445, 75452, 75457, 75463, 75469, 75475, 75481, 75486, - 75490, 75496, 75500, 75504, 75508, 75514, 75520, 75524, 75530, 75536, - 75542, 75548, 75554, 75562, 75570, 75576, 75582, 75588, 75594, 75606, - 75618, 75632, 75644, 75656, 75670, 75684, 75698, 75702, 75710, 75718, - 75722, 75726, 75730, 75734, 75738, 75742, 75746, 75750, 75756, 75762, - 75768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75774, 75780, 75786, 75792, 75798, - 75804, 75810, 75816, 75822, 75828, 75834, 75840, 75846, 75852, 75858, - 75864, 75870, 75876, 75882, 75888, 75894, 75900, 75906, 75912, 75918, - 75924, 75930, 75936, 75942, 75948, 75954, 75960, 75966, 75972, 75978, - 75984, 75990, 75996, 76002, 76008, 76014, 76020, 76026, 76032, 76038, - 76044, 76050, 76056, 76062, 76068, 76074, 76080, 76086, 76092, 76098, - 76104, 76110, 76116, 76122, 76128, 76134, 76140, 76146, 76152, 76158, - 76164, 76170, 76175, 76180, 76185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76189, - 76194, 76201, 76208, 76215, 76222, 76227, 76231, 76237, 76241, 76245, - 76251, 76255, 76259, 76263, 76269, 76276, 76280, 76284, 76288, 76292, - 76296, 76300, 76306, 76310, 76314, 76318, 76322, 76326, 76330, 76334, - 76338, 76342, 76346, 76350, 76354, 76359, 76363, 76367, 76371, 76375, - 76379, 76383, 76387, 76391, 76395, 76402, 76406, 76413, 76417, 76421, - 76425, 76429, 76433, 76437, 76441, 76448, 76452, 76456, 76460, 76464, - 76468, 76474, 76478, 76484, 76488, 76492, 76496, 76500, 76504, 76508, - 76512, 76516, 76520, 76524, 76528, 76532, 76536, 76540, 76544, 76548, - 76552, 76556, 76560, 76568, 76572, 76576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76580, 76584, 76588, 76593, 76597, 76601, 76606, - 76610, 76614, 76618, 76622, 76627, 76631, 76635, 76639, 76643, 76647, - 76652, 76656, 76660, 76664, 76668, 76672, 76677, 76681, 76686, 76691, - 76695, 76699, 76704, 76708, 76712, 76717, 76721, 76725, 76729, 76733, - 76738, 76742, 76746, 76750, 76754, 76758, 76763, 76767, 76771, 76775, - 76779, 76783, 76788, 76792, 76797, 76802, 76806, 76810, 76815, 76819, - 76823, 76828, 76832, 76836, 76840, 76844, 76849, 76853, 76857, 76861, - 76865, 76869, 76874, 76878, 76882, 76886, 76890, 76894, 76899, 76903, - 76908, 76913, 76917, 76921, 76926, 76930, 76934, 76939, 0, 76943, 76947, - 76951, 76956, 76960, 76964, 76968, 76972, 76976, 76981, 76985, 76989, - 76993, 76997, 77001, 77006, 77010, 77015, 77020, 77025, 77030, 77036, - 77041, 77046, 77052, 77057, 77062, 77067, 77072, 77078, 77083, 77088, - 77093, 77098, 77103, 77109, 77114, 77119, 77124, 77129, 77134, 77140, - 77145, 77151, 77157, 77162, 77167, 77173, 77178, 77183, 77189, 77194, - 77199, 77204, 77209, 77215, 77220, 77225, 77230, 77235, 77240, 77246, - 77251, 77256, 77261, 77266, 77271, 77277, 77282, 77288, 77294, 0, 77298, - 77303, 0, 0, 77307, 0, 0, 77311, 77315, 0, 0, 77320, 77324, 77328, 77332, - 0, 77337, 77341, 77345, 77349, 77353, 77358, 77362, 77367, 77372, 77376, - 77380, 77385, 0, 77389, 0, 77394, 77398, 77402, 77406, 77411, 77415, - 77419, 0, 77423, 77427, 77432, 77436, 77440, 77444, 77448, 77452, 77457, - 77461, 77466, 77471, 77476, 77481, 77487, 77492, 77497, 77503, 77508, - 77513, 77518, 77523, 77529, 77534, 77539, 77544, 77549, 77554, 77560, - 77565, 77570, 77575, 77580, 77585, 77591, 77596, 77602, 77608, 77613, - 77618, 77624, 77629, 77634, 77640, 77645, 77650, 77655, 77660, 77666, - 77671, 77676, 77681, 77686, 77691, 77697, 77702, 77707, 77712, 77717, - 77722, 77728, 77733, 77739, 77745, 77749, 0, 77753, 77757, 77761, 77766, - 0, 0, 77770, 77774, 77779, 77783, 77787, 77791, 77795, 77799, 0, 77804, - 77808, 77812, 77816, 77820, 77825, 77829, 0, 77834, 77838, 77842, 77847, - 77851, 77855, 77860, 77864, 77868, 77872, 77876, 77881, 77885, 77889, - 77893, 77897, 77901, 77906, 77910, 77914, 77918, 77922, 77926, 77931, - 77935, 77940, 77945, 77949, 0, 77953, 77957, 77961, 77966, 0, 77970, - 77974, 77978, 77983, 77987, 0, 77991, 0, 0, 0, 77995, 77999, 78003, - 78007, 78011, 78016, 78020, 0, 78025, 78029, 78033, 78038, 78042, 78046, - 78051, 78055, 78059, 78063, 78067, 78072, 78076, 78080, 78084, 78088, - 78092, 78097, 78101, 78105, 78109, 78113, 78117, 78122, 78126, 78131, - 78136, 78141, 78146, 78152, 78157, 78162, 78168, 78173, 78178, 78183, - 78188, 78194, 78199, 78204, 78209, 78214, 78219, 78225, 78230, 78235, - 78240, 78245, 78250, 78256, 78261, 78267, 78273, 78278, 78283, 78289, - 78294, 78299, 78305, 78310, 78315, 78320, 78325, 78331, 78336, 78341, - 78346, 78351, 78356, 78362, 78367, 78372, 78377, 78382, 78387, 78393, - 78398, 78404, 78410, 78414, 78418, 78423, 78427, 78431, 78436, 78440, - 78444, 78448, 78452, 78457, 78461, 78465, 78469, 78473, 78477, 78482, - 78486, 78490, 78494, 78498, 78502, 78507, 78511, 78516, 78521, 78525, - 78529, 78534, 78538, 78542, 78547, 78551, 78555, 78559, 78563, 78568, - 78572, 78576, 78580, 78584, 78588, 78593, 78597, 78601, 78605, 78609, - 78613, 78618, 78622, 78627, 78632, 78637, 78642, 78648, 78653, 78658, - 78664, 78669, 78674, 78679, 78684, 78690, 78695, 78700, 78705, 78710, - 78715, 78721, 78726, 78731, 78736, 78741, 78746, 78752, 78757, 78763, - 78769, 78774, 78779, 78785, 78790, 78795, 78801, 78806, 78811, 78816, - 78821, 78827, 78832, 78837, 78842, 78847, 78852, 78858, 78863, 78868, - 78873, 78878, 78883, 78889, 78894, 78900, 78906, 78911, 78916, 78922, - 78927, 78932, 78938, 78943, 78948, 78953, 78958, 78964, 78969, 78974, - 78979, 78984, 78989, 78995, 79000, 79005, 79010, 79015, 79020, 79026, - 79031, 79037, 79043, 79048, 79053, 79059, 79064, 79069, 79075, 79080, - 79085, 79090, 79095, 79101, 79106, 79111, 79116, 79121, 79126, 79132, - 79137, 79142, 79147, 79152, 79157, 79163, 79168, 79174, 79180, 79186, - 79192, 79199, 79205, 79211, 79218, 79224, 79230, 79236, 79242, 79249, - 79255, 79261, 79267, 79273, 79279, 79286, 79292, 79298, 79304, 79310, - 79316, 79323, 79329, 79336, 79343, 79349, 79355, 79362, 79368, 79374, - 79381, 79387, 79393, 79399, 79405, 79412, 79418, 79424, 79430, 79436, - 79442, 79449, 79455, 79461, 79467, 79473, 79479, 79486, 79492, 79499, - 79506, 79510, 79514, 79519, 79523, 79527, 79532, 79536, 79540, 79544, - 79548, 79553, 79557, 79561, 79565, 79569, 79573, 79578, 79582, 79586, - 79590, 79594, 79598, 79603, 79607, 79612, 79617, 79621, 79625, 79630, - 79634, 79638, 79643, 79647, 79651, 79655, 79659, 79664, 79668, 79672, - 79676, 79680, 79684, 79689, 79693, 79697, 79701, 79705, 79709, 79714, - 79718, 79723, 79728, 79734, 0, 0, 79740, 79745, 79750, 79755, 79760, - 79765, 79770, 79775, 79780, 79785, 79790, 79795, 79800, 79805, 79810, - 79815, 79820, 79825, 79831, 79836, 79841, 79846, 79851, 79856, 79861, - 79866, 79870, 79875, 79880, 79885, 79890, 79895, 79900, 79905, 79910, - 79915, 79920, 79925, 79930, 79935, 79940, 79945, 79950, 79955, 79961, - 79966, 79971, 79976, 79981, 79986, 79991, 79996, 80002, 80007, 80012, - 80017, 80022, 80027, 80032, 80037, 80042, 80047, 80052, 80057, 80062, - 80067, 80072, 80077, 80082, 80087, 80092, 80097, 80102, 80107, 80112, - 80117, 80123, 80128, 80133, 80138, 80143, 80148, 80153, 80158, 80162, - 80167, 80172, 80177, 80182, 80187, 80192, 80197, 80202, 80207, 80212, - 80217, 80222, 80227, 80232, 80237, 80242, 80247, 80253, 80258, 80263, - 80268, 80273, 80278, 80283, 80288, 80294, 80299, 80304, 80309, 80314, - 80319, 80324, 80330, 80336, 80342, 80348, 80354, 80360, 80366, 80372, - 80378, 80384, 80390, 80396, 80402, 80408, 80414, 80420, 80426, 80433, - 80439, 80445, 80451, 80457, 80463, 80469, 80475, 80480, 80486, 80492, - 80498, 80504, 80510, 80516, 80522, 80528, 80534, 80540, 80546, 80552, - 80558, 80564, 80570, 80576, 80582, 80589, 80595, 80601, 80607, 80613, - 80619, 80625, 80631, 80638, 80644, 80650, 80656, 80662, 80668, 80674, - 80680, 80686, 80692, 80698, 80704, 80710, 80716, 80722, 80728, 80734, - 80740, 80746, 80752, 80758, 80764, 80770, 80776, 80783, 80789, 80795, - 80801, 80807, 80813, 80819, 80825, 80830, 80836, 80842, 80848, 80854, - 80860, 80866, 80872, 80878, 80884, 80890, 80896, 80902, 80908, 80914, - 80920, 80926, 80932, 80939, 80945, 80951, 80957, 80963, 80969, 80975, - 80981, 80988, 80994, 81000, 81006, 81012, 81018, 81024, 81031, 81038, - 81045, 81052, 81059, 81066, 81073, 81080, 81087, 81094, 81101, 81108, - 81115, 81122, 81129, 81136, 81143, 81151, 81158, 81165, 81172, 81179, - 81186, 81193, 81200, 81206, 81213, 81220, 81227, 81234, 81241, 81248, - 81255, 81262, 81269, 81276, 81283, 81290, 81297, 81304, 81311, 81318, - 81325, 81333, 81340, 81347, 81354, 81361, 81368, 81375, 81382, 81390, - 81397, 81404, 81411, 81418, 81425, 0, 0, 0, 0, 81432, 81437, 81441, - 81445, 81449, 81453, 81457, 81461, 81465, 81469, 81473, 81478, 81482, - 81486, 81490, 81494, 81498, 81502, 81506, 81510, 81514, 81519, 81523, - 81527, 81531, 81535, 81539, 81543, 81547, 81551, 81555, 81561, 81566, - 81571, 81576, 81581, 81586, 81591, 81596, 81601, 81606, 81611, 81615, - 81619, 81623, 81627, 81631, 81635, 81639, 81643, 81647, 81651, 81655, - 81659, 81663, 81667, 81671, 81675, 81679, 81683, 81687, 81691, 81695, - 81699, 81703, 81707, 81711, 81715, 81719, 81723, 81727, 81731, 81735, - 81739, 81743, 81747, 81751, 81755, 81759, 81763, 81767, 81771, 81775, - 81779, 81783, 81787, 81791, 81795, 81799, 81803, 81807, 81811, 81815, - 81819, 81823, 81827, 81831, 81835, 81839, 81843, 81847, 81851, 81855, - 81859, 81863, 81867, 81871, 81875, 81879, 81883, 81887, 81891, 81895, - 81899, 81903, 81907, 81911, 81915, 81919, 81923, 81927, 81931, 81935, - 81939, 81943, 81947, 81951, 81955, 81959, 81963, 81967, 81971, 81975, - 81979, 81983, 81987, 81991, 81995, 81999, 82003, 82007, 82011, 82015, - 82019, 82023, 82027, 82031, 82035, 82039, 82043, 82047, 82051, 82055, - 82059, 82063, 82067, 82071, 82075, 82079, 82083, 82087, 82091, 82095, - 82099, 82103, 82107, 82111, 82115, 82119, 82123, 82127, 82131, 82135, - 82139, 82143, 82147, 82151, 82155, 82159, 82163, 82167, 82171, 82175, - 82179, 82183, 82187, 82191, 82195, 82199, 82203, 82207, 82211, 82215, - 82219, 82223, 82227, 82231, 82235, 82239, 82243, 82247, 82251, 82255, - 82259, 82263, 82267, 82271, 82275, 82279, 82283, 82287, 82291, 82295, - 82299, 82303, 82307, 82311, 82315, 82319, 82323, 82327, 82331, 82335, - 82339, 82343, 82347, 82351, 82355, 82359, 82363, 82367, 82371, 82375, - 82379, 82383, 82387, 82391, 82395, 82399, 82403, 82407, 82411, 82415, - 82419, 82423, 82427, 82431, 82435, 82439, 82443, 82447, 82451, 82455, - 82459, 82463, 82467, 82471, 82475, 82479, 82483, 82487, 82491, 82495, - 82499, 82503, 82507, 82511, 82515, 82519, 82523, 82527, 82531, 82535, - 82539, 82543, 82547, 82551, 82555, 82559, 82563, 82567, 82571, 82575, - 82579, 82583, 82587, 82591, 82595, 82599, 82603, 82607, 82611, 82615, - 82619, 82623, 82627, 82631, 82635, 82639, 82643, 82647, 82651, 82655, - 82659, 82663, 82667, 82671, 82675, 82679, 82683, 82687, 82691, 82695, - 82699, 82703, 82707, 82711, 82715, 82719, 82723, 82727, 82731, 82735, - 82739, 82743, 82747, 82751, 82755, 82759, 82763, 82767, 82771, 82775, - 82779, 82783, 82787, 82791, 82795, 82799, 82803, 82807, 82811, 82815, - 82819, 82823, 82827, 82831, 82835, 82839, 82843, 82847, 82851, 82855, - 82859, 82863, 82867, 82871, 82875, 82879, 82883, 82887, 82891, 82895, - 82899, 82903, 82907, 82911, 82915, 82919, 82923, 82927, 82931, 82935, - 82939, 82943, 82947, 82951, 82955, 82959, 82963, 82967, 82971, 82975, - 82979, 82983, 82987, 82991, 82995, 82999, 83003, 83007, 83011, 83015, - 83019, 83023, 83027, 83031, 83035, 83039, 83043, 83047, 83051, 83055, - 83059, 83063, 83067, 83071, 83075, 83079, 83083, 83087, 83091, 83095, - 83099, 83103, 83107, 83111, 83115, 83119, 83123, 83127, 83131, 83135, - 83139, 83143, 83147, 83151, 83155, 83159, 83163, 83167, 83171, 83175, - 83179, 83183, 83187, 83191, 83195, 83199, 83203, 83207, 83211, 83215, - 83219, 83223, 83227, 83231, 83235, 83239, 83243, 83247, 83251, 83255, - 83259, 83263, 83267, 83271, 83275, 83279, 83283, 83287, 83291, 83295, - 83299, 83303, 83307, 83311, 83315, 83319, 83323, 83327, 83331, 83335, - 83339, 83343, 83347, 83351, 83355, 83359, 83363, 83367, 83371, 83375, - 83379, 83383, 83387, 83391, 83395, 83399, 83403, 83407, 83411, 83415, - 83419, 83423, 83427, 83431, 83435, 83439, 83443, 83447, 83451, 83455, - 83459, 83463, 83467, 83471, 83475, 83479, 83483, 83487, 83491, 83495, - 83499, 83503, 83507, 83511, 83515, 83519, 83523, 83527, 83531, 83535, - 83539, 83543, 83547, 83551, 83555, 83559, 83563, 83567, 83571, 83575, - 83579, 83583, 83587, 83591, 83595, 83599, 83603, 83607, 83611, 83615, - 83619, 83623, 83627, 83631, 83635, 83639, 83643, 83647, 83651, 83655, - 83659, 83663, 83667, 83671, 83675, 83679, 83683, 83687, 83691, 83695, - 83699, 83703, 83707, 83711, 83715, 83719, 83723, 83727, 83731, 83735, - 83739, 83743, 83747, 83751, 83755, 83759, 83763, 83767, 83771, 83775, - 83779, 83783, 83787, 83791, 83795, 83799, 83803, 83807, 83811, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 83815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 83819, 83822, 83826, 83830, 83833, 83837, 83841, - 83844, 83847, 83851, 83855, 83858, 83862, 83865, 83868, 83872, 83875, - 83879, 83882, 83885, 83888, 83891, 83894, 83897, 83900, 83903, 83906, - 83909, 83912, 83916, 83920, 83924, 83928, 83933, 83938, 83943, 83949, - 83954, 83959, 83965, 83970, 83975, 83980, 83985, 83991, 83996, 84001, - 84006, 84011, 84016, 84022, 84027, 84032, 84037, 84042, 84047, 84053, - 84058, 84064, 84070, 84074, 84079, 84083, 84087, 84091, 84096, 84101, - 84106, 84112, 84117, 84122, 84128, 84133, 84138, 84143, 84148, 84154, - 84159, 84164, 84169, 84174, 84179, 84185, 84190, 84195, 84200, 84205, - 84210, 84216, 84221, 84227, 84233, 84238, 84242, 84247, 84249, 84253, - 84256, 84259, 84262, 84265, 84268, 84271, 84274, 84277, 84280, 84283, - 84286, 84289, 84292, 84295, 84298, 84301, 84304, 84307, 84310, 84313, - 84316, 84319, 84322, 84325, 84328, 84331, 84334, 84337, 84340, 84343, - 84346, 84349, 84352, 84355, 84358, 84361, 84364, 84367, 84370, 84373, - 84376, 84379, 84382, 84385, 84388, 84391, 84394, 84397, 84400, 84403, - 84406, 84409, 84412, 84415, 84418, 84421, 84424, 84427, 84430, 84433, - 84436, 84439, 84442, 84445, 84448, 84451, 84454, 84457, 84460, 84463, - 84466, 84469, 84472, 84475, 84478, 84481, 84484, 84487, 84490, 84493, - 84496, 84499, 84502, 84505, 84508, 84511, 84514, 84517, 84520, 84523, - 84526, 84529, 84532, 84535, 84538, 84541, 84544, 84547, 84550, 84553, - 84556, 84559, 84562, 84565, 84568, 84571, 84574, 84577, 84580, 84583, - 84586, 84589, 84592, 84595, 84598, 84601, 84604, 84607, 84610, 84613, - 84616, 84619, 84622, 84625, 84628, 84631, 84634, 84637, 84640, 84643, - 84646, 84649, 84652, 84655, 84658, 84661, 84664, 84667, 84670, 84673, - 84676, 84679, 84682, 84685, 84688, 84691, 84694, 84697, 84700, 84703, - 84706, 84709, 84712, 84715, 84718, 84721, 84724, 84727, 84730, 84733, - 84736, 84739, 84742, 84745, 84748, 84751, 84754, 84757, 84760, 84763, - 84766, 84769, 84772, 84775, 84778, 84781, 84784, 84787, 84790, 84793, - 84796, 84799, 84802, 84805, 84808, 84811, 84814, 84817, 84820, 84823, - 84826, 84829, 84832, 84835, 84838, 84841, 84844, 84847, 84850, 84853, - 84856, 84859, 84862, 84865, 84868, 84871, 84874, 84877, 84880, 84883, - 84886, 84889, 84892, 84895, 84898, 84901, 84904, 84907, 84910, 84913, - 84916, 84919, 84922, 84925, 84928, 84931, 84934, 84937, 84940, 84943, - 84946, 84949, 84952, 84955, 84958, 84961, 84964, 84967, 84970, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 58646, 58654, 58662, 58672, 58678, 58682, 58686, 58692, 58698, 58703, + 58707, 58711, 58715, 58719, 58725, 58729, 58733, 58737, 58747, 58751, + 58755, 58761, 58765, 58771, 58775, 58779, 58785, 58791, 58797, 58805, + 58813, 58817, 58821, 58825, 58831, 58835, 58844, 58850, 58854, 58858, + 58862, 58866, 58870, 58874, 58881, 58887, 58893, 58897, 58903, 58907, + 58913, 58921, 58931, 58935, 58943, 58947, 58953, 58961, 58969, 58973, + 58977, 58983, 58988, 58994, 59000, 59004, 59008, 59011, 59015, 59019, + 59023, 59027, 59031, 59035, 59039, 59042, 59046, 59050, 59054, 59058, + 59062, 59066, 59069, 59073, 59077, 59080, 59084, 59088, 59092, 59096, + 59100, 59104, 59108, 59112, 59116, 59120, 59124, 59128, 59132, 59136, + 59140, 59144, 59148, 59152, 59156, 59160, 59164, 59168, 59172, 59176, + 59180, 59184, 59188, 59192, 59196, 59200, 59204, 59208, 59212, 59216, + 59220, 59224, 59228, 59232, 59236, 59240, 59244, 59248, 59252, 59256, + 59259, 59263, 59267, 59271, 59275, 59279, 59283, 59287, 59291, 59295, + 59299, 59303, 59307, 59311, 59315, 59319, 59323, 59327, 59331, 59335, + 59339, 59343, 59347, 59351, 59355, 59359, 59363, 59367, 59371, 59375, + 59379, 59383, 59387, 59391, 59395, 59399, 59403, 59407, 59411, 59415, + 59419, 59423, 59427, 59431, 59435, 59439, 59443, 59447, 59451, 59455, + 59459, 59463, 59467, 59471, 59475, 59479, 59483, 59487, 59491, 59495, + 59499, 59503, 59507, 59511, 59515, 59519, 59523, 59527, 59531, 59535, + 59539, 59543, 59547, 59551, 59555, 59559, 59563, 59567, 59571, 59575, + 59579, 59583, 59587, 59591, 59595, 59599, 59603, 59607, 59611, 59615, + 59619, 59623, 59627, 59631, 59635, 59639, 59643, 59647, 59651, 59655, + 59659, 59663, 59667, 59671, 59675, 59679, 59683, 59687, 59691, 59695, + 59699, 59703, 59707, 59711, 59715, 59719, 59723, 59727, 59730, 59734, + 59738, 59742, 59746, 59750, 59754, 59758, 59762, 59766, 59770, 59774, + 59778, 59782, 59786, 59790, 59794, 59798, 59802, 59806, 59810, 59814, + 59818, 59822, 59826, 59830, 59834, 59838, 59842, 59846, 59850, 59854, + 59858, 59862, 59866, 59870, 59874, 59878, 59882, 59886, 59890, 59894, + 59898, 59902, 59906, 59910, 59914, 59918, 59922, 59926, 59930, 59934, + 59938, 59942, 59946, 59950, 59954, 59958, 59962, 59966, 59970, 59974, + 59978, 59982, 59986, 59990, 59994, 59998, 60002, 60006, 60010, 60014, + 60018, 60022, 60026, 60030, 60034, 60038, 60042, 60046, 60050, 60054, + 60058, 60062, 60066, 60070, 60074, 60078, 60082, 60086, 60090, 60094, + 60098, 60102, 60106, 60110, 60114, 60118, 60122, 60126, 60130, 60134, + 60138, 60142, 60146, 60150, 60154, 60158, 60162, 60166, 60170, 60174, + 60178, 60182, 60186, 60190, 60193, 60197, 60201, 60205, 60209, 60213, + 60217, 60221, 60225, 60229, 60233, 60237, 60241, 60245, 60249, 60253, + 60257, 60261, 60265, 60269, 60273, 60277, 60281, 60285, 60289, 60293, + 60297, 60301, 60305, 60309, 60313, 60317, 60321, 60325, 60329, 60333, + 60337, 60341, 60345, 60349, 60353, 60357, 60361, 60365, 60369, 60373, + 60377, 60381, 60385, 60389, 60393, 60397, 60401, 60405, 60409, 60413, + 60417, 60421, 60425, 60429, 60433, 60437, 60441, 60445, 60449, 60453, + 60457, 60461, 60465, 60469, 60473, 60477, 60481, 60485, 60489, 60493, + 60497, 60501, 60505, 60509, 60513, 60517, 60521, 60525, 60529, 60533, + 60537, 60541, 60545, 60549, 60553, 60557, 60561, 60565, 60569, 60573, + 60577, 60581, 60585, 60589, 60593, 60597, 60601, 60605, 60609, 60613, + 60617, 60621, 60625, 60629, 60633, 60637, 60641, 60645, 60649, 60653, + 60657, 60661, 60665, 60669, 60673, 60677, 60681, 60685, 60689, 60693, + 60697, 60701, 60705, 60709, 60713, 60717, 60721, 60725, 60729, 60733, + 60737, 60741, 60745, 60749, 60753, 60757, 60761, 60765, 60769, 60773, + 60777, 60781, 60785, 60789, 60793, 60797, 60801, 60805, 60809, 60813, + 60817, 60821, 60825, 60829, 60833, 60837, 60841, 60845, 60849, 60853, + 60857, 60861, 60865, 60869, 60873, 60877, 60881, 60885, 60889, 60893, + 60897, 60901, 60905, 60909, 60913, 60917, 60921, 60925, 60929, 60933, + 60937, 60941, 60945, 60949, 60953, 60957, 60961, 60965, 60969, 60973, + 60977, 60981, 60985, 60989, 60993, 60997, 61001, 61005, 61009, 61013, + 61017, 61021, 61025, 61029, 61033, 61037, 61041, 61045, 61048, 61052, + 61056, 61060, 61064, 61068, 61072, 61076, 61080, 61084, 61088, 61092, + 61096, 61100, 61104, 61108, 61112, 61116, 61120, 61124, 61128, 61132, + 61136, 61140, 61144, 61148, 61152, 61156, 61160, 61164, 61168, 61172, + 61176, 61180, 61184, 61188, 61192, 61196, 61200, 61204, 61208, 61212, + 61216, 61220, 61224, 61228, 61232, 61236, 61240, 61244, 61248, 61252, + 61256, 61260, 61264, 61268, 61272, 61276, 61280, 61284, 61288, 61292, + 61296, 61300, 61304, 61308, 61312, 61316, 61320, 61324, 61328, 61332, + 61336, 61340, 61344, 61348, 61352, 61356, 61360, 61364, 61368, 61372, + 61376, 61380, 61384, 61388, 61392, 61396, 61400, 61404, 61408, 61412, + 61416, 61420, 61424, 61428, 61432, 61436, 61440, 61444, 61448, 61452, + 61456, 61460, 61464, 61468, 61472, 61476, 61480, 61484, 61488, 61492, + 61496, 61500, 61503, 61507, 61511, 61515, 61519, 61523, 61527, 61531, + 61535, 61539, 61543, 61547, 61551, 61555, 61559, 61563, 61567, 61571, + 61575, 61579, 61583, 61587, 61591, 61595, 61599, 61603, 61607, 61611, + 61615, 61619, 61623, 61627, 61631, 61635, 61639, 61643, 61647, 61651, + 61655, 61659, 61663, 61667, 61671, 61675, 61679, 61683, 61687, 61691, + 61695, 61699, 61703, 61707, 61711, 61715, 61719, 61723, 61727, 61731, + 61735, 61739, 61743, 61747, 61751, 61755, 61759, 61763, 61767, 61771, + 61775, 61779, 61783, 61787, 61791, 61795, 61799, 61803, 61807, 61811, + 61815, 61819, 61823, 61827, 61831, 61835, 61839, 61843, 61847, 61851, + 61855, 61859, 61863, 61867, 61871, 61875, 61879, 61883, 61887, 61891, + 61895, 61899, 61903, 61907, 61911, 61915, 61919, 61923, 61927, 61931, + 61935, 61939, 61943, 61947, 61951, 61955, 61959, 61963, 61967, 61971, + 61975, 61979, 61983, 61987, 61991, 61995, 61999, 62003, 62007, 62011, + 62015, 62019, 62023, 62027, 62031, 62035, 62039, 62043, 62047, 62051, + 62055, 62059, 62063, 62067, 62071, 62075, 62079, 62083, 62087, 62091, + 62095, 62099, 62103, 62106, 62110, 62114, 62118, 62122, 62126, 62130, + 62134, 62138, 62142, 62146, 62150, 62154, 62158, 62162, 62166, 62170, + 62174, 62178, 62182, 62186, 62190, 62194, 62198, 62202, 62206, 62210, + 62214, 62218, 62222, 62226, 62230, 62234, 62238, 62242, 62246, 62250, + 62254, 62258, 62262, 62266, 62270, 62274, 62278, 62282, 62286, 62290, + 62294, 62298, 62302, 62306, 62310, 62314, 62318, 62322, 62326, 62330, + 62334, 62338, 62342, 62346, 62350, 62354, 62358, 62362, 62366, 62370, + 62374, 62378, 62382, 62386, 62390, 62394, 62398, 62402, 62406, 62410, + 62414, 62418, 62422, 62426, 62430, 62434, 62438, 62442, 62446, 62450, + 62454, 62458, 62462, 62466, 62470, 62474, 62478, 62482, 62486, 62490, + 62494, 62498, 62502, 62506, 62510, 62514, 62518, 62522, 62526, 62530, + 62534, 62538, 62542, 62546, 62550, 62554, 62558, 62562, 62566, 62570, + 62574, 62578, 62582, 62586, 62590, 62594, 62598, 62602, 62606, 62610, + 62614, 62618, 62622, 62626, 62630, 62634, 62638, 62642, 62646, 62650, + 62654, 62658, 62662, 62666, 62670, 62674, 62678, 62682, 62686, 62690, + 62694, 62698, 62702, 62706, 62710, 62714, 62718, 62722, 62726, 62730, + 62734, 62738, 62742, 62746, 62750, 62754, 62758, 62762, 62766, 62770, + 62774, 62778, 62782, 62786, 62790, 62794, 62798, 62802, 62806, 62810, + 62814, 62818, 62822, 62826, 62830, 62834, 62838, 62842, 62846, 62850, + 62854, 62858, 62862, 62865, 62869, 62873, 62877, 62881, 62885, 62889, + 62893, 62897, 62901, 62905, 62909, 62913, 62917, 62921, 62925, 62929, + 62933, 62937, 62941, 62945, 62949, 62953, 62957, 62961, 62965, 62969, + 62973, 62977, 62981, 62985, 62989, 62993, 62997, 63001, 63005, 63009, + 63013, 63017, 63021, 63025, 63029, 63033, 63037, 63041, 63045, 63049, + 63053, 63057, 63061, 63065, 63069, 63073, 63077, 63081, 63085, 63089, + 63093, 63097, 63101, 63105, 63109, 63113, 63117, 63121, 63125, 63129, + 63133, 63137, 63141, 63145, 63149, 63153, 63157, 63161, 63165, 63169, + 63173, 63177, 63181, 63185, 63189, 63193, 63197, 63201, 63205, 63209, + 63213, 63217, 63221, 63225, 63229, 63233, 63237, 63241, 63245, 63249, + 63253, 63257, 63261, 63265, 63269, 63273, 63277, 63281, 63285, 63289, + 63293, 63297, 63301, 63305, 63309, 63313, 63317, 63321, 63325, 63329, + 63333, 63337, 63341, 63345, 63349, 63353, 63357, 63361, 63365, 63369, + 63373, 63377, 63381, 63385, 63389, 63393, 63397, 63401, 63405, 63409, + 63413, 63417, 63421, 63425, 63429, 63433, 63437, 63441, 63445, 63449, + 63453, 63457, 63461, 63465, 63469, 63473, 63477, 63481, 63485, 63489, + 63493, 63497, 63501, 63505, 63509, 63513, 63517, 63521, 63525, 63529, + 63533, 63537, 63541, 63545, 63549, 63553, 63557, 63561, 63565, 63569, + 63573, 63577, 63581, 63585, 63589, 63593, 63597, 63601, 63605, 63609, + 63613, 63617, 63621, 63625, 63629, 63633, 63637, 63641, 63645, 0, 0, 0, + 63649, 63653, 63657, 63661, 63665, 63669, 63673, 63677, 63681, 63685, + 63689, 63693, 63697, 63701, 63705, 63709, 63713, 63717, 63721, 63725, + 63729, 63733, 63737, 63741, 63745, 63749, 63753, 63757, 63761, 63765, + 63769, 63773, 63777, 63781, 63785, 63789, 63793, 63797, 63801, 63805, + 63809, 63813, 63817, 63821, 63825, 63829, 63833, 63837, 63841, 63845, + 63849, 63853, 63857, 63861, 63865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63869, 63873, + 63877, 63881, 63885, 63889, 63893, 63897, 63901, 63905, 63909, 63913, + 63917, 63921, 63925, 63929, 63933, 63937, 63941, 63945, 63949, 63953, + 63957, 63961, 63965, 63969, 63973, 63977, 63981, 63985, 63989, 63993, + 63997, 64001, 64005, 64009, 64013, 64016, 64020, 64024, 64028, 64032, + 64036, 64040, 64044, 64048, 64052, 64056, 64060, 64064, 64068, 64072, + 64076, 64080, 64084, 64088, 64092, 64096, 64100, 64104, 64108, 64112, + 64116, 64120, 64124, 64128, 64132, 64136, 64140, 64144, 64148, 64152, + 64156, 64160, 64163, 64167, 64171, 64174, 64178, 64182, 64186, 64189, + 64193, 64197, 64201, 64205, 64209, 64213, 64217, 64221, 64225, 64229, + 64233, 64237, 64241, 64245, 64248, 64252, 64256, 64260, 64264, 64268, + 64272, 64276, 64280, 64284, 64287, 64290, 64294, 64298, 64302, 64305, + 64309, 64313, 64317, 64321, 64325, 64329, 64333, 64337, 64341, 64345, + 64349, 64353, 64357, 64361, 64365, 64369, 64373, 64377, 64381, 64385, + 64389, 64393, 64397, 64401, 64405, 64409, 64413, 64417, 64421, 64425, + 64429, 64433, 64437, 64441, 64445, 64449, 64453, 64457, 64460, 64464, + 64468, 64472, 64476, 64480, 64484, 64488, 64492, 64496, 64500, 64504, + 64508, 64512, 64516, 64520, 64524, 64528, 64532, 64536, 64540, 64544, + 64548, 64552, 64556, 64560, 64564, 64568, 64572, 64576, 64580, 64584, + 64588, 64592, 64596, 64600, 64604, 64607, 64611, 64615, 64619, 64623, + 64627, 64631, 64635, 64639, 64643, 64647, 64651, 64655, 64659, 64663, + 64667, 64671, 64674, 64678, 64682, 64686, 64690, 64694, 64698, 64702, + 64706, 64710, 64714, 64718, 64722, 64726, 64730, 64734, 64738, 64742, + 64746, 64750, 64754, 64758, 64761, 64765, 64769, 64773, 64777, 64781, + 64785, 64789, 64793, 64797, 64801, 64805, 64809, 64813, 64817, 64821, + 64825, 64829, 64833, 64837, 64841, 64845, 64849, 64853, 64857, 64861, + 64865, 64869, 64873, 64877, 64881, 64885, 64889, 64893, 64897, 64901, + 64905, 64909, 64913, 64917, 64921, 64925, 64929, 64933, 64936, 64941, + 64945, 64951, 64956, 64962, 64966, 64970, 64974, 64978, 64982, 64986, + 64990, 64994, 64998, 65002, 65006, 65010, 65014, 65018, 65021, 65024, + 65027, 65030, 65033, 65036, 65039, 65042, 65045, 65050, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65056, 65061, 65066, 65071, + 65076, 65082, 65088, 65093, 65098, 65103, 65108, 65115, 65122, 65129, + 65136, 65143, 65150, 65160, 65170, 65177, 65184, 65190, 65196, 65202, + 65208, 65217, 65226, 65233, 65240, 65251, 65262, 65267, 0, 0, 65272, + 65279, 65286, 65293, 65300, 65307, 65314, 65320, 65326, 65332, 65338, + 65345, 65352, 65357, 65361, 65368, 65375, 65382, 0, 0, 0, 0, 0, 0, 0, 0, + 65386, 65390, 65394, 65397, 65400, 65405, 65410, 65415, 65420, 65425, + 65430, 65435, 65440, 65445, 65450, 65459, 65468, 65473, 65478, 65483, + 65488, 65493, 65498, 65503, 65508, 65513, 65518, 65523, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65528, 65537, 65546, 65555, 65564, 65573, 65582, 65591, 65600, + 65608, 65615, 65623, 65630, 65638, 65648, 65657, 65667, 65676, 65686, + 65694, 65701, 65709, 65716, 65724, 65729, 65734, 65739, 65747, 65753, + 65759, 65766, 65775, 65783, 65791, 65799, 65806, 65813, 65820, 65827, + 65832, 65837, 65842, 65847, 65852, 65857, 65862, 65867, 65875, 65883, + 65889, 65894, 65899, 65904, 65909, 65914, 65919, 65924, 65929, 65934, + 65942, 65950, 65955, 65960, 65969, 65978, 65985, 65992, 66001, 66010, + 66021, 66032, 66038, 66044, 66052, 66060, 66069, 66078, 66085, 66092, + 66097, 66102, 66113, 66124, 66132, 66140, 66150, 66160, 66171, 66182, + 66191, 66200, 66207, 66214, 66221, 66228, 66237, 66246, 66251, 66256, + 66263, 66270, 66277, 66284, 66295, 66306, 66311, 66316, 66321, 66326, + 66331, 66336, 66341, 66346, 66350, 66355, 66360, 66365, 66370, 66375, + 66381, 66386, 66391, 66398, 66405, 66412, 66419, 66425, 66432, 66439, + 66444, 66449, 66455, 66461, 66467, 66473, 66480, 66487, 66494, 66498, + 66505, 66510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66515, 66522, + 66529, 66536, 66544, 66551, 66557, 66563, 66570, 66576, 66582, 66588, + 66595, 66602, 66609, 66616, 66623, 66630, 66637, 66644, 66651, 66658, + 66665, 66672, 66679, 66686, 66692, 66699, 66706, 66713, 66720, 66727, + 66734, 66741, 66748, 66755, 66762, 66769, 66776, 66783, 66790, 66797, + 66804, 66811, 66818, 66826, 66834, 66842, 66850, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66858, 66861, 66865, 66869, 66873, + 66877, 66881, 66885, 66889, 66893, 66897, 66901, 66905, 66908, 66912, + 66916, 66919, 66923, 66927, 66931, 66935, 66939, 66943, 66947, 66950, + 66953, 66957, 66961, 66965, 66968, 66971, 66974, 66977, 66980, 66983, + 66987, 66991, 66995, 66999, 67003, 67009, 67014, 67018, 67022, 67026, + 67030, 67035, 67041, 67046, 67052, 67057, 67062, 67066, 67072, 67077, + 67081, 0, 0, 0, 0, 0, 0, 0, 0, 67086, 67090, 67094, 67097, 67101, 67104, + 67108, 67111, 67115, 67119, 67124, 67128, 67133, 67136, 67140, 67144, + 67147, 67151, 67155, 67158, 67162, 67166, 67170, 67174, 67178, 67182, + 67186, 67190, 67194, 67198, 67202, 67206, 67210, 67214, 67218, 67222, + 67226, 67230, 67234, 67237, 67241, 67245, 67249, 67252, 67255, 67258, + 67262, 67266, 67270, 67274, 67278, 67281, 67285, 67291, 67296, 67300, + 67305, 67309, 67314, 67319, 67325, 67330, 67336, 67340, 67345, 67350, + 67354, 67359, 67364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67368, 67371, 67375, + 67379, 67382, 67385, 67388, 67391, 67394, 67397, 67400, 67403, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67406, 67413, 67419, 67425, 67431, + 67437, 67443, 67449, 67455, 67461, 67467, 67473, 67480, 67487, 67494, + 67501, 67508, 67515, 67522, 67529, 67536, 67543, 67549, 67556, 67562, + 67569, 67576, 67582, 67588, 67595, 67602, 67609, 67615, 67622, 67629, + 67635, 67642, 67648, 67655, 67662, 67668, 67674, 67681, 67687, 67694, + 67701, 67710, 67717, 67724, 67728, 67733, 67738, 67743, 67748, 67753, + 67757, 67762, 67766, 67771, 67776, 67781, 67786, 67790, 67795, 67799, + 67804, 67808, 67813, 67818, 67823, 67828, 67832, 67837, 67842, 67847, + 67853, 67858, 67864, 67870, 67876, 67883, 67889, 67895, 67901, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67910, 67913, + 67916, 67919, 67922, 67926, 67929, 67932, 67936, 67940, 67944, 67948, + 67952, 67956, 67960, 67964, 67968, 67972, 67976, 67980, 67984, 67988, + 67992, 67996, 68000, 68004, 68008, 68011, 68015, 68019, 68023, 68027, + 68031, 68034, 68038, 68041, 68044, 68048, 68052, 68056, 68060, 68063, + 68068, 68072, 68077, 68082, 68086, 68091, 68095, 68100, 68105, 68110, + 68115, 68120, 68126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68132, 68137, 68141, + 68146, 68153, 68158, 68163, 68167, 68172, 68177, 68181, 68185, 68190, + 68196, 0, 0, 68202, 68206, 68209, 68212, 68215, 68218, 68221, 68224, + 68227, 68230, 0, 0, 68233, 68238, 68243, 68249, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68256, 68260, 68264, 68268, 68272, 68276, 68280, 68284, 68288, 68292, + 68296, 68300, 68304, 68308, 68312, 68316, 68320, 68324, 68328, 68332, + 68336, 68340, 68344, 68348, 68352, 68356, 68360, 68364, 68368, 68372, + 68376, 68380, 68384, 68388, 68392, 68396, 68400, 68404, 68408, 68412, + 68416, 68420, 68424, 68428, 68432, 68436, 68440, 68444, 68448, 68452, + 68456, 68460, 68464, 68468, 68472, 68476, 68480, 68484, 68488, 68492, + 68496, 68500, 68504, 68508, 68512, 68516, 68520, 68524, 68528, 68532, + 68536, 68540, 68544, 68548, 68552, 68556, 68560, 68564, 68568, 68572, + 68576, 68580, 68584, 68588, 68592, 68596, 68600, 68604, 68608, 68612, + 68616, 68620, 68624, 68628, 68632, 68636, 68640, 68644, 68648, 68652, + 68656, 68660, 68664, 68668, 68672, 68676, 68680, 68684, 68688, 68692, + 68696, 68700, 68704, 68708, 68712, 68716, 68720, 68724, 68728, 68732, + 68736, 68740, 68744, 68748, 68752, 68756, 68760, 68764, 68768, 68772, + 68776, 68780, 68784, 68788, 68792, 68796, 68800, 68804, 68808, 68812, + 68816, 68820, 68824, 68828, 68832, 68836, 68840, 68844, 68848, 68852, + 68856, 68860, 68864, 68868, 68872, 68876, 68880, 68884, 68888, 68892, + 68896, 68900, 68904, 68908, 68912, 68916, 68920, 68924, 68928, 68932, + 68936, 68940, 68944, 68948, 68952, 68956, 68960, 68964, 68968, 68972, + 68976, 68980, 68984, 68988, 68992, 68996, 69000, 69004, 69008, 69012, + 69016, 69020, 69024, 69028, 69032, 69036, 69040, 69044, 69048, 69052, + 69056, 69060, 69064, 69068, 69072, 69076, 69080, 69084, 69088, 69092, + 69096, 69100, 69104, 69108, 69112, 69116, 69120, 69124, 69128, 69132, + 69136, 69140, 69144, 69148, 69152, 69156, 69160, 69164, 69168, 69172, + 69176, 69180, 69184, 69188, 69192, 69196, 69200, 69204, 69208, 69212, + 69216, 69220, 69224, 69228, 69232, 69236, 69240, 69244, 69248, 69252, + 69256, 69260, 69264, 69268, 69272, 69276, 69280, 69284, 69288, 69292, + 69296, 69300, 69304, 69308, 69312, 69316, 69320, 69324, 69328, 69332, + 69336, 69340, 69344, 69348, 69352, 69356, 69360, 69364, 69368, 69372, + 69376, 69380, 69384, 69388, 69392, 69396, 69400, 69404, 69408, 69412, + 69416, 69420, 69424, 69428, 69432, 69436, 69440, 69444, 69448, 69452, + 69456, 69460, 0, 0, 69464, 69468, 69472, 69476, 69480, 69484, 69488, + 69492, 69496, 69500, 69504, 69508, 69512, 69516, 69520, 69524, 69528, + 69532, 69536, 69540, 69544, 69548, 69552, 69556, 69560, 69564, 69568, + 69572, 69576, 69580, 69584, 69588, 69592, 69596, 69600, 69604, 69608, + 69612, 69616, 69620, 69624, 69628, 69632, 69636, 69640, 69644, 69648, + 69652, 69656, 69660, 69664, 69668, 69672, 69676, 69680, 69684, 69688, + 69692, 69696, 0, 0, 0, 0, 0, 69700, 69704, 69708, 69712, 69716, 69720, + 69724, 69728, 69732, 69736, 69740, 69744, 69748, 69752, 69756, 69760, + 69764, 69768, 69772, 69776, 69780, 69784, 69788, 69792, 69796, 69800, + 69804, 69808, 69812, 69816, 69820, 69824, 69828, 69832, 69836, 69840, + 69844, 69848, 69852, 69856, 69860, 69864, 69868, 69872, 69876, 69880, + 69884, 69888, 69892, 69896, 69900, 69904, 69908, 69912, 69916, 69920, + 69924, 69928, 69932, 69936, 69940, 69944, 69948, 69952, 69956, 69960, + 69964, 69968, 69972, 69976, 69980, 69984, 69988, 69992, 69996, 70000, + 70004, 70008, 70012, 70016, 70020, 70024, 70028, 70032, 70036, 70040, + 70044, 70048, 70052, 70056, 70060, 70064, 70068, 70072, 70076, 70080, + 70084, 70088, 70092, 70096, 70100, 70104, 70108, 70112, 70116, 70120, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70124, 70129, 70134, 70139, 70144, + 70149, 70157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70162, 70169, 70176, + 70183, 70190, 0, 0, 0, 0, 0, 70197, 70204, 70211, 70221, 70227, 70233, + 70239, 70245, 70251, 70257, 70264, 70270, 70276, 70282, 70291, 70300, + 70312, 70324, 70330, 70336, 70342, 70349, 70356, 70363, 70370, 70377, 0, + 70384, 70391, 70398, 70406, 70413, 0, 70420, 0, 70427, 70434, 0, 70441, + 70449, 0, 70456, 70463, 70470, 70477, 70484, 70491, 70498, 70505, 70512, + 70519, 70524, 70531, 70538, 70544, 70550, 70556, 70562, 70568, 70574, + 70580, 70586, 70592, 70598, 70604, 70610, 70616, 70622, 70628, 70634, + 70640, 70646, 70652, 70658, 70664, 70670, 70676, 70682, 70688, 70694, + 70700, 70706, 70712, 70718, 70724, 70730, 70736, 70742, 70748, 70754, + 70760, 70766, 70772, 70778, 70784, 70790, 70796, 70802, 70808, 70814, + 70820, 70826, 70832, 70838, 70844, 70850, 70856, 70862, 70868, 70874, + 70880, 70886, 70892, 70898, 70904, 70910, 70916, 70922, 70928, 70934, + 70940, 70946, 70952, 70958, 70964, 70970, 70976, 70982, 70988, 70994, + 71002, 71010, 71016, 71022, 71028, 71034, 71043, 71052, 71060, 71068, + 71076, 71084, 71092, 71100, 71108, 71116, 71123, 71130, 71140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71150, 71156, 71162, 71168, 71174, 71179, 71184, 71190, + 71196, 71202, 71208, 71216, 71222, 71228, 71236, 71244, 71252, 71260, + 71265, 71270, 71275, 71280, 71292, 71304, 71314, 71324, 71335, 71346, + 71357, 71368, 71378, 71388, 71399, 71410, 71421, 71432, 71442, 71452, + 71462, 71477, 71492, 71507, 71514, 71521, 71528, 71535, 71545, 71555, + 71565, 71576, 71586, 71594, 71602, 71610, 71618, 71627, 71635, 71643, + 71651, 71659, 71667, 71676, 71684, 71692, 71700, 71709, 71717, 71724, + 71731, 71738, 71745, 71752, 71759, 71766, 71774, 71782, 71790, 71798, + 71806, 71814, 71822, 71830, 71838, 71846, 71854, 71862, 71870, 71878, + 71886, 71894, 71902, 71910, 71918, 71926, 71934, 71943, 71951, 71959, + 71967, 71976, 71984, 71992, 72000, 72008, 72016, 72024, 72032, 72041, + 72049, 72056, 72063, 72070, 72077, 72085, 72092, 72099, 72106, 72113, + 72120, 72128, 72135, 72143, 72151, 72159, 72167, 72176, 72184, 72192, + 72200, 72209, 72217, 72224, 72231, 72238, 72245, 72253, 72260, 72270, + 72280, 72290, 72299, 72308, 72317, 72326, 72335, 72345, 72356, 72367, + 72377, 72388, 72399, 72409, 72418, 72427, 72435, 72444, 72453, 72461, + 72470, 72479, 72487, 72496, 72505, 72513, 72522, 72531, 72539, 72548, + 72557, 72565, 72574, 72582, 72591, 72599, 72607, 72615, 72623, 72632, + 72640, 72647, 72655, 72662, 72669, 72676, 72685, 72694, 72702, 72711, + 72720, 72728, 72738, 72746, 72754, 72761, 72769, 72777, 72784, 72794, + 72804, 72814, 72824, 72835, 72843, 72851, 72859, 72867, 72876, 72884, + 72892, 72900, 72908, 72917, 72925, 72932, 72939, 72946, 72953, 72960, + 72967, 72975, 72983, 72991, 72999, 73007, 73015, 73023, 73031, 73039, + 73047, 73055, 73063, 73071, 73079, 73087, 73095, 73103, 73111, 73119, + 73127, 73135, 73143, 73151, 73159, 73167, 73175, 73183, 73191, 73198, + 73205, 73212, 73219, 73227, 73234, 73241, 73248, 73255, 73263, 73271, + 73279, 73287, 73296, 73304, 73312, 73322, 73329, 73336, 73343, 73350, + 73358, 73368, 73379, 73387, 73396, 73404, 73413, 73421, 73430, 73438, + 73447, 73455, 73464, 73472, 73480, 73487, 73495, 73504, 73511, 73519, + 73528, 73537, 73546, 73555, 73563, 73572, 73580, 73589, 73597, 73606, + 73614, 73623, 73631, 73639, 73646, 73654, 73661, 73669, 73676, 73685, + 73693, 73702, 73710, 73718, 73726, 73734, 73742, 73751, 73760, 73769, + 73778, 73787, 73795, 73804, 73812, 73821, 73829, 73838, 73846, 73855, + 73863, 73871, 73878, 73886, 73893, 73901, 73908, 73917, 73925, 73934, + 73942, 73950, 73958, 73966, 73974, 73983, 73992, 74001, 74010, 74018, + 74026, 74034, 74042, 74051, 74060, 74068, 74076, 74084, 74092, 74100, + 74108, 74116, 74124, 74132, 74140, 74148, 74153, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74158, 74168, 74178, 74188, 74198, 74208, 74218, + 74228, 74238, 74247, 74256, 74265, 74275, 74285, 74295, 74306, 74316, + 74326, 74336, 74346, 74356, 74366, 74376, 74386, 74396, 74406, 74416, + 74426, 74436, 74446, 74456, 74467, 74477, 74487, 74497, 74507, 74517, + 74527, 74537, 74547, 74557, 74568, 74578, 74588, 74599, 74609, 74619, + 74629, 74639, 74648, 74657, 74667, 74676, 74685, 74694, 74703, 74712, + 74721, 74730, 74739, 74748, 74757, 74766, 74775, 0, 0, 74784, 74793, + 74803, 74813, 74823, 74834, 74844, 74854, 74865, 74875, 74886, 74895, + 74904, 74914, 74924, 74935, 74945, 74956, 74966, 74977, 74986, 74996, + 75006, 75017, 75027, 75037, 75047, 75056, 75065, 75074, 75083, 75092, + 75101, 75111, 75121, 75131, 75140, 75150, 75160, 75170, 75179, 75188, + 75198, 75207, 75217, 75226, 75235, 75244, 75254, 75264, 75274, 75284, + 75294, 75304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75314, 75329, + 75344, 75350, 75356, 75362, 75368, 75374, 75380, 75386, 75392, 75400, + 75404, 75407, 0, 0, 75415, 75418, 75421, 75424, 75427, 75430, 75433, + 75436, 75439, 75442, 75445, 75448, 75451, 75454, 75457, 75460, 75463, + 75470, 75478, 75488, 75495, 75502, 75510, 75518, 75528, 75539, 0, 0, 0, + 0, 0, 0, 75547, 75552, 75557, 75564, 75571, 75577, 75583, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75588, 75597, 75606, 75615, 75623, 75633, 75641, 75649, + 75658, 75667, 75678, 75689, 75699, 75709, 75719, 75729, 75738, 75747, + 75756, 75765, 75775, 75785, 75789, 75794, 75802, 75810, 75814, 75818, + 75822, 75827, 75832, 75837, 75842, 75845, 75849, 0, 75854, 75857, 75860, + 75864, 75868, 75873, 75877, 75881, 75886, 75891, 75898, 75905, 75908, + 75911, 75914, 75917, 75920, 75924, 75928, 0, 75932, 75937, 75941, 75945, + 0, 0, 0, 0, 75950, 75955, 75962, 75967, 75972, 0, 75977, 75982, 75987, + 75992, 75997, 76002, 76007, 76012, 76017, 76022, 76027, 76032, 76041, + 76050, 76058, 76066, 76075, 76084, 76093, 76102, 76110, 76118, 76126, + 76134, 76139, 76144, 76150, 76156, 76162, 76168, 76176, 76184, 76190, + 76196, 76202, 76208, 76214, 76220, 76226, 76232, 76237, 76242, 76247, + 76252, 76257, 76262, 76267, 76272, 76277, 76282, 76287, 76292, 76298, + 76304, 76310, 76316, 76322, 76328, 76334, 76340, 76346, 76352, 76358, + 76364, 76370, 76376, 76382, 76388, 76394, 76400, 76406, 76412, 76418, + 76424, 76430, 76436, 76442, 76448, 76454, 76460, 76466, 76472, 76478, + 76484, 76490, 76496, 76502, 76508, 76514, 76520, 76526, 76532, 76538, + 76544, 76550, 76556, 76562, 76568, 76574, 76580, 76586, 76592, 76598, + 76604, 76609, 76614, 76619, 76624, 76629, 76634, 76639, 76644, 76650, + 76656, 76662, 76668, 76674, 76680, 76686, 76692, 76698, 76704, 76710, + 76716, 76721, 76726, 76731, 76736, 76747, 76758, 76768, 76778, 76789, + 76800, 76807, 0, 0, 76814, 0, 76822, 76826, 76830, 76833, 76837, 76841, + 76844, 76847, 76851, 76855, 76858, 76861, 76864, 76867, 76872, 76875, + 76879, 76882, 76885, 76888, 76891, 76894, 76897, 76900, 76903, 76906, + 76909, 76912, 76916, 76920, 76924, 76928, 76933, 76938, 76944, 76950, + 76956, 76961, 76967, 76972, 76977, 76982, 76988, 76994, 76999, 77004, + 77009, 77014, 77020, 77026, 77031, 77036, 77042, 77047, 77052, 77058, + 77064, 77070, 77076, 77080, 77085, 77089, 77094, 77098, 77103, 77108, + 77114, 77120, 77126, 77131, 77137, 77142, 77147, 77152, 77158, 77164, + 77169, 77174, 77179, 77184, 77190, 77196, 77201, 77206, 77212, 77217, + 77222, 77228, 77234, 77240, 77246, 77251, 77255, 77260, 77262, 77267, + 77272, 77278, 77283, 77288, 77292, 77298, 77303, 77308, 77313, 77318, + 77323, 77328, 77333, 77339, 77345, 77351, 77359, 77363, 77367, 77371, + 77375, 77379, 77383, 77388, 77393, 77398, 77403, 77408, 77413, 77418, + 77423, 77428, 77433, 77438, 77443, 77448, 77452, 77457, 77462, 77467, + 77472, 77477, 77481, 77486, 77491, 77496, 77501, 77505, 77510, 77515, + 77520, 77525, 77529, 77534, 77539, 77543, 77548, 77553, 77558, 77563, + 77568, 77572, 77579, 77586, 77590, 77595, 77600, 77605, 77610, 77615, + 77620, 77625, 77630, 77635, 77640, 77645, 77650, 77655, 77660, 77665, + 77670, 77675, 77680, 77685, 77690, 77695, 77700, 77705, 77710, 77715, + 77720, 77725, 77730, 77735, 0, 0, 0, 77740, 77744, 77749, 77753, 77758, + 77763, 0, 0, 77767, 77772, 77777, 77781, 77786, 77791, 0, 0, 77796, + 77801, 77805, 77810, 77815, 77820, 0, 0, 77825, 77830, 77835, 0, 0, 0, + 77839, 77843, 77847, 77850, 77853, 77857, 77861, 0, 77865, 77871, 77874, + 77878, 77881, 77885, 77889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77893, 77899, + 77905, 77911, 77917, 0, 0, 77921, 77927, 77933, 77939, 77945, 77951, + 77958, 77965, 77972, 77979, 77986, 77993, 0, 78000, 78007, 78014, 78020, + 78027, 78034, 78041, 78048, 78054, 78061, 78068, 78075, 78082, 78089, + 78096, 78103, 78110, 78117, 78123, 78130, 78137, 78144, 78151, 78158, + 78165, 78172, 0, 78179, 78185, 78192, 78199, 78206, 78213, 78220, 78227, + 78234, 78241, 78248, 78255, 78262, 78269, 78275, 78282, 78289, 78296, + 78303, 0, 78310, 78317, 0, 78324, 78331, 78338, 78345, 78352, 78359, + 78366, 78373, 78380, 78387, 78394, 78401, 78408, 78415, 78422, 0, 0, + 78428, 78433, 78438, 78443, 78448, 78453, 78458, 78463, 78468, 78473, + 78478, 78483, 78488, 78493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78498, 78505, + 78512, 78519, 78526, 78533, 78540, 78547, 78554, 78561, 78568, 78575, + 78582, 78589, 78596, 78603, 78610, 78617, 78624, 78631, 78639, 78647, + 78654, 78661, 78666, 78674, 78682, 78689, 78696, 78701, 78708, 78713, + 78718, 78725, 78730, 78735, 78740, 78748, 78753, 78758, 78765, 78770, + 78775, 78782, 78789, 78794, 78799, 78804, 78809, 78814, 78819, 78824, + 78829, 78834, 78841, 78846, 78853, 78858, 78863, 78868, 78873, 78878, + 78883, 78888, 78893, 78898, 78903, 78908, 78915, 78922, 78929, 78936, + 78942, 78947, 78954, 78959, 78964, 78973, 78980, 78989, 78996, 79001, + 79006, 79014, 79019, 79024, 79029, 79034, 79039, 79046, 79051, 79056, + 79061, 79066, 79071, 79078, 79085, 79092, 79099, 79106, 79113, 79120, + 79127, 79134, 79141, 79148, 79155, 79162, 79169, 79176, 79183, 79190, + 79197, 79204, 79211, 79218, 79225, 79232, 79239, 79246, 79253, 79260, + 79267, 0, 0, 0, 0, 0, 79274, 79281, 79288, 0, 0, 0, 0, 79292, 79295, + 79298, 79301, 79304, 79307, 79310, 79313, 79316, 79319, 79323, 79327, + 79331, 79335, 79339, 79343, 79347, 79351, 79355, 79360, 79365, 79370, + 79376, 79382, 79388, 79394, 79400, 79406, 79411, 79416, 79421, 79427, + 79433, 79439, 79445, 79451, 79457, 79463, 79469, 79475, 79481, 79487, + 79493, 79499, 79505, 0, 0, 0, 79511, 79518, 79525, 79532, 79539, 79546, + 79555, 79564, 79571, 79578, 79586, 79594, 79602, 79608, 79615, 79624, + 79633, 79642, 79651, 79660, 79669, 79679, 79690, 79700, 79711, 79720, + 79729, 79738, 79748, 79759, 79769, 79780, 79791, 79800, 79808, 79814, + 79820, 79826, 79832, 79840, 79848, 79854, 79861, 79871, 79878, 79885, + 79892, 79899, 79906, 79916, 79923, 79930, 79938, 79946, 79955, 79964, + 79973, 79982, 79991, 79999, 80008, 80017, 80026, 80030, 80037, 80042, + 80047, 80051, 80055, 80059, 80063, 80068, 80073, 80079, 80085, 80089, + 80095, 80099, 80103, 80107, 80111, 80115, 80119, 80125, 0, 0, 0, 0, 0, + 80129, 80134, 80139, 80144, 80149, 80156, 80161, 80166, 80171, 80176, + 80181, 80186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80191, 80198, 80207, 80216, 80223, 80230, 80237, + 80244, 80251, 80258, 80264, 80271, 80278, 80285, 80292, 80299, 80306, + 80313, 80320, 80329, 80336, 80343, 80350, 80357, 80364, 80371, 80378, + 80385, 80394, 80401, 80408, 80415, 80422, 80429, 80436, 80445, 80452, + 80459, 80466, 80473, 80482, 80489, 80496, 80503, 80511, 80520, 0, 0, + 80529, 80533, 80537, 80542, 80547, 80551, 80556, 80560, 80565, 80570, + 80575, 80580, 80585, 80590, 80594, 80598, 80602, 80607, 80612, 80616, + 80621, 80626, 80630, 80634, 80639, 80644, 80649, 80654, 80658, 0, 0, 0, + 80663, 80667, 80672, 80677, 80681, 80686, 80690, 80695, 80700, 80705, + 80710, 80714, 80718, 80723, 80728, 80733, 80738, 80742, 80747, 80751, + 80756, 80761, 80765, 80770, 80775, 80780, 80784, 80788, 80793, 80798, + 80803, 80808, 80813, 80817, 80822, 80827, 80832, 80837, 80842, 80847, + 80852, 80857, 80862, 80867, 80872, 80877, 80882, 80887, 80892, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80897, 80901, + 80906, 80911, 80916, 80920, 80925, 80930, 80935, 80940, 80944, 80948, + 80953, 80958, 80963, 80968, 80972, 80977, 80982, 80987, 80992, 80997, + 81002, 81006, 81011, 81016, 81021, 81026, 81031, 81036, 81041, 0, 81046, + 81050, 81054, 81059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81064, 81069, + 81074, 81079, 81084, 81089, 81094, 81099, 81104, 81109, 81114, 81119, + 81124, 81129, 81134, 81139, 81144, 81149, 81154, 81159, 81164, 81169, + 81174, 81179, 81184, 81189, 81194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81201, 81206, 81211, + 81216, 81221, 81226, 81231, 81236, 81241, 81246, 81251, 81256, 81261, + 81266, 81271, 81276, 81281, 81286, 81291, 81296, 81301, 81306, 81311, + 81316, 81321, 81326, 81331, 81335, 81339, 81343, 0, 81348, 81354, 81359, + 81364, 81369, 81374, 81380, 81386, 81392, 81398, 81404, 81410, 81416, + 81422, 81428, 81434, 81440, 81446, 81452, 81457, 81463, 81469, 81475, + 81481, 81486, 81492, 81498, 81503, 81509, 81515, 81520, 81526, 81532, + 81538, 81544, 81550, 81556, 0, 0, 0, 0, 81561, 81567, 81573, 81579, + 81585, 81591, 81597, 81603, 81609, 81616, 81621, 81626, 81632, 81638, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81644, 81649, 81654, + 81659, 81665, 81670, 81676, 81682, 81688, 81694, 81701, 81707, 81714, + 81719, 81724, 81729, 81734, 81738, 81743, 81748, 81753, 81758, 81763, + 81768, 81773, 81778, 81783, 81788, 81793, 81798, 81803, 81808, 81813, + 81818, 81823, 81828, 81833, 81838, 81843, 81848, 81853, 81858, 81863, + 81868, 81874, 81879, 81885, 81891, 81897, 81903, 81910, 81916, 81923, + 81928, 81933, 81938, 81943, 81947, 81952, 81957, 81962, 81967, 81972, + 81977, 81982, 81987, 81992, 81997, 82002, 82007, 82012, 82017, 82022, + 82027, 82032, 82037, 82042, 82047, 82052, 82057, 82062, 82067, 82072, + 82077, 82082, 82087, 82092, 82097, 82102, 82107, 82112, 82117, 82122, + 82127, 82132, 82137, 82142, 82147, 82152, 82157, 82162, 82167, 82172, + 82177, 82182, 82187, 82192, 82197, 82202, 82207, 82212, 82217, 82222, + 82227, 82232, 82237, 82242, 82247, 82252, 82257, 82262, 82267, 82272, + 82277, 82282, 82287, 82292, 82297, 82302, 82307, 82312, 82317, 82322, + 82327, 82332, 82337, 82341, 82346, 82351, 82356, 82361, 82366, 82371, + 82376, 82381, 82386, 82391, 82396, 82401, 82405, 82409, 82413, 82417, + 82421, 82425, 82429, 82434, 82439, 0, 0, 82444, 82449, 82453, 82457, + 82461, 82465, 82469, 82473, 82477, 82481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82485, 82488, 82491, 82494, 82497, 82500, 0, 0, 82504, 0, + 82508, 82511, 82515, 82519, 82523, 82527, 82531, 82535, 82539, 82543, + 82547, 82550, 82554, 82558, 82562, 82566, 82570, 82574, 82578, 82582, + 82586, 82589, 82593, 82597, 82601, 82605, 82608, 82612, 82616, 82620, + 82624, 82628, 82632, 82636, 82640, 82644, 82648, 82652, 82656, 82659, + 82663, 82667, 82671, 82675, 0, 82679, 82683, 0, 0, 0, 82687, 0, 0, 82691, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82695, 82700, 82705, + 82710, 82715, 82720, 82725, 82730, 82735, 82740, 82745, 82750, 82755, + 82760, 82765, 82770, 82775, 82780, 82785, 82790, 82795, 82800, 82805, + 82809, 82814, 82819, 0, 0, 0, 0, 0, 82825, 82831, 82835, 82840, 82844, + 82849, 82853, 82857, 82861, 82866, 82871, 82875, 82879, 82883, 82887, + 82891, 82896, 82901, 82905, 82910, 82915, 82919, 82924, 82929, 82934, + 82939, 82944, 0, 0, 0, 0, 0, 82949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82954, 82957, 82961, 82965, 0, 82970, 82974, 0, 0, 0, 0, 0, + 82978, 82983, 82989, 82993, 82997, 83000, 83004, 83008, 0, 83012, 83016, + 83020, 0, 83024, 83028, 83032, 83036, 83040, 83044, 83048, 83052, 83056, + 83060, 83064, 83068, 83071, 83075, 83079, 83083, 83086, 83089, 83092, + 83096, 83100, 83104, 83108, 83112, 83116, 83119, 83123, 0, 0, 0, 0, + 83127, 83132, 83136, 0, 0, 0, 0, 83140, 83143, 83146, 83149, 83152, + 83155, 83159, 83163, 83168, 0, 0, 0, 0, 0, 0, 0, 0, 83173, 83178, 83184, + 83189, 83195, 83200, 83205, 83210, 83216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 83221, 83224, 83229, 83235, 83243, 83248, 83254, 83262, + 83268, 83274, 83278, 83282, 83289, 83298, 83305, 83314, 83320, 83329, + 83336, 83343, 83350, 83360, 83366, 83370, 83377, 83386, 83396, 83403, + 83410, 83414, 83418, 83425, 83435, 83439, 83446, 83453, 83460, 83466, + 83473, 83480, 83487, 83494, 83498, 83502, 83506, 83513, 83517, 83524, + 83531, 83545, 83554, 83558, 83562, 83566, 83573, 83577, 83581, 83585, + 83593, 83601, 83620, 83630, 83650, 83654, 83658, 83662, 83666, 83670, + 83674, 83678, 83685, 83689, 83692, 83696, 83700, 83706, 83713, 83722, + 83726, 83735, 83744, 83752, 83756, 83763, 83767, 83771, 83775, 83779, + 83790, 83799, 83808, 83817, 83826, 83838, 83847, 83856, 83865, 83873, + 83882, 83894, 83903, 83912, 83921, 83933, 83942, 83951, 83963, 83972, + 83981, 83993, 84002, 84006, 84010, 84014, 84018, 84022, 84026, 84030, + 84037, 84041, 84045, 84056, 84060, 84064, 84071, 84077, 84083, 84087, + 84094, 84098, 84102, 84106, 84110, 84114, 84118, 84124, 84132, 84136, + 84140, 84143, 84149, 84159, 84163, 84175, 84182, 84189, 84196, 84203, + 84209, 84213, 84217, 84221, 84225, 84232, 84241, 84248, 84256, 84264, + 84270, 84274, 84278, 84282, 84286, 84292, 84301, 84313, 84320, 84327, + 84336, 84347, 84353, 84362, 84371, 84378, 84387, 84394, 84401, 84411, + 84418, 84425, 84432, 84439, 84443, 84449, 84453, 84464, 84472, 84481, + 84493, 84500, 84507, 84517, 84524, 84533, 84540, 84549, 84556, 84563, + 84573, 84580, 84587, 84597, 84604, 84616, 84625, 84632, 84639, 84646, + 84655, 84665, 84678, 84685, 84695, 84705, 84712, 84721, 84734, 84741, + 84748, 84755, 84765, 84775, 84782, 84792, 84799, 84806, 84816, 84822, + 84829, 84836, 84843, 84853, 84860, 84867, 84874, 84880, 84887, 84897, + 84904, 84908, 84916, 84920, 84932, 84936, 84950, 84954, 84958, 84962, + 84966, 84972, 84979, 84987, 84991, 84995, 84999, 85003, 85010, 85014, + 85020, 85026, 85034, 85038, 85045, 85053, 85057, 85061, 85067, 85071, + 85080, 85089, 85096, 85106, 85112, 85116, 85120, 85128, 85135, 85142, + 85148, 85152, 85160, 85164, 85171, 85183, 85190, 85200, 85206, 85210, + 85219, 85226, 85235, 85239, 85243, 85250, 85254, 85258, 85262, 85266, + 85269, 85275, 85281, 85285, 85289, 85296, 85303, 85310, 85317, 85324, + 85331, 85338, 85345, 85351, 85355, 85359, 85366, 85373, 85380, 85387, + 85394, 85398, 85401, 85406, 85410, 85414, 85423, 85432, 85436, 85440, + 85446, 85452, 85469, 85475, 85479, 85488, 85492, 85496, 85503, 85511, + 85519, 85525, 85529, 85533, 85537, 85541, 85544, 85549, 85555, 85564, + 85570, 85576, 85582, 85587, 85593, 85599, 85605, 85611, 85617, 85625, + 85631, 85642, 85648, 85654, 85663, 85673, 85679, 85685, 85691, 85697, + 85703, 85709, 85715, 85721, 85727, 85733, 85742, 85751, 85760, 85766, + 85775, 85781, 85787, 85793, 85799, 85805, 85811, 85817, 85823, 85829, + 85835, 85841, 85847, 85853, 85858, 85864, 85870, 85878, 85884, 85890, + 85894, 85902, 85906, 85910, 85914, 85918, 85922, 85929, 85933, 85942, + 85946, 85953, 85961, 85965, 85969, 85973, 85984, 85998, 86002, 86006, + 86013, 86019, 86026, 86030, 86034, 86038, 86042, 86046, 86053, 86057, + 86075, 86079, 86083, 86090, 86094, 86098, 86104, 86108, 86112, 86120, + 86124, 86128, 86132, 86136, 86141, 86151, 86159, 86167, 86173, 86179, + 86189, 86195, 86201, 86207, 86213, 86219, 86225, 86231, 86240, 86245, + 86251, 86260, 86268, 86274, 86282, 86291, 86297, 86303, 86309, 86315, + 86326, 86332, 86338, 86344, 86350, 86356, 86365, 86371, 86377, 86386, + 86398, 86409, 86415, 86424, 86430, 86436, 86442, 86456, 86461, 86468, + 86477, 86486, 86492, 86498, 86503, 86507, 86514, 86524, 86530, 86543, + 86547, 86551, 86558, 86562, 86568, 86577, 86581, 86585, 86589, 86593, + 86597, 86604, 86608, 86615, 86622, 86629, 86638, 86647, 86657, 86664, + 86671, 86678, 86688, 86695, 86705, 86712, 86722, 86729, 86736, 86746, + 86756, 86763, 86769, 86777, 86785, 86791, 86797, 86801, 86805, 86812, + 86820, 86826, 86830, 86834, 86838, 86845, 86857, 86860, 86867, 86873, + 86877, 86881, 86885, 86889, 86893, 86897, 86901, 86905, 86909, 86913, + 86920, 86924, 86930, 86934, 86938, 86942, 86948, 86955, 86962, 86969, + 86981, 86989, 86993, 86999, 87008, 87015, 87021, 87025, 87029, 87033, + 87039, 87048, 87056, 87060, 87066, 87070, 87074, 87078, 87084, 87091, + 87097, 87101, 87107, 87111, 87115, 87124, 87136, 87140, 87147, 87154, + 87164, 87171, 87183, 87190, 87197, 87204, 87215, 87225, 87238, 87248, + 87255, 87259, 87263, 87267, 87271, 87280, 87289, 87298, 87315, 87324, + 87330, 87337, 87345, 87358, 87362, 87371, 87380, 87389, 87398, 87409, + 87418, 87427, 87436, 87445, 87454, 87463, 87473, 87476, 87480, 87484, + 87488, 87492, 87496, 87502, 87509, 87516, 87523, 87529, 87535, 87542, + 87548, 87555, 87563, 87567, 87574, 87581, 87588, 87596, 87599, 87603, + 87607, 87611, 87615, 87621, 87625, 87631, 87638, 87645, 87651, 87658, + 87665, 87672, 87679, 87686, 87693, 87700, 87707, 87714, 87721, 87728, + 87735, 87742, 87749, 87755, 87759, 87767, 87771, 87775, 87779, 87783, + 87789, 87796, 87803, 87810, 87817, 87824, 87830, 87838, 87842, 87846, + 87850, 87854, 87860, 87877, 87894, 87898, 87902, 87906, 87910, 87914, + 87918, 87924, 87931, 87935, 87941, 87948, 87955, 87962, 87969, 87976, + 87985, 87992, 87999, 88006, 88013, 88017, 88021, 88027, 88039, 88043, + 88047, 88056, 88060, 88064, 88068, 88074, 88078, 88082, 88091, 88095, + 88099, 88103, 88110, 88114, 88118, 88122, 88126, 88130, 88134, 88138, + 88142, 88148, 88155, 88162, 88168, 88172, 88189, 88195, 88199, 88205, + 88211, 88217, 88223, 88229, 88235, 88239, 88243, 88247, 88253, 88257, + 88263, 88267, 88271, 88278, 88285, 88302, 88306, 88310, 88314, 88318, + 88322, 88334, 88337, 88342, 88347, 88362, 88372, 88383, 88387, 88391, + 88395, 88401, 88408, 88415, 88425, 88437, 88443, 88449, 88458, 88462, + 88466, 88473, 88483, 88490, 88496, 88500, 88504, 88511, 88517, 88521, + 88527, 88531, 88539, 88545, 88549, 88557, 88566, 88573, 88579, 88586, + 88593, 88603, 88613, 88617, 88621, 88625, 88629, 88635, 88642, 88648, + 88655, 88662, 88669, 88678, 88685, 88692, 88698, 88705, 88712, 88719, + 88726, 88733, 88740, 88746, 88753, 88760, 88767, 88776, 88783, 88790, + 88794, 88800, 88804, 88810, 88817, 88824, 88831, 88835, 88839, 88843, + 88847, 88851, 88858, 88862, 88866, 88872, 88881, 88885, 88889, 88893, + 88897, 88904, 88908, 88912, 88920, 88924, 88928, 88932, 88936, 88942, + 88946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88950, 88956, + 88962, 88969, 88976, 88983, 88990, 88997, 89004, 89010, 89017, 89024, + 89031, 89038, 89045, 89052, 89058, 89064, 89070, 89076, 89082, 89088, + 89094, 89100, 89106, 89113, 89120, 89127, 89134, 89141, 89148, 89154, + 89160, 89166, 89173, 89180, 89186, 89192, 89201, 89208, 89215, 89222, + 89229, 89236, 89243, 89249, 89255, 89261, 89270, 89277, 89284, 89295, + 89306, 89312, 89318, 89324, 89333, 89340, 89347, 89356, 89365, 89375, + 89385, 89396, 89408, 89418, 89428, 89439, 89451, 89461, 89471, 89481, + 89491, 89501, 89512, 89520, 89528, 89537, 89546, 89555, 89561, 89567, + 89573, 89580, 89590, 89597, 89607, 89612, 89617, 89623, 89629, 89637, + 89645, 89654, 89664, 89674, 89682, 89690, 89699, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89708, 89719, 89726, 89734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89742, 89747, 89752, 89757, 89764, 89771, 89778, 89785, 89790, + 89795, 89800, 89805, 89812, 89817, 89824, 89831, 89836, 89841, 89846, + 89853, 89858, 89863, 89870, 89877, 89882, 89887, 89892, 89899, 89906, + 89913, 89918, 89923, 89930, 89937, 89944, 89951, 89956, 89961, 89966, + 89973, 89978, 89983, 89988, 89995, 90004, 90011, 90016, 90021, 90026, + 90031, 90036, 90041, 90050, 90057, 90062, 90069, 90076, 90081, 90086, + 90091, 90098, 90103, 90110, 90117, 90122, 90127, 90132, 90139, 90146, + 90151, 90156, 90163, 90170, 90177, 90182, 90187, 90192, 90197, 90204, + 90213, 90222, 90227, 90234, 90243, 90248, 90253, 90258, 90263, 90270, + 90277, 90284, 90291, 90296, 90301, 90306, 90313, 90320, 90327, 90332, + 90337, 90344, 90349, 90356, 90361, 90368, 90373, 90380, 90387, 90392, + 90397, 90402, 90407, 90412, 90417, 90422, 90427, 90432, 90439, 90446, + 90453, 90460, 90467, 90476, 90481, 90486, 90493, 90500, 90505, 90512, + 90519, 90526, 90533, 90540, 90547, 90552, 90557, 90562, 90567, 90572, + 90581, 90590, 90599, 90608, 90617, 90626, 90635, 90644, 90649, 90660, + 90671, 90680, 90685, 90690, 90695, 90700, 90709, 90716, 90723, 90730, + 90737, 90744, 90751, 90760, 90769, 90780, 90789, 90800, 90809, 90816, + 90825, 90836, 90845, 90854, 90863, 90872, 90879, 90886, 90893, 90902, + 90911, 90922, 90931, 90940, 90951, 90956, 90961, 90972, 90980, 90989, + 90998, 91007, 91018, 91027, 91036, 91047, 91058, 91069, 91080, 91091, + 91102, 91109, 91116, 91123, 91130, 91141, 91150, 91157, 91164, 91171, + 91182, 91193, 91204, 91215, 91226, 91237, 91248, 91259, 91266, 91273, + 91282, 91291, 91298, 91305, 91312, 91321, 91330, 91339, 91346, 91355, + 91364, 91373, 91380, 91387, 91392, 91398, 91405, 91412, 91419, 91426, + 91433, 91440, 91449, 91458, 91467, 91476, 91483, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 91492, 91498, 91503, 91508, 91515, 91521, 91527, 91533, 91539, + 91545, 91551, 91557, 91561, 91565, 91571, 91577, 91583, 91587, 91592, + 91597, 91601, 91605, 91608, 91614, 91620, 91626, 91632, 91638, 91644, + 91650, 91656, 91662, 91672, 91682, 91688, 91694, 91704, 91714, 91720, 0, + 0, 91726, 91734, 91739, 91744, 91750, 91756, 91762, 91768, 91774, 91780, + 91787, 91794, 91800, 91806, 91812, 91818, 91824, 91830, 91836, 91842, + 91847, 91853, 91859, 91865, 91871, 91877, 91886, 91892, 91897, 91905, + 91912, 91919, 91928, 91937, 91946, 91955, 91964, 91973, 91982, 91991, + 92001, 92011, 92019, 92027, 92036, 92045, 92051, 92057, 92063, 92069, + 92077, 92085, 92089, 92095, 92100, 92106, 92112, 92118, 92124, 92130, + 92139, 92144, 92151, 92156, 92161, 92166, 92172, 92178, 92184, 92191, + 92196, 92201, 92206, 92211, 92216, 92222, 92228, 92234, 92240, 92246, + 92252, 92258, 92264, 92269, 92274, 92279, 92284, 92289, 92294, 92299, + 92304, 92310, 92316, 92321, 92326, 92331, 92336, 92341, 92347, 92354, + 92358, 92362, 92366, 92370, 92374, 92378, 92382, 92386, 92394, 92404, + 92408, 92412, 92418, 92424, 92430, 92436, 92442, 92448, 92454, 92460, + 92466, 92472, 92478, 92484, 92490, 92496, 92500, 92504, 92511, 92517, + 92523, 92529, 92534, 92541, 92546, 92552, 92558, 92564, 92570, 92575, + 92579, 92585, 92589, 92593, 92597, 92603, 92609, 92613, 92619, 92625, + 92631, 92637, 92643, 92651, 92659, 92665, 92671, 92677, 92683, 92695, + 92707, 92721, 92733, 92745, 92759, 92773, 92787, 92791, 92799, 92807, + 92812, 92816, 92820, 92824, 92828, 92832, 92836, 92840, 92846, 92852, + 92858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92864, 92870, 92876, 92882, 92888, + 92894, 92900, 92906, 92912, 92918, 92924, 92930, 92936, 92942, 92948, + 92954, 92960, 92966, 92972, 92978, 92984, 92990, 92996, 93002, 93008, + 93014, 93020, 93026, 93032, 93038, 93044, 93050, 93056, 93062, 93068, + 93074, 93080, 93086, 93092, 93098, 93104, 93110, 93116, 93122, 93128, + 93134, 93140, 93146, 93152, 93158, 93164, 93170, 93176, 93182, 93188, + 93194, 93200, 93206, 93212, 93218, 93224, 93230, 93236, 93242, 93248, + 93254, 93260, 93265, 93270, 93275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93279, + 93284, 93291, 93298, 93305, 93312, 93317, 93321, 93327, 93331, 93335, + 93341, 93345, 93349, 93353, 93359, 93366, 93370, 93374, 93378, 93382, + 93386, 93390, 93396, 93400, 93404, 93408, 93412, 93416, 93420, 93424, + 93428, 93432, 93436, 93440, 93444, 93449, 93453, 93457, 93461, 93465, + 93469, 93473, 93477, 93481, 93485, 93492, 93496, 93503, 93507, 93511, + 93515, 93519, 93523, 93527, 93531, 93538, 93542, 93546, 93550, 93554, + 93558, 93564, 93568, 93574, 93578, 93582, 93586, 93590, 93594, 93598, + 93602, 93606, 93610, 93614, 93618, 93622, 93626, 93630, 93634, 93638, + 93642, 93646, 93650, 93658, 93662, 93666, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 93670, 93678, 93686, 93694, 93702, 93710, 93718, 93726, 93734, 93742, + 93750, 93758, 93766, 93774, 93782, 93790, 93798, 93806, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93814, 93818, 93823, 93828, 93833, 93837, 93842, + 93846, 93850, 93854, 93859, 93864, 93868, 93872, 93876, 93880, 93885, + 93890, 93894, 93898, 93903, 93907, 93911, 93916, 93921, 93926, 93931, + 93935, 93940, 93945, 93950, 93954, 93959, 93963, 93967, 93971, 93976, + 93981, 93985, 93989, 93993, 93997, 94002, 94007, 94011, 94015, 94020, + 94024, 94028, 94033, 94038, 94043, 94048, 94052, 94057, 94062, 94067, + 94071, 94076, 94080, 94084, 94088, 94093, 94098, 94102, 94106, 94110, + 94114, 94119, 94124, 94128, 94132, 94137, 94141, 94145, 94150, 94155, + 94160, 94165, 94169, 94174, 94179, 94184, 94188, 94193, 0, 94197, 94201, + 94206, 94211, 94215, 94219, 94223, 94227, 94232, 94237, 94241, 94245, + 94250, 94254, 94258, 94263, 94268, 94273, 94278, 94283, 94289, 94295, + 94301, 94306, 94312, 94317, 94322, 94327, 94333, 94339, 94344, 94349, + 94354, 94359, 94365, 94371, 94376, 94381, 94387, 94392, 94397, 94403, + 94409, 94415, 94421, 94426, 94432, 94438, 94444, 94449, 94455, 94460, + 94465, 94470, 94476, 94482, 94487, 94492, 94497, 94502, 94508, 94514, + 94519, 94524, 94530, 94535, 94540, 94546, 94552, 94558, 94564, 0, 94568, + 94573, 0, 0, 94578, 0, 0, 94582, 94587, 0, 0, 94592, 94596, 94600, 94605, + 0, 94610, 94614, 94619, 94623, 94627, 94632, 94637, 94642, 94647, 94651, + 94656, 94661, 0, 94666, 0, 94671, 94675, 94679, 94684, 94689, 94693, + 94697, 0, 94701, 94706, 94711, 94715, 94719, 94724, 94728, 94732, 94737, + 94742, 94747, 94752, 94757, 94763, 94769, 94775, 94780, 94786, 94791, + 94796, 94801, 94807, 94813, 94818, 94823, 94828, 94833, 94839, 94845, + 94850, 94855, 94861, 94866, 94871, 94877, 94883, 94889, 94895, 94900, + 94906, 94912, 94918, 94923, 94929, 94934, 94939, 94944, 94950, 94956, + 94961, 94966, 94971, 94976, 94982, 94988, 94993, 94998, 95004, 95009, + 95014, 95020, 95026, 95032, 95038, 95042, 0, 95047, 95052, 95056, 95061, + 0, 0, 95065, 95070, 95075, 95079, 95083, 95087, 95091, 95096, 0, 95101, + 95105, 95110, 95114, 95118, 95123, 95128, 0, 95133, 95137, 95142, 95147, + 95152, 95156, 95161, 95165, 95169, 95173, 95178, 95183, 95187, 95191, + 95195, 95199, 95204, 95209, 95213, 95217, 95222, 95226, 95230, 95235, + 95240, 95245, 95250, 95254, 0, 95259, 95264, 95268, 95273, 0, 95277, + 95281, 95286, 95291, 95295, 0, 95299, 0, 0, 0, 95303, 95307, 95312, + 95316, 95320, 95325, 95330, 0, 95335, 95339, 95344, 95349, 95354, 95358, + 95363, 95367, 95371, 95375, 95380, 95385, 95389, 95393, 95397, 95401, + 95406, 95411, 95415, 95419, 95424, 95428, 95432, 95437, 95442, 95447, + 95452, 95457, 95463, 95469, 95475, 95480, 95486, 95491, 95496, 95501, + 95507, 95513, 95518, 95523, 95528, 95533, 95539, 95545, 95550, 95555, + 95561, 95566, 95571, 95577, 95583, 95589, 95595, 95600, 95606, 95612, + 95618, 95623, 95629, 95634, 95639, 95644, 95650, 95656, 95661, 95666, + 95671, 95676, 95682, 95688, 95693, 95698, 95704, 95709, 95714, 95720, + 95726, 95732, 95738, 95742, 95747, 95752, 95757, 95761, 95766, 95770, + 95774, 95778, 95783, 95788, 95792, 95796, 95800, 95804, 95809, 95814, + 95818, 95822, 95827, 95831, 95835, 95840, 95845, 95850, 95855, 95859, + 95864, 95869, 95874, 95878, 95883, 95887, 95891, 95895, 95900, 95905, + 95909, 95913, 95917, 95921, 95926, 95931, 95935, 95939, 95944, 95948, + 95952, 95957, 95962, 95967, 95972, 95977, 95983, 95989, 95995, 96000, + 96006, 96011, 96016, 96021, 96027, 96033, 96038, 96043, 96048, 96053, + 96059, 96065, 96070, 96075, 96081, 96086, 96091, 96097, 96103, 96109, + 96115, 96120, 96126, 96132, 96138, 96143, 96149, 96154, 96159, 96164, + 96170, 96176, 96181, 96186, 96191, 96196, 96202, 96208, 96213, 96218, + 96224, 96229, 96234, 96240, 96246, 96252, 96258, 96263, 96269, 96275, + 96281, 96286, 96292, 96297, 96302, 96307, 96313, 96319, 96324, 96329, + 96334, 96339, 96345, 96351, 96356, 96361, 96367, 96372, 96377, 96383, + 96389, 96395, 96401, 96406, 96412, 96418, 96424, 96429, 96435, 96440, + 96445, 96450, 96456, 96462, 96467, 96472, 96477, 96482, 96488, 96494, + 96499, 96504, 96510, 96515, 96520, 96526, 96532, 96538, 96544, 96550, + 96557, 96564, 96571, 96577, 96584, 96590, 96596, 96602, 96609, 96616, + 96622, 96628, 96634, 96640, 96647, 96654, 96660, 96666, 96673, 96679, + 96685, 96692, 96699, 96706, 96713, 96719, 96726, 96733, 96740, 96746, + 96753, 96759, 96765, 96771, 96778, 96785, 96791, 96797, 96803, 96809, + 96816, 96823, 96829, 96835, 96842, 96848, 96854, 96861, 96868, 96875, + 96882, 96886, 96891, 96896, 96901, 96905, 96910, 96914, 96918, 96922, + 96927, 96932, 96936, 96940, 96944, 96948, 96953, 96958, 96962, 96966, + 96971, 96975, 96979, 96984, 96989, 96994, 96999, 97003, 97008, 97013, + 97018, 97022, 97027, 97031, 97035, 97039, 97044, 97049, 97053, 97057, + 97061, 97065, 97070, 97075, 97079, 97083, 97088, 97092, 97096, 97101, + 97106, 97111, 97116, 97122, 0, 0, 97129, 97134, 97139, 97144, 97149, + 97154, 97159, 97164, 97169, 97174, 97179, 97184, 97189, 97194, 97199, + 97204, 97209, 97214, 97220, 97225, 97230, 97235, 97240, 97245, 97250, + 97255, 97259, 97264, 97269, 97274, 97279, 97284, 97289, 97294, 97299, + 97304, 97309, 97314, 97319, 97324, 97329, 97334, 97339, 97344, 97350, + 97355, 97360, 97365, 97370, 97375, 97380, 97385, 97391, 97396, 97401, + 97406, 97411, 97416, 97421, 97426, 97431, 97436, 97441, 97446, 97451, + 97456, 97461, 97466, 97471, 97476, 97481, 97486, 97491, 97496, 97501, + 97506, 97512, 97517, 97522, 97527, 97532, 97537, 97542, 97547, 97551, + 97556, 97561, 97566, 97571, 97576, 97581, 97586, 97591, 97596, 97601, + 97606, 97611, 97616, 97621, 97626, 97631, 97636, 97642, 97647, 97652, + 97657, 97662, 97667, 97672, 97677, 97683, 97688, 97693, 97698, 97703, + 97708, 97713, 97719, 97725, 97731, 97737, 97743, 97749, 97755, 97761, + 97767, 97773, 97779, 97785, 97791, 97797, 97803, 97809, 97815, 97822, + 97828, 97834, 97840, 97846, 97852, 97858, 97864, 97869, 97875, 97881, + 97887, 97893, 97899, 97905, 97911, 97917, 97923, 97929, 97935, 97941, + 97947, 97953, 97959, 97965, 97971, 97978, 97984, 97990, 97996, 98002, + 98008, 98014, 98020, 98027, 98033, 98039, 98045, 98051, 98057, 98063, + 98069, 98075, 98081, 98087, 98093, 98099, 98105, 98111, 98117, 98123, + 98129, 98135, 98141, 98147, 98153, 98159, 98165, 98172, 98178, 98184, + 98190, 98196, 98202, 98208, 98214, 98219, 98225, 98231, 98237, 98243, + 98249, 98255, 98261, 98267, 98273, 98279, 98285, 98291, 98297, 98303, + 98309, 98315, 98321, 98328, 98334, 98340, 98346, 98352, 98358, 98364, + 98370, 98377, 98383, 98389, 98395, 98401, 98407, 98413, 98420, 98427, + 98434, 98441, 98448, 98455, 98462, 98469, 98476, 98483, 98490, 98497, + 98504, 98511, 98518, 98525, 98532, 98540, 98547, 98554, 98561, 98568, + 98575, 98582, 98589, 98595, 98602, 98609, 98616, 98623, 98630, 98637, + 98644, 98651, 98658, 98665, 98672, 98679, 98686, 98693, 98700, 98707, + 98714, 98722, 98729, 98736, 98743, 98750, 98757, 98764, 98771, 98779, + 98786, 98793, 98800, 98807, 98814, 98821, 98826, 0, 0, 98831, 98836, + 98840, 98844, 98848, 98852, 98856, 98860, 98864, 98868, 98872, 98877, + 98881, 98885, 98889, 98893, 98897, 98901, 98905, 98909, 98913, 98918, + 98922, 98926, 98930, 98934, 98938, 98942, 98946, 98950, 98954, 98960, + 98965, 98970, 98975, 98980, 98985, 98990, 98995, 99000, 99005, 99010, + 99014, 99018, 99022, 99026, 99030, 99034, 99038, 99042, 99046, 99053, + 99060, 99067, 99074, 99081, 99088, 99094, 99101, 99108, 99115, 99123, + 99131, 99139, 99147, 99155, 99163, 99170, 99177, 99184, 99192, 99200, + 99208, 99216, 99224, 99232, 99239, 99246, 99253, 99261, 99269, 99277, + 99285, 99293, 99301, 99306, 99311, 99316, 99321, 99326, 99331, 99336, + 99341, 99346, 0, 0, 0, 0, 99351, 99356, 99360, 99364, 99368, 99372, + 99376, 99380, 99384, 99388, 99392, 99396, 99400, 99404, 99408, 99412, + 99416, 99420, 99424, 99428, 99432, 99436, 99440, 99444, 99448, 99452, + 99456, 99460, 99464, 99468, 99472, 99476, 99480, 99484, 99488, 99492, + 99496, 99500, 99504, 99508, 99512, 99516, 99520, 99524, 99528, 99532, + 99536, 99540, 99544, 99548, 99552, 99557, 99561, 99565, 99569, 99573, + 99577, 99581, 99585, 99589, 99593, 99597, 99601, 99605, 99609, 99613, + 99617, 99621, 99625, 99629, 99633, 99637, 99641, 99645, 99649, 99653, + 99657, 99661, 99665, 99669, 99673, 99677, 99681, 99685, 99689, 99693, + 99697, 99701, 99705, 99709, 99713, 99717, 99721, 99725, 99729, 99733, + 99737, 99741, 99745, 99749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99753, + 99757, 99761, 99765, 99769, 99773, 99777, 99781, 99785, 99789, 99793, + 99797, 99801, 99805, 99809, 99813, 99817, 99821, 99825, 99829, 99833, + 99837, 99841, 99845, 99849, 99853, 99857, 99861, 99865, 99869, 99873, + 99877, 99881, 99885, 99889, 99893, 99897, 99901, 99905, 99909, 99913, + 99917, 99921, 99925, 99929, 99933, 99937, 99941, 99945, 99949, 99953, + 99957, 99961, 99965, 99969, 99973, 99977, 99981, 99985, 99989, 99993, + 99997, 100001, 100005, 100009, 100013, 100017, 100021, 100025, 100029, + 100033, 100037, 100041, 100045, 100049, 100053, 100057, 100061, 100065, + 100069, 100073, 100077, 100081, 100085, 100089, 100093, 100097, 100101, + 100105, 100109, 100113, 100117, 100121, 100125, 100129, 100133, 100137, + 100141, 100145, 100149, 100153, 100157, 100161, 100165, 100169, 100173, + 100177, 100181, 100185, 100189, 100193, 100197, 100201, 100205, 100209, + 100213, 100217, 100221, 100225, 100229, 100233, 100237, 100241, 100245, + 100249, 100253, 100257, 100261, 100265, 100269, 100273, 100277, 100281, + 100285, 100289, 100293, 100297, 100301, 100305, 100309, 100313, 100317, + 100321, 100325, 100329, 100333, 100337, 100341, 100345, 100349, 100353, + 100357, 100361, 100365, 100369, 100373, 100377, 100381, 100385, 100389, + 100393, 100397, 100401, 100405, 100409, 100413, 100417, 100421, 100425, + 100429, 100433, 100437, 100441, 100445, 100449, 100453, 100457, 100461, + 100465, 100469, 100473, 100477, 100481, 100485, 100489, 100493, 100497, + 100501, 100505, 100509, 100513, 100517, 100521, 100525, 100529, 100533, + 100537, 100541, 100545, 100549, 100553, 100557, 100561, 100565, 100569, + 100573, 100577, 100581, 100585, 100589, 100593, 100597, 100601, 100605, + 100609, 100613, 100617, 100621, 100625, 100629, 100633, 100637, 100641, + 100645, 100649, 100653, 100657, 100661, 100665, 100669, 100673, 100677, + 100681, 100685, 100689, 100693, 100697, 100701, 100705, 100709, 100713, + 100717, 100721, 100725, 100729, 100733, 100737, 100741, 100745, 100749, + 100753, 100757, 100761, 100765, 100769, 100773, 100777, 100781, 100785, + 100789, 100793, 100797, 100801, 100805, 100809, 100813, 100817, 100821, + 100825, 100829, 100833, 100837, 100841, 100845, 100849, 100853, 100857, + 100861, 100865, 100869, 100873, 100877, 100881, 100885, 100889, 100893, + 100897, 100901, 100905, 100909, 100913, 100917, 100921, 100925, 100929, + 100933, 100937, 100941, 100945, 100949, 100953, 100957, 100961, 100965, + 100969, 100973, 100977, 100981, 100985, 100989, 100993, 100997, 101001, + 101005, 101009, 101013, 101017, 101021, 101025, 101029, 101033, 101037, + 101041, 101045, 101049, 101053, 101057, 101061, 101065, 101069, 101073, + 101077, 101081, 101085, 101089, 101093, 101097, 101101, 101105, 101109, + 101113, 101117, 101121, 101125, 101129, 101133, 101137, 101141, 101145, + 101149, 101153, 101157, 101161, 101165, 101169, 101173, 101177, 101181, + 101185, 101189, 101193, 101197, 101201, 101205, 101209, 101213, 101217, + 101221, 101225, 101229, 101233, 101237, 101241, 101245, 101249, 101253, + 101257, 101261, 101265, 101269, 101273, 101277, 101281, 101285, 101289, + 101293, 101297, 101301, 101305, 101309, 101313, 101317, 101321, 101325, + 101329, 101333, 101337, 101341, 101345, 101349, 101353, 101357, 101361, + 101365, 101369, 101373, 101377, 101381, 101385, 101389, 101393, 101397, + 101401, 101405, 101409, 101413, 101417, 101421, 101425, 101429, 101433, + 101437, 101441, 101445, 101449, 101453, 101457, 101461, 101465, 101469, + 101473, 101477, 101481, 101485, 101489, 101493, 101497, 101501, 101505, + 101509, 101513, 101517, 101521, 101525, 101529, 101533, 101537, 101541, + 101545, 101549, 101553, 101557, 101561, 101565, 101569, 101573, 101577, + 101581, 101585, 101589, 101593, 101597, 101601, 101605, 101609, 101613, + 101617, 101621, 101625, 101629, 101633, 101637, 101641, 101645, 101649, + 101653, 101657, 101661, 101665, 101669, 101673, 101677, 101681, 101685, + 101689, 101693, 101697, 101701, 101705, 101709, 101713, 101717, 101721, + 101725, 101729, 101733, 101737, 101741, 101745, 101749, 101753, 101757, + 101761, 101765, 101769, 101773, 101777, 101781, 101785, 101789, 101793, + 101797, 101801, 101805, 101809, 101813, 101817, 101821, 101825, 101829, + 101833, 101837, 101841, 101845, 101849, 101853, 101857, 101861, 101865, + 101869, 101873, 101877, 101881, 101885, 101889, 101893, 101897, 101901, + 101905, 101909, 101913, 101917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101921, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101925, + 101928, 101932, 101936, 101939, 101943, 101947, 101950, 101953, 101957, + 101961, 101964, 101967, 101970, 101973, 101978, 101981, 101985, 101988, + 101991, 101994, 101997, 102000, 102003, 102006, 102009, 102012, 102015, + 102018, 102022, 102026, 102030, 102034, 102039, 102044, 102050, 102056, + 102062, 102067, 102073, 102078, 102083, 102088, 102094, 102100, 102105, + 102110, 102115, 102120, 102126, 102132, 102137, 102142, 102148, 102153, + 102158, 102164, 102170, 102176, 102182, 102186, 102191, 102195, 102200, + 102204, 102209, 102214, 102220, 102226, 102232, 102237, 102243, 102248, + 102253, 102258, 102264, 102270, 102275, 102280, 102285, 102290, 102296, + 102302, 102307, 102312, 102318, 102323, 102328, 102334, 102340, 102346, + 102352, 102357, 102361, 102366, 102368, 102372, 102375, 102378, 102381, + 102384, 102387, 102390, 102393, 102396, 102399, 102402, 102405, 102408, + 102411, 102414, 102417, 102420, 102423, 102426, 102429, 102432, 102435, + 102438, 102441, 102444, 102447, 102450, 102453, 102456, 102459, 102462, + 102465, 102468, 102471, 102474, 102477, 102480, 102483, 102486, 102489, + 102492, 102495, 102498, 102501, 102504, 102507, 102510, 102513, 102516, + 102519, 102522, 102525, 102528, 102531, 102534, 102537, 102540, 102543, + 102546, 102549, 102552, 102555, 102558, 102561, 102564, 102567, 102570, + 102573, 102576, 102579, 102582, 102585, 102588, 102591, 102594, 102597, + 102600, 102603, 102606, 102609, 102612, 102615, 102618, 102621, 102624, + 102627, 102630, 102633, 102636, 102639, 102642, 102645, 102648, 102651, + 102654, 102657, 102660, 102663, 102666, 102669, 102672, 102675, 102678, + 102681, 102684, 102687, 102690, 102693, 102696, 102699, 102702, 102705, + 102708, 102711, 102714, 102717, 102720, 102723, 102726, 102729, 102732, + 102735, 102738, 102741, 102744, 102747, 102750, 102753, 102756, 102759, + 102762, 102765, 102768, 102771, 102774, 102777, 102780, 102783, 102786, + 102789, 102792, 102795, 102798, 102801, 102804, 102807, 102810, 102813, + 102816, 102819, 102822, 102825, 102828, 102831, 102834, 102837, 102840, + 102843, 102846, 102849, 102852, 102855, 102858, 102861, 102864, 102867, + 102870, 102873, 102876, 102879, 102882, 102885, 102888, 102891, 102894, + 102897, 102900, 102903, 102906, 102909, 102912, 102915, 102918, 102921, + 102924, 102927, 102930, 102933, 102936, 102939, 102942, 102945, 102948, + 102951, 102954, 102957, 102960, 102963, 102966, 102969, 102972, 102975, + 102978, 102981, 102984, 102987, 102990, 102993, 102996, 102999, 103002, + 103005, 103008, 103011, 103014, 103017, 103020, 103023, 103026, 103029, + 103032, 103035, 103038, 103041, 103044, 103047, 103050, 103053, 103056, + 103059, 103062, 103065, 103068, 103071, 103074, 103077, 103080, 103083, + 103086, 103089, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; /* name->code dictionary */ static unsigned int code_hash[] = { - 120470, 4851, 118860, 43024, 0, 66306, 7929, 64584, 9518, 6609, 120203, - 42166, 11319, 1097, 917856, 12064, 41730, 596, 8570, 66517, 12650, 8651, - 41728, 12738, 41835, 12995, 41202, 1373, 0, 11403, 5816, 119067, 64810, - 1000, 120676, 11951, 41140, 1209, 9717, 195073, 118972, 1073, 194579, - 65470, 41138, 8851, 917962, 64500, 12167, 1115, 8874, 9794, 194660, - 917846, 120753, 12237, 3966, 41603, 6587, 9290, 65222, 41600, 9231, - 120183, 2959, 1457, 3535, 195021, 42179, 63860, 41538, 6671, 8618, 42175, - 3404, 64661, 5148, 41737, 1759, 917565, 119974, 65257, 118949, 12290, - 66577, 120019, 9386, 12312, 10151, 8205, 118818, 5131, 917899, 9627, - 65930, 9834, 3055, 9852, 1944, 1248, 10148, 11398, 119990, 64543, 12701, - 119204, 9348, 603, 917851, 65327, 119998, 63781, 65111, 3350, 66576, - 64318, 917828, 8154, 3390, 119985, 41817, 119956, 64603, 66328, 65668, - 120013, 3400, 120015, 6041, 65020, 41899, 66446, 8002, 8562, 4364, 63991, - 4043, 8712, 64134, 7813, 11297, 120759, 10124, 7526, 8601, 6069, 10143, - 4814, 12041, 1418, 10885, 12673, 118961, 65307, 9660, 2764, 13012, 4571, - 5704, 120483, 119946, 12078, 2970, 5457, 5440, 8857, 917898, 118803, - 2843, 5355, 41599, 118883, 119004, 5194, 11657, 119362, 3486, 65324, - 12472, 10123, 65167, 194738, 10717, 8714, 2637, 64629, 8460, 10682, 8476, - 10602, 800, 917613, 66506, 65673, 1019, 64335, 11631, 8465, 12289, 64144, - 762, 13172, 10681, 8488, 5412, 10906, 1353, 194636, 41351, 41823, 5828, - 8206, 120166, 8933, 1601, 9072, 858, 13302, 12458, 120774, 8090, 5418, - 12452, 120081, 9483, 3351, 120602, 64510, 10817, 917939, 41539, 2750, - 11570, 556, 41855, 41246, 65564, 11277, 65892, 2760, 10620, 12195, 7608, - 65809, 64156, 5498, 9998, 41536, 64151, 63876, 9242, 3459, 8997, 11787, - 64153, 64152, 65734, 120184, 4839, 6615, 68115, 1874, 119016, 4975, 4635, - 295, 64124, 64123, 6050, 64898, 917804, 7600, 7590, 63903, 9036, 63901, - 19941, 3971, 66609, 119195, 2952, 64116, 6287, 8031, 2725, 63899, 63898, - 5482, 667, 12332, 1177, 6086, 12322, 11027, 5172, 41617, 64102, 7859, - 1945, 64099, 9815, 10453, 19934, 63882, 7997, 8555, 63878, 63877, 8705, - 64097, 64096, 9571, 528, 9172, 120170, 9828, 41723, 63875, 41578, 11460, - 7432, 63854, 41913, 9056, 195005, 6188, 64593, 6155, 10806, 446, 6494, - 64065, 41318, 63850, 63, 41878, 63846, 2972, 9455, 6639, 64064, 63849, - 63848, 63847, 1176, 120649, 8302, 8276, 63842, 4178, 13208, 13188, 10948, - 10041, 8105, 4333, 9855, 64112, 1105, 4180, 5388, 12094, 65879, 65197, - 7714, 63890, 5443, 7768, 5538, 9987, 194803, 118932, 1678, 917611, 552, - 9560, 64077, 10785, 8996, 4992, 4471, 12080, 9159, 10171, 63861, 10486, - 5540, 63858, 41781, 281, 63863, 12075, 42041, 64646, 5174, 120337, 3589, - 1388, 3123, 43018, 1077, 13272, 8408, 11531, 120387, 43042, 9223, 195029, - 65318, 42773, 119117, 42105, 1116, 13274, 43049, 3663, 43050, 1112, - 119122, 8686, 8881, 5334, 42108, 119937, 13087, 64091, 9322, 194701, - 6509, 64095, 5327, 8111, 19907, 41877, 3478, 7583, 6199, 2903, 195093, - 3001, 1158, 8745, 11329, 4741, 63866, 4737, 4370, 4846, 41616, 4742, - 41335, 4118, 1797, 64600, 805, 65691, 46, 12070, 8760, 298, 65452, 12212, - 120123, 65174, 63836, 32, 5965, 65469, 11495, 12225, 3665, 63837, 64793, - 65330, 41336, 4305, 66360, 8083, 917590, 119333, 63821, 4412, 63819, - 63818, 12244, 5227, 9047, 12283, 4181, 4752, 9029, 4634, 560, 5643, 8226, - 6181, 63812, 13247, 63810, 63790, 3639, 63815, 10122, 63813, 6047, 7937, - 63961, 780, 206, 42008, 4936, 7498, 1098, 19923, 120205, 1093, 9882, - 3016, 4869, 63932, 917554, 63929, 3546, 1605, 65058, 6182, 65566, 13176, - 8400, 11343, 63920, 917550, 5471, 2984, 5314, 9287, 5473, 44, 194667, - 194682, 13169, 5290, 5283, 1695, 63827, 1088, 5961, 1900, 1084, 1085, - 63829, 1083, 6581, 5576, 917793, 64184, 4263, 1092, 4754, 8947, 5252, - 120431, 65253, 64183, 917819, 7908, 11011, 120390, 6579, 194878, 2965, - 119177, 8808, 64710, 1089, 7761, 41641, 42119, 12355, 63889, 940, 5787, - 9992, 63938, 5057, 64679, 12463, 2994, 5054, 41694, 65794, 9664, 41026, - 1437, 9399, 658, 3497, 12920, 7486, 660, 5060, 666, 9022, 5532, 118941, - 5533, 5059, 4727, 6118, 222, 979, 3884, 12459, 7488, 5773, 978, 120163, - 7489, 41619, 10239, 12465, 917761, 118902, 64411, 13271, 1707, 120319, - 12461, 63895, 63949, 63948, 63947, 3376, 6038, 63943, 63942, 63894, - 65323, 194944, 65508, 7776, 64278, 2379, 8703, 63893, 64668, 801, 8125, - 1690, 63919, 63918, 63917, 2369, 65042, 12844, 65800, 119235, 5486, 2334, - 64893, 4463, 5483, 10207, 917608, 2367, 5484, 63909, 264, 2375, 8060, - 6194, 5485, 1844, 64035, 9061, 5534, 10672, 4502, 13178, 253, 118819, - 1823, 8800, 10746, 7912, 0, 10256, 6192, 194946, 42771, 11576, 119616, - 725, 4550, 13257, 120800, 118944, 12892, 917868, 64087, 41775, 8413, - 194805, 120146, 5693, 10397, 120440, 13209, 5074, 5073, 120438, 8983, - 120525, 41132, 66586, 5072, 19964, 6198, 11614, 65731, 196, 13206, 3111, - 64725, 4929, 12445, 0, 119074, 194646, 66606, 6628, 1076, 11294, 1436, - 4934, 64415, 41323, 7543, 195098, 12807, 63907, 63906, 4548, 4329, 6113, - 4979, 3048, 4423, 41320, 194963, 10515, 6218, 8971, 5071, 65583, 3642, - 1430, 5070, 10042, 118835, 3987, 5068, 7619, 3255, 3493, 917952, 8905, - 10735, 120134, 41635, 3378, 4531, 1245, 9105, 66311, 4921, 4481, 3771, - 65544, 2710, 41693, 64084, 41724, 64709, 41682, 41690, 120120, 4922, 325, - 992, 120305, 4925, 1628, 0, 9526, 4920, 65262, 948, 10783, 120208, 4930, - 917570, 4462, 194855, 4933, 5339, 6115, 65359, 4928, 917603, 4457, - 120506, 65290, 42163, 722, 5684, 8678, 12637, 65624, 5689, 8753, 1509, - 120180, 5468, 9511, 194968, 65183, 1672, 6205, 5832, 6310, 5686, 194931, - 64800, 64536, 120713, 41475, 50, 917926, 9871, 120115, 1679, 11982, - 10759, 41883, 66468, 3183, 13259, 4448, 119225, 401, 6427, 64930, 64763, - 5761, 342, 8553, 1151, 8143, 67589, 11983, 64384, 624, 65443, 42014, - 119630, 5078, 12501, 5656, 120168, 5076, 118870, 8812, 119170, 11538, - 685, 9025, 1524, 8003, 66467, 5539, 8087, 12971, 120101, 9894, 1252, - 12925, 194611, 4636, 194615, 118985, 8053, 9732, 917983, 5080, 13121, - 5036, 5035, 118968, 12277, 65904, 194780, 8074, 275, 12158, 194594, 8741, - 4432, 120610, 5033, 120668, 64605, 4836, 3888, 473, 65584, 8502, 120250, - 1873, 1087, 12499, 917808, 63844, 12345, 3601, 1922, 6409, 64965, 65422, - 12502, 120683, 12505, 66321, 66477, 9489, 119140, 3432, 4384, 63964, - 6094, 41530, 8815, 12851, 64753, 119950, 1676, 1154, 3857, 1205, 5030, - 917917, 13100, 12958, 10519, 9622, 194674, 64723, 4421, 10592, 0, 495, - 119007, 10544, 7983, 118882, 10749, 64186, 8494, 11980, 10979, 41710, - 947, 64187, 437, 41709, 10969, 65894, 7613, 9465, 13290, 4795, 4997, - 64306, 8826, 11486, 4999, 120611, 8626, 4590, 4711, 120255, 65037, 2739, - 19942, 8044, 40964, 251, 12686, 7895, 4395, 119927, 119926, 119929, 1779, - 6600, 6601, 41543, 5325, 642, 65830, 8880, 7685, 120071, 66729, 6234, - 13229, 625, 8187, 9990, 1113, 194643, 7915, 1104, 120176, 8179, 10655, - 195043, 9316, 10980, 2489, 1082, 8150, 1359, 194645, 194726, 119304, - 119555, 5042, 5041, 42769, 12084, 8049, 7509, 194806, 6458, 120182, - 119575, 4761, 10506, 4766, 1616, 1273, 120187, 8795, 118876, 194835, - 63957, 9232, 1138, 10483, 12677, 41545, 12881, 3239, 65517, 119558, - 66614, 119111, 42128, 3484, 64545, 11778, 11572, 8503, 5122, 41527, 5040, - 4924, 119014, 119085, 120201, 120748, 5039, 41926, 8303, 8282, 5038, - 65736, 10003, 7427, 65611, 120586, 1686, 120190, 9359, 11467, 3664, - 65921, 8238, 6662, 66472, 119329, 3863, 126, 4835, 68119, 120605, 13245, - 4309, 7744, 63867, 119846, 119023, 13184, 63870, 65431, 569, 8136, - 119010, 711, 1633, 120583, 63869, 4762, 1103, 194560, 12281, 4765, 41331, - 1006, 13040, 4760, 1550, 8201, 10871, 917990, 1102, 5031, 118904, 66671, - 64499, 11546, 13042, 337, 194781, 65781, 65678, 12279, 1111, 65780, - 119900, 4707, 194635, 5008, 7883, 8822, 7880, 4522, 8255, 5512, 13010, - 119232, 8304, 64313, 11611, 5906, 1119, 13039, 13038, 64910, 2455, 64734, - 13008, 41652, 4385, 12492, 11020, 6499, 64775, 119161, 13009, 160, 68110, - 120679, 64262, 5052, 64031, 5821, 6186, 41792, 42770, 5051, 65773, 1429, - 64573, 5050, 302, 388, 12058, 735, 6637, 1079, 3867, 5708, 12726, 119879, - 9117, 5706, 10679, 5513, 6666, 4005, 0, 5510, 10991, 120454, 65458, 2470, - 917581, 13305, 1925, 65760, 194914, 41924, 10092, 5048, 5047, 41532, - 10058, 917559, 119999, 9070, 12049, 3339, 8089, 1106, 639, 65764, 63967, - 3340, 3109, 3653, 4599, 10799, 6674, 10605, 917585, 1476, 648, 1754, - 11001, 3233, 864, 41782, 10164, 8972, 41865, 3530, 9750, 120690, 11024, - 6656, 5192, 4338, 5046, 8512, 63770, 13199, 8967, 1236, 5045, 12012, - 13189, 7986, 5044, 120102, 7440, 13128, 5043, 9553, 1590, 63777, 63776, - 9669, 12341, 8654, 8402, 63779, 1583, 4740, 13260, 3586, 13276, 11444, - 120306, 67634, 119606, 41523, 13296, 517, 12922, 11354, 11700, 41528, - 123, 65454, 12393, 11394, 41997, 10531, 7784, 13194, 1334, 11978, 4479, - 1126, 65586, 120663, 195061, 8520, 3925, 917621, 8069, 4357, 42154, 489, - 120450, 119836, 8848, 6476, 8450, 43044, 11926, 41557, 1145, 63788, 7910, - 63785, 63784, 754, 8711, 6183, 8183, 120741, 8928, 65166, 7952, 10747, - 125, 9235, 64861, 64207, 12689, 66445, 10779, 10990, 3523, 1074, 13258, - 9536, 8477, 11014, 4427, 10517, 63757, 7726, 11325, 19922, 267, 1349, - 10713, 1371, 12149, 195003, 2458, 63753, 6201, 41084, 41074, 4266, 10652, - 6483, 41077, 3402, 9050, 3398, 8140, 42084, 6260, 3391, 41075, 2476, - 41956, 11988, 3898, 10625, 10201, 10988, 11524, 63794, 10367, 12521, - 10431, 13014, 6289, 1068, 6673, 12523, 12945, 12524, 12438, 7950, 10804, - 13233, 12082, 4386, 9053, 12473, 2793, 12475, 704, 195020, 6195, 9530, - 6660, 12232, 194892, 64159, 5681, 12629, 4595, 63760, 792, 65538, 13004, - 9897, 8742, 195013, 64947, 65448, 63744, 12948, 64787, 7588, 63748, 1693, - 63746, 63745, 5055, 9883, 4287, 1090, 4902, 1131, 11665, 194602, 4558, - 1816, 9523, 41712, 168, 194897, 4898, 63857, 6157, 12960, 4901, 1821, - 13191, 12170, 3500, 3139, 791, 9162, 12485, 10306, 119001, 64200, 13006, - 64433, 8354, 10033, 941, 12037, 7557, 65570, 10565, 8234, 64559, 8228, - 8424, 10246, 64193, 12811, 65925, 3946, 42764, 8057, 41990, 673, 194853, - 64357, 917971, 194799, 9547, 288, 8752, 120820, 2448, 10025, 10267, 2918, - 2452, 65300, 41529, 8729, 64726, 2790, 7845, 3793, 194715, 4408, 4122, - 11568, 41535, 8723, 10709, 10087, 119302, 731, 42109, 11548, 2438, 64587, - 65396, 119169, 1175, 13256, 1282, 373, 119172, 5396, 8653, 8557, 7723, 0, - 3330, 120278, 41952, 917566, 5273, 8248, 5269, 3304, 5202, 2404, 5267, - 119357, 1627, 65549, 5277, 12963, 5371, 6189, 4125, 1826, 12133, 65241, - 8260, 1271, 917589, 195006, 64643, 9035, 3864, 12707, 4631, 3879, 118785, - 68125, 4166, 164, 9331, 7567, 7459, 119568, 10212, 5384, 41882, 67647, - 64346, 0, 68159, 917822, 41388, 120518, 12005, 12666, 13175, 13207, 8706, - 5552, 10172, 700, 5929, 5553, 12978, 120384, 5356, 7499, 8563, 41888, - 3180, 917818, 917960, 5554, 971, 12344, 8724, 194608, 6665, 63874, - 120275, 2866, 8517, 11455, 13190, 64632, 120227, 5555, 10045, 12882, - 13275, 120672, 41522, 11480, 9143, 6668, 41525, 120539, 195035, 656, - 118808, 43034, 4577, 12229, 8715, 68133, 194613, 120261, 4269, 64813, - 119163, 41609, 10476, 950, 118980, 3932, 41450, 68140, 66683, 68130, - 120014, 11974, 118884, 369, 119096, 41784, 66459, 5097, 4935, 9848, - 64216, 10293, 4796, 10317, 3651, 10127, 120603, 10269, 5102, 5101, 66628, - 9064, 8138, 120455, 404, 5100, 1439, 12093, 1247, 8092, 119330, 5099, - 1831, 1441, 4793, 3063, 650, 12292, 746, 120165, 120769, 7461, 12018, - 9031, 12182, 10115, 9078, 8545, 4422, 4708, 3799, 3268, 64556, 9118, - 119127, 2676, 7750, 4374, 64398, 6190, 1364, 64589, 8038, 68121, 9857, - 120638, 9858, 195033, 64170, 12129, 13174, 8481, 12412, 6202, 64380, - 10920, 10872, 2365, 7841, 120059, 5108, 5107, 11010, 13210, 6176, 65561, - 5541, 41785, 41171, 11291, 5284, 4372, 207, 194904, 4275, 119930, 854, - 68147, 120189, 12965, 384, 5103, 10404, 10340, 10702, 1556, 488, 13236, - 12937, 10017, 9733, 13187, 10014, 7844, 41373, 13198, 5203, 120517, - 13232, 5106, 349, 4863, 41371, 10965, 41367, 5105, 11721, 12861, 4398, - 5104, 5672, 304, 1096, 120557, 0, 932, 12441, 6567, 238, 65681, 4318, - 10452, 19905, 8032, 13243, 13237, 12719, 67640, 66570, 64814, 64884, - 119872, 10670, 8597, 1178, 64017, 9864, 13195, 8803, 309, 6622, 8151, - 10858, 64961, 7722, 12553, 10459, 12568, 12066, 12549, 66590, 12570, - 9712, 41417, 41496, 194943, 9805, 4965, 13150, 10538, 19944, 41401, - 120252, 120164, 6191, 6261, 119342, 119341, 11965, 1957, 10420, 982, - 2756, 9370, 2720, 12357, 41455, 2925, 118817, 13056, 3222, 13212, 10116, - 41644, 10105, 10378, 41581, 10834, 118793, 64407, 5242, 41963, 64476, - 1694, 8216, 10814, 67598, 7781, 6306, 64568, 917916, 120738, 11793, - 42057, 7594, 64598, 120325, 64799, 3475, 64206, 2479, 9709, 3632, 120322, - 10698, 65616, 3648, 3907, 10297, 67639, 3636, 19928, 2979, 8837, 8286, - 1843, 3936, 119052, 11699, 41347, 65119, 13235, 3640, 41248, 120579, - 4379, 13239, 12692, 7969, 12927, 66353, 194951, 12703, 120509, 41846, - 2529, 734, 10808, 65146, 42083, 9872, 957, 42055, 1846, 66367, 12181, - 9634, 120310, 9988, 12991, 1670, 5740, 119597, 10072, 5379, 120318, - 41163, 41157, 785, 8236, 194812, 9027, 63897, 13267, 64383, 64688, 925, - 41955, 120541, 41773, 41071, 9586, 120312, 41984, 9217, 6151, 12110, - 120689, 65572, 64580, 4016, 13265, 13264, 381, 12386, 6100, 42077, - 120768, 5808, 5184, 8200, 12967, 10810, 5612, 4583, 19943, 5860, 67633, - 64575, 194842, 812, 3615, 65284, 5178, 194929, 119015, 9825, 5188, 9698, - 7814, 120063, 10692, 1166, 64429, 41921, 924, 9756, 12359, 119258, - 194843, 2442, 10703, 120696, 67632, 8012, 5674, 12353, 119561, 12361, - 5677, 67626, 66657, 40972, 12453, 41920, 5673, 12751, 5676, 8542, 12694, - 118978, 2468, 1294, 41294, 3336, 3883, 64388, 1727, 194680, 64054, 3605, - 119632, 195015, 12034, 8718, 3550, 736, 7806, 4505, 2715, 806, 5826, - 41884, 5813, 64279, 65391, 5841, 5837, 64731, 12702, 3105, 2405, 5838, - 5796, 120604, 65259, 5793, 5735, 5866, 5797, 1432, 5865, 12143, 7956, - 598, 66448, 41886, 2480, 120152, 19952, 9037, 5671, 5537, 12749, 67601, - 10932, 41359, 1211, 847, 65690, 9529, 11799, 12318, 120766, 43026, 5645, - 10622, 41391, 194967, 64378, 6566, 917913, 5650, 11358, 119102, 13110, - 194834, 9624, 194928, 8284, 65896, 2748, 1554, 194733, 4035, 6492, 66504, - 4265, 2929, 3977, 65344, 12051, 836, 5698, 2488, 194634, 4582, 66514, - 5644, 10292, 12926, 8046, 7528, 8372, 11707, 65116, 119206, 11439, 13201, - 1374, 64878, 12742, 41013, 10568, 41374, 4030, 2869, 120776, 41015, - 65897, 2785, 400, 12597, 42051, 120540, 64477, 6661, 5659, 9884, 4759, - 118906, 390, 10266, 41349, 1170, 3473, 7718, 118962, 1609, 902, 917855, - 120062, 66352, 11661, 8122, 5712, 66308, 8004, 1887, 9540, 10278, 2554, - 5158, 5714, 41136, 194970, 64351, 807, 66652, 120793, 64677, 976, 5511, - 6146, 65518, 771, 10954, 41356, 9673, 11412, 11026, 41143, 8676, 7904, - 5579, 953, 451, 119560, 5578, 12635, 11491, 9724, 194697, 118881, 9524, - 7490, 118789, 1440, 3379, 10310, 7487, 12561, 471, 7484, 7482, 3795, - 7480, 7479, 7478, 7477, 6501, 7475, 64900, 7473, 7472, 2474, 7470, 6546, - 93, 10615, 10213, 8128, 12551, 10049, 8171, 3544, 194628, 6017, 65311, - 383, 120216, 13306, 10533, 7870, 63884, 5187, 119991, 1456, 120217, - 42164, 64217, 194702, 5232, 917994, 19961, 2472, 41005, 120699, 8710, - 6019, 4256, 119959, 4980, 8860, 9640, 10028, 12845, 66607, 13182, 65121, - 120685, 120308, 10631, 65126, 7972, 118928, 8066, 119623, 7900, 8316, - 11309, 11273, 119040, 64211, 120309, 64212, 10347, 445, 119029, 195074, - 12931, 64927, 8330, 65783, 66597, 64213, 64366, 64369, 8814, 3902, 64607, - 1770, 194723, 12836, 64208, 64552, 65821, 4584, 9684, 120714, 917944, - 10866, 65792, 1118, 7464, 194989, 8964, 1081, 7436, 64565, 8162, 9342, - 5996, 119245, 4903, 64332, 41386, 5162, 41007, 1330, 64486, 40995, 12209, - 12047, 41384, 194789, 195067, 1848, 4334, 65352, 9880, 64066, 10674, - 5522, 195014, 61, 120157, 195065, 3633, 41980, 65162, 41234, 12089, - 65871, 9771, 66685, 13251, 41959, 64749, 6262, 2784, 195040, 9334, 8126, - 66483, 64967, 7975, 441, 194591, 917599, 11608, 4884, 40999, 120269, - 120334, 10495, 6313, 10890, 119354, 65834, 8324, 7855, 2345, 67599, 463, - 64737, 194821, 119607, 3117, 5460, 119356, 1193, 10056, 1148, 12396, - 13252, 7829, 42173, 118994, 7743, 917981, 13248, 5499, 63763, 118960, - 9034, 6039, 120544, 5663, 119182, 41018, 65683, 10338, 2482, 1471, - 120086, 120077, 66370, 12378, 41966, 41970, 3084, 12374, 10903, 6638, - 10422, 911, 2460, 120499, 11944, 12376, 41032, 40996, 120614, 12380, - 5520, 64473, 10869, 5870, 64670, 13310, 2603, 12326, 539, 10826, 65105, - 917932, 3853, 11949, 64901, 120260, 64883, 10722, 41810, 8659, 120090, - 12474, 66721, 5857, 65342, 2478, 119120, 4162, 7942, 4260, 12953, 42028, - 120089, 12470, 64941, 11798, 2742, 12476, 1891, 10946, 9101, 5000, 66647, - 12302, 3018, 12942, 5748, 194584, 7771, 6161, 917934, 8796, 0, 6412, - 118986, 8519, 13146, 41973, 12906, 9422, 10333, 2882, 4366, 119123, - 12843, 4520, 917810, 65626, 10648, 118898, 4014, 12842, 194724, 12015, - 13117, 8275, 3893, 66362, 5810, 12210, 195071, 42147, 11536, 13292, - 65685, 12938, 10427, 9154, 3844, 63934, 9755, 1110, 6612, 10892, 8231, - 10775, 6473, 41968, 783, 10219, 3591, 41969, 917997, 2453, 8518, 3620, - 11466, 12443, 4556, 10349, 10413, 194569, 41159, 3202, 8599, 10510, 4382, - 66482, 195002, 10842, 687, 9177, 8902, 63950, 1840, 41751, 12400, 120177, - 4883, 285, 4723, 41917, 9788, 4459, 64158, 1634, 41958, 9155, 240, 9786, - 65082, 41919, 8579, 9743, 7981, 13134, 118878, 4508, 64178, 41999, 11328, - 119817, 65589, 63887, 3081, 11463, 120080, 119051, 119353, 10445, 41720, - 194662, 120229, 2614, 9024, 64620, 1729, 119840, 64289, 65221, 63883, - 65466, 64852, 64509, 41447, 63916, 64855, 41203, 5001, 41879, 11355, - 4121, 5003, 884, 41214, 63879, 4943, 5150, 7500, 5278, 7773, 643, 3086, - 118912, 64652, 120068, 58, 194621, 6167, 66656, 63872, 6594, 66366, - 11295, 41495, 3624, 43036, 118901, 64655, 2721, 9616, 63988, 19929, - 11296, 10500, 10440, 9611, 4264, 119303, 194657, 7738, 41857, 11446, - 12638, 64522, 3435, 3094, 12916, 9754, 66314, 4437, 41292, 8899, 12748, - 42058, 9517, 11518, 917889, 65360, 120700, 119047, 63956, 4306, 41380, - 11995, 63960, 9591, 8323, 10217, 67602, 11469, 120578, 12456, 2723, - 120061, 5088, 5086, 917783, 8524, 7752, 11397, 2880, 0, 194669, 2872, - 1386, 65034, 3498, 4378, 65039, 4270, 12392, 65036, 7853, 6633, 12101, - 5822, 5230, 194573, 710, 917790, 11663, 1666, 8161, 371, 12013, 63891, - 42092, 119103, 415, 63851, 63892, 11708, 42096, 5183, 1877, 7538, 7924, - 2927, 4324, 6608, 4472, 1244, 331, 194858, 12683, 10662, 64678, 4756, - 63831, 65852, 10730, 7691, 10331, 65320, 41964, 6238, 8938, 8628, 6043, - 118801, 64895, 1604, 9565, 10539, 120814, 41220, 13032, 120519, 120193, - 10032, 8750, 12373, 63828, 11992, 1351, 194868, 8698, 12190, 3622, 1930, - 65237, 9621, 10463, 63981, 4967, 13031, 1966, 2330, 195099, 3657, 120498, - 65202, 6000, 4347, 4416, 42098, 11009, 10694, 8099, 402, 41916, 13147, - 41912, 42100, 12217, 9695, 1897, 7562, 3515, 5170, 11805, 11796, 676, - 6259, 41742, 65558, 41870, 65553, 3536, 65093, 9752, 63902, 6162, 10532, - 66490, 10113, 41829, 65886, 5159, 12422, 41832, 439, 66640, 119611, - 11280, 12481, 2325, 40970, 41830, 120647, 917799, 5145, 12486, 65018, - 66516, 5409, 8976, 120051, 12336, 4135, 9685, 341, 2727, 4129, 3539, - 66616, 11530, 41736, 7913, 5405, 63859, 4131, 41267, 64721, 63865, 4133, - 63864, 210, 4600, 8082, 3254, 4137, 119205, 119853, 119062, 194577, - 120534, 4591, 65077, 64671, 194671, 3355, 9508, 3393, 561, 5723, 195, - 64261, 3377, 12497, 41269, 917545, 13135, 917993, 8368, 119224, 41499, - 917798, 11435, 917920, 41498, 120628, 1379, 246, 12603, 9680, 3788, 2924, - 42168, 12812, 8728, 64906, 119213, 8917, 120645, 301, 64765, 3969, 64964, - 9575, 64562, 40966, 9652, 64919, 42064, 42086, 120542, 194728, 8491, - 194962, 41876, 63772, 3182, 327, 120323, 9042, 118827, 917776, 42169, - 4755, 194684, 64660, 11443, 12431, 8668, 12434, 608, 600, 5999, 1219, - 3934, 9494, 11483, 917919, 1726, 1015, 64686, 8212, 11395, 64202, 13160, - 7759, 65363, 485, 43037, 65291, 8811, 927, 42102, 194979, 12436, 9351, - 7778, 64379, 7496, 65335, 7491, 1208, 7495, 64757, 9337, 64362, 917778, - 11348, 12235, 9021, 194949, 917830, 120066, 19914, 3742, 8758, 9648, - 64617, 63834, 9150, 63835, 1117, 13037, 2594, 63809, 10691, 12052, 6550, - 10469, 65212, 11265, 2546, 119216, 213, 65309, 10554, 3972, 917972, - 194678, 64194, 6554, 12416, 11914, 5452, 8230, 64197, 41951, 12418, - 42049, 3882, 8532, 2713, 1573, 9650, 42136, 4596, 66339, 1406, 120041, - 40990, 194593, 12414, 8287, 4143, 120378, 10489, 1143, 4141, 9682, 12415, - 1508, 42763, 8779, 10569, 8725, 120783, 65045, 11724, 119064, 4145, - 64872, 65751, 66613, 119576, 8027, 41505, 9171, 9550, 11400, 12518, - 65178, 65397, 6528, 10740, 65753, 64816, 10998, 66333, 12955, 10596, - 2888, 119572, 65033, 7715, 3881, 41487, 12118, 67622, 2878, 5390, 64167, - 3009, 41476, 41489, 63765, 3007, 1448, 2975, 10429, 3889, 8521, 5083, - 5082, 7503, 5235, 803, 194590, 3014, 5081, 8986, 11002, 10632, 11934, - 11452, 1332, 64802, 3929, 4597, 65532, 64767, 1791, 5191, 9288, 9657, - 2892, 10577, 6031, 555, 64173, 0, 194927, 12367, 42170, 11540, 63930, - 629, 1924, 119880, 11270, 64162, 5858, 8462, 8005, 12365, 1784, 1361, - 118939, 12369, 7905, 67644, 5077, 194668, 10880, 63927, 5075, 120065, - 9371, 65075, 41193, 11007, 1625, 10997, 917907, 1342, 66684, 64171, 3434, - 4843, 4506, 195060, 5266, 120521, 5272, 4482, 4507, 9578, 63923, 66319, - 7979, 64381, 9831, 64417, 65529, 461, 7984, 41972, 4504, 444, 42145, - 9127, 5276, 43021, 118922, 120179, 119638, 11349, 12848, 5177, 41324, - 12055, 8722, 120805, 1197, 65512, 1149, 4114, 409, 4383, 8900, 8948, - 7684, 3492, 721, 10182, 9108, 119005, 195041, 11954, 119191, 12993, - 40963, 3099, 917979, 65088, 41087, 119834, 12587, 66643, 120374, 12036, - 194736, 65123, 41576, 8152, 120721, 64428, 12227, 8578, 5995, 7573, - 41575, 2922, 63946, 63944, 11493, 194883, 2670, 4167, 194873, 11723, - 120025, 65173, 68154, 13023, 938, 917954, 195044, 11737, 9721, 118937, - 41017, 9606, 8504, 4024, 41063, 11411, 12334, 65231, 4153, 11911, 10793, - 5250, 12407, 3395, 4404, 6056, 12401, 11490, 5775, 42005, 41607, 68183, - 41091, 12205, 1344, 8870, 194744, 4940, 4735, 7683, 1167, 12822, 4983, - 120554, 861, 64907, 120045, 120458, 65149, 63896, 120651, 12039, 10559, - 11956, 119841, 118892, 9472, 4282, 6631, 120188, 12816, 9596, 7618, - 12710, 64147, 11579, 4101, 0, 64704, 5992, 7616, 65828, 64422, 1004, - 9632, 120185, 853, 0, 12627, 10953, 194681, 5016, 65619, 120441, 11300, - 9491, 9686, 5890, 917914, 7558, 12712, 195077, 65627, 10718, 13154, 3461, - 9139, 64756, 194990, 119151, 65628, 0, 13227, 12585, 6669, 119152, 12177, - 41708, 12860, 41098, 10015, 10838, 4900, 10352, 120742, 10061, 5903, - 4119, 5140, 209, 64002, 11520, 9702, 11702, 8277, 9245, 13048, 4927, - 4138, 41093, 65286, 64412, 2410, 993, 41025, 13054, 12394, 120020, - 917579, 68162, 12685, 64938, 65475, 10781, 41230, 64299, 5010, 1680, - 9107, 118809, 10659, 3600, 10968, 120027, 1336, 41518, 194796, 5896, - 119838, 5993, 2819, 12950, 12706, 12966, 1893, 120462, 63915, 917768, - 8184, 272, 1363, 8793, 8411, 63908, 41502, 3077, 983, 68118, 1512, - 119941, 1190, 4109, 1335, 841, 5888, 41358, 9836, 9544, 120021, 41481, - 8313, 7832, 65515, 3090, 2409, 817, 1664, 1850, 66690, 3079, 4731, 10118, - 66629, 64541, 12033, 1255, 11689, 9247, 64350, 66633, 12389, 66610, - 195078, 41996, 11526, 63985, 5864, 1147, 11690, 5835, 1551, 66625, 5480, - 7858, 11653, 4116, 11688, 66634, 1094, 194, 12384, 118987, 8180, 41686, - 12313, 41531, 63904, 13273, 6114, 10898, 195082, 64578, 8247, 507, 91, - 7545, 10695, 10952, 7534, 10896, 10036, 7857, 6067, 774, 65915, 2744, - 119815, 5994, 12539, 41420, 41601, 8359, 65264, 6028, 66511, 13167, - 120277, 7719, 119875, 2486, 7893, 41059, 162, 5436, 917583, 119809, 9687, - 64956, 6304, 65457, 6051, 120495, 5262, 5904, 66658, 12681, 194710, - 194616, 12406, 12219, 3652, 10537, 917946, 10492, 64550, 6549, 279, - 195030, 119978, 64619, 12403, 1489, 120771, 4132, 4899, 3899, 1007, - 42124, 4976, 2343, 4103, 19946, 120806, 10750, 1345, 120355, 120801, - 12859, 8956, 4098, 65267, 5861, 65559, 11999, 12151, 64804, 194856, - 12645, 5146, 11320, 64730, 64174, 41094, 492, 8685, 12974, 41060, 67613, - 41551, 5147, 2582, 11470, 64538, 7444, 1928, 118998, 9594, 5991, 10862, - 67609, 2527, 194809, 197, 2799, 8241, 64181, 65348, 65874, 194840, 64179, - 767, 4127, 120464, 10138, 119808, 0, 8897, 63911, 41553, 8357, 4124, - 1799, 65371, 42148, 194663, 12954, 120231, 65340, 1123, 963, 2434, 10120, - 12405, 41339, 2493, 398, 392, 9723, 6407, 119011, 7945, 64935, 4402, - 7570, 12402, 65926, 41392, 8414, 12408, 41265, 65713, 406, 120326, 9164, - 12411, 0, 4560, 6623, 4961, 64494, 1575, 64682, 5438, 165, 9993, 41467, - 63953, 8064, 9093, 9599, 9147, 118831, 63958, 4987, 9148, 2399, 4096, 53, - 10944, 12368, 65435, 119192, 8178, 64149, 3367, 12910, 10884, 727, 65272, - 119238, 5805, 1947, 11527, 194589, 42176, 12370, 11655, 1705, 5411, 8898, - 118810, 12372, 120642, 195023, 8017, 65287, 8813, 12366, 10963, 6066, - 1329, 4909, 3052, 9220, 66464, 4904, 66666, 10803, 1365, 9253, 42757, - 41264, 7462, 120712, 119350, 119814, 1499, 66727, 8055, 120803, 8740, - 5398, 63962, 13120, 8924, 917764, 5988, 3660, 12017, 11781, 9476, 8788, - 1357, 42113, 65743, 3629, 8774, 13005, 119082, 3628, 120172, 64394, 1933, - 3469, 1567, 42116, 11969, 64809, 2928, 4905, 2487, 851, 3121, 1804, 3311, - 67615, 9114, 194880, 12083, 9315, 4822, 4906, 3852, 2847, 6675, 3236, - 11317, 1251, 7777, 41852, 7951, 1198, 9132, 120767, 12274, 510, 10259, - 9865, 65686, 4561, 6018, 1398, 917869, 12276, 66487, 19931, 119061, - 11406, 8167, 12127, 41932, 840, 120300, 2443, 10918, 10410, 120338, 1001, - 9241, 1927, 333, 41930, 120272, 8144, 8034, 10680, 119598, 66663, 64199, - 12867, 64198, 6678, 7769, 7519, 12621, 65150, 8904, 518, 4764, 65165, - 41168, 13204, 4387, 857, 10530, 65369, 12736, 120724, 41044, 66458, - 11543, 9358, 67594, 42078, 5136, 1968, 19937, 66605, 1337, 10581, 1629, - 4533, 796, 66494, 6490, 194921, 12038, 119338, 12664, 195037, 65461, - 9798, 6120, 478, 1948, 68128, 10962, 952, 6016, 195055, 195088, 9512, - 4276, 1206, 3619, 41638, 13263, 3843, 8142, 8853, 3361, 41795, 490, - 10715, 3436, 65011, 63841, 12817, 9847, 6676, 3930, 12854, 13240, 6154, - 9551, 65354, 65346, 784, 65357, 334, 64797, 1453, 7541, 8940, 120329, - 8500, 10428, 10364, 64715, 778, 4317, 10004, 7989, 64676, 3227, 119583, - 67606, 120514, 120684, 10855, 13102, 41702, 10309, 6672, 10277, 194958, - 66691, 41624, 5415, 9613, 9001, 4526, 3462, 65215, 64520, 41020, 6664, - 66701, 42056, 9759, 64957, 3963, 120304, 8114, 1469, 65244, 65381, 41744, - 4988, 66453, 118956, 9598, 904, 352, 194760, 1451, 1356, 8453, 4134, - 120377, 917802, 1619, 9703, 41745, 3955, 8575, 119180, 1201, 64732, - 12846, 917980, 41860, 11919, 64962, 41550, 5289, 13144, 8511, 9460, 823, - 9675, 12305, 5940, 226, 2649, 12387, 1253, 13183, 65766, 500, 64521, - 9081, 1658, 11936, 64735, 65761, 8702, 11606, 64784, 9785, 42123, 64783, - 194619, 917779, 5152, 8935, 7533, 119101, 5304, 119820, 616, 4323, 64666, - 4684, 65103, 120613, 65735, 65339, 10560, 6048, 4763, 4112, 118935, - 10870, 5260, 5328, 65129, 326, 9681, 4475, 917933, 10771, 2876, 194915, - 119935, 6035, 41398, 41192, 9802, 13261, 120532, 453, 41396, 917564, - 6481, 12140, 9572, 41937, 10392, 10328, 40998, 7704, 66432, 120317, 9800, - 4123, 917900, 42103, 41000, 7854, 119239, 6487, 8334, 64061, 10344, 9808, - 11271, 5394, 4126, 12800, 9521, 9589, 41200, 41306, 4425, 119856, 10464, - 63802, 64769, 1288, 64514, 11528, 63984, 12173, 679, 64012, 41914, 5850, - 758, 7536, 10796, 4474, 10742, 10693, 64006, 1587, 64005, 10541, 64581, - 65490, 1369, 12134, 119050, 7927, 64009, 1139, 64030, 64026, 64029, 8970, - 64948, 4430, 195016, 10774, 4514, 66434, 12421, 8194, 194765, 1852, 3057, - 65483, 8893, 64032, 12542, 12973, 65341, 120497, 41206, 7925, 12423, - 10475, 917572, 3496, 1352, 10933, 7707, 9102, 627, 42034, 6158, 8327, - 64497, 65605, 6040, 917592, 10129, 64863, 9336, 11696, 5730, 1018, 7798, - 64474, 64259, 1682, 64290, 7820, 42756, 12951, 119873, 7746, 1492, 0, - 8288, 12563, 10728, 5127, 11285, 65509, 5495, 4273, 11577, 9644, 10849, - 1833, 2999, 120612, 64373, 120471, 185, 65085, 6023, 169, 5497, 7535, - 8085, 917909, 65717, 9749, 8224, 6131, 1949, 4117, 7847, 120489, 119982, - 5321, 66355, 65765, 9313, 2589, 64408, 1689, 7802, 4683, 120167, 12303, - 64667, 66704, 1184, 0, 815, 8273, 120807, 6049, 120530, 4027, 834, - 119833, 1803, 64683, 1503, 8995, 120653, 917924, 5731, 1381, 2387, 64511, - 12430, 8289, 10981, 12654, 2881, 65514, 917600, 9601, 332, 9668, 9766, - 5142, 2407, 65618, 66601, 6036, 64881, 4026, 8645, 64789, 2887, 6489, - 3526, 6298, 119136, 64475, 4833, 1834, 65621, 8572, 6021, 10940, 65249, - 119848, 8662, 65739, 119604, 2652, 7463, 11539, 10784, 120720, 64391, - 166, 19913, 8635, 9706, 10623, 408, 1828, 195084, 13298, 194889, 7426, - 8168, 6280, 12324, 7607, 10639, 66713, 4832, 64557, 41643, 6279, 12508, - 8713, 10690, 9161, 41645, 1620, 6645, 646, 66726, 66711, 42129, 609, - 11555, 3472, 8697, 41086, 119594, 4343, 6212, 917557, 11413, 5809, 1950, - 239, 119021, 637, 65785, 41592, 43029, 917539, 120285, 194837, 3247, - 120754, 12985, 12696, 65213, 66668, 65260, 12929, 10983, 712, 120291, - 119337, 41567, 65592, 194969, 120171, 119852, 120178, 119137, 1506, 8285, - 65617, 4509, 65608, 12651, 12216, 64628, 40988, 11961, 6204, 41727, 7494, - 64341, 2396, 41703, 41493, 13062, 41757, 355, 9719, 3886, 9814, 63912, - 68123, 65444, 996, 42075, 64880, 43045, 65199, 194810, 8655, 8222, - 194839, 7939, 10342, 64720, 3178, 68184, 120552, 5907, 19932, 3976, - 917849, 42161, 9471, 5833, 11966, 12555, 5969, 5699, 12562, 12550, 9488, - 40982, 8489, 0, 1488, 194829, 13149, 119997, 9799, 5265, 66612, 1563, - 11487, 9619, 12464, 119210, 120758, 118952, 41704, 5803, 7797, 6070, - 10006, 41181, 465, 6082, 13078, 9692, 194745, 12567, 8116, 795, 66480, - 7843, 12462, 3607, 10831, 10046, 9612, 42153, 8218, 9485, 66714, 120301, - 12468, 8607, 1008, 65322, 3306, 66485, 65138, 6057, 508, 120264, 1766, - 11282, 11996, 1820, 4547, 0, 638, 6083, 120160, 12308, 0, 2305, 917595, - 64777, 9470, 4345, 6659, 65236, 4818, 6085, 9899, 65207, 3915, 41634, - 5382, 41639, 119591, 6235, 119060, 4028, 1787, 19920, 41979, 120786, - 3249, 1768, 1130, 12328, 501, 42016, 10601, 43023, 6503, 65294, 7742, - 63992, 13280, 41922, 6505, 118925, 5310, 9475, 66716, 120810, 6500, 5526, - 65049, 11408, 65889, 8568, 119818, 11449, 9678, 5403, 120311, 9869, - 63780, 1771, 12460, 8936, 120631, 118832, 64903, 10760, 119115, 9158, - 66567, 120259, 119025, 120582, 5410, 5783, 10365, 8403, 5400, 11594, - 120295, 5027, 9326, 10491, 119348, 4831, 120698, 5028, 5587, 66492, 7540, - 5026, 4923, 65086, 8981, 12382, 8931, 120755, 1415, 8866, 917785, 65513, - 10461, 12103, 119602, 8642, 5029, 42766, 1580, 3598, 120067, 41070, - 10053, 120819, 6663, 119325, 6026, 41515, 118796, 64592, 1716, 1461, 910, - 11907, 620, 41001, 3658, 41541, 119980, 66728, 7617, 5024, 12888, 41003, - 68180, 5025, 11529, 41514, 64561, 5703, 119124, 41517, 41504, 41519, - 66473, 9726, 119160, 5849, 623, 781, 670, 10660, 5769, 613, 6105, 11584, - 477, 1268, 65275, 8906, 592, 1578, 2636, 64404, 10815, 11619, 8225, - 119578, 654, 6451, 653, 652, 7721, 647, 7869, 633, 120224, 42152, 64361, - 12480, 6119, 829, 39, 12487, 19950, 120399, 65865, 6616, 65672, 12489, - 9667, 391, 5550, 194870, 482, 917886, 1203, 120345, 1813, 64544, 41311, - 9503, 120623, 2877, 120249, 64135, 1675, 4939, 5315, 194801, 64128, - 10070, 10595, 13293, 4576, 42094, 12808, 119569, 4277, 40997, 4039, - 120429, 64472, 368, 13036, 3960, 65460, 8406, 68176, 120121, 66679, 3958, - 12132, 1849, 194564, 270, 13086, 10714, 194617, 11929, 11959, 917824, - 64657, 41608, 3618, 65009, 9069, 6273, 5156, 364, 9595, 929, 67616, - 42035, 707, 1555, 41725, 8691, 66435, 224, 41662, 68164, 9332, 4966, - 194977, 917538, 4578, 64513, 3841, 194647, 65922, 10732, 13074, 850, - 4972, 9356, 12820, 2909, 63968, 1286, 10166, 8682, 11544, 10203, 9608, - 12815, 7730, 11962, 41540, 12507, 1196, 0, 66471, 777, 10020, 4375, - 41372, 6641, 525, 12198, 120443, 8763, 120526, 41628, 533, 11931, 8658, - 120743, 41520, 2705, 65010, 13126, 9838, 4377, 8559, 7765, 119925, 8280, - 13193, 2701, 11666, 8679, 5767, 1576, 7735, 9809, 8353, 11513, 41960, - 42007, 66452, 10889, 1748, 7757, 65265, 120226, 12803, 66493, 2718, 4168, - 3061, 13308, 63764, 6596, 1179, 4440, 194759, 7694, 363, 8896, 63768, - 3485, 12987, 41586, 64908, 120332, 41149, 1591, 6593, 64625, 10192, - 64143, 66455, 13053, 10013, 5630, 194622, 120686, 9492, 10390, 13083, - 12833, 5543, 41327, 1640, 12495, 630, 120091, 3138, 10996, 41127, 1043, - 120674, 12498, 10090, 917568, 917609, 313, 65543, 8615, 119144, 12540, - 493, 41426, 5750, 1717, 9417, 479, 9405, 11268, 0, 9398, 9403, 3520, - 8426, 12490, 63855, 65185, 12586, 12493, 5815, 10707, 1002, 12491, - 194884, 12934, 631, 66474, 64922, 13161, 41303, 917957, 10546, 67635, - 65711, 11600, 65786, 2797, 13107, 65599, 306, 714, 3058, 8507, 65576, - 66700, 119961, 120731, 120694, 11607, 65591, 64711, 68166, 7909, 9157, - 4569, 63758, 63805, 13297, 7603, 40986, 180, 244, 11542, 12898, 12494, - 12674, 8244, 362, 65776, 64145, 8037, 194830, 11535, 120680, 4882, 5185, - 64866, 5521, 4885, 5519, 42155, 10302, 4880, 10104, 1027, 1360, 248, - 12424, 10523, 1446, 4319, 41646, 991, 5189, 63754, 10494, 65777, 1722, - 1870, 120151, 470, 9427, 65271, 5523, 194716, 64527, 4579, 120446, 9549, - 12511, 10549, 12514, 9661, 66486, 12000, 9602, 8623, 65172, 120042, - 119855, 13095, 12512, 11615, 13041, 6150, 9846, 659, 6098, 0, 1174, - 10334, 194592, 8311, 12510, 63856, 12107, 120341, 12513, 9284, 12471, - 120733, 12330, 917571, 63853, 119854, 2323, 65288, 2319, 6293, 12477, - 118807, 2311, 194661, 4415, 237, 6281, 917902, 0, 9010, 2309, 7897, 8173, - 64894, 12469, 7483, 118979, 1736, 10609, 3894, 12228, 9397, 10987, 3383, - 9396, 9393, 693, 9130, 314, 9389, 6209, 9387, 9388, 4932, 3842, 9383, - 5332, 12204, 9285, 10436, 8185, 41808, 1751, 273, 8165, 13166, 2313, - 65449, 7948, 9236, 8544, 4528, 2584, 6301, 41880, 6133, 10484, 9463, - 917823, 9339, 7943, 3757, 3147, 195092, 12420, 10421, 120488, 2310, - 41112, 2326, 9382, 2565, 9380, 7596, 7921, 9375, 9376, 1683, 9374, 2567, - 8596, 12444, 4044, 41274, 12527, 8210, 120756, 1023, 474, 12331, 0, - 42032, 8744, 726, 9839, 120313, 5005, 120383, 41276, 42030, 5007, 12522, - 9835, 65442, 4951, 634, 12213, 10895, 65492, 274, 120236, 1858, 4744, - 4746, 917852, 9548, 65899, 403, 120117, 12503, 9610, 8068, 8197, 63996, - 699, 42000, 41665, 1819, 10496, 13007, 42182, 7581, 13262, 194649, 41667, - 12506, 10840, 1923, 13084, 12500, 64507, 12509, 64393, 10507, 120692, - 10589, 6464, 41047, 2996, 1937, 41931, 12990, 8084, 4047, 3608, 8281, - 65016, 1107, 68101, 9076, 8862, 120636, 293, 9369, 64766, 64791, 7803, - 13222, 65416, 10579, 8560, 8546, 11553, 12678, 4803, 9043, 1739, 1941, - 498, 64471, 1713, 119091, 12529, 8042, 11407, 2344, 12528, 6297, 2414, - 64139, 66710, 3231, 11716, 6422, 9902, 65156, 12530, 2537, 969, 41429, - 12658, 13034, 6165, 13035, 917620, 6632, 4719, 469, 119240, 4363, 5211, - 8914, 119299, 119334, 1772, 1435, 64876, 2969, 6046, 64812, 6208, 64101, - 5746, 12215, 119332, 4931, 1951, 8612, 119363, 9607, 917904, 338, 118797, - 5061, 10675, 41106, 10767, 1491, 8115, 65459, 11941, 10139, 8227, 8270, - 1218, 12126, 41993, 12168, 6642, 63808, 12889, 1622, 41108, 4486, 41995, - 1075, 1958, 10925, 41992, 41506, 118975, 10249, 64122, 10257, 41569, - 10273, 120327, 7692, 12669, 8008, 120320, 330, 8566, 65083, 9046, 41117, - 41126, 12532, 120648, 64131, 3508, 7794, 119943, 64129, 9645, 64662, - 10770, 3669, 3968, 64115, 66644, 13028, 120302, 12537, 194802, 64120, - 65720, 12536, 2350, 13029, 6583, 120072, 12116, 13030, 66678, 4527, 1588, - 12538, 8409, 65718, 10683, 41670, 787, 9502, 4948, 12484, 4032, 118940, - 7449, 65399, 6207, 120536, 6117, 65401, 8412, 65247, 7438, 8734, 644, - 9769, 41657, 10149, 3659, 9533, 184, 1553, 10827, 12488, 65382, 10502, - 41556, 12623, 65474, 2354, 120214, 8220, 118856, 6295, 901, 41510, 7953, - 118826, 5157, 4020, 63811, 11927, 66584, 13079, 194959, 41687, 64303, - 120735, 7520, 848, 9868, 65620, 6424, 194714, 65916, 66495, 64094, - 118926, 7877, 2352, 41826, 120726, 64576, 11289, 1407, 10911, 65607, - 13026, 120503, 7941, 11715, 8362, 8903, 9777, 66715, 1871, 5869, 8636, - 120290, 1343, 65160, 12649, 9325, 13025, 6283, 11738, 12643, 194623, - 65181, 11741, 8543, 10051, 9216, 8263, 11279, 41258, 8625, 118840, 11290, - 10477, 3136, 8733, 11582, 8315, 13022, 8772, 64588, 0, 6152, 41456, 5477, - 6629, 10112, 19916, 13020, 66723, 8675, 120324, 194766, 67600, 120351, - 10978, 8029, 6091, 120350, 4485, 3335, 64591, 3590, 9776, 41397, 66578, - 5215, 194750, 3333, 1632, 63900, 3588, 3342, 9341, 5363, 12957, 12725, - 68113, 63852, 64076, 223, 64079, 1611, 13246, 13018, 65835, 63792, 65245, - 3337, 1171, 11275, 11736, 41097, 1805, 6482, 41423, 64113, 11945, 8708, - 13046, 8838, 425, 4025, 5013, 41868, 120235, 2392, 13047, 4530, 120105, - 10617, 1213, 119233, 120103, 797, 118814, 7888, 13050, 120349, 64387, - 4115, 65557, 65862, 65587, 3277, 8929, 4947, 41055, 195072, 64276, 426, - 66497, 13045, 8251, 10136, 7751, 120109, 8371, 119253, 1224, 12806, 8768, - 13044, 10701, 1764, 3101, 64469, 8480, 1078, 9757, 65223, 41057, 65567, - 120572, 8663, 9312, 4413, 4539, 3787, 42160, 9222, 67617, 9165, 1572, - 9092, 12593, 41961, 2346, 12724, 8958, 66653, 9646, 3773, 41825, 1293, - 7947, 12003, 120228, 13043, 8056, 2454, 5349, 208, 194718, 65869, 64849, - 65888, 8816, 10699, 6408, 0, 7825, 5661, 917587, 12595, 3603, 41109, - 2398, 3548, 1157, 64291, 8638, 68167, 917821, 3115, 194771, 11321, - 118787, 8235, 4405, 10086, 4876, 194808, 195085, 119256, 65430, 10624, - 6079, 12646, 10764, 8158, 41561, 41472, 998, 13051, 13105, 3143, 120156, - 194673, 41559, 1896, 7882, 13052, 118948, 5665, 530, 65814, 11269, - 120566, 12002, 64526, 5742, 5664, 4692, 8979, 12310, 4007, 5004, 11330, - 7896, 751, 6595, 3382, 63959, 66373, 13231, 11533, 64874, 4732, 6311, - 194936, 11596, 63976, 1626, 63977, 10110, 64056, 41705, 6420, 6598, - 64327, 6599, 2795, 4910, 65308, 118825, 119328, 6275, 6597, 41699, 8340, - 119335, 3229, 6423, 42774, 11019, 65390, 5407, 12823, 2331, 41678, 42026, - 6137, 2336, 7524, 194816, 66720, 42759, 8339, 1921, 120003, 19927, - 195038, 822, 64870, 9903, 4284, 119593, 194648, 43010, 12841, 9229, - 10956, 41255, 12607, 5311, 1795, 965, 3521, 10587, 5774, 8325, 917931, - 65403, 917915, 1854, 10794, 119250, 10057, 6294, 3144, 64780, 5280, - 65019, 4344, 12905, 41610, 6076, 748, 12385, 768, 535, 442, 9507, 194641, - 119346, 10556, 2475, 12388, 4889, 8968, 6071, 3593, 64093, 4804, 2342, - 917797, 1800, 120098, 4894, 467, 4890, 120342, 64644, 120707, 4893, 8421, - 12433, 10666, 4888, 502, 64080, 64615, 41490, 120142, 12043, 10119, 316, - 65878, 10230, 65191, 41297, 64924, 64086, 64746, 2332, 4860, 412, 65728, - 11997, 12432, 9583, 8058, 5546, 8019, 194597, 66561, 63750, 12203, 5544, - 2355, 8913, 65725, 4875, 10613, 66692, 12137, 5548, 9344, 6250, 7944, - 65582, 13104, 6077, 12383, 64519, 119132, 11301, 3134, 119339, 65696, - 4669, 917812, 917789, 194894, 3050, 63839, 10319, 119075, 10383, 118842, - 4592, 11008, 10809, 194800, 4691, 6543, 9345, 621, 917597, 120055, 4328, - 10734, 120032, 64631, 917906, 7804, 19904, 10811, 8457, 10545, 4914, - 10271, 3786, 8886, 4917, 66461, 64914, 7923, 3716, 5464, 9996, 8508, - 2361, 7971, 8195, 194706, 9566, 7682, 3722, 8086, 41707, 10845, 545, - 2312, 40977, 10050, 10874, 8305, 8859, 41458, 40980, 65110, 13202, - 195028, 12582, 9119, 2787, 7920, 41521, 4021, 6288, 7985, 119349, 5653, - 65802, 10891, 7698, 5658, 410, 41552, 1802, 12220, 4913, 120466, 41659, - 41671, 1827, 917894, 64396, 41668, 9077, 2327, 8810, 11422, 120372, - 12705, 3860, 10756, 9239, 8821, 6153, 2867, 119118, 42158, 698, 120359, - 8749, 10356, 12698, 64858, 361, 12641, 845, 194599, 41560, 11970, 4562, - 63756, 2926, 119566, 4099, 66439, 194695, 7936, 120303, 611, 68124, 4716, - 118891, 41382, 119207, 7686, 120568, 194595, 68178, 120543, 118875, - 119612, 6291, 5462, 10823, 41669, 9734, 65455, 9071, 4655, 4151, 13295, - 0, 66632, 839, 42162, 7695, 8769, 65246, 10737, 119194, 4859, 64467, - 65504, 4826, 64157, 41090, 917837, 6647, 64727, 66447, 63845, 2700, - 12576, 7842, 12839, 120825, 804, 2699, 66596, 10542, 2985, 119222, 64806, - 8271, 10091, 11915, 9468, 119312, 9827, 64106, 119311, 286, 12323, - 118830, 11481, 118942, 119305, 1425, 35, 119229, 65084, 66694, 41210, - 64432, 8482, 119113, 6090, 5032, 7812, 10534, 7894, 664, 119588, 5034, - 4272, 65211, 40967, 40965, 42024, 12704, 13294, 66589, 64869, 6032, - 120367, 9129, 7430, 917922, 119609, 68112, 194813, 5244, 6130, 65714, - 41161, 5518, 4174, 1879, 8189, 968, 12222, 1169, 434, 11541, 66573, 6034, - 9739, 64744, 12574, 118867, 194995, 524, 118990, 118934, 788, 120433, - 12679, 64506, 64150, 1663, 10419, 8574, 41227, 118805, 12346, 12855, - 64848, 41030, 10415, 41562, 120599, 65623, 118850, 64571, 0, 19939, - 67614, 959, 8885, 12564, 64333, 118855, 9469, 5195, 5445, 9355, 64323, - 42151, 4644, 8989, 221, 310, 41253, 41564, 8010, 119301, 4962, 63766, - 8855, 10054, 6497, 9091, 917544, 9012, 19958, 12088, 41002, 13215, 65047, - 10451, 64260, 374, 120153, 816, 64634, 120148, 120054, 41934, 3873, 8367, - 917784, 64608, 4715, 6101, 11987, 41936, 194572, 4879, 12723, 65089, - 11683, 307, 120416, 9585, 5374, 64286, 1462, 10235, 41390, 8627, 65579, - 12119, 65028, 13024, 1929, 120426, 12142, 8611, 12236, 41419, 194618, - 66507, 12982, 64374, 5378, 194666, 64295, 41421, 917838, 741, 10083, - 119309, 65026, 821, 65350, 2498, 5800, 10755, 2992, 1760, 8124, 4469, - 2324, 828, 3611, 119084, 757, 1185, 120271, 531, 120728, 10628, 119020, - 120437, 7999, 8204, 3614, 2827, 9696, 10942, 7713, 2348, 4354, 10904, - 4380, 19936, 7833, 10573, 5320, 41240, 862, 3000, 10301, 1810, 3673, - 5137, 9525, 64569, 9354, 65622, 0, 7566, 10121, 64940, 120716, 66693, - 12824, 13066, 3062, 7970, 64741, 12608, 194600, 5871, 41160, 9700, 12580, - 917591, 65748, 119811, 3967, 7898, 13137, 8775, 64560, 12713, 2963, 9090, - 8410, 4454, 723, 1734, 966, 4449, 917815, 64594, 2456, 231, 2320, 120225, - 339, 4968, 120535, 40989, 8075, 1230, 120795, 8047, 3597, 9761, 10584, - 41542, 65404, 1290, 66358, 8352, 917874, 5687, 66698, 3840, 1584, 119963, - 6045, 0, 10498, 9704, 64136, 64138, 10992, 7537, 12311, 8660, 120357, - 8365, 8643, 65029, 119049, 4483, 1709, 64399, 7466, 6080, 13092, 64140, - 1746, 6072, 8667, 12121, 65604, 13140, 11414, 65031, 2531, 4480, 120765, - 64141, 1226, 1259, 7517, 10394, 41231, 10897, 120257, 605, 67619, 641, - 5219, 12342, 64100, 41500, 41129, 311, 11453, 6221, 9075, 120358, 5466, - 10877, 118868, 11451, 120737, 4535, 2667, 4271, 65406, 64188, 345, 41410, - 10829, 41198, 195027, 41407, 64104, 5037, 41131, 1776, 8422, 11266, - 64103, 41508, 4660, 323, 65305, 917813, 6649, 1295, 120010, 4625, 2563, - 4630, 247, 119135, 119870, 12338, 4651, 2668, 6657, 194941, 13223, 11933, - 2519, 119973, 41903, 41079, 5053, 194787, 5049, 119924, 11335, 706, 7754, - 7727, 8738, 4031, 6278, 5009, 9672, 649, 5514, 118920, 66702, 10280, - 12670, 1013, 41218, 3877, 705, 41591, 8755, 194900, 1183, 4184, 8268, - 65918, 65301, 8157, 9736, 64503, 65418, 118921, 4747, 4712, 43013, 11913, - 4718, 194632, 10837, 5141, 10614, 65733, 7962, 12211, 9837, 65831, 64722, - 119008, 5719, 65706, 9773, 119068, 119147, 1857, 65547, 4626, 8464, 859, - 194795, 4629, 8499, 6059, 41134, 4624, 7818, 8535, 119914, 65179, 7805, - 64805, 11488, 12242, 41011, 120220, 64119, 10558, 917955, 917918, 118950, - 8492, 8250, 8459, 120597, 1788, 1579, 10766, 64117, 195050, 8048, 9543, - 9028, 120522, 64516, 65849, 13185, 1285, 64114, 120777, 8240, 8684, 8170, - 6102, 41762, 5298, 12625, 5294, 65204, 42013, 3940, 41597, 119917, - 917873, 9816, 8665, 65851, 11436, 12630, 1653, 64669, 10153, 120601, - 6166, 118791, 118989, 41377, 5292, 66673, 65046, 1939, 913, 3970, 64599, - 12455, 1793, 66637, 120162, 118837, 6643, 8211, 65263, 0, 194703, 64127, - 64081, 119125, 3514, 13219, 9569, 10865, 11958, 5263, 13286, 64126, 5500, - 10022, 65387, 65500, 65384, 5322, 980, 66354, 10008, 5324, 66600, 3784, - 41614, 64751, 6230, 194767, 63885, 10085, 3360, 8098, 11523, 6634, 41734, - 10096, 41613, 8072, 119321, 119322, 41821, 1249, 7783, 41731, 12032, - 8237, 63840, 64899, 12395, 7425, 12818, 120565, 10462, 41150, 194574, - 9795, 66680, 64664, 13213, 194601, 120222, 41152, 194679, 9249, 6565, - 7808, 1829, 120479, 11670, 4358, 65315, 6670, 11426, 194865, 120223, - 12391, 1710, 12160, 10168, 8777, 9781, 49, 6627, 66708, 6258, 8269, - 120594, 9741, 194923, 5649, 119100, 315, 12813, 1643, 119988, 12397, - 3470, 8884, 65175, 41099, 65314, 13299, 1378, 65163, 1072, 120607, - 118802, 3066, 6576, 119300, 120002, 65675, 1080, 41293, 8787, 194828, - 1101, 41618, 120001, 8405, 0, 12632, 1086, 1869, 42088, 7680, 8847, - 10805, 65884, 12639, 3380, 8123, 1091, 6121, 7977, 4501, 12665, 8119, - 12998, 66309, 917927, 1494, 11693, 3127, 194567, 64945, 12930, 1394, - 119230, 65872, 12363, 5345, 9789, 2998, 9527, 120659, 64582, 12977, - 12309, 42090, 3861, 10635, 12939, 12404, 12413, 42003, 2495, 5848, 8726, - 5570, 1881, 12410, 41722, 1012, 8100, 7890, 120296, 11298, 10649, 5569, - 6229, 1593, 65319, 6063, 619, 65128, 65080, 6053, 65602, 4120, 65337, - 64372, 9160, 917928, 119214, 11776, 9366, 9016, 42006, 6055, 3870, 4279, - 2500, 10757, 1507, 8497, 8602, 65316, 13021, 65334, 65333, 11694, 65331, - 42059, 42061, 9080, 120099, 9128, 64480, 5571, 3674, 9740, 9121, 4371, - 5798, 10408, 42085, 10107, 4106, 41989, 65313, 42074, 63999, 11326, 0, - 10233, 13098, 65813, 41239, 10094, 195026, 8182, 0, 119831, 68152, 11947, - 9803, 5847, 1505, 9131, 65161, 4615, 12695, 41988, 41250, 12175, 917864, - 19966, 119582, 7809, 120626, 120445, 562, 8120, 6590, 194565, 13033, - 64738, 3219, 68097, 10664, 1366, 1037, 67623, 4551, 65545, 68131, 66334, - 10637, 4568, 549, 1570, 10478, 2835, 12517, 557, 9457, 5952, 64649, - 41056, 12519, 41004, 119307, 2825, 66636, 10825, 8079, 2821, 41046, 0, - 42071, 12111, 3927, 13071, 12515, 452, 5271, 5492, 64718, 2831, 10604, - 10144, 11465, 5212, 5493, 41120, 8916, 13027, 9747, 12019, 41332, 1618, - 12069, 917584, 1668, 10430, 917766, 5853, 1187, 10363, 1121, 12956, - 120656, 119107, 11314, 3240, 12060, 12194, 65180, 41631, 11591, 5323, - 8166, 4557, 6415, 2707, 8309, 1623, 65297, 41052, 571, 2697, 4918, 11339, - 4912, 2695, 11598, 65048, 66438, 8864, 64755, 64798, 10736, 2693, 12125, - 7615, 12826, 1164, 194583, 6411, 1035, 41067, 119142, 7881, 701, 9758, - 3489, 119296, 7469, 11569, 5248, 12218, 120538, 6303, 3796, 41123, 65688, - 3994, 11421, 10457, 9991, 41128, 64485, 5792, 12347, 9873, 42171, 2855, - 7994, 64762, 6104, 65351, 6591, 9340, 9532, 1589, 119226, 296, 3246, - 7906, 2879, 41981, 41620, 64942, 7815, 65855, 120482, 917817, 66457, - 10585, 12579, 1496, 747, 6416, 942, 2378, 10960, 11618, 5299, 0, 9320, - 5449, 1232, 8139, 6216, 41431, 917970, 11409, 5295, 66624, 64392, 1223, - 1642, 174, 120824, 11612, 4161, 2374, 120546, 8475, 3212, 66313, 3211, - 194576, 5286, 119297, 0, 64142, 9728, 3846, 8070, 5536, 6636, 7705, - 11942, 11305, 12136, 3309, 67612, 66377, 41491, 66325, 4986, 12189, - 41653, 1280, 1241, 917537, 4257, 8496, 67608, 6220, 9004, 65411, 65203, - 41513, 41650, 120791, 194578, 120608, 12914, 12884, 194575, 9890, 6078, - 10237, 917943, 1475, 64917, 11979, 6084, 118900, 41064, 41061, 9635, - 12600, 3256, 41236, 42039, 0, 6469, 65377, 8727, 10654, 4679, 41237, - 64073, 64867, 6531, 65285, 65329, 64069, 10640, 3248, 2613, 3261, 9015, - 119829, 66568, 3635, 64337, 41651, 41241, 64944, 3494, 6449, 6555, 10588, - 66588, 120581, 194783, 67597, 635, 13139, 65898, 65613, 65312, 5447, - 68108, 194826, 64382, 4010, 7445, 8600, 41915, 65804, 4176, 41105, 5812, - 65820, 6232, 65891, 68142, 194588, 318, 5302, 195022, 6538, 4335, 3649, - 3941, 41122, 41110, 3634, 64892, 9113, 1954, 12155, 7866, 120297, 11402, - 11733, 64296, 120138, 66470, 2849, 66375, 66697, 7938, 11728, 1761, 4586, - 65379, 350, 10930, 119090, 509, 194792, 119603, 9365, 66687, 542, 5133, - 41680, 64551, 9500, 11534, 1514, 11668, 65823, 5453, 65533, 64921, - 119967, 2496, 8493, 944, 9368, 3890, 1624, 1438, 8817, 120592, 10818, - 41947, 1220, 120828, 63931, 1194, 3242, 1571, 9555, 8598, 11457, 6169, - 943, 564, 2798, 312, 194999, 11532, 66363, 120161, 8877, 269, 3495, 6272, - 9617, 1460, 8988, 120660, 4891, 195031, 10641, 0, 41119, 41416, 917602, - 4173, 120289, 63786, 120574, 12895, 64955, 41418, 11357, 119022, 120286, - 41415, 6296, 9582, 193, 12188, 917835, 64680, 11428, 1730, 2457, 4493, - 2314, 8427, 1362, 9822, 7703, 8840, 5807, 119054, 120451, 8534, 6658, - 4426, 917796, 41612, 42758, 11497, 7874, 8681, 5220, 120281, 13136, - 119825, 2416, 3310, 10972, 63886, 379, 119215, 13220, 63787, 120449, - 3223, 5517, 1284, 8041, 4549, 120475, 5240, 9811, 10012, 3096, 65239, - 42768, 43040, 8515, 8688, 12866, 64146, 3294, 9501, 119631, 1272, 65485, - 7564, 64654, 7467, 65210, 1467, 10158, 10040, 5288, 9519, 41861, 8132, - 64090, 118899, 12193, 66615, 65493, 3215, 917863, 7710, 1610, 65114, - 12307, 63881, 65682, 66465, 5181, 5275, 120195, 228, 8637, 1501, 66676, - 3789, 5179, 11471, 6225, 10765, 11474, 1725, 66603, 8196, 9352, 12042, - 42752, 917543, 9537, 3961, 5762, 1967, 2605, 4500, 63873, 8104, 4981, - 7474, 3405, 64862, 11667, 10414, 9821, 8141, 9559, 2600, 1557, 7589, - 64851, 64549, 3237, 8631, 2545, 10466, 8541, 917616, 194747, 41866, - 917973, 120430, 42762, 7481, 0, 1650, 262, 1637, 10958, 7901, 3238, - 41945, 65556, 41941, 3308, 65158, 10860, 8614, 65220, 7527, 120624, - 41943, 6419, 120244, 45, 6401, 120022, 8106, 4128, 10065, 64083, 4494, - 9590, 4012, 10395, 917762, 9084, 4537, 8737, 64089, 11004, 695, 739, 696, - 7611, 2620, 42755, 194913, 9227, 7506, 179, 5098, 691, 738, 2853, 7512, - 7515, 3868, 688, 119009, 690, 2548, 737, 974, 2801, 119837, 10854, - 119012, 10034, 3985, 8783, 65860, 9362, 10177, 120247, 4682, 118869, - 12809, 6406, 4685, 3158, 10879, 4389, 4680, 923, 41863, 3851, 292, 13002, - 119845, 119844, 3221, 1763, 64468, 4612, 119851, 119850, 12999, 41219, - 11718, 41314, 10782, 3637, 12996, 119141, 11717, 63922, 10594, 3228, - 11712, 64624, 120405, 10967, 2731, 194721, 9651, 651, 3891, 7696, 66706, - 2337, 1735, 120630, 917891, 4177, 11283, 9089, 66312, 64695, 120580, - 11438, 1860, 2654, 7580, 1856, 7497, 7584, 194722, 66356, 10914, 3458, - 3208, 12975, 8498, 119121, 8949, 3065, 9450, 120472, 1569, 63888, 12534, - 12124, 7690, 119254, 12533, 120251, 6418, 4543, 41471, 917629, 64674, - 42180, 194881, 0, 10859, 917615, 41544, 41689, 63789, 12282, 64909, 6646, - 11790, 8108, 8850, 9238, 5066, 8561, 4573, 13108, 6421, 12791, 119849, 0, - 8257, 12891, 8778, 10630, 12900, 917992, 10950, 8314, 6459, 12790, 8804, - 65092, 41153, 12792, 11342, 42018, 1744, 12789, 10366, 12317, 10137, - 67610, 13164, 10723, 967, 120253, 64546, 12690, 41307, 3257, 65550, 9862, - 1845, 2974, 10446, 11315, 0, 278, 10580, 10089, 870, 66569, 3499, 8609, - 42149, 876, 871, 877, 6002, 878, 42015, 879, 120336, 4563, 65176, 41308, - 7591, 65306, 867, 9520, 872, 8646, 868, 873, 119868, 11514, 869, 874, - 63989, 1940, 875, 790, 220, 65193, 194845, 10678, 10044, 41589, 5429, - 13082, 194585, 6403, 5707, 10393, 120005, 120267, 42067, 41890, 5433, - 10657, 7911, 120266, 1547, 9775, 3959, 119316, 5425, 4977, 2467, 5317, - 5423, 4611, 63843, 8040, 5069, 9679, 4182, 119244, 4676, 120501, 41073, - 4418, 2510, 4628, 10208, 12989, 118784, 10399, 1851, 12186, 119574, - 11908, 120254, 9360, 9083, 13180, 41764, 11601, 12837, 8829, 7711, 64423, - 12115, 67636, 12377, 41281, 8809, 41647, 365, 12056, 10857, 917831, - 41716, 65395, 41228, 119865, 5516, 2845, 7717, 4588, 41717, 63830, 544, - 12045, 2433, 917897, 5515, 3352, 65373, 64377, 65437, 793, 65194, 194740, - 305, 567, 119002, 842, 66627, 8208, 917556, 41695, 1647, 118877, 5608, - 63824, 65407, 818, 5337, 119143, 13278, 65597, 9638, 8061, 8735, 12483, - 120468, 13003, 6667, 10973, 66359, 1372, 118858, 7556, 4969, 1254, 11264, - 989, 64257, 118862, 65228, 6060, 65266, 4326, 2840, 64601, 13068, 194985, - 65242, 3245, 5768, 65601, 949, 119351, 194893, 6148, 8605, 2651, 119634, - 64570, 917912, 119563, 194888, 65106, 120418, 41451, 63871, 41796, 1269, - 6530, 63868, 41777, 6414, 5144, 3226, 655, 752, 4431, 4331, 7452, 3285, - 41834, 5279, 12908, 10336, 8312, 41754, 12091, 671, 250, 7434, 618, 668, - 610, 6428, 7431, 1152, 5256, 640, 41229, 7448, 1067, 255, 3905, 65196, - 9493, 65588, 41014, 10795, 194791, 194741, 120421, 917772, 10653, 41272, - 195001, 13287, 917805, 6560, 9019, 118943, 195052, 65409, 987, 64410, - 5527, 2768, 10684, 3365, 5135, 118924, 12796, 11953, 120412, 65732, 5139, - 346, 11334, 6305, 12609, 4675, 5168, 5530, 5210, 917774, 4627, 8253, - 5208, 1136, 65433, 120587, 5218, 7976, 118864, 11963, 3244, 5529, 0, - 194742, 917794, 5432, 64258, 4041, 8784, 2357, 11521, 5528, 229, 42140, - 65876, 12350, 65848, 119881, 12241, 119197, 4000, 7429, 7428, 665, 7424, - 3206, 7770, 7884, 64853, 0, 65838, 194779, 211, 2509, 7790, 10470, 7861, - 3220, 9156, 64050, 450, 8951, 5214, 10432, 8118, 5450, 10768, 1233, 4661, - 5852, 8984, 66338, 41802, 1708, 1839, 40985, 2623, 10927, 1701, 195064, - 2388, 4698, 41761, 1066, 8361, 4701, 41758, 5444, 2617, 64889, 8267, - 66645, 65610, 194642, 7516, 118958, 2625, 8801, 3053, 4340, 120139, 3631, - 10955, 7850, 120292, 8416, 119977, 4008, 65507, 12644, 12660, 8232, - 12156, 194807, 194624, 41069, 41719, 65812, 12099, 4310, 4336, 6252, 713, - 41068, 7990, 3990, 119203, 65113, 64638, 5017, 13145, 4489, 118959, - 42138, 1030, 5358, 64577, 9513, 10196, 9357, 194764, 1773, 10250, 10258, - 2712, 1635, 7745, 1410, 12077, 64650, 94, 1880, 120149, 194731, 8908, - 559, 118879, 12862, 194984, 10752, 4892, 10876, 64537, 6542, 8732, 8472, - 5777, 1757, 759, 4696, 2586, 65248, 8945, 8466, 3641, 5419, 41803, 42062, - 67596, 118806, 120344, 3668, 65754, 8610, 12226, 7592, 856, 2340, 936, - 13289, 64478, 66631, 1459, 65747, 10499, 2962, 19953, 2321, 1504, 10465, - 41312, 8921, 120548, 7529, 65154, 64525, 41901, 63814, 4113, 2949, 2372, - 336, 194774, 2958, 12152, 5348, 682, 2395, 65252, 13291, 7513, 10593, - 1703, 4013, 64764, 8033, 120064, 65152, 9810, 6534, 4150, 12970, 8318, - 41790, 10109, 41893, 2360, 41794, 12858, 120493, 3999, 3777, 65629, 1965, - 9796, 2411, 11336, 799, 195097, 10276, 10308, 10372, 41714, 8501, 63833, - 2317, 10260, 41317, 65767, 5417, 917969, 10384, 120073, 9353, 917546, - 7753, 2351, 6655, 64489, 6569, 13119, 119812, 41287, 119236, 230, 11293, - 12009, 119813, 4855, 4165, 8746, 5441, 9654, 10288, 10320, 65665, 855, - 120396, 6109, 4784, 12337, 13270, 7786, 10098, 41147, 194570, 63769, 680, - 6274, 10312, 1181, 19915, 3174, 13127, 120011, 64822, 41887, 41444, 4862, - 9735, 6537, 119237, 66650, 3914, 41037, 10828, 9007, 12961, 41039, - 118861, 9033, 6231, 289, 65302, 4694, 11420, 4690, 120654, 42760, 194898, - 4693, 63816, 40987, 4667, 4688, 120591, 8828, 194637, 65763, 1246, 3110, - 19940, 12197, 11021, 4749, 917895, 43035, 921, 218, 64868, 1520, 242, - 4786, 1566, 8217, 8932, 64653, 7834, 10088, 6548, 118908, 64681, 5313, - 951, 8888, 64534, 4816, 7604, 43032, 4009, 194694, 194717, 65440, 41549, - 119069, 12340, 119138, 119887, 4689, 119888, 4048, 120158, 119209, 6507, - 1646, 41755, 119891, 4040, 194734, 65118, 68134, 2579, 119905, 3177, - 8207, 9099, 4107, 120130, 119894, 662, 120706, 9244, 66623, 13059, 10084, - 120339, 65669, 65836, 10179, 41929, 3399, 9851, 40991, 8739, 9059, 0, - 7687, 64637, 8854, 40993, 52, 13241, 6475, 917901, 120444, 1777, 9151, - 1137, 118914, 749, 65169, 120584, 5385, 3978, 65842, 120283, 11592, 5989, - 65827, 10170, 65013, 6544, 41685, 64702, 119365, 8425, 41684, 917780, - 519, 10369, 11740, 1585, 194987, 9888, 422, 1500, 10305, 986, 41170, - 3666, 5781, 5599, 3098, 2494, 120202, 4861, 0, 64334, 63986, 6558, 64818, - 41221, 42165, 8961, 252, 10243, 10245, 63936, 917505, 120398, 194707, - 63751, 9478, 2508, 9060, 119587, 202, 10761, 119114, 1242, 12899, 120447, - 11734, 63940, 11730, 917937, 9593, 10543, 2403, 12979, 64609, 0, 9787, - 2504, 9784, 41024, 7764, 42076, 9514, 64132, 5859, 119259, 2858, 8298, - 12333, 65040, 65478, 9691, 4971, 12992, 2753, 1936, 917877, 8456, 2751, - 12662, 2763, 8953, 42104, 10731, 7774, 4780, 9792, 63990, 194753, 194871, - 194693, 118927, 2856, 10019, 47, 10482, 2823, 4365, 120629, 917551, 3647, - 7899, 2602, 8417, 65903, 917558, 41135, 118824, 4033, 118854, 194761, - 172, 194720, 212, 41137, 1889, 12320, 6545, 64623, 917859, 7597, 8915, - 2759, 945, 3732, 120230, 917567, 5344, 194851, 1291, 11485, 9062, 119252, - 9531, 13155, 8505, 64479, 12062, 119018, 64703, 65487, 42065, 10900, - 10370, 1263, 3720, 12048, 63935, 64292, 41524, 64692, 12652, 6099, 41534, - 64133, 63933, 64426, 299, 65540, 118859, 63951, 3524, 12933, 8831, 65752, - 8674, 3075, 119890, 8245, 917867, 12624, 120559, 1673, 4811, 63928, 5845, - 9338, 3046, 65414, 2581, 4001, 41811, 9820, 64098, 12187, 5551, 68114, - 5984, 63791, 120687, 4393, 10566, 68182, 8680, 65555, 118851, 2588, 5422, - 65900, 43028, 3491, 2471, 917626, 2883, 2749, 63921, 195054, 7492, 7740, - 119355, 119134, 675, 120551, 63924, 194568, 7502, 6219, 63926, 65726, - 41232, 9329, 63925, 7610, 219, 63945, 41330, 692, 65200, 120775, 9240, - 3181, 9688, 119816, 1222, 65775, 8262, 11785, 64530, 0, 64610, 3092, - 12092, 9615, 7453, 120128, 8013, 119857, 120456, 195019, 8895, 5253, - 65774, 5458, 917816, 922, 65923, 119318, 11338, 194930, 3218, 12618, - 63997, 120469, 11664, 8962, 8569, 9641, 11932, 12202, 3214, 120461, 9604, - 12053, 3207, 120465, 63826, 1901, 63939, 120141, 63825, 2844, 3205, - 41974, 41286, 12139, 65666, 64708, 119580, 3358, 2606, 119364, 3104, - 2608, 11496, 1173, 10901, 5308, 120079, 290, 917988, 11779, 2862, 2792, - 64498, 66371, 378, 2610, 66591, 65079, 6552, 65372, 66707, 37, 64195, - 120154, 1814, 64860, 3209, 118843, 120804, 10638, 9768, 64648, 917984, - 66372, 7606, 2591, 2837, 4341, 41403, 64105, 42159, 5233, 65270, 64792, - 120794, 3570, 9112, 119948, 863, 9490, 63761, 1685, 595, 12715, 118871, - 1292, 6222, 65705, 3654, 66638, 9637, 120268, 2535, 6541, 119181, 10656, - 120246, 3243, 9014, 5606, 63762, 538, 11006, 5602, 7807, 8073, 6547, - 10629, 8203, 63994, 3056, 8458, 41778, 8495, 8762, 10508, 917552, 779, - 9818, 64367, 2465, 3463, 8193, 65721, 9730, 8695, 4738, 11322, 5811, - 4346, 64904, 194735, 504, 64321, 10899, 8982, 119954, 0, 0, 782, 4867, - 10883, 1262, 64771, 732, 3737, 194954, 1548, 13151, 120589, 1832, 5604, - 5611, 41141, 7460, 4376, 64612, 11991, 3745, 41738, 10011, 1502, 65712, - 194670, 3869, 11937, 5702, 3655, 1783, 119899, 5728, 120564, 13285, - 42174, 11918, 9603, 5724, 5254, 5727, 7724, 119573, 119901, 764, 5129, - 120655, 120460, 10597, 7579, 5614, 5893, 6223, 11720, 42073, 11423, - 119863, 64409, 119862, 4792, 917770, 1964, 6559, 11726, 12146, 65378, - 10687, 43019, 119629, 894, 300, 65744, 10037, 12223, 118936, 1478, 9783, - 2562, 2607, 64740, 64830, 0, 11652, 917627, 11777, 41780, 6132, 64946, - 5096, 5095, 2863, 3424, 0, 10454, 68146, 5094, 10093, 4369, 13156, 12306, - 5401, 5093, 119909, 12004, 65251, 5092, 526, 11327, 41295, 5091, 176, - 41691, 8985, 4104, 119911, 6285, 1215, 11985, 5744, 12272, 9832, 65590, - 3713, 13218, 41191, 119343, 8980, 118988, 12293, 8844, 7433, 11794, - 42036, 4278, 1737, 8987, 12917, 195068, 9074, 4348, 9335, 7760, 118991, - 6553, 10339, 5255, 1786, 661, 120126, 5475, 917876, 41854, 68102, 194754, - 12419, 1160, 1267, 68143, 41217, 65858, 10018, 360, 67586, 3621, 64635, - 5863, 3137, 11345, 6562, 12928, 41216, 1228, 2616, 119190, 64401, 65234, - 10745, 1714, 3135, 120637, 120143, 0, 3142, 119186, 119995, 10819, 64163, - 6577, 65772, 64, 1470, 194566, 10291, 6227, 2826, 41749, 66433, 119864, - 6163, 9708, 13250, 0, 42011, 41224, 8603, 12206, 5839, 1702, 1240, 41461, - 6286, 119882, 5834, 66451, 3858, 119089, 1765, 12086, 42001, 1600, 13228, - 64729, 0, 8401, 120520, 11310, 9282, 8882, 118929, 10479, 2570, 2852, - 5367, 4601, 120818, 64075, 1234, 6540, 13115, 66310, 12667, 194686, 5002, - 10147, 12935, 917601, 194965, 118829, 194672, 8163, 6551, 12727, 120744, - 120533, 41289, 0, 13129, 2864, 8977, 602, 10435, 9395, 41675, 119554, - 2765, 64540, 41279, 120414, 65924, 0, 119922, 66662, 119220, 10887, - 65206, 118963, 64920, 66593, 63914, 12150, 263, 120012, 41288, 917982, - 9633, 10886, 119042, 7831, 12067, 10381, 917978, 11484, 8076, 43048, - 8290, 8291, 43051, 65833, 11616, 2596, 10852, 10285, 13113, 120711, - 42019, 2393, 8766, 9087, 750, 65232, 41574, 10163, 11015, 63913, 10441, - 5954, 10225, 4314, 65856, 198, 917956, 730, 41441, 7819, 120199, 917555, - 13165, 1720, 63905, 8619, 678, 6529, 68122, 41654, 3751, 917769, 119923, - 4262, 1798, 709, 917841, 1354, 1876, 13152, 6557, 3892, 8137, 10449, - 120035, 120428, 41470, 245, 41045, 11456, 41233, 64801, 120315, 497, - 6136, 5953, 65677, 7796, 41235, 65434, 42045, 9804, 8449, 432, 1281, - 64355, 65393, 64339, 10677, 604, 7511, 9120, 1859, 65541, 10460, 3425, - 917870, 65782, 2836, 8797, 8490, 9052, 64888, 120206, 2356, 95, 64786, - 1738, 120415, 194654, 2832, 64640, 9670, 6096, 917871, 64918, 65151, - 10063, 2822, 12199, 4436, 194852, 2566, 11971, 12090, 13064, 1065, 1331, - 119097, 0, 2576, 12708, 41142, 5090, 5089, 120263, 9505, 67595, 514, - 41692, 319, 2921, 11659, 9477, 5772, 12968, 5087, 118822, 41310, 96, - 2580, 0, 10522, 41223, 5085, 1463, 41342, 11346, 5293, 10550, 64389, - 3733, 3772, 13090, 12054, 4748, 12482, 64300, 12575, 13091, 63982, - 194794, 6677, 7601, 119078, 41413, 64419, 118953, 195086, 195100, 66648, - 118945, 64597, 10939, 6106, 65757, 1270, 1132, 120746, 4534, 41270, - 66655, 9224, 65574, 66331, 64761, 917881, 3671, 8510, 120695, 65770, - 41275, 120823, 917935, 10807, 7963, 42012, 119877, 568, 65227, 6187, - 13109, 3854, 41479, 13141, 9715, 66696, 8258, 13253, 4185, 41334, 65148, - 8871, 42, 8509, 0, 4102, 120258, 7458, 118995, 65863, 2353, 6308, 41604, - 7457, 2611, 7456, 41021, 120563, 194631, 66336, 8045, 11550, 12946, 4484, - 8747, 118976, 11789, 41065, 5557, 11990, 9737, 13216, 3747, 9467, 5291, - 8878, 1691, 41226, 7451, 7435, 10146, 10905, 9086, 64566, 697, 194675, - 628, 7454, 12594, 65261, 10468, 4546, 7731, 65256, 12010, 0, 120598, - 3805, 64304, 64293, 120284, 9844, 68111, 6307, 19949, 0, 7544, 12166, - 64697, 10516, 120074, 10152, 12648, 10354, 0, 7602, 5785, 41309, 9764, - 41316, 65877, 194640, 13230, 41299, 5559, 119835, 8704, 2397, 5556, 9877, - 66368, 13122, 9011, 191, 9630, 41837, 42040, 5506, 119842, 120697, 64850, - 41072, 12598, 8845, 41577, 194790, 10002, 8889, 6533, 11620, 41570, - 41838, 683, 396, 41580, 12526, 917610, 12901, 12351, 65115, 343, 7552, - 120553, 41360, 9898, 10481, 4559, 0, 1956, 118857, 917836, 64048, 1724, - 1210, 119323, 9412, 3739, 6263, 1886, 194869, 3964, 6592, 38, 8533, 9234, - 10947, 65073, 13063, 194752, 1778, 3956, 65091, 42070, 6563, 119324, - 8743, 8369, 11739, 10941, 12467, 65722, 5547, 66618, 120432, 120513, - 8175, 8843, 284, 2429, 934, 5696, 917996, 173, 65560, 8652, 12699, 11650, - 1750, 120709, 4394, 65056, 1807, 6613, 12606, 64528, 5889, 63783, 917949, - 64714, 41848, 11516, 12162, 12120, 12478, 1721, 7767, 7891, 65864, 10563, - 2583, 4512, 63973, 2462, 7693, 1837, 10434, 3855, 8107, 41337, 63972, - 4952, 65413, 64405, 5504, 41340, 3975, 65715, 65716, 65420, 12672, 3798, - 2703, 194709, 64347, 9349, 9774, 41847, 1127, 455, 41095, 3962, 10100, - 3483, 41101, 3954, 6457, 4513, 9104, 3503, 7688, 41298, 1468, 65386, - 1864, 41851, 63970, 41446, 2540, 7736, 41080, 41849, 917619, 4320, 3224, - 12909, 9705, 41565, 8604, 118903, 1510, 11306, 6149, 3887, 11393, 1411, - 2824, 194708, 10106, 8770, 1403, 120811, 1347, 9631, 8671, 65737, 4283, - 64074, 119936, 8640, 13124, 258, 1654, 41408, 8858, 65738, 42139, 3741, - 42761, 4042, 4581, 2873, 11617, 11522, 120114, 8549, 10861, 194784, - 41673, 64829, 1733, 4392, 2568, 10786, 63983, 67629, 376, 41486, 9221, - 64871, 119907, 8823, 41222, 12857, 6217, 7965, 4896, 64911, 10154, - 119108, 41350, 8301, 118823, 7446, 1684, 64501, 10974, 458, 41199, - 917562, 917576, 194798, 11916, 340, 119000, 12298, 10864, 119918, 12288, - 120287, 4388, 1493, 10521, 7553, 4097, 194971, 13080, 11656, 65808, 6610, - 6030, 8059, 3210, 13131, 119073, 194827, 13301, 8794, 41278, 41629, - 12154, 119131, 9461, 64658, 1186, 41571, 6625, 617, 9464, 12691, 3675, - 5207, 63955, 5213, 118896, 833, 41348, 41568, 917775, 3253, 63954, 41088, - 8630, 6062, 41440, 5596, 5545, 119313, 933, 1341, 9842, 5217, 194886, - 8942, 40962, 194730, 68126, 9905, 2635, 64504, 65130, 12620, 7493, - 917577, 7835, 41434, 9002, 19918, 194770, 64558, 194974, 9716, 19954, - 5651, 5990, 900, 5784, 194775, 9317, 119057, 3612, 4011, 64376, 41953, - 5389, 7864, 917548, 65336, 2839, 5600, 3903, 65609, 10447, 3749, 1207, - 7569, 194980, 3501, 194685, 64705, 4403, 19962, 1124, 5597, 195009, - 119921, 9321, 4429, 65810, 120515, 119072, 1719, 7598, 546, 9671, 1125, - 4399, 9542, 472, 7716, 8452, 5488, 41946, 42025, 194903, 5491, 3602, - 8328, 41182, 2604, 41949, 5490, 41183, 5489, 8522, 10287, 684, 6300, - 194777, 2854, 119586, 4390, 454, 7823, 65750, 9875, 7593, 65338, 119310, - 120625, 64487, 8478, 9881, 2394, 2575, 3415, 3746, 11016, 8648, 66515, - 65421, 43047, 119092, 11989, 65142, 418, 65025, 66378, 10295, 8249, - 10391, 41752, 4565, 6640, 41449, 2598, 513, 120763, 6586, 8656, 65826, - 1024, 11621, 7961, 120809, 8941, 917563, 4554, 11681, 9023, 11682, - 120788, 10176, 10964, 119315, 11437, 9509, 0, 1036, 12850, 917787, 1723, - 120577, 9049, 41185, 41579, 2444, 11680, 10705, 11686, 118792, 65224, - 63804, 740, 63963, 120113, 118874, 120681, 5300, 10407, 9459, 194739, - 1875, 66466, 7856, 8121, 10438, 5524, 41698, 2860, 12157, 5238, 120797, - 5690, 5743, 10424, 12065, 65805, 7578, 65859, 195051, 8875, 8694, 9506, - 13254, 5575, 12847, 2413, 68099, 119340, 962, 12176, 1122, 317, 9040, - 119116, 1582, 119251, 1920, 41477, 10173, 827, 10801, 195096, 118798, - 120401, 5223, 496, 10439, 4313, 5226, 12602, 7860, 120627, 906, 7758, - 2842, 6405, 5224, 5487, 798, 5692, 12801, 7791, 1153, 5695, 12100, 64627, - 8054, 9174, 120131, 5691, 287, 866, 233, 4642, 66574, 11556, 7514, 66436, - 65140, 42089, 8830, 9008, 120417, 10524, 41175, 42079, 7587, 65709, 5296, - 120505, 10688, 10663, 917814, 3302, 66478, 6437, 6516, 6515, 6514, 6513, - 6512, 41798, 3920, 8690, 119590, 41201, 12122, 4580, 6568, 6116, 1785, - 41965, 120635, 3021, 42004, 5138, 120129, 194587, 41998, 41867, 4540, - 41179, 194804, 6200, 11462, 5134, 42021, 322, 4643, 5132, 42010, 194988, - 43008, 5143, 64875, 8790, 917807, 65594, 64604, 6626, 8869, 66510, 64400, - 42060, 19908, 9878, 194814, 41133, 10270, 10286, 10318, 10382, 65671, - 4110, 120507, 11286, 10929, 64277, 3234, 66703, 13058, 8617, 41982, 6025, - 120736, 12805, 8767, 194580, 194690, 9597, 41283, 5201, 120293, 6215, - 12714, 6214, 13101, 65282, 120490, 65268, 120504, 64524, 120215, 187, 0, - 10059, 10511, 4963, 9767, 789, 1749, 7441, 64574, 9901, 320, 41948, - 41833, 194831, 3049, 41139, 6471, 9449, 10081, 10528, 42121, 118894, - 120562, 4960, 5549, 119359, 65882, 8485, 4671, 1189, 905, 480, 10985, - 10240, 10610, 5414, 3064, 1745, 4286, 5421, 5427, 9554, 119077, 66357, - 65465, 6653, 8806, 42047, 9442, 6213, 9443, 9436, 7867, 11613, 6236, - 42052, 195070, 2406, 119858, 11430, 4566, 348, 5474, 3801, 3103, 10406, - 5246, 5236, 64395, 195059, 5200, 64305, 41739, 41733, 64518, 10931, - 13181, 41402, 395, 5391, 5198, 8786, 9428, 41259, 5196, 120037, 2691, - 42009, 5205, 41244, 5562, 917578, 118973, 41262, 66364, 64421, 119615, - 41251, 9126, 435, 3979, 12014, 12893, 8093, 9079, 3203, 192, 119912, - 3385, 41266, 64430, 5383, 10294, 10326, 65741, 5738, 9574, 2666, 119861, - 5361, 831, 419, 8256, 10716, 7872, 64583, 66688, 1260, 3149, 5359, 7766, - 6432, 7914, 5357, 916, 769, 2624, 5364, 64739, 6433, 5563, 547, 1943, - 6439, 5560, 4994, 487, 119553, 4497, 3754, 120082, 120615, 9039, 10619, - 41776, 194797, 8716, 41622, 40983, 64072, 41516, 0, 9319, 195024, 41376, - 11610, 3232, 12185, 119928, 119331, 65905, 119347, 41889, 64071, 8634, - 1161, 41895, 118804, 9701, 8622, 41385, 120403, 65612, 120588, 669, 5679, - 41362, 43011, 64210, 11921, 42087, 5678, 120750, 66489, 41364, 460, - 64636, 41352, 41361, 194824, 41366, 0, 3356, 6178, 917, 7799, 118812, - 64068, 7782, 9044, 4974, 677, 119916, 7577, 64189, 41507, 1216, 12504, - 11952, 3349, 194683, 12296, 8927, 4739, 3738, 5802, 120474, 5683, 10368, - 120661, 491, 1549, 119621, 194659, 0, 5682, 6206, 8670, 9891, 5680, - 64297, 10001, 7586, 65580, 1449, 10241, 3768, 65255, 3776, 9095, 7741, - 12684, 41885, 1046, 120547, 5567, 2717, 4620, 5171, 5564, 41967, 41908, - 41786, 5565, 12819, 12578, 64743, 65708, 5169, 5566, 3465, 64694, 3175, - 11904, 1537, 119155, 5176, 5942, 8468, 4871, 10361, 10425, 65697, 65698, - 41991, 1128, 65920, 10548, 9711, 10647, 9408, 9409, 9410, 457, 3662, - 9413, 1934, 9415, 9416, 8802, 9418, 8909, 9420, 9421, 5897, 9423, 5165, - 5126, 9889, 8043, 8950, 65694, 8955, 3374, 9400, 9401, 9402, 8939, 9404, - 3507, 9406, 9407, 119241, 19925, 9499, 10035, 183, 65078, 2631, 119308, - 10636, 41130, 64958, 3996, 120650, 64675, 1667, 41584, 65486, 41582, - 6580, 4332, 64825, 10741, 10726, 12912, 11281, 5899, 8101, 3610, 12085, - 41748, 574, 955, 120092, 5340, 5350, 41058, 5446, 63799, 10875, 64796, - 5442, 65692, 12437, 9782, 5451, 12896, 3616, 64857, 917959, 3874, 7708, - 64370, 5505, 65867, 10345, 10409, 65603, 11909, 65687, 43015, 41038, - 120719, 120561, 4447, 8536, 64701, 65143, 66661, 120194, 724, 42048, - 1455, 205, 917593, 10351, 64618, 8571, 4175, 6588, 119059, 120380, 939, - 41355, 4743, 119154, 5503, 8021, 64622, 119150, 9819, 41357, 8011, 6088, - 5507, 12044, 190, 120282, 10026, 4356, 8188, 1191, 13106, 4417, 10329, - 5476, 8991, 195008, 7827, 120361, 5829, 8550, 67627, 5592, 2919, 64925, - 2675, 5595, 917967, 7918, 4367, 194626, 65554, 5478, 1728, 5594, 120710, - 178, 12972, 5590, 10727, 13067, 118909, 65254, 917941, 9731, 120600, - 64633, 917987, 12113, 13065, 118863, 9252, 12278, 4652, 119041, 12349, - 65907, 194704, 120688, 12887, 10551, 10710, 194833, 195017, 64663, - 120570, 41804, 5199, 9497, 1120, 11429, 8333, 1444, 9486, 7554, 13142, - 4538, 65096, 1442, 6177, 5894, 917833, 11910, 13224, 8278, 5591, 4034, - 9452, 65389, 3334, 64003, 41747, 10708, 194571, 8677, 118828, 1651, 9350, - 8861, 120040, 8836, 1142, 12747, 4396, 10928, 66705, 8922, 8856, 66611, - 4002, 119188, 10442, 10676, 3344, 11012, 64963, 10813, 2592, 12853, - 120242, 66642, 3438, 6536, 7871, 120239, 65516, 12321, 68141, 118890, - 120389, 10007, 11784, 9588, 10126, 4700, 11308, 41994, 65801, 8661, - 41721, 66572, 12240, 119876, 4973, 5573, 12588, 9629, 40981, 119176, - 118981, 5006, 64328, 42002, 64754, 41766, 8825, 13016, 195062, 0, 10346, - 6107, 42093, 9243, 2464, 194677, 6108, 3372, 335, 6247, 64689, 438, 4510, - 5765, 8721, 119878, 4036, 6092, 11654, 65914, 8876, 10303, 8096, 10284, - 3354, 10268, 119830, 9289, 8689, 10316, 3876, 10335, 9725, 42044, 11783, - 917893, 119581, 8050, 120030, 195025, 11603, 194820, 120053, 6589, 843, - 120419, 119260, 120770, 195053, 10117, 66560, 41902, 12829, 6312, 215, - 1963, 13225, 13192, 1953, 9579, 7550, 1256, 3910, 13015, 6242, 41329, - 9662, 41257, 41900, 3366, 10700, 8805, 1742, 5542, 9333, 8202, 120459, - 120232, 41611, 65895, 120159, 120385, 499, 118846, 8593, 119627, 917974, - 41169, 1712, 5932, 8097, 41642, 11519, 119562, 11967, 1775, 65296, 41243, - 118957, 5662, 416, 9458, 64687, 6470, 195081, 66675, 10984, 64386, 64672, - 65274, 12880, 195083, 41172, 41254, 64758, 120669, 41062, 194825, 9006, - 65446, 565, 41760, 5794, 201, 2662, 9419, 11332, 8254, 41726, 10975, - 120173, 1021, 65131, 1022, 4108, 3880, 8023, 1200, 12243, 194991, 5282, - 7507, 41881, 11545, 5891, 64406, 3343, 1636, 67587, 1885, 65024, 3896, - 195056, 9674, 2947, 99, 98, 97, 120571, 64414, 4049, 8221, 64085, 3381, - 194978, 7892, 120705, 10777, 194687, 5867, 3913, 66376, 66722, 64315, - 8039, 1265, 4316, 6309, 118815, 12969, 12596, 66595, 11791, 12541, 5593, - 67585, 5998, 9163, 12300, 6061, 64854, 119, 118, 117, 116, 8930, 122, - 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, 102, 101, 100, - 107, 106, 105, 104, 6436, 194788, 534, 41212, 119599, 1536, 12114, - 120381, 64287, 64936, 64324, 6020, 12716, 10561, 10075, 475, 118888, - 13266, 9144, 64590, 917580, 118887, 65749, 10645, 1212, 5079, 119619, - 8134, 8483, 2913, 6624, 4908, 1866, 1639, 119189, 194762, 8923, 1645, - 12059, 64505, 917977, 194664, 41503, 4817, 5935, 1250, 194727, 8174, - 9600, 9856, 9859, 7916, 9861, 5343, 5258, 1882, 1892, 11304, 10882, 405, - 11454, 4659, 12343, 657, 12610, 4970, 4461, 1134, 1838, 1454, 41242, - 6477, 4468, 5987, 65803, 9762, 4456, 5206, 10720, 194625, 10480, 41718, - 5818, 194773, 8264, 10229, 260, 645, 119827, 7609, 40973, 4821, 4466, - 120500, 5824, 984, 119027, 8791, 5851, 5705, 7729, 41166, 10591, 41797, - 119983, 65438, 66580, 119984, 42101, 41404, 1165, 7879, 4451, 11401, - 194849, 11284, 119987, 66566, 41909, 43014, 2791, 9363, 9552, 3375, 8641, - 5900, 7539, 7889, 2722, 194854, 13173, 2381, 11602, 10994, 10529, 10773, - 11574, 8644, 11581, 12425, 10661, 10856, 9614, 194917, 41478, 11571, - 10064, 8308, 10748, 66695, 11005, 4868, 119162, 1952, 41406, 8455, 10082, - 11575, 8467, 12577, 12721, 5182, 12183, 6145, 41759, 64929, 4465, 42120, - 12135, 5732, 4464, 7728, 3922, 977, 4458, 120043, 120545, 64770, 119556, - 3353, 344, 917963, 41626, 1395, 41939, 65832, 5776, 8558, 786, 65153, - 120191, 64340, 119352, 10202, 120084, 41027, 7612, 10132, 64413, 120087, - 12840, 119119, 119913, 119314, 119139, 63862, 41896, 8657, 194996, 8594, - 10204, 195049, 120477, 120069, 65819, 1399, 41375, 120056, 917938, 8852, - 64492, 241, 68135, 4907, 194757, 9738, 194975, 9727, 7851, 119196, 10951, - 4439, 11588, 119199, 65008, 9085, 65853, 41911, 9327, 6160, 917594, 8650, - 64865, 8088, 64933, 41910, 118872, 65217, 3965, 120050, 194713, 0, 13300, - 65902, 66654, 65491, 65145, 9041, 65847, 65017, 7504, 4420, 9900, 6410, - 7501, 11278, 65825, 9577, 120047, 13217, 8748, 65415, 0, 9867, 9066, - 12924, 11993, 917829, 2626, 7762, 10902, 7510, 119577, 41526, 64285, - 10472, 2995, 120704, 12907, 41184, 2371, 194994, 10038, 259, 1009, - 118838, 2402, 2333, 6440, 194768, 12050, 65125, 0, 12417, 65380, 9103, - 10181, 3148, 65873, 6434, 7779, 10198, 194952, 9479, 6029, 65325, 65157, - 9689, 41261, 119175, 8993, 8613, 0, 41167, 3368, 606, 41492, 7697, 10228, - 41596, 1890, 194769, 6027, 8370, 4322, 41661, 7991, 66512, 10578, 119168, - 41465, 41054, 2735, 41664, 120330, 63778, 65273, 1287, 65408, 6635, - 66659, 6164, 194563, 41273, 917951, 65027, 41271, 9576, 65043, 3347, - 4160, 5154, 917541, 3794, 66564, 9175, 11925, 7709, 9088, 3743, 65099, - 1396, 4572, 7546, 3847, 66327, 65081, 4985, 1615, 672, 809, 12980, 63806, - 0, 65218, 5799, 41615, 65072, 1577, 194934, 65875, 5928, 4525, 10658, - 65911, 1266, 10180, 120702, 6129, 12622, 9347, 917986, 6532, 64424, - 41048, 7789, 773, 19933, 1539, 283, 64416, 66374, 532, 917800, 120049, - 41115, 3051, 5862, 3370, 120789, 43033, 5439, 3250, 8153, 0, 66649, 9510, - 120279, 64647, 9541, 118916, 41066, 64706, 194612, 43038, 3505, 8707, - 9466, 11479, 8537, 120802, 3626, 3471, 194860, 915, 194689, 6686, 119584, - 120238, 5011, 42754, 120723, 41906, 65569, 119128, 119552, 64365, 119886, - 3225, 68161, 4433, 5186, 194957, 41933, 1443, 4381, 9829, 65124, 10926, - 194746, 195076, 64879, 10562, 194751, 65476, 64579, 66456, 10021, 5160, - 1387, 65495, 6103, 118923, 41480, 12786, 195000, 217, 119898, 11714, - 12466, 10443, 10789, 41158, 41460, 1630, 120782, 41483, 65818, 12565, - 41700, 10077, 12890, 5931, 194732, 9283, 7700, 41252, 6042, 65499, - 119637, 41249, 512, 2990, 917786, 120240, 6413, 917985, 632, 12940, - 194875, 41296, 9545, 41291, 5957, 120353, 8926, 3511, 41282, 5923, 10400, - 10174, 12073, 760, 5386, 4274, 5786, 10633, 120531, 5056, 119860, 417, - 41474, 120773, 11022, 9812, 5934, 4460, 66583, 119231, 64877, 65410, - 64481, 194692, 194705, 10937, 194748, 120218, 10509, 65829, 917540, 2953, - 5819, 1801, 12835, 194942, 120484, 194743, 65910, 41985, 8867, 702, - 120410, 1237, 10274, 4552, 65447, 119966, 194961, 1375, 12106, 120815, - 10264, 1755, 9065, 9228, 10376, 1163, 2951, 7840, 64336, 13282, 10252, - 120033, 3384, 120703, 10167, 830, 194656, 65425, 10769, 8451, 41368, - 12520, 9753, 120147, 8944, 194882, 120248, 10473, 2908, 119614, 19965, - 43025, 10299, 65041, 12097, 64733, 12952, 4441, 10503, 917839, 41430, - 9330, 194859, 6614, 411, 10315, 9676, 4996, 120213, 13281, 10009, 7865, - 2730, 10388, 9677, 5428, 118993, 3364, 7565, 12828, 41711, 118816, 65463, - 9535, 216, 10332, 1401, 119895, 622, 65095, 885, 64772, 1602, 4467, - 41405, 852, 119635, 12108, 41328, 484, 65187, 41051, 12071, 9609, 9806, - 41008, 3338, 120796, 572, 10411, 2736, 10255, 10263, 10279, 2794, 8807, - 64491, 10330, 4315, 5222, 5381, 119058, 917995, 5193, 5125, 5456, 5509, - 41177, 917832, 9534, 195042, 64431, 1603, 3430, 118982, 10298, 120407, - 917885, 981, 41176, 4330, 994, 65841, 1824, 10908, 917879, 41681, 41683, - 5921, 65600, 2597, 3957, 5922, 64547, 65784, 674, 119839, 194945, 2946, - 5354, 5251, 4406, 5307, 3759, 10131, 8364, 5123, 1433, 5281, 5469, 5121, - 5924, 5920, 65758, 5130, 64606, 66481, 119624, 8418, 7576, 1221, 2733, 0, - 742, 5216, 2893, 10772, 65276, 5937, 3468, 2553, 9230, 5939, 3997, - 195091, 8363, 120677, 2993, 7772, 3916, 10289, 64613, 1141, 41706, 8159, - 718, 7572, 973, 9666, 120718, 3235, 2415, 5938, 119620, 8018, 12448, - 120556, 9592, 10337, 194918, 917622, 11729, 120727, 8719, 1202, 195080, - 64651, 12983, 118970, 12165, 119095, 63747, 9067, 3260, 8077, 65388, - 68179, 8419, 63773, 65419, 63774, 194986, 63775, 10725, 10433, 64496, - 194861, 1431, 41843, 66565, 10821, 4359, 12804, 12192, 8229, 1235, 3307, - 11472, 120617, 3146, 4544, 9009, 8551, 118820, 1740, 194749, 7575, 985, - 2724, 13076, 65233, 12068, 119949, 515, 10141, 119944, 9539, 8785, 4476, - 119146, 10959, 12655, 8907, 13226, 4589, 4521, 64205, 9141, 64645, 10665, - 2741, 41572, 6197, 1370, 10101, 41573, 64294, 3931, 194924, 120585, 6184, - 8606, 3303, 11968, 11786, 9473, 13103, 63771, 8879, 11593, 66508, 4478, - 917588, 41735, 65837, 717, 10754, 4477, 120376, 814, 42066, 119962, - 63767, 1780, 41031, 119958, 41387, 819, 10611, 9694, 11955, 65919, - 119953, 41111, 9462, 119071, 7788, 4847, 65542, 6578, 8338, 7523, 120666, - 1581, 6535, 7525, 3346, 430, 64698, 66699, 575, 268, 194940, 4945, 66463, - 4950, 12918, 9456, 8336, 5936, 43017, 5964, 8337, 13081, 308, 917964, - 7522, 64309, 41746, 4949, 118946, 443, 11658, 4944, 5467, 65885, 5926, - 1862, 6044, 65392, 8820, 4946, 119247, 9038, 7887, 65667, 7830, 11651, - 13093, 2698, 41144, 65742, 12072, 41753, 11590, 41304, 824, 120095, 8595, - 65225, 42141, 11415, 4673, 41354, 4678, 13283, 12697, 65059, 12381, 3488, - 5933, 5481, 3490, 1199, 65014, 8356, 12297, 119153, 1955, 12375, 3102, - 10474, 4672, 118849, 119821, 5531, 119823, 119826, 66332, 8835, 4674, - 119006, 5831, 194932, 64896, 12379, 8025, 119947, 64542, 1855, 11957, - 5472, 64425, 7852, 119867, 64951, 120467, 11445, 2745, 5470, 65171, 9124, - 119110, 4654, 65289, 291, 120762, 12688, 10525, 4649, 65209, 11797, - 12647, 4648, 4640, 64713, 10224, 64902, 6246, 64950, 7828, 4650, 41464, - 917624, 119086, 4653, 7822, 120331, 12923, 65674, 8669, 194655, 10729, - 43031, 5778, 6302, 2716, 194606, 12680, 119130, 1417, 10916, 917569, - 6441, 8547, 2711, 11552, 120798, 64953, 7992, 12429, 41907, 4662, 65453, - 120408, 9149, 9146, 599, 4641, 9179, 64819, 63782, 4656, 10130, 41469, - 7811, 40994, 12426, 4646, 5967, 865, 3725, 5713, 5814, 4645, 42033, - 120422, 41756, 13132, 64728, 9026, 10833, 64673, 1659, 919, 41935, 1671, - 11459, 3054, 9219, 9744, 1661, 7605, 4622, 119087, 10140, 9713, 12427, - 41938, 66674, 9045, 2306, 10485, 19926, 6068, 10612, 10401, 4617, 119596, - 120463, 41462, 4616, 10518, 10423, 10359, 66491, 5958, 917842, 9564, - 4618, 826, 65577, 4321, 4621, 195048, 41313, 522, 5368, 1808, 7848, - 194992, 5366, 12201, 5372, 10913, 12668, 917781, 4391, 64331, 2696, - 120155, 11003, 4638, 64490, 1790, 66304, 167, 10921, 9791, 917631, 9840, - 5376, 1835, 5335, 10313, 41370, 4633, 64320, 10265, 1180, 4632, 43009, - 5387, 5333, 64256, 12903, 41, 5331, 1792, 11928, 41548, 5338, 4637, - 120373, 5971, 4289, 120393, 385, 4152, 2585, 194605, 10909, 3126, 1427, - 65551, 10957, 5970, 3431, 64890, 10358, 7531, 4758, 917573, 1608, 2738, - 7443, 10455, 4753, 917854, 11344, 65729, 6240, 5231, 119013, 12147, - 65216, 6248, 0, 2593, 8463, 7810, 65807, 5229, 4757, 65192, 66581, 2728, - 4411, 64563, 65235, 5234, 41124, 120424, 9580, 10066, 9746, 119559, 2622, - 6033, 13061, 8016, 41196, 8954, 64831, 65189, 2632, 12390, 10108, 1011, - 5574, 1853, 2709, 65139, 5577, 42091, 41165, 393, 12450, 8965, 11458, - 42177, 5316, 917940, 171, 5941, 5572, 68127, 5312, 12531, 5525, 5330, - 5319, 10043, 65710, 42080, 8937, 63798, 12454, 7548, 42132, 12063, - 917991, 64343, 3230, 0, 10350, 10644, 5209, 297, 5721, 12109, 8415, 8632, - 10102, 11267, 120219, 2497, 5720, 960, 1692, 42146, 4610, 8696, 4292, - 64760, 4609, 10512, 4614, 541, 194890, 5287, 5309, 2503, 119243, 1762, - 4647, 56, 10743, 5844, 41381, 601, 4613, 10194, 4663, 1899, 4608, 2507, - 11025, 5190, 67628, 63759, 68145, 11405, 8892, 120348, 67620, 66639, - 2734, 5782, 420, 64368, 63795, 41649, 10797, 5960, 63797, 8992, 65293, - 41238, 1782, 12814, 8959, 12525, 10686, 41383, 5501, 41842, 3650, 7442, - 120749, 359, 4183, 119957, 6239, 12787, 41256, 329, 66582, 12573, 120452, - 7437, 9346, 41188, 13196, 7439, 42167, 3767, 5737, 5380, 4865, 195047, - 1155, 120434, 5736, 4368, 64724, 63749, 68137, 5601, 5739, 41023, 4866, - 9985, 7987, 41928, 1172, 64572, 917596, 6253, 120365, 6650, 5603, 41666, - 4473, 64148, 4870, 65901, 65347, 41799, 65345, 8199, 195007, 5347, - 119063, 9280, 4864, 10398, 4144, 119633, 120567, 6245, 120478, 2732, - 5598, 745, 4555, 5341, 119847, 4777, 7821, 5351, 120747, 119589, 41950, - 120729, 120210, 3097, 63817, 5966, 120363, 4778, 120596, 10863, 1660, - 4781, 66460, 271, 41940, 65370, 8577, 65368, 12653, 65366, 10216, 4782, - 10000, 65362, 65361, 11912, 12325, 11323, 8717, 41583, 65355, 4776, - 65353, 11492, 8700, 761, 13168, 10575, 10426, 917905, 120150, 10362, - 11272, 1715, 4849, 8242, 9561, 194982, 195090, 10607, 120511, 120675, - 5963, 66563, 41509, 4916, 4850, 380, 1607, 466, 4853, 194905, 4854, - 917625, 5164, 41096, 1350, 5124, 64420, 120354, 5362, 8471, 2708, 64716, - 7946, 3785, 234, 19963, 120481, 41268, 4848, 2530, 41636, 4798, 1225, - 6630, 65684, 10458, 120595, 8576, 5197, 195087, 2704, 4794, 8329, 63823, - 8322, 4797, 66326, 5725, 2694, 2595, 3363, 2439, 65104, 5607, 41089, 303, - 41162, 119044, 2665, 2437, 917791, 9817, 4844, 8764, 13013, 8934, 65398, - 917929, 4492, 120347, 9843, 2441, 10739, 65090, 1188, 119327, 1100, 2451, - 2714, 41081, 2912, 194817, 4937, 65746, 753, 3572, 10023, 4959, 11722, - 9248, 65815, 9729, 11725, 65190, 119094, 2726, 3107, 194658, 4941, 7996, - 10995, 9140, 1408, 5261, 41412, 9068, 181, 119819, 4942, 43043, 4938, - 41341, 972, 5259, 4004, 64185, 4142, 5257, 194712, 120529, 4964, 5264, - 9538, 64177, 64176, 41225, 64182, 63800, 64180, 11396, 9482, 4873, 3265, - 1822, 194867, 12601, 41078, 3865, 261, 5927, 7568, 118931, 118930, - 917858, 10696, 9830, 6073, 389, 10467, 6255, 6075, 4872, 282, 194633, - 3125, 9567, 195012, 4878, 5459, 4874, 119046, 9557, 3474, 64774, 120356, - 11494, 6081, 9563, 9411, 11017, 13017, 11940, 41033, 65928, 10788, 64190, - 8751, 10385, 120273, 7816, 9414, 4665, 12628, 4670, 119871, 41555, - 120485, 9642, 10912, 958, 12959, 3082, 119112, 4666, 0, 4915, 917896, - 2891, 5856, 12096, 5163, 4664, 10836, 1817, 66724, 12231, 41554, 10564, - 7450, 13077, 42099, 4400, 9697, 3606, 10275, 8925, 10371, 10307, 1063, - 10227, 11410, 9772, 4541, 6299, 1389, 64203, 64201, 9823, 42081, 12941, - 19906, 10520, 118839, 119557, 12301, 64192, 10505, 10878, 42772, 64196, - 12172, 41814, 1017, 64175, 523, 505, 1447, 846, 0, 41813, 917827, 8608, - 120537, 65482, 2543, 12163, 3108, 9745, 4529, 64166, 64165, 64164, 7919, - 120639, 1641, 64168, 64949, 8966, 10251, 10247, 5908, 715, 64161, 64160, - 7542, 1699, 10943, 10763, 120379, 11352, 550, 10169, 11515, 64385, 66579, - 3766, 64856, 5780, 9504, 6611, 257, 10373, 13153, 12061, 10261, 10253, - 6404, 2599, 9433, 6496, 1552, 5930, 66664, 11476, 11447, 3128, 4789, - 5067, 4911, 3760, 1718, 9438, 8827, 1146, 5065, 41435, 4352, 68136, 2435, - 41839, 5064, 5326, 120453, 3778, 1809, 8873, 7824, 19919, 5062, 1264, - 64817, 765, 11697, 3764, 8473, 64092, 8469, 3933, 12947, 4564, 7954, - 917908, 10375, 917872, 119902, 64768, 194983, 41012, 5225, 63910, 42130, - 7903, 5151, 194862, 64121, 64685, 5626, 2569, 66498, 3800, 65424, 119859, - 917575, 5353, 5625, 10894, 954, 8022, 1010, 41043, 65456, 41438, 41439, - 9904, 10711, 4593, 119564, 119003, 2590, 5629, 13309, 7551, 10325, 5632, - 10471, 120038, 64759, 42054, 5166, 5628, 120031, 970, 120029, 4772, 2400, - 5627, 64130, 120018, 12885, 3119, 63998, 10961, 3060, 203, 9986, 917574, - 64344, 636, 11698, 120652, 63832, 42111, 11701, 120448, 554, 64137, 8320, - 64275, 8863, 120442, 42042, 1477, 63803, 194864, 120792, 5694, 7689, - 42142, 9323, 4325, 3047, 3937, 175, 194815, 3169, 64016, 64781, 912, - 1243, 4536, 5431, 6652, 120058, 6244, 65839, 120480, 3935, 120665, 1129, - 917936, 11950, 5392, 68177, 7846, 64024, 5397, 120008, 12046, 12599, - 3845, 4490, 5395, 6556, 5393, 354, 7530, 11977, 41029, 8366, 119183, - 7756, 3901, 65484, 51, 626, 41602, 5895, 9568, 64057, 456, 120333, 8145, - 1168, 9251, 9082, 119964, 9854, 4311, 3866, 8818, 41512, 119952, 118865, - 10324, 3918, 5377, 3797, 1644, 10405, 9658, 4140, 13057, 42029, 42037, - 9030, 813, 119945, 41454, 4146, 195036, 5360, 2466, 236, 195032, 119942, - 6249, 42117, 5898, 120670, 41457, 119148, 5855, 1969, 2384, 988, 119106, - 12838, 64483, 917834, 10341, 10552, 65479, 5854, 120397, 10583, 118933, - 119989, 119940, 10416, 11981, 3872, 119361, 64014, 120725, 6093, 9748, - 2838, 119939, 65843, 170, 120516, 13143, 4169, 118847, 13311, 6058, 6448, - 10553, 1662, 65295, 917782, 64342, 5892, 120822, 10178, 42106, 66, 65, - 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83, - 86, 85, 88, 87, 90, 89, 4736, 10357, 64155, 849, 1704, 8556, 120402, - 9659, 64926, 1743, 120512, 9556, 9496, 4503, 11353, 9647, 7876, 68132, - 120575, 3928, 11948, 65283, 10706, 63975, 65427, 4842, 6438, 66509, 9109, - 4841, 1289, 4171, 12008, 6251, 3923, 1490, 2447, 65539, 119187, 10907, - 5245, 119218, 10114, 64000, 9790, 4845, 8332, 10582, 119622, 4840, 5675, - 254, 1747, 65429, 4825, 10626, 8918, 10281, 5716, 64004, 65799, 120576, - 19955, 917989, 8080, 118895, 367, 1472, 120386, 6687, 4829, 64693, 5905, - 12339, 8919, 9515, 4435, 118992, 11023, 119109, 4830, 9134, 41365, 64125, - 41978, 1412, 4594, 1391, 10536, 7720, 4824, 7775, 120425, 120392, 1888, - 1960, 3140, 66449, 7960, 41836, 41844, 6052, 6064, 54, 1428, 12214, - 68098, 6211, 7699, 358, 66592, 10557, 11442, 10758, 8223, 65759, 4261, - 12642, 194844, 120343, 120400, 120496, 119053, 41858, 119055, 64118, - 194902, 64554, 10574, 3878, 4017, 12827, 1752, 65195, 12962, 41118, 3924, - 10199, 118965, 64966, 119019, 120107, 65664, 41116, 720, 324, 194964, - 41977, 12057, 11917, 1464, 41343, 4721, 7974, 64353, 8957, 66484, 64488, - 120371, 9853, 64041, 195058, 12740, 12640, 4722, 917617, 917820, 0, 4725, - 9690, 4726, 194756, 41173, 119843, 118969, 5204, 119248, 67588, 67605, - 4015, 3995, 8052, 476, 3714, 10073, 3595, 10232, 10999, 1382, 64209, - 12636, 64215, 64214, 1656, 41831, 8130, 8672, 8832, 8720, 3908, 1452, - 13111, 64523, 64067, 194926, 8552, 12398, 41845, 3849, 120657, 195063, - 9778, 468, 612, 42150, 55, 65546, 917911, 64515, 1674, 118951, 5823, - 120276, 1114, 42110, 540, 120052, 119017, 12516, 41743, 3938, 120057, - 65417, 64316, 120060, 11340, 820, 41741, 6292, 65303, 7955, 6452, 4713, - 3359, 7800, 41566, 65177, 6226, 353, 719, 9656, 9474, 64742, 41986, 4532, - 65412, 42114, 10868, 4717, 2349, 5902, 66450, 1884, 9481, 64070, 65400, - 3623, 8155, 1195, 3942, 4714, 9625, 41151, 194653, 5012, 12006, 917604, - 12074, 12409, 42027, 4360, 12964, 6454, 1229, 63793, 66437, 41344, - 917880, 8539, 65100, 120508, 4809, 9623, 4788, 120299, 64885, 64745, - 120207, 65405, 65032, 13075, 194866, 5365, 4545, 8901, 8000, 2492, 4813, - 65432, 917999, 5925, 4808, 64330, 9649, 41154, 65030, 5128, 4038, 12718, - 4810, 64859, 12794, 64928, 1648, 5435, 3522, 11303, 414, 10236, 65439, - 12709, 6456, 120494, 65120, 11905, 41082, 65243, 12581, 10374, 5175, - 63796, 68181, 10254, 63820, 9751, 10262, 64088, 41363, 3919, 607, 194698, - 120288, 9018, 5270, 10314, 10282, 65477, 6564, 64310, 40976, 8265, 7737, - 120752, 40975, 5840, 65436, 10162, 40978, 41632, 8454, 42072, 42038, 387, - 119098, 12737, 120294, 2550, 917910, 42069, 118971, 6442, 3525, 66617, - 9860, 64641, 41590, 5619, 41346, 13157, 375, 7455, 66444, 5616, 8531, - 11473, 42753, 119202, 9454, 5615, 194652, 2315, 120830, 1938, 5455, - 64752, 808, 5568, 11347, 119198, 1026, 5620, 65593, 120787, 11350, 5617, - 10893, 9225, 64639, 12902, 9145, 64595, 1338, 120352, 119178, 9863, - 12161, 2587, 64553, 120274, 6455, 6037, 12834, 3974, 7998, 10290, 10888, - 3083, 10322, 2316, 12348, 64027, 41036, 120369, 66442, 12552, 65606, - 119822, 12739, 5373, 120784, 64700, 3762, 1445, 40961, 65304, 11986, - 120708, 40960, 917923, 3780, 7485, 5779, 64952, 10402, 12011, 3906, 9707, - 10603, 8326, 0, 65498, 3763, 11468, 5618, 194688, 3779, 120078, 9324, - 118852, 63822, 9073, 66585, 64302, 10704, 280, 4787, 917861, 68138, - 13072, 1894, 41180, 120111, 9570, 64020, 8699, 2689, 7878, 65426, 65793, - 42135, 41824, 2551, 10456, 6453, 10200, 3998, 65229, 66562, 503, 194691, - 4470, 2690, 118853, 7780, 5369, 41954, 5249, 1652, 772, 8756, 8310, - 65428, 3487, 64873, 3585, 1688, 194956, 119159, 41822, 194874, 6468, - 41904, 9720, 41697, 41319, 13125, 10650, 5836, 12358, 4668, 4355, 9048, - 1465, 10850, 3943, 19947, 41205, 41315, 41488, 120827, 119613, 5352, - 12362, 12435, 8839, 41053, 3266, 7785, 12356, 8616, 12104, 917875, 65625, - 11450, 194755, 3638, 5420, 3897, 3216, 195011, 2358, 4018, 8633, 2850, - 13304, 9639, 65445, 0, 41263, 2561, 63807, 3542, 120023, 12076, 5303, - 8078, 12676, 64418, 6276, 1706, 194785, 41819, 41422, 12943, 11464, - 10792, 41484, 194607, 10847, 41050, 8872, 860, 13099, 118844, 194819, - 118886, 6435, 10830, 194935, 615, 10668, 7574, 917582, 10504, 9779, 3625, - 43016, 41409, 66651, 41425, 65087, 9178, 8789, 41427, 4022, 64531, 11804, - 118889, 11288, 41424, 917598, 118811, 41820, 195010, 65292, 4812, 1261, - 120340, 3911, 12102, 119179, 1033, 64939, 64642, 917921, 3904, 65822, - 10514, 3275, 65226, 917961, 13123, 10846, 11392, 41321, 66513, 12138, - 10989, 119048, 6233, 10598, 449, 2669, 903, 118997, 2920, 9636, 65240, - 10738, 118897, 9367, 593, 41085, 3917, 64172, 11732, 64307, 120457, - 41448, 3596, 119832, 0, 9763, 64082, 8819, 8113, 124, 12981, 41113, 232, - 12234, 120646, 9168, 65811, 10820, 194895, 64053, 9094, 1769, 41715, - 2463, 119065, 1064, 13307, 41976, 1538, 19924, 0, 120476, 7862, 7795, - 1474, 8516, 4828, 1258, 7561, 12744, 11585, 1878, 9498, 0, 2911, 120094, - 41178, 3939, 64823, 8846, 8943, 12617, 41174, 2650, 4491, 1961, 41463, - 11525, 11292, 1959, 775, 66488, 41732, 41016, 6074, 9618, 64827, 1511, - 3613, 66440, 4259, 41436, 3656, 19930, 64533, 41019, 12428, 68160, 11333, - 6243, 8514, 8513, 9054, 1613, 41828, 119360, 65531, 194879, 68139, - 194877, 67604, 5741, 10145, 8865, 6402, 119099, 5788, 7917, 64808, 65730, - 7733, 64359, 4998, 120375, 119904, 65494, 917968, 4268, 41247, 120524, - 120370, 3871, 8036, 10881, 9111, 10621, 41696, 65462, 67584, 10993, - 120745, 9765, 120368, 195089, 11648, 42118, 10321, 65281, 41587, 10949, - 194644, 42107, 917607, 917860, 5416, 10802, 41164, 66318, 65298, 65723, - 5685, 118845, 12633, 7928, 10848, 8094, 41595, 118821, 6474, 794, 65909, - 12656, 10355, 64665, 5274, 1665, 41598, 3993, 119165, 64512, 40971, 536, - 189, 12611, 119234, 194651, 2859, 4838, 63838, 4834, 2338, 195075, - 119145, 4837, 41944, 770, 41452, 811, 1687, 41042, 66620, 120730, 64427, - 64326, 40969, 10526, 3895, 5406, 40968, 1339, 11731, 120473, 10193, 3116, - 7747, 119185, 8020, 10843, 11554, 12825, 0, 8266, 41006, 12371, 2871, - 64614, 41245, 999, 119129, 64567, 12745, 2663, 64586, 119636, 64191, - 68096, 10150, 65367, 64308, 1522, 597, 4775, 10917, 12571, 10448, 12583, - 12560, 12558, 12556, 12584, 1741, 65097, 1227, 4783, 12566, 11013, 12554, - 120558, 10812, 1586, 4978, 195046, 3078, 1402, 5285, 9391, 40984, 9379, - 9372, 394, 3088, 6284, 917966, 41663, 3991, 9377, 120785, 9237, 424, - 41648, 41208, 120366, 9384, 41076, 1830, 120816, 8647, 41656, 8246, - 120307, 917948, 195039, 41840, 119605, 2377, 41676, 64864, 12572, 11318, - 12557, 12559, 5479, 2796, 1003, 2373, 9446, 9447, 9448, 48, 194920, 9480, - 481, 2359, 9125, 9439, 9440, 9441, 548, 9153, 9444, 9445, 9430, 9431, - 9432, 397, 9434, 9435, 3984, 9437, 195057, 1614, 9424, 9425, 9426, 6651, - 1358, 9429, 428, 9620, 9655, 917760, 10982, 9096, 1333, 65170, 407, 6425, - 917630, 917763, 5955, 66320, 1108, 5804, 11976, 8554, 41466, 64782, 3926, - 9057, 11434, 8798, 120734, 917857, 1392, 1883, 7476, 5986, 5985, 8065, - 41326, 10353, 7468, 0, 917866, 4407, 6502, 4019, 119595, 118919, 8448, - 8219, 41688, 1812, 12675, 12659, 41793, 194823, 119167, 42172, 42068, - 6054, 10697, 2386, 119810, 9170, 10642, 3909, 64585, 10296, 41763, - 119171, 10977, 42082, 4164, 1049, 195045, 65707, 11943, 41806, 8709, - 10606, 3921, 12275, 64691, 12936, 8994, 1038, 118966, 8470, 65695, 0, - 577, 119585, 8773, 10733, 36, 194793, 5153, 41805, 13097, 194782, 763, - 8736, 1414, 64495, 9683, 194841, 66681, 120831, 2536, 119951, 66330, - 119625, 8621, 8963, 12852, 3031, 120034, 41345, 66317, 182, 66315, 64402, - 65562, 10210, 120492, 9058, 366, 120764, 9892, 961, 63755, 6426, 4570, - 11478, 3106, 65917, 41284, 1696, 41189, 4003, 12105, 68109, 5766, 12802, - 3264, 8824, 13268, 917801, 10936, 63980, 11287, 6128, 119083, 19956, - 10923, 2322, 12797, 65506, 8300, 65861, 917536, 41285, 3547, 120144, - 8112, 119600, 41459, 41369, 6089, 13000, 43027, 12117, 4170, 1029, 10540, - 12315, 9063, 65101, 119979, 744, 120821, 12897, 3792, 4926, 917623, 6065, - 3551, 194598, 118800, 4623, 41186, 41816, 4598, 41818, 12795, 5968, 7922, - 12614, 10851, 8523, 6179, 119066, 6180, 1863, 4710, 194981, 5956, 11972, - 41290, 65552, 4705, 716, 177, 120739, 4704, 12360, 120270, 64719, 161, - 9020, 3362, 119931, 4706, 10646, 66594, 64788, 4709, 7518, 8754, 19909, - 120237, 120245, 119164, 68144, 7508, 9136, 1700, 4401, 41280, 194711, - 8974, 2308, 119910, 10634, 41791, 2318, 8506, 66361, 8198, 42022, 1005, - 937, 118996, 4734, 2870, 41277, 12319, 66619, 5404, 4729, 3667, 235, - 1384, 4728, 41049, 120420, 120644, 120017, 8109, 65505, 119920, 4730, - 447, 13186, 1513, 4733, 8664, 63978, 65219, 119221, 12911, 9665, 1383, - 8565, 2469, 119866, 12663, 6156, 68117, 917586, 7993, 4288, 119828, 2674, - 13238, 11922, 41145, 41468, 3510, 13234, 41148, 8683, 5605, 42095, 10497, - 12221, 1380, 12314, 41146, 118964, 11441, 13197, 3512, 120682, 9495, - 8103, 194596, 5959, 65184, 11780, 41563, 11586, 120028, 41925, 13205, - 13211, 5801, 41923, 119344, 120316, 1283, 11924, 4779, 7988, 3719, 4006, - 3271, 19957, 64038, 8355, 118799, 8842, 64747, 3804, 13070, 11557, 3875, - 5962, 1095, 64371, 3599, 65880, 5827, 120411, 7787, 120140, 41378, 7465, - 64493, 12207, 4773, 11684, 64034, 119565, 917865, 12785, 42043, 64943, - 66677, 917965, 42046, 9742, 521, 65136, 10800, 41473, 8404, 66725, 483, - 0, 1450, 12986, 928, 11605, 65441, 917882, 10599, 120435, 3989, 10971, - 120016, 5771, 9841, 6539, 12145, 118983, 10074, 194778, 9807, 3769, - 41190, 3973, 12821, 4575, 9573, 7982, 429, 8849, 118967, 65573, 41771, - 1796, 118918, 64887, 6417, 8164, 41301, 3502, 120382, 194912, 64959, - 4919, 10590, 5825, 7755, 68165, 0, 64548, 12661, 1621, 10214, 10418, - 41962, 65868, 41971, 1409, 11551, 1617, 3112, 10824, 5015, 1390, 64403, - 194976, 421, 1756, 5846, 66476, 8666, 120132, 7595, 120360, 7555, 3630, - 5408, 2817, 1214, 12883, 120124, 10218, 41769, 3168, 194916, 42134, 7957, - 2370, 2846, 1056, 119070, 12798, 118910, 120314, 1836, 8757, 65850, - 12327, 3740, 119028, 5622, 65374, 41765, 2341, 3944, 8484, 8474, 120817, - 6135, 3118, 8461, 41942, 12153, 5621, 12799, 8127, 8975, 9451, 7571, - 13073, 12169, 10618, 681, 194562, 703, 120812, 3272, 8781, 12894, 120527, - 11709, 119601, 4815, 42053, 6561, 8279, 8776, 64954, 3276, 917976, 6290, - 4267, 120104, 41325, 65021, 11706, 917825, 12171, 10047, 9710, 3262, - 194604, 194939, 119200, 42020, 118788, 163, 576, 9895, 1655, 5842, 12479, - 3122, 10417, 7793, 65581, 9328, 64352, 10039, 6003, 12569, 5623, 120026, - 5717, 3986, 120634, 42023, 8912, 64555, 12604, 64078, 65700, 3627, 4523, - 64934, 11595, 8540, 11498, 8887, 4574, 41040, 2459, 64886, 13060, 41041, - 8946, 10348, 10412, 5718, 120088, 10450, 8147, 13221, 66329, 9999, 3765, - 119885, 68153, 1606, 12178, 686, 3093, 119126, 4619, 10600, 6654, 7712, - 64826, 4312, 41918, 65689, 10128, 11923, 4023, 41892, 5763, 120335, 4827, - 2401, 12810, 8792, 120346, 4455, 7826, 433, 64824, 66660, 2499, 41812, - 12886, 65375, 11973, 13089, 4293, 10300, 10161, 10396, 12196, 66322, - 66630, 194901, 119319, 3010, 5817, 65719, 1458, 3120, 9797, 9643, 119317, - 4984, 10389, 66682, 9100, 9017, 120364, 120243, 1061, 4699, 9115, 3509, - 0, 486, 4290, 9896, 12291, 120620, 194887, 1045, 120204, 5631, 10380, - 9626, 2380, 0, 194863, 120678, 2376, 8486, 120618, 9824, 2335, 4362, - 12174, 194909, 2366, 1025, 195101, 12634, 120760, 65423, 41443, 120732, - 917847, 11713, 1774, 1523, 917561, 5058, 41445, 65762, 65310, 8567, - 41442, 3988, 0, 64882, 1847, 917947, 10403, 8564, 65385, 65076, 65117, - 120413, 194811, 65908, 12616, 65887, 6256, 119628, 12671, 194933, 10206, - 118974, 917792, 2673, 11960, 5820, 9318, 4488, 119567, 7926, 65358, - 10444, 42137, 9893, 2754, 9850, 41437, 4487, 12722, 41957, 1032, 65530, - 1711, 12984, 43039, 3114, 614, 120691, 13116, 64923, 120790, 926, 120640, - 65670, 64204, 194848, 194676, 10832, 120362, 1050, 7549, 41035, 11583, - 9314, 41801, 119088, 120616, 520, 10437, 9558, 8331, 917806, 3091, 41034, - 917887, 2307, 8360, 10097, 65768, 321, 41028, 12750, 917903, 65563, - 120241, 120262, 2861, 10360, 10095, 0, 66307, 440, 1861, 13085, 9233, - 120265, 64532, 43041, 119158, 12123, 13133, 3859, 10570, 41660, 8209, - 65778, 118841, 10910, 120423, 1521, 7875, 41658, 10487, 120606, 5760, - 13011, 743, 4414, 119571, 118873, 65769, 5243, 9849, 5239, 65771, 10778, - 1405, 5237, 917878, 65112, 10103, 5247, 4769, 42063, 5508, 120829, 5764, - 11792, 3513, 3008, 9378, 120395, 194960, 10125, 65364, 41103, 9394, 6485, - 1397, 64795, 65365, 119093, 4770, 120590, 9392, 8731, 7471, 12079, - 120619, 11316, 9122, 194725, 4774, 3019, 9997, 11549, 194919, 1099, - 10215, 65565, 1340, 9390, 66717, 41453, 464, 4281, 4768, 9385, 64470, - 1346, 4995, 65679, 12087, 9780, 423, 1818, 65144, 66665, 8272, 917844, - 66324, 12904, 3087, 64960, 10111, 19967, 64707, 0, 9584, 8214, 194998, - 12159, 12626, 9106, 118907, 40979, 5806, 64750, 64517, 8243, 9123, 5709, - 0, 265, 10922, 13255, 12605, 917628, 2752, 64626, 120256, 1434, 59, 5637, - 11573, 0, 64897, 68129, 19951, 10379, 66305, 119345, 41809, 10283, 41983, - 7547, 64684, 1156, 8009, 3305, 3782, 511, 12496, 63752, 1014, 64360, - 11906, 120125, 10835, 10157, 65536, 1400, 10323, 10685, 7702, 41211, - 10387, 4453, 2440, 3758, 1150, 10547, 5700, 19910, 65349, 65383, 2339, - 64019, 5697, 41156, 6617, 9116, 119227, 0, 462, 41841, 10493, 3862, 8129, - 917958, 120404, 12864, 6644, 9845, 64794, 8261, 5701, 9722, 9581, 1385, - 1426, 119992, 41125, 41872, 194620, 11404, 6493, 119896, 13288, 120108, - 5167, 120717, 1681, 12184, 1204, 3755, 11935, 7748, 8213, 3286, 8911, - 64712, 10744, 65356, 990, 5647, 5726, 64915, 10377, 118947, 11477, 5646, - 65044, 11018, 2851, 3945, 120096, 120119, 4373, 194948, 12997, 9587, - 1789, 1020, 120097, 3100, 41497, 5648, 64748, 13162, 119336, 10205, 3545, - 8190, 10016, 64616, 917890, 6506, 64312, 66669, 2368, 63993, 4419, 65727, - 66469, 3439, 1825, 1192, 119166, 8891, 3080, 118836, 2347, 5430, 1140, - 8990, 2848, 10159, 41859, 120212, 249, 917777, 9173, 12191, 1815, 194832, - 890, 8883, 3267, 728, 42144, 995, 120633, 4410, 1041, 10576, 8102, 10099, - 10343, 19945, 8091, 558, 120110, 12273, 13163, 19938, 12112, 12446, - 41389, 64482, 65214, 5375, 10142, 8548, 8215, 3129, 6134, 12913, 9005, - 41856, 13242, 64891, 7725, 11938, 11662, 119326, 8624, 5173, 19959, 527, - 120701, 41894, 10327, 6277, 10608, 10010, 9879, 917612, 3540, 41672, 835, - 2329, 120813, 12238, 13001, 7849, 12245, 5426, 4258, 63987, 41787, 5424, - 12016, 8283, 120808, 5434, 194561, 194937, 8067, 6144, 194758, 10311, - 118977, 1404, 3095, 11432, 120211, 3464, 494, 4819, 119608, 65098, 570, - 956, 3672, 13112, 1498, 120100, 65857, 119184, 431, 10029, 65159, 195066, - 8761, 41537, 13171, 13096, 194953, 65108, 118911, 9516, 1044, 5268, 0, - 4954, 194972, 4450, 11795, 11547, 64358, 11946, 356, 3477, 227, 10488, - 13214, 382, 11418, 12295, 120641, 11475, 917845, 3020, 11537, 6484, 2541, - 917998, 12364, 11337, 65568, 1057, 566, 9110, 119104, 2743, 64931, 63965, - 64338, 9097, 66571, 41305, 8782, 3006, 776, 2524, 1592, 8573, 917843, - 10924, 65164, 63941, 41593, 4397, 8952, 3856, 66505, 119892, 5872, 6495, - 120510, 6486, 41155, 1698, 13177, 12830, 5413, 3953, 1053, 19917, 65094, - 11448, 4339, 1052, 1051, 459, 1060, 917853, 66479, 65299, 65703, 5228, - 119955, 7868, 689, 6508, 4163, 120757, 8639, 66641, 43022, 65510, 1162, - 12130, 2671, 65806, 8095, 64375, 7521, 42178, 4553, 195034, 0, 12299, - 41433, 195004, 19921, 64298, 11424, 64169, 4567, 41891, 1926, 66646, - 119056, 4820, 8110, 10935, 64690, 194665, 5830, 119212, 1377, 119889, - 4897, 12932, 9250, 8693, 4438, 194947, 917560, 1753, 11331, 6147, 11431, - 64621, 8833, 120671, 0, 6504, 41428, 64596, 10719, 43012, 1898, 1413, - 194763, 65394, 802, 12141, 917953, 5561, 6648, 10671, 2528, 41774, 41379, - 9169, 838, 5669, 64484, 844, 5014, 65854, 256, 0, 5583, 41987, 120280, - 41399, 5580, 65464, 2923, 10853, 5582, 10048, 65699, 13069, 5795, 13158, - 66598, 65702, 6087, 65701, 41322, 12180, 65704, 120662, 194850, 194582, - 8894, 5370, 64055, 118917, 1638, 10966, 12200, 194630, 118848, 5733, - 67631, 64288, 194966, 8172, 42017, 5729, 10844, 8319, 6498, 9760, 0, - 120106, 1238, 200, 120555, 1062, 119993, 118893, 118905, 917606, 195069, - 1070, 9361, 917942, 6095, 3394, 120664, 3015, 120609, 41827, 4037, 7763, - 6400, 65186, 66626, 7817, 1841, 11276, 12976, 65724, 372, 1669, 10776, - 63937, 7701, 41585, 64397, 119211, 1732, 276, 41862, 2828, 33, 65326, - 41768, 6491, 65332, 41588, 914, 427, 8071, 3538, 3900, 65321, 41864, - 1031, 6257, 7614, 41869, 120826, 120573, 2328, 12399, 1071, 41400, 65537, - 13249, 10841, 41627, 5301, 1047, 195094, 5734, 8960, 11312, 8001, 10651, - 119970, 65012, 9663, 66441, 12304, 41621, 5711, 12921, 12098, 65571, - 9166, 12164, 5710, 64363, 65585, 65168, 12447, 10571, 917975, 119617, - 119246, 64611, 5558, 917888, 5715, 10915, 120118, 12007, 3670, 2761, - 11975, 64811, 3074, 5722, 194876, 8629, 120632, 11307, 4499, 2757, 4496, - 9718, 120116, 8910, 10689, 120391, 12717, 65451, 11782, 194822, 66316, - 194729, 41630, 41640, 65596, 917840, 11416, 4280, 13118, 8765, 12784, - 7792, 1393, 917542, 8701, 6585, 8487, 8233, 917788, 119874, 6683, 120009, - 4495, 12144, 2841, 12543, 119320, 1473, 10490, 64329, 118984, 65467, - 120006, 6488, 357, 1048, 41100, 917809, 41104, 65122, 8035, 1054, 917950, - 1040, 65450, 5454, 4434, 1069, 195095, 13019, 194906, 119261, 5084, - 65402, 119133, 9693, 12354, 733, 10762, 41677, 41102, 4353, 41674, 1059, - 9218, 1731, 917883, 120528, 120000, 120643, 41679, 8299, 11994, 118833, - 64390, 194922, 5155, 11599, 12743, 42122, 6480, 65740, 41779, 0, 3587, - 12131, 41432, 10986, 66602, 9605, 64807, 12788, 43020, 41767, 3371, - 917549, 13114, 8771, 1479, 41022, 194950, 1109, 11000, 120740, 64508, - 9770, 9246, 12230, 63801, 8868, 399, 65137, 41783, 41772, 64045, 11742, - 2755, 551, 917803, 10156, 4857, 9874, 4428, 2544, 65074, 194614, 120209, - 917811, 194786, 351, 5747, 12179, 194603, 7978, 41092, 118954, 120502, - 10791, 19935, 10712, 65015, 120667, 563, 64815, 120722, 9013, 5588, 57, - 0, 10386, 65269, 119043, 5585, 65881, 2549, 694, 66712, 9876, 5584, 8358, - 64717, 10238, 65279, 10919, 277, 7980, 119298, 41815, 120233, 41800, - 5589, 41807, 2664, 12793, 5586, 1574, 10513, 11356, 2525, 4852, 5749, - 917765, 41605, 64696, 119306, 1039, 9801, 10155, 5745, 188, 8135, 6450, - 10055, 66604, 9055, 41853, 4858, 5657, 194700, 436, 4771, 194639, 2786, - 5654, 4856, 8051, 120799, 119026, 194891, 5652, 10945, 194581, 120761, - 12280, 3661, 7863, 118834, 119933, 41302, 66608, 64699, 5402, 10234, - 5843, 11939, 5655, 42157, 195079, 3157, 1055, 194955, 917553, 3504, - 64785, 118790, 10822, 5149, 41927, 10226, 41871, 13159, 3594, 10272, - 10304, 40, 12657, 594, 10244, 386, 9453, 8834, 10816, 118866, 3467, - 41010, 119579, 3331, 946, 10231, 1495, 8131, 13179, 119045, 9562, 4304, - 65927, 8160, 120234, 63974, 64529, 64656, 63995, 1348, 12239, 64013, - 5666, 13303, 10555, 120751, 119919, 7599, 10798, 65230, 13269, 10195, - 119932, 7732, 41905, 9793, 0, 6097, 5668, 8780, 4982, 119883, 5670, - 63969, 120298, 12741, 2672, 3735, 5667, 13138, 119915, 9484, 10724, - 13203, 119024, 65258, 66496, 4361, 9487, 64314, 9286, 1497, 120169, 1932, - 12442, 6193, 3571, 11984, 917945, 7973, 119157, 64821, 11964, 12613, - 7873, 11399, 119219, 553, 13049, 41533, 194857, 3604, 65912, 4587, 66709, - 120048, 66667, 12746, 1962, 120083, 194696, 5633, 11660, 66337, 7559, - 120593, 64905, 12856, 5437, 65208, 10669, 6443, 7964, 63971, 9135, 199, - 10976, 4105, 63880, 120622, 120181, 65816, 12148, 13148, 7560, 66686, - 9226, 120439, 11669, 6472, 5634, 4524, 12720, 4724, 67625, 8407, 66323, - 12224, 119201, 194938, 5221, 64348, 328, 7886, 41701, 5448, 5636, 6680, - 5329, 194650, 5638, 6679, 7940, 119076, 118938, 65182, 5635, 3373, 2986, - 118880, 194629, 3437, 119358, 6203, 9833, 12693, 11920, 8274, 194838, - 11685, 1657, 41558, 119610, 7585, 5639, 2954, 5660, 5640, 65376, 194818, - 65102, 19960, 66475, 5297, 41637, 13284, 6112, 7968, 41625, 194737, - 194699, 118955, 11705, 5642, 0, 64630, 42181, 4342, 11710, 67630, 1677, - 64803, 4585, 5641, 8259, 10643, 1058, 2719, 119570, 194638, 194993, 1144, - 5868, 120436, 10867, 11302, 13277, 4308, 2539, 917848, 7505, 543, 64916, - 64736, 2547, 10209, 66670, 65317, 5399, 19911, 917850, 41633, 7902, - 64932, 9000, 12233, 11299, 66499, 1865, 119618, 5613, 194772, 12994, - 65057, 5610, 0, 6228, 4307, 3482, 42133, 10787, 194609, 2997, 506, 5609, - 41194, 12863, 194776, 12316, 41195, 2412, 8169, 8186, 8841, 9522, 516, - 13130, 41197, 917795, 34, 64007, 10030, 5306, 1612, 66622, 42765, 11704, - 65756, 12001, 10211, 119869, 64564, 66365, 65147, 6584, 7749, 120175, - 65693, 1758, 413, 10667, 4677, 120197, 9133, 1935, 11517, 1042, 120196, - 64779, 1931, 10248, 6185, 64776, 1217, 10242, 708, 825, 118913, 65680, - 12294, 41207, 119903, 9138, 2534, 810, 12631, 194911, 120491, 4424, - 119255, 4895, 1239, 2364, 11313, 119149, 3403, 119193, 194610, 64364, - 63952, 65250, 10027, 8998, 194627, 917771, 9152, 194896, 67592, 2980, - 755, 41850, 931, 3433, 13170, 12615, 1594, 42767, 11274, 67603, 12944, - 41623, 8730, 41353, 11587, 67611, 4337, 65188, 41394, 918, 119223, 935, - 7681, 65676, 377, 41393, 11649, 120621, 2477, 64301, 66454, 917826, - 194899, 65201, 9528, 65155, 573, 19912, 7907, 11417, 120186, 194885, - 65328, 10673, 119217, 119938, 67607, 11482, 1781, 5496, 3357, 62, 1649, - 120549, 964, 119242, 64535, 41009, 917773, 11589, 65035, 194872, 65038, - 917605, 64602, 67618, 65840, 11580, 12711, 66575, 4542, 65779, 8423, - 3348, 448, 119173, 2991, 9364, 120036, 997, 7949, 120772, 12849, 11341, - 11440, 3073, 9866, 9714, 11692, 4657, 12988, 4658, 6478, 12335, 119228, - 41975, 6241, 2818, 4877, 2385, 5463, 41897, 4172, 10052, 4409, 8373, - 10873, 12095, 65745, 5346, 120328, 194925, 6237, 5461, 64058, 9176, - 11597, 40974, 64937, 64828, 11419, 120406, 766, 1257, 917547, 10970, - 2408, 3251, 64154, 3274, 5465, 41501, 2461, 120523, 120321, 5342, 8317, - 120394, 68163, 3263, 120046, 8673, 194719, 3270, 64539, 11489, 118999, - 120388, 66672, 120560, 5535, 9142, 195018, 756, 8687, 10938, 120658, - 66443, 1182, 2542, 186, 917862, 119156, 5770, 529, 42115, 12612, 12949, - 10586, 10790, 10839, 8920, 5241, 6479, 41713, 120427, 41594, 225, 11578, - 5688, 41300, 41204, 119105, 118794, 10721, 41209, 9254, 42097, 1794, - 41875, 65238, 5624, 266, 120221, 67637, 41873, 3617, 11324, 41494, - 119824, 8420, 13088, 65755, 1872, 41338, 3734, 7734, 120174, 5502, 65890, - 4452, 41260, 917767, 0, 4511, 5161, 10572, 917614, 11425, 42050, 64349, - 41083, 917884, 917925, 63979, 9003, 8192, 120039, 5305, 9653, 10616, - 1697, 9546, 917930, 194847, 119174, 41482, 65205, 10031, 64063, 9870, - 12535, 8620, 65824, 5581, 8799, 42131, 42031, 64062, 1028, 64060, 64059, - 837, 10567, 119960, 41606, 3176, 64773, 11427, 2902, 64043, 64042, 41740, - 3609, 120550, 13200, 832, 64044, 42156, 10076, 64040, 64039, 12919, 1034, - 3392, 10753, 5180, 64033, 41395, 65468, 11691, 64037, 64036, 41898, 4291, - 63966, 64015, 41114, 243, 8479, 64354, 6024, 11351, 12128, 194908, 3476, - 8973, 8538, 64011, 64010, 64008, 4285, 4800, 7706, 41750, 11604, 2538, - 11609, 204, 7563, 4802, 4111, 8239, 9098, 4805, 64001, 214, 7885, 42143, - 8321, 65893, 12208, 4767, 9343, 64049, 41729, 119986, 1133, 19948, 64052, - 64051, 41187, 8692, 6022, 11788, 10005, 12329, 41333, 120569, 43, 1942, - 12682, 1016, 41107, 12619, 41121, 3885, 92, 64023, 64022, 64021, 6582, - 43030, 12451, 64025, 9167, 41485, 12035, 119208, 6254, 10501, 64018, - 8890, 12457, 66587, 194836, 7582, 64778, 118915, 118813, 66635, 120044, - 66621, 7995, 8759, 41411, 13094, 12449, 7532, 41414, 65109, 3179, 13279, - 4720, 10165, 917618, 119249, 120673, 10751, 9051, 12915, 65913, 10535, - 917892, 4993, 194586, 6168, 10934, 1946, 294, 41874, 5494, 4639, 65929, - 12040, 6196, 4498, 194907, 64028, 8146, 41789, 41788, 2960, 118786, - 118795, 8969, 119884, 10197, 66599, 67621, 2950, 11998, 6210, 11433, 370, - 3549, 64790, 7801, 4953, 11461, 64356, 194973, 3297, 9699, 120693, 1135, - 12700, 7447, 5063, 3517, 2964, 119257, 0, 2552, 41546, 60, 10627, 8649, - 8252, 729, 67624, 119934, 6682, 120007, 43046, 41770, 41547, 9032, 64820, - 65906, 65817, 41215, 119897, 65883, 12832, 119592, 8081, 3761, 3537, - 119908, 9137, 119906, 8999, 65343, 3850, 3466, 4327, 120112, 9373, 66369, - 908, 6282, 6681, 9813, 194997, 41655, 537, 41511, 4179, 8978, 41213, - 65866, 1842, 10527, 120409, 9628, 3848, 12081, 9826, 64502, 1767, 5336, - 120200, 64659, 663, 194846, 10780, 0, 3059, 120024, 119626, 120198, - 66689, 347, 42112, 40992, 4100, 920, 1811, 1355, 7739, 65198, 3592, - 10078, 5318, 194910, 65578, 8592, 65870, 6224, 120192, 9381, 13244, - 64345, 118885, 9281, 3296, 12865, 120715, 1895, + 74224, 4851, 0, 0, 0, 0, 7929, 0, 194682, 0, 0, 66480, 0, 42833, 74529, + 12064, 0, 596, 0, 0, 65842, 8651, 0, 0, 120218, 12995, 64865, 1373, 0, 0, + 5816, 119067, 64810, 4231, 917833, 0, 4233, 4234, 4232, 917836, 0, + 120210, 917841, 917840, 0, 8851, 0, 0, 0, 41601, 8874, 0, 7748, 0, 0, 0, + 0, 41603, 9784, 0, 9188, 41600, 0, 0, 0, 1457, 3535, 0, 0, 0, 0, 65240, + 11951, 0, 3404, 0, 0, 0, 1759, 0, 194964, 0, 0, 0, 66577, 0, 0, 65859, 0, + 0, 0, 0, 0, 0, 65930, 9834, 3055, 9852, 0, 65288, 0, 11398, 0, 0, 119255, + 0, 0, 603, 0, 43548, 0, 0, 917824, 3350, 120817, 64318, 917828, 127089, + 3390, 74483, 43265, 120599, 917830, 917829, 0, 1919, 3400, 0, 917813, 0, + 917540, 66446, 64141, 8562, 64139, 64138, 4043, 8712, 64134, 64133, + 11297, 0, 0, 11966, 64128, 0, 0, 0, 64132, 10867, 64130, 64129, 0, 0, + 9779, 2764, 66002, 0, 9471, 0, 66021, 0, 0, 5457, 5440, 8857, 0, 65282, + 2843, 5355, 0, 0, 0, 5194, 11657, 0, 0, 0, 0, 0, 0, 127027, 10717, 64570, + 5630, 74350, 64143, 10682, 0, 10602, 800, 42499, 66186, 0, 0, 64930, + 11631, 64146, 64145, 64144, 762, 13172, 118859, 0, 0, 10906, 1353, 6960, + 0, 0, 5828, 8724, 917806, 8933, 1601, 42244, 858, 7080, 917808, 917807, + 8090, 0, 74401, 917811, 587, 0, 0, 0, 0, 0, 0, 2750, 0, 556, 64158, + 64157, 0, 12213, 0, 2760, 0, 0, 0, 0, 64156, 64155, 42496, 0, 64151, + 64150, 12679, 10053, 10421, 11787, 64153, 64152, 0, 0, 4839, 0, 0, 1874, + 120352, 0, 6577, 64125, 64124, 64123, 0, 0, 0, 7007, 7590, 65443, 9036, + 0, 64122, 74422, 66609, 0, 64117, 64116, 6287, 64114, 2725, 64120, 64119, + 64118, 42128, 0, 1177, 65601, 12322, 64106, 0, 0, 64102, 7859, 1945, + 64099, 0, 10453, 64104, 7188, 7997, 0, 0, 0, 8705, 64097, 64096, 9571, + 528, 917989, 0, 11429, 0, 0, 0, 0, 73841, 0, 0, 9056, 0, 6188, 120019, + 6155, 64068, 1823, 64066, 64065, 64072, 64071, 63, 7233, 0, 0, 41904, + 6639, 64064, 0, 0, 0, 1176, 118959, 0, 8162, 0, 0, 0, 120519, 66376, + 66242, 11415, 4333, 9855, 64112, 64642, 0, 5388, 0, 0, 0, 7714, 66222, 0, + 7768, 0, 4199, 64708, 0, 0, 0, 8708, 9560, 64077, 64076, 8996, 4992, + 4471, 42622, 64079, 64078, 0, 0, 0, 0, 64615, 0, 0, 12075, 0, 0, 5174, 0, + 0, 0, 3123, 0, 12685, 0, 8408, 64704, 0, 0, 9223, 0, 41616, 0, 73797, 0, + 1116, 0, 43049, 0, 43050, 8548, 0, 0, 119061, 0, 0, 13115, 64092, 64091, + 9322, 0, 120595, 64095, 64094, 8111, 66247, 42332, 64089, 64088, 6199, 0, + 0, 11434, 64083, 64082, 11329, 7737, 64087, 64086, 64085, 64084, 0, 0, + 41335, 4118, 1797, 0, 41334, 0, 46, 0, 0, 298, 0, 0, 0, 42627, 0, 32, + 6187, 119052, 11495, 11459, 3665, 0, 42871, 0, 19923, 74335, 0, 0, 66239, + 0, 64403, 4412, 7240, 0, 0, 0, 65758, 12750, 4181, 8544, 0, 120199, 0, + 120198, 120203, 6181, 65014, 0, 0, 0, 3639, 119588, 0, 0, 0, 10073, + 120206, 0, 0, 0, 42844, 7498, 1098, 0, 0, 0, 0, 10207, 8789, 0, 0, 0, 0, + 9234, 0, 6182, 0, 65058, 0, 0, 0, 0, 5471, 9461, 5573, 118936, 5473, 44, + 0, 66244, 118907, 0, 66238, 12844, 0, 1622, 7767, 1900, 41339, 11458, 0, + 0, 6581, 5576, 0, 64405, 41337, 0, 0, 8947, 0, 0, 41694, 0, 0, 7908, 0, + 10408, 6579, 0, 194829, 0, 0, 0, 6583, 7761, 127010, 120504, 194828, 0, + 5058, 41010, 9992, 0, 5057, 0, 0, 74538, 5054, 118951, 194971, 0, 0, + 1437, 41617, 658, 3497, 0, 7486, 5061, 5060, 4235, 0, 0, 0, 12113, 4236, + 4727, 0, 0, 7693, 10749, 0, 7488, 5773, 978, 0, 0, 41619, 10239, 0, 0, + 66209, 0, 0, 9748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9341, + 119596, 2379, 11325, 0, 64668, 67854, 8125, 120545, 0, 119175, 917940, + 2369, 0, 0, 0, 119235, 74092, 73936, 7008, 0, 0, 0, 0, 2367, 0, 0, 264, + 2375, 8060, 6194, 119858, 1844, 119084, 0, 12858, 0, 0, 6961, 0, 0, 0, + 8800, 0, 42862, 4463, 65581, 6192, 194676, 42771, 0, 0, 725, 65042, + 118797, 120800, 0, 12892, 0, 0, 0, 0, 0, 0, 0, 120707, 0, 0, 5074, 5073, + 0, 8983, 0, 917939, 0, 5072, 0, 6198, 11614, 0, 196, 0, 0, 0, 4929, + 120342, 0, 0, 0, 0, 42847, 0, 0, 0, 4934, 0, 41323, 9758, 0, 120341, 0, + 42584, 0, 4329, 41321, 4979, 3048, 7752, 41320, 0, 74418, 12819, 0, 5071, + 0, 3642, 0, 5070, 10042, 0, 3987, 5068, 0, 0, 120216, 0, 0, 10636, 73981, + 11806, 43167, 4531, 1245, 9105, 66463, 4921, 120219, 4926, 65544, 73884, + 194619, 0, 0, 64709, 0, 194620, 120790, 4922, 325, 992, 119568, 4925, 0, + 0, 9526, 4920, 0, 948, 0, 120208, 4930, 0, 0, 120275, 4933, 0, 0, 0, + 4928, 0, 0, 74770, 0, 0, 722, 0, 19908, 12637, 0, 119855, 8753, 1509, 0, + 5468, 9511, 0, 0, 1672, 6205, 10864, 74586, 0, 0, 0, 0, 0, 73863, 0, 0, + 41607, 120115, 1679, 120116, 194932, 120113, 0, 7005, 41609, 9580, 0, + 401, 0, 120109, 6968, 5761, 342, 8553, 0, 8143, 127115, 11983, 127113, + 624, 74508, 0, 119630, 5078, 74258, 12478, 0, 5076, 0, 194609, 0, 120097, + 685, 9025, 1524, 12618, 0, 5539, 0, 120095, 120102, 120094, 120552, 0, + 194611, 0, 0, 12520, 8058, 9732, 0, 5080, 64775, 5036, 5035, 120590, + 42604, 0, 0, 8074, 275, 13291, 1907, 0, 4432, 0, 5033, 0, 0, 4836, 3888, + 73792, 10729, 64546, 194600, 120681, 194937, 0, 67588, 119000, 0, 0, + 8858, 6409, 0, 120252, 0, 0, 0, 66321, 0, 12814, 0, 3432, 10218, 0, 6094, + 7641, 42445, 0, 0, 42406, 1676, 74320, 194607, 0, 5030, 0, 0, 0, 0, 9622, + 0, 0, 0, 0, 0, 0, 0, 10544, 12919, 0, 0, 0, 0, 0, 0, 0, 947, 119835, + 194586, 194585, 10969, 119935, 7613, 119937, 119936, 4795, 119930, 7018, + 64914, 0, 120192, 120268, 0, 43567, 74056, 917910, 0, 119919, 7216, + 65232, 7217, 251, 7218, 7895, 4395, 43538, 119926, 119929, 119928, 7213, + 119922, 7214, 7215, 0, 74141, 8880, 7685, 0, 120173, 65540, 119618, 625, + 8187, 42861, 1113, 7236, 7915, 3630, 120176, 8179, 74264, 67886, 9316, + 10980, 2489, 65624, 8150, 1359, 0, 0, 0, 73756, 5042, 5041, 42769, 12084, + 0, 0, 0, 0, 0, 0, 0, 0, 12283, 1616, 3795, 0, 8795, 66245, 0, 0, 0, 1138, + 73905, 12677, 0, 0, 3239, 0, 0, 0, 8431, 0, 42164, 0, 11778, 12620, 0, + 73773, 119073, 5040, 0, 0, 0, 0, 0, 5039, 0, 0, 0, 5038, 0, 0, 13184, + 74293, 0, 64648, 0, 9359, 0, 0, 0, 65157, 6662, 0, 0, 3863, 73909, 4835, + 0, 0, 0, 4309, 0, 194569, 0, 194568, 1301, 0, 119595, 569, 0, 0, 711, + 119085, 0, 0, 73880, 11610, 11368, 0, 194571, 41331, 1006, 74240, 0, + 1550, 8201, 73737, 7627, 5499, 5031, 0, 0, 65784, 0, 65267, 3758, 0, + 65781, 64734, 0, 2440, 65780, 0, 8449, 0, 5008, 0, 8822, 0, 12121, 8255, + 5512, 73875, 119560, 0, 64313, 2641, 5906, 1119, 127068, 13038, 0, 2455, + 0, 118809, 0, 0, 0, 0, 8714, 0, 4211, 0, 0, 0, 0, 0, 5052, 66220, 5821, + 6186, 65778, 65775, 5051, 65773, 1429, 42647, 5050, 302, 388, 41115, 735, + 6637, 5907, 120670, 0, 12726, 74594, 9117, 0, 0, 5513, 6666, 5053, 74230, + 5510, 0, 0, 0, 2470, 0, 0, 1925, 0, 0, 0, 0, 5048, 5047, 0, 0, 0, 194863, + 0, 74497, 0, 8089, 6929, 639, 0, 68179, 0, 0, 0, 4599, 41402, 6674, + 120631, 43294, 1476, 648, 0, 65819, 3233, 0, 0, 10164, 0, 0, 3530, 9750, + 0, 0, 6656, 194858, 0, 5046, 8512, 65856, 74261, 8967, 0, 5045, 0, 1916, + 7986, 5044, 120556, 9006, 13128, 5043, 0, 7853, 74068, 74004, 9669, + 12341, 12703, 8402, 0, 119070, 0, 41750, 3586, 64508, 43148, 0, 0, + 119606, 0, 13296, 517, 0, 0, 0, 41528, 123, 65454, 0, 0, 74478, 10531, + 7784, 41526, 10829, 73991, 8057, 1126, 73895, 0, 194591, 0, 3925, 0, + 8069, 43142, 120439, 489, 0, 0, 120441, 120452, 43151, 0, 0, 66200, 0, 0, + 0, 0, 0, 0, 8711, 6183, 0, 0, 0, 120448, 7623, 118925, 194853, 9235, + 12760, 74176, 0, 66445, 43540, 120437, 3743, 11514, 11078, 0, 12136, 0, + 0, 120435, 0, 7726, 0, 19922, 267, 3393, 0, 1371, 194849, 0, 2458, 0, + 6201, 0, 41074, 4266, 10652, 41612, 41077, 3402, 9050, 3398, 0, 0, 0, + 3391, 41075, 2476, 0, 917550, 0, 10625, 0, 12767, 13017, 0, 64261, 64934, + 0, 13014, 13013, 0, 6673, 0, 0, 0, 12438, 0, 0, 0, 0, 0, 9053, 13015, + 74523, 0, 704, 66215, 6195, 0, 6660, 194941, 917760, 917793, 0, 12629, + 11435, 0, 0, 65538, 0, 0, 0, 74547, 0, 65448, 0, 12948, 195003, 195002, + 119238, 195004, 195007, 195006, 0, 0, 4287, 8276, 4902, 1131, 0, 0, + 66728, 1816, 0, 42533, 168, 0, 4898, 64298, 0, 0, 4901, 1821, 0, 578, + 3653, 0, 791, 9162, 6977, 0, 119298, 74561, 0, 73731, 8354, 43590, 0, 0, + 7557, 0, 119301, 8234, 7241, 0, 194994, 119167, 194996, 12811, 65925, + 3946, 195000, 10998, 0, 673, 194867, 64397, 0, 74599, 0, 0, 194977, + 194976, 2448, 194978, 10267, 8424, 2452, 120760, 194864, 8729, 0, 0, + 7845, 0, 0, 4408, 4122, 0, 11039, 8723, 194990, 194989, 119302, 731, + 119304, 119303, 2438, 64855, 119300, 119299, 1175, 0, 42135, 373, 119172, + 5396, 11457, 11521, 7723, 0, 0, 0, 41952, 0, 5273, 8248, 5269, 0, 5202, + 2404, 5267, 42823, 11291, 19915, 5277, 12963, 0, 6189, 4125, 1314, 12133, + 0, 118873, 1271, 0, 0, 66024, 41482, 3864, 74539, 0, 3879, 0, 12978, + 4166, 4574, 0, 7567, 7459, 0, 41390, 5384, 41882, 67647, 0, 0, 0, 0, + 41388, 0, 41392, 64288, 41387, 0, 8706, 5552, 0, 700, 0, 5553, 0, 7088, + 5356, 7499, 0, 66596, 0, 0, 0, 5554, 0, 12344, 10311, 0, 6665, 0, 0, + 7618, 8517, 11455, 0, 64632, 66017, 5555, 0, 0, 0, 0, 119204, 65033, + 9143, 6668, 195067, 195066, 195069, 656, 195071, 65037, 4577, 64624, 0, + 0, 0, 0, 4269, 73885, 917775, 42846, 917774, 950, 0, 0, 66580, 118895, + 66683, 10554, 917778, 119121, 0, 5098, 917770, 0, 119099, 5097, 4935, + 9848, 10381, 0, 0, 0, 3651, 0, 0, 0, 5102, 5101, 10269, 12983, 8138, 0, + 1932, 5100, 1439, 12093, 1247, 10034, 195064, 5099, 0, 1441, 42087, 3063, + 650, 0, 7838, 0, 195041, 195040, 119142, 9031, 195045, 195044, 9078, + 8545, 66356, 195048, 0, 9154, 9118, 0, 0, 2676, 7750, 0, 73812, 6190, + 8599, 195053, 0, 10795, 9857, 7014, 9858, 195033, 0, 12129, 0, 8481, 0, + 6202, 195035, 10920, 195037, 5203, 195039, 195038, 5108, 5107, 65818, + 66019, 9762, 0, 5541, 74772, 0, 12613, 5284, 6657, 207, 0, 4275, 74819, + 854, 68147, 74381, 0, 0, 5103, 0, 64348, 41368, 0, 488, 0, 0, 0, 10157, + 0, 43034, 11438, 0, 0, 0, 118839, 41771, 5106, 6669, 8504, 65154, 195025, + 41367, 5105, 195030, 195029, 6476, 5104, 0, 304, 3176, 0, 0, 932, 0, + 6567, 238, 74522, 195011, 195010, 19905, 120577, 195015, 120187, 41044, + 67640, 0, 64814, 9912, 65939, 10670, 74093, 13273, 0, 12552, 195019, + 8803, 309, 6622, 8151, 10858, 194596, 67636, 0, 12568, 0, 12553, 0, + 43275, 6950, 9712, 0, 0, 0, 65165, 0, 0, 66466, 0, 0, 0, 66725, 6191, + 11351, 10437, 11316, 67634, 0, 0, 41754, 67635, 9370, 2720, 194975, 0, + 8232, 118817, 0, 3222, 0, 0, 0, 66663, 0, 0, 10834, 0, 0, 65732, 0, 0, + 119579, 0, 195020, 0, 7781, 41383, 64568, 0, 120738, 12077, 0, 0, 0, + 42396, 0, 3475, 0, 2479, 0, 3632, 0, 10698, 0, 3648, 194960, 74844, + 67639, 3636, 67894, 3650, 8837, 65229, 1843, 42283, 0, 41562, 0, 74548, + 0, 3640, 0, 42321, 7284, 194974, 194973, 194950, 194949, 194952, 194951, + 0, 194953, 42080, 2529, 0, 0, 0, 42083, 194955, 194606, 194957, 67619, + 66367, 194958, 9634, 0, 9988, 0, 41068, 0, 0, 65264, 0, 0, 917923, 0, + 785, 8236, 194942, 9027, 68160, 67623, 64383, 0, 925, 0, 0, 41985, 41071, + 9586, 0, 41984, 9217, 0, 0, 0, 9186, 64580, 4016, 0, 0, 381, 0, 0, 42077, + 0, 194946, 5184, 42078, 194947, 10810, 0, 4585, 19943, 5860, 67633, 0, 0, + 812, 3615, 0, 5178, 194929, 120548, 120506, 5188, 74287, 67629, 3605, + 10692, 1166, 64429, 42639, 924, 0, 67631, 0, 0, 2442, 10703, 194940, + 67632, 0, 12771, 12736, 12753, 0, 73933, 67626, 42401, 0, 0, 0, 42288, + 12751, 0, 8542, 13145, 0, 2468, 66706, 41294, 3626, 3883, 64388, 42479, + 0, 41117, 0, 0, 0, 0, 67624, 0, 1290, 0, 65585, 2715, 806, 0, 41884, 0, + 7027, 64731, 0, 0, 0, 66325, 3465, 2405, 9240, 0, 12756, 65259, 0, 0, + 12752, 5833, 1432, 0, 41883, 73912, 9799, 0, 41886, 2480, 0, 43219, 0, + 6494, 5537, 0, 0, 0, 0, 1211, 0, 0, 0, 118832, 12318, 0, 0, 0, 10622, 0, + 0, 0, 6566, 0, 0, 73780, 0, 64864, 0, 194588, 0, 8284, 0, 0, 3589, 0, + 4035, 6492, 0, 4265, 6642, 3977, 74186, 41778, 836, 119216, 2488, 0, + 4582, 0, 0, 41777, 12926, 0, 7528, 10550, 0, 0, 0, 0, 0, 1374, 64878, + 119014, 0, 42389, 41374, 0, 0, 0, 41377, 0, 0, 400, 12597, 0, 0, 0, 6661, + 0, 64827, 0, 73817, 390, 0, 74755, 0, 3473, 7718, 0, 0, 0, 0, 0, 0, 0, + 11969, 0, 0, 8004, 1887, 0, 0, 8080, 7006, 0, 0, 0, 0, 1544, 0, 0, 64677, + 120716, 0, 6146, 0, 771, 0, 0, 12812, 13168, 42272, 12200, 917927, 7904, + 0, 953, 12917, 0, 12300, 0, 11491, 9724, 10341, 0, 9524, 7490, 11389, + 7489, 3379, 0, 7487, 0, 471, 7484, 7482, 7481, 7480, 7479, 7478, 7477, + 6501, 7475, 6918, 7473, 7472, 2474, 7470, 7468, 10232, 10615, 10213, 0, + 120222, 10049, 0, 3544, 0, 6017, 65311, 0, 0, 13306, 10533, 7870, 73949, + 7625, 0, 120544, 0, 0, 0, 0, 0, 0, 19961, 2472, 0, 120699, 0, 6019, 4256, + 120776, 74380, 0, 73847, 73844, 12845, 0, 0, 65138, 119355, 67862, 0, 0, + 120000, 120008, 8066, 7678, 74865, 0, 0, 0, 0, 7186, 0, 120555, 0, 445, + 120566, 0, 0, 0, 8330, 0, 0, 42797, 0, 120215, 0, 3902, 0, 1770, 0, 0, + 1560, 120209, 0, 4584, 73843, 0, 11712, 10866, 0, 1118, 0, 0, 0, 1081, + 7436, 0, 7252, 0, 5996, 0, 4903, 0, 41386, 5162, 119189, 1330, 0, 64530, + 0, 12047, 41384, 0, 0, 1848, 4334, 0, 41975, 64777, 10674, 12308, 0, 0, + 0, 0, 12715, 0, 0, 0, 2018, 66672, 41979, 66685, 119157, 0, 0, 0, 126984, + 0, 9334, 0, 0, 0, 7975, 0, 0, 0, 66621, 4884, 66597, 0, 0, 0, 6313, + 65513, 0, 0, 0, 0, 2345, 0, 463, 0, 0, 119607, 3117, 5460, 0, 0, 0, 0, + 42279, 194577, 0, 0, 0, 0, 0, 13248, 0, 0, 0, 0, 0, 0, 5663, 0, 0, 0, 0, + 2482, 1471, 0, 0, 42247, 12378, 73925, 0, 0, 12374, 0, 0, 0, 0, 2460, 0, + 11944, 12376, 0, 64679, 0, 12380, 10557, 64473, 5870, 0, 2024, 0, 0, 0, + 539, 0, 0, 0, 3853, 65180, 0, 120796, 120245, 0, 0, 8659, 0, 12474, 0, + 9503, 194969, 2478, 0, 4162, 0, 4260, 12953, 0, 120089, 12470, 0, 74189, + 2742, 12476, 11798, 10946, 0, 5000, 0, 0, 0, 0, 8213, 74017, 7771, 6161, + 0, 0, 0, 0, 0, 0, 120582, 0, 0, 10301, 10333, 10397, 0, 0, 73791, 0, 0, + 0, 0, 0, 4014, 12842, 73952, 12015, 0, 8275, 3893, 0, 0, 0, 7221, 42147, + 0, 74550, 74465, 64747, 118841, 0, 12516, 0, 0, 119017, 74537, 10892, + 8231, 0, 6473, 41968, 0, 41973, 3591, 41969, 0, 2453, 0, 0, 0, 0, 0, + 10349, 10413, 43591, 41962, 3202, 74353, 0, 8316, 0, 0, 0, 687, 0, 0, 0, + 1840, 0, 0, 119809, 4883, 285, 4723, 0, 0, 4459, 74577, 0, 41720, 11089, + 240, 19906, 0, 119248, 0, 9743, 120232, 13134, 0, 0, 0, 0, 0, 42634, 0, + 0, 3081, 11463, 120230, 0, 0, 10445, 0, 0, 66717, 2614, 9125, 119023, + 1729, 0, 120236, 65221, 63883, 43334, 64852, 0, 120235, 66201, 0, 66578, + 5001, 41879, 0, 4121, 5003, 884, 66700, 63879, 4943, 5150, 73889, 74182, + 0, 643, 3086, 0, 42448, 42299, 58, 0, 0, 120083, 63873, 8491, 0, 0, 0, + 4530, 42409, 0, 0, 2721, 120074, 119096, 19929, 0, 194574, 0, 4242, 4264, + 0, 0, 66179, 42412, 65941, 13114, 64522, 10740, 3094, 0, 9754, 119102, + 4437, 73948, 0, 0, 65179, 42174, 194925, 42430, 0, 0, 42355, 66026, 4306, + 41380, 0, 0, 0, 66667, 0, 0, 0, 120578, 42566, 0, 0, 5088, 6948, 0, 8524, + 0, 0, 12385, 0, 0, 0, 1386, 65034, 11480, 6116, 65039, 65038, 12392, + 65036, 8064, 0, 12101, 5822, 119004, 0, 710, 0, 11663, 1666, 42091, + 119657, 12383, 0, 42092, 0, 4289, 0, 63896, 12061, 42096, 0, 3362, 12377, + 0, 0, 0, 7461, 73901, 1244, 331, 73786, 12683, 10662, 0, 8112, 0, 65852, + 0, 12379, 0, 120818, 41964, 0, 63843, 12381, 41965, 0, 65866, 4327, 0, + 63840, 0, 41220, 13032, 0, 584, 12933, 43177, 12373, 0, 13000, 1351, 0, + 8698, 12665, 0, 1930, 0, 0, 12427, 0, 0, 13031, 0, 0, 0, 3657, 0, 65202, + 6000, 0, 12426, 0, 0, 41740, 12428, 41283, 41916, 119210, 0, 0, 12429, + 9695, 0, 7562, 0, 5170, 0, 41755, 676, 0, 0, 66664, 74427, 0, 3536, 0, + 9752, 0, 6162, 0, 0, 10113, 41829, 65886, 5159, 12422, 41832, 439, 43077, + 0, 120532, 74549, 11796, 40970, 41830, 0, 917799, 8308, 917797, 917796, + 0, 67864, 917801, 917800, 12336, 4135, 0, 341, 2727, 4129, 3539, 0, + 63861, 0, 7913, 0, 63859, 4131, 63868, 0, 63867, 4133, 11371, 210, 4600, + 0, 74560, 4137, 8082, 0, 119062, 0, 0, 4591, 0, 0, 0, 9680, 0, 120623, + 561, 12159, 195, 0, 41501, 0, 42031, 5719, 7172, 0, 8368, 0, 41499, 0, 0, + 42242, 41498, 917794, 42025, 0, 65805, 42463, 0, 2924, 0, 120510, 0, 0, + 119213, 73941, 0, 42330, 917784, 3969, 0, 0, 7169, 1992, 9652, 73977, + 7246, 42086, 917790, 917789, 0, 0, 0, 0, 0, 327, 0, 9042, 917777, 917776, + 65148, 12433, 917781, 917780, 917779, 12431, 8668, 12434, 0, 917782, + 5999, 0, 7712, 12432, 0, 0, 1726, 1015, 0, 8212, 0, 0, 42423, 119066, 0, + 0, 66709, 0, 8811, 927, 0, 0, 12436, 0, 42021, 0, 0, 1299, 12240, 42350, + 65143, 0, 195016, 0, 0, 11348, 0, 0, 0, 0, 0, 19914, 12179, 0, 9648, 0, + 63836, 63832, 917773, 10967, 63816, 2594, 3444, 63817, 64651, 0, 41503, + 0, 11265, 0, 0, 0, 0, 5664, 3972, 0, 0, 0, 917766, 12416, 917764, 119608, + 10816, 917769, 917768, 12418, 74111, 3882, 8532, 917771, 1573, 0, 119847, + 4596, 66339, 12417, 66001, 65343, 194782, 12414, 8287, 0, 0, 68108, 1143, + 119169, 0, 12415, 6626, 42763, 0, 118884, 9021, 120783, 0, 11724, 0, 0, + 127104, 194794, 0, 0, 8027, 10997, 9171, 12741, 11400, 74197, 194799, 0, + 0, 0, 0, 0, 0, 120190, 194773, 0, 194772, 42368, 0, 7715, 3881, 41487, + 12118, 42514, 0, 0, 0, 3009, 41476, 41489, 0, 3007, 1448, 3018, 0, 3889, + 8521, 5083, 5082, 119859, 120184, 8519, 0, 3014, 5081, 65853, 0, 0, + 120183, 0, 5079, 64802, 65095, 4597, 65532, 0, 0, 12371, 0, 8407, 0, + 10805, 8518, 10779, 120188, 0, 0, 12367, 42170, 0, 0, 629, 1924, 0, + 12037, 74366, 5987, 8462, 8005, 12365, 66689, 0, 120815, 12369, 10649, 0, + 5077, 127108, 10880, 63927, 5075, 0, 0, 65075, 0, 11007, 0, 66659, 0, 0, + 66684, 0, 3434, 4954, 1904, 0, 5266, 126980, 5272, 10499, 4507, 9578, + 63923, 120177, 7979, 0, 9831, 0, 194926, 461, 9803, 0, 4504, 1505, 0, 0, + 5276, 43021, 0, 0, 0, 0, 66461, 5177, 41324, 12055, 8722, 0, 41327, 0, + 66695, 4114, 409, 4383, 8900, 8948, 41325, 0, 721, 10182, 9108, 0, 0, + 119185, 0, 0, 0, 5998, 0, 42353, 74825, 0, 12587, 0, 0, 0, 0, 0, 41576, + 74121, 0, 119207, 0, 8578, 5995, 7573, 41575, 74789, 74752, 63944, 63949, + 0, 2670, 4167, 0, 11723, 0, 74120, 0, 65076, 938, 73857, 73854, 11737, + 9721, 0, 0, 0, 11742, 0, 0, 11493, 12334, 0, 4153, 12302, 10793, 5250, + 12407, 11978, 4404, 9189, 12401, 42007, 5775, 42005, 65806, 0, 0, 42002, + 12404, 0, 0, 4940, 12410, 7683, 1167, 0, 4983, 0, 861, 0, 0, 0, 0, 65577, + 0, 0, 0, 11956, 0, 0, 0, 9616, 6631, 0, 12816, 74583, 0, 12710, 0, 12721, + 4101, 66185, 0, 5992, 7616, 0, 0, 12577, 0, 0, 853, 0, 0, 0, 0, 5016, + 43535, 0, 42835, 9491, 917913, 0, 917914, 0, 12712, 917919, 0, 65060, + 120797, 9900, 0, 0, 194919, 0, 0, 0, 64778, 12585, 10565, 0, 12177, 0, 0, + 0, 0, 0, 4900, 0, 0, 0, 8984, 4119, 0, 8971, 0, 43113, 9702, 0, 11025, + 9245, 13048, 4927, 4138, 0, 194921, 0, 12397, 0, 0, 13054, 12394, 0, 0, + 0, 13053, 0, 3948, 10781, 1546, 0, 5010, 1680, 10507, 0, 0, 0, 0, 0, 0, + 7267, 0, 74833, 0, 5993, 2819, 0, 12706, 0, 1893, 7266, 63915, 7264, + 7265, 0, 1363, 0, 63997, 63910, 63996, 3077, 0, 0, 1512, 0, 12589, 41479, + 0, 0, 43339, 0, 9836, 120727, 0, 41481, 43335, 7832, 42343, 3090, 43337, + 817, 1664, 1850, 0, 3079, 11340, 42408, 42447, 0, 120020, 42307, 12386, + 42304, 0, 0, 12389, 0, 0, 41996, 11526, 63985, 5864, 1147, 66688, 42887, + 1987, 0, 5480, 7858, 11653, 4116, 12391, 66193, 0, 4939, 12384, 0, 0, + 41686, 63905, 119601, 0, 0, 0, 0, 0, 0, 8247, 507, 91, 2042, 120775, 0, + 0, 66028, 10036, 41844, 119830, 774, 119831, 0, 119815, 5994, 12539, 0, + 119817, 120597, 119833, 0, 0, 0, 0, 7719, 6026, 2486, 0, 0, 162, 0, + 65219, 41073, 9687, 41681, 6304, 119812, 66196, 0, 5262, 0, 66658, 12681, + 42379, 0, 7534, 12219, 0, 0, 42810, 10492, 0, 0, 0, 43119, 0, 120753, + 12403, 2500, 195013, 0, 4899, 0, 0, 0, 74113, 2343, 4103, 19946, 74112, + 0, 13112, 0, 0, 12859, 0, 0, 66369, 5861, 0, 11999, 12400, 0, 0, 12645, + 5146, 11320, 0, 67612, 65040, 0, 64184, 12974, 64183, 67613, 120645, + 5147, 0, 0, 74524, 0, 1928, 0, 0, 5991, 3445, 67609, 4976, 64176, 0, + 67610, 8241, 0, 0, 4206, 0, 0, 0, 0, 0, 10138, 0, 0, 8897, 0, 0, 8357, + 4124, 0, 65836, 120641, 0, 0, 0, 0, 1123, 963, 41553, 10120, 12405, 0, 0, + 398, 13278, 9723, 41551, 120311, 7945, 0, 4402, 10896, 12402, 0, 42392, + 1305, 12408, 0, 0, 0, 0, 41464, 12411, 12969, 120824, 41465, 0, 195017, + 1575, 0, 63955, 165, 3024, 41467, 119163, 0, 9093, 0, 9147, 0, 0, 0, + 9148, 9692, 4096, 53, 73776, 12368, 195018, 0, 9594, 0, 0, 43527, 0, 727, + 0, 0, 5805, 0, 0, 0, 42176, 12370, 11655, 119095, 10591, 12364, 0, 12372, + 120642, 0, 0, 0, 0, 12366, 10963, 6066, 1329, 0, 3052, 9220, 0, 64478, 0, + 10803, 4132, 0, 0, 0, 0, 0, 74837, 0, 1499, 0, 8055, 0, 63965, 0, 63962, + 74042, 8924, 43123, 5988, 3660, 63969, 11781, 63968, 8788, 1357, 64851, + 65743, 0, 8774, 0, 127086, 67618, 120172, 0, 1933, 0, 9564, 0, 0, 73866, + 0, 0, 2487, 67614, 3121, 1804, 3311, 67615, 0, 0, 12220, 67616, 120598, + 0, 0, 0, 6675, 0, 0, 67592, 120685, 0, 64771, 1198, 9132, 0, 64619, 510, + 64663, 0, 0, 4561, 7711, 1398, 0, 0, 74034, 41569, 0, 11406, 8167, 12127, + 0, 840, 0, 0, 0, 6967, 0, 0, 9796, 0, 333, 0, 0, 8144, 0, 0, 0, 12406, 0, + 0, 0, 6678, 7769, 0, 12621, 0, 0, 10227, 4764, 43101, 0, 0, 40986, 4127, + 66487, 0, 0, 12754, 195022, 0, 0, 0, 67594, 65609, 12944, 4050, 67595, 0, + 43102, 10581, 12985, 4533, 0, 0, 6490, 0, 12038, 0, 0, 120704, 65461, + 9798, 0, 0, 1948, 119007, 0, 952, 0, 0, 0, 120802, 6449, 9494, 0, 0, + 43098, 4843, 8142, 64160, 4098, 64170, 0, 0, 3436, 0, 0, 12817, 67597, + 6676, 3930, 66708, 0, 0, 67598, 0, 0, 0, 65591, 41581, 65916, 1453, 0, 0, + 0, 8500, 0, 120142, 73743, 120400, 4317, 120140, 0, 64676, 0, 0, 67606, + 119083, 0, 0, 13102, 0, 66003, 6672, 0, 0, 0, 0, 63841, 9613, 9001, 4526, + 11274, 67601, 64520, 64210, 6664, 0, 42056, 10228, 64957, 11281, 0, + 64213, 1469, 66640, 65381, 0, 4988, 42372, 0, 9598, 904, 352, 0, 1451, + 8061, 8453, 4134, 0, 74847, 67600, 0, 0, 10520, 8575, 0, 1201, 0, 12846, + 0, 0, 11919, 64962, 0, 74864, 0, 8511, 9460, 823, 11587, 12305, 0, 64695, + 0, 12387, 1253, 13183, 65766, 500, 42783, 65765, 64208, 64369, 65760, + 65761, 119585, 11606, 64784, 11702, 66498, 9821, 0, 0, 5152, 11048, 7533, + 120121, 64410, 0, 0, 4323, 120062, 0, 0, 0, 42587, 65339, 41394, 0, 4763, + 4112, 118935, 0, 5260, 43143, 0, 326, 120131, 0, 0, 10771, 2876, 194915, + 194835, 194924, 41398, 127079, 9802, 127077, 127076, 453, 41396, 120524, + 0, 12140, 9572, 0, 7003, 194883, 42334, 7704, 0, 0, 43144, 4123, 0, + 43146, 0, 0, 0, 65759, 10765, 64061, 4465, 9808, 64056, 65582, 4126, 0, + 9521, 9589, 64755, 0, 64020, 0, 10464, 0, 0, 194869, 64514, 11528, 64024, + 0, 679, 64013, 0, 5850, 758, 7536, 0, 0, 41441, 10693, 64006, 0, 64005, + 10541, 119019, 0, 64660, 0, 119050, 0, 0, 1139, 43298, 64027, 64029, + 8970, 0, 64000, 0, 10774, 0, 42522, 12421, 194876, 0, 1852, 3057, 0, + 73744, 64034, 64041, 0, 0, 0, 0, 0, 7645, 12854, 74338, 3496, 0, 0, 0, + 9102, 627, 0, 6158, 8327, 74553, 66632, 12419, 0, 11570, 0, 19960, 11696, + 0, 1018, 0, 194909, 0, 1682, 194896, 0, 42756, 12951, 194906, 0, 0, + 73814, 11412, 12563, 10728, 194830, 0, 118863, 43311, 64966, 11577, 0, + 43040, 1833, 11576, 0, 74779, 0, 185, 65085, 74533, 64754, 194848, 7535, + 8085, 42525, 120387, 9749, 41701, 6131, 1949, 4117, 7847, 120489, 0, + 64483, 65693, 0, 0, 0, 0, 42240, 0, 0, 42864, 0, 64667, 41868, 1184, 0, + 815, 11484, 0, 67840, 0, 0, 0, 0, 0, 64683, 0, 0, 0, 0, 0, 9879, 0, 0, + 4158, 0, 68166, 0, 0, 0, 0, 0, 332, 118808, 0, 5142, 2407, 0, 0, 0, 0, + 74373, 0, 0, 0, 63870, 43163, 0, 0, 119081, 42867, 1834, 0, 0, 0, 10940, + 65249, 119040, 8662, 0, 0, 2652, 120527, 11539, 10784, 195093, 0, 0, 0, + 0, 0, 118858, 917505, 1828, 74474, 120327, 0, 8531, 12499, 6280, 12324, + 118854, 65238, 0, 4832, 65573, 0, 6279, 12508, 12904, 12502, 9161, 0, + 1620, 0, 3601, 0, 0, 0, 609, 11555, 0, 12496, 0, 74181, 4343, 12505, 0, + 0, 0, 11377, 239, 0, 637, 0, 0, 43029, 0, 0, 0, 43565, 127082, 0, 12696, + 0, 0, 0, 12929, 0, 712, 0, 4197, 0, 42818, 0, 0, 120490, 0, 0, 1506, + 43562, 0, 0, 0, 12651, 0, 64628, 74517, 12058, 74084, 917838, 7494, 0, + 4924, 65592, 118844, 0, 127088, 355, 9719, 127087, 13066, 64796, 0, 0, + 12033, 42178, 0, 0, 42571, 0, 0, 0, 0, 0, 0, 0, 3178, 0, 0, 0, 0, 9080, + 127000, 0, 0, 0, 0, 11082, 0, 5699, 195100, 0, 9488, 65166, 119112, 0, 0, + 0, 0, 0, 0, 5265, 0, 0, 11487, 67858, 12464, 0, 43045, 0, 0, 43345, 0, + 10770, 118994, 43344, 465, 9829, 0, 74348, 0, 43346, 8116, 795, 0, 0, + 12462, 10930, 10831, 0, 118952, 64362, 0, 0, 120811, 0, 12468, 8607, + 1008, 0, 10092, 0, 917842, 67855, 0, 73771, 1766, 11282, 11996, 1820, + 4547, 0, 0, 0, 0, 13223, 0, 64595, 0, 0, 0, 4345, 12616, 0, 0, 0, 74467, + 0, 0, 0, 5382, 0, 0, 0, 119060, 64953, 5406, 19920, 0, 66510, 3590, 0, + 1130, 0, 0, 42016, 11823, 43023, 0, 118896, 7742, 0, 13280, 0, 9326, + 73826, 5310, 74812, 0, 119962, 8959, 43589, 74334, 66723, 0, 8568, 0, + 120496, 73816, 120803, 0, 0, 0, 11621, 12460, 0, 0, 0, 0, 74519, 0, 0, 0, + 0, 0, 11689, 5410, 5783, 10468, 8403, 5400, 11594, 0, 0, 118990, 10491, + 0, 64412, 0, 0, 5587, 42865, 64404, 8268, 4923, 65086, 8981, 12382, + 42133, 120755, 9706, 0, 0, 66610, 10461, 12103, 0, 8642, 0, 42766, 0, 0, + 0, 0, 119105, 0, 0, 0, 8816, 41515, 0, 11802, 8041, 1461, 910, 119133, 0, + 0, 3658, 0, 120525, 0, 7617, 0, 12888, 0, 0, 13143, 0, 41514, 0, 5703, 0, + 41517, 41504, 41519, 10016, 64305, 0, 65864, 623, 781, 670, 10660, 5769, + 613, 7543, 120774, 477, 41083, 0, 0, 592, 1578, 12459, 0, 0, 0, 8225, 0, + 654, 11345, 653, 652, 0, 647, 0, 633, 120744, 0, 0, 12480, 74354, 0, 39, + 12487, 0, 120529, 74199, 12482, 0, 12489, 0, 3195, 5550, 0, 7897, 0, + 1203, 74396, 1813, 64544, 41311, 12090, 0, 2877, 0, 0, 1675, 0, 0, 0, 0, + 10070, 10595, 0, 119077, 0, 0, 0, 0, 0, 118827, 0, 0, 0, 119561, 0, 0, 0, + 0, 0, 0, 0, 120692, 0, 0, 270, 0, 10714, 0, 0, 0, 0, 0, 65372, 0, 74038, + 119558, 6273, 66679, 364, 9595, 0, 0, 0, 707, 0, 0, 9282, 66489, 224, 0, + 0, 9332, 4966, 0, 0, 0, 0, 3841, 0, 0, 10732, 0, 850, 4972, 0, 64699, + 2909, 0, 65309, 0, 0, 11544, 10203, 9608, 0, 0, 11962, 0, 12507, 1196, 0, + 0, 777, 0, 4375, 65271, 0, 0, 12198, 0, 64824, 0, 0, 9454, 63778, 8658, + 42528, 0, 2705, 917975, 41520, 0, 0, 11986, 7765, 42502, 8280, 0, 2701, + 0, 0, 5767, 0, 0, 9809, 8353, 63747, 66701, 63772, 0, 63745, 1748, 63770, + 0, 0, 0, 65542, 63766, 0, 3061, 0, 63764, 63789, 9067, 6096, 0, 7694, 0, + 7257, 63768, 3485, 12987, 0, 0, 0, 63807, 1591, 0, 0, 63783, 0, 0, 0, 0, + 0, 0, 74575, 0, 65719, 13083, 64574, 65012, 0, 1640, 12495, 66691, 7624, + 3138, 10996, 0, 1922, 0, 12498, 10987, 0, 0, 3894, 65543, 0, 194842, 0, + 493, 0, 43197, 1717, 4228, 479, 10303, 917934, 0, 917935, 10335, 3520, + 917932, 12490, 64315, 0, 127039, 12493, 6233, 64636, 1002, 12491, 0, + 64911, 127040, 0, 65120, 0, 0, 0, 11611, 66228, 127041, 66213, 63864, + 66221, 66226, 66229, 13218, 66231, 66216, 8507, 66236, 66211, 66218, 0, + 66240, 0, 66233, 8928, 0, 7909, 66234, 11605, 63759, 0, 66208, 73999, + 63799, 0, 244, 11542, 12898, 12494, 73761, 12492, 12669, 0, 0, 74153, 0, + 0, 120680, 4882, 13040, 0, 8612, 4885, 74053, 0, 13042, 4880, 64662, + 2429, 1360, 248, 0, 63797, 0, 63792, 0, 7292, 0, 63756, 42786, 66693, 0, + 1870, 917916, 470, 0, 0, 120306, 0, 0, 4579, 0, 0, 12511, 74453, 12514, + 0, 74579, 7239, 7001, 8623, 0, 0, 0, 0, 12512, 11615, 13041, 0, 0, 659, + 6098, 0, 12234, 0, 127067, 8311, 12510, 41803, 13039, 127072, 12513, + 10202, 12471, 0, 8747, 0, 0, 0, 2323, 0, 2319, 0, 12477, 0, 2311, 0, + 4415, 237, 6281, 0, 0, 0, 2309, 1312, 8173, 0, 12469, 0, 0, 64335, 10609, + 0, 0, 9397, 11524, 9395, 9396, 9393, 9394, 9391, 9392, 9389, 6209, 9387, + 9388, 4932, 9386, 9383, 9384, 0, 0, 65451, 8185, 0, 917832, 43024, 43336, + 74375, 2313, 0, 7948, 9236, 0, 0, 0, 10570, 0, 6289, 10484, 0, 0, 11998, + 12082, 10924, 3147, 0, 0, 12524, 0, 2310, 11818, 9381, 9382, 9379, 9380, + 9377, 9378, 9375, 9376, 1683, 9374, 0, 9372, 12444, 0, 0, 13016, 8210, 0, + 42029, 11079, 12331, 0, 42032, 8744, 726, 0, 0, 4155, 0, 0, 42030, 5007, + 12522, 43088, 0, 4951, 0, 0, 0, 9922, 43309, 0, 12525, 0, 12016, 65770, + 9548, 0, 403, 0, 12503, 0, 0, 11030, 0, 0, 65691, 63998, 1819, 10496, 0, + 0, 119920, 0, 0, 0, 12506, 0, 12231, 0, 12500, 67605, 12509, 64393, 0, + 3389, 10589, 6608, 41047, 120321, 0, 0, 74069, 0, 0, 3608, 8281, 917839, + 1107, 0, 9076, 8862, 0, 41052, 13084, 64766, 43217, 7803, 13222, 118963, + 74782, 0, 8546, 11553, 63995, 13177, 9043, 6303, 0, 498, 64471, 120324, + 0, 12529, 8042, 0, 2344, 12528, 8031, 2414, 0, 0, 3231, 0, 6422, 66512, + 0, 12530, 2537, 0, 41429, 12658, 13036, 65772, 0, 0, 41433, 4719, 469, 0, + 4363, 3313, 41428, 0, 2023, 1772, 0, 0, 65706, 10051, 64812, 0, 0, 9920, + 12215, 0, 4931, 1951, 12497, 119363, 9607, 0, 9663, 0, 119634, 6503, + 41110, 0, 1491, 0, 0, 0, 41061, 0, 0, 0, 65026, 41993, 41509, 11045, + 65028, 0, 66476, 41108, 9738, 41995, 1075, 1958, 12535, 41992, 41506, 0, + 41687, 0, 120717, 0, 917816, 0, 7692, 0, 8008, 0, 330, 8566, 65083, + 41133, 9816, 0, 12532, 127055, 127056, 3508, 127058, 127059, 0, 917542, + 917815, 0, 6411, 12910, 120505, 66644, 13028, 0, 12537, 0, 0, 64136, + 12536, 2350, 13029, 0, 0, 0, 13030, 0, 4527, 0, 12538, 0, 0, 65599, + 65717, 12607, 0, 4948, 12484, 4032, 0, 42803, 0, 6207, 0, 6117, 66000, + 8412, 0, 7438, 1296, 2325, 41511, 0, 10149, 74118, 0, 0, 12481, 0, 12488, + 0, 0, 41556, 64414, 118802, 2354, 0, 73766, 0, 6295, 901, 41510, 7953, 0, + 65032, 41513, 0, 11927, 66584, 0, 0, 119010, 0, 0, 0, 848, 9868, 0, 6424, + 0, 119338, 0, 74031, 0, 0, 2352, 0, 893, 64576, 11289, 1407, 0, 0, 13026, + 0, 0, 0, 13023, 8903, 9777, 66715, 1871, 8099, 0, 0, 1343, 0, 0, 9325, + 13025, 6283, 11738, 0, 0, 0, 11741, 0, 0, 9216, 8263, 11279, 194752, 0, + 194754, 13021, 64494, 3136, 194758, 194757, 194760, 13022, 0, 64588, 0, + 0, 74552, 10014, 0, 41260, 119340, 13020, 118993, 194764, 194767, 74340, + 0, 0, 64945, 8029, 0, 0, 0, 3335, 0, 0, 9776, 120526, 194748, 5215, + 42644, 3333, 1632, 194751, 64849, 3342, 0, 5363, 12957, 0, 4156, 0, 0, + 6421, 0, 1611, 0, 13018, 74257, 0, 0, 3337, 4537, 67895, 11736, 0, 0, + 6482, 4214, 73790, 11945, 0, 13046, 8838, 425, 4025, 10709, 0, 73927, + 2392, 13047, 0, 0, 10617, 13049, 6499, 194739, 12424, 194741, 73944, + 13050, 194742, 194745, 6507, 0, 0, 0, 3277, 8929, 4947, 41055, 0, 194722, + 194721, 194724, 13045, 64626, 66034, 7751, 194727, 8371, 194729, 3997, + 12806, 8768, 13044, 0, 12420, 4024, 194730, 41054, 1078, 9757, 194734, + 41057, 0, 0, 0, 0, 0, 0, 0, 0, 41496, 0, 9165, 1572, 11911, 0, 118842, + 2346, 13270, 8958, 0, 9646, 3773, 43183, 6401, 42536, 0, 0, 13043, 8056, + 0, 65681, 208, 0, 0, 0, 0, 0, 10699, 6408, 0, 7825, 5661, 0, 120630, + 3603, 41109, 2398, 3548, 0, 0, 0, 0, 3115, 0, 0, 11321, 0, 0, 0, 194726, + 4876, 74286, 0, 0, 0, 0, 41558, 41471, 73950, 8158, 41561, 41472, 0, + 13051, 194672, 3143, 194674, 194673, 41559, 1896, 66256, 13052, 194680, + 5665, 0, 119071, 41986, 63974, 0, 74352, 74161, 4154, 9863, 43550, 12310, + 5662, 42382, 194686, 73924, 1121, 194665, 63959, 0, 74378, 13231, 0, + 64752, 4732, 194666, 11596, 194668, 65187, 1626, 63983, 10110, 194671, + 42024, 6420, 42028, 0, 10509, 2795, 4910, 194728, 0, 64753, 6275, 0, + 118830, 63978, 11044, 3229, 6423, 42774, 0, 0, 0, 12823, 2331, 917810, + 42026, 6137, 0, 7524, 0, 0, 119343, 0, 8338, 0, 65043, 0, 822, 0, 9903, + 64721, 194657, 194656, 194659, 194658, 194661, 194660, 0, 41265, 5311, + 1795, 965, 118791, 10587, 0, 11278, 0, 194640, 0, 12946, 194641, 120705, + 194643, 6294, 3144, 194648, 194647, 65019, 194649, 73990, 0, 0, 748, + 41067, 2330, 535, 3148, 12375, 194652, 194629, 10556, 2475, 12388, 4889, + 8968, 67863, 3593, 0, 0, 2342, 0, 194634, 65206, 4894, 194635, 4890, + 194637, 0, 581, 4893, 0, 0, 65545, 4888, 4157, 917805, 0, 0, 0, 0, 10119, + 6415, 0, 0, 0, 0, 0, 11375, 64746, 2332, 0, 412, 0, 64932, 42880, 43587, + 0, 0, 0, 0, 65197, 0, 12203, 0, 0, 8913, 65854, 4875, 65811, 120381, + 194624, 120397, 9344, 8826, 120386, 120395, 13104, 74781, 11997, 120393, + 0, 0, 3134, 0, 65696, 0, 0, 66217, 0, 8334, 119344, 0, 3449, 0, 0, 0, 0, + 118950, 74011, 0, 0, 0, 0, 1908, 0, 4328, 10734, 127014, 0, 0, 7804, 0, + 10811, 6250, 11339, 4914, 11367, 0, 118971, 4917, 74516, 0, 64285, 4912, + 5464, 0, 118893, 2361, 7971, 0, 0, 0, 118986, 0, 8086, 74317, 0, 8319, + 2312, 40977, 10960, 40962, 8305, 12573, 0, 40980, 0, 13202, 0, 12582, 0, + 0, 0, 42438, 0, 6288, 0, 0, 5653, 42400, 10891, 7698, 5658, 74045, 0, 0, + 0, 4913, 0, 0, 0, 42326, 0, 0, 0, 42478, 2327, 0, 12959, 42287, 12705, 0, + 0, 12588, 8821, 6153, 2867, 194708, 66312, 698, 194709, 194712, 10356, + 74075, 194713, 651, 12641, 0, 0, 0, 0, 41552, 65115, 194691, 194690, + 194693, 194692, 194695, 194694, 194697, 74356, 0, 4716, 43277, 0, 0, + 12340, 120568, 0, 194700, 194699, 194702, 120676, 8703, 5462, 917629, 0, + 10101, 0, 0, 8479, 4151, 41933, 0, 0, 66254, 120821, 0, 0, 0, 0, 119194, + 74050, 0, 0, 0, 0, 0, 0, 12278, 0, 0, 0, 2700, 12576, 7842, 12899, 0, 0, + 2699, 0, 0, 2985, 119222, 0, 0, 12192, 119314, 0, 119312, 9827, 119310, + 119311, 119308, 119309, 119306, 11481, 41210, 119305, 0, 35, 0, 0, 66694, + 74357, 0, 0, 43596, 6090, 64257, 7812, 10534, 0, 0, 73848, 0, 4272, 0, + 40967, 40964, 917825, 12704, 0, 43306, 0, 64497, 12138, 7930, 0, 43303, + 0, 0, 917826, 5244, 4189, 127098, 67596, 0, 4188, 1879, 0, 968, 0, 0, 0, + 8873, 0, 0, 0, 65555, 12574, 0, 0, 0, 74490, 0, 0, 0, 0, 0, 0, 12578, + 12720, 0, 41227, 0, 12346, 0, 64848, 0, 0, 7251, 0, 0, 118850, 119141, 0, + 66015, 0, 959, 8885, 12564, 66457, 0, 9469, 9632, 0, 74761, 64323, 0, 0, + 0, 0, 310, 0, 41564, 10976, 0, 0, 0, 0, 10054, 6497, 8574, 0, 9012, + 19958, 74420, 65089, 13215, 65047, 65163, 74044, 374, 43195, 816, 0, 0, + 0, 41934, 7465, 0, 0, 0, 4715, 6101, 0, 41936, 0, 4879, 0, 65446, 0, 307, + 0, 9585, 5374, 0, 0, 0, 0, 0, 0, 0, 65567, 120614, 1929, 0, 12142, 0, + 12236, 41419, 194618, 194621, 12982, 194623, 5378, 0, 0, 41421, 0, 4462, + 0, 0, 0, 821, 0, 2498, 5800, 120157, 0, 1760, 0, 4469, 2324, 828, 3611, + 0, 757, 1185, 0, 0, 43597, 10628, 74808, 194572, 7999, 0, 0, 0, 10634, + 10942, 7713, 2348, 0, 64374, 4380, 194608, 119044, 194610, 64324, 41240, + 862, 65626, 194613, 1810, 3673, 5137, 194617, 0, 7277, 65622, 0, 7566, + 64688, 194593, 194592, 194595, 120812, 194597, 4748, 194599, 194598, + 194601, 42260, 5871, 119075, 0, 74576, 0, 0, 194602, 3967, 194604, 13137, + 8775, 194605, 0, 2963, 0, 8410, 4454, 723, 0, 966, 4449, 0, 127060, 0, + 7819, 2320, 194589, 339, 4968, 194590, 120399, 8075, 0, 0, 8047, 0, 0, + 12634, 41542, 0, 7466, 118822, 12174, 42610, 0, 74452, 0, 1584, 66645, + 6045, 0, 120640, 65218, 0, 0, 0, 7537, 0, 11370, 0, 10330, 0, 10394, 0, + 194783, 0, 0, 9780, 0, 13092, 194576, 119605, 194578, 7074, 120396, + 194579, 194582, 11414, 194584, 2531, 13034, 0, 0, 0, 1259, 7517, 0, 0, + 194561, 40996, 13037, 7092, 641, 5219, 194567, 194566, 11064, 41129, 0, + 42850, 13035, 9075, 0, 5466, 194570, 0, 64098, 65793, 4535, 194573, 4271, + 194575, 0, 0, 41410, 0, 64262, 0, 41407, 0, 0, 41131, 118864, 9046, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64338, 2563, 13033, 247, 917787, 0, 12338, 4651, + 0, 11270, 0, 0, 11933, 0, 0, 41903, 67892, 11001, 0, 42255, 0, 0, 0, + 41905, 0, 0, 10775, 9793, 5009, 0, 42269, 64587, 0, 42535, 0, 64529, + 41408, 42853, 3877, 0, 0, 8147, 43566, 119021, 0, 10236, 65918, 0, 0, 0, + 64506, 0, 118921, 4747, 0, 0, 43200, 5832, 0, 0, 5141, 42600, 0, 43203, + 0, 0, 43286, 0, 0, 0, 0, 0, 0, 74137, 11303, 65547, 0, 7031, 859, 0, 0, + 0, 6059, 126985, 0, 0, 8535, 0, 0, 194787, 66032, 11488, 0, 120786, 0, 0, + 10558, 63885, 0, 11822, 0, 43189, 0, 0, 1788, 1579, 120482, 917817, 0, 0, + 0, 9028, 119571, 0, 0, 0, 1285, 64882, 41242, 0, 0, 12640, 0, 66642, 0, + 12625, 0, 0, 0, 3940, 41597, 0, 3396, 12642, 8665, 0, 0, 12630, 1653, 0, + 10153, 0, 6166, 120516, 120523, 0, 8815, 66673, 65046, 9285, 913, 42259, + 119317, 119318, 119315, 119316, 42485, 118837, 7878, 8211, 42293, 64377, + 0, 0, 0, 0, 12032, 0, 9725, 0, 0, 5263, 12818, 0, 41939, 10022, 65387, + 118831, 42777, 10139, 980, 0, 65386, 0, 0, 0, 43198, 7184, 0, 194797, + 917819, 10085, 119992, 0, 119999, 6634, 0, 0, 119323, 8072, 119321, + 119322, 0, 8872, 7783, 917992, 12398, 8237, 0, 0, 12395, 0, 0, 120565, + 9914, 127011, 917854, 73975, 74281, 0, 0, 0, 917853, 0, 64735, 41243, 0, + 7808, 1829, 0, 41937, 4358, 43272, 0, 0, 0, 0, 0, 1710, 0, 0, 0, 0, 49, + 6627, 0, 6258, 10683, 0, 9741, 120423, 5649, 917986, 0, 64418, 1643, + 74104, 8405, 3470, 0, 13213, 42452, 917987, 0, 120009, 0, 1072, 0, + 917990, 0, 6576, 41988, 41132, 65675, 1080, 120002, 74100, 0, 1101, + 120001, 12309, 0, 0, 12632, 1086, 1869, 0, 7680, 0, 65458, 120714, 12639, + 3380, 8123, 1091, 12638, 7977, 4501, 0, 0, 66309, 0, 0, 1494, 0, 0, 0, + 11693, 0, 10494, 119230, 65872, 12363, 11386, 0, 0, 0, 0, 64582, 0, + 73794, 0, 8022, 0, 0, 74106, 12413, 0, 0, 0, 0, 5570, 1881, 7210, 0, + 1012, 66630, 0, 120709, 7208, 66442, 5569, 0, 42339, 0, 6063, 0, 0, 0, + 6053, 65602, 0, 0, 64727, 9160, 194827, 0, 0, 0, 10503, 118810, 6055, + 3870, 4279, 8490, 120114, 4319, 64786, 8602, 120110, 11326, 0, 0, 0, + 120119, 120413, 120117, 120118, 120099, 120100, 65087, 5571, 3674, 9740, + 9121, 5568, 120107, 120108, 42085, 10107, 64567, 42870, 120101, 589, + 7050, 0, 43281, 10233, 41263, 66251, 65729, 66253, 0, 74099, 42645, 0, + 194815, 8583, 0, 5847, 6928, 0, 0, 0, 0, 0, 66592, 12204, 0, 19966, 0, + 42561, 120626, 0, 0, 8120, 120701, 0, 0, 0, 41063, 0, 10664, 0, 8369, 0, + 4551, 0, 74759, 0, 0, 9673, 66334, 65580, 10478, 127002, 12517, 557, + 9457, 12034, 0, 41056, 12519, 41004, 0, 0, 74094, 0, 0, 119001, 0, 0, 0, + 12111, 3927, 0, 12515, 1474, 67893, 5492, 6923, 0, 10441, 73836, 0, 0, + 5493, 0, 74319, 0, 66635, 12019, 0, 1618, 0, 0, 9645, 10430, 0, 5853, + 13063, 10363, 0, 12956, 0, 0, 11314, 0, 12060, 0, 0, 12826, 0, 0, 10514, + 65517, 74395, 2707, 8309, 0, 127054, 0, 43570, 2697, 0, 0, 127057, 2695, + 42171, 0, 0, 0, 67617, 194814, 0, 2693, 12125, 12766, 0, 1164, 0, 0, + 41918, 0, 0, 8687, 66009, 12178, 7053, 0, 7469, 0, 5248, 12218, 120538, + 6427, 42884, 41123, 0, 0, 42873, 41126, 9991, 41128, 74371, 127031, 0, + 9873, 0, 42877, 7994, 64762, 6104, 42843, 6591, 9340, 0, 1589, 0, 296, + 74438, 0, 0, 67841, 74370, 0, 8922, 0, 74600, 74435, 74836, 0, 12579, 0, + 12575, 6416, 5656, 2891, 13262, 65590, 5299, 0, 11473, 5449, 1252, 0, 0, + 41431, 74369, 65373, 5295, 0, 74114, 1223, 1642, 174, 0, 883, 4161, + 12691, 42603, 41413, 3212, 127025, 3211, 74810, 41425, 127029, 0, 74450, + 9728, 3846, 8070, 6150, 6636, 4370, 0, 0, 74178, 74587, 74117, 0, 0, 0, + 4986, 12189, 0, 0, 120499, 917553, 4257, 12104, 119182, 6220, 9004, + 65561, 0, 0, 0, 68135, 917576, 0, 0, 0, 0, 9890, 0, 12971, 0, 0, 73898, + 11979, 0, 118900, 0, 0, 9635, 12600, 8871, 0, 0, 0, 6469, 74227, 0, + 65304, 4679, 10230, 64300, 64867, 3427, 4240, 0, 0, 0, 0, 917952, 0, 0, + 0, 7282, 0, 65733, 64618, 0, 0, 3494, 74606, 6555, 0, 0, 0, 0, 0, 0, 0, + 65898, 0, 65312, 5447, 0, 12895, 65593, 4010, 0, 41106, 0, 65804, 0, + 41105, 0, 65820, 6232, 0, 0, 0, 43608, 119091, 0, 6538, 4335, 0, 3941, + 41122, 11061, 0, 64892, 9113, 1954, 12155, 0, 42878, 0, 0, 0, 74578, 0, + 65832, 0, 0, 0, 0, 0, 4586, 0, 350, 10951, 0, 509, 0, 0, 0, 0, 0, 5133, + 0, 0, 9500, 0, 12162, 64741, 0, 9354, 0, 0, 0, 2496, 11516, 944, 118851, + 3890, 12168, 1438, 0, 0, 0, 41947, 1220, 120828, 0, 0, 0, 1571, 42630, + 41949, 42805, 8270, 943, 564, 0, 312, 41980, 0, 0, 0, 8877, 269, 4429, + 6272, 9617, 1460, 6954, 0, 41120, 65121, 10862, 6060, 41119, 41416, + 74355, 4173, 0, 0, 0, 1906, 0, 11532, 74073, 0, 0, 1985, 6296, 9582, + 917895, 64287, 0, 0, 11428, 1730, 2457, 0, 19918, 10469, 0, 0, 7703, + 8840, 8035, 0, 0, 0, 0, 6129, 0, 0, 0, 0, 7874, 8681, 0, 0, 13136, 0, 0, + 74278, 63886, 118881, 9605, 73892, 13220, 0, 0, 5514, 0, 9228, 0, 0, 0, + 5240, 9811, 10012, 3096, 0, 0, 0, 66676, 65873, 0, 0, 0, 9501, 0, 1272, + 64536, 65465, 64654, 7467, 0, 1467, 10158, 10040, 0, 9519, 0, 0, 0, + 118899, 12193, 0, 0, 0, 0, 0, 19935, 0, 0, 0, 0, 0, 0, 5275, 0, 0, 8637, + 0, 0, 3789, 63880, 11471, 43554, 65862, 11474, 66332, 66603, 0, 0, 12042, + 0, 0, 9537, 3961, 12115, 0, 2605, 4500, 64561, 0, 4981, 0, 0, 63876, + 11667, 0, 0, 42362, 64686, 4499, 41649, 7589, 0, 0, 3237, 0, 120194, 0, + 8541, 0, 0, 41866, 0, 0, 0, 0, 0, 43555, 2823, 9559, 0, 41940, 8299, + 41945, 0, 41941, 3308, 7190, 64880, 8614, 65220, 41493, 0, 41699, 10762, + 0, 12999, 0, 0, 8106, 4128, 0, 0, 4494, 0, 4012, 10395, 0, 119567, 65447, + 0, 0, 11004, 695, 739, 696, 7611, 0, 42755, 74802, 9227, 7506, 7510, 0, + 691, 738, 7511, 7512, 7515, 3868, 688, 41847, 690, 2548, 737, 974, 8003, + 0, 0, 0, 0, 3985, 0, 65860, 63921, 7051, 74208, 4682, 0, 12809, 6406, + 4685, 0, 10879, 10347, 4680, 9055, 0, 3851, 8132, 74325, 0, 917907, 0, + 41958, 119176, 917908, 0, 0, 0, 0, 7643, 42373, 11714, 67587, 43568, 0, + 11717, 7650, 10594, 64951, 7647, 7649, 0, 7646, 0, 0, 9651, 0, 3891, 0, + 0, 2337, 1735, 74324, 67860, 5452, 0, 0, 43561, 0, 0, 74146, 1860, 7495, + 7580, 5812, 7497, 7584, 0, 0, 0, 0, 7727, 0, 8498, 0, 8949, 3065, 0, 0, + 1569, 0, 12534, 12124, 7690, 0, 12533, 0, 6418, 4543, 0, 6969, 0, 74800, + 0, 0, 11980, 0, 0, 63894, 0, 12282, 66192, 0, 0, 8850, 74275, 9238, 0, 0, + 0, 0, 0, 12791, 0, 0, 0, 0, 73732, 12793, 12900, 0, 10950, 0, 0, 12790, + 41400, 119128, 0, 12792, 0, 0, 1744, 12789, 10366, 12317, 41310, 0, + 41399, 0, 0, 0, 0, 12690, 0, 0, 0, 0, 41652, 2974, 0, 11315, 0, 278, 0, + 41405, 119254, 0, 10077, 63853, 74557, 42586, 0, 0, 6002, 0, 43553, 0, + 67903, 0, 12787, 41308, 7934, 65306, 0, 0, 0, 8646, 0, 0, 0, 0, 6413, + 6550, 0, 1940, 0, 66223, 220, 65193, 43551, 10678, 10044, 0, 0, 0, 0, + 6403, 5707, 10393, 0, 0, 66614, 0, 0, 0, 10297, 0, 3742, 0, 3959, 0, 0, + 0, 2467, 0, 6003, 63844, 6663, 8040, 0, 63845, 4182, 0, 4676, 120501, 0, + 0, 2510, 0, 10208, 0, 0, 11540, 43546, 12186, 0, 41060, 0, 0, 9083, 0, 0, + 0, 1559, 63831, 9677, 120260, 0, 65256, 0, 74070, 0, 0, 365, 12056, + 43027, 0, 41716, 0, 0, 0, 5516, 2845, 7717, 8036, 41717, 73827, 544, + 12045, 6278, 0, 5515, 0, 0, 0, 0, 43221, 65194, 0, 5517, 0, 0, 0, 67884, + 0, 67890, 67885, 67880, 67881, 67882, 67883, 0, 0, 67879, 0, 1902, 67887, + 9638, 12976, 0, 12483, 67872, 41769, 0, 41765, 0, 6667, 67874, 7556, + 67878, 74351, 11264, 989, 67876, 67889, 0, 1311, 0, 4326, 11000, 63824, + 13068, 10932, 0, 6917, 0, 0, 949, 917595, 0, 6148, 8605, 42253, 917967, + 0, 0, 0, 0, 0, 0, 63871, 0, 41796, 1269, 6530, 0, 65057, 0, 5144, 12221, + 0, 0, 4431, 4331, 0, 0, 41834, 5279, 0, 10336, 8312, 0, 118861, 0, 0, + 119654, 66036, 0, 0, 6428, 42270, 0, 0, 118866, 0, 5256, 1067, 255, + 12131, 0, 9493, 0, 41014, 11793, 0, 0, 74394, 43594, 10653, 0, 0, 119632, + 0, 6560, 7016, 74274, 0, 43556, 3929, 0, 6614, 2768, 0, 9746, 5135, + 11811, 12796, 11953, 0, 0, 5139, 346, 74303, 6305, 12795, 4675, 5168, 0, + 0, 74315, 74361, 8253, 8817, 1136, 0, 43563, 0, 0, 0, 65285, 8230, 9365, + 0, 0, 0, 0, 0, 4041, 0, 2357, 0, 12786, 229, 119885, 119884, 0, 43552, + 119881, 12350, 65554, 119882, 119877, 119876, 12785, 63863, 119873, 7770, + 10712, 64853, 12686, 118916, 42375, 0, 0, 66352, 10470, 0, 11059, 10791, + 0, 450, 0, 0, 10432, 12097, 5450, 64691, 1233, 0, 63856, 0, 66338, 0, 0, + 1839, 118799, 0, 10927, 1701, 0, 2388, 41749, 41761, 5453, 8361, 119865, + 41758, 5444, 41763, 64889, 119860, 119863, 119862, 0, 0, 0, 66432, 8801, + 3053, 4340, 0, 0, 65812, 0, 0, 41824, 0, 194801, 194800, 194803, 118997, + 194805, 194804, 194807, 194806, 194809, 194808, 0, 0, 4493, 4336, 0, + 2314, 43602, 0, 119325, 194811, 42439, 64638, 42327, 43528, 4489, 194791, + 0, 194793, 1912, 42385, 10306, 10370, 0, 0, 8867, 10250, 10258, 2712, + 1635, 194798, 1410, 0, 0, 118878, 0, 0, 0, 0, 559, 0, 41825, 0, 0, 4892, + 74016, 194781, 6542, 41957, 0, 5777, 0, 759, 65749, 65750, 65248, 12788, + 64487, 64552, 0, 10223, 42062, 0, 0, 0, 3668, 65754, 43560, 12226, 0, + 65149, 2340, 41959, 194786, 194785, 194788, 120154, 65747, 10937, 2962, + 0, 2321, 3587, 65745, 0, 8921, 66013, 0, 0, 194769, 194768, 194771, + 194770, 2949, 66012, 194775, 194774, 2958, 194776, 41820, 43038, 2395, 0, + 0, 120043, 194778, 120058, 194780, 194779, 42809, 42807, 0, 120047, + 10198, 4150, 64371, 8318, 41790, 0, 41898, 2360, 41794, 917942, 0, 0, 0, + 0, 2418, 0, 2411, 11336, 799, 63823, 10276, 10308, 10372, 917541, 41772, + 42813, 2317, 10260, 118980, 119576, 0, 0, 10384, 0, 0, 0, 7753, 2351, + 6655, 64489, 0, 0, 0, 0, 42779, 230, 0, 0, 43549, 4855, 42150, 65739, + 5441, 41896, 10288, 10320, 0, 855, 7046, 6109, 65045, 63839, 119116, 0, + 10098, 0, 74145, 0, 10264, 10280, 9184, 10376, 7013, 4467, 0, 0, 0, + 41887, 0, 4862, 9735, 6537, 120591, 0, 3914, 119604, 0, 9065, 12961, 0, + 0, 0, 0, 289, 0, 4694, 11420, 4690, 0, 120514, 0, 4693, 0, 73919, 0, + 4688, 120454, 0, 0, 119629, 8238, 3110, 120162, 0, 120163, 6528, 0, + 43035, 120161, 218, 0, 1520, 0, 4786, 0, 43225, 0, 0, 120158, 10088, + 6548, 0, 120156, 0, 8988, 8888, 0, 0, 0, 0, 10666, 0, 73902, 0, 0, 0, 0, + 0, 0, 4689, 8932, 0, 65560, 119209, 74441, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10065, 8207, 0, 0, 0, 0, 662, 0, 9244, 0, 0, 119261, 0, 0, 0, 0, 41929, + 0, 0, 0, 41926, 0, 120443, 10513, 64637, 0, 0, 52, 13118, 6475, 0, 0, + 12095, 10225, 4812, 0, 0, 0, 74085, 0, 3978, 0, 0, 0, 11582, 120761, + 12281, 0, 6544, 13241, 0, 0, 0, 194860, 11765, 65258, 10369, 0, 1585, + 7192, 10249, 422, 1500, 2036, 986, 194859, 64394, 5781, 5599, 64294, + 2494, 120450, 4861, 74021, 64334, 0, 0, 0, 0, 65102, 8961, 0, 10243, + 10245, 0, 0, 0, 120453, 64821, 9478, 2508, 0, 0, 202, 0, 74131, 1242, 0, + 0, 63940, 0, 64533, 0, 0, 67842, 11990, 0, 63939, 0, 65440, 2504, 0, 0, + 64829, 0, 6943, 0, 5859, 0, 2858, 0, 74294, 0, 74305, 0, 119027, 12992, + 2753, 1936, 74491, 0, 2751, 12662, 2763, 8953, 64701, 10731, 12922, 0, 0, + 0, 0, 0, 0, 74128, 2856, 119910, 47, 119911, 126986, 65858, 0, 0, 0, + 7899, 0, 8417, 65903, 7072, 0, 0, 4033, 0, 66474, 0, 0, 212, 64600, 1903, + 12320, 0, 0, 0, 0, 8915, 2759, 945, 0, 0, 0, 0, 0, 1291, 74828, 0, 0, + 9531, 13155, 8505, 0, 12062, 0, 0, 65487, 0, 41837, 120611, 120432, 0, 0, + 0, 120433, 0, 63935, 73962, 0, 64787, 43524, 0, 64426, 0, 0, 0, 0, 65664, + 64785, 9843, 0, 8674, 0, 0, 0, 0, 12624, 0, 1673, 4811, 0, 5986, 9338, + 3046, 74480, 5985, 917928, 119598, 9820, 0, 12187, 0, 0, 5984, 0, 43308, + 4393, 0, 0, 0, 0, 0, 74826, 64733, 0, 0, 3491, 0, 0, 0, 3514, 65485, 0, + 7492, 0, 0, 0, 7514, 0, 0, 194731, 7502, 7587, 0, 0, 0, 63925, 0, 7610, + 219, 0, 0, 692, 43588, 74433, 41635, 0, 9688, 0, 9535, 0, 0, 0, 0, 0, + 64610, 11804, 0, 0, 7453, 0, 8013, 0, 0, 0, 8895, 5253, 0, 5458, 0, 2866, + 0, 0, 65111, 0, 12018, 120484, 0, 0, 0, 8962, 0, 9641, 66653, 7059, 0, 0, + 9604, 0, 7441, 63826, 0, 118941, 64392, 0, 0, 2844, 0, 41974, 0, 12139, + 0, 0, 0, 3358, 65295, 0, 3104, 0, 0, 0, 0, 5308, 0, 290, 0, 0, 2862, + 2792, 195088, 0, 0, 3268, 66591, 0, 6552, 42367, 7035, 120558, 0, 0, + 1814, 0, 10240, 0, 195092, 0, 119020, 0, 0, 42646, 7606, 2591, 2837, + 4341, 0, 64482, 0, 8163, 65270, 0, 0, 0, 9112, 74431, 863, 9490, 0, 0, + 43323, 120513, 0, 9071, 0, 0, 3654, 0, 9637, 0, 2535, 65504, 7653, 40993, + 0, 66587, 195098, 0, 0, 0, 11006, 12927, 7807, 8073, 0, 10629, 0, 74088, + 3056, 10823, 0, 0, 8762, 10508, 74506, 73770, 63994, 43193, 10737, 3463, + 0, 0, 66633, 8695, 4815, 11322, 5811, 12345, 7049, 0, 5195, 0, 0, 66639, + 0, 0, 0, 0, 0, 120561, 1262, 0, 6561, 19939, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 119907, 64612, 11991, 0, 0, 0, 1502, 0, 0, 9107, 0, 5702, 3655, 0, 8430, + 0, 74132, 0, 0, 74057, 9603, 0, 5254, 120742, 7724, 74388, 74838, 10796, + 5129, 0, 0, 590, 7579, 5614, 5893, 194744, 11720, 0, 11721, 0, 0, 0, + 120541, 66038, 4793, 67851, 11726, 0, 74204, 0, 0, 917600, 894, 300, 0, + 12306, 66235, 0, 0, 0, 2562, 0, 0, 42503, 0, 11652, 0, 0, 119241, 0, 0, + 5096, 5095, 2863, 3424, 0, 10454, 42530, 5094, 119638, 0, 13156, 0, + 10832, 5093, 0, 0, 0, 5092, 10708, 11327, 0, 5091, 176, 0, 9153, 4104, 0, + 0, 1215, 0, 5744, 12272, 9832, 11777, 0, 0, 42881, 0, 8980, 118988, + 67861, 8844, 7433, 0, 0, 4278, 0, 0, 0, 0, 9074, 4348, 0, 65558, 65946, + 8113, 7087, 5255, 1786, 661, 0, 0, 0, 74423, 0, 586, 74414, 64359, 1267, + 0, 0, 0, 65731, 0, 0, 3621, 0, 66666, 0, 0, 6562, 12928, 0, 1228, 65490, + 11383, 0, 0, 0, 1714, 74406, 0, 0, 0, 0, 66225, 0, 0, 0, 11436, 119615, + 64, 0, 0, 10291, 10323, 2826, 0, 0, 0, 42008, 9708, 0, 0, 42011, 41999, + 0, 12206, 5839, 1702, 1240, 74065, 6286, 0, 0, 65833, 0, 0, 1765, 0, 0, + 65588, 0, 0, 0, 8401, 0, 42014, 0, 7030, 0, 10479, 64959, 2852, 0, 0, 0, + 0, 0, 0, 6963, 0, 12667, 0, 74786, 10147, 12935, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64947, 12467, 2864, 64719, 1148, 10435, 11462, 41675, 0, 2765, 0, + 0, 0, 0, 0, 0, 66662, 0, 0, 9364, 194685, 74416, 0, 0, 119244, 263, + 10449, 41288, 0, 41839, 0, 0, 0, 0, 6931, 0, 64355, 7177, 120530, 0, 0, + 0, 4262, 10285, 10722, 42020, 0, 0, 6992, 42019, 0, 41290, 0, 750, 0, 0, + 10163, 0, 74066, 7032, 5954, 64931, 4314, 0, 198, 0, 730, 0, 0, 0, 0, + 13165, 10814, 74171, 42804, 678, 8240, 118960, 0, 41378, 11008, 6938, 0, + 0, 42812, 66246, 120560, 0, 0, 0, 3892, 0, 0, 0, 66045, 41470, 64805, 0, + 0, 0, 118982, 0, 497, 12100, 5953, 0, 7796, 0, 0, 73831, 0, 10293, 5952, + 1281, 0, 0, 0, 10677, 604, 41097, 9182, 1859, 0, 0, 3425, 0, 0, 2836, 0, + 0, 9707, 0, 43202, 0, 0, 65199, 1738, 0, 0, 2832, 0, 9670, 12937, 0, 0, + 0, 0, 2822, 0, 4436, 0, 0, 73752, 0, 64872, 0, 1331, 0, 0, 0, 12708, 0, + 5090, 5089, 0, 0, 119109, 0, 0, 319, 118931, 0, 9477, 0, 0, 5087, 0, + 7640, 96, 5086, 0, 0, 0, 5085, 64286, 0, 0, 41422, 0, 119901, 42356, + 3772, 0, 0, 5011, 0, 0, 0, 0, 0, 0, 6677, 7601, 0, 591, 64419, 118953, 0, + 0, 118923, 0, 0, 10939, 6106, 6933, 41271, 0, 119903, 4534, 41270, 0, 0, + 65574, 0, 9224, 0, 3671, 8976, 0, 0, 41275, 0, 0, 0, 7963, 42013, 0, 568, + 0, 41273, 0, 0, 0, 0, 9715, 0, 8258, 11753, 74820, 0, 9602, 118919, 42, + 0, 0, 0, 0, 7458, 0, 0, 65385, 0, 0, 11958, 0, 0, 0, 6254, 0, 66336, + 8045, 11550, 0, 0, 0, 42858, 11789, 65868, 5557, 917946, 9737, 13109, 0, + 9467, 5558, 8878, 0, 195036, 7451, 7435, 10146, 0, 9086, 64566, 0, 64584, + 7437, 7454, 12594, 0, 0, 4546, 7731, 0, 917948, 74243, 0, 3805, 0, 0, 0, + 41008, 0, 6307, 19949, 0, 7544, 0, 43525, 0, 0, 10152, 64422, 65091, + 119113, 7602, 64729, 0, 43521, 0, 42302, 0, 43523, 41447, 5559, 0, 8704, + 2397, 5556, 0, 0, 0, 9011, 9630, 0, 0, 0, 5506, 0, 1911, 66652, 0, 12598, + 8845, 66698, 0, 10792, 8889, 0, 6951, 0, 64751, 0, 66622, 0, 0, 74364, 0, + 0, 0, 74365, 7552, 0, 0, 65384, 7223, 4559, 0, 1956, 43138, 7024, 65728, + 64501, 1210, 0, 65175, 10184, 43140, 65727, 0, 0, 0, 38, 8533, 66669, 0, + 0, 0, 0, 4357, 0, 0, 0, 74233, 119846, 119852, 42860, 119838, 10941, + 65721, 6962, 0, 0, 0, 0, 11014, 0, 8942, 12000, 0, 0, 0, 11974, 0, 42772, + 0, 11650, 5013, 0, 0, 66210, 118914, 6613, 0, 0, 0, 0, 0, 64714, 0, 0, 0, + 12120, 0, 0, 11024, 74811, 0, 10563, 0, 0, 43522, 2462, 0, 1837, 0, + 63972, 6957, 0, 120559, 4952, 65718, 65827, 5504, 65720, 65714, 65715, + 65716, 0, 127005, 127119, 3109, 63975, 74028, 0, 8107, 119234, 1127, 455, + 0, 0, 0, 3483, 127122, 1989, 0, 0, 9104, 3503, 65375, 0, 0, 42633, 1864, + 0, 74306, 41446, 2540, 7736, 0, 74064, 0, 10521, 0, 42173, 9705, 74124, + 8604, 6955, 10916, 0, 6149, 3887, 19956, 1411, 2824, 0, 10106, 0, 1403, + 0, 1347, 9631, 74444, 0, 0, 0, 0, 8640, 0, 258, 1654, 0, 0, 0, 43314, 0, + 0, 4042, 11478, 2873, 63977, 11522, 41668, 8549, 10861, 0, 0, 0, 0, 0, + 74585, 41391, 0, 917903, 376, 6987, 9221, 0, 0, 8823, 0, 12943, 65185, + 41869, 12619, 0, 10154, 0, 74439, 2039, 0, 7446, 1684, 63979, 10974, 458, + 120620, 0, 0, 0, 11916, 65016, 0, 0, 42115, 0, 12288, 0, 0, 1493, 42111, + 7553, 4097, 0, 13080, 0, 65808, 6610, 6030, 8059, 7508, 41636, 0, 0, 0, + 8794, 41278, 41629, 12154, 0, 41277, 64658, 0, 64380, 6625, 0, 19904, 0, + 0, 0, 65371, 7078, 0, 833, 0, 74592, 0, 10979, 41953, 0, 41434, 6062, 0, + 0, 19916, 6913, 933, 1341, 9842, 0, 65744, 0, 0, 0, 0, 41615, 10105, + 65810, 0, 41632, 7493, 0, 0, 41622, 0, 0, 119556, 74584, 7632, 9716, + 19954, 9805, 5990, 900, 0, 63957, 0, 0, 3612, 0, 64376, 0, 5389, 0, 0, + 65938, 2839, 9621, 582, 0, 74368, 3749, 6949, 7569, 74061, 0, 0, 6956, + 4403, 19962, 65559, 3299, 0, 0, 119127, 9002, 0, 74372, 74236, 8478, + 7598, 546, 42469, 65569, 1918, 9542, 472, 7716, 10319, 10383, 6996, 0, + 63952, 8425, 3602, 8328, 11764, 118894, 0, 0, 41183, 12907, 10271, 10287, + 684, 74185, 0, 2854, 119586, 4592, 65755, 0, 0, 11963, 65753, 0, 0, 0, 0, + 0, 9881, 0, 65757, 3415, 0, 0, 8648, 0, 118886, 43047, 0, 13180, 0, 418, + 0, 0, 10295, 10327, 10391, 41752, 74339, 8641, 41449, 0, 0, 0, 10911, + 6942, 0, 1024, 42849, 41751, 0, 8941, 0, 4554, 0, 9023, 11685, 0, 0, 0, + 0, 11437, 0, 0, 120700, 63967, 0, 41206, 120724, 9049, 41185, 43166, 0, + 11680, 0, 11686, 0, 65224, 4565, 4655, 119553, 0, 0, 64523, 10343, 10407, + 0, 66671, 11466, 0, 0, 42890, 0, 12050, 194750, 2860, 0, 0, 0, 42792, + 5743, 10424, 12065, 42872, 0, 0, 0, 8875, 0, 0, 917991, 7531, 12847, + 2413, 0, 0, 962, 0, 12855, 41196, 42564, 0, 1582, 0, 5508, 0, 0, 0, + 10801, 0, 118798, 0, 7173, 496, 10439, 4313, 64607, 119557, 7860, 0, 906, + 42793, 2842, 6405, 64722, 13132, 798, 64694, 12801, 8406, 1153, 0, 64788, + 0, 8054, 9174, 194749, 917976, 0, 0, 41611, 4642, 66574, 11556, 0, 0, 0, + 42089, 0, 9008, 0, 0, 195096, 42079, 917981, 917996, 42513, 0, 42842, + 73985, 0, 118974, 127003, 0, 0, 0, 0, 11335, 64069, 42093, 3920, 0, 0, 0, + 0, 4580, 41967, 0, 64384, 0, 119158, 3021, 42004, 0, 0, 42317, 41998, 0, + 6946, 0, 0, 0, 0, 65204, 0, 68113, 65196, 9880, 42010, 0, 64589, 10111, + 64875, 0, 0, 0, 11360, 0, 0, 0, 0, 42149, 0, 0, 0, 64941, 0, 0, 0, 0, + 65671, 4110, 66005, 6959, 10929, 119110, 0, 66703, 0, 8617, 41982, 6025, + 0, 0, 0, 0, 0, 9597, 42099, 43172, 0, 10117, 0, 0, 41642, 0, 0, 0, 8301, + 0, 0, 187, 0, 65669, 0, 4963, 0, 0, 0, 8964, 65676, 65785, 0, 41948, 0, + 0, 0, 41942, 65449, 3160, 10081, 13226, 42121, 42475, 0, 0, 41766, 0, + 65882, 0, 41760, 1189, 905, 480, 10985, 41733, 67859, 9629, 42436, 1745, + 0, 73835, 7888, 0, 0, 0, 0, 41507, 8806, 7023, 0, 74279, 64540, 0, 7867, + 0, 6236, 0, 0, 10505, 0, 12851, 118948, 348, 5474, 0, 3103, 0, 41753, 0, + 0, 0, 0, 0, 41739, 0, 42515, 10931, 41756, 43347, 42560, 5391, 41746, + 119147, 0, 41259, 5561, 74360, 2691, 0, 65553, 7933, 5562, 0, 0, 41262, + 0, 64421, 74846, 41251, 0, 0, 3979, 0, 0, 74813, 0, 0, 0, 0, 118847, + 41266, 0, 0, 917630, 10585, 65741, 41737, 9574, 2666, 0, 41738, 831, 419, + 13126, 10716, 0, 42822, 0, 6434, 0, 6939, 7766, 6432, 0, 0, 916, 769, + 41742, 11968, 120557, 6433, 5563, 547, 1943, 6439, 5560, 4994, 487, 0, + 4497, 3754, 0, 120424, 9039, 0, 41776, 0, 8716, 1595, 119206, 0, 0, + 74260, 0, 43267, 0, 0, 0, 12185, 0, 0, 0, 0, 0, 42856, 8634, 0, 0, 4209, + 120702, 0, 65879, 41538, 65612, 0, 669, 5679, 0, 0, 118961, 0, 0, 5678, + 11821, 0, 0, 460, 0, 0, 0, 0, 120747, 0, 0, 0, 119022, 0, 0, 0, 7782, + 9044, 4974, 11760, 917547, 7577, 65711, 41912, 1216, 0, 0, 5792, 0, 0, 0, + 0, 42264, 12244, 0, 5683, 0, 0, 0, 1549, 0, 0, 120398, 5682, 6206, 8670, + 74520, 5680, 917568, 10001, 0, 0, 1449, 10241, 0, 0, 0, 10552, 64342, + 41922, 0, 8584, 0, 5567, 2717, 0, 0, 5564, 42886, 41908, 42882, 5565, 0, + 0, 0, 65708, 65709, 5566, 0, 65704, 65705, 11904, 42875, 0, 42539, 5942, + 8468, 0, 10361, 10425, 65697, 65698, 65699, 0, 66598, 0, 64664, 10647, 0, + 0, 0, 457, 0, 65701, 1934, 43006, 0, 8802, 0, 65130, 0, 0, 6087, 0, 0, + 41757, 0, 8043, 8950, 65694, 64485, 43534, 10457, 0, 11961, 119006, 0, 0, + 0, 0, 0, 65515, 9499, 10035, 13069, 0, 0, 9889, 68184, 42806, 0, 7256, 0, + 0, 1667, 42161, 0, 42428, 0, 6934, 0, 10802, 64861, 6556, 0, 0, 8101, + 3610, 0, 41748, 4995, 955, 65907, 119208, 5350, 64339, 0, 64549, 10875, + 917956, 5477, 65692, 0, 0, 0, 12896, 10456, 917954, 0, 3874, 0, 0, 0, 0, + 0, 0, 65603, 0, 65687, 0, 41038, 74009, 119570, 67857, 8536, 0, 0, 0, + 74432, 724, 0, 1455, 0, 7183, 64583, 119233, 0, 4175, 917962, 0, 0, 939, + 0, 43520, 0, 74569, 917958, 0, 917959, 917945, 194704, 10788, 6088, 0, 0, + 190, 0, 12593, 0, 8188, 64408, 0, 4417, 0, 0, 41744, 0, 7827, 0, 6965, 0, + 0, 13201, 0, 0, 0, 74382, 73781, 7918, 73988, 0, 0, 917884, 1728, 0, + 120710, 178, 12972, 0, 0, 0, 120671, 0, 0, 0, 120405, 65690, 0, 0, + 119054, 0, 9252, 917889, 4652, 74259, 0, 0, 0, 13065, 9923, 10806, 0, + 11763, 0, 120688, 0, 119098, 0, 6993, 0, 0, 8333, 0, 0, 0, 0, 74464, 0, + 0, 74080, 0, 0, 11910, 0, 8278, 8963, 4034, 0, 0, 65344, 120517, 41747, + 0, 0, 8677, 0, 12707, 9350, 66037, 0, 8836, 12315, 12747, 8300, 0, 0, + 7491, 8856, 0, 0, 43150, 0, 120404, 65389, 120402, 120403, 10813, 2592, + 12853, 43269, 7263, 120244, 6536, 120238, 120239, 65516, 12321, 120391, + 120388, 120389, 10007, 120246, 9588, 120248, 1596, 120383, 41994, 65801, + 0, 0, 66572, 0, 0, 10613, 8092, 12805, 41928, 40981, 0, 0, 5006, 64328, + 0, 65298, 0, 8825, 74555, 65940, 0, 0, 6107, 0, 119177, 0, 0, 0, 11783, + 335, 120227, 64689, 438, 4510, 5765, 8721, 120233, 119227, 6092, 12840, + 43112, 8876, 120231, 8096, 10284, 0, 0, 0, 10380, 8733, 0, 0, 41602, 0, + 0, 74831, 917901, 0, 73747, 65399, 0, 64591, 42405, 0, 917897, 843, + 11541, 0, 0, 0, 41935, 74496, 41902, 0, 0, 215, 41258, 0, 43159, 1953, + 9579, 41938, 1256, 3910, 9407, 6242, 0, 0, 41257, 41900, 8675, 10700, + 8805, 1742, 0, 9333, 8202, 0, 0, 0, 0, 0, 73882, 499, 0, 0, 0, 126983, 0, + 1712, 5932, 0, 41762, 0, 0, 11967, 1775, 0, 0, 0, 0, 0, 9458, 0, 6470, + 9180, 120380, 43176, 0, 0, 42782, 0, 0, 0, 917912, 74777, 120669, 9414, + 120382, 73782, 73969, 565, 42484, 5794, 201, 2662, 42292, 0, 8254, 0, + 10975, 0, 120625, 74763, 1022, 4108, 3880, 74247, 0, 0, 0, 917980, 7507, + 0, 43149, 0, 65031, 7961, 1636, 0, 65029, 65024, 0, 12473, 6534, 0, 99, + 98, 97, 120571, 67584, 4049, 0, 0, 7090, 0, 7892, 917969, 10777, 0, + 65310, 65562, 66599, 0, 0, 8039, 3363, 66594, 0, 0, 0, 12596, 66595, + 42258, 42570, 5593, 119148, 120711, 0, 10100, 6061, 64854, 119, 118, 117, + 116, 12998, 122, 121, 120, 111, 110, 109, 108, 115, 114, 113, 112, 103, + 102, 101, 100, 107, 106, 105, 104, 6436, 73974, 534, 41212, 0, 1536, + 64093, 73970, 0, 0, 0, 6020, 12716, 127112, 12744, 475, 120394, 13266, 0, + 127111, 0, 73926, 0, 10645, 1212, 6543, 0, 8134, 0, 2913, 73870, 0, 1866, + 0, 195095, 0, 8923, 1645, 12059, 66585, 0, 3196, 0, 0, 5935, 1250, 0, + 8174, 9787, 9856, 9859, 7916, 9861, 9860, 5258, 1882, 1892, 0, 10882, + 405, 11454, 73911, 0, 0, 41169, 8939, 41245, 0, 41170, 1454, 11369, 6477, + 12157, 0, 0, 0, 41172, 7855, 0, 0, 10480, 0, 0, 0, 8264, 12610, 0, 645, + 0, 7609, 40973, 0, 0, 0, 5824, 984, 0, 10688, 5851, 0, 7729, 73982, + 120518, 0, 195086, 66722, 0, 0, 0, 0, 4538, 120406, 43141, 0, 0, 74214, + 0, 0, 0, 118902, 43005, 0, 9552, 0, 0, 0, 12997, 0, 0, 0, 0, 2381, 12883, + 10994, 10529, 41906, 0, 0, 0, 12425, 10661, 10856, 9614, 2428, 41478, + 8582, 10064, 73930, 0, 0, 0, 64896, 119162, 1952, 0, 8455, 10082, 11575, + 0, 119566, 0, 12808, 12183, 6145, 0, 64929, 0, 0, 0, 43186, 42509, 0, + 3922, 9187, 0, 0, 0, 119057, 11752, 3353, 9358, 0, 0, 66680, 120090, + 11747, 7931, 8558, 9795, 0, 0, 0, 120082, 120081, 120084, 41027, 120086, + 0, 120088, 120087, 7019, 120073, 0, 11751, 120078, 120077, 64657, 8657, + 120048, 8594, 120068, 0, 0, 120069, 120072, 120071, 0, 0, 43154, 41029, + 0, 11332, 65380, 7728, 0, 11294, 0, 66665, 7851, 0, 0, 8699, 0, 42524, 0, + 9085, 0, 7504, 9327, 6160, 0, 0, 0, 8088, 0, 74012, 0, 0, 4439, 6926, 0, + 12924, 0, 42369, 0, 65491, 65145, 9041, 43559, 64577, 10826, 0, 11296, 0, + 0, 0, 65825, 9577, 120494, 0, 64670, 0, 0, 42159, 11295, 0, 0, 120779, 0, + 0, 10902, 0, 0, 0, 0, 10472, 2995, 0, 0, 0, 2371, 0, 120808, 259, 1009, + 0, 2402, 2333, 6440, 0, 0, 65125, 41244, 0, 13271, 9103, 41180, 0, 0, 0, + 0, 10219, 0, 0, 0, 0, 43178, 127070, 41261, 119362, 917974, 8613, 0, + 118989, 917978, 917979, 41492, 12005, 917982, 0, 1890, 120056, 0, 0, 0, + 7293, 7991, 0, 10578, 0, 118840, 0, 0, 0, 0, 0, 0, 120054, 118815, 6635, + 0, 6164, 65170, 0, 0, 0, 11664, 0, 0, 0, 0, 118812, 0, 0, 0, 9175, 11925, + 0, 9088, 0, 64545, 1396, 0, 7546, 3847, 0, 0, 4985, 13288, 672, 8098, + 43196, 194746, 0, 0, 0, 74043, 65072, 1577, 11772, 0, 5928, 4525, 10658, + 65911, 1266, 10180, 0, 0, 12622, 0, 0, 0, 194714, 0, 13310, 773, 19933, + 1539, 0, 0, 66374, 0, 0, 0, 0, 3051, 5862, 7823, 0, 0, 120411, 3250, + 74020, 0, 66649, 9510, 66237, 0, 0, 41066, 64673, 917963, 917964, 0, + 3505, 8707, 917968, 917965, 917966, 917971, 917972, 3471, 917970, 5479, + 882, 6686, 119584, 11613, 120772, 42754, 0, 0, 0, 0, 0, 0, 0, 3225, 0, + 4433, 41156, 73745, 43173, 1443, 4381, 0, 0, 10926, 11756, 11757, 64879, + 917949, 917950, 917947, 13227, 0, 10021, 5160, 1387, 0, 917953, 41418, 0, + 65914, 917957, 217, 917955, 917960, 917961, 10443, 10789, 41158, 119257, + 4274, 0, 41483, 0, 41250, 0, 42179, 0, 5931, 11744, 0, 0, 41252, 66682, + 0, 119637, 41249, 1366, 64635, 0, 12466, 0, 0, 4397, 0, 0, 41296, 9545, + 41291, 0, 0, 41485, 3511, 41282, 5923, 10400, 0, 0, 760, 0, 12088, 5786, + 0, 42256, 119869, 119861, 417, 41474, 119562, 41565, 0, 5934, 119867, + 66583, 119231, 64877, 0, 64481, 0, 0, 41956, 0, 126995, 0, 0, 0, 42273, + 5819, 0, 917556, 0, 0, 0, 65910, 0, 10246, 0, 0, 1237, 10274, 4552, 0, 0, + 0, 1375, 66705, 43573, 65260, 42063, 0, 42811, 10312, 74192, 120794, + 7840, 0, 64890, 10252, 0, 0, 43185, 0, 4396, 0, 119880, 10769, 10331, + 119041, 0, 9753, 0, 8944, 0, 0, 10473, 0, 0, 6072, 43025, 10299, 0, 0, + 120608, 119874, 0, 0, 0, 0, 9330, 0, 7222, 10283, 10315, 10379, 4996, 0, + 13281, 66517, 7865, 10087, 0, 0, 119092, 0, 0, 7565, 66363, 12952, 64806, + 43180, 0, 68096, 0, 0, 74288, 622, 74023, 885, 64772, 1602, 0, 0, 852, 0, + 12160, 0, 10212, 65435, 0, 12071, 9609, 12156, 917983, 917984, 43586, + 11035, 10411, 917988, 10255, 10263, 10279, 4194, 10375, 917993, 0, 4315, + 12644, 917997, 917994, 917995, 43343, 0, 917998, 917999, 41177, 0, 0, + 917792, 0, 0, 8715, 0, 41179, 0, 43313, 0, 41176, 0, 994, 0, 8452, + 127103, 73966, 0, 0, 5921, 0, 2597, 0, 5922, 118903, 127109, 4186, + 127107, 127106, 127105, 73973, 0, 4406, 74601, 8480, 0, 9747, 0, 4413, 0, + 42268, 3198, 5924, 5920, 0, 6921, 0, 74007, 42869, 8418, 11681, 43169, + 10176, 0, 742, 0, 2893, 10772, 65276, 5937, 1914, 2553, 11682, 0, 0, 0, + 8363, 0, 2993, 7772, 3916, 0, 0, 1141, 42407, 8159, 718, 7572, 973, 0, + 120718, 3235, 2415, 43164, 0, 8018, 42333, 74756, 10675, 6937, 42486, 0, + 65390, 0, 0, 1202, 0, 0, 127037, 0, 0, 0, 0, 64542, 3260, 73829, 65388, + 0, 8419, 0, 127036, 0, 0, 74193, 0, 0, 0, 0, 1431, 0, 66565, 10821, 0, + 12804, 0, 8229, 1235, 3307, 11472, 0, 0, 4544, 0, 0, 0, 1740, 0, 8758, + 985, 12882, 64511, 0, 12068, 0, 0, 10141, 0, 63761, 8785, 4476, 0, 63763, + 12655, 8907, 0, 0, 0, 0, 0, 119572, 10665, 64616, 41572, 0, 0, 0, 41573, + 0, 3931, 0, 74143, 0, 0, 0, 0, 11982, 0, 0, 0, 0, 64484, 0, 41167, 0, + 41735, 0, 717, 10754, 0, 0, 0, 0, 63767, 0, 1780, 6936, 0, 0, 819, 10611, + 9694, 126978, 0, 0, 0, 0, 0, 0, 12820, 0, 6578, 7009, 7523, 6922, 74218, + 67848, 7525, 3346, 8339, 0, 0, 575, 268, 0, 8563, 0, 120343, 41541, + 65565, 8336, 5936, 7290, 0, 8337, 13081, 308, 11388, 7522, 120721, 0, + 65466, 11090, 6953, 0, 120346, 0, 120345, 5926, 0, 0, 0, 0, 0, 0, 9038, + 7887, 0, 7830, 11651, 13093, 64002, 0, 65742, 0, 119597, 11590, 0, 74048, + 0, 8595, 0, 0, 0, 13097, 0, 64643, 13283, 12697, 0, 120621, 3488, 5933, + 10033, 73738, 66241, 65570, 0, 12297, 119153, 1955, 0, 5349, 42538, 0, 0, + 65308, 9462, 0, 0, 0, 0, 0, 0, 5831, 0, 7638, 0, 42764, 0, 43109, 7637, + 11957, 120600, 0, 0, 0, 0, 0, 0, 0, 7636, 65171, 9124, 0, 120331, 0, 291, + 0, 0, 2027, 66230, 0, 0, 10403, 0, 4640, 64713, 10224, 120429, 42512, + 120431, 120430, 0, 0, 0, 0, 0, 0, 0, 119094, 74213, 7824, 0, 0, 41274, + 5778, 6302, 0, 0, 12680, 119130, 1417, 0, 194914, 9452, 0, 0, 11552, 0, + 0, 0, 65391, 0, 10172, 65453, 120408, 41264, 120410, 6426, 4641, 9179, + 64819, 64906, 41255, 42036, 41469, 41269, 120412, 41267, 4646, 120425, + 865, 42034, 120426, 120421, 4645, 42033, 120422, 0, 0, 64728, 0, 0, 0, + 1659, 919, 42784, 1671, 195089, 6069, 9219, 195090, 1661, 13120, 63784, + 195094, 10140, 9713, 119143, 0, 0, 0, 2306, 10485, 118943, 6068, 10612, + 195099, 0, 195101, 195078, 41462, 195080, 195079, 5422, 195081, 0, 0, 0, + 10229, 10635, 826, 195083, 195082, 195085, 195084, 195087, 6483, 0, 1808, + 7848, 0, 8100, 0, 0, 0, 13301, 0, 9667, 0, 0, 0, 11003, 9904, 0, 0, + 120690, 9144, 10921, 0, 0, 9840, 65131, 917560, 0, 10313, 0, 0, 64320, + 10265, 0, 10962, 118970, 43008, 8945, 0, 0, 41, 195072, 1792, 120515, + 195073, 8655, 195075, 0, 0, 12066, 0, 385, 4152, 2585, 0, 0, 3126, 0, + 74136, 10957, 0, 0, 0, 0, 13157, 0, 0, 3570, 0, 7443, 0, 0, 6997, 0, 0, + 7879, 8739, 11075, 0, 65216, 0, 0, 2593, 8463, 7810, 917862, 7839, + 119913, 0, 917860, 9691, 4411, 917847, 0, 0, 0, 0, 65254, 10066, 0, 0, 0, + 0, 13061, 8016, 0, 19932, 64831, 0, 0, 12390, 119171, 1634, 68115, 0, + 11056, 0, 119925, 0, 41165, 11328, 12450, 0, 41166, 0, 12456, 119914, + 171, 5941, 12452, 917544, 12458, 12531, 0, 43013, 63800, 74162, 0, + 120483, 194920, 0, 12454, 63806, 42132, 12063, 195077, 0, 3230, 0, 0, 0, + 5209, 297, 5810, 8522, 8415, 0, 0, 0, 7077, 2497, 0, 960, 74156, 6981, 0, + 12938, 4292, 0, 74815, 10512, 0, 74814, 0, 0, 0, 2503, 73778, 1762, + 73833, 2495, 0, 5844, 119124, 118838, 0, 12654, 4663, 1899, 0, 2507, 0, + 8726, 65594, 0, 0, 0, 8892, 0, 0, 0, 0, 5782, 420, 0, 0, 120462, 10797, + 63794, 0, 0, 0, 63796, 118965, 0, 66581, 119205, 41608, 0, 0, 0, 4659, + 120788, 0, 0, 0, 0, 0, 0, 0, 329, 120472, 0, 917548, 0, 0, 41188, 13244, + 120466, 42167, 0, 0, 5380, 0, 0, 1155, 11365, 43126, 0, 0, 65684, 0, + 5601, 65192, 42765, 63752, 0, 7987, 0, 1172, 0, 0, 43601, 120476, 74126, + 5603, 0, 4473, 0, 194823, 0, 65347, 65346, 65345, 0, 0, 5347, 0, 0, + 73868, 118944, 10588, 0, 0, 63755, 0, 5343, 120473, 0, 4555, 5341, 0, 0, + 0, 5351, 0, 43104, 65244, 917892, 64541, 42519, 74472, 0, 0, 74765, + 917888, 0, 6638, 0, 65113, 271, 74180, 65370, 8835, 65368, 12653, 65366, + 42172, 41086, 65363, 65362, 65361, 11912, 65359, 11323, 65357, 11800, + 65355, 5345, 65353, 65352, 65351, 761, 65349, 19959, 0, 0, 0, 0, 0, + 64647, 0, 0, 4699, 0, 0, 0, 0, 64605, 0, 0, 0, 4916, 0, 380, 10958, + 66563, 917906, 0, 9773, 13167, 12918, 41096, 73980, 0, 917898, 917893, + 10684, 0, 917896, 0, 7946, 12541, 8182, 0, 0, 0, 0, 0, 0, 9005, 1225, + 6630, 0, 0, 0, 0, 8847, 0, 65876, 5535, 8329, 74590, 0, 0, 0, 0, 3127, + 2595, 65713, 0, 0, 5607, 41089, 0, 0, 74256, 2665, 11304, 0, 74200, 4970, + 8764, 120459, 8934, 0, 41566, 4492, 0, 65011, 41090, 0, 0, 1188, 7254, + 1100, 0, 0, 41081, 2912, 11749, 0, 0, 0, 3572, 10023, 4959, 13079, 0, 0, + 9729, 0, 0, 0, 0, 0, 0, 11803, 7996, 9907, 41450, 13304, 0, 0, 41451, 0, + 0, 8273, 0, 3451, 0, 972, 41453, 0, 0, 73883, 0, 73945, 0, 3455, 19955, + 9538, 0, 0, 0, 0, 0, 0, 11396, 0, 11019, 0, 0, 0, 120507, 41078, 0, 261, + 5927, 7791, 0, 0, 0, 10696, 0, 6073, 9838, 118920, 0, 6075, 0, 282, 0, + 6437, 74078, 0, 65861, 0, 0, 0, 0, 3474, 118787, 0, 120655, 6081, 0, 0, + 74076, 0, 0, 0, 0, 0, 0, 8751, 12623, 120273, 7816, 12636, 4665, 12628, + 4670, 120271, 120272, 0, 9642, 10912, 958, 0, 11387, 0, 4666, 0, 4915, 0, + 4669, 0, 68099, 13287, 4664, 10836, 120550, 0, 0, 0, 43595, 7450, 0, + 917875, 8664, 9697, 3606, 917873, 0, 0, 64815, 1063, 120250, 120251, + 9772, 7255, 8886, 1389, 0, 120257, 120258, 120259, 12941, 120253, 120254, + 120255, 120256, 12301, 120266, 120267, 41102, 66604, 120262, 120263, + 120264, 1017, 66600, 523, 505, 1447, 74436, 0, 0, 0, 8608, 42789, 0, 0, + 0, 119196, 11307, 66707, 917871, 0, 11745, 7919, 0, 1641, 0, 0, 8966, 0, + 0, 5908, 0, 0, 74562, 0, 1699, 74191, 74843, 0, 0, 6306, 10169, 0, + 119251, 0, 3766, 120457, 120456, 120455, 6611, 257, 43170, 13153, 0, + 42386, 0, 9436, 2599, 0, 6496, 9449, 5930, 11476, 11033, 11447, 0, 5622, + 120436, 8477, 3760, 1718, 9442, 66433, 3776, 0, 41435, 4352, 0, 2435, + 120809, 5621, 0, 4201, 3778, 4203, 4202, 4205, 4204, 120447, 3768, 68142, + 765, 41440, 3764, 8473, 120440, 8469, 120438, 12947, 4564, 0, 0, 74271, + 73753, 0, 0, 0, 0, 5225, 0, 0, 0, 0, 0, 0, 74793, 5626, 73807, 11771, 0, + 0, 0, 0, 5353, 5625, 74179, 0, 0, 1010, 64572, 0, 42623, 64277, 0, 6952, + 0, 120752, 119003, 2590, 5629, 65552, 7551, 10325, 5632, 10471, 120038, + 120027, 120028, 120025, 5628, 120031, 970, 120029, 4772, 2400, 5627, + 120017, 120018, 120023, 64275, 120021, 10961, 0, 203, 0, 0, 0, 0, 0, 0, + 64378, 42054, 0, 0, 554, 119649, 11358, 0, 12182, 42048, 11065, 0, 73891, + 0, 0, 5694, 7689, 74528, 9323, 4325, 3047, 10317, 175, 0, 0, 74605, 0, 0, + 1243, 42154, 5431, 6652, 0, 0, 0, 0, 68118, 0, 1129, 0, 0, 65900, 1986, + 7846, 0, 8661, 0, 65255, 0, 3845, 4490, 0, 6649, 74400, 1456, 7530, + 11977, 7249, 8366, 0, 7756, 12342, 0, 51, 41516, 0, 8570, 9568, 0, 456, + 7026, 8145, 1168, 9251, 9082, 0, 64055, 42781, 3866, 12323, 41512, 73805, + 68121, 0, 41494, 0, 4660, 0, 10405, 0, 0, 0, 0, 42040, 73918, 119627, + 7944, 41454, 12605, 0, 0, 41455, 236, 0, 0, 8214, 0, 0, 0, 41457, 0, + 119589, 1969, 2384, 8097, 0, 0, 0, 0, 8766, 0, 917863, 5854, 0, 10583, 0, + 119989, 0, 10416, 917869, 3872, 0, 0, 8429, 0, 0, 2838, 917867, 0, 0, 0, + 0, 0, 0, 0, 917864, 120813, 10553, 1662, 8483, 0, 43605, 5892, 917868, 0, + 73742, 66, 65, 68, 67, 70, 69, 72, 71, 74, 73, 76, 75, 78, 77, 80, 79, + 82, 81, 84, 83, 86, 85, 88, 87, 90, 89, 0, 10357, 0, 8170, 1704, 8556, 0, + 9659, 0, 0, 0, 9556, 0, 4503, 11353, 9647, 0, 0, 0, 0, 0, 0, 0, 0, 74229, + 66593, 6438, 0, 9109, 119565, 1289, 64599, 0, 0, 0, 65507, 2447, 0, 0, 0, + 0, 0, 0, 73750, 0, 0, 19937, 0, 0, 0, 5675, 254, 0, 0, 0, 42425, 8918, + 64003, 5716, 42312, 0, 0, 6972, 42826, 0, 42464, 120567, 0, 0, 74796, + 64400, 64693, 0, 0, 65429, 9515, 4435, 0, 0, 0, 0, 11785, 0, 64671, + 41978, 1412, 4594, 1391, 10536, 8067, 9901, 7775, 0, 0, 74588, 120748, + 3140, 0, 7960, 43271, 0, 12518, 10909, 0, 1428, 12472, 0, 0, 7699, 12393, + 0, 0, 0, 74518, 9063, 0, 4261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64554, + 10574, 3878, 0, 42352, 1752, 73785, 0, 42506, 0, 10199, 0, 0, 0, 65919, + 0, 0, 720, 324, 0, 0, 0, 0, 1464, 40985, 0, 7974, 0, 68123, 0, 64488, 0, + 0, 0, 74787, 0, 0, 0, 65597, 0, 0, 0, 1302, 0, 0, 0, 0, 0, 5204, 74774, + 0, 0, 0, 3995, 0, 65608, 3714, 0, 0, 0, 10999, 11750, 0, 127004, 0, 0, 0, + 0, 8130, 8672, 10845, 11964, 0, 0, 0, 0, 0, 42863, 73839, 0, 0, 0, 0, 0, + 0, 468, 612, 0, 64401, 66448, 0, 0, 1674, 0, 5823, 0, 12280, 0, 540, + 74564, 0, 0, 8432, 0, 11073, 0, 64316, 0, 0, 820, 41741, 0, 120667, 0, + 64684, 126992, 3359, 7800, 0, 65177, 6226, 353, 12396, 0, 119612, 64742, + 0, 0, 0, 0, 12412, 19941, 0, 120277, 0, 1884, 9481, 42418, 0, 41157, 0, + 1195, 64898, 7924, 0, 41151, 2010, 0, 41328, 42344, 0, 12409, 0, 4360, + 127009, 9739, 0, 74392, 73921, 0, 42521, 8539, 0, 0, 0, 0, 4788, 0, 0, + 65734, 0, 64353, 0, 13075, 74429, 0, 64569, 43532, 10837, 2492, 0, + 118901, 0, 41136, 64351, 11813, 9649, 41154, 119617, 5128, 4038, 41143, + 65604, 64859, 41592, 0, 1648, 5435, 0, 0, 41343, 119848, 65439, 12709, + 6986, 0, 0, 0, 41349, 0, 12581, 10374, 5175, 0, 73806, 10254, 0, 10278, + 10262, 120295, 41346, 0, 607, 0, 0, 0, 12923, 10314, 10282, 65477, 10378, + 120297, 40976, 8265, 0, 119834, 40975, 5840, 42838, 0, 40978, 0, 119840, + 0, 0, 0, 66444, 10538, 0, 2550, 119836, 0, 0, 0, 3525, 0, 0, 0, 0, 5619, + 65822, 0, 194882, 7455, 0, 5616, 11486, 9656, 0, 0, 10727, 5615, 0, + 120551, 42380, 64895, 0, 66451, 808, 5455, 11347, 0, 1026, 5620, 194887, + 0, 11350, 5617, 0, 9225, 64639, 127073, 9145, 0, 1338, 120581, 0, 12739, + 0, 3084, 0, 0, 41025, 6037, 0, 3974, 0, 10290, 0, 3083, 10322, 0, 0, 0, + 41036, 0, 0, 43321, 65606, 0, 41032, 42388, 0, 64700, 10011, 1445, 40961, + 0, 194893, 0, 40960, 0, 0, 0, 40963, 0, 10402, 0, 0, 0, 10603, 0, 0, 0, + 0, 194923, 10083, 127069, 0, 194922, 0, 0, 0, 9073, 42585, 64302, 10704, + 65030, 4787, 0, 74829, 0, 65423, 0, 0, 9570, 0, 9525, 2689, 917626, + 65426, 0, 917624, 0, 0, 40966, 917623, 13286, 3998, 42598, 42596, 503, 0, + 8735, 2690, 66488, 42836, 194913, 41954, 917617, 1652, 772, 194877, 8310, + 65428, 3487, 0, 3585, 10194, 43320, 119159, 0, 194874, 6468, 41976, 9720, + 917606, 11767, 41970, 0, 5836, 12358, 0, 4355, 9048, 12180, 65027, 64680, + 65025, 64757, 0, 41488, 0, 8527, 194917, 12362, 12435, 12360, 41053, + 3266, 0, 12356, 8616, 41466, 0, 0, 11450, 0, 3638, 12354, 0, 3216, 0, + 2358, 0, 8633, 0, 0, 0, 0, 0, 0, 11759, 0, 0, 74823, 0, 41423, 8078, + 10504, 0, 0, 0, 0, 7002, 0, 41430, 42267, 41051, 41484, 0, 0, 41050, + 41473, 10466, 13099, 0, 0, 0, 6435, 0, 11362, 0, 0, 65382, 0, 41420, 0, + 3625, 0, 41409, 0, 0, 2041, 9178, 9672, 41427, 43541, 43317, 0, 0, 0, + 41424, 917598, 120546, 0, 0, 0, 41417, 1261, 0, 0, 12102, 119662, 41401, + 0, 0, 0, 0, 0, 42290, 3275, 0, 42329, 0, 0, 0, 0, 0, 0, 10989, 74234, 0, + 10598, 0, 2669, 903, 0, 2920, 0, 0, 74603, 64504, 19928, 0, 0, 3917, 0, + 11732, 0, 0, 41448, 41461, 0, 0, 917558, 0, 8819, 12663, 0, 41184, 74014, + 232, 74835, 120646, 9168, 65786, 0, 0, 0, 9094, 0, 11758, 0, 0, 1064, + 42467, 0, 10115, 19924, 0, 0, 7862, 64551, 13224, 8516, 41862, 66650, + 7561, 0, 74018, 1878, 0, 0, 2911, 0, 41178, 5427, 64823, 0, 0, 12617, + 41174, 0, 41458, 0, 41463, 42413, 11292, 2406, 775, 0, 65584, 0, 6074, + 9618, 194903, 0, 0, 0, 194901, 41436, 3656, 0, 194899, 41456, 0, 1599, + 11333, 0, 8514, 8513, 0, 1613, 0, 0, 0, 0, 0, 0, 74500, 41460, 10145, + 10542, 0, 120379, 0, 9905, 0, 65730, 0, 120374, 8427, 120375, 0, 120376, + 0, 11497, 64687, 74008, 120371, 3871, 0, 0, 9111, 5741, 0, 194846, + 120366, 119111, 120745, 0, 120369, 0, 11648, 0, 0, 120364, 41587, 120365, + 0, 74322, 42113, 0, 0, 12172, 0, 74530, 0, 65723, 0, 73871, 65724, 7928, + 120354, 0, 41595, 73730, 0, 42118, 73830, 66042, 10355, 0, 7875, 0, + 41598, 3993, 0, 1545, 40971, 536, 0, 119959, 0, 0, 65173, 65286, 0, 0, 0, + 0, 0, 0, 41375, 5402, 0, 0, 1687, 120503, 0, 0, 0, 64326, 40969, 10526, + 0, 8323, 40968, 1339, 11731, 0, 0, 65460, 12242, 0, 8020, 10843, 11554, + 0, 0, 8266, 41006, 65722, 0, 10710, 0, 118942, 0, 0, 119155, 195091, 0, + 119636, 0, 120687, 0, 0, 11755, 66305, 0, 0, 10917, 120767, 0, 11272, + 2040, 41247, 41326, 0, 1741, 42370, 1227, 0, 0, 11413, 0, 0, 0, 1586, + 4978, 0, 1984, 0, 0, 120651, 40984, 0, 9373, 0, 12916, 6284, 0, 41663, 0, + 0, 0, 9237, 9385, 41648, 0, 0, 0, 41666, 1830, 73783, 41076, 41287, 0, 0, + 0, 0, 0, 0, 41987, 41676, 0, 120823, 0, 41670, 0, 0, 2796, 65167, 11683, + 9902, 74521, 0, 11451, 0, 0, 42631, 2359, 0, 67844, 74164, 41238, 548, + 11405, 13133, 64368, 0, 0, 0, 397, 64678, 42139, 9547, 9590, 0, 1614, 0, + 64356, 66307, 6651, 1358, 0, 428, 9620, 1466, 0, 10982, 0, 1333, 0, 407, + 6425, 0, 74253, 0, 0, 0, 5804, 11976, 8554, 0, 0, 0, 9057, 42294, 41218, + 0, 0, 0, 1883, 10952, 8048, 0, 41225, 0, 118955, 0, 0, 0, 4407, 0, 65809, + 119074, 194821, 8448, 68122, 74183, 0, 12675, 12659, 0, 42363, 120624, + 194824, 119058, 10766, 12012, 2386, 64732, 9170, 917821, 9123, 64585, + 120500, 0, 0, 42051, 0, 4164, 9081, 0, 120569, 42049, 42042, 8709, 0, 0, + 120637, 42419, 0, 42047, 0, 0, 8470, 11807, 65897, 577, 0, 0, 74300, 0, + 0, 74840, 0, 0, 0, 0, 8736, 1414, 42643, 9683, 0, 74344, 0, 2536, 0, + 66330, 0, 0, 0, 0, 0, 0, 0, 66317, 0, 66315, 66316, 0, 11273, 0, 43004, + 7541, 0, 0, 961, 64307, 66324, 0, 0, 3106, 65917, 41284, 1696, 0, 891, + 12105, 0, 42624, 12802, 3264, 8824, 13268, 43003, 10936, 0, 0, 0, 0, 0, + 0, 2322, 0, 0, 11449, 0, 42868, 41285, 3547, 0, 0, 0, 0, 43216, 6089, 0, + 0, 0, 4170, 1029, 0, 0, 119224, 42374, 0, 744, 0, 0, 0, 65823, 0, 0, + 3551, 0, 0, 4623, 0, 0, 4598, 0, 65136, 0, 0, 0, 10851, 0, 6179, 0, 6180, + 0, 11952, 120778, 0, 11972, 0, 0, 0, 0, 177, 0, 6176, 120580, 0, 0, 6177, + 9020, 0, 0, 6178, 120249, 120242, 0, 120243, 7518, 8754, 0, 120237, + 74551, 43081, 0, 0, 9136, 120240, 4401, 41280, 0, 8974, 2308, 0, 74149, + 0, 2318, 0, 66361, 8198, 0, 64360, 12601, 0, 65266, 120827, 74307, 0, + 6970, 5404, 43332, 3667, 7936, 12925, 126989, 42055, 0, 0, 118949, 10874, + 65505, 0, 0, 42053, 0, 42057, 11083, 42052, 0, 0, 73845, 0, 9665, 0, 0, + 13181, 0, 0, 0, 0, 74148, 0, 0, 120225, 120229, 120224, 74172, 41145, 0, + 0, 0, 41148, 8683, 7594, 0, 0, 119090, 10869, 0, 41146, 0, 11441, 0, + 3512, 917612, 0, 8103, 0, 0, 65184, 11780, 41563, 42796, 0, 119106, + 41544, 65146, 0, 0, 0, 0, 19942, 0, 118908, 7988, 10436, 74273, 3271, + 73804, 64711, 0, 0, 0, 0, 3804, 13070, 11557, 42044, 0, 1095, 0, 3599, 0, + 0, 0, 0, 0, 0, 0, 74346, 66697, 0, 11684, 0, 0, 0, 0, 42043, 0, 66677, 0, + 42046, 120751, 4036, 0, 0, 0, 194862, 0, 11954, 0, 1450, 12986, 1340, 0, + 65441, 0, 0, 0, 0, 0, 0, 0, 0, 6539, 0, 0, 0, 0, 0, 0, 41190, 3973, + 194852, 4575, 41193, 7982, 429, 0, 0, 0, 194854, 65792, 0, 118968, 6417, + 118918, 0, 0, 194850, 0, 0, 4919, 10590, 0, 7755, 0, 0, 64548, 0, 1621, + 10214, 65126, 0, 0, 0, 12188, 0, 1617, 8050, 0, 5015, 0, 119174, 42590, + 194871, 1756, 0, 0, 65768, 120694, 41892, 0, 7555, 13103, 5408, 2817, + 1214, 0, 0, 0, 0, 0, 0, 0, 7957, 8689, 64723, 1056, 0, 74147, 0, 0, 0, + 7073, 65850, 12327, 0, 119028, 0, 0, 0, 2341, 8450, 8484, 8474, 0, 0, 0, + 8461, 0, 12153, 12799, 0, 120654, 120684, 9451, 7571, 13073, 0, 0, 681, + 0, 703, 0, 3272, 8781, 12894, 0, 11709, 0, 74446, 0, 0, 0, 11338, 120768, + 3276, 0, 0, 65928, 0, 0, 65021, 64795, 74574, 0, 10047, 0, 3262, 0, 0, 0, + 0, 74329, 163, 576, 9895, 1655, 0, 74591, 0, 0, 0, 0, 0, 0, 10039, 0, 0, + 5623, 5717, 5776, 0, 0, 0, 41591, 120586, 65252, 120795, 0, 0, 0, 0, 0, + 0, 0, 8887, 0, 7295, 11031, 0, 43157, 0, 8946, 10348, 10412, 8755, 0, 0, + 5718, 13221, 0, 0, 0, 0, 0, 8810, 74499, 686, 0, 0, 4619, 118954, 6654, + 73769, 0, 0, 12040, 65689, 10128, 65118, 0, 119151, 118891, 0, 0, 2401, + 68144, 8792, 0, 0, 65455, 0, 0, 0, 119129, 0, 12886, 0, 66624, 0, 43557, + 10300, 10161, 10396, 74135, 0, 0, 0, 73851, 3010, 6441, 0, 1458, 41475, + 0, 0, 0, 11479, 0, 0, 9100, 12864, 0, 0, 1061, 64780, 2001, 43111, 0, 0, + 4052, 0, 7626, 0, 0, 1045, 0, 5631, 0, 0, 0, 0, 74127, 0, 0, 8486, 0, + 73758, 2335, 4362, 0, 0, 73867, 1025, 0, 42625, 0, 0, 41443, 0, 0, 0, + 1774, 1523, 0, 0, 41445, 0, 0, 8567, 41442, 3988, 0, 0, 118910, 0, 65274, + 8564, 0, 0, 0, 0, 0, 65908, 0, 66513, 6256, 0, 579, 0, 10206, 0, 0, 2673, + 0, 11814, 0, 4488, 0, 0, 0, 10444, 120820, 0, 11799, 74407, 0, 4487, 0, + 42832, 1032, 0, 120736, 0, 7203, 0, 614, 0, 0, 120615, 0, 0, 0, 0, 0, + 43121, 0, 0, 0, 1050, 7549, 0, 0, 9314, 0, 0, 120616, 0, 10057, 0, 0, 0, + 66504, 0, 0, 2307, 0, 64333, 0, 0, 73873, 0, 0, 0, 0, 0, 0, 10360, 0, 0, + 0, 440, 0, 13085, 9233, 74216, 0, 0, 0, 0, 66447, 8046, 64963, 65777, + 10125, 74212, 42819, 10910, 0, 1521, 9896, 0, 10487, 0, 12527, 0, 7970, + 0, 0, 0, 65769, 5243, 9849, 5239, 65771, 0, 0, 5237, 0, 0, 10103, 5247, + 4769, 0, 118977, 0, 5764, 0, 0, 3008, 4896, 0, 12087, 0, 0, 41103, 0, + 64565, 4773, 0, 0, 0, 4770, 0, 917567, 8731, 65378, 0, 120619, 9122, 0, + 0, 4774, 3019, 9997, 12834, 0, 9456, 10215, 0, 0, 0, 0, 0, 74776, 4281, + 4768, 0, 41535, 4099, 9017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42814, 880, 0, + 0, 0, 0, 0, 10116, 9877, 0, 0, 0, 7095, 0, 0, 120632, 0, 0, 8243, 2427, + 0, 7093, 0, 11585, 0, 0, 0, 12223, 0, 0, 1434, 0, 5637, 11573, 0, 0, 0, + 19951, 0, 0, 0, 0, 64432, 0, 0, 118888, 1156, 8740, 0, 3782, 64331, 0, + 41370, 1014, 8261, 0, 0, 10835, 0, 65536, 0, 120463, 0, 7702, 118824, 0, + 43010, 65779, 65783, 1150, 10547, 5700, 0, 120603, 65383, 2339, 42594, + 5697, 118788, 0, 0, 0, 42257, 5696, 120470, 120465, 3862, 9643, 0, 0, + 7634, 0, 9845, 0, 0, 5701, 9722, 41490, 0, 1426, 120474, 0, 0, 0, 74345, + 8571, 194991, 0, 0, 0, 0, 43182, 12184, 0, 42022, 0, 10281, 0, 5650, + 43194, 64712, 0, 0, 990, 5647, 0, 0, 0, 41114, 11477, 5646, 0, 11018, 0, + 3945, 0, 0, 0, 0, 0, 0, 0, 1020, 73763, 0, 0, 5648, 64748, 0, 0, 10205, + 3545, 0, 6984, 0, 74051, 0, 118868, 120458, 2667, 0, 0, 0, 9911, 0, + 65020, 10097, 119166, 0, 0, 118836, 0, 0, 1140, 0, 0, 10159, 0, 0, 8128, + 0, 0, 0, 1815, 19910, 890, 0, 3267, 0, 0, 10123, 0, 4410, 1041, 10576, + 8102, 0, 580, 74232, 0, 0, 0, 0, 0, 19938, 65906, 0, 0, 0, 3298, 5375, + 10142, 0, 8215, 0, 6134, 41246, 64402, 0, 0, 0, 0, 0, 41382, 0, 0, 5173, + 65348, 527, 0, 0, 0, 0, 0, 11915, 0, 0, 10072, 0, 66434, 2329, 42250, 0, + 0, 0, 12245, 119237, 0, 0, 0, 0, 0, 74328, 0, 74769, 0, 0, 9069, 6144, 0, + 0, 73822, 0, 0, 64917, 41521, 118934, 494, 13250, 0, 65098, 0, 956, 0, + 12830, 10462, 73740, 0, 0, 0, 0, 66449, 13263, 0, 0, 13171, 0, 0, 0, 0, + 0, 1044, 41276, 0, 0, 0, 42068, 11795, 0, 0, 0, 0, 42450, 3907, 0, 64526, + 0, 0, 12295, 0, 11475, 0, 3020, 11537, 0, 66441, 0, 0, 0, 0, 1057, 566, + 0, 0, 3016, 42274, 0, 66490, 12921, 66571, 0, 0, 3006, 4620, 0, 0, 0, 0, + 64659, 0, 0, 0, 43333, 68129, 8626, 0, 0, 9090, 65377, 41596, 0, 0, 1698, + 0, 64477, 0, 0, 1053, 0, 0, 0, 0, 1052, 1051, 459, 1060, 74349, 66479, 0, + 0, 0, 0, 42490, 689, 6508, 4163, 42298, 8639, 66641, 4246, 0, 0, 12130, + 0, 42337, 64596, 64375, 66481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1926, 0, 0, 7898, 8110, 10935, 0, 0, 5830, 0, 64594, 0, 0, 0, 0, 8693, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119187, 11439, 0, 0, 0, 0, 42313, + 5579, 0, 0, 0, 0, 0, 5578, 41774, 0, 42023, 6234, 5669, 0, 0, 0, 0, 0, 0, + 5583, 0, 0, 42426, 5580, 42276, 2923, 892, 5582, 42465, 41330, 0, 5795, + 65512, 0, 65702, 0, 120801, 65251, 0, 65710, 0, 0, 0, 0, 5370, 0, 0, + 1638, 10966, 10188, 65878, 118848, 0, 0, 0, 0, 8172, 42017, 0, 10844, 0, + 0, 0, 0, 0, 0, 286, 0, 1062, 0, 0, 0, 0, 0, 1070, 64900, 0, 6095, 41865, + 0, 3015, 0, 917763, 5211, 0, 6400, 0, 194983, 0, 8189, 11276, 0, 0, 372, + 0, 0, 118874, 42102, 41585, 0, 0, 42101, 276, 0, 0, 33, 74226, 0, 9007, + 118796, 41588, 66033, 427, 10763, 0, 0, 0, 0, 1031, 6257, 0, 42104, 0, 0, + 2328, 0, 1071, 0, 0, 74848, 0, 0, 0, 1047, 0, 0, 64790, 0, 0, 10651, 0, + 0, 0, 0, 0, 119181, 5711, 41633, 12098, 65571, 9166, 0, 5710, 0, 0, + 65213, 13216, 0, 0, 0, 0, 64611, 41623, 0, 5715, 0, 0, 0, 5712, 2761, + 41620, 68124, 3074, 5722, 0, 8643, 73768, 0, 118906, 2757, 11067, 9718, + 74498, 8910, 10689, 6479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118911, 0, 0, 0, + 0, 0, 120010, 0, 8701, 68130, 119616, 120522, 0, 42477, 0, 12123, 4495, + 43569, 0, 0, 0, 64946, 10992, 0, 0, 0, 0, 9318, 120661, 13249, 65679, + 73808, 0, 65457, 42249, 7639, 0, 67845, 42641, 5454, 0, 0, 194997, + 120005, 0, 0, 5084, 0, 0, 119173, 0, 733, 0, 0, 0, 0, 41677, 0, 9218, + 1731, 0, 0, 0, 0, 0, 0, 0, 0, 127018, 0, 5155, 0, 5358, 0, 0, 917767, + 64424, 0, 3840, 64314, 41432, 0, 0, 0, 0, 0, 65943, 0, 3371, 10988, 0, + 8771, 1479, 0, 0, 1109, 11580, 0, 64601, 12205, 0, 0, 64507, 8868, 399, + 0, 74842, 0, 0, 12149, 13088, 551, 0, 10156, 12119, 0, 0, 2544, 65074, 0, + 0, 0, 0, 351, 119149, 0, 0, 0, 0, 74268, 0, 0, 0, 42377, 0, 0, 0, 0, 0, + 9013, 5588, 0, 0, 0, 0, 73960, 5585, 65881, 2549, 74469, 0, 0, 5584, + 8358, 0, 74411, 0, 10919, 0, 7980, 0, 0, 0, 41800, 5589, 0, 2664, 41613, + 5586, 118890, 0, 11356, 0, 0, 0, 0, 0, 42573, 67856, 0, 0, 0, 0, 0, 8135, + 6450, 10055, 0, 0, 0, 0, 5657, 0, 9626, 0, 0, 10179, 5654, 12939, 0, + 120799, 0, 0, 5652, 10945, 0, 0, 0, 3661, 7863, 0, 0, 0, 0, 0, 5659, 0, + 0, 66729, 5655, 0, 42168, 0, 1055, 917628, 0, 66310, 74030, 0, 12146, + 73955, 73956, 11618, 0, 126990, 0, 10272, 10304, 10368, 42518, 594, + 10244, 10248, 10256, 0, 64870, 0, 3467, 0, 0, 3331, 946, 10231, 1495, + 8131, 74330, 0, 9562, 0, 65927, 0, 0, 120155, 0, 64656, 0, 0, 194837, 0, + 5666, 65227, 5318, 0, 0, 9091, 10798, 0, 0, 10186, 0, 7732, 0, 64556, 0, + 0, 5668, 74445, 0, 0, 5670, 0, 0, 11820, 2992, 7826, 5667, 19952, 120807, + 0, 12749, 0, 0, 0, 66496, 4361, 119260, 1306, 9286, 1497, 0, 0, 0, 0, + 3571, 13247, 0, 7973, 66353, 0, 0, 67896, 43192, 0, 0, 553, 120653, 0, 0, + 5829, 0, 4587, 0, 65912, 0, 12746, 0, 0, 119924, 5633, 119927, 0, 0, 0, + 64905, 0, 9512, 0, 12742, 6443, 0, 0, 9135, 0, 0, 0, 0, 0, 0, 0, 12148, + 0, 0, 0, 64256, 0, 11669, 0, 5634, 4524, 0, 0, 0, 118880, 74266, 65182, + 0, 0, 5221, 0, 328, 0, 0, 0, 5636, 0, 5329, 0, 5638, 119918, 7940, 64938, + 43223, 0, 5635, 3373, 2986, 0, 74223, 3437, 0, 6203, 4247, 0, 11920, + 8274, 0, 0, 1657, 119921, 0, 0, 5639, 2954, 5660, 5640, 0, 0, 0, 0, 0, 0, + 41637, 0, 0, 0, 41625, 0, 0, 120713, 11705, 5642, 0, 0, 0, 4356, 11710, + 0, 12051, 0, 0, 5641, 8259, 0, 1058, 0, 67630, 0, 0, 1144, 0, 0, 0, 0, + 73890, 118972, 0, 73734, 0, 5645, 64964, 8652, 2547, 66484, 0, 0, 5608, + 65890, 0, 0, 67621, 119934, 9000, 0, 0, 0, 1865, 0, 5613, 74267, 0, 0, + 5610, 0, 0, 65826, 5612, 0, 10787, 917551, 2997, 0, 5609, 0, 65319, + 119933, 12316, 65376, 2412, 0, 8186, 9807, 74269, 0, 13130, 65874, 0, + 5807, 0, 10030, 5306, 12936, 0, 0, 11704, 0, 0, 10211, 0, 0, 0, 0, 11706, + 9710, 0, 0, 0, 413, 65623, 74237, 0, 9133, 74262, 0, 1042, 0, 64779, + 12171, 119240, 6185, 64776, 4984, 0, 708, 0, 0, 12241, 0, 0, 1308, 0, + 2534, 810, 0, 0, 0, 0, 0, 1917, 3000, 0, 0, 120739, 2364, 0, 74470, + 66618, 65680, 0, 10027, 0, 0, 12337, 120722, 0, 0, 2980, 755, 0, 931, + 13124, 68182, 0, 2748, 0, 0, 65041, 0, 73998, 8730, 0, 0, 119009, 7274, + 119250, 0, 7275, 0, 935, 0, 65840, 377, 42325, 11649, 0, 65253, 64301, 0, + 0, 42341, 65284, 2417, 0, 12884, 19912, 7907, 10768, 0, 194998, 0, 10673, + 119217, 7248, 0, 0, 1781, 5496, 3627, 62, 1649, 0, 964, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13142, 0, 42415, 66575, 4542, 74037, 43547, 0, 0, 0, 2991, + 4946, 42454, 0, 7949, 0, 0, 11341, 42494, 3073, 65625, 9714, 11692, 0, 0, + 0, 6478, 9898, 0, 65237, 6241, 0, 4877, 0, 6238, 0, 10548, 127049, 4409, + 0, 0, 64798, 0, 5346, 0, 120528, 6237, 5461, 0, 9176, 0, 0, 65231, 65884, + 12678, 0, 0, 11378, 0, 42785, 2408, 3251, 0, 0, 5685, 0, 2461, 11052, + 7091, 5342, 8317, 0, 68163, 5340, 0, 0, 0, 73928, 0, 0, 0, 0, 0, 65482, + 0, 9142, 0, 0, 0, 10938, 0, 118790, 1182, 2542, 4826, 0, 0, 0, 529, 8580, + 0, 0, 10586, 10790, 11987, 66023, 41593, 41207, 0, 0, 41594, 225, 42828, + 0, 0, 0, 64705, 74379, 10721, 0, 3438, 42097, 0, 11084, 3194, 41870, 266, + 0, 0, 41873, 120575, 11324, 0, 0, 8420, 64918, 0, 41871, 41338, 3734, + 7734, 0, 8750, 66605, 66011, 0, 40965, 0, 0, 5161, 10572, 0, 0, 0, 64349, + 7287, 42162, 0, 0, 0, 11948, 0, 12359, 66674, 41369, 1697, 12191, 0, 0, + 7286, 0, 0, 10031, 0, 9870, 0, 8620, 65824, 0, 11938, 0, 7285, 0, 119577, + 0, 0, 0, 41583, 0, 65799, 0, 0, 0, 0, 0, 66199, 0, 3609, 0, 0, 832, + 120693, 120770, 0, 66007, 0, 65703, 0, 0, 0, 5180, 0, 41395, 41530, + 11691, 64773, 0, 74002, 0, 0, 0, 11036, 243, 13200, 0, 6024, 0, 74398, + 10037, 41529, 10648, 8538, 0, 0, 0, 4285, 66195, 0, 4230, 0, 13307, 0, 0, + 7563, 42376, 0, 0, 120512, 0, 0, 214, 0, 0, 0, 65893, 12208, 120488, 0, + 66311, 65589, 0, 2603, 0, 0, 0, 0, 0, 6022, 0, 2884, 0, 11620, 0, 43, 0, + 66453, 1016, 41107, 0, 41121, 3885, 92, 65456, 64608, 0, 74801, 0, 12451, + 0, 0, 0, 12453, 0, 0, 74241, 0, 8890, 12457, 0, 0, 0, 0, 118819, 0, 0, 0, + 66637, 7995, 8759, 0, 0, 12449, 0, 0, 0, 8752, 3197, 4720, 10165, 0, + 119249, 0, 11595, 64893, 0, 120180, 0, 0, 4993, 0, 6168, 10934, 1946, + 741, 0, 5494, 4639, 0, 1990, 66589, 4498, 0, 0, 0, 0, 0, 2960, 73779, 0, + 8969, 0, 0, 0, 0, 2950, 0, 6210, 0, 370, 0, 0, 0, 4953, 0, 0, 0, 0, 0, 0, + 0, 65688, 0, 5063, 3517, 2964, 0, 0, 65094, 74791, 10566, 10144, 66333, + 8252, 729, 66016, 0, 0, 0, 64923, 0, 65208, 9032, 0, 0, 0, 41215, 0, + 65883, 0, 0, 120602, 3761, 0, 0, 0, 0, 12912, 119012, 3850, 0, 0, 0, 0, + 0, 908, 0, 8611, 0, 0, 0, 0, 0, 0, 8978, 120540, 119135, 41586, 10527, 0, + 917848, 3848, 0, 0, 0, 65241, 5336, 0, 0, 663, 0, 10780, 0, 0, 0, 0, 0, + 0, 347, 0, 0, 0, 64675, 41582, 119126, 0, 65579, 12980, 0, 12143, 73733, + 0, 0, 0, 41804, 0, 0, 0, 0, 0, 41584, 10681, 0, 0, 73938, 0, 0, 4800, + 66661, 0, 66306, 64715, 0, 9518, 6609, 10434, 0, 11319, 1097, 0, 917850, + 41730, 0, 0, 0, 0, 65172, 41728, 41721, 0, 0, 0, 41203, 0, 13110, 41726, + 0, 0, 1000, 0, 0, 41140, 1209, 0, 0, 0, 1073, 0, 0, 41138, 0, 0, 0, + 12167, 1115, 41605, 9794, 127062, 127063, 127064, 12237, 127066, 66314, + 6587, 9290, 0, 0, 9231, 0, 2959, 7926, 0, 0, 0, 64398, 0, 119970, 12311, + 0, 0, 118846, 0, 0, 0, 119973, 0, 0, 0, 12290, 0, 0, 0, 42142, 10151, + 8205, 0, 5131, 0, 9627, 0, 0, 0, 0, 1944, 1248, 10148, 0, 119990, 119991, + 12701, 119993, 11308, 119995, 0, 119997, 119998, 65305, 74263, 4031, + 42794, 120003, 7075, 8154, 120006, 120007, 41817, 73934, 42275, 120011, + 120012, 120013, 120014, 120015, 6041, 0, 41899, 0, 8002, 0, 4364, 0, 0, + 64332, 0, 7813, 9064, 119986, 10124, 7526, 8601, 7281, 0, 7279, 12041, + 1418, 10885, 12673, 0, 0, 9660, 0, 13012, 4571, 0, 0, 0, 12078, 2970, 0, + 10933, 0, 0, 0, 0, 0, 41599, 0, 0, 0, 12950, 0, 3486, 0, 0, 4239, 0, 0, + 66511, 0, 2637, 64629, 8460, 127053, 8476, 0, 0, 0, 0, 65673, 1019, 0, + 4148, 0, 12289, 0, 4316, 0, 13119, 0, 5412, 66243, 10744, 0, 73864, 0, + 41734, 8206, 74081, 9163, 3286, 9072, 5867, 13302, 7622, 0, 41736, 0, + 41731, 0, 9483, 5416, 0, 119593, 10817, 0, 41539, 0, 0, 73963, 41855, + 41867, 65564, 11277, 65892, 11536, 10620, 0, 12210, 0, 73932, 5498, + 73942, 41536, 0, 0, 0, 3459, 8997, 0, 0, 0, 0, 0, 0, 66377, 0, 0, 0, 0, + 3161, 295, 0, 0, 0, 0, 0, 9016, 0, 63903, 63902, 63901, 0, 3971, 0, + 73972, 2952, 0, 11038, 10901, 63900, 63899, 63898, 0, 667, 12332, 63887, + 6086, 41722, 0, 5172, 0, 0, 4159, 0, 0, 9815, 63884, 19934, 63882, 41198, + 8555, 63878, 63877, 42460, 6050, 0, 63881, 63872, 0, 42421, 0, 41723, + 63875, 63874, 11460, 7432, 1913, 41913, 63852, 0, 0, 42348, 0, 74841, + 446, 41911, 0, 63851, 63850, 41910, 0, 63846, 2972, 12932, 7262, 0, + 63849, 63848, 63847, 0, 0, 8302, 7259, 63842, 4178, 10746, 7250, 13214, + 10041, 8105, 63892, 0, 118983, 1105, 4180, 0, 12094, 9497, 0, 63891, + 63890, 63889, 63888, 5538, 9987, 0, 118932, 1678, 13274, 552, 0, 0, + 10785, 0, 119170, 4557, 0, 9159, 10171, 13125, 63860, 5540, 63858, 63865, + 281, 13242, 63862, 74154, 0, 5536, 65568, 63857, 1388, 74169, 0, 1077, 0, + 65099, 11531, 0, 0, 0, 0, 0, 42773, 0, 0, 0, 119220, 0, 3663, 0, 1112, + 119122, 8686, 0, 5334, 65081, 0, 74778, 0, 11077, 0, 6509, 0, 5327, 0, + 19907, 63869, 3478, 7583, 7679, 2903, 0, 3001, 1158, 8745, 0, 73748, + 63866, 0, 1915, 4846, 0, 66371, 118984, 42105, 2990, 120128, 805, 120130, + 120125, 12070, 8760, 1117, 118987, 12212, 120123, 65174, 42357, 63835, + 63834, 0, 0, 12225, 63838, 63837, 0, 0, 63833, 6042, 66360, 8083, 0, 0, + 63821, 63820, 63819, 63818, 0, 5227, 9047, 63822, 0, 6091, 0, 10691, 560, + 5643, 8226, 119578, 63812, 63811, 63810, 63809, 5542, 63815, 63814, + 63813, 6047, 1597, 120143, 780, 206, 0, 4936, 65147, 8168, 63930, 0, + 1093, 9882, 63934, 63933, 63932, 917554, 63929, 3546, 1605, 0, 9806, + 65566, 0, 8400, 11343, 63920, 0, 63926, 2984, 5968, 9287, 0, 4618, 0, 0, + 13169, 5290, 5283, 1695, 10743, 1088, 63825, 7268, 1084, 1085, 63829, + 1083, 10131, 7283, 0, 63970, 0, 1092, 4754, 7273, 5252, 0, 0, 0, 0, 0, + 11809, 0, 0, 0, 2965, 7258, 8808, 0, 1089, 4187, 63937, 42119, 42120, 0, + 940, 5787, 10099, 63938, 0, 74494, 12463, 2994, 0, 0, 0, 9664, 0, 0, 0, + 0, 74343, 0, 0, 660, 10127, 666, 9022, 5532, 0, 5533, 0, 0, 6118, 222, + 979, 3884, 0, 74151, 120445, 6502, 0, 127118, 0, 63951, 12465, 0, 0, 0, + 63946, 1707, 63924, 12461, 63950, 63897, 63948, 63947, 63945, 6038, + 63943, 63942, 64685, 63895, 65838, 0, 7776, 0, 0, 0, 120444, 0, 801, + 43165, 1690, 63919, 63918, 63917, 13277, 63893, 0, 120638, 9906, 5486, + 2334, 0, 63916, 5483, 63914, 120610, 63911, 5484, 63909, 63908, 2539, 0, + 63913, 5485, 0, 195060, 9061, 5534, 10672, 4502, 0, 253, 0, 0, 0, 42854, + 0, 0, 11530, 0, 0, 0, 0, 0, 10474, 0, 13257, 42354, 0, 0, 0, 195065, 0, + 8413, 0, 0, 5693, 7272, 0, 13209, 64470, 65831, 0, 195063, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 66608, 3111, 41863, 8804, 66607, 0, 7270, 0, 66606, 6628, + 1076, 41305, 1436, 0, 0, 0, 63982, 10221, 12807, 63907, 63906, 1598, + 63904, 0, 0, 41729, 4423, 1307, 0, 10515, 41589, 0, 0, 6218, 0, 1430, 0, + 0, 120606, 119365, 5413, 7619, 3255, 3493, 74032, 11549, 10735, 0, 73937, + 10517, 0, 0, 10990, 65073, 5167, 4481, 3771, 0, 2710, 0, 0, 41724, 0, + 43073, 41690, 12479, 0, 0, 0, 0, 119659, 1628, 0, 0, 0, 65262, 63854, + 10783, 42315, 0, 63855, 120683, 0, 0, 5339, 74323, 0, 13004, 0, 4457, 0, + 0, 0, 0, 5684, 8678, 10914, 0, 5689, 65807, 0, 120617, 12633, 0, 0, + 65183, 5688, 11926, 6033, 6310, 5686, 0, 0, 0, 120647, 0, 50, 0, 9871, 0, + 0, 0, 0, 0, 66468, 0, 13259, 4448, 0, 0, 0, 0, 67853, 0, 10640, 0, 1151, + 0, 0, 0, 0, 195050, 0, 0, 0, 0, 12501, 64604, 0, 11527, 118870, 8812, 0, + 11538, 8673, 12650, 11020, 0, 66467, 10839, 8087, 0, 0, 9894, 0, 0, 0, + 4636, 0, 118985, 8053, 0, 0, 0, 0, 120495, 0, 0, 12277, 194627, 11995, + 194626, 0, 12158, 0, 8741, 10197, 0, 0, 0, 6531, 0, 0, 473, 0, 0, 0, + 1873, 1087, 0, 0, 0, 0, 66439, 43218, 0, 194716, 7237, 12504, 74282, 0, + 0, 0, 9489, 0, 0, 4384, 74220, 195055, 0, 917561, 13295, 43191, 0, 0, + 1154, 3857, 1205, 0, 0, 13100, 12958, 120706, 74168, 0, 0, 4421, 10592, + 0, 495, 0, 41712, 7983, 0, 0, 0, 8494, 0, 7654, 41710, 4196, 0, 437, + 41709, 73772, 0, 0, 9465, 13290, 119180, 4997, 64306, 0, 0, 4999, 194642, + 0, 0, 4711, 120769, 0, 2739, 0, 8044, 74834, 0, 41789, 0, 10809, 0, 0, 0, + 1779, 6600, 6601, 41543, 5325, 642, 64187, 13058, 0, 0, 0, 0, 13229, 0, + 10575, 0, 0, 0, 41791, 1104, 0, 0, 10655, 0, 0, 0, 0, 1082, 195049, 8428, + 0, 0, 0, 0, 0, 10167, 0, 12993, 8049, 41548, 0, 6458, 0, 0, 4761, 63828, + 4766, 64623, 1273, 194653, 0, 118876, 0, 6912, 1313, 7033, 10483, 0, + 41545, 0, 0, 0, 0, 0, 0, 0, 3484, 74337, 0, 0, 8503, 5122, 41527, 0, + 66320, 0, 0, 0, 0, 41537, 0, 8303, 8282, 11817, 0, 10003, 73859, 65904, + 194663, 1686, 0, 0, 11467, 3664, 65921, 64299, 194664, 0, 0, 4324, 126, + 42246, 119152, 0, 0, 65926, 7744, 194636, 74277, 74302, 0, 0, 6966, 0, + 8136, 0, 65600, 1633, 0, 0, 4762, 1103, 0, 0, 4765, 0, 13078, 0, 4760, + 63827, 0, 10871, 43199, 1102, 0, 0, 0, 0, 11546, 74794, 337, 0, 42591, + 8627, 12279, 1111, 0, 0, 4707, 0, 10143, 7883, 127081, 7880, 4522, 8645, + 5704, 13010, 0, 8304, 0, 0, 119575, 0, 0, 66654, 0, 0, 0, 13008, 0, 4385, + 0, 13011, 0, 0, 119161, 13009, 160, 2677, 0, 0, 41793, 65763, 74221, + 120141, 41792, 42770, 0, 65762, 118829, 64573, 5709, 0, 194638, 0, 0, 0, + 1079, 3867, 5708, 0, 0, 0, 5706, 64768, 5705, 8791, 4005, 0, 10237, + 10991, 0, 917579, 9173, 917581, 917580, 13170, 65942, 917577, 42605, + 120765, 917570, 917573, 917572, 10058, 0, 74867, 194654, 127078, 3339, + 11448, 1106, 917591, 917590, 917593, 3340, 917587, 917586, 917589, + 917588, 917583, 10605, 1309, 63966, 120743, 1754, 127075, 13246, 864, 0, + 118926, 8972, 0, 7849, 120092, 0, 13240, 195068, 5192, 4338, 0, 10948, + 917601, 13199, 120169, 1236, 13208, 13261, 13189, 13188, 120164, 0, 7440, + 0, 120153, 9553, 1590, 63777, 63776, 13178, 63782, 63781, 63780, 63779, + 1583, 0, 13260, 4550, 0, 64205, 0, 0, 41522, 0, 0, 0, 0, 11354, 0, 0, + 42795, 0, 119195, 11394, 194646, 13236, 13272, 13194, 1334, 0, 4479, + 1178, 65586, 120663, 66681, 119193, 4601, 0, 0, 0, 0, 0, 0, 0, 63787, + 63786, 6031, 0, 63791, 63790, 1145, 63788, 7910, 63785, 43153, 754, + 10192, 13105, 8183, 120741, 2037, 0, 0, 10747, 125, 0, 0, 0, 0, 0, 41719, + 63758, 3523, 1074, 13258, 9536, 74077, 0, 4427, 74242, 63757, 43145, + 12217, 63754, 41532, 1349, 63750, 63749, 0, 0, 0, 63753, 63802, 41084, + 120622, 0, 41930, 63805, 63804, 63803, 63801, 41082, 8140, 63798, 6260, + 0, 0, 119225, 63793, 11988, 3898, 0, 10201, 12238, 63795, 42358, 10367, + 12521, 10431, 42114, 41932, 1068, 0, 12523, 12945, 0, 0, 7950, 10804, + 63771, 42787, 4386, 12224, 6973, 2793, 12475, 0, 0, 63769, 9530, 0, + 12232, 13135, 8596, 5681, 63762, 4595, 63760, 792, 0, 64803, 0, 8742, 0, + 11053, 0, 63744, 0, 0, 7588, 63748, 1693, 63746, 43204, 5055, 0, 0, 1090, + 120679, 0, 11665, 74133, 4558, 65685, 9523, 0, 0, 0, 11513, 0, 6157, + 63775, 63774, 63773, 13191, 12170, 3500, 3139, 0, 3170, 12485, 0, 10872, + 0, 13006, 64433, 0, 0, 941, 0, 0, 0, 65541, 11063, 0, 8228, 0, 42065, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 43603, 0, 65397, 288, 0, 0, 0, 10025, 0, 2918, + 0, 65300, 119871, 9883, 64726, 2790, 65395, 3793, 0, 0, 65393, 0, 74138, + 0, 0, 0, 74139, 120613, 65394, 11548, 5270, 0, 65396, 0, 65813, 13256, + 1282, 120771, 0, 0, 10888, 0, 65242, 0, 3330, 0, 0, 0, 0, 0, 0, 3304, + 42753, 0, 0, 0, 1627, 0, 0, 0, 5371, 13116, 0, 1826, 0, 0, 43094, 0, 0, + 0, 0, 9035, 0, 0, 0, 0, 0, 68125, 0, 164, 0, 0, 0, 6958, 0, 43116, 0, 0, + 13245, 0, 0, 0, 0, 73893, 0, 12666, 13175, 13207, 120414, 66014, 120428, + 7447, 5929, 0, 65509, 0, 7449, 11306, 0, 73920, 3180, 0, 63808, 9054, + 971, 13062, 0, 0, 65195, 64767, 0, 74428, 0, 0, 0, 0, 0, 0, 10045, 64303, + 13275, 0, 11057, 0, 13276, 0, 41525, 0, 7271, 11444, 0, 0, 0, 12229, + 41523, 0, 0, 73751, 0, 64813, 0, 0, 10476, 3858, 0, 3932, 64958, 0, 0, + 73989, 0, 0, 0, 369, 0, 41784, 0, 64163, 0, 0, 0, 65474, 4796, 41782, 0, + 65479, 0, 41781, 10486, 41480, 120511, 9899, 0, 0, 404, 12821, 3741, 0, + 5788, 0, 0, 41222, 1831, 66020, 0, 0, 4388, 0, 746, 120784, 0, 0, 13131, + 65294, 0, 0, 0, 0, 4422, 4708, 3799, 74292, 119357, 0, 74430, 0, 11700, + 4374, 0, 0, 1364, 0, 8038, 0, 917597, 0, 0, 0, 0, 73979, 13174, 73968, + 13225, 0, 0, 65835, 0, 2365, 7841, 0, 42855, 118856, 42866, 0, 0, 0, + 66438, 41785, 41171, 64172, 13173, 4372, 119354, 0, 0, 0, 0, 0, 0, 12965, + 384, 64512, 10404, 10340, 119352, 1556, 5274, 13210, 0, 10017, 9733, + 41787, 0, 0, 41373, 0, 12303, 0, 13232, 13233, 349, 4863, 41371, 11656, + 0, 120703, 119883, 12861, 4398, 8543, 65618, 0, 1096, 0, 0, 0, 12441, + 12355, 119348, 119347, 4318, 10452, 0, 8032, 13243, 13237, 12719, 0, + 119101, 0, 64884, 119872, 119345, 8597, 0, 0, 9864, 0, 120785, 0, 0, + 13195, 41452, 64961, 7722, 0, 10459, 119878, 0, 119879, 66590, 0, 41533, + 66337, 0, 0, 0, 4965, 0, 917536, 73849, 0, 0, 0, 0, 6261, 119342, 43147, + 66570, 1957, 10420, 982, 2756, 13292, 13206, 0, 0, 2925, 73809, 13056, 0, + 13212, 65110, 0, 13190, 13187, 0, 13198, 118793, 0, 5242, 119179, 64476, + 1694, 8216, 0, 0, 43331, 0, 65620, 0, 43544, 0, 0, 41444, 65621, 120325, + 64799, 5246, 120326, 13185, 9709, 120323, 120322, 12314, 65616, 5238, + 119333, 0, 119337, 5236, 40979, 0, 74201, 8286, 0, 3936, 119331, 11699, + 41347, 0, 13235, 8842, 41248, 0, 4379, 13239, 12692, 7969, 0, 7219, 0, 0, + 120509, 0, 66224, 734, 2979, 120303, 65619, 9872, 957, 64921, 1846, + 66631, 41477, 119256, 120310, 74511, 41770, 1670, 6442, 120317, 42446, + 5379, 120318, 41163, 74832, 120315, 120314, 0, 0, 42841, 13267, 0, 0, + 41775, 0, 0, 41773, 0, 10663, 0, 0, 0, 6151, 12110, 0, 65572, 119602, + 65250, 13265, 13264, 64518, 0, 6100, 0, 0, 5808, 65922, 0, 12967, 66041, + 9676, 4583, 0, 0, 68097, 64575, 0, 11965, 0, 119211, 0, 0, 0, 0, 68102, + 9698, 7814, 74476, 119651, 0, 0, 41921, 0, 9756, 6985, 119258, 0, 74219, + 0, 0, 0, 8012, 5674, 12353, 0, 12361, 5677, 42323, 0, 41925, 0, 41920, + 5673, 120534, 5676, 41923, 12694, 118978, 5672, 1294, 0, 0, 0, 42511, + 1727, 0, 0, 0, 0, 0, 74222, 8718, 3550, 736, 10268, 4505, 10316, 74090, + 5826, 74270, 5813, 0, 120712, 5841, 5837, 0, 0, 3105, 12829, 5838, 5796, + 0, 119592, 5793, 0, 5866, 5797, 41011, 5865, 120091, 7956, 598, 0, 64649, + 5806, 42398, 0, 9037, 5671, 120041, 0, 0, 0, 0, 0, 847, 0, 9529, 0, + 66657, 6980, 0, 120035, 0, 0, 0, 120033, 0, 0, 0, 120039, 0, 0, 0, 9624, + 0, 0, 43190, 65463, 1554, 0, 42611, 42563, 0, 5651, 2929, 0, 43201, 0, + 19963, 5698, 0, 0, 0, 0, 5644, 10292, 65546, 120492, 68141, 8372, 0, + 65116, 0, 120022, 0, 10388, 42799, 0, 41013, 10568, 0, 0, 2869, 0, 41015, + 0, 2785, 4366, 0, 10954, 41802, 0, 42608, 194688, 9884, 4759, 0, 0, + 10266, 41359, 1170, 127017, 0, 73908, 1609, 902, 0, 63936, 0, 11661, + 8122, 5818, 0, 0, 3861, 9540, 11028, 2554, 5158, 5714, 127015, 0, 0, 807, + 43079, 0, 0, 976, 5511, 64553, 0, 42155, 0, 41356, 74110, 118801, 0, 0, + 8676, 0, 0, 11066, 451, 63941, 5798, 9349, 42018, 0, 0, 0, 43609, 194703, + 120553, 1440, 0, 0, 120016, 74283, 11005, 0, 66656, 66044, 0, 194698, 0, + 0, 0, 10094, 0, 11529, 10857, 120643, 66436, 6546, 93, 0, 0, 74440, 0, 0, + 8171, 0, 119097, 127065, 917543, 383, 10377, 41656, 0, 0, 0, 5187, 0, 0, + 11286, 0, 64217, 0, 5232, 0, 41009, 0, 41005, 0, 0, 0, 8292, 195074, + 4980, 8860, 73947, 10028, 66478, 7076, 13182, 194705, 0, 0, 10631, 66031, + 7972, 0, 0, 0, 7900, 0, 11309, 194711, 4198, 64211, 0, 0, 0, 0, 0, 0, + 12931, 0, 0, 74285, 10185, 0, 64366, 65156, 8814, 0, 74771, 0, 0, 12836, + 0, 0, 74342, 8593, 0, 0, 0, 13255, 0, 0, 7464, 0, 65865, 0, 194650, 0, 0, + 9342, 120464, 0, 64516, 0, 0, 10129, 41007, 0, 0, 40995, 12209, 41012, + 119136, 0, 0, 120633, 40992, 0, 0, 0, 43558, 5522, 0, 61, 0, 74105, 3633, + 0, 65162, 41234, 12089, 0, 9771, 0, 13251, 0, 0, 6262, 2784, 0, 0, 8126, + 66483, 0, 0, 441, 42621, 0, 0, 41002, 40999, 119623, 43266, 0, 0, 10890, + 74481, 65834, 8324, 119103, 64417, 74817, 0, 64737, 0, 0, 8930, 0, 74249, + 1193, 10056, 1800, 13253, 13252, 7829, 0, 0, 7743, 0, 0, 0, 0, 0, 9034, + 6039, 0, 10075, 0, 41018, 65683, 10338, 66469, 0, 0, 0, 42815, 0, 41966, + 0, 0, 0, 11792, 0, 0, 911, 7539, 0, 0, 120339, 65159, 64390, 0, 0, 5520, + 11662, 0, 65330, 73886, 0, 0, 12326, 0, 0, 42808, 0, 9348, 64901, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5857, 65342, 0, 119120, 0, 8644, 0, 0, 0, 74296, + 41909, 0, 120332, 2791, 0, 1891, 0, 0, 41907, 66647, 0, 8761, 12942, + 5748, 0, 10773, 0, 0, 8796, 0, 6412, 120347, 8520, 13146, 0, 63931, 0, + 65902, 2882, 0, 0, 12843, 4520, 0, 0, 0, 0, 0, 73860, 0, 0, 64345, 0, 0, + 0, 0, 0, 0, 0, 917585, 65117, 0, 0, 10427, 0, 3844, 0, 9755, 1110, 6612, + 12222, 0, 0, 0, 0, 783, 194935, 0, 0, 0, 0, 65056, 3620, 0, 118945, 4556, + 0, 0, 194933, 74250, 0, 0, 10510, 4382, 66482, 0, 0, 0, 9177, 8902, 0, + 9839, 0, 12891, 0, 0, 63999, 2016, 41917, 9788, 63928, 0, 1862, 65800, + 9155, 66623, 9786, 65082, 41919, 8579, 41914, 7981, 0, 0, 4508, 64883, 0, + 0, 0, 0, 64592, 74276, 120080, 41780, 120079, 68181, 0, 0, 0, 0, 12147, + 9024, 66378, 66472, 0, 64289, 65289, 0, 0, 0, 64509, 0, 0, 0, 11051, 0, + 0, 11355, 65885, 0, 0, 41214, 0, 12299, 0, 7500, 4506, 7773, 0, 0, + 118912, 0, 0, 4040, 0, 6167, 0, 63922, 6594, 0, 0, 0, 3624, 43036, 0, + 64655, 63990, 19947, 63988, 41955, 0, 63993, 63992, 9611, 0, 0, 0, 7738, + 63986, 11446, 63984, 0, 3435, 119652, 0, 119108, 7029, 64258, 41292, + 118898, 12748, 43115, 9517, 11518, 0, 0, 0, 194777, 63956, 42458, 63954, + 63953, 63960, 9591, 63958, 10217, 118845, 11469, 0, 42306, 2723, 118947, + 0, 0, 0, 0, 0, 11397, 2880, 0, 0, 2872, 0, 0, 3498, 4378, 917539, 4270, + 0, 65551, 118928, 6633, 0, 0, 5230, 0, 0, 0, 0, 0, 8161, 393, 12013, 0, + 0, 0, 415, 63964, 63963, 42345, 0, 5183, 1877, 42498, 0, 2927, 0, 63961, + 4472, 0, 0, 0, 0, 917936, 42340, 4756, 0, 7081, 10730, 7691, 0, 63830, + 119625, 194945, 42103, 8628, 9813, 0, 42453, 1604, 9565, 10539, 0, 65764, + 41415, 65767, 0, 8457, 42301, 11372, 64873, 11992, 0, 0, 63980, 11801, + 3622, 0, 64336, 12017, 10463, 63981, 4967, 64189, 1966, 63976, 0, 0, 0, + 0, 63971, 4347, 4416, 42098, 11009, 10694, 63973, 402, 0, 13147, 0, + 42100, 64646, 13228, 0, 41875, 3515, 74252, 11805, 0, 11302, 6259, 0, 0, + 0, 0, 0, 0, 0, 74425, 11299, 1561, 0, 0, 64942, 0, 194733, 0, 194732, 0, + 74301, 0, 11280, 0, 0, 74060, 0, 0, 119664, 5145, 12486, 65018, 66516, + 5409, 0, 194669, 64347, 5399, 9685, 74089, 7952, 5401, 0, 66616, 0, 0, 0, + 5405, 917555, 64866, 0, 0, 0, 0, 74248, 11330, 194723, 64690, 3254, 0, 0, + 0, 42390, 0, 194725, 0, 65077, 0, 0, 3355, 9508, 9867, 5723, 11520, 5611, + 0, 3377, 0, 0, 0, 0, 0, 0, 0, 119119, 0, 0, 119068, 0, 0, 1379, 246, 0, + 0, 3788, 0, 11041, 0, 66304, 0, 0, 8917, 42403, 301, 0, 0, 0, 0, 0, 0, + 10656, 0, 65214, 119242, 42567, 0, 13163, 0, 120831, 74597, 3182, 0, 0, + 0, 0, 65889, 42169, 4755, 74244, 0, 11443, 0, 66326, 74598, 608, 600, 0, + 1219, 3934, 64206, 11483, 74510, 0, 74485, 42442, 65470, 0, 64202, 13160, + 7759, 42482, 485, 0, 0, 9828, 0, 0, 42280, 0, 9351, 7778, 64379, 7496, + 42431, 6916, 1208, 0, 119631, 11002, 42470, 0, 0, 0, 0, 74041, 0, 0, + 43539, 5411, 0, 0, 0, 0, 9150, 0, 42393, 13086, 1310, 194687, 9337, + 12052, 10643, 64586, 0, 194684, 2546, 194683, 213, 118852, 65611, 0, 0, + 194756, 74310, 6554, 0, 11914, 0, 0, 0, 0, 0, 0, 194681, 118826, 2713, 0, + 9650, 43330, 0, 194675, 1406, 0, 0, 0, 0, 194678, 4143, 194677, 0, 65748, + 4141, 9682, 65287, 1508, 0, 8779, 10569, 8725, 13299, 66638, 0, 42263, + 4145, 0, 65751, 66613, 0, 65738, 73729, 9185, 9550, 0, 0, 0, 0, 0, 65736, + 41951, 64816, 65756, 0, 12955, 10596, 2888, 0, 0, 0, 9657, 9019, 194766, + 0, 2878, 5390, 0, 194961, 0, 0, 0, 7501, 13203, 0, 10429, 10365, 0, 0, + 41946, 7503, 5235, 803, 0, 0, 0, 8986, 0, 10632, 11934, 11452, 1332, 0, + 0, 0, 0, 917545, 1791, 5191, 9288, 64822, 2892, 0, 67849, 555, 0, 0, + 66646, 0, 119002, 13151, 74512, 7289, 74055, 0, 0, 64162, 5858, 41927, + 10582, 0, 1784, 1361, 195047, 0, 7905, 0, 64868, 0, 13158, 0, 7211, 0, + 9371, 0, 0, 0, 1625, 0, 0, 1342, 0, 64171, 0, 10903, 0, 0, 0, 0, 0, 4482, + 41606, 0, 0, 0, 0, 64381, 0, 0, 0, 42245, 0, 41972, 0, 444, 0, 9127, + 66687, 66619, 0, 194972, 0, 11349, 40991, 0, 0, 119599, 120830, 0, 1197, + 0, 1149, 194970, 0, 0, 40990, 0, 0, 3492, 0, 0, 0, 0, 0, 12838, 0, 19948, + 0, 3099, 0, 0, 41087, 0, 0, 0, 119059, 12036, 0, 0, 0, 8152, 0, 64428, + 12227, 0, 0, 12828, 0, 0, 0, 0, 0, 0, 10386, 119574, 0, 0, 0, 0, 68154, + 0, 1743, 0, 0, 0, 65186, 0, 0, 9606, 0, 0, 0, 0, 0, 0, 0, 0, 194967, 0, + 0, 3395, 9362, 10878, 0, 0, 0, 64830, 0, 0, 41091, 3426, 1344, 8870, 0, + 0, 4735, 0, 6119, 12822, 0, 0, 0, 74818, 0, 0, 42637, 41080, 0, 12039, + 10559, 0, 118892, 0, 9472, 0, 11929, 0, 7170, 9596, 6130, 0, 0, 11579, 0, + 0, 194740, 0, 0, 66699, 0, 1004, 0, 194737, 0, 66008, 12627, 0, 0, 0, 0, + 0, 11300, 43304, 9686, 5890, 11776, 7558, 0, 65627, 0, 10718, 13154, + 3461, 9139, 0, 0, 0, 0, 0, 73877, 65628, 0, 0, 0, 41708, 12860, 41703, + 12069, 10838, 5403, 10352, 73917, 10061, 0, 0, 5140, 209, 0, 41704, 0, + 43078, 0, 0, 0, 10899, 65469, 0, 0, 0, 2410, 993, 0, 120589, 120689, 0, + 0, 0, 7232, 0, 119253, 0, 0, 74462, 0, 10489, 42166, 0, 10659, 3600, 0, + 4224, 1336, 41518, 0, 0, 0, 0, 41139, 64820, 0, 12966, 41134, 0, 0, 0, 0, + 272, 4263, 8793, 0, 0, 41502, 0, 983, 12549, 0, 0, 1190, 4109, 1335, 841, + 5888, 41358, 64863, 9544, 0, 0, 0, 0, 7209, 8223, 2409, 7799, 0, 74424, + 0, 0, 4731, 0, 66629, 0, 0, 1255, 4149, 9247, 0, 9913, 0, 0, 0, 0, 65101, + 0, 11694, 0, 11690, 5835, 0, 66625, 10842, 41354, 42123, 43097, 11688, + 66634, 1094, 194, 64692, 0, 8180, 0, 0, 73872, 73865, 0, 6114, 10898, + 43072, 0, 0, 0, 0, 0, 10695, 0, 7540, 0, 881, 7857, 6067, 65164, 0, 0, 0, + 13311, 0, 41857, 64321, 8359, 0, 12689, 0, 194594, 0, 0, 0, 68183, 0, 0, + 1287, 5436, 0, 0, 74142, 127013, 74152, 119078, 6051, 10497, 0, 8985, + 12109, 0, 0, 0, 0, 0, 3652, 10537, 0, 1276, 0, 6549, 279, 0, 0, 0, 0, + 1489, 0, 0, 0, 3899, 1007, 42124, 0, 42122, 0, 0, 0, 11985, 1345, 127006, + 0, 0, 8956, 43083, 0, 42138, 0, 0, 12151, 0, 0, 0, 6285, 0, 0, 0, 74194, + 492, 8685, 0, 0, 0, 0, 0, 2582, 11470, 64538, 7444, 0, 0, 41550, 0, + 73837, 0, 2527, 119824, 197, 2799, 0, 0, 120276, 0, 0, 66515, 767, 5524, + 7028, 0, 0, 119827, 0, 0, 0, 0, 0, 1799, 120497, 6971, 74336, 0, 0, + 65340, 118979, 0, 2434, 0, 0, 120579, 0, 4631, 0, 0, 6407, 0, 19931, + 43214, 0, 7570, 0, 3192, 0, 8414, 0, 0, 0, 0, 0, 9164, 66612, 0, 3171, + 6623, 4961, 0, 886, 0, 8654, 0, 9993, 74390, 64603, 0, 0, 9599, 0, 43084, + 0, 0, 0, 2399, 0, 8994, 10944, 41208, 0, 41168, 8178, 0, 3367, 195008, + 42510, 0, 0, 7789, 0, 1947, 0, 0, 0, 42759, 11068, 1705, 9331, 0, 74798, + 9181, 0, 0, 8017, 0, 65096, 66720, 0, 0, 0, 4909, 12126, 0, 120696, 4904, + 0, 195012, 1365, 9253, 42757, 0, 7462, 0, 0, 0, 0, 119587, 64415, 0, 0, + 5398, 0, 195014, 0, 0, 0, 0, 0, 0, 9476, 0, 0, 12763, 0, 3629, 0, 13005, + 0, 3628, 0, 0, 0, 3469, 42107, 42116, 917578, 64809, 2928, 4905, 9853, + 851, 9040, 0, 64665, 43086, 9114, 0, 42583, 9315, 4822, 4906, 3852, 2847, + 0, 3236, 11317, 1251, 7777, 41852, 11410, 10964, 0, 43222, 12646, 120269, + 10259, 9865, 65821, 0, 6018, 0, 0, 12276, 0, 0, 0, 0, 119613, 0, 0, + 10467, 0, 2443, 10918, 0, 0, 1001, 9241, 1927, 0, 0, 73987, 0, 0, 0, + 118828, 0, 65678, 12867, 0, 8260, 0, 7519, 118794, 12274, 8904, 518, + 65857, 0, 0, 13204, 4387, 857, 0, 65369, 0, 119583, 43125, 120592, 0, 0, + 0, 0, 5136, 1968, 0, 195023, 1337, 64967, 1629, 0, 796, 66506, 0, 74123, + 0, 0, 42314, 195021, 0, 74403, 6120, 478, 65151, 68128, 0, 43082, 6016, + 0, 42284, 0, 4276, 1206, 3619, 41638, 0, 3843, 12011, 8853, 3361, 0, 490, + 10715, 7578, 0, 0, 65350, 10530, 12348, 8653, 74314, 42435, 6154, 9551, + 65354, 0, 784, 42397, 334, 0, 42416, 65356, 65273, 0, 0, 7025, 10364, 0, + 778, 41626, 42455, 7989, 74063, 3227, 0, 0, 73983, 2915, 41698, 41022, + 41702, 10309, 127035, 0, 0, 6975, 0, 5415, 12176, 0, 0, 3462, 65215, + 42629, 0, 73784, 0, 0, 9759, 0, 0, 0, 8114, 0, 0, 0, 0, 8710, 42495, + 118956, 0, 4051, 10460, 74097, 118917, 1356, 12161, 0, 0, 0, 1619, 9703, + 43152, 42489, 42112, 0, 1875, 10808, 42109, 120284, 41860, 64862, 13305, + 64907, 5289, 13144, 0, 0, 5575, 9675, 0, 5940, 226, 2649, 74493, 0, 0, 0, + 3382, 42449, 6498, 1658, 11936, 0, 0, 11269, 0, 73759, 43100, 74449, + 65508, 0, 0, 0, 8935, 917985, 0, 0, 0, 616, 0, 65178, 4684, 0, 119653, 0, + 0, 0, 6048, 74460, 42110, 73965, 10870, 8557, 11054, 0, 0, 9681, 4475, 0, + 0, 0, 0, 120731, 6035, 0, 7651, 10296, 0, 0, 0, 0, 0, 118966, 74144, + 40997, 0, 10392, 10328, 40998, 0, 74488, 0, 9800, 8979, 0, 119131, 41000, + 0, 119239, 6487, 10977, 0, 10344, 0, 65299, 5394, 0, 0, 10220, 66505, + 41200, 0, 4425, 0, 0, 0, 43074, 73799, 0, 0, 0, 12173, 0, 0, 0, 65338, 0, + 0, 119582, 4474, 0, 43093, 0, 1587, 0, 0, 64475, 0, 1369, 0, 0, 0, 0, + 4560, 0, 0, 0, 0, 64948, 4430, 74347, 42601, 4514, 0, 0, 8194, 65462, + 10626, 10965, 0, 8893, 0, 12542, 0, 65341, 0, 65829, 7925, 0, 10475, 0, + 0, 1352, 11069, 7707, 0, 0, 65279, 127102, 127101, 127100, 65605, 6040, + 127097, 10440, 0, 9336, 0, 0, 8899, 7798, 64474, 64259, 0, 65188, 7820, + 43018, 0, 0, 7746, 1492, 0, 10884, 0, 0, 5127, 11285, 42501, 5495, 4273, + 43095, 41426, 10849, 5730, 2999, 0, 120720, 74304, 371, 64373, 6023, 169, + 5497, 11708, 0, 0, 0, 0, 8224, 0, 8938, 6043, 12738, 0, 0, 5321, 0, 0, 0, + 2589, 74332, 1689, 7802, 4683, 74318, 0, 120296, 66704, 0, 0, 0, 0, + 74513, 6049, 0, 4027, 834, 118962, 1803, 0, 1503, 0, 0, 0, 5731, 1381, + 2387, 0, 0, 8289, 64525, 65817, 2881, 65514, 0, 9601, 2879, 9668, 9766, + 0, 5729, 0, 74410, 6036, 64881, 4026, 9361, 127091, 2887, 0, 3526, 6298, + 0, 0, 0, 0, 0, 8572, 6021, 0, 0, 0, 43155, 0, 0, 3146, 10959, 0, 0, 0, + 10981, 166, 0, 8635, 0, 10623, 408, 0, 0, 13298, 0, 7426, 41641, 12717, + 0, 7607, 10639, 66713, 0, 0, 41643, 74134, 0, 8713, 41640, 0, 41645, + 66712, 6645, 646, 66726, 66711, 42129, 0, 0, 3472, 8697, 0, 0, 0, 0, 0, + 0, 5809, 1950, 119356, 0, 74572, 0, 42136, 0, 0, 0, 0, 3247, 119854, + 65017, 0, 0, 66668, 0, 0, 10983, 0, 0, 0, 41567, 0, 0, 0, 0, 0, 0, 0, + 8285, 0, 4509, 0, 66471, 12216, 0, 40988, 0, 0, 41727, 0, 0, 2396, 0, 0, + 0, 0, 64940, 0, 3886, 0, 42457, 0, 0, 996, 0, 917571, 4249, 0, 917594, + 11707, 8222, 0, 7939, 0, 917574, 917582, 917592, 917569, 8534, 0, 40983, + 0, 0, 0, 7201, 12561, 0, 42371, 12558, 0, 0, 10052, 40982, 0, 0, 1488, 0, + 0, 0, 917559, 0, 0, 1563, 0, 9619, 0, 0, 0, 0, 0, 5803, 7797, 6070, + 10006, 0, 2922, 6082, 0, 65009, 0, 12567, 0, 0, 0, 0, 0, 3607, 65863, + 10046, 9612, 42153, 8218, 9485, 0, 2032, 0, 0, 0, 0, 0, 0, 43085, 6057, + 508, 0, 0, 120265, 0, 0, 0, 0, 638, 6083, 119072, 0, 0, 2305, 0, 0, 0, + 6056, 6659, 0, 0, 6085, 0, 0, 3915, 41634, 0, 41639, 63912, 11941, 0, + 4028, 1787, 42180, 43096, 0, 3249, 1768, 0, 12328, 501, 127074, 10601, 0, + 583, 0, 41977, 0, 66004, 119350, 6505, 74010, 0, 13064, 0, 120810, 6500, + 5526, 65049, 0, 74531, 0, 0, 12745, 9678, 0, 120587, 9869, 0, 1771, 0, + 8936, 0, 0, 4208, 0, 119115, 0, 0, 0, 74101, 0, 11762, 0, 0, 0, 0, 66475, + 0, 5027, 0, 0, 0, 5069, 73862, 5028, 9897, 0, 73739, 5026, 0, 0, 0, 0, + 8931, 0, 1415, 8866, 41901, 74790, 0, 119361, 0, 43106, 5029, 119360, + 1580, 3598, 0, 41070, 0, 0, 3440, 119359, 1562, 0, 917827, 119358, 1716, + 0, 10600, 0, 620, 41001, 6028, 0, 42892, 0, 74822, 5024, 120829, 41003, + 0, 5025, 0, 0, 0, 119328, 0, 65557, 0, 0, 0, 11599, 0, 11602, 6243, + 11574, 11581, 11597, 11598, 6253, 6105, 11584, 74195, 11569, 65275, 8906, + 127096, 66491, 2636, 0, 10815, 11619, 0, 41540, 7815, 11616, 6979, 12080, + 7721, 11604, 7869, 1592, 0, 42152, 0, 41048, 0, 829, 0, 0, 19950, 0, 0, + 6616, 0, 118875, 10953, 391, 0, 0, 482, 42296, 11588, 0, 43606, 0, 0, + 66370, 0, 42335, 0, 0, 0, 7538, 5315, 0, 42491, 0, 42061, 0, 4576, 0, 0, + 120241, 4277, 0, 4039, 64472, 42338, 368, 42058, 3960, 11043, 11337, + 120247, 917820, 63989, 3958, 12132, 1849, 0, 9921, 42451, 917818, 41147, + 42064, 11959, 42404, 41160, 0, 3618, 0, 0, 43300, 5156, 0, 0, 929, 0, + 917822, 42437, 1555, 0, 8691, 66435, 0, 41662, 0, 0, 0, 0, 0, 4578, + 64513, 41664, 0, 42578, 0, 41661, 0, 43305, 9356, 0, 0, 0, 1286, 10166, + 0, 0, 64707, 0, 42476, 7730, 0, 0, 42483, 0, 0, 42324, 42291, 10020, + 43359, 0, 6641, 525, 41627, 0, 8763, 0, 41628, 533, 11931, 65225, 8321, + 42504, 42581, 0, 6915, 42310, 4377, 8559, 0, 120234, 0, 13193, 64350, + 11666, 8679, 41924, 1576, 7735, 0, 0, 73840, 0, 11374, 0, 10889, 917909, + 7757, 42462, 120226, 126994, 66493, 2718, 4168, 73842, 13308, 120112, 0, + 1179, 4440, 0, 0, 363, 11015, 0, 0, 64296, 127090, 66692, 120826, 0, + 66492, 6593, 64625, 41963, 0, 119329, 0, 10013, 0, 0, 127095, 9492, + 11782, 64382, 12833, 0, 0, 1297, 41630, 630, 127094, 0, 0, 0, 1043, 0, 0, + 10090, 0, 0, 313, 917563, 41881, 0, 42311, 7445, 0, 5750, 10759, 9419, 0, + 9405, 11268, 0, 9398, 8526, 9399, 9422, 0, 66495, 0, 0, 0, 41718, 10707, + 1603, 0, 0, 0, 631, 0, 0, 13161, 65272, 0, 10546, 74210, 0, 11600, 0, + 2797, 73821, 42427, 306, 714, 3058, 42381, 120036, 127080, 12351, 42395, + 0, 11607, 0, 42282, 0, 0, 9157, 73765, 66364, 42433, 0, 7603, 12803, 180, + 42141, 0, 120612, 66494, 12674, 8244, 362, 0, 0, 8037, 917804, 11535, 0, + 74845, 5185, 66696, 5521, 10334, 5519, 0, 10302, 0, 10104, 1027, 5181, 0, + 0, 10523, 1446, 42320, 41646, 991, 5189, 42472, 41647, 120105, 1722, + 5581, 0, 3405, 0, 194644, 5523, 0, 42620, 0, 0, 9549, 0, 10549, 0, 9661, + 66486, 0, 120537, 120026, 0, 0, 0, 0, 41991, 0, 0, 7630, 9846, 7684, + 10350, 0, 1174, 0, 0, 0, 0, 66485, 0, 42277, 0, 42456, 65667, 0, 12330, + 0, 0, 42417, 42383, 0, 41344, 6293, 0, 66252, 0, 74443, 0, 10209, 8313, + 4195, 0, 9010, 66690, 0, 0, 64894, 0, 65871, 0, 1736, 0, 3901, 12228, + 120151, 65200, 3383, 10446, 0, 693, 9130, 314, 64149, 42420, 11949, 0, 0, + 11026, 0, 5332, 6940, 64154, 12635, 127007, 120628, 1751, 273, 8165, + 13166, 120763, 0, 0, 12824, 0, 4528, 5320, 6301, 0, 6133, 9339, 9463, + 42346, 10922, 64560, 3757, 0, 0, 0, 65869, 73760, 2569, 0, 2326, 65740, + 2565, 42459, 7596, 7921, 0, 74095, 0, 41848, 2567, 66006, 0, 4044, 0, 0, + 12233, 0, 1023, 474, 0, 119818, 0, 0, 42487, 65556, 0, 0, 42295, 0, 0, 0, + 0, 9835, 66499, 0, 0, 12275, 10895, 0, 274, 0, 1858, 0, 0, 0, 10118, + 3133, 0, 73795, 0, 9610, 8068, 8197, 0, 699, 0, 41665, 5868, 0, 0, 42182, + 7581, 19940, 0, 41667, 0, 0, 1923, 65583, 65802, 0, 64597, 0, 119184, 0, + 0, 6464, 7036, 2996, 1937, 0, 0, 41835, 4047, 41842, 0, 65217, 0, 0, + 11017, 0, 0, 293, 0, 0, 64791, 41827, 42466, 65416, 10579, 8560, 0, + 65413, 118835, 4803, 12964, 1739, 1941, 3900, 0, 1713, 0, 0, 73957, + 11407, 42441, 41971, 6297, 120098, 64105, 0, 42481, 11716, 66473, 7179, + 42289, 0, 64103, 969, 0, 9352, 0, 6165, 64100, 0, 6632, 73861, 42402, + 74327, 7806, 0, 8914, 0, 0, 3183, 1435, 64876, 2969, 6046, 0, 6208, 0, + 5746, 73749, 0, 64416, 42422, 0, 0, 7082, 73775, 338, 5059, 194719, 0, + 42328, 10767, 0, 8115, 0, 0, 0, 8227, 0, 1218, 0, 0, 65848, 0, 0, 0, 0, + 126987, 4486, 0, 0, 0, 10925, 0, 0, 0, 0, 42309, 10257, 0, 10273, 0, + 10305, 42461, 0, 42349, 8832, 0, 64127, 10644, 0, 0, 42278, 74451, + 126988, 917857, 7794, 0, 42429, 11081, 42316, 119026, 3669, 3968, 42468, + 0, 0, 0, 65402, 119581, 0, 0, 64933, 0, 41960, 0, 0, 0, 0, 66678, 42391, + 1588, 65400, 8409, 0, 19967, 65398, 787, 0, 0, 0, 6115, 118940, 41654, + 42480, 0, 0, 41655, 65401, 0, 0, 0, 0, 644, 65500, 41657, 10778, 3659, + 9533, 184, 1553, 13107, 65484, 0, 10502, 74457, 0, 0, 41554, 0, 8220, 0, + 41557, 0, 0, 11070, 0, 5157, 4020, 73858, 41555, 9514, 64818, 65103, + 64641, 0, 119633, 7520, 0, 74377, 11029, 66651, 0, 0, 118930, 64527, 0, + 7877, 73803, 0, 0, 120096, 74602, 0, 0, 0, 42817, 0, 65212, 11715, 12190, + 12319, 0, 0, 0, 9502, 65427, 0, 65424, 0, 0, 9734, 65425, 0, 0, 0, 0, 0, + 10112, 10827, 0, 9866, 74527, 66675, 0, 8625, 64346, 11290, 10477, 0, + 8636, 0, 8315, 65444, 0, 0, 74595, 6152, 0, 0, 6629, 0, 120171, 0, 74589, + 0, 0, 0, 0, 0, 0, 11046, 11490, 43127, 4485, 0, 0, 64926, 0, 0, 0, 5869, + 12437, 0, 0, 7040, 3588, 0, 12825, 0, 0, 12725, 0, 0, 120167, 223, 0, 0, + 120166, 42444, 0, 64499, 65245, 0, 1171, 0, 120165, 0, 1805, 8772, 0, 0, + 65078, 65247, 0, 120111, 2338, 0, 118853, 0, 0, 0, 64800, 65236, 67644, + 68126, 1213, 0, 64075, 797, 64074, 8734, 4212, 0, 64387, 4115, 0, 5005, + 64070, 64073, 10679, 0, 0, 0, 64276, 426, 0, 0, 8251, 10136, 65436, 0, + 65088, 43302, 1224, 0, 65576, 0, 10701, 1764, 3101, 0, 65291, 120159, 0, + 11373, 74566, 0, 120103, 8663, 9312, 41644, 4539, 3787, 0, 9222, 0, 0, + 4259, 9092, 74567, 41961, 0, 12724, 66357, 42331, 64935, 0, 0, 1293, + 7947, 12003, 0, 74593, 120308, 2454, 74807, 3613, 0, 0, 0, 65888, 120307, + 10978, 10840, 0, 10668, 0, 43087, 12595, 120304, 0, 118806, 0, 1157, + 64903, 8638, 0, 0, 0, 0, 120319, 8235, 0, 4405, 10086, 0, 0, 0, 0, 65430, + 74013, 6079, 0, 10764, 0, 64291, 0, 998, 120312, 11062, 120313, 64327, + 1558, 0, 1991, 7882, 42254, 0, 41700, 530, 0, 10428, 119335, 12002, + 119336, 5742, 43076, 4692, 64630, 41823, 4007, 5004, 119334, 7896, 751, + 6595, 6596, 0, 66373, 0, 0, 64908, 0, 6311, 0, 12004, 119192, 12049, + 43108, 0, 0, 41705, 0, 6598, 0, 6599, 0, 0, 42148, 118825, 66027, 0, + 6597, 9412, 8340, 11824, 64745, 0, 0, 0, 1988, 5407, 67865, 2430, 41678, + 0, 0, 2336, 0, 0, 0, 120442, 0, 1921, 10947, 19927, 0, 65406, 0, 19913, + 4284, 13217, 0, 0, 12841, 9229, 10956, 42285, 41674, 19964, 41679, 65084, + 3521, 0, 5774, 8325, 0, 65403, 0, 1854, 10794, 0, 0, 0, 0, 0, 5280, 0, + 4344, 12905, 65433, 6076, 64793, 41610, 768, 12074, 442, 0, 68162, 64081, + 12934, 41682, 65432, 41693, 0, 6071, 65434, 0, 4804, 6994, 0, 0, 0, + 41696, 467, 0, 0, 0, 0, 0, 8421, 0, 0, 64801, 502, 0, 65431, 0, 0, 12043, + 1303, 316, 0, 2029, 65191, 119246, 11533, 64365, 0, 0, 4860, 194645, 0, + 42488, 0, 9583, 0, 5546, 8019, 73856, 0, 0, 0, 5544, 2355, 12150, 65725, + 5543, 119245, 63751, 12137, 5548, 0, 0, 0, 0, 65726, 6077, 0, 65452, 0, + 11301, 0, 0, 0, 9874, 0, 0, 0, 3050, 65410, 0, 0, 0, 0, 42830, 0, 66716, + 0, 4691, 0, 9345, 621, 0, 0, 0, 65411, 0, 41182, 73881, 65408, 73899, 0, + 9474, 10545, 119118, 10887, 3786, 65409, 8894, 43179, 119611, 7923, 3716, + 119341, 9996, 8508, 0, 7012, 8195, 0, 9566, 0, 3722, 0, 41707, 8493, 545, + 9575, 41379, 10050, 12718, 0, 8859, 41459, 0, 0, 120740, 0, 0, 9119, + 2787, 7920, 118823, 4021, 2012, 7985, 0, 119663, 0, 0, 0, 0, 410, 120449, + 1802, 120789, 74107, 0, 41659, 41671, 1827, 0, 64396, 10126, 12116, + 41673, 120370, 11422, 120372, 120373, 3860, 120367, 120368, 41345, + 120362, 120363, 11748, 42158, 7941, 11076, 8749, 120361, 12698, 64858, + 361, 120357, 845, 0, 41560, 11970, 4562, 917920, 2926, 0, 4569, 74130, 0, + 119221, 194630, 611, 74129, 64871, 0, 65629, 0, 0, 0, 0, 0, 120543, 0, 0, + 6291, 0, 0, 41669, 7094, 917921, 0, 0, 74054, 0, 0, 0, 839, 0, 7695, + 8769, 65246, 4829, 0, 4859, 64467, 0, 0, 118998, 7206, 0, 6647, 0, 0, 0, + 0, 64764, 4210, 0, 0, 804, 0, 0, 12298, 0, 0, 0, 64924, 10091, 73931, + 9468, 74245, 0, 0, 74246, 0, 12839, 64669, 0, 0, 1279, 1425, 6224, + 119229, 11049, 0, 917549, 0, 8482, 0, 0, 5032, 0, 11940, 67888, 664, 0, + 5034, 0, 0, 0, 0, 73888, 0, 13294, 67873, 64869, 6032, 0, 9115, 7430, + 120377, 0, 120819, 0, 120168, 73913, 120170, 41161, 5518, 4174, 10993, + 41162, 120160, 64528, 1169, 434, 41437, 1905, 6034, 41164, 64744, 9528, + 118867, 0, 524, 0, 74029, 788, 74027, 0, 0, 0, 1663, 10419, 74025, 42636, + 0, 0, 0, 120656, 0, 0, 0, 0, 0, 67897, 74039, 0, 0, 11395, 0, 119107, + 43612, 64344, 0, 0, 10855, 5445, 9355, 0, 65198, 0, 8989, 221, 65686, 0, + 0, 8010, 7191, 4962, 0, 8855, 0, 0, 64469, 0, 10555, 0, 0, 0, 0, 120427, + 10451, 0, 120152, 7245, 12443, 74405, 120148, 120149, 120150, 3873, 8367, + 0, 120146, 120147, 0, 66507, 0, 0, 11010, 12723, 74059, 74062, 6217, + 5896, 0, 7682, 74049, 1462, 10235, 0, 0, 0, 0, 0, 0, 42595, 0, 74402, + 118860, 0, 120419, 0, 74052, 0, 0, 120549, 119082, 64295, 120418, 0, + 64765, 73923, 120417, 120662, 120730, 0, 6216, 0, 10755, 9455, 0, 8124, + 0, 9470, 6944, 0, 0, 0, 2828, 0, 531, 42638, 0, 0, 0, 73764, 8204, 3614, + 2827, 9696, 0, 0, 8728, 4354, 10904, 120502, 19936, 7833, 120691, 0, + 42599, 42597, 0, 120409, 0, 0, 8537, 0, 0, 0, 0, 0, 41199, 10121, 2028, + 0, 0, 0, 0, 3062, 0, 74447, 12608, 0, 66440, 7545, 9700, 12580, 0, + 120777, 0, 41155, 0, 74071, 0, 0, 12713, 0, 0, 0, 0, 0, 1734, 0, 0, 0, 0, + 2456, 231, 0, 74167, 542, 0, 118786, 0, 0, 1230, 0, 0, 3597, 9761, 10584, + 74235, 0, 4037, 0, 8352, 0, 5687, 0, 64515, 0, 0, 0, 67846, 0, 9704, 0, + 0, 74284, 0, 0, 8660, 0, 0, 0, 0, 74482, 4483, 1709, 0, 9909, 6080, 0, 0, + 1746, 1315, 8667, 0, 0, 13140, 65899, 10604, 0, 4480, 11266, 0, 1226, + 6930, 0, 0, 0, 10897, 41230, 605, 0, 74785, 120356, 0, 0, 41500, 0, 311, + 11453, 6221, 10608, 64943, 74280, 10877, 0, 64885, 74272, 0, 0, 0, 0, + 74312, 345, 0, 74456, 64606, 42589, 0, 0, 5037, 0, 1776, 8422, 0, 118814, + 41508, 41201, 323, 43328, 0, 120698, 1295, 0, 4625, 0, 4630, 13117, 0, 0, + 65123, 11293, 2668, 11288, 0, 42640, 65666, 2519, 0, 65420, 0, 0, 917886, + 5049, 0, 119011, 706, 7754, 10854, 8738, 0, 65419, 0, 0, 649, 65421, 0, + 66702, 0, 12670, 1013, 0, 64919, 705, 0, 65422, 0, 1183, 0, 7017, 42852, + 0, 8157, 9736, 64503, 65418, 0, 0, 74035, 0, 11913, 73874, 42848, 0, + 8920, 0, 0, 7962, 12211, 9837, 0, 66227, 0, 4184, 0, 0, 10177, 73777, + 1857, 0, 4626, 8464, 8472, 0, 4629, 8499, 0, 0, 4624, 7818, 194622, 0, 0, + 7805, 0, 0, 6935, 0, 0, 0, 0, 43327, 0, 119046, 8492, 8250, 8459, 0, + 8497, 8496, 0, 0, 0, 0, 9543, 0, 0, 0, 65849, 0, 0, 0, 0, 0, 8684, 0, + 6102, 0, 5298, 0, 5294, 0, 0, 0, 0, 0, 119826, 0, 119215, 0, 12073, 0, 0, + 0, 13108, 0, 74397, 41468, 0, 0, 5292, 0, 0, 1939, 5302, 3970, 0, 12455, + 1793, 0, 0, 0, 6643, 0, 65263, 0, 0, 41293, 0, 119125, 0, 13219, 9569, 0, + 74383, 0, 0, 0, 5500, 8813, 0, 0, 0, 5322, 0, 0, 0, 5324, 66443, 3784, + 41614, 65269, 6230, 0, 0, 43324, 3360, 0, 11523, 0, 0, 41732, 7197, 0, 0, + 0, 41821, 1249, 0, 0, 0, 118992, 0, 64899, 64763, 41149, 41807, 43162, + 41815, 41150, 0, 10571, 10096, 0, 0, 0, 6947, 41152, 887, 9249, 6565, 0, + 41990, 0, 41811, 74466, 0, 6670, 0, 0, 0, 43092, 43325, 0, 10168, 0, + 9781, 0, 9190, 0, 9666, 8269, 65944, 74005, 13019, 11670, 0, 315, 12813, + 0, 119648, 0, 0, 0, 0, 0, 0, 0, 1378, 9509, 0, 0, 74475, 3066, 0, 67847, + 0, 0, 0, 0, 8787, 0, 194616, 41618, 194615, 0, 194614, 0, 64652, 0, + 194612, 0, 0, 42088, 0, 0, 7176, 0, 10137, 6121, 10995, 0, 74534, 8119, + 64874, 0, 0, 0, 0, 74525, 0, 0, 12930, 1394, 74514, 0, 74515, 0, 118804, + 2998, 9527, 120659, 65190, 12977, 42090, 119165, 0, 119100, 41236, 0, + 65168, 42003, 41237, 5848, 0, 0, 3670, 0, 0, 0, 0, 7890, 0, 11298, 43315, + 0, 6229, 1593, 0, 0, 619, 4635, 65080, 0, 0, 4120, 65337, 65336, 0, + 11808, 119214, 74115, 9366, 42790, 42006, 0, 65327, 65326, 65325, 10757, + 1507, 65322, 65321, 65320, 65335, 65334, 65333, 65332, 65331, 42059, + 65329, 65328, 0, 9128, 118885, 42073, 41631, 64590, 0, 4371, 7196, 65318, + 2035, 65316, 4106, 65314, 65313, 42074, 0, 41228, 0, 119117, 41241, 7903, + 41239, 43533, 127099, 7189, 0, 0, 0, 12357, 42802, 0, 8487, 9131, 0, + 4615, 12695, 0, 0, 12175, 0, 64535, 0, 7809, 0, 0, 562, 12169, 6590, 0, + 66455, 64738, 3219, 0, 0, 0, 1037, 0, 2025, 0, 13098, 0, 10637, 4568, + 549, 1570, 0, 2835, 0, 10624, 194587, 11072, 0, 0, 0, 12606, 0, 2825, 0, + 10825, 8079, 2821, 41046, 0, 0, 0, 120593, 13071, 0, 452, 41049, 42840, + 43614, 2831, 0, 74596, 11465, 5212, 0, 64703, 119191, 42308, 7181, 0, + 41332, 0, 12333, 0, 1668, 0, 0, 0, 1187, 0, 42628, 0, 0, 0, 0, 3240, 0, + 12194, 0, 11591, 41065, 5323, 8166, 0, 0, 0, 74535, 1623, 65297, 0, 571, + 0, 4918, 0, 5288, 0, 8916, 65048, 1909, 8864, 0, 0, 10736, 0, 11571, + 7615, 0, 0, 4237, 0, 1035, 65815, 0, 7881, 701, 65936, 3489, 0, 0, 0, + 11403, 0, 0, 0, 3796, 0, 0, 3994, 11421, 0, 0, 0, 0, 0, 0, 64857, 0, + 2855, 0, 66308, 41621, 0, 0, 0, 10654, 0, 119226, 12164, 3246, 7906, 0, + 65847, 7182, 0, 13024, 194822, 119931, 0, 0, 0, 0, 1496, 747, 0, 942, + 2378, 43136, 0, 8466, 0, 9320, 8001, 1232, 8139, 11617, 0, 0, 11409, 0, + 0, 0, 66319, 0, 0, 11612, 0, 0, 2374, 0, 8475, 11609, 66313, 0, 0, 5286, + 119297, 0, 0, 64925, 0, 0, 0, 194583, 7705, 11942, 11305, 194581, 3309, + 0, 0, 0, 0, 11975, 0, 41653, 1280, 1241, 7168, 12096, 0, 0, 42565, 41651, + 0, 0, 0, 41650, 0, 66470, 0, 12914, 41491, 66010, 119552, 6078, 65100, 0, + 1475, 0, 0, 6084, 917546, 41064, 41062, 0, 0, 3256, 0, 42076, 0, 0, 0, + 8727, 0, 65875, 0, 0, 0, 10562, 74215, 67608, 0, 0, 3248, 74297, 3261, + 9015, 0, 0, 3635, 64337, 0, 0, 0, 7195, 0, 2007, 64431, 0, 0, 0, 0, 635, + 0, 0, 65613, 0, 0, 73997, 0, 0, 119218, 7984, 8600, 74434, 0, 4176, 0, + 2034, 0, 120805, 65891, 127038, 0, 318, 2038, 0, 0, 0, 3649, 13149, + 42145, 42798, 3634, 120291, 118927, 0, 120124, 7866, 0, 11402, 42146, + 120134, 74238, 120129, 2849, 127034, 0, 7938, 12960, 1761, 11812, 65379, + 74509, 0, 1159, 0, 0, 0, 0, 7178, 194632, 0, 41680, 0, 0, 11534, 1514, + 11668, 67891, 9313, 7015, 0, 67877, 0, 12989, 194560, 9368, 12848, 1624, + 43270, 0, 194563, 10818, 194562, 12649, 0, 0, 1194, 3242, 0, 9555, 8598, + 120299, 6169, 0, 1551, 2798, 65176, 120298, 42752, 119025, 0, 67875, + 120301, 3495, 66648, 0, 0, 0, 0, 4891, 0, 10641, 0, 73746, 0, 0, 0, + 73787, 0, 0, 7199, 64955, 0, 0, 0, 0, 0, 64952, 0, 193, 0, 0, 0, 0, 0, + 5271, 0, 119661, 118882, 1362, 13297, 0, 0, 0, 0, 73789, 0, 6658, 4426, + 0, 0, 0, 119123, 7276, 42163, 5220, 0, 0, 0, 2416, 3310, 66030, 0, 379, + 0, 0, 0, 0, 3223, 65492, 1284, 0, 4549, 0, 0, 0, 0, 10807, 9558, 0, 0, + 8515, 8688, 12866, 0, 3294, 0, 0, 0, 0, 7564, 0, 43329, 0, 0, 73757, + 66456, 42359, 0, 2031, 0, 7202, 0, 12676, 66615, 0, 3215, 0, 7710, 1610, + 73801, 0, 0, 65682, 0, 0, 65924, 0, 228, 0, 1501, 0, 64395, 5179, 7200, + 6225, 0, 65794, 1725, 65533, 8196, 7476, 74399, 0, 0, 0, 8502, 5762, + 1967, 7483, 0, 0, 8104, 0, 7474, 0, 0, 0, 10414, 13001, 8141, 0, 42537, + 1557, 0, 0, 0, 0, 8631, 2545, 120672, 0, 0, 74190, 0, 0, 0, 42762, 0, 0, + 1650, 262, 1637, 0, 7901, 3238, 0, 41861, 0, 0, 65158, 10860, 0, 119134, + 7527, 0, 43319, 6419, 0, 45, 0, 0, 0, 0, 119810, 7194, 5291, 0, 0, 13129, + 0, 9084, 0, 8737, 0, 12881, 0, 12906, 9639, 7912, 2620, 0, 0, 0, 0, 179, + 65896, 0, 64756, 2853, 0, 118813, 0, 118996, 0, 2850, 8084, 0, 73850, + 2801, 119837, 42069, 119839, 74754, 119841, 42072, 119843, 119842, 74767, + 0, 0, 0, 0, 8245, 119313, 3158, 119853, 4389, 73813, 923, 119857, 119856, + 292, 13002, 119845, 119844, 3221, 1763, 119849, 4612, 119851, 119850, + 7253, 127110, 120618, 0, 10782, 3637, 12996, 43542, 0, 64578, 0, 3228, + 73869, 8783, 0, 119614, 2731, 0, 0, 118939, 4102, 7696, 73878, 0, 0, 0, + 43316, 4177, 11283, 9089, 0, 73996, 0, 64500, 68133, 0, 0, 1856, 0, 0, 0, + 0, 0, 0, 3208, 12975, 0, 0, 0, 0, 74072, 0, 0, 0, 0, 2033, 119008, 0, + 195026, 0, 7740, 0, 0, 0, 73964, 0, 0, 0, 65674, 0, 0, 41689, 0, 74006, + 64909, 6646, 11790, 74019, 0, 0, 0, 8561, 4573, 0, 5326, 0, 120605, 7230, + 8257, 0, 8778, 41688, 0, 65776, 0, 8314, 6459, 0, 7628, 65092, 73903, + 66721, 11342, 0, 0, 0, 0, 127001, 0, 11810, 13164, 10723, 967, 0, 0, + 11946, 0, 3257, 0, 12307, 1845, 0, 43526, 0, 0, 1886, 42342, 10089, 870, + 7648, 3499, 8609, 7652, 876, 871, 877, 0, 878, 42015, 879, 0, 4563, 0, 0, + 7591, 65887, 867, 9520, 872, 0, 868, 873, 7642, 0, 869, 874, 7644, 0, + 875, 790, 0, 0, 0, 0, 66182, 0, 5429, 0, 66180, 0, 66181, 0, 0, 0, 42067, + 0, 5433, 10657, 7911, 0, 1547, 66176, 42012, 0, 5425, 4977, 9999, 5317, + 5423, 4611, 0, 67637, 0, 9679, 74122, 0, 0, 0, 0, 4418, 66184, 4628, + 4245, 0, 0, 0, 1851, 0, 0, 11908, 0, 9360, 118897, 0, 42776, 66187, + 12837, 8829, 0, 0, 0, 0, 43318, 0, 8809, 119974, 0, 0, 120604, 0, 0, 0, + 0, 0, 0, 7427, 0, 4588, 0, 0, 74484, 0, 2433, 0, 119622, 3352, 74363, 0, + 0, 793, 74404, 0, 305, 567, 0, 842, 0, 8208, 0, 41695, 1647, 118877, 0, + 7837, 917625, 818, 5337, 917622, 917621, 41376, 119978, 917618, 120594, + 74086, 917615, 917614, 917613, 10973, 66359, 1372, 917609, 917608, 4969, + 1254, 917605, 917604, 917603, 917602, 65228, 0, 0, 0, 2840, 0, 119982, 0, + 0, 3245, 9068, 119069, 64725, 0, 0, 12991, 0, 2651, 0, 0, 917611, 0, 0, + 0, 0, 0, 0, 0, 43322, 0, 0, 0, 64372, 0, 3226, 655, 752, 7457, 7456, + 7452, 3285, 0, 0, 119988, 65610, 0, 0, 0, 671, 250, 7434, 618, 668, 610, + 42800, 7431, 1152, 42801, 640, 120666, 7448, 7439, 628, 3905, 73810, 0, + 0, 64749, 67850, 0, 0, 0, 0, 194873, 0, 0, 65945, 0, 0, 119590, 0, 0, 0, + 987, 6927, 11572, 42261, 11464, 3365, 0, 0, 0, 0, 0, 0, 0, 0, 11334, + 43326, 12609, 11519, 0, 5530, 5210, 0, 4627, 0, 5208, 0, 0, 10332, 5218, + 7976, 9156, 0, 3244, 5529, 0, 73894, 0, 5432, 64965, 5527, 74033, 10516, + 7790, 5528, 0, 42140, 120281, 0, 0, 43545, 120282, 0, 4000, 7429, 7428, + 665, 7424, 3206, 120279, 7884, 0, 0, 0, 0, 211, 2509, 0, 120573, 0, 3220, + 0, 0, 10690, 8951, 5214, 42474, 8118, 0, 7048, 4590, 0, 5852, 0, 0, 0, + 1708, 0, 0, 2623, 0, 0, 0, 0, 4698, 66509, 1066, 0, 4701, 0, 120285, + 74225, 119114, 8267, 0, 0, 0, 7516, 0, 2625, 0, 8034, 74309, 0, 3631, + 10955, 7850, 120293, 8416, 0, 0, 0, 0, 12660, 0, 0, 0, 74850, 41069, 0, + 0, 12099, 4310, 10032, 6252, 713, 7990, 0, 3990, 0, 0, 66368, 5017, + 64956, 7071, 0, 0, 1030, 118800, 0, 9513, 41059, 9357, 0, 1773, 0, + 120350, 0, 0, 7745, 9844, 0, 64650, 94, 1880, 74766, 0, 8908, 0, 0, + 65913, 0, 10752, 13003, 0, 0, 41307, 8732, 120338, 0, 1757, 6964, 4696, + 0, 0, 120806, 10029, 3641, 5419, 0, 0, 0, 0, 120344, 0, 0, 8610, 65230, + 7592, 856, 74299, 936, 13289, 0, 43171, 1459, 0, 65243, 0, 19953, 0, + 1504, 0, 0, 0, 74206, 7529, 0, 0, 0, 120782, 4113, 0, 2372, 336, 0, 7509, + 12152, 0, 682, 66458, 41505, 0, 64743, 10593, 1703, 0, 0, 8033, 0, 0, + 9810, 0, 0, 12970, 0, 42351, 10109, 0, 0, 0, 0, 119247, 0, 0, 74291, + 1965, 7069, 43312, 0, 73887, 0, 0, 64370, 6314, 41714, 8501, 0, 0, 74239, + 41317, 0, 5417, 0, 0, 0, 9353, 0, 41315, 917616, 0, 0, 6569, 0, 0, 0, + 119236, 634, 0, 0, 0, 917610, 4165, 8746, 0, 9654, 12856, 6924, 0, 7066, + 0, 0, 0, 41037, 0, 7786, 917607, 41039, 0, 0, 680, 6274, 0, 1181, 7056, + 3174, 0, 0, 0, 65665, 0, 0, 6920, 0, 0, 0, 0, 0, 64644, 126981, 0, 0, + 41028, 0, 6231, 2613, 65302, 40989, 0, 0, 0, 42760, 0, 0, 0, 40987, 4667, + 0, 0, 8828, 0, 0, 1246, 4746, 0, 0, 11021, 4749, 0, 0, 921, 4744, 0, + 12702, 242, 0, 1566, 8217, 0, 64653, 0, 0, 74036, 74505, 43274, 5313, + 951, 0, 0, 0, 7604, 0, 4009, 0, 0, 120562, 0, 0, 64860, 119138, 119902, + 0, 0, 4048, 0, 0, 120596, 1646, 0, 64534, 73995, 0, 0, 119890, 2579, + 119905, 3177, 11357, 9099, 4107, 3441, 119894, 2975, 74442, 9822, 0, 0, + 10084, 73943, 0, 0, 917562, 0, 3399, 9851, 0, 11909, 9059, 0, 7687, 0, + 8854, 0, 0, 0, 0, 0, 0, 1777, 9151, 1137, 0, 749, 42366, 0, 5385, 0, 0, + 0, 0, 5989, 0, 0, 0, 0, 41685, 0, 0, 9769, 41684, 0, 519, 0, 11740, 5766, + 0, 0, 2600, 8848, 120138, 41297, 0, 3666, 74473, 41300, 74468, 65160, 0, + 74542, 0, 74479, 0, 6558, 0, 0, 0, 120750, 252, 0, 41302, 0, 0, 0, 0, 0, + 11729, 8719, 9060, 0, 120139, 10761, 0, 0, 0, 118792, 11734, 0, 11730, 0, + 9593, 119188, 2403, 64808, 0, 0, 11728, 65894, 0, 0, 7764, 0, 0, 120825, + 0, 0, 4282, 8298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8456, 0, 74783, 65670, 0, 0, + 0, 7774, 10607, 9792, 0, 0, 0, 0, 120764, 0, 10019, 74762, 0, 3458, 4365, + 0, 0, 3647, 0, 2602, 0, 0, 194707, 41135, 0, 0, 0, 64631, 172, 4971, + 41219, 41137, 1889, 7238, 6545, 0, 0, 7597, 10528, 0, 0, 3732, 73910, 0, + 5344, 0, 0, 0, 9062, 119252, 0, 0, 0, 64479, 9232, 0, 0, 0, 0, 10900, + 41531, 1263, 3720, 12048, 0, 64292, 41524, 7227, 119635, 6099, 41534, 0, + 0, 0, 299, 0, 8525, 0, 3524, 0, 8831, 0, 0, 3075, 0, 0, 0, 66362, 0, + 74758, 0, 0, 5845, 0, 0, 0, 2581, 8200, 65114, 74393, 0, 43283, 5551, 0, + 127085, 0, 0, 118855, 0, 0, 8680, 7204, 0, 2588, 2914, 7011, 0, 0, 2471, + 0, 2883, 2749, 119563, 73774, 10913, 0, 0, 8666, 675, 42493, 0, 0, 0, + 6219, 0, 0, 41232, 10928, 0, 41153, 41229, 118967, 0, 3738, 0, 0, 12711, + 3181, 66212, 74289, 0, 42857, 8262, 0, 0, 0, 0, 42347, 12092, 9615, 7234, + 74047, 0, 0, 64674, 0, 0, 73846, 0, 12722, 0, 922, 74426, 74507, 0, 0, + 3218, 120471, 74290, 120469, 64562, 120475, 8569, 11404, 11932, 73728, + 3214, 120461, 120468, 12128, 3207, 65486, 0, 1901, 0, 0, 120460, 7425, + 3205, 0, 0, 0, 0, 0, 0, 65459, 2606, 0, 73897, 0, 11496, 1173, 0, 41272, + 0, 0, 0, 0, 120737, 0, 0, 0, 378, 2610, 0, 65079, 0, 65695, 0, 37, 7068, + 0, 120480, 120479, 3209, 120477, 0, 10638, 9768, 120481, 0, 0, 0, 0, 0, + 0, 65510, 0, 0, 5233, 0, 64792, 0, 0, 0, 0, 7060, 9847, 0, 1685, 595, 0, + 73971, 1292, 8940, 0, 11088, 0, 10004, 126997, 0, 6541, 0, 0, 0, 3243, + 9014, 5606, 0, 538, 64620, 5602, 8467, 74391, 6547, 0, 8203, 0, 0, 8458, + 65211, 8495, 0, 0, 917552, 779, 0, 64367, 2465, 0, 8193, 0, 9730, 9280, + 0, 7065, 74155, 4346, 0, 73798, 504, 0, 120715, 8982, 0, 0, 0, 782, 0, + 10883, 0, 917876, 732, 3737, 0, 1548, 0, 0, 1832, 5604, 5735, 41141, 0, + 4376, 0, 41142, 3745, 0, 0, 42888, 65712, 0, 3869, 11937, 5725, 0, 1783, + 0, 5728, 0, 0, 0, 11918, 66567, 5724, 0, 5727, 0, 0, 0, 764, 0, 0, 43531, + 0, 9033, 0, 42532, 6223, 11042, 0, 11423, 0, 0, 0, 0, 0, 0, 6559, 64557, + 0, 0, 120648, 43019, 0, 10238, 0, 0, 0, 120675, 0, 1478, 9783, 0, 2607, + 64740, 0, 7739, 74543, 0, 0, 0, 6132, 0, 63765, 0, 0, 41144, 0, 0, 43537, + 0, 10093, 4369, 917791, 0, 0, 8820, 3947, 0, 0, 11515, 526, 0, 41295, + 194603, 917785, 0, 0, 7688, 917786, 7686, 8288, 11815, 0, 0, 0, 1543, + 3713, 41221, 12423, 42281, 917788, 74024, 12293, 0, 64357, 11794, 42082, + 0, 1737, 8987, 42081, 0, 7205, 0, 9335, 12850, 119870, 6553, 7055, 0, + 8277, 0, 0, 5475, 74795, 7052, 0, 0, 12990, 1160, 42084, 119650, 41217, + 119660, 10018, 360, 0, 0, 68176, 5863, 3137, 0, 4147, 0, 41216, 7844, + 2616, 119190, 0, 65234, 0, 13076, 3135, 0, 0, 119139, 3142, 194948, 0, + 10819, 119580, 10183, 0, 2608, 1470, 73967, 0, 6227, 0, 0, 74775, 0, + 6163, 0, 0, 0, 0, 0, 8603, 0, 119866, 3306, 10876, 0, 119573, 0, 5834, 0, + 6222, 0, 0, 12086, 0, 1600, 64309, 64939, 0, 64783, 0, 11310, 0, 8882, 0, + 0, 2570, 7021, 0, 0, 43110, 0, 1234, 6540, 6974, 0, 0, 0, 5002, 0, 41286, + 0, 127019, 0, 43585, 0, 6551, 0, 0, 0, 41289, 0, 0, 0, 8977, 602, 120814, + 0, 0, 0, 0, 0, 41279, 0, 0, 0, 0, 43615, 0, 0, 0, 0, 12727, 0, 0, 0, + 9475, 0, 65105, 0, 9633, 10886, 43592, 7831, 0, 0, 0, 73915, 8076, 43048, + 8290, 8291, 43051, 0, 0, 2596, 43584, 0, 13113, 0, 0, 2393, 7058, 9087, + 74067, 0, 41574, 0, 0, 74058, 42035, 0, 0, 0, 0, 9854, 0, 64696, 0, 0, 0, + 74165, 0, 1720, 0, 0, 0, 6529, 7063, 0, 3751, 9120, 0, 0, 1798, 709, 0, + 1354, 1876, 13152, 6557, 12430, 8137, 0, 0, 0, 0, 245, 0, 11456, 41233, + 7070, 0, 0, 6136, 0, 65677, 8682, 41235, 0, 42045, 9804, 0, 432, 3595, 0, + 65437, 0, 74455, 42399, 0, 0, 0, 0, 119658, 0, 0, 0, 0, 8797, 0, 9052, + 64888, 0, 2356, 95, 74784, 10580, 0, 42286, 0, 64640, 0, 119104, 0, 0, 0, + 10063, 12652, 12199, 127030, 0, 2566, 11971, 0, 0, 1065, 0, 0, 0, 2576, + 0, 0, 0, 43604, 0, 0, 74082, 514, 74502, 0, 2921, 43215, 64493, 5772, + 12968, 0, 0, 74580, 917565, 2580, 0, 41341, 41223, 6564, 1463, 41342, 0, + 5293, 0, 0, 3733, 11346, 0, 12054, 0, 74098, 42827, 0, 13091, 0, 0, 0, + 917915, 0, 127026, 0, 74821, 0, 0, 119042, 0, 0, 13090, 66643, 0, 1270, + 1132, 42360, 0, 74096, 66655, 42569, 0, 0, 64761, 0, 41021, 8510, 42432, + 0, 0, 0, 0, 64496, 74109, 0, 9915, 0, 0, 7061, 41336, 3854, 0, 13141, + 917564, 0, 42319, 13082, 0, 7067, 0, 0, 0, 0, 0, 0, 0, 9029, 43543, 0, + 2353, 6308, 0, 74792, 2611, 119186, 0, 0, 0, 0, 0, 66627, 0, 4484, 8509, + 118976, 0, 65233, 0, 41224, 41017, 0, 3747, 10522, 0, 0, 1691, 41226, 0, + 12107, 0, 10905, 65010, 0, 697, 66018, 9284, 4244, 0, 0, 0, 13121, 0, 0, + 12010, 0, 0, 0, 0, 0, 0, 65816, 68111, 0, 0, 65668, 0, 0, 118784, 66365, + 0, 0, 12648, 0, 0, 0, 5785, 41309, 9764, 41316, 65877, 0, 13230, 41299, + 0, 0, 0, 0, 0, 0, 0, 13122, 0, 191, 74119, 0, 8000, 64411, 120652, 42889, + 64850, 41072, 41578, 0, 41577, 0, 10002, 0, 6533, 73802, 41570, 0, 683, + 396, 41580, 68146, 0, 12901, 0, 0, 343, 0, 0, 41360, 0, 0, 4743, 0, 0, + 74040, 74108, 8743, 1724, 1433, 119324, 0, 3739, 6263, 0, 0, 3964, 6592, + 0, 0, 66040, 0, 42568, 0, 0, 1778, 3956, 0, 42070, 6563, 43075, 9018, 0, + 0, 12067, 41312, 0, 5547, 0, 0, 0, 8175, 0, 284, 8108, 934, 0, 74001, + 173, 66460, 7174, 0, 0, 1750, 0, 4394, 0, 1807, 0, 0, 0, 5889, 0, 7180, + 0, 119145, 0, 0, 42471, 6982, 1721, 119144, 7891, 42243, 42160, 2583, + 4512, 0, 0, 0, 0, 0, 3855, 0, 0, 0, 0, 74295, 0, 0, 119140, 3975, 0, + 74087, 0, 12672, 3798, 2703, 0, 0, 0, 9774, 1275, 0, 0, 41095, 3962, 0, + 7873, 41101, 3954, 6457, 4513, 0, 0, 73994, 73992, 1468, 0, 0, 41851, 0, + 41846, 0, 0, 7633, 41849, 0, 4320, 3224, 0, 0, 0, 42531, 0, 1510, 0, + 8256, 0, 11393, 0, 8879, 0, 0, 8770, 0, 0, 127120, 1910, 8671, 0, 4283, + 0, 127117, 0, 0, 2654, 7893, 0, 0, 0, 0, 65106, 42761, 12857, 4581, 8411, + 119029, 127121, 0, 0, 0, 0, 0, 0, 1733, 4392, 2568, 10786, 0, 0, 8184, + 41486, 0, 0, 0, 0, 0, 0, 7185, 7965, 0, 0, 0, 0, 41350, 9129, 0, 0, 0, 0, + 0, 0, 10481, 0, 0, 7171, 0, 340, 0, 0, 0, 0, 0, 0, 0, 917620, 0, 0, 0, 0, + 0, 65203, 11392, 0, 0, 0, 3210, 0, 0, 0, 0, 0, 0, 917619, 0, 0, 10043, 0, + 1186, 41571, 6999, 617, 9464, 0, 3675, 5207, 65062, 5213, 0, 2617, 41348, + 41568, 0, 3253, 120535, 0, 8630, 0, 0, 5596, 5545, 7288, 2586, 64887, 0, + 5217, 0, 0, 0, 0, 64293, 68098, 2635, 0, 0, 0, 0, 0, 7835, 0, 0, 194988, + 0, 64558, 0, 0, 0, 0, 0, 0, 5784, 0, 0, 0, 0, 4011, 0, 68101, 0, 7864, + 4254, 118975, 0, 5600, 3903, 127083, 10447, 5598, 1207, 120521, 0, 3501, + 42582, 43600, 0, 0, 1124, 5597, 0, 0, 9321, 0, 0, 0, 0, 1719, 120576, 0, + 9671, 1125, 4399, 0, 0, 0, 7631, 5488, 65223, 0, 0, 5491, 0, 8937, 43044, + 2604, 74187, 5490, 43046, 5489, 7212, 11768, 43043, 6300, 0, 194789, 0, + 4390, 454, 41397, 0, 9875, 7593, 194792, 0, 118913, 7207, 0, 65901, 2394, + 2575, 0, 3746, 11016, 65752, 0, 0, 917944, 0, 11989, 0, 0, 0, 0, 0, 8249, + 0, 0, 0, 6640, 74806, 2598, 513, 0, 6586, 8656, 0, 0, 65008, 0, 194784, + 0, 194795, 0, 0, 194987, 0, 0, 0, 194986, 12647, 0, 194796, 0, 1036, 0, + 0, 1723, 0, 0, 0, 41579, 2444, 0, 10705, 73876, 0, 74486, 0, 740, 194985, + 0, 194984, 0, 4238, 11071, 9459, 917943, 0, 0, 0, 8121, 10438, 74487, + 42574, 13285, 195001, 11907, 0, 5690, 194999, 0, 0, 43181, 13095, 0, 0, + 64498, 0, 9506, 6978, 194993, 0, 0, 0, 194992, 0, 0, 1122, 317, 0, 0, 0, + 0, 1920, 0, 10173, 827, 0, 0, 0, 120126, 5223, 1304, 0, 119564, 5226, + 12602, 0, 0, 9329, 7758, 9239, 41173, 5224, 5487, 1222, 5692, 41725, 0, + 9674, 5695, 41711, 64627, 19909, 0, 74604, 5691, 287, 866, 233, 0, 0, + 42816, 0, 65140, 74797, 0, 8830, 6568, 42300, 10524, 41175, 0, 0, 0, + 5296, 0, 42492, 0, 0, 3302, 0, 0, 6516, 6515, 6514, 6513, 6512, 0, 7856, + 8690, 0, 0, 12122, 119628, 194813, 0, 1785, 0, 120635, 65153, 194810, + 5138, 0, 0, 0, 0, 4540, 41181, 0, 6200, 0, 5134, 0, 322, 4643, 5132, 0, + 0, 0, 5143, 0, 8790, 0, 0, 194802, 0, 8869, 120601, 0, 42060, 0, 0, 0, 0, + 10270, 10286, 10318, 10382, 43529, 66477, 0, 0, 74170, 0, 3234, 0, 0, + 74376, 43139, 118924, 127084, 120627, 8767, 0, 74489, 41281, 120746, + 5201, 0, 6215, 12714, 6214, 13101, 0, 0, 65268, 0, 0, 0, 11027, 0, 10059, + 10511, 42075, 9767, 789, 1749, 0, 127071, 0, 320, 0, 8647, 0, 3049, 0, + 6471, 42071, 43156, 0, 0, 0, 0, 4960, 5549, 0, 0, 8485, 4671, 5418, 0, + 3351, 0, 0, 10610, 5414, 3064, 6212, 4286, 5421, 0, 9554, 0, 0, 0, 6653, + 0, 0, 64510, 6213, 12885, 0, 119045, 64720, 0, 120759, 73741, 12603, 0, + 11430, 4566, 7843, 9317, 3801, 10342, 10406, 0, 119259, 42576, 0, 5200, + 0, 0, 0, 9183, 0, 74458, 73825, 395, 5482, 5198, 8786, 10390, 74202, + 5196, 43224, 6113, 42009, 5205, 0, 43307, 0, 118973, 0, 12134, 0, 0, + 118843, 9126, 435, 0, 12014, 12893, 8093, 9079, 3203, 192, 65109, 3385, + 0, 64430, 5383, 10294, 10326, 0, 5738, 0, 3336, 0, 5361, 3623, 41159, 0, + 68112, 7872, 8581, 0, 1260, 3149, 5359, 0, 0, 7914, 5357, 0, 0, 2624, + 5364, 0, 11431, 0, 9101, 11058, 0, 0, 0, 42271, 0, 65737, 120793, 0, 0, + 0, 10619, 0, 0, 0, 0, 0, 0, 0, 0, 9319, 7097, 119055, 0, 3232, 73824, + 74581, 0, 0, 0, 41889, 0, 0, 1161, 41895, 74103, 9701, 8622, 0, 0, 73819, + 120588, 5012, 119049, 41362, 0, 917762, 11921, 0, 11769, 0, 0, 41364, 0, + 74228, 41352, 41361, 0, 41366, 0, 3356, 0, 917, 0, 119915, 119923, 8199, + 119912, 119917, 677, 119916, 0, 119932, 0, 0, 0, 0, 3349, 74125, 7022, + 8927, 4739, 0, 5802, 0, 8615, 0, 0, 491, 0, 0, 0, 65837, 0, 8426, 11092, + 9891, 0, 42497, 0, 7586, 42305, 10852, 0, 0, 0, 0, 9095, 7741, 12684, + 41885, 1046, 0, 0, 0, 5815, 5171, 65539, 0, 6932, 0, 42394, 41878, 74849, + 917951, 0, 5169, 11935, 0, 0, 3175, 120822, 1537, 120804, 5176, 8905, + 4136, 4871, 0, 0, 9833, 0, 0, 1128, 65920, 0, 9711, 7057, 9408, 9409, + 9410, 9411, 3662, 9413, 3378, 9415, 9416, 9417, 9418, 8909, 9420, 9421, + 5897, 9423, 5165, 5126, 41385, 0, 41389, 917938, 8955, 3374, 9400, 9401, + 9402, 9403, 9404, 3507, 9406, 7629, 0, 19925, 0, 73832, 183, 0, 2631, 0, + 10627, 41130, 0, 3996, 0, 0, 0, 0, 119307, 0, 6580, 4332, 64825, 66329, + 10726, 66686, 41125, 5899, 41365, 917918, 12085, 0, 574, 917922, 0, + 73828, 5448, 41058, 5446, 73900, 41322, 74768, 5442, 4190, 0, 0, 5451, 0, + 3616, 0, 0, 0, 7708, 0, 10859, 65867, 10345, 10409, 4191, 0, 120719, + 73800, 42181, 0, 0, 4447, 0, 120708, 11788, 65587, 0, 10415, 74102, 0, + 205, 0, 10351, 119076, 0, 9862, 6588, 0, 64697, 0, 41355, 5505, 119154, + 5503, 8021, 0, 119150, 9819, 41357, 8011, 42885, 5507, 12044, 0, 0, + 10026, 5472, 65108, 1191, 13106, 5470, 10329, 5476, 8991, 66322, 0, 0, + 42874, 8550, 42876, 5592, 2919, 0, 2675, 5595, 0, 0, 4367, 0, 0, 5478, + 5904, 5594, 0, 74150, 7291, 5590, 0, 13067, 118909, 0, 0, 9731, 0, 64633, + 194565, 0, 0, 0, 0, 0, 10750, 0, 0, 74545, 0, 0, 12887, 10551, 194564, 0, + 0, 0, 120570, 0, 5199, 0, 1120, 42387, 0, 1444, 9486, 7554, 65839, 0, 0, + 1442, 0, 5894, 0, 0, 0, 0, 74313, 0, 13162, 0, 3334, 0, 118803, 0, 66022, + 0, 0, 1651, 0, 8861, 0, 0, 1142, 0, 8271, 0, 0, 0, 12903, 0, 4002, 0, + 10442, 10676, 3344, 0, 0, 12920, 0, 0, 0, 0, 1277, 0, 7871, 0, 0, 0, 0, + 119015, 120360, 0, 11784, 0, 0, 4700, 66366, 0, 120359, 11012, 0, 0, + 120358, 0, 4973, 8784, 0, 74804, 0, 0, 118981, 42440, 0, 43118, 0, 42364, + 0, 11543, 0, 0, 10346, 10410, 0, 9243, 2464, 0, 6108, 3372, 0, 6247, + 43117, 74526, 0, 74166, 0, 120355, 0, 0, 0, 0, 0, 0, 0, 74217, 3354, 0, + 4192, 9289, 118999, 41191, 3876, 0, 0, 120660, 0, 0, 0, 0, 0, 0, 11603, + 0, 0, 6589, 0, 194679, 0, 0, 0, 0, 0, 42572, 0, 10630, 74827, 1963, + 118889, 0, 11654, 0, 7550, 10686, 5903, 0, 0, 41329, 9662, 917937, 64698, + 3366, 10399, 0, 0, 11013, 0, 917933, 0, 0, 0, 6925, 0, 0, 917929, 0, + 11568, 0, 917931, 64579, 917930, 7852, 0, 0, 12292, 6312, 0, 64672, + 65296, 0, 118957, 0, 416, 12296, 74753, 73834, 0, 11050, 10984, 0, 0, 0, + 0, 0, 0, 9532, 66355, 0, 0, 917925, 64343, 195032, 0, 195031, 0, 0, + 195057, 11445, 0, 195028, 0, 195027, 0, 1021, 0, 9507, 10210, 74544, + 8023, 1200, 12243, 195062, 5282, 195061, 12540, 11545, 0, 120493, 3343, + 4424, 11047, 1885, 43268, 3896, 0, 66497, 2947, 392, 7894, 4391, 68139, + 0, 13059, 74816, 0, 3381, 7942, 0, 0, 0, 0, 0, 3913, 0, 0, 0, 7044, 1265, + 0, 6309, 7045, 7175, 7047, 0, 11791, 0, 0, 8221, 0, 41864, 0, 0, 0, 0, + 167, 0, 917584, 0, 74211, 41897, 0, 0, 0, 0, 0, 2493, 0, 118811, 0, 0, + 64354, 0, 8777, 0, 406, 8884, 2385, 0, 0, 0, 0, 43030, 42027, 12114, 0, + 0, 64936, 0, 0, 120629, 10561, 0, 8365, 0, 0, 65841, 120787, 11601, 0, 0, + 0, 917575, 7834, 74159, 0, 0, 10298, 6624, 4908, 917596, 1639, 0, 0, + 74157, 0, 0, 0, 0, 0, 0, 4817, 0, 194759, 0, 7043, 9600, 11022, 0, 0, 0, + 0, 0, 0, 7548, 64794, 42050, 12291, 0, 194761, 12343, 657, 195054, 64682, + 4461, 1134, 1838, 0, 0, 0, 4468, 0, 0, 0, 4456, 5206, 10720, 0, 42523, 0, + 0, 0, 0, 65550, 260, 4816, 74163, 10687, 0, 4821, 4466, 0, 195043, 4818, + 0, 41403, 119977, 0, 0, 41406, 43273, 74160, 119983, 73939, 119985, + 119984, 119979, 41404, 1165, 119980, 4451, 13087, 0, 11284, 119987, + 73855, 65155, 43014, 5439, 9363, 0, 3375, 0, 5900, 0, 7889, 2722, 42262, + 0, 0, 0, 0, 0, 0, 0, 11401, 0, 0, 0, 0, 0, 0, 0, 65438, 0, 7280, 0, 0, 0, + 4868, 119967, 119966, 0, 0, 0, 43161, 0, 119964, 0, 5182, 0, 120542, 0, + 0, 4226, 120798, 12135, 5732, 4464, 0, 0, 977, 4458, 0, 0, 64770, 0, 0, + 344, 0, 194790, 1395, 64279, 0, 0, 0, 786, 0, 43174, 64340, 0, 0, 0, + 43026, 7612, 10132, 64413, 0, 0, 0, 0, 0, 0, 120498, 0, 120734, 0, + 119160, 10204, 0, 0, 0, 0, 1399, 0, 0, 0, 8852, 0, 241, 0, 4907, 0, 0, + 7932, 9727, 0, 74255, 8748, 0, 0, 0, 0, 42780, 0, 0, 0, 4217, 0, 8650, 0, + 0, 0, 0, 118872, 43099, 3965, 0, 0, 0, 13300, 0, 0, 0, 66588, 118991, 0, + 0, 73815, 4420, 0, 6410, 7760, 0, 0, 0, 0, 0, 7294, 0, 0, 0, 9066, 0, + 11993, 43188, 2626, 7762, 0, 0, 0, 0, 42825, 41854, 5304, 0, 0, 6919, + 8619, 119655, 10038, 66454, 9592, 42851, 126993, 1542, 0, 0, 0, 0, 0, + 74311, 0, 0, 10181, 0, 0, 0, 7779, 0, 10195, 9479, 6029, 0, 0, 9689, 0, + 0, 8993, 66358, 0, 42378, 3368, 606, 0, 7697, 0, 0, 2030, 0, 6027, 8370, + 4322, 0, 65207, 0, 0, 0, 0, 0, 2735, 42831, 0, 0, 74866, 8881, 119047, 0, + 0, 73946, 0, 0, 0, 68140, 0, 9576, 0, 3347, 4160, 5154, 0, 3794, 66564, + 66514, 0, 7709, 41112, 0, 66560, 42041, 4572, 0, 66561, 0, 41113, 0, + 1615, 5855, 809, 0, 0, 0, 0, 5799, 0, 0, 0, 7260, 0, 43031, 64425, 65128, + 127061, 64386, 65257, 0, 0, 120607, 9347, 0, 6532, 0, 0, 0, 0, 65828, 0, + 283, 917917, 0, 532, 0, 0, 0, 120609, 0, 3370, 0, 11361, 5443, 0, 8153, + 73767, 0, 10741, 0, 0, 0, 0, 65495, 64706, 0, 0, 0, 0, 9466, 119600, + 9824, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 43264, 0, 0, 0, 0, 0, 0, 0, + 68161, 64550, 5186, 12890, 0, 0, 12108, 0, 65124, 0, 66043, 0, 0, 43107, + 0, 0, 42562, 0, 0, 0, 0, 11485, 6103, 127123, 0, 11718, 0, 12889, 0, 0, + 0, 0, 0, 0, 0, 1630, 0, 65483, 0, 12565, 0, 65476, 0, 0, 119554, 9283, + 7700, 917537, 9690, 65499, 0, 64593, 512, 3376, 118862, 0, 0, 0, 632, + 12940, 0, 42529, 0, 0, 5957, 0, 8926, 0, 0, 0, 10745, 10174, 0, 64581, + 5386, 120686, 11713, 10633, 120531, 5056, 0, 0, 0, 120773, 0, 9812, 0, + 4460, 0, 0, 0, 0, 0, 0, 0, 64278, 0, 0, 0, 0, 64389, 2953, 73879, 1801, + 12835, 917627, 0, 73823, 0, 66375, 0, 702, 42579, 0, 0, 13074, 0, 0, 0, + 0, 12106, 0, 74207, 1755, 10482, 12863, 0, 1163, 2951, 9522, 74079, + 195076, 120674, 0, 3384, 120728, 10702, 830, 0, 0, 0, 8451, 0, 0, 0, + 120762, 0, 0, 0, 0, 2908, 0, 0, 64902, 4243, 0, 12239, 0, 0, 4441, 0, 0, + 73940, 64352, 0, 0, 411, 0, 0, 0, 0, 0, 41890, 0, 2730, 41604, 0, 5428, + 194743, 3364, 42265, 0, 0, 118816, 0, 9684, 216, 0, 1401, 0, 0, 0, 0, 0, + 9158, 0, 120664, 5768, 0, 0, 0, 484, 0, 0, 0, 65895, 0, 0, 3338, 73935, + 572, 7041, 2736, 0, 0, 0, 2794, 8807, 64491, 0, 5438, 5222, 5381, 43114, + 0, 5193, 5125, 5456, 5509, 0, 194747, 9534, 0, 0, 0, 3430, 0, 0, 0, 0, + 981, 0, 4330, 120673, 120536, 1824, 10908, 0, 7034, 41683, 64617, 0, + 73754, 3957, 0, 64547, 0, 674, 63991, 0, 2946, 5354, 5251, 5328, 5307, + 3759, 11411, 8364, 5123, 0, 5281, 5469, 5121, 0, 0, 0, 5130, 0, 0, 0, 0, + 120726, 1221, 2733, 11746, 0, 5216, 0, 0, 0, 0, 3468, 0, 9230, 5939, 0, + 0, 0, 120677, 120729, 7278, 10321, 10289, 64613, 10385, 41706, 0, 0, 0, + 0, 11739, 0, 41981, 0, 5938, 0, 0, 12448, 7576, 10401, 10337, 73852, 0, + 13057, 0, 126976, 0, 10009, 0, 64304, 0, 12165, 0, 0, 9885, 0, 8077, 0, + 0, 0, 0, 0, 0, 0, 4220, 10725, 10433, 0, 0, 4987, 64519, 0, 0, 0, 0, 0, + 10970, 11733, 0, 120792, 0, 19944, 0, 9009, 8551, 0, 11468, 74003, 7575, + 0, 2724, 0, 0, 12313, 119949, 515, 119947, 42791, 63987, 119942, 119943, + 119940, 119941, 119938, 9775, 4046, 4589, 4521, 0, 9141, 0, 0, 2741, + 64399, 6197, 1370, 0, 0, 0, 0, 0, 0, 6184, 8606, 3303, 41372, 11786, + 9473, 66203, 66177, 0, 11593, 43007, 4478, 66178, 0, 0, 2744, 0, 4477, 0, + 814, 42066, 66183, 66204, 66194, 119961, 66198, 41880, 66188, 66197, + 119954, 11955, 66190, 66191, 41111, 66189, 73788, 7788, 4847, 0, 0, 0, 0, + 0, 1581, 6535, 0, 12954, 430, 194934, 194939, 0, 194938, 5278, 4945, + 42883, 4950, 0, 120547, 0, 7269, 0, 5964, 12908, 0, 0, 74764, 74477, + 119146, 194936, 4949, 0, 443, 0, 4944, 5467, 119603, 0, 65137, 6044, + 65392, 0, 4213, 0, 41303, 0, 194931, 0, 41306, 73984, 2698, 0, 0, 12072, + 3193, 0, 41304, 824, 0, 12091, 119814, 119813, 119816, 4673, 64804, 4678, + 119820, 119819, 65059, 0, 119808, 0, 5481, 3490, 1199, 119811, 8356, + 119829, 119832, 4677, 12688, 3102, 0, 4672, 119822, 119821, 5531, 119823, + 42575, 119825, 119828, 4674, 4548, 0, 0, 0, 119946, 8025, 0, 127024, + 1855, 0, 119945, 0, 120554, 0, 0, 0, 0, 2745, 11797, 0, 0, 119939, 4654, + 0, 0, 194959, 73993, 10525, 4649, 65209, 0, 0, 4648, 43080, 0, 0, 0, + 6246, 64950, 7828, 4650, 0, 0, 119086, 4653, 7822, 0, 0, 43187, 8669, 0, + 0, 65093, 0, 0, 2716, 0, 0, 0, 0, 0, 0, 11060, 8547, 2711, 42165, 0, + 119228, 7992, 0, 0, 4662, 0, 0, 9149, 9146, 599, 4657, 194963, 120754, + 194962, 4656, 10130, 0, 7811, 40994, 194965, 6414, 5967, 4658, 3725, + 5713, 5814, 4661, 42434, 0, 0, 0, 64904, 9026, 10833, 0, 7547, 4867, 0, + 10008, 10222, 3054, 194956, 9744, 0, 7605, 4622, 119656, 0, 0, 0, 0, 0, + 9045, 0, 4225, 19926, 0, 12880, 65307, 4617, 0, 0, 0, 4616, 10518, 10423, + 10359, 0, 5958, 0, 0, 4215, 9789, 917941, 4321, 4621, 0, 41313, 522, + 5368, 0, 65803, 0, 5366, 12201, 5372, 0, 0, 0, 7720, 0, 2696, 0, 0, 4638, + 0, 1790, 0, 5965, 64363, 66569, 0, 194968, 5376, 1835, 5335, 194966, 0, + 4633, 0, 68119, 1180, 4632, 0, 5387, 5333, 0, 0, 42094, 5331, 4634, + 11928, 0, 5338, 4637, 0, 5971, 42414, 0, 1268, 65097, 42361, 0, 0, 73853, + 1427, 0, 0, 5970, 3431, 0, 10358, 10422, 4758, 0, 1608, 2738, 0, 10455, + 4753, 74026, 11344, 4222, 6240, 5231, 74384, 0, 0, 6248, 0, 0, 0, 42318, + 0, 5229, 4757, 0, 0, 2728, 4752, 64563, 65235, 5234, 0, 0, 0, 10713, 0, + 0, 2622, 7460, 0, 0, 0, 8954, 74760, 65189, 2632, 0, 10108, 1011, 5574, + 1853, 2709, 65139, 5577, 0, 0, 118871, 0, 8965, 7635, 42177, 5316, 0, + 5314, 6451, 5572, 0, 5312, 0, 5525, 5330, 5319, 0, 0, 194907, 119016, 0, + 0, 0, 0, 0, 195009, 0, 74022, 0, 64609, 0, 0, 0, 5721, 0, 10398, 8632, + 66465, 11267, 73961, 0, 5720, 0, 1692, 4219, 4610, 8696, 4305, 0, 4609, + 0, 4614, 541, 0, 5287, 5309, 5285, 0, 5961, 4647, 56, 4216, 10577, 41381, + 601, 4613, 0, 0, 0, 4608, 64260, 41124, 5190, 67628, 0, 68145, 7086, 0, + 119243, 67620, 0, 2734, 11074, 0, 67627, 43593, 0, 67625, 5960, 0, 8992, + 65293, 0, 1782, 67622, 68114, 119950, 0, 68180, 5501, 119952, 42508, + 7442, 120749, 359, 41253, 119957, 6239, 119956, 41256, 0, 68134, 0, + 74209, 0, 9346, 118904, 41254, 0, 43291, 3767, 5737, 0, 4865, 0, 5740, 0, + 5736, 4368, 0, 7193, 68137, 0, 5739, 41024, 4866, 0, 73904, 0, 4869, + 120563, 0, 4223, 0, 6650, 0, 0, 0, 0, 4870, 0, 74805, 66566, 0, 120758, + 0, 0, 0, 10122, 4864, 66568, 4144, 7937, 0, 6245, 0, 2732, 66459, 745, 0, + 195097, 0, 4777, 7821, 0, 0, 42775, 0, 194954, 0, 3097, 0, 5966, 0, 4778, + 0, 10863, 0, 4781, 0, 64407, 0, 0, 8577, 0, 118964, 43285, 10216, 4782, + 0, 0, 120757, 917924, 12325, 0, 8717, 0, 0, 4776, 0, 11492, 8700, 0, + 13176, 0, 10426, 0, 917599, 10362, 0, 1715, 4849, 8242, 9561, 73922, + 43278, 42635, 0, 0, 5963, 917926, 0, 0, 4850, 0, 1607, 466, 4853, 118995, + 4854, 0, 5164, 0, 1350, 5124, 64420, 1993, 5362, 8471, 2708, 0, 12445, + 3785, 234, 3199, 0, 41268, 4848, 2530, 0, 4798, 1964, 0, 73762, 10458, 0, + 8576, 0, 0, 2704, 4794, 0, 0, 8322, 4797, 74074, 0, 2694, 4792, 0, 2439, + 65104, 0, 0, 303, 0, 0, 0, 2437, 0, 4221, 4844, 118869, 0, 0, 0, 0, 0, + 43292, 0, 2441, 10739, 65090, 0, 119327, 0, 2451, 2714, 119326, 0, 0, + 4937, 74541, 753, 5849, 10597, 43089, 11722, 9248, 0, 42879, 11725, 0, 0, + 2726, 3107, 73958, 4941, 64937, 917538, 9140, 1408, 5261, 41412, 0, 181, + 0, 4942, 9539, 4938, 0, 65201, 5259, 9369, 64185, 4142, 5257, 0, 0, 4964, + 5264, 64178, 64177, 12979, 0, 64182, 64181, 64180, 64179, 9482, 4873, + 41231, 1822, 42526, 0, 12758, 3865, 0, 0, 10500, 0, 0, 0, 0, 9830, 0, + 389, 10893, 7521, 0, 4872, 5463, 0, 3125, 9567, 0, 4878, 5459, 4874, 0, + 9557, 5465, 0, 0, 11494, 0, 9563, 10865, 74570, 43279, 64186, 0, 0, + 64191, 64190, 8898, 64188, 0, 41030, 0, 0, 917835, 0, 917834, 0, 917837, + 41031, 0, 11960, 0, 3082, 0, 0, 0, 10573, 0, 7079, 5856, 127043, 5163, + 127042, 0, 1817, 66724, 0, 0, 10564, 7763, 13077, 41813, 4400, 41745, + 64207, 10275, 8925, 10371, 10307, 41814, 4248, 0, 0, 4541, 6299, 64204, + 64203, 64201, 64200, 64199, 64198, 0, 42156, 0, 0, 64193, 64192, 0, 0, + 64197, 64196, 64195, 64194, 13282, 64175, 64174, 64173, 0, 846, 0, 0, 0, + 0, 0, 0, 2543, 12163, 3108, 9745, 64167, 64166, 64165, 64164, 41743, 0, + 64169, 64168, 64949, 10972, 10251, 10247, 42768, 715, 64161, 43299, 9453, + 5348, 10943, 120378, 0, 11352, 550, 9910, 0, 0, 66579, 11551, 0, 0, 9504, + 7187, 0, 10373, 0, 120791, 10261, 10253, 6404, 10277, 0, 11984, 1552, + 65222, 6998, 0, 0, 3128, 4789, 5067, 5066, 118849, 4784, 0, 8827, 1146, + 5065, 0, 0, 68136, 0, 0, 5064, 2431, 0, 9450, 1809, 0, 0, 0, 5062, 1264, + 64817, 13254, 11697, 0, 9785, 64716, 0, 3933, 74559, 4740, 7954, 0, 0, + 42609, 0, 74175, 0, 127016, 0, 0, 42130, 0, 5151, 917831, 917823, 0, 0, + 0, 7620, 3800, 65122, 0, 0, 8355, 7854, 0, 954, 64927, 4185, 41045, 0, + 41438, 41439, 73978, 10711, 4593, 0, 120584, 0, 64774, 13309, 10532, + 66727, 0, 0, 0, 64759, 0, 5166, 9888, 0, 5148, 42834, 0, 120634, 118946, + 64140, 0, 64131, 3119, 917814, 0, 3060, 64135, 9986, 0, 0, 636, 11698, 0, + 0, 9916, 11701, 7836, 0, 64137, 8320, 118969, 8863, 0, 119960, 1477, + 43289, 0, 74358, 8618, 0, 9908, 0, 0, 0, 3937, 12312, 0, 0, 0, 64781, + 912, 10498, 4536, 119963, 74532, 0, 6244, 0, 194580, 3935, 120665, 0, 0, + 11950, 5392, 42248, 65129, 0, 5397, 0, 12046, 12599, 0, 0, 5395, 0, 5393, + 354, 0, 119948, 0, 0, 0, 42039, 0, 0, 64142, 626, 0, 5895, 0, 0, 5780, 0, + 0, 0, 0, 0, 43297, 0, 4311, 4644, 8818, 0, 0, 0, 73818, 3918, 66452, + 3797, 1644, 119944, 9658, 4140, 11385, 65947, 6455, 9030, 813, 0, 68131, + 4146, 0, 5360, 2466, 0, 0, 0, 6249, 42117, 0, 0, 0, 0, 74046, 120583, + 4911, 988, 917809, 0, 0, 0, 7054, 64147, 0, 64920, 917812, 917803, + 118933, 120349, 0, 0, 11981, 12202, 0, 11032, 120725, 6093, 11608, 975, + 0, 65843, 170, 0, 0, 4169, 0, 41859, 6058, 120401, 0, 120657, 0, 0, 0, + 9818, 10178, 10324, 42106, 5898, 74540, 4738, 41856, 7062, 917865, 4737, + 11779, 4742, 120564, 917866, 73736, 0, 9825, 6448, 12700, 127008, 4831, + 0, 0, 0, 5300, 4741, 42108, 0, 64159, 4736, 64148, 0, 849, 0, 0, 43288, + 0, 66620, 0, 0, 65549, 9496, 64598, 0, 0, 7876, 68132, 917872, 3928, + 917870, 65283, 10706, 7198, 0, 4842, 12053, 0, 0, 4841, 0, 4171, 12008, + 6251, 3923, 1490, 0, 119591, 0, 40972, 5245, 0, 10114, 42001, 41888, + 4845, 8332, 40974, 0, 4840, 9077, 917851, 1747, 917849, 4825, 0, 917852, + 0, 0, 0, 0, 0, 0, 0, 9850, 118937, 367, 1472, 917859, 6687, 1274, 0, + 5905, 12339, 8919, 73953, 10907, 65261, 11023, 119559, 4830, 9134, 0, + 64126, 43011, 0, 0, 64101, 0, 0, 4824, 10614, 120390, 0, 1888, 1960, + 7861, 917856, 0, 41836, 43012, 6052, 6064, 54, 43009, 12214, 0, 6211, 0, + 358, 41997, 41833, 11442, 10758, 65774, 0, 120384, 64115, 120385, 0, 0, + 0, 119053, 0, 12765, 64121, 126998, 12962, 0, 0, 4017, 12827, 5241, + 120392, 0, 41118, 3924, 0, 11366, 917843, 0, 0, 917846, 41116, 917844, + 917845, 0, 11363, 12057, 11917, 1567, 74000, 4721, 0, 66202, 8957, 4139, + 0, 0, 0, 0, 0, 12740, 0, 4722, 12761, 0, 12759, 4725, 0, 4726, 0, 0, 0, + 917904, 917905, 0, 12755, 12762, 4015, 0, 8052, 476, 0, 0, 0, 64212, + 41020, 1382, 64209, 64216, 64215, 64214, 1656, 41831, 0, 0, 41843, 8720, + 3908, 1452, 13111, 0, 64067, 0, 8552, 64113, 41845, 3849, 0, 66232, 9778, + 120066, 5891, 7064, 55, 74437, 917911, 0, 0, 7935, 67586, 0, 1114, 0, + 67585, 120052, 120053, 120050, 120051, 3938, 120057, 65417, 64717, + 120060, 120061, 65415, 120059, 6292, 65303, 7955, 6452, 4713, 917887, + 66249, 917885, 917890, 917891, 65152, 719, 120044, 120045, 120042, 41944, + 4532, 65412, 120046, 10868, 4717, 2349, 5902, 66450, 4712, 917902, + 917899, 917900, 0, 8155, 4718, 3942, 4714, 9625, 0, 0, 0, 12006, 0, 0, 0, + 0, 0, 65414, 6454, 1229, 0, 66437, 66025, 917894, 0, 42500, 120508, 4809, + 9623, 917874, 917879, 917880, 917877, 917878, 65405, 68159, 917881, + 917882, 5365, 4545, 8901, 917566, 119555, 4813, 0, 0, 5925, 4808, 64330, + 0, 65475, 0, 0, 4814, 0, 4810, 0, 0, 64928, 10543, 0, 3522, 0, 414, + 65404, 0, 0, 6456, 73820, 0, 11905, 917883, 0, 0, 0, 74495, 0, 0, 0, + 118820, 9751, 65407, 0, 11770, 3919, 0, 0, 65061, 0, 0, 0, 12235, 0, 0, + 0, 66576, 0, 64080, 0, 64090, 0, 0, 10162, 10310, 0, 8454, 0, 42038, 387, + 41363, 12737, 0, 4780, 0, 0, 64310, 64621, 0, 0, 0, 0, 0, 0, 8896, 0, + 375, 6976, 0, 119005, 0, 0, 0, 119202, 119203, 12526, 43120, 2315, 0, + 1938, 119197, 0, 4529, 119200, 119201, 119198, 119199, 0, 0, 0, 13150, + 64492, 0, 0, 0, 12902, 0, 42891, 66327, 74298, 0, 10799, 0, 2587, 66372, + 0, 4193, 120334, 4241, 0, 7998, 0, 0, 0, 0, 2316, 118821, 0, 0, 0, 64297, + 74799, 0, 74140, 0, 5373, 0, 0, 3762, 10015, 0, 119232, 0, 41590, 0, 0, + 3780, 7485, 5779, 0, 42037, 0, 3906, 12349, 0, 8326, 0, 65498, 3763, + 6983, 5618, 0, 3779, 0, 43613, 0, 0, 0, 0, 0, 0, 280, 74558, 0, 68138, + 13072, 1894, 0, 0, 65478, 43310, 7231, 0, 11773, 0, 0, 0, 0, 2551, 0, + 6453, 10200, 6235, 0, 0, 0, 0, 4470, 0, 0, 7780, 5369, 118958, 5249, 0, + 5367, 8756, 0, 0, 5377, 120585, 68143, 1688, 0, 0, 0, 0, 0, 0, 0, 41697, + 41319, 1300, 10650, 41692, 64505, 4668, 0, 119624, 1465, 10850, 3943, 0, + 41205, 0, 0, 0, 0, 5352, 0, 0, 8839, 41314, 0, 7785, 41204, 0, 41209, 0, + 0, 43607, 0, 0, 5420, 3897, 0, 0, 74417, 4018, 0, 68127, 0, 0, 0, 0, 0, + 2561, 0, 3542, 41915, 12076, 7951, 68152, 118857, 5303, 6276, 1706, 0, 0, + 74116, 0, 65150, 41819, 0, 73951, 10847, 41822, 9985, 860, 0, 10506, 0, + 0, 10753, 10830, 0, 615, 64490, 7574, 0, 0, 0, 12909, 43016, 64559, + 127028, 0, 0, 0, 2020, 0, 4022, 0, 0, 0, 0, 41691, 0, 0, 0, 0, 64622, + 9070, 0, 0, 3911, 42829, 43122, 1033, 0, 0, 7000, 3904, 0, 0, 0, 0, + 127012, 13123, 10846, 3450, 0, 0, 118807, 0, 42778, 10000, 41088, 449, 0, + 3777, 0, 0, 9636, 0, 10738, 0, 9367, 593, 41085, 3999, 65226, 41713, + 12764, 0, 64409, 3596, 0, 0, 9763, 120280, 120283, 12347, 124, 12981, + 41127, 120278, 0, 0, 0, 0, 10820, 0, 0, 0, 1769, 41715, 2463, 0, 0, + 12770, 0, 1538, 0, 43124, 0, 195058, 7795, 120300, 0, 4828, 1258, 0, + 2006, 0, 0, 9498, 127032, 127033, 120289, 120288, 3939, 120290, 8846, + 8943, 120287, 120286, 2650, 4491, 1961, 42602, 11525, 120292, 1959, + 120294, 0, 11774, 41016, 0, 0, 0, 1511, 9324, 0, 10519, 66331, 3454, + 19930, 0, 41019, 0, 0, 65292, 0, 12862, 0, 0, 42143, 41828, 0, 65531, 0, + 118879, 0, 0, 0, 41826, 8865, 6402, 0, 13279, 7917, 120340, 0, 7733, 0, + 4998, 0, 0, 41950, 0, 4268, 0, 0, 0, 4013, 0, 10881, 0, 0, 0, 74788, + 2014, 0, 0, 9765, 0, 0, 0, 195059, 0, 65281, 0, 10949, 0, 0, 0, 2015, 0, + 0, 0, 66318, 74824, 0, 42517, 0, 0, 0, 0, 8094, 64468, 65909, 6474, 794, + 0, 12656, 0, 119353, 0, 1665, 0, 4833, 0, 119351, 0, 0, 189, 12611, 0, 0, + 2859, 4838, 0, 4834, 0, 0, 0, 4837, 0, 770, 0, 811, 0, 41042, 0, 41318, + 64427, 0, 0, 0, 3895, 0, 74341, 3976, 0, 42859, 10193, 3116, 7747, 0, 0, + 0, 0, 0, 0, 0, 41877, 0, 2871, 64614, 0, 999, 0, 68177, 41876, 2663, + 2017, 0, 0, 11040, 10150, 0, 64308, 1522, 597, 4775, 12555, 12571, 12550, + 12583, 12560, 2019, 12556, 12584, 3092, 0, 12562, 4783, 12566, 12569, + 12554, 0, 10812, 0, 0, 0, 3078, 1402, 0, 0, 0, 0, 0, 394, 3088, 0, 0, 0, + 3991, 64391, 0, 0, 424, 66328, 1999, 0, 73914, 0, 0, 0, 0, 0, 8246, 0, 0, + 0, 41840, 0, 2377, 1298, 64011, 12572, 11318, 12557, 12559, 12570, 8488, + 1003, 2373, 9446, 9447, 9448, 48, 0, 9480, 481, 0, 9438, 9439, 9440, + 9441, 8465, 9443, 9444, 9445, 9430, 9431, 9432, 9433, 9434, 9435, 3984, + 9437, 0, 0, 9424, 9425, 9426, 9427, 9428, 9429, 64758, 0, 9655, 0, 2004, + 9096, 9782, 0, 9172, 0, 19965, 0, 5955, 120485, 1108, 0, 74773, 0, 0, + 64782, 3926, 0, 65210, 8798, 0, 0, 1392, 0, 0, 917557, 10606, 8065, + 118805, 10353, 10417, 0, 0, 64524, 0, 4019, 0, 0, 43280, 8219, 0, 1812, + 0, 0, 0, 0, 42410, 74448, 119132, 6054, 10697, 3169, 42297, 42322, 10642, + 3909, 74461, 0, 0, 0, 0, 0, 0, 1049, 0, 65707, 11943, 41806, 0, 42336, + 3921, 0, 11775, 64760, 11766, 1038, 42303, 9823, 0, 0, 4008, 64004, 8773, + 10733, 36, 0, 5153, 41805, 0, 73735, 763, 41808, 64910, 0, 2009, 0, 0, 0, + 9640, 119951, 0, 120695, 8621, 0, 12852, 3031, 0, 64361, 0, 182, 194718, + 0, 0, 0, 0, 9058, 366, 0, 9892, 5969, 11754, 10848, 4570, 65301, 0, 4255, + 0, 10102, 41189, 4003, 41026, 68109, 13293, 41192, 0, 0, 42251, 0, 42534, + 0, 11287, 6128, 0, 11034, 10923, 64423, 0, 65506, 0, 0, 74083, 0, 66582, + 0, 0, 119955, 0, 9817, 0, 0, 0, 12117, 66586, 4183, 10540, 66250, 127044, + 127045, 0, 0, 0, 12897, 3792, 2011, 0, 6065, 43160, 0, 194715, 8692, + 41186, 41816, 41023, 41818, 41187, 11659, 7922, 12614, 2005, 8523, + 120144, 0, 7513, 1863, 4710, 0, 5956, 7621, 120274, 127116, 4705, 716, 0, + 0, 4704, 120040, 120270, 42241, 161, 0, 74546, 66214, 4706, 0, 0, 120037, + 4709, 10680, 0, 43293, 0, 0, 119164, 0, 0, 0, 1700, 119223, 0, 0, 0, + 4004, 0, 10968, 43296, 0, 8506, 0, 0, 126996, 1005, 937, 120030, 4734, + 2870, 0, 120032, 0, 7463, 4729, 0, 235, 1384, 4728, 0, 120420, 120644, 0, + 8109, 43105, 0, 4730, 447, 13186, 1513, 4733, 120415, 0, 0, 42527, 12911, + 0, 1383, 8565, 2469, 120024, 119089, 6156, 68117, 0, 7993, 4288, 120416, + 2674, 13238, 11922, 0, 120330, 3510, 13234, 0, 120407, 5605, 42095, + 11364, 0, 1380, 65617, 120320, 120261, 13196, 13197, 120309, 120682, + 9495, 119346, 0, 5959, 0, 73976, 120305, 0, 6941, 119349, 13205, 13211, + 5801, 12769, 65905, 120316, 1283, 120302, 4779, 0, 3719, 4006, 0, 19957, + 0, 2021, 119332, 0, 0, 43028, 65493, 41838, 3875, 5962, 64341, 119339, + 9814, 43571, 5827, 3314, 7787, 0, 65494, 68153, 0, 0, 120636, 64531, 0, + 0, 0, 0, 0, 65467, 5771, 41298, 0, 9742, 521, 0, 10800, 0, 8404, 194625, + 483, 7096, 7089, 66323, 928, 0, 0, 0, 10599, 11586, 3989, 10971, 0, + 65782, 9841, 8843, 12145, 0, 10074, 120816, 0, 3769, 0, 0, 0, 0, 9573, 0, + 65290, 8849, 0, 65855, 65112, 1796, 0, 0, 0, 8164, 41301, 3502, 0, 0, + 10621, 73838, 0, 5825, 13007, 68165, 0, 0, 12661, 7608, 10354, 10418, + 42411, 2022, 0, 1409, 12195, 4001, 3112, 10824, 120639, 1390, 0, 0, 421, + 43536, 5846, 120120, 4130, 0, 7595, 42588, 7600, 0, 66035, 0, 0, 65851, + 42607, 0, 0, 3168, 0, 42134, 0, 2370, 2846, 0, 0, 0, 120132, 0, 1836, 0, + 0, 119137, 3740, 0, 6290, 65374, 120451, 65923, 3944, 66628, 120434, 0, + 6135, 3118, 74265, 119093, 120446, 0, 0, 8127, 8975, 64739, 7943, 0, 0, + 10618, 2584, 0, 0, 0, 9998, 0, 0, 0, 0, 0, 6204, 0, 0, 8279, 8776, 64954, + 4975, 74809, 0, 4267, 0, 0, 0, 0, 195046, 65700, 66562, 0, 64645, 0, 0, + 0, 12586, 0, 9242, 0, 0, 4523, 5842, 10495, 3122, 0, 7793, 0, 9328, 0, 0, + 12604, 0, 6615, 0, 0, 3986, 0, 0, 8912, 64555, 0, 0, 0, 9541, 0, 0, + 11275, 8540, 11498, 0, 0, 41040, 2459, 0, 13060, 41041, 74413, 0, 0, 0, + 0, 10450, 12551, 41043, 7020, 120353, 3765, 0, 0, 1606, 120348, 120351, + 3093, 0, 0, 0, 120649, 0, 0, 4312, 74091, 120337, 120336, 11923, 4023, + 120333, 5763, 120335, 4827, 10894, 12810, 64406, 118785, 4455, 74321, + 433, 119620, 66660, 2499, 0, 0, 0, 11973, 13089, 4293, 120329, 120328, + 42758, 12196, 42837, 0, 119319, 0, 0, 5817, 0, 0, 3120, 9797, 0, 0, 0, + 10389, 0, 0, 4895, 65358, 0, 4359, 585, 0, 3509, 0, 486, 4290, 0, 0, 0, + 0, 7004, 0, 65880, 0, 119048, 2380, 11380, 0, 0, 2376, 0, 0, 0, 5197, + 127046, 127047, 127048, 2366, 127050, 127051, 127052, 0, 0, 0, 0, 0, 0, + 0, 0, 74188, 0, 0, 0, 0, 0, 0, 0, 120049, 0, 1847, 0, 10339, 0, 42384, 0, + 4227, 74158, 0, 0, 43032, 0, 42365, 0, 12671, 11384, 0, 0, 0, 64797, 0, + 5820, 0, 0, 120065, 0, 120064, 120650, 42137, 9893, 2754, 12664, 120063, + 0, 13192, 0, 41799, 65530, 1711, 12984, 43039, 3114, 6255, 0, 118938, 0, + 10853, 926, 0, 74184, 0, 120055, 0, 43175, 0, 43037, 41798, 41035, 11583, + 0, 41801, 119088, 0, 520, 4200, 12699, 8331, 0, 3091, 41034, 0, 0, 8360, + 0, 0, 321, 4229, 64543, 0, 65563, 0, 0, 2861, 0, 10095, 0, 0, 0, 1861, 0, + 0, 0, 0, 43041, 0, 0, 0, 3859, 12181, 41660, 8209, 0, 120678, 12973, 0, + 74757, 0, 41658, 0, 0, 5760, 0, 743, 4414, 120766, 0, 42632, 917973, + 65161, 73896, 0, 0, 1405, 119063, 43220, 43341, 0, 19919, 0, 64532, + 65367, 0, 0, 0, 3513, 0, 118883, 43342, 119064, 65529, 65364, 0, 0, 6485, + 1397, 0, 65365, 0, 0, 0, 0, 0, 7471, 12079, 0, 12682, 43287, 0, 0, 0, 0, + 0, 0, 1099, 10490, 0, 10501, 65181, 74463, 0, 464, 41624, 119594, 0, 0, + 1346, 0, 917631, 64724, 64897, 423, 1818, 65144, 0, 8272, 0, 0, 4218, + 3087, 64960, 0, 43564, 0, 0, 9584, 10465, 0, 74359, 12626, 9106, 0, + 42642, 0, 64750, 9390, 0, 41797, 0, 0, 265, 41795, 64666, 0, 43530, 2752, + 0, 0, 0, 59, 0, 0, 0, 0, 0, 41810, 0, 7010, 0, 41809, 41495, 119364, 0, + 42252, 0, 8009, 3305, 43033, 511, 119320, 66255, 13127, 120067, 0, 0, 0, + 917977, 65915, 1400, 41812, 10685, 194870, 41211, 10387, 4453, 43276, + 917783, 13159, 0, 6481, 41213, 0, 0, 0, 0, 41983, 74198, 6617, 9116, 0, + 0, 462, 68110, 10493, 0, 8129, 0, 0, 74471, 6644, 11658, 0, 0, 3452, + 11906, 9581, 1385, 3098, 0, 119013, 43340, 0, 41033, 6493, 42626, 0, 0, + 11426, 0, 1681, 118789, 1204, 3755, 64661, 7235, 10170, 3966, 8911, 0, + 41841, 43338, 0, 0, 5726, 64915, 42175, 0, 0, 41497, 65044, 0, 2851, + 43017, 0, 0, 4373, 0, 0, 9587, 1789, 6671, 0, 3100, 0, 65360, 0, 0, 0, + 64922, 0, 8190, 12083, 0, 0, 6506, 64312, 74374, 2368, 0, 4419, 0, 0, + 3439, 1825, 1192, 120106, 8891, 3080, 120228, 2347, 5430, 0, 8990, 2848, + 0, 0, 0, 249, 0, 0, 0, 120658, 0, 0, 8883, 917802, 728, 68178, 995, 0, 0, + 64826, 0, 917798, 0, 0, 19945, 8091, 558, 0, 12273, 0, 0, 12112, 0, 0, 0, + 74419, 12335, 120104, 917795, 3443, 3129, 0, 12913, 65445, 0, 64891, 0, + 7725, 0, 0, 0, 8624, 0, 12446, 43295, 0, 41894, 0, 6277, 41672, 41893, + 10010, 0, 3540, 0, 835, 0, 0, 119868, 74408, 0, 73959, 5426, 4258, 0, 0, + 5424, 0, 8283, 0, 5434, 0, 0, 19917, 11408, 0, 11947, 0, 1404, 3095, + 11432, 0, 3464, 6486, 4819, 0, 0, 570, 8095, 3672, 119864, 1498, 0, 0, 0, + 431, 0, 0, 0, 0, 68167, 0, 13096, 0, 0, 0, 9516, 0, 5268, 0, 0, 0, 4450, + 120723, 11547, 64358, 0, 356, 3477, 227, 10488, 0, 382, 11418, 0, 0, 0, + 0, 0, 0, 6484, 2541, 66039, 0, 0, 0, 3549, 0, 9110, 119665, 2743, 0, + 43290, 194812, 9097, 0, 43015, 8782, 0, 776, 2524, 0, 8573, 0, 0, 0, 0, + 120572, 64944, 8952, 3856, 118818, 0, 5872, 6495, 0, 0, 0, 0, 0, 120733, + 12849, 3953, 1897, 0, 0, 11994, 4339, 74556, 0, 67843, 0, 0, 0, 74251, 0, + 5228, 0, 7868, 43184, 0, 0, 73986, 0, 0, 43022, 0, 1162, 0, 2671, 0, 0, + 0, 0, 118865, 4553, 73811, 0, 195005, 0, 0, 19921, 74331, 11424, 0, 4567, + 41891, 0, 0, 119056, 4820, 65239, 194662, 0, 0, 43042, 119212, 1377, 0, + 4897, 42821, 9250, 0, 4438, 64385, 0, 1753, 11331, 6147, 0, 43282, 8833, + 0, 0, 6504, 194667, 126979, 10719, 0, 1898, 1413, 42443, 0, 802, 12141, + 0, 0, 6648, 10671, 2528, 0, 64789, 9169, 838, 127092, 120697, 844, 5014, + 0, 256, 0, 9990, 0, 43301, 0, 7542, 65464, 9726, 0, 6489, 10048, 74326, + 0, 66573, 0, 0, 0, 11761, 194655, 0, 41094, 0, 0, 0, 0, 0, 6196, 6945, + 194628, 194890, 194631, 120491, 11816, 194943, 5733, 0, 0, 0, 41098, 0, + 41093, 0, 66626, 588, 9760, 0, 194717, 1238, 200, 0, 1660, 73916, 0, + 118905, 74362, 0, 0, 194651, 0, 0, 3394, 0, 120668, 0, 0, 0, 66219, 0, + 43284, 0, 7817, 1841, 11055, 120533, 194979, 194982, 1669, 10776, 194981, + 7701, 194980, 0, 194995, 1732, 4030, 0, 3963, 66611, 0, 41768, 6491, 0, + 65324, 914, 65323, 8071, 3538, 0, 0, 0, 0, 74367, 7614, 0, 11819, 0, + 12009, 12399, 0, 67852, 65537, 0, 10841, 0, 5301, 0, 0, 5734, 8960, 0, 0, + 65317, 0, 0, 0, 0, 12304, 0, 0, 65315, 0, 0, 0, 0, 0, 119621, 0, 74536, + 12447, 64486, 0, 0, 0, 0, 0, 0, 42767, 10915, 0, 12007, 0, 120520, 0, + 194878, 0, 0, 0, 8629, 0, 43168, 41872, 0, 4496, 0, 0, 0, 0, 0, 0, 0, + 64730, 0, 66714, 0, 0, 0, 65596, 0, 11416, 4280, 119018, 8765, 12784, + 7792, 1393, 0, 67871, 74386, 0, 8233, 43572, 0, 6683, 0, 3442, 12144, + 2841, 12543, 0, 1473, 42820, 64329, 917772, 0, 0, 6488, 357, 1048, 41100, + 0, 41104, 0, 41099, 1054, 119065, 1040, 65450, 0, 4434, 1069, 0, 0, + 74231, 917765, 0, 0, 0, 9693, 41943, 0, 41931, 41759, 12757, 4353, 0, + 1059, 9790, 8995, 0, 0, 65937, 0, 41764, 10646, 0, 118833, 0, 0, 74830, + 0, 12743, 0, 6480, 917761, 41779, 42580, 66601, 12207, 119619, 10986, + 66602, 11312, 64807, 0, 0, 41767, 0, 0, 43020, 0, 3955, 74254, 0, 0, + 917861, 0, 120735, 9770, 9246, 12230, 0, 0, 0, 10448, 41783, 41786, + 127093, 12797, 2755, 64571, 194912, 194927, 4857, 0, 4428, 12794, 73755, + 0, 0, 0, 0, 0, 5747, 194720, 0, 7978, 41092, 74571, 0, 11924, 74205, + 42144, 65015, 0, 563, 0, 0, 12798, 11271, 57, 0, 0, 0, 119043, 0, 0, + 43137, 694, 0, 9876, 0, 119168, 0, 0, 64537, 0, 277, 74385, 7229, 74459, + 0, 0, 64634, 64811, 8757, 119087, 0, 1574, 194633, 0, 2525, 4852, 5749, + 0, 13027, 42824, 120574, 1039, 9801, 10155, 5745, 188, 41858, 11592, 0, + 74015, 0, 41853, 4858, 0, 0, 436, 4771, 0, 2786, 0, 4856, 8051, 0, + 119609, 0, 9644, 0, 0, 0, 194916, 120732, 66710, 118834, 0, 73906, 0, + 127114, 0, 10234, 5843, 11939, 0, 42157, 0, 3157, 194918, 0, 0, 3504, + 119178, 0, 10822, 5149, 66029, 10226, 65142, 0, 3594, 42424, 0, 40, + 12657, 0, 0, 386, 0, 8834, 0, 12815, 43574, 0, 73907, 0, 74196, 7220, + 74504, 0, 74316, 0, 0, 4304, 74503, 8160, 0, 194753, 0, 0, 0, 1348, 0, 0, + 0, 13303, 0, 0, 194755, 7599, 1278, 0, 13269, 0, 0, 74387, 0, 0, 74492, + 6097, 7568, 8780, 4982, 0, 74501, 194763, 0, 194762, 2672, 3735, 194735, + 13138, 42266, 9484, 10724, 41202, 119024, 0, 0, 0, 9487, 0, 194765, 3842, + 195034, 195056, 12442, 6193, 9791, 0, 0, 42516, 7228, 7559, 74803, + 194689, 194851, 11399, 119219, 194856, 194855, 0, 194857, 3604, 0, 0, 0, + 0, 0, 42507, 1962, 194861, 194696, 42505, 11660, 0, 0, 0, 6995, 74173, + 5437, 74174, 10669, 8702, 7964, 194706, 0, 199, 194843, 4105, 194845, + 194701, 194847, 194710, 119875, 13148, 7560, 0, 9226, 0, 195070, 6472, + 65814, 73954, 0, 4724, 0, 0, 9191, 0, 0, 0, 0, 195024, 10196, 7886, 0, + 6585, 0, 6680, 195042, 0, 195051, 6679, 74412, 0, 194866, 74421, 11382, + 0, 0, 0, 0, 194833, 194832, 6681, 194834, 12693, 194836, 194839, 194838, + 194841, 194840, 65442, 119610, 118887, 12166, 74415, 66248, 194816, 0, + 194818, 194817, 194820, 194819, 5297, 7042, 13284, 6112, 7968, 194825, + 73929, 194738, 194736, 65746, 0, 74409, 74389, 194826, 4342, 42839, + 194831, 1677, 0, 0, 0, 917855, 11091, 11011, 2719, 0, 0, 0, 64495, 0, 0, + 7585, 65169, 42845, 4308, 917858, 74177, 7505, 543, 64916, 64736, 0, 0, + 66670, 0, 118922, 19911, 0, 43158, 7902, 0, 65265, 194639, 0, 0, 0, 0, 0, + 0, 12994, 0, 10828, 0, 6228, 4307, 3482, 0, 0, 0, 0, 506, 74573, 41194, + 65735, 0, 0, 41195, 0, 8169, 0, 8841, 0, 516, 0, 41197, 119051, 34, 0, + 120186, 120185, 1612, 74333, 120182, 120181, 74308, 12001, 120178, 10242, + 64564, 120179, 120174, 6584, 7749, 11037, 0, 1758, 0, 10667, 10560, + 120197, 120756, 1935, 11517, 120193, 120196, 120195, 1931, 120189, 74839, + 120191, 1217, 64702, 12643, 825, 0, 194905, 12294, 0, 194908, 9138, + 194910, 194902, 12631, 194911, 11080, 74554, 0, 5591, 1239, 0, 11313, 0, + 3403, 0, 0, 64364, 0, 0, 74582, 8998, 12988, 0, 9152, 0, 0, 194898, + 67589, 41850, 64290, 3433, 0, 12615, 1594, 65607, 6914, 67603, 0, 119569, + 74565, 41353, 67602, 67611, 4337, 0, 194897, 918, 65035, 41351, 7681, + 194900, 42577, 41393, 12668, 194904, 2477, 0, 0, 0, 0, 67604, 194880, 0, + 573, 194881, 194884, 11417, 194886, 194885, 194888, 67599, 0, 194889, + 67607, 11482, 0, 0, 3357, 0, 194891, 4207, 1288, 194892, 194895, 194894, + 0, 11589, 66354, 194872, 0, 0, 64602, 194670, 0, 0, 42788, 0, 64480, + 194875, 8423, 3348, 448, 194879, 9717, 0, 0, 997, 0, 0, 0, 0, 11440, + 11379, 42000, 13139, 0, 65013, 126999, 0, 73796, 0, 0, 12035, 0, 2818, 0, + 0, 73793, 0, 4172, 0, 0, 8373, 10873, 12197, 0, 0, 0, 0, 0, 126977, 0, 0, + 194865, 126982, 74563, 64828, 11419, 194868, 766, 1257, 0, 0, 11381, + 3265, 66617, 3274, 0, 0, 0, 0, 0, 41989, 0, 0, 0, 3263, 0, 65672, 0, + 3270, 64539, 11489, 0, 0, 0, 0, 9505, 65518, 0, 756, 195052, 0, 0, 0, + 7261, 0, 186, 0, 119156, 5770, 13179, 65830, 12612, 12949, 64856, 12800, + 0, 74203, 64718, 0, 0, 0, 118929, 0, 11578, 0, 119296, 0, 0, 0, 0, 74568, + 9254, 0, 1794, 120217, 64521, 5624, 120220, 120221, 119958, 120223, 3617, + 66636, 64886, 120211, 120212, 120213, 120214, 1872, 66508, 120467, 41079, + 10748, 5502, 119330, 4452, 0, 0, 0, 4511, 0, 0, 0, 11425, 0, 0, 1231, 0, + 0, 0, 9003, 8192, 0, 5305, 9653, 10616, 8694, 9546, 0, 0, 120478, 120200, + 65205, 120202, 64063, 9878, 74780, 119626, 120207, 64058, 8799, 42131, 0, + 64062, 1028, 64060, 64059, 837, 10567, 0, 43103, 0, 0, 11427, 2902, + 64043, 64042, 66464, 10756, 0, 42606, 64045, 64044, 0, 10076, 64040, + 64039, 0, 1034, 3392, 0, 43091, 64033, 64032, 65468, 64038, 64037, 64036, + 64035, 4291, 194928, 64015, 64014, 64681, 194930, 0, 194944, 0, 43090, 0, + 3476, 8973, 64012, 42473, 64010, 64008, 64007, 2003, 7706, 64517, 119183, + 2538, 64009, 204, 0, 4802, 4111, 8239, 9098, 4805, 64001, 64057, 7885, + 7247, 64054, 0, 0, 4767, 9343, 64049, 64048, 120034, 1133, 64053, 64052, + 64051, 64050, 41340, 0, 0, 10005, 12329, 41333, 0, 8489, 1942, 0, 0, + 42520, 0, 0, 0, 10760, 64023, 64022, 64021, 6582, 0, 0, 64025, 9167, + 42151, 0, 0, 2026, 64019, 64018, 64017, 64016, 12768, 0, 7582, 0, 118915, + 0, 0, 0, 0, 120539, 0, 41411, 13094, 0, 7532, 41414, 0, 3179, 0, 64769, + 0, 0, 11461, 74454, 10751, 9051, 0, 0, 10535, 0, 0, 0, 2008, 64031, + 64030, 294, 41874, 0, 126991, 65929, 0, 0, 0, 0, 64028, 8146, 64026, + 41788, 194844, 0, 118795, 0, 119887, 119888, 0, 119886, 119891, 119892, + 119889, 11433, 119895, 119896, 0, 7801, 65578, 0, 12915, 0, 3297, 9699, + 0, 1135, 0, 0, 0, 1995, 7927, 0, 0, 2552, 41546, 60, 0, 8649, 41549, 0, + 0, 0, 6682, 0, 0, 64710, 41547, 0, 2013, 0, 119899, 119900, 119897, + 119898, 12832, 119904, 8081, 8362, 3537, 119908, 9137, 119906, 8999, 0, + 119909, 3466, 0, 0, 1996, 0, 3453, 6282, 0, 2002, 2000, 120175, 537, 0, + 4179, 65119, 1998, 0, 1842, 0, 0, 9628, 0, 12081, 9826, 64502, 1767, 0, + 0, 0, 120201, 0, 0, 0, 3059, 0, 120204, 119953, 120205, 0, 0, 0, 4100, + 920, 1811, 1355, 0, 0, 3592, 10078, 0, 0, 0, 8592, 65870, 68164, 0, + 10742, 0, 0, 1994, 9281, 3296, 12865, 1997, 1895, }; #define code_magic 47 -#define code_size 16384 -#define code_poly 16427 +#define code_size 32768 +#define code_poly 32771 Modified: python/branches/tlee-ast-optimize/Objects/floatobject.c ============================================================================== --- python/branches/tlee-ast-optimize/Objects/floatobject.c (original) +++ python/branches/tlee-ast-optimize/Objects/floatobject.c Sun Sep 21 06:05:44 2008 @@ -1105,6 +1105,13 @@ } static PyObject * +float_long(PyObject *v) +{ + double x = PyFloat_AsDouble(v); + return PyLong_FromDouble(x); +} + +static PyObject * float_float(PyObject *v) { if (PyFloat_CheckExact(v)) @@ -1897,7 +1904,7 @@ 0, /*nb_or*/ float_coerce, /*nb_coerce*/ float_trunc, /*nb_int*/ - float_trunc, /*nb_long*/ + float_long, /*nb_long*/ float_float, /*nb_float*/ 0, /* nb_oct */ 0, /* nb_hex */ Modified: python/branches/tlee-ast-optimize/Objects/obmalloc.c ============================================================================== --- python/branches/tlee-ast-optimize/Objects/obmalloc.c (original) +++ python/branches/tlee-ast-optimize/Objects/obmalloc.c Sun Sep 21 06:05:44 2008 @@ -517,7 +517,7 @@ #endif if (unused_arena_objects == NULL) { uint i; - size_t numarenas; + uint numarenas; size_t nbytes; /* Double the number of arena objects on each allocation. @@ -526,8 +526,10 @@ numarenas = maxarenas ? maxarenas << 1 : INITIAL_ARENA_OBJECTS; if (numarenas <= maxarenas) return NULL; /* overflow */ +#if SIZEOF_SIZE_T <= SIZEOF_INT if (numarenas > PY_SIZE_MAX / sizeof(*arenas)) return NULL; /* overflow */ +#endif nbytes = numarenas * sizeof(*arenas); arenaobj = (struct arena_object *)realloc(arenas, nbytes); if (arenaobj == NULL) Modified: python/branches/tlee-ast-optimize/Objects/unicodectype.c ============================================================================== --- python/branches/tlee-ast-optimize/Objects/unicodectype.c (original) +++ python/branches/tlee-ast-optimize/Objects/unicodectype.c Sun Sep 21 06:05:44 2008 @@ -19,6 +19,7 @@ #define SPACE_MASK 0x20 #define TITLE_MASK 0x40 #define UPPER_MASK 0x80 +#define NODELTA_MASK 0x100 typedef struct { const Py_UNICODE upper; @@ -82,6 +83,9 @@ else delta = ctype->upper; + if (ctype->flags & NODELTA_MASK) + return delta; + if (delta >= 32768) delta -= 65536; @@ -724,6 +728,8 @@ { const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); int delta = ctype->upper; + if (ctype->flags & NODELTA_MASK) + return delta; if (delta >= 32768) delta -= 65536; return ch + delta; @@ -736,6 +742,8 @@ { const _PyUnicode_TypeRecord *ctype = gettyperecord(ch); int delta = ctype->lower; + if (ctype->flags & NODELTA_MASK) + return delta; if (delta >= 32768) delta -= 65536; return ch + delta; Modified: python/branches/tlee-ast-optimize/Objects/unicodeobject.c ============================================================================== --- python/branches/tlee-ast-optimize/Objects/unicodeobject.c (original) +++ python/branches/tlee-ast-optimize/Objects/unicodeobject.c Sun Sep 21 06:05:44 2008 @@ -7747,8 +7747,8 @@ PyDoc_STRVAR(zfill__doc__, "S.zfill(width) -> unicode\n\ \n\ -Pad a numeric string x with zeros on the left, to fill a field\n\ -of the specified width. The string x is never truncated."); +Pad a numeric string S with zeros on the left, to fill a field\n\ +of the specified width. The string S is never truncated."); static PyObject * unicode_zfill(PyUnicodeObject *self, PyObject *args) Modified: python/branches/tlee-ast-optimize/Objects/unicodetype_db.h ============================================================================== --- python/branches/tlee-ast-optimize/Objects/unicodetype_db.h (original) +++ python/branches/tlee-ast-optimize/Objects/unicodetype_db.h Sun Sep 21 06:05:44 2008 @@ -1,4 +1,4 @@ -/* this file was generated by Tools/unicode/makeunicodedata.py 2.5 */ +/* this file was generated by Tools/unicode/makeunicodedata.py 2.6 */ /* a list of unique character type descriptors */ const _PyUnicode_TypeRecord _PyUnicode_TypeRecords[] = { @@ -30,6 +30,7 @@ {65304, 0, 65304, 0, 0, 9}, {0, 65415, 0, 0, 0, 129}, {65236, 0, 65236, 0, 0, 9}, + {195, 0, 195, 0, 0, 9}, {0, 210, 0, 0, 0, 129}, {0, 206, 0, 0, 0, 129}, {0, 205, 0, 0, 0, 129}, @@ -56,9 +57,14 @@ {0, 65439, 0, 0, 0, 129}, {0, 65480, 0, 0, 0, 129}, {0, 65406, 0, 0, 0, 129}, - {0, 0, 0, 0, 0, 129}, + {0, 10795, 0, 0, 0, 129}, {0, 65373, 0, 0, 0, 129}, - {0, 83, 0, 0, 0, 129}, + {0, 10792, 0, 0, 0, 129}, + {0, 65341, 0, 0, 0, 129}, + {0, 69, 0, 0, 0, 129}, + {0, 71, 0, 0, 0, 129}, + {10783, 0, 10783, 0, 0, 9}, + {10780, 0, 10780, 0, 0, 9}, {65326, 0, 65326, 0, 0, 9}, {65330, 0, 65330, 0, 0, 9}, {65331, 0, 65331, 0, 0, 9}, @@ -67,12 +73,16 @@ {65329, 0, 65329, 0, 0, 9}, {65327, 0, 65327, 0, 0, 9}, {65325, 0, 65325, 0, 0, 9}, + {10743, 0, 10743, 0, 0, 9}, + {10749, 0, 10749, 0, 0, 9}, {65323, 0, 65323, 0, 0, 9}, {65322, 0, 65322, 0, 0, 9}, + {10727, 0, 10727, 0, 0, 9}, {65318, 0, 65318, 0, 0, 9}, + {65467, 0, 65467, 0, 0, 9}, {65319, 0, 65319, 0, 0, 9}, + {65465, 0, 65465, 0, 0, 9}, {65317, 0, 65317, 0, 0, 9}, - {65453, 0, 65453, 0, 0, 9}, {84, 0, 84, 0, 0, 0}, {0, 38, 0, 0, 0, 129}, {0, 37, 0, 0, 0, 129}, @@ -83,10 +93,13 @@ {65505, 0, 65505, 0, 0, 9}, {65472, 0, 65472, 0, 0, 9}, {65473, 0, 65473, 0, 0, 9}, + {0, 8, 0, 0, 0, 129}, {65474, 0, 65474, 0, 0, 9}, {65479, 0, 65479, 0, 0, 9}, + {0, 0, 0, 0, 0, 129}, {65489, 0, 65489, 0, 0, 9}, {65482, 0, 65482, 0, 0, 9}, + {65528, 0, 65528, 0, 0, 9}, {65450, 0, 65450, 0, 0, 9}, {65456, 0, 65456, 0, 0, 9}, {7, 0, 7, 0, 0, 9}, @@ -94,6 +107,8 @@ {65440, 0, 65440, 0, 0, 9}, {0, 65529, 0, 0, 0, 129}, {0, 80, 0, 0, 0, 129}, + {0, 15, 0, 0, 0, 129}, + {65521, 0, 65521, 0, 0, 9}, {0, 48, 0, 0, 0, 129}, {65488, 0, 65488, 0, 0, 9}, {0, 7264, 0, 0, 0, 129}, @@ -103,7 +118,10 @@ {0, 0, 0, 0, 7, 4}, {0, 0, 0, 0, 8, 4}, {0, 0, 0, 0, 9, 4}, + {42877, 0, 42877, 0, 0, 265}, + {3814, 0, 3814, 0, 0, 9}, {65477, 0, 65477, 0, 0, 9}, + {0, 57921, 0, 0, 0, 129}, {8, 0, 8, 0, 0, 9}, {0, 65528, 0, 0, 0, 129}, {74, 0, 74, 0, 0, 9}, @@ -126,11 +144,22 @@ {0, 58019, 0, 0, 0, 129}, {0, 57153, 0, 0, 0, 129}, {0, 57274, 0, 0, 0, 129}, + {0, 28, 0, 0, 0, 129}, + {65508, 0, 65508, 0, 0, 9}, {0, 16, 0, 0, 0, 0}, {65520, 0, 65520, 0, 0, 0}, {0, 26, 0, 0, 0, 0}, {65510, 0, 65510, 0, 0, 0}, + {0, 54793, 0, 0, 0, 129}, + {0, 61722, 0, 0, 0, 129}, + {0, 54809, 0, 0, 0, 129}, + {54741, 0, 54741, 0, 0, 9}, + {54744, 0, 54744, 0, 0, 9}, + {0, 54756, 0, 0, 0, 129}, + {0, 54787, 0, 0, 0, 129}, + {0, 54753, 0, 0, 0, 129}, {58272, 0, 58272, 0, 0, 9}, + {0, 7545, 0, 0, 0, 385}, {0, 40, 0, 0, 0, 129}, {65496, 0, 65496, 0, 0, 9}, }; @@ -139,30 +168,30 @@ #define SHIFT 8 static unsigned char index1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 8, 8, 27, 28, 29, 30, 31, 32, 33, 34, 32, 35, 36, - 32, 32, 32, 37, 38, 39, 40, 41, 42, 43, 44, 32, 21, 21, 21, 21, 21, 21, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 34, 37, + 38, 34, 34, 34, 39, 40, 41, 42, 43, 44, 45, 46, 34, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 45, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 47, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 46, 21, 21, 21, 21, 47, 8, 8, - 48, 49, 8, 8, 8, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 48, 21, 21, 21, 21, 49, + 21, 50, 51, 52, 53, 54, 8, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 50, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 21, 51, 52, 21, 53, 54, 55, 56, 57, - 8, 58, 59, 8, 8, 8, 60, 8, 61, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 55, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 21, 56, 57, 21, 58, 59, + 60, 61, 62, 63, 64, 65, 8, 8, 8, 66, 67, 68, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 69, 70, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 62, 63, 64, 65, 66, 67, 68, - 69, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 21, 21, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 71, 72, + 73, 74, 75, 76, 77, 78, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 79, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, @@ -171,11 +200,12 @@ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 70, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 80, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 81, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 21, 21, 71, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -292,8 +322,8 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 82, 83, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 72, 73, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, @@ -303,36 +333,35 @@ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 74, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 84, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 84, }; static unsigned char index2[] = { @@ -355,88 +384,94 @@ 22, 23, 22, 23, 22, 23, 22, 23, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 26, 22, 23, 22, 23, 22, 23, 27, 16, 28, 22, 23, 22, 23, 29, 22, 23, - 30, 30, 22, 23, 16, 31, 32, 33, 22, 23, 30, 34, 35, 36, 37, 22, 23, 38, - 16, 36, 39, 40, 41, 22, 23, 22, 23, 22, 23, 42, 22, 23, 42, 16, 16, 22, - 23, 42, 22, 23, 43, 43, 22, 23, 22, 23, 44, 22, 23, 16, 45, 22, 23, 16, - 46, 45, 45, 45, 45, 47, 48, 49, 47, 48, 49, 47, 48, 49, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 50, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 47, 48, 49, 22, - 23, 51, 52, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 26, 22, 23, 22, 23, 22, 23, 27, 28, 29, 22, 23, 22, 23, 30, 22, 23, + 31, 31, 22, 23, 16, 32, 33, 34, 22, 23, 31, 35, 36, 37, 38, 22, 23, 39, + 16, 37, 40, 41, 42, 22, 23, 22, 23, 22, 23, 43, 22, 23, 43, 16, 16, 22, + 23, 43, 22, 23, 44, 44, 22, 23, 22, 23, 45, 22, 23, 16, 46, 22, 23, 16, + 47, 46, 46, 46, 46, 48, 49, 50, 48, 49, 50, 48, 49, 50, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 51, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 48, 49, 50, 22, + 23, 52, 53, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 53, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 16, 16, 16, 16, 16, 54, 22, 23, - 55, 54, 16, 16, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, - 57, 58, 16, 59, 59, 16, 60, 16, 61, 16, 16, 16, 16, 59, 16, 16, 62, 16, - 16, 16, 16, 63, 64, 16, 16, 16, 16, 16, 64, 16, 16, 65, 16, 16, 66, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 67, 16, 16, 67, 16, 16, 16, 16, 67, - 16, 68, 68, 16, 16, 16, 16, 16, 16, 69, 16, 70, 16, 16, 16, 16, 16, 16, + 23, 22, 23, 22, 23, 22, 23, 54, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 16, 16, 16, 16, 16, 55, 22, 23, + 56, 57, 16, 16, 22, 23, 58, 59, 60, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 61, 62, 16, 63, 64, 16, 65, 65, 16, 66, 16, 67, 16, 16, 16, 16, 65, + 16, 16, 68, 16, 16, 16, 16, 69, 70, 16, 71, 16, 16, 16, 70, 16, 72, 73, + 16, 16, 74, 16, 16, 16, 16, 16, 16, 16, 75, 16, 16, 76, 16, 16, 76, 16, + 16, 16, 16, 76, 77, 78, 78, 79, 16, 16, 16, 16, 16, 80, 16, 46, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 71, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, - 0, 45, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 72, 1, 73, 73, 73, 0, 74, 0, 75, - 75, 16, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 76, 77, 77, 77, 16, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 78, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 79, 80, 80, 0, 81, 82, 54, 54, 54, 83, 84, - 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 85, 86, 87, 16, 88, 89, 1, 22, 23, 90, 22, - 23, 16, 54, 54, 54, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 91, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, + 16, 16, 16, 16, 16, 16, 16, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, + 46, 1, 1, 1, 1, 1, 1, 1, 46, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22, 23, + 22, 23, 46, 1, 22, 23, 0, 0, 46, 41, 41, 41, 1, 0, 0, 0, 0, 0, 1, 1, 82, + 1, 83, 83, 83, 0, 84, 0, 85, 85, 16, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 86, 87, 87, 87, 16, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 88, 15, 15, 15, 15, 15, 15, 15, 15, 15, 89, 90, 90, 91, + 92, 93, 94, 94, 94, 95, 96, 97, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 98, 99, 100, 16, + 101, 102, 1, 22, 23, 103, 22, 23, 16, 54, 54, 54, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 22, 23, 22, 23, 22, 23, 22, + 15, 15, 15, 15, 15, 15, 15, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 1, 1, 1, 1, 1, 1, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 1, 1, 1, 1, 1, 0, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 105, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 106, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 54, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 0, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 0, 0, 0, 0, 0, 0, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0, 0, 45, 1, 1, 1, 1, 1, - 1, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 45, - 45, 45, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 45, 45, 1, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 45, 45, 1, 1, 1, 1, 1, 1, 1, 45, 45, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 45, 45, 45, 1, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 0, 0, 46, 1, 1, 1, 1, 1, 1, 0, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 16, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, + 1, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 1, 1, 1, 1, 1, 1, 1, 46, 46, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 46, 46, 46, 1, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 1, 1, 1, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -447,250 +482,273 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 1, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 46, 1, 1, 1, 1, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 46, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 0, 1, 1, 1, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 0, 0, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 0, 0, 0, 46, 46, 46, 46, 0, 0, 1, 46, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 46, + 46, 0, 46, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, 46, 46, 46, + 46, 46, 0, 0, 0, 0, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, + 46, 46, 0, 46, 46, 0, 46, 46, 0, 46, 46, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, + 46, 0, 46, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, + 46, 46, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, + 46, 46, 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 1, 46, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 1, 46, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0, 46, 46, 0, 46, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 46, + 0, 46, 46, 46, 46, 46, 46, 0, 0, 0, 46, 46, 46, 0, 46, 46, 46, 46, 0, 0, + 0, 46, 46, 0, 46, 0, 46, 46, 0, 0, 0, 46, 46, 0, 0, 0, 46, 46, 46, 0, 0, + 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, 1, + 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 0, 46, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, + 46, 46, 0, 0, 0, 0, 0, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 0, 0, 1, + 46, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 46, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, + 0, 0, 46, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 1, 1, 0, 0, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 46, 46, 46, 46, 46, 46, + 0, 0, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 1, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, + 46, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 0, 46, 0, 0, 46, 46, 0, 46, 0, 0, 46, + 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 0, 46, 0, 46, 0, 0, 46, 46, 0, 46, 46, 46, 46, 1, 46, 46, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 46, 0, 0, 46, 46, 46, 46, 46, 0, 46, 0, 1, 1, 1, 1, + 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 46, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, + 46, 46, 46, 46, 1, 1, 1, 46, 1, 1, 1, 46, 46, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 46, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 0, 0, 1, 1, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 0, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 0, 46, 0, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 110, 111, 112, 113, 114, + 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 0, 46, 46, 46, 46, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, + 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 1, 1, 1, 1, 46, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, + 46, 1, 1, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 0, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 45, 1, 1, 1, 1, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, - 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, - 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 0, 0, - 0, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, - 1, 1, 45, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 45, 45, 0, 45, 45, 45, - 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 45, 45, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 0, 0, 0, - 0, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 0, 45, 45, 0, 45, 45, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, 45, 0, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 45, 45, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, - 45, 0, 45, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 0, 1, 1, 1, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 45, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 0, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 0, 45, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, - 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 45, 45, 0, 45, 45, - 45, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 0, 45, 45, 45, 45, 45, 45, 0, 0, - 0, 45, 45, 45, 0, 45, 45, 45, 45, 0, 0, 0, 45, 45, 0, 45, 0, 45, 45, 0, - 0, 0, 45, 45, 0, 0, 0, 45, 45, 45, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 0, - 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 45, 45, 0, 0, 1, 45, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 45, 0, 45, 45, - 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, - 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 45, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1, 45, 45, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 45, 45, - 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 0, 45, 0, 0, - 45, 45, 0, 45, 0, 0, 45, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, 45, 45, 45, - 45, 45, 45, 45, 0, 45, 45, 45, 0, 45, 0, 45, 0, 0, 45, 45, 0, 45, 45, 45, - 45, 1, 45, 45, 1, 1, 1, 1, 1, 1, 0, 1, 1, 45, 0, 0, 45, 45, 45, 45, 45, - 0, 45, 0, 1, 1, 1, 1, 1, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, - 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 0, - 45, 45, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, - 45, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, - 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 0, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 0, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 0, 45, 45, 45, 45, 0, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 95, 96, 97, - 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 45, 45, 45, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 45, 1, 1, 1, 1, 45, 1, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, - 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, - 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 46, 46, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 46, 46, 46, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 45, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 46, 116, 16, 16, 16, 117, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, @@ -698,49 +756,48 @@ 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 16, 16, 16, 16, 118, + 16, 16, 119, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 16, 16, 16, 16, 16, 101, 0, 0, 0, 0, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, - 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 0, 0, 0, 0, 0, 0, - 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, - 103, 103, 102, 102, 102, 102, 102, 102, 0, 0, 103, 103, 103, 103, 103, - 103, 0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, - 103, 103, 103, 103, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, - 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 102, 102, 0, 0, 103, - 103, 103, 103, 103, 103, 0, 0, 16, 102, 16, 102, 16, 102, 16, 102, 0, - 103, 0, 103, 0, 103, 0, 103, 102, 102, 102, 102, 102, 102, 102, 102, 103, - 103, 103, 103, 103, 103, 103, 103, 104, 104, 105, 105, 105, 105, 106, - 106, 107, 107, 108, 108, 109, 109, 0, 0, 102, 102, 102, 102, 102, 102, - 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, 102, 102, 102, 102, - 102, 102, 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, 102, 102, - 102, 102, 102, 102, 102, 102, 110, 110, 110, 110, 110, 110, 110, 110, - 102, 102, 16, 111, 16, 0, 16, 16, 103, 103, 112, 112, 113, 1, 114, 1, 1, - 1, 16, 111, 16, 0, 16, 16, 115, 115, 115, 115, 113, 1, 1, 1, 102, 102, - 16, 16, 0, 0, 16, 16, 103, 103, 116, 116, 0, 1, 1, 1, 102, 102, 16, 16, - 16, 87, 16, 16, 103, 103, 117, 117, 90, 1, 1, 1, 0, 0, 16, 111, 16, 0, - 16, 16, 118, 118, 119, 119, 113, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 120, 16, 0, 0, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, - 16, 120, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 0, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 54, 1, 1, 1, 1, 54, 1, - 1, 16, 54, 54, 54, 16, 16, 54, 54, 54, 16, 1, 54, 1, 1, 1, 54, 54, 54, - 54, 54, 1, 1, 1, 1, 1, 1, 54, 1, 121, 1, 54, 1, 122, 123, 54, 54, 1, 16, - 54, 54, 1, 54, 16, 45, 45, 45, 45, 16, 1, 1, 16, 16, 54, 54, 1, 1, 1, 1, - 1, 54, 16, 16, 16, 16, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 120, 120, 120, 120, 120, 120, + 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, 120, 120, + 120, 120, 0, 0, 121, 121, 121, 121, 121, 121, 0, 0, 120, 120, 120, 120, + 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 120, 120, + 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, + 120, 120, 120, 120, 120, 120, 0, 0, 121, 121, 121, 121, 121, 121, 0, 0, + 16, 120, 16, 120, 16, 120, 16, 120, 0, 121, 0, 121, 0, 121, 0, 121, 120, + 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, + 121, 122, 122, 123, 123, 123, 123, 124, 124, 125, 125, 126, 126, 127, + 127, 0, 0, 120, 120, 120, 120, 120, 120, 120, 120, 128, 128, 128, 128, + 128, 128, 128, 128, 120, 120, 120, 120, 120, 120, 120, 120, 128, 128, + 128, 128, 128, 128, 128, 128, 120, 120, 120, 120, 120, 120, 120, 120, + 128, 128, 128, 128, 128, 128, 128, 128, 120, 120, 16, 129, 16, 0, 16, 16, + 121, 121, 130, 130, 131, 1, 132, 1, 1, 1, 16, 129, 16, 0, 16, 16, 133, + 133, 133, 133, 131, 1, 1, 1, 120, 120, 16, 16, 0, 0, 16, 16, 121, 121, + 134, 134, 0, 1, 1, 1, 120, 120, 16, 16, 16, 100, 16, 16, 121, 121, 135, + 135, 103, 1, 1, 1, 0, 0, 16, 129, 16, 0, 16, 16, 136, 136, 137, 137, 131, + 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 138, 16, 0, 0, + 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 16, 138, 20, 17, 18, 110, + 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 0, 46, 46, 46, 46, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 94, 1, 1, 1, 1, 94, 1, 1, 16, 94, 94, 94, + 16, 16, 94, 94, 94, 16, 1, 94, 1, 1, 1, 94, 94, 94, 94, 94, 1, 1, 1, 1, + 1, 1, 94, 1, 139, 1, 94, 1, 140, 141, 94, 94, 1, 16, 94, 94, 142, 94, 16, + 46, 46, 46, 46, 16, 1, 1, 16, 16, 94, 94, 1, 1, 1, 1, 1, 94, 16, 16, 16, + 16, 1, 1, 1, 1, 143, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 1, 1, 1, 22, 23, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -764,344 +821,408 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 120, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 120, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 17, 18, 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 138, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 138, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, - 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, - 20, 17, 18, 95, 96, 97, 98, 99, 100, 1, 20, 17, 18, 95, 96, 97, 98, 99, - 100, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, + 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 17, 18, 110, 111, 112, 113, + 114, 115, 1, 20, 17, 18, 110, 111, 112, 113, 114, 115, 1, 20, 17, 18, + 110, 111, 112, 113, 114, 115, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, - 22, 23, 22, 23, 22, 23, 22, 23, 16, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, - 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, - 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, - 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 0, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 0, 22, 23, 148, 149, 150, 151, 152, 22, 23, 22, + 23, 22, 23, 153, 154, 155, 0, 16, 22, 23, 16, 22, 23, 16, 16, 16, 16, 16, + 16, 46, 0, 0, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 16, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, + 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, + 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, - 45, 45, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 1, 1, 1, 1, 45, 45, 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 45, 45, 45, 45, 0, 0, 0, 0, 0, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, + 1, 1, 1, 1, 1, 46, 46, 1, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 1, 1, 1, 1, 46, 46, 46, 1, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 46, 46, 46, 0, + 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, + 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 0, 0, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 46, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 46, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, + 22, 23, 22, 23, 22, 23, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 16, 16, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, + 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 46, 16, 16, 16, 16, 16, 16, + 16, 16, 22, 23, 22, 23, 157, 22, 23, 22, 23, 22, 23, 22, 23, 22, 23, 46, + 1, 1, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, + 46, 46, 1, 46, 46, 46, 1, 46, 46, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 45, 1, 45, 45, 45, 1, 45, 45, 45, 45, 1, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, - 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 0, 0, 0, - 0, 0, 45, 1, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 0, 45, 0, 45, - 45, 0, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, - 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 0, 0, + 0, 0, 0, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 0, 46, 0, + 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, + 0, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, - 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, 45, - 45, 45, 45, 0, 0, 45, 45, 45, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, + 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 0, 0, 46, 46, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 0, 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 1, 46, 46, 46, 46, 46, 46, 46, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 1, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 46, 46, 46, 46, + 46, 46, 46, 46, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 1, 1, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 0, 0, 46, 0, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 0, 46, 46, 0, 0, 0, 46, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 1, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, - 45, 45, 45, 45, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 0, 0, - 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 0, 0, 0, 45, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 1, 1, + 1, 1, 0, 0, 0, 0, 0, 1, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 45, 45, 45, 45, 0, 45, - 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 1, 1, 1, 0, - 0, 0, 0, 1, 20, 17, 18, 95, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 46, 46, 46, 46, 0, 46, + 46, 46, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 1, 1, 1, 0, + 0, 0, 0, 1, 20, 17, 18, 110, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1109,7 +1230,30 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1119,9 +1263,9 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1129,11 +1273,11 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1141,109 +1285,119 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 0, 54, 54, 0, 0, 54, 0, 0, - 54, 54, 0, 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, - 16, 16, 0, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 54, 54, 0, 54, 54, 54, 54, 0, 0, 54, 54, 54, 54, 54, 54, 54, - 54, 0, 54, 54, 54, 54, 54, 54, 54, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, - 54, 0, 54, 54, 54, 54, 0, 54, 54, 54, 54, 54, 0, 54, 0, 0, 0, 54, 54, 54, - 54, 54, 54, 54, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 94, 0, 94, 94, 0, 0, 94, 0, 0, 94, 94, 0, 0, + 94, 94, 94, 94, 0, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 0, 16, + 0, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, + 94, 0, 94, 94, 94, 94, 0, 0, 94, 94, 94, 94, 94, 94, 94, 94, 0, 94, 94, + 94, 94, 94, 94, 94, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 0, 94, + 94, 94, 94, 0, 94, 94, 94, 94, 94, 0, 94, 0, 0, 0, 94, 94, 94, 94, 94, + 94, 94, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 1, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 1, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 1, 16, 16, + 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, - 16, 16, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 54, 1, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 0, 0, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, - 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 1, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 1, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, 16, 16, 16, 16, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 1, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 1, 16, 16, + 16, 16, 16, 16, 94, 16, 0, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1253,7 +1407,8 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1264,6 +1419,6 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 0, 0, }; Modified: python/branches/tlee-ast-optimize/Objects/weakrefobject.c ============================================================================== --- python/branches/tlee-ast-optimize/Objects/weakrefobject.c (original) +++ python/branches/tlee-ast-optimize/Objects/weakrefobject.c Sun Sep 21 06:05:44 2008 @@ -326,7 +326,7 @@ if (parse_weakref_init_args("__init__", args, kwargs, &tmp, &tmp)) return 0; else - return 1; + return -1; } Modified: python/branches/tlee-ast-optimize/Parser/asdl_c.py ============================================================================== --- python/branches/tlee-ast-optimize/Parser/asdl_c.py (original) +++ python/branches/tlee-ast-optimize/Parser/asdl_c.py Sun Sep 21 06:05:44 2008 @@ -602,7 +602,7 @@ if (PyTuple_GET_SIZE(args) > 0) { if (numfields != PyTuple_GET_SIZE(args)) { PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s" - "%" PY_FORMAT_SIZE_T "d positional argument%s", + "%zd positional argument%s", Py_TYPE(self)->tp_name, numfields == 0 ? "" : "either 0 or ", numfields, numfields == 1 ? "" : "s"); Modified: python/branches/tlee-ast-optimize/Python/Python-ast.c ============================================================================== --- python/branches/tlee-ast-optimize/Python/Python-ast.c (original) +++ python/branches/tlee-ast-optimize/Python/Python-ast.c Sun Sep 21 06:05:44 2008 @@ -391,7 +391,7 @@ if (PyTuple_GET_SIZE(args) > 0) { if (numfields != PyTuple_GET_SIZE(args)) { PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s" - "%" PY_FORMAT_SIZE_T "d positional argument%s", + "%zd positional argument%s", Py_TYPE(self)->tp_name, numfields == 0 ? "" : "either 0 or ", numfields, numfields == 1 ? "" : "s"); Modified: python/branches/tlee-ast-optimize/README ============================================================================== --- python/branches/tlee-ast-optimize/README (original) +++ python/branches/tlee-ast-optimize/README Sun Sep 21 06:05:44 2008 @@ -1,5 +1,5 @@ -This is Python version 2.6 beta 3 -================================= +This is Python version 2.6 release candidate 2 +============================================== Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Python Software Foundation. Modified: python/branches/tlee-ast-optimize/Tools/msi/merge.py ============================================================================== --- python/branches/tlee-ast-optimize/Tools/msi/merge.py (original) +++ python/branches/tlee-ast-optimize/Tools/msi/merge.py Sun Sep 21 06:05:44 2008 @@ -1,16 +1,19 @@ -import msilib,os,win32com,tempfile +import msilib,os,win32com,tempfile,sys PCBUILD="PCBuild" from config import * Win64 = "amd64" in PCBUILD mod_dir = os.path.join(os.environ["ProgramFiles"], "Common Files", "Merge Modules") +msi = None +if len(sys.argv)==2: + msi = sys.argv[1] if Win64: - modules = ["Microsoft_VC90_CRT_x86.msm", "policy_8_0_Microsoft_VC80_CRT_x86_x64.msm"] - msi = "python-%s.amd64.msi" % full_current_version + modules = ["Microsoft_VC90_CRT_x86_x64.msm", "policy_8_0_Microsoft_VC80_CRT_x86_x64.msm"] + if not msi: msi = "python-%s.amd64.msi" % full_current_version else: modules = ["Microsoft_VC90_CRT_x86.msm","policy_8_0_Microsoft_VC80_CRT_x86.msm"] - msi = "python-%s.msi" % full_current_version + if not msi: msi = "python-%s.msi" % full_current_version for i, n in enumerate(modules): modules[i] = os.path.join(mod_dir, n) Modified: python/branches/tlee-ast-optimize/Tools/msi/msi.py ============================================================================== --- python/branches/tlee-ast-optimize/Tools/msi/msi.py (original) +++ python/branches/tlee-ast-optimize/Tools/msi/msi.py Sun Sep 21 06:05:44 2008 @@ -64,8 +64,11 @@ # This should never change. The UpgradeCode of this package can be # used in the Upgrade table of future packages to make the future # package replace this one. See "UpgradeCode Property". +# upgrade_code gets set to upgrade_code_64 when we have determined +# that the target is Win64. upgrade_code_snapshot='{92A24481-3ECB-40FC-8836-04B7966EC0D5}' upgrade_code='{65E6DE48-A358-434D-AA4F-4AF72DB4718F}' +upgrade_code_64='{6A965A0C-6EE6-4E3A-9983-3263F56311EC}' if snapshot: current_version = "%s.%s.%s" % (major, minor, int(time.time()/3600/24)) @@ -167,6 +170,12 @@ msilib.set_arch_from_file(dll_path) if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"): raise SystemError, "msisupport.dll for incorrect architecture" +if msilib.Win64: + upgrade_code = upgrade_code_64 + # Bump the last digit of the code by one, so that 32-bit and 64-bit + # releases get separate product codes + digit = hex((int(product_code[-2],16)+1)%16)[-1] + product_code = product_code[:-2] + digit + '}' if testpackage: ext = 'px' @@ -196,11 +205,15 @@ uc = upgrade_code_snapshot else: uc = upgrade_code + if msilib.Win64: + productsuffix = " (64-bit)" + else: + productsuffix = "" # schema represents the installer 2.0 database schema. # sequence is the set of standard sequences # (ui/execute, admin/advt/install) db = msilib.init_database("python-%s%s.msi" % (full_current_version, msilib.arch_ext), - schema, ProductName="Python "+full_current_version, + schema, ProductName="Python "+full_current_version+productsuffix, ProductCode=product_code, ProductVersion=current_version, Manufacturer=u"Python Software Foundation") @@ -250,6 +263,8 @@ (upgrade_code_snapshot, start, "%s.%d.0" % (major, int(minor)+1), None, migrate_features, None, "REMOVEOLDSNAPSHOT")]) props = "REMOVEOLDSNAPSHOT;REMOVEOLDVERSION" + + props += ";TARGETDIR;DLLDIR" # Installer collects the product codes of the earlier releases in # these properties. In order to allow modification of the properties, # they must be declared as secure. See "SecureCustomProperties Property" @@ -828,7 +843,11 @@ def extract_msvcr90(): # Find the redistributable files - dir = os.path.join(os.environ['VS90COMNTOOLS'], r"..\..\VC\redist\x86\Microsoft.VC90.CRT") + if msilib.Win64: + arch = "amd64" + else: + arch = "x86" + dir = os.path.join(os.environ['VS90COMNTOOLS'], r"..\..\VC\redist\%s\Microsoft.VC90.CRT" % arch) result = [] installer = msilib.MakeInstaller() @@ -847,6 +866,7 @@ import shutil, glob out = open("LICENSE.txt", "w") shutil.copyfileobj(open(os.path.join(srcdir, "LICENSE")), out) + shutil.copyfileobj(open("crtlicense.txt"), out) for name, pat, file in (("bzip2","bzip2-*", "LICENSE"), ("Berkeley DB", "db-*", "LICENSE"), ("openssl", "openssl-*", "LICENSE"), Modified: python/branches/tlee-ast-optimize/Tools/msi/uuids.py ============================================================================== --- python/branches/tlee-ast-optimize/Tools/msi/uuids.py (original) +++ python/branches/tlee-ast-optimize/Tools/msi/uuids.py Sun Sep 21 06:05:44 2008 @@ -43,4 +43,8 @@ '2.6.104': '{dc6ed634-474a-4a50-a547-8de4b7491e53}', # 2.6a4 '2.6.111': '{3f82079a-5bee-4c4a-8a41-8292389e24ae}', # 2.6b1 '2.6.112': '{8a0e5970-f3e6-4737-9a2b-bc5ff0f15fb5}', # 2.6b2 + '2.6.113': '{df4f5c21-6fcc-4540-95de-85feba634e76}', # 2.6b3 + '2.6.121': '{bbd34464-ddeb-4028-99e5-f16c4a8fbdb3}', # 2.6c1 + '2.6.122': '{8f64787e-a023-4c60-bfee-25d3a3f592c6}', # 2.6c2 + '2.6.150': '{110eb5c4-e995-4cfb-ab80-a5f315bea9e8}', # 2.6.0 } Modified: python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py ============================================================================== --- python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py (original) +++ python/branches/tlee-ast-optimize/Tools/unicode/makeunicodedata.py Sun Sep 21 06:05:44 2008 @@ -27,10 +27,10 @@ import sys SCRIPT = sys.argv[0] -VERSION = "2.5" +VERSION = "2.6" # The Unicode Database -UNIDATA_VERSION = "4.1.0" +UNIDATA_VERSION = "5.1.0" UNICODE_DATA = "UnicodeData%s.txt" COMPOSITION_EXCLUSIONS = "CompositionExclusions%s.txt" EASTASIAN_WIDTH = "EastAsianWidth%s.txt" @@ -57,6 +57,7 @@ SPACE_MASK = 0x20 TITLE_MASK = 0x40 UPPER_MASK = 0x80 +NODELTA_MASK = 0x100 def maketables(trace=0): @@ -355,6 +356,7 @@ category = record[2] bidirectional = record[4] flags = 0 + delta = True if category in ["Lm", "Lt", "Lu", "Ll", "Lo"]: flags |= ALPHA_MASK if category == "Ll": @@ -367,25 +369,36 @@ flags |= TITLE_MASK if category == "Lu": flags |= UPPER_MASK - # use delta predictor for upper/lower/title + # use delta predictor for upper/lower/title if it fits if record[12]: upper = int(record[12], 16) - char - assert -32768 <= upper <= 32767 - upper = upper & 0xffff + if -32768 <= upper <= 32767 and delta: + upper = upper & 0xffff + else: + upper += char + delta = False else: upper = 0 if record[13]: lower = int(record[13], 16) - char - assert -32768 <= lower <= 32767 - lower = lower & 0xffff + if -32768 <= lower <= 32767 and delta: + lower = lower & 0xffff + else: + lower += char + delta = False else: lower = 0 if record[14]: title = int(record[14], 16) - char - assert -32768 <= lower <= 32767 - title = title & 0xffff + if -32768 <= lower <= 32767 and delta: + title = title & 0xffff + else: + title += char + delta = False else: title = 0 + if not delta: + flags |= NODELTA_MASK # decimal digit, integer digit decimal = 0 if record[6]: @@ -603,6 +616,7 @@ bidir_changes = [0xFF]*0x110000 category_changes = [0xFF]*0x110000 decimal_changes = [0xFF]*0x110000 + mirrored_changes = [0xFF]*0x110000 # In numeric data, 0 means "no change", # -1 means "did not have a numeric value numeric_changes = [0] * 0x110000 @@ -649,6 +663,11 @@ else: assert re.match("^[0-9]+$", value) numeric_changes[i] = int(value) + elif k == 9: + if value == 'Y': + mirrored_changes[i] = '1' + else: + mirrored_changes[i] = '0' elif k == 11: # change to ISO comment, ignore pass @@ -665,7 +684,8 @@ class Difference(Exception):pass raise Difference, (hex(i), k, old.table[i], new.table[i]) new.changed.append((version, zip(bidir_changes, category_changes, - decimal_changes, numeric_changes), + decimal_changes, mirrored_changes, + numeric_changes), normalization_changes)) Modified: python/branches/tlee-ast-optimize/configure ============================================================================== --- python/branches/tlee-ast-optimize/configure (original) +++ python/branches/tlee-ast-optimize/configure Sun Sep 21 06:05:44 2008 @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 66283 . +# From configure.in Revision: 66295 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.6. # @@ -23028,7 +23028,7 @@ done # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts #AC_SUBST([READLINE_LIBS]) -if test $py_cv_lib_readline = !yes; then +if test $py_cv_lib_readline = no; then { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } else Modified: python/branches/tlee-ast-optimize/configure.in ============================================================================== --- python/branches/tlee-ast-optimize/configure.in (original) +++ python/branches/tlee-ast-optimize/configure.in Sun Sep 21 06:05:44 2008 @@ -3346,7 +3346,7 @@ done # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts #AC_SUBST([READLINE_LIBS]) -if test $py_cv_lib_readline = !yes; then +if test $py_cv_lib_readline = no; then AC_MSG_RESULT([none]) else AC_MSG_RESULT([$READLINE_LIBS]) From python-checkins at python.org Sun Sep 21 09:14:44 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:14:44 +0200 (CEST) Subject: [Python-checkins] r66523 - in python/trunk: Doc/library/select.rst Modules/selectmodule.c Message-ID: <20080921071444.EF6AE1E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:14:44 2008 New Revision: 66523 Log: #3852: fix some select.kqueue and kevent docs. Modified: python/trunk/Doc/library/select.rst python/trunk/Modules/selectmodule.c Modified: python/trunk/Doc/library/select.rst ============================================================================== --- python/trunk/Doc/library/select.rst (original) +++ python/trunk/Doc/library/select.rst Sun Sep 21 09:14:44 2008 @@ -50,7 +50,7 @@ .. versionadded:: 2.6 -.. function:: kqueue(ident, filter=KQ_FILTER_READ, flags=KQ_ADD, fflags=0, data=0, udata=0) +.. function:: kevent(ident, filter=KQ_FILTER_READ, flags=KQ_ADD, fflags=0, data=0, udata=0) (Only supported on BSD.) Returns a kernel event object object; see section :ref:`kevent-objects` below for the methods supported by kqueue objects. @@ -272,12 +272,12 @@ Return the file descriptor number of the control fd. -.. method:: epoll.fromfd(fd) +.. method:: kqueue.fromfd(fd) Create a kqueue object from a given file descriptor. -.. method:: control(changelist, max_events=0[, timeout=None]) -> eventlist +.. method:: kqueue.control(changelist, max_events[, timeout=None]) -> eventlist Low level interface to kevent Modified: python/trunk/Modules/selectmodule.c ============================================================================== --- python/trunk/Modules/selectmodule.c (original) +++ python/trunk/Modules/selectmodule.c Sun Sep 21 09:14:44 2008 @@ -1607,7 +1607,7 @@ } PyDoc_STRVAR(kqueue_queue_control_doc, -"control(changelist, max_events=0[, timeout=None]) -> eventlist\n\ +"control(changelist, max_events[, timeout=None]) -> eventlist\n\ \n\ Calls the kernel kevent function.\n\ - changelist must be a list of kevent objects describing the changes\n\ From python-checkins at python.org Sun Sep 21 09:16:00 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:16:00 +0200 (CEST) Subject: [Python-checkins] r66524 - python/trunk/Doc/library/unittest.rst Message-ID: <20080921071600.2C9BA1E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:15:59 2008 New Revision: 66524 Log: #3912: document default for *places* arg. Modified: python/trunk/Doc/library/unittest.rst Modified: python/trunk/Doc/library/unittest.rst ============================================================================== --- python/trunk/Doc/library/unittest.rst (original) +++ python/trunk/Doc/library/unittest.rst Sun Sep 21 09:15:59 2008 @@ -595,7 +595,8 @@ TestCase.failUnlessAlmostEqual(first, second[, places[, msg]]) Test that *first* and *second* are approximately equal by computing the - difference, rounding to the given number of *places*, and comparing to zero. + difference, rounding to the given number of decimal *places* (default 7), + and comparing to zero. Note that comparing a given number of decimal places is not the same as comparing a given number of significant digits. If the values do not compare equal, the test will fail with the explanation given by *msg*, or :const:`None`. @@ -605,7 +606,8 @@ TestCase.failIfAlmostEqual(first, second[, places[, msg]]) Test that *first* and *second* are not approximately equal by computing the - difference, rounding to the given number of *places*, and comparing to zero. + difference, rounding to the given number of decimal *places* (default 7), + and comparing to zero. Note that comparing a given number of decimal places is not the same as comparing a given number of significant digits. If the values do not compare equal, the test will fail with the explanation given by *msg*, or :const:`None`. From python-checkins at python.org Sun Sep 21 09:17:00 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:17:00 +0200 (CEST) Subject: [Python-checkins] r66525 - in python/trunk: Doc/using/windows.rst PCbuild/readme.txt Message-ID: <20080921071700.4EC131E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:17:00 2008 New Revision: 66525 Log: #3916: fixes for docs wrt. Windows directory layout Modified: python/trunk/Doc/using/windows.rst python/trunk/PCbuild/readme.txt Modified: python/trunk/Doc/using/windows.rst ============================================================================== --- python/trunk/Doc/using/windows.rst (original) +++ python/trunk/Doc/using/windows.rst Sun Sep 21 09:17:00 2008 @@ -142,7 +142,7 @@ entries. An example variable could look like this (assuming the first two entries are Windows' default):: - C:\WINNT\system32;C:\WINNT;C:\Python25 + C:\WINDOWS\system32;C:\WINDOWS;C:\Python25 Typing :command:`python` on your command prompt will now fire up the Python interpreter. Thus, you can also execute your scripts with command line options, @@ -278,11 +278,11 @@ +====================+==============+=======================+ | :file:`PC/VC6/` | 6.0 | 97 | +--------------------+--------------+-----------------------+ -| :file:`PCbuild/` | 7.1 | 2003 | +| :file:`PC/VS7.1/` | 7.1 | 2003 | +--------------------+--------------+-----------------------+ -| :file:`PCbuild8/` | 8.0 | 2005 | +| :file:`PC/VS8.0/` | 8.0 | 2005 | +--------------------+--------------+-----------------------+ -| :file:`PCbuild9/` | 9.0 | 2008 | +| :file:`PCbuild/` | 9.0 | 2008 | +--------------------+--------------+-----------------------+ Note that not all of these build directories are fully supported. Read the Modified: python/trunk/PCbuild/readme.txt ============================================================================== --- python/trunk/PCbuild/readme.txt (original) +++ python/trunk/PCbuild/readme.txt Sun Sep 21 09:17:00 2008 @@ -21,7 +21,7 @@ The PCbuild directory is compatible with all versions of Visual Studio from VS C++ Express Edition over the standard edition up to the professional -edition. However the express edition does support features like solution +edition. However the express edition does not support features like solution folders or profile guided optimization (PGO). The missing bits and pieces won't stop you from building Python. From python-checkins at python.org Sun Sep 21 09:18:29 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:18:29 +0200 (CEST) Subject: [Python-checkins] r66526 - python/trunk/Doc/reference/simple_stmts.rst Message-ID: <20080921071829.027121E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:18:28 2008 New Revision: 66526 Log: #3914: add //= to the augmented assign operators. Modified: python/trunk/Doc/reference/simple_stmts.rst Modified: python/trunk/Doc/reference/simple_stmts.rst ============================================================================== --- python/trunk/Doc/reference/simple_stmts.rst (original) +++ python/trunk/Doc/reference/simple_stmts.rst Sun Sep 21 09:18:28 2008 @@ -229,7 +229,7 @@ .. productionlist:: augmented_assignment_stmt: `target` `augop` (`expression_list` | `yield_expression`) - augop: "+=" | "-=" | "*=" | "/=" | "%=" | "**=" + augop: "+=" | "-=" | "*=" | "/=" | "//=" | "%=" | "**=" : | ">>=" | "<<=" | "&=" | "^=" | "|=" (See section :ref:`primaries` for the syntax definitions for the last three From python-checkins at python.org Sun Sep 21 09:24:11 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:24:11 +0200 (CEST) Subject: [Python-checkins] r66529 - python/trunk/PCbuild/readme.txt Message-ID: <20080921072411.9CC631E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:24:11 2008 New Revision: 66529 Log: #3901: bsddb fix. Modified: python/trunk/PCbuild/readme.txt Modified: python/trunk/PCbuild/readme.txt ============================================================================== --- python/trunk/PCbuild/readme.txt (original) +++ python/trunk/PCbuild/readme.txt Sun Sep 21 09:24:11 2008 @@ -104,7 +104,7 @@ Python-controlled subprojects that wrap external projects: _bsddb - Wraps Berkeley DB 4.4.20, which is currently built by _bsddb44.vcproj. + Wraps Berkeley DB 4.7.25, which is currently built by _bsddb.vcproj. project (see below). _sqlite3 Wraps SQLite 3.5.9, which is currently built by sqlite3.vcproj (see below). @@ -213,7 +213,7 @@ This will be cleaned up in the future; ideally Tcl/Tk will be brought into our pcbuild.sln as custom .vcproj files, just as we've recently done with the -_bsddb44.vcproj and sqlite3.vcproj files, which will remove the need for +_bsddb.vcproj and sqlite3.vcproj files, which will remove the need for Tcl/Tk to be built separately via a batch file. XXX trent.nelson 02-Apr-08: From python-checkins at python.org Sun Sep 21 09:31:53 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:31:53 +0200 (CEST) Subject: [Python-checkins] r66530 - python/trunk/Modules/Setup.dist Message-ID: <20080921073153.0A6201E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:31:52 2008 New Revision: 66530 Log: #3897: _collections now has an underscore. Modified: python/trunk/Modules/Setup.dist Modified: python/trunk/Modules/Setup.dist ============================================================================== --- python/trunk/Modules/Setup.dist (original) +++ python/trunk/Modules/Setup.dist Sun Sep 21 09:31:52 2008 @@ -176,7 +176,7 @@ #_weakref _weakref.c # basic weak reference support #_testcapi _testcapimodule.c # Python C API test module #_random _randommodule.c # Random number generator -#collections collectionsmodule.c # Container types +#_collections _collectionsmodule.c # Container types #itertools itertoolsmodule.c # Functions creating iterators for efficient looping #strop stropmodule.c # String manipulations From python-checkins at python.org Sun Sep 21 09:36:22 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 09:36:22 +0200 (CEST) Subject: [Python-checkins] r66532 - in python/trunk/Doc: Makefile README.txt Message-ID: <20080921073622.94B791E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 09:36:22 2008 New Revision: 66532 Log: Update readme and Makefile (web builder doesn't exist). Modified: python/trunk/Doc/Makefile python/trunk/Doc/README.txt Modified: python/trunk/Doc/Makefile ============================================================================== --- python/trunk/Doc/Makefile (original) +++ python/trunk/Doc/Makefile Sun Sep 21 09:36:22 2008 @@ -13,12 +13,11 @@ ALLSPHINXOPTS = -b $(BUILDER) -d build/doctrees -D latex_paper_size=$(PAPER) \ $(SPHINXOPTS) . build/$(BUILDER) $(SOURCES) -.PHONY: help checkout update build html web htmlhelp clean coverage +.PHONY: help checkout update build html htmlhelp clean coverage help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" - @echo " web to make file usable by Sphinx.web" @echo " htmlhelp to make HTML files and a HTML help project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " text to make plain text files" @@ -59,12 +58,6 @@ html: build @echo "Build finished. The HTML pages are in build/html." -web: BUILDER = web -web: build - @echo "Build finished; now you can run" - @echo " PYTHONPATH=tools $(PYTHON) -m sphinx.web build/web" - @echo "to start the server." - htmlhelp: BUILDER = htmlhelp htmlhelp: build @echo "Build finished; now you can run HTML Help Workshop with the" \ Modified: python/trunk/Doc/README.txt ============================================================================== --- python/trunk/Doc/README.txt (original) +++ python/trunk/Doc/README.txt Sun Sep 21 09:36:22 2008 @@ -38,9 +38,6 @@ * "html", which builds standalone HTML files for offline viewing. - * "web", which builds files usable with the Sphinx.web application (used to - serve the docs online at http://docs.python.org/). - * "htmlhelp", which builds HTML files and a HTML Help project file usable to convert them into a single Compiled HTML (.chm) file -- these are popular under Microsoft Windows, but very handy on every platform. From buildbot at python.org Sun Sep 21 09:45:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 07:45:46 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080921074546.7F1AE1E4004@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/254 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_kqueue test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 21 09:57:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 07:57:33 +0000 Subject: [Python-checkins] buildbot failure in OS X x86 3.0 Message-ID: <20080921075733.47A5F1E4004@bag.python.org> The Buildbot has detected a new failure of OS X x86 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/OS%20X%20x86%203.0/builds/401 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: noller-osx86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc_net make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 21 10:03:21 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 10:03:21 +0200 (CEST) Subject: [Python-checkins] r66535 - python/trunk/Doc/library/random.rst Message-ID: <20080921080321.77A641E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 10:03:21 2008 New Revision: 66535 Log: #3918: note that uniform() args can be swapped. Modified: python/trunk/Doc/library/random.rst Modified: python/trunk/Doc/library/random.rst ============================================================================== --- python/trunk/Doc/library/random.rst (original) +++ python/trunk/Doc/library/random.rst Sun Sep 21 10:03:21 2008 @@ -188,7 +188,9 @@ .. function:: uniform(a, b) - Return a random floating point number *N* such that ``a <= N < b``. + Return a random floating point number *N* such that ``a <= N < b`` for + ``a <= b`` and ``b <= N < a`` for ``b < a``. + .. function:: triangular(low, high, mode) From buildbot at python.org Sun Sep 21 10:03:52 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 08:03:52 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080921080352.261141E4004@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1104 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_codecs ====================================================================== ERROR: test_basics (test.test_codecs.BasicUnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_codecs.py", line 1344, in test_basics encodedresult += encoder.encode(c) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/encodings/ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: test_decoder_state (test.test_codecs.BasicUnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_codecs.py", line 1429, in test_decoder_state self.check_state_handling_decode(encoding, u, u.encode(encoding)) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/test/test_codecs.py", line 30, in check_state_handling_decode part1 = d.decode(s[:i]) File "/home/buildbot/slave/py-build/3.0.norwitz-amd64/build/Lib/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 21 10:08:04 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 10:08:04 +0200 (CEST) Subject: [Python-checkins] r66536 - doctools/trunk/sphinx/texinputs/Makefile Message-ID: <20080921080804.5CBFC1E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 10:08:04 2008 New Revision: 66536 Log: Fix makefile. Modified: doctools/trunk/sphinx/texinputs/Makefile Modified: doctools/trunk/sphinx/texinputs/Makefile ============================================================================== --- doctools/trunk/sphinx/texinputs/Makefile (original) +++ doctools/trunk/sphinx/texinputs/Makefile Sun Sep 21 10:08:04 2008 @@ -22,10 +22,10 @@ tar: all-$(FMT) mkdir $(ARCHIVEPREFIX)docs-$(FMT) cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) - tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar + tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT) rm -r $(ARCHIVEPREFIX)docs-$(FMT) -bz2: tar-$(FMT) +bz2: tar bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar # The number of LaTeX runs is quite conservative, but I don't expect it From python-checkins at python.org Sun Sep 21 10:22:55 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 10:22:55 +0200 (CEST) Subject: [Python-checkins] r66537 - doctools/trunk/sphinx/texinputs/Makefile Message-ID: <20080921082255.F26D21E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 10:22:55 2008 New Revision: 66537 Log: One more fix. Modified: doctools/trunk/sphinx/texinputs/Makefile Modified: doctools/trunk/sphinx/texinputs/Makefile ============================================================================== --- doctools/trunk/sphinx/texinputs/Makefile (original) +++ doctools/trunk/sphinx/texinputs/Makefile Sun Sep 21 10:22:55 2008 @@ -11,7 +11,7 @@ all-pdf: $(ALLPDF) all-dvi: $(ALLDVI) all-ps: all-dvi - for f in *.dvi; do dvips $f; done + for f in *.dvi; do dvips $$f; done zip: all-$(FMT) mkdir $(ARCHIVEPREFIX)docs-$(FMT) From buildbot at python.org Sun Sep 21 10:43:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 08:43:22 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080921084322.9E9121E4004@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/577 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_doctest make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 21 12:00:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 10:00:21 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080921100021.D51CA1E4013@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3950 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 21 12:03:39 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 21 Sep 2008 12:03:39 +0200 (CEST) Subject: [Python-checkins] r66538 - python/trunk/Doc/Makefile Message-ID: <20080921100339.9DE161E4004@bag.python.org> Author: georg.brandl Date: Sun Sep 21 12:03:39 2008 New Revision: 66538 Log: Add "dist" target. Modified: python/trunk/Doc/Makefile Modified: python/trunk/Doc/Makefile ============================================================================== --- python/trunk/Doc/Makefile (original) +++ python/trunk/Doc/Makefile Sun Sep 21 12:03:39 2008 @@ -9,11 +9,12 @@ SPHINXOPTS = PAPER = SOURCES = +DISTVERSION = ALLSPHINXOPTS = -b $(BUILDER) -d build/doctrees -D latex_paper_size=$(PAPER) \ $(SPHINXOPTS) . build/$(BUILDER) $(SOURCES) -.PHONY: help checkout update build html htmlhelp clean coverage +.PHONY: help checkout update build html htmlhelp clean coverage dist help: @echo "Please use \`make ' where is one of" @@ -24,6 +25,7 @@ @echo " changes to make an overview over all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " coverage to check documentation coverage for library and C API" + @echo " dist to create a \"dist\" directory with archived docs for download" checkout: @if [ ! -d tools/sphinx ]; then \ @@ -98,6 +100,44 @@ htmlview: html $(PYTHON) -c "import webbrowser; webbrowser.open('build/html/index.html')" + clean: -rm -rf build/* -rm -rf tools/sphinx + +dist: + -rm -rf dist + mkdir -p dist + + # archive the HTML + make html + cp -a build/html dist/python$(DISTVERSION)-docs-html + tar -C dist -cf dist/python$(DISTVERSION)-docs-html.tar python$(DISTVERSION)-docs-html + bzip2 -9 -k dist/python$(DISTVERSION)-docs-html.tar + (cd dist; zip -q -r -9 python$(DISTVERSION)-docs-html.zip python$(DISTVERSION)-docs-html) + rm -r dist/python$(DISTVERSION)-docs-html + rm dist/python$(DISTVERSION)-docs-html.tar + + # archive the text build + make text + cp -a build/text dist/python$(DISTVERSION)-docs-text + tar -C dist -cf dist/python$(DISTVERSION)-docs-text.tar python$(DISTVERSION)-docs-text + bzip2 -9 -k dist/python$(DISTVERSION)-docs-text.tar + (cd dist; zip -q -r -9 python$(DISTVERSION)-docs-text.zip python$(DISTVERSION)-docs-text) + rm -r dist/python$(DISTVERSION)-docs-text + rm dist/python$(DISTVERSION)-docs-text.tar + + # archive the A4 latex + -rm -r build/latex + make latex PAPER=a4 + (cd build/latex; make clean && make all-pdf && make FMT=pdf zip bz2) + cp build/latex/docs-pdf.zip dist/python$(DISTVERSION)-docs-pdf-a4.zip + cp build/latex/docs-pdf.tar.bz2 dist/python$(DISTVERSION)-docs-pdf-a4.tar.bz2 + + # archive the letter latex + rm -r build/latex + make latex PAPER=letter + (cd build/latex; make clean && make all-pdf && make FMT=pdf zip bz2) + cp build/latex/docs-pdf.zip dist/python$(DISTVERSION)-docs-pdf-letter.zip + cp build/latex/docs-pdf.tar.bz2 dist/python$(DISTVERSION)-docs-pdf-letter.tar.bz2 + From python-checkins at python.org Sun Sep 21 13:44:24 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Sun, 21 Sep 2008 13:44:24 +0200 (CEST) Subject: [Python-checkins] r66539 - python/trunk/Lib/test/test_tarfile.py Message-ID: <20080921114424.363CC1E4004@bag.python.org> Author: hirokazu.yamamoto Date: Sun Sep 21 13:44:23 2008 New Revision: 66539 Log: Issue #3838: TarFile object assigned to self.tar should be closed explicitly. Reviewed by Lars Gust?bel. Modified: python/trunk/Lib/test/test_tarfile.py Modified: python/trunk/Lib/test/test_tarfile.py ============================================================================== --- python/trunk/Lib/test/test_tarfile.py (original) +++ python/trunk/Lib/test/test_tarfile.py Sun Sep 21 13:44:23 2008 @@ -787,6 +787,7 @@ self.tar.add(self.foo) def tearDown(self): + self.tar.close() os.remove(self.foo) os.remove(self.bar) From buildbot at python.org Sun Sep 21 14:33:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 12:33:27 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080921123327.BD7C61E4006@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/388 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_asynchat test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 21 14:44:12 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Sun, 21 Sep 2008 14:44:12 +0200 (CEST) Subject: [Python-checkins] r66540 - svn:log Message-ID: <20080921124412.EFE621E4006@bag.python.org> Author: hirokazu.yamamoto Revision: 66540 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -5,5 +5,5 @@ r66539 | hirokazu.yamamoto | 2008-09-21 20:44:23 +0900 | 2 lines Issue #3838: TarFile object assigned to self.tar should be closed explicitly. - Reviewed by Lars Gust?\195?\164bel. + Reviewed by Lars Gust?bel. ........ From buildbot at python.org Sun Sep 21 14:52:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 12:52:27 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080921125227.BAC761E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/575 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From amk at amk.ca Sun Sep 21 14:52:49 2008 From: amk at amk.ca (A.M. Kuchling) Date: Sun, 21 Sep 2008 08:52:49 -0400 Subject: [Python-checkins] r66535 - python/trunk/Doc/library/random.rst In-Reply-To: <20080921080321.77A641E4004@bag.python.org> References: <20080921080321.77A641E4004@bag.python.org> Message-ID: <20080921125249.GA12111@amk.local> On Sun, Sep 21, 2008 at 10:03:21AM +0200, georg.brandl wrote: > #3918: note that uniform() args can be swapped. > - Return a random floating point number *N* such that ``a <= N < b``. > + Return a random floating point number *N* such that ``a <= N < b`` for > + ``a <= b`` and ``b <= N < a`` for ``b < a``. An alternative way to describe this might be: such that ``min(a,b) <= N < max(a,b)``. --amk From buildbot at python.org Sun Sep 21 15:04:25 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 13:04:25 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080921130425.E4DA11E4006@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1551 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 21 15:05:00 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 13:05:00 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080921130500.41B361E4006@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/546 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess ====================================================================== ERROR: test_no_leaking (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/test/test_subprocess.py", line 423, in test_no_leaking data = p.communicate(b"lime")[0] File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/subprocess.py", line 671, in communicate return self._communicate(input) File "/home/pybot/buildarea-sid/3.0.klose-debian-sparc/build/Lib/subprocess.py", line 1171, in _communicate bytes_written = os.write(self.stdin.fileno(), chunk) OSError: [Errno 32] Broken pipe make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 21 15:10:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 13:10:21 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080921131023.F107E1E401F@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1667 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From nnorwitz at gmail.com Sun Sep 21 15:24:21 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Sun, 21 Sep 2008 09:24:21 -0400 Subject: [Python-checkins] Python Regression Test Failures refleak (1) Message-ID: <20080921132421.GA8039@python.psfb.org> More important issues: ---------------------- test_thread leaked [-48, 0, 0] references, sum=-48 Less important issues: ---------------------- test_asynchat leaked [-132, 0, 0] references, sum=-132 test_docxmlrpc leaked [0, -7, 7] references, sum=0 test_popen2 leaked [0, 54, 0] references, sum=54 test_smtplib leaked [94, -88, 105] references, sum=111 test_threadsignals leaked [0, -8, 0] references, sum=-8 test_urllib2_localnet leaked [3, 3, 3] references, sum=9 test_xmlrpc leaked [-119, 0, 34] references, sum=-85 From python-checkins at python.org Sun Sep 21 22:48:41 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Sun, 21 Sep 2008 22:48:41 +0200 (CEST) Subject: [Python-checkins] r66542 - python/trunk/Lib/distutils/tests/test_build_ext.py Message-ID: <20080921204841.5C64E1E4002@bag.python.org> Author: hirokazu.yamamoto Date: Sun Sep 21 22:48:41 2008 New Revision: 66542 Log: Issue #3925: Ignores shutil.rmtree error on cygwin too. Reviewed by Benjamin Peterson. Modified: python/trunk/Lib/distutils/tests/test_build_ext.py Modified: python/trunk/Lib/distutils/tests/test_build_ext.py ============================================================================== --- python/trunk/Lib/distutils/tests/test_build_ext.py (original) +++ python/trunk/Lib/distutils/tests/test_build_ext.py Sun Sep 21 22:48:41 2008 @@ -62,8 +62,8 @@ # Get everything back to normal test_support.unload('xx') sys.path = self.sys_path - # XXX on Windows the test leaves a directory with xx.pyd in TEMP - shutil.rmtree(self.tmp_dir, False if os.name != "nt" else True) + # XXX on Windows the test leaves a directory with xx module in TEMP + shutil.rmtree(self.tmp_dir, os.name == 'nt' or sys.platform == 'cygwin') def test_suite(): if not sysconfig.python_build: From python-checkins at python.org Sun Sep 21 23:27:52 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 21 Sep 2008 23:27:52 +0200 (CEST) Subject: [Python-checkins] r66544 - in python/trunk: Lib/test/test_urllib.py Lib/urllib.py Misc/NEWS Message-ID: <20080921212752.5FB261E4006@bag.python.org> Author: benjamin.peterson Date: Sun Sep 21 23:27:51 2008 New Revision: 66544 Log: #3879 fix a regression in urllib.getproxies_environment reviewers: Benjamin, Georg Modified: python/trunk/Lib/test/test_urllib.py python/trunk/Lib/urllib.py python/trunk/Misc/NEWS Modified: python/trunk/Lib/test/test_urllib.py ============================================================================== --- python/trunk/Lib/test/test_urllib.py (original) +++ python/trunk/Lib/test/test_urllib.py Sun Sep 21 23:27:51 2008 @@ -94,6 +94,31 @@ for line in self.returned_obj.__iter__(): self.assertEqual(line, self.text) + +class ProxyTests(unittest.TestCase): + + def setUp(self): + unittest.TestCase.setUp(self) + # Save all proxy related env vars + self._saved_environ = dict([(k, v) for k, v in os.environ.iteritems() + if k.lower().find('proxy') >= 0]) + # Delete all proxy related env vars + for k in self._saved_environ: + del os.environ[k] + + def tearDown(self): + unittest.TestCase.tearDown(self) + # Restore all proxy related env vars + for k, v in self._saved_environ: + os.environ[k] = v + + def test_getproxies_environment_keep_no_proxies(self): + os.environ['NO_PROXY'] = 'localhost' + proxies = urllib.getproxies_environment() + # getproxies_environment use lowered case truncated (no '_proxy') keys + self.assertEquals('localhost', proxies['no']) + + class urlopen_HttpTests(unittest.TestCase): """Test urlopen() opening a fake http connection.""" @@ -648,6 +673,7 @@ urlopen_FileTests, urlopen_HttpTests, urlretrieve_FileTests, + ProxyTests, QuotingTests, UnquotingTests, urlencode_Tests, Modified: python/trunk/Lib/urllib.py ============================================================================== --- python/trunk/Lib/urllib.py (original) +++ python/trunk/Lib/urllib.py Sun Sep 21 23:27:51 2008 @@ -1299,9 +1299,6 @@ proxies = {} for name, value in os.environ.items(): name = name.lower() - if name == 'no_proxy': - # handled in proxy_bypass_environment - continue if value and name[-6:] == '_proxy': proxies[name[:-6]] = value return proxies Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sun Sep 21 23:27:51 2008 @@ -15,6 +15,8 @@ Library ------- +- Issue #3879: A regression in urllib.getproxies_enviroment was fixed. + Build ----- From buildbot at python.org Sun Sep 21 23:47:43 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 21:47:43 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 3.0 Message-ID: <20080921214744.26D801E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%203.0/builds/796 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_io ====================================================================== ERROR: testBasicIO (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 900, in testBasicIO self.assertEquals(f.write("abc"), 3) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: testEncodingErrorsReading (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 738, in testEncodingErrorsReading self.assertRaises(UnicodeError, t.read) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\unittest.py", line 311, in failUnlessRaises callableObj(*args, **kwargs) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1719, in read decoder.decode(self.buffer.read(), final=True)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: testEncodingErrorsWriting (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 756, in testEncodingErrorsWriting self.assertRaises(UnicodeError, t.write, "\xff") File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\unittest.py", line 311, in failUnlessRaises callableObj(*args, **kwargs) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: testNewlinesInput (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 861, in testNewlinesInput self.assertEquals(txt.readlines(), expected) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 540, in readlines return list(self) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1734, in __next__ line = self.readline() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1808, in readline while self._read_chunk(): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: testNewlinesOutput (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 886, in testNewlinesOutput txt.write(data) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: test_issue1395_1 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1122, in test_issue1395_1 c = txt.read(1) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_2 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1134, in test_issue1395_2 c = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_3 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1144, in test_issue1395_3 reads = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_4 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1155, in test_issue1395_4 reads = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_5 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1163, in test_issue1395_5 reads = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 00:16:48 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 22:16:48 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080921221648.EB57B1E4017@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1107 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 00:29:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 22:29:12 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080921222913.223931E4002@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/172 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 22 00:31:59 2008 From: python-checkins at python.org (georg.brandl) Date: Mon, 22 Sep 2008 00:31:59 +0200 (CEST) Subject: [Python-checkins] r66546 - python/trunk/Doc/tools/sphinxext/download.html Message-ID: <20080921223159.C840B1E4002@bag.python.org> Author: georg.brandl Date: Mon Sep 22 00:31:59 2008 New Revision: 66546 Log: Fill out download page. Modified: python/trunk/Doc/tools/sphinxext/download.html Modified: python/trunk/Doc/tools/sphinxext/download.html ============================================================================== --- python/trunk/Doc/tools/sphinxext/download.html (original) +++ python/trunk/Doc/tools/sphinxext/download.html Mon Sep 22 00:31:59 2008 @@ -1,21 +1,37 @@ {% extends "layout.html" %} {% set title = 'Download' %} +{% set dlbase = 'http://docs.python.org/ftp/python/doc/' + release %} {% block body %}

      Download Python {{ release }} Documentation {%- if last_updated %} (last updated on {{ last_updated }}){% endif %}

      -

      Currently, the development documentation isn't packaged for download.

      - - - {% endblock %} From buildbot at python.org Mon Sep 22 00:52:48 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 22:52:48 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080921225248.4B67D1E400C@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/577 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 01:36:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 23:36:49 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080921233649.46F001E4002@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/582 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 01:54:04 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 21 Sep 2008 23:54:04 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080921235404.802D21E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3953 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Mon Sep 22 02:22:44 2008 From: python-checkins at python.org (gregory.p.smith) Date: Mon, 22 Sep 2008 02:22:44 +0200 (CEST) Subject: [Python-checkins] r66547 - in python/branches/release25-maint: Makefile.pre.in Misc/NEWS Message-ID: <20080922002244.897FE1E4002@bag.python.org> Author: gregory.p.smith Date: Mon Sep 22 02:22:44 2008 New Revision: 66547 Log: Backport r66141 from trunk: - Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared library targets in the Makefile. Modified: python/branches/release25-maint/Makefile.pre.in python/branches/release25-maint/Misc/NEWS Modified: python/branches/release25-maint/Makefile.pre.in ============================================================================== --- python/branches/release25-maint/Makefile.pre.in (original) +++ python/branches/release25-maint/Makefile.pre.in Mon Sep 22 02:22:44 2008 @@ -367,14 +367,14 @@ libpython$(VERSION).so: $(LIBRARY_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ + $(LDSHARED) $(LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ $(LN) -f $(INSTSONAME) $@; \ else\ - $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ + $(LDSHARED) $(LDFLAGS) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ fi libpython$(VERSION).sl: $(LIBRARY_OBJS) - $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) + $(LDSHARED) $(LDFLAGS) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST) # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary # minimal framework (not including the Lib directory and such) in the current @@ -414,8 +414,8 @@ # for a shared core library; otherwise, this rule is a noop. $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS) if test -n "$(DLLLIBRARY)"; then \ - $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ - $(LIBS) $(MODLIBS) $(SYSLIBS); \ + $(LDSHARED) $(LDFLAGS) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \ + $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \ else true; \ fi Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Mon Sep 22 02:22:44 2008 @@ -80,6 +80,9 @@ that may be required when linking against readline. This fixes issues with x86_64 builds on some platforms (a few Linux flavors and OpenBSD). +- Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared + library targets in the Makefile. + Library ------- From buildbot at python.org Mon Sep 22 03:32:04 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 01:32:04 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 2.5 Message-ID: <20080922013204.577471E4002@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%202.5/builds/286 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/2.5.klose-debian-ppc/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/pybot/buildarea/2.5.klose-debian-ppc/build/Lib/test/test_urllib2_localnet.py", line 64, in run self._RequestHandlerClass) File "/home/pybot/buildarea/2.5.klose-debian-ppc/build/Lib/test/test_urllib2_localnet.py", line 22, in __init__ RequestHandlerClass) File "/home/pybot/buildarea/2.5.klose-debian-ppc/build/Lib/SocketServer.py", line 330, in __init__ self.server_bind() File "/home/pybot/buildarea/2.5.klose-debian-ppc/build/Lib/BaseHTTPServer.py", line 101, in server_bind SocketServer.TCPServer.server_bind(self) File "/home/pybot/buildarea/2.5.klose-debian-ppc/build/Lib/SocketServer.py", line 341, in server_bind self.socket.bind(self.server_address) File "", line 1, in bind error: (98, 'Address already in use') sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 03:33:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 01:33:46 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20080922013346.B7E801E4002@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/4168 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 04:03:20 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 02:03:20 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 2.5 Message-ID: <20080922020320.733C81E4014@bag.python.org> The Buildbot has detected a new failure of sparc Debian 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%202.5/builds/86 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 22 04:14:14 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 22 Sep 2008 04:14:14 +0200 (CEST) Subject: [Python-checkins] r66548 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080922021414.D080F1E4002@bag.python.org> Author: benjamin.peterson Date: Mon Sep 22 04:14:14 2008 New Revision: 66548 Log: avoid the perils of mutable default arguments Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Mon Sep 22 04:14:14 2008 @@ -94,7 +94,7 @@ _default_options = {"print_function": False} - def __init__(self, fixer_names, options=None, explicit=[]): + def __init__(self, fixer_names, options=None, explicit=None): """Initializer. Args: @@ -103,7 +103,7 @@ explicit: a list of fixers to run even if they are explicit. """ self.fixers = fixer_names - self.explicit = explicit + self.explicit = explicit or [] self.options = self._default_options.copy() if options is not None: self.options.update(options) From python-checkins at python.org Mon Sep 22 04:26:11 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 22 Sep 2008 04:26:11 +0200 (CEST) Subject: [Python-checkins] r66549 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080922022611.9126F1E4002@bag.python.org> Author: benjamin.peterson Date: Mon Sep 22 04:26:11 2008 New Revision: 66549 Log: some places in RefactoringTool should raise an error instead of logging it Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Mon Sep 22 04:26:11 2008 @@ -90,6 +90,10 @@ for fix_name in get_all_fix_names(pkg_name, False)] +class FixerError(Exception): + """A fixer could not be loaded.""" + + class RefactoringTool(object): _default_options = {"print_function": False} @@ -134,12 +138,7 @@ pre_order_fixers = [] post_order_fixers = [] for fix_mod_path in self.fixers: - try: - mod = __import__(fix_mod_path, {}, {}, ["*"]) - except ImportError: - self.log_error("Can't load transformation module %s", - fix_mod_path) - continue + mod = __import__(fix_mod_path, {}, {}, ["*"]) fix_name = fix_mod_path.rsplit(".", 1)[-1] if fix_name.startswith("fix_"): fix_name = fix_name[4:] @@ -148,15 +147,8 @@ try: fix_class = getattr(mod, class_name) except AttributeError: - self.log_error("Can't find %s.%s", - fix_name, class_name) - continue - try: - fixer = fix_class(self.options, self.fixer_log) - except Exception, err: - self.log_error("Can't instantiate fixes.fix_%s.%s()", - fix_name, class_name, exc_info=True) - continue + raise FixerError("Can't find %s.%s" % (fix_name, class_name)) + fixer = fix_class(self.options, self.fixer_log) if fixer.explicit and self.explicit is not True and \ fix_mod_path not in self.explicit: self.log_message("Skipping implicit fixer: %s", fix_name) @@ -168,7 +160,7 @@ elif fixer.order == "post": post_order_fixers.append(fixer) else: - raise ValueError("Illegal fixer order: %r" % fixer.order) + raise FixerError("Illegal fixer order: %r" % fixer.order) key_func = operator.attrgetter("run_order") pre_order_fixers.sort(key=key_func) From buildbot at python.org Mon Sep 22 05:56:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 03:56:06 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD 2.5 Message-ID: <20080922035606.370D71E4011@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%202.5/builds/44 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 09:25:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 07:25:15 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080922072515.C87001E400D@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/626 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: gerhard.haering BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess ====================================================================== ERROR: test_no_leaking (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-ubuntu-sparc/build/Lib/test/test_subprocess.py", line 423, in test_no_leaking data = p.communicate(b"lime")[0] File "/home/pybot/buildarea/3.0.klose-ubuntu-sparc/build/Lib/subprocess.py", line 671, in communicate return self._communicate(input) File "/home/pybot/buildarea/3.0.klose-ubuntu-sparc/build/Lib/subprocess.py", line 1171, in _communicate bytes_written = os.write(self.stdin.fileno(), chunk) OSError: [Errno 32] Broken pipe make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 22 16:10:54 2008 From: python-checkins at python.org (andrew.macintyre) Date: Mon, 22 Sep 2008 16:10:54 +0200 (CEST) Subject: [Python-checkins] r66552 - python/trunk/Objects/floatobject.c Message-ID: <20080922141054.55AD51E4002@bag.python.org> Author: andrew.macintyre Date: Mon Sep 22 16:10:54 2008 New Revision: 66552 Log: should use macro'ed symbols not direct Part of source_os2emx.patch in issue 3868 Reviewed by Amaury Forgeot d'Arc Modified: python/trunk/Objects/floatobject.c Modified: python/trunk/Objects/floatobject.c ============================================================================== --- python/trunk/Objects/floatobject.c (original) +++ python/trunk/Objects/floatobject.c Mon Sep 22 16:10:54 2008 @@ -1339,12 +1339,12 @@ s++; /* infinities and nans */ - if (PyOS_mystrnicmp(s, "nan", 4) == 0) { + if (PyOS_strnicmp(s, "nan", 4) == 0) { x = Py_NAN; goto finished; } - if (PyOS_mystrnicmp(s, "inf", 4) == 0 || - PyOS_mystrnicmp(s, "infinity", 9) == 0) { + if (PyOS_strnicmp(s, "inf", 4) == 0 || + PyOS_strnicmp(s, "infinity", 9) == 0) { x = sign*Py_HUGE_VAL; goto finished; } From python-checkins at python.org Mon Sep 22 16:11:42 2008 From: python-checkins at python.org (andrew.macintyre) Date: Mon, 22 Sep 2008 16:11:42 +0200 (CEST) Subject: [Python-checkins] r66553 - python/trunk/Python/pymath.c Message-ID: <20080922141142.2E8831E4002@bag.python.org> Author: andrew.macintyre Date: Mon Sep 22 16:11:41 2008 New Revision: 66553 Log: any platform without HAVE_LOG1P should have DBL_EPSILON in Part of source_os2emx.patch in issue 3868 Reviewed by Amaury Forgeot d'Arc Modified: python/trunk/Python/pymath.c Modified: python/trunk/Python/pymath.c ============================================================================== --- python/trunk/Python/pymath.c (original) +++ python/trunk/Python/pymath.c Mon Sep 22 16:11:41 2008 @@ -35,6 +35,8 @@ #endif /* HAVE_COPYSIGN */ #ifndef HAVE_LOG1P +#include + double log1p(double x) { From python-checkins at python.org Mon Sep 22 16:23:45 2008 From: python-checkins at python.org (andrew.macintyre) Date: Mon, 22 Sep 2008 16:23:45 +0200 (CEST) Subject: [Python-checkins] r66554 - in python/trunk: Include/pystrcmp.h Lib/test/test_io.py PC/os2emx/Makefile PC/os2emx/config.c PC/os2emx/pyconfig.h Message-ID: <20080922142345.DE9A91E4002@bag.python.org> Author: andrew.macintyre Date: Mon Sep 22 16:23:45 2008 New Revision: 66554 Log: build_os2emx.patch in issue 3868 - update OS/2 EMX makefile and config files Part of source_os2emx.patch in issue 3868: Include/pystrcmp.h: OS/2 has same C APIs as Windows Lib/test/test_io.py: OS/2 has same behaviour as Windows for this test Reviewed by Amaury Forgeot d'Arc Modified: python/trunk/Include/pystrcmp.h python/trunk/Lib/test/test_io.py python/trunk/PC/os2emx/Makefile python/trunk/PC/os2emx/config.c python/trunk/PC/os2emx/pyconfig.h Modified: python/trunk/Include/pystrcmp.h ============================================================================== --- python/trunk/Include/pystrcmp.h (original) +++ python/trunk/Include/pystrcmp.h Mon Sep 22 16:23:45 2008 @@ -8,7 +8,7 @@ PyAPI_FUNC(int) PyOS_mystrnicmp(const char *, const char *, Py_ssize_t); PyAPI_FUNC(int) PyOS_mystricmp(const char *, const char *); -#ifdef MS_WINDOWS +#if defined(MS_WINDOWS) || defined(PYOS_OS2) #define PyOS_strnicmp strnicmp #define PyOS_stricmp stricmp #else Modified: python/trunk/Lib/test/test_io.py ============================================================================== --- python/trunk/Lib/test/test_io.py (original) +++ python/trunk/Lib/test/test_io.py Mon Sep 22 16:23:45 2008 @@ -201,7 +201,7 @@ # On Windows and Mac OSX this test comsumes large resources; It takes # a long time to build the >2GB file and takes >2GB of disk space # therefore the resource must be enabled to run this test. - if sys.platform[:3] == 'win' or sys.platform == 'darwin': + if sys.platform[:3] in ('win', 'os2') or sys.platform == 'darwin': if not test_support.is_resource_enabled("largefile"): print("\nTesting large file ops skipped on %s." % sys.platform, file=sys.stderr) Modified: python/trunk/PC/os2emx/Makefile ============================================================================== --- python/trunk/PC/os2emx/Makefile (original) +++ python/trunk/PC/os2emx/Makefile Mon Sep 22 16:23:45 2008 @@ -287,7 +287,7 @@ Modules/binascii.c \ Modules/cmathmodule.c \ Modules/_codecsmodule.c \ - Modules/collectionsmodule.c \ + Modules/_collectionsmodule.c \ Modules/cPickle.c \ Modules/cStringIO.c \ Modules/_csv.c \ @@ -295,6 +295,7 @@ Modules/dlmodule.c \ Modules/errnomodule.c \ Modules/fcntlmodule.c \ + Modules/_fileio.c \ Modules/_functoolsmodule.c \ Modules/_heapqmodule.c \ Modules/imageop.c \ @@ -305,7 +306,6 @@ Modules/md5module.c \ Modules/operator.c \ Modules/_randommodule.c \ - Modules/rgbimgmodule.c \ Modules/shamodule.c \ Modules/sha256module.c \ Modules/sha512module.c \ @@ -343,6 +343,8 @@ Python/compile.c \ Python/codecs.c \ Python/errors.c \ + Python/formatter_string.c \ + Python/formatter_unicode.c \ Python/frozen.c \ Python/frozenmain.c \ Python/future.c \ @@ -359,8 +361,10 @@ Python/modsupport.c \ Python/mysnprintf.c \ Python/mystrtoul.c \ + Python/peephole.c \ Python/pyarena.c \ Python/pyfpe.c \ + Python/pymath.c \ Python/pystate.c \ Python/pystrtod.c \ Python/pythonrun.c \ @@ -370,11 +374,14 @@ Python/traceback.c \ Python/getopt.c \ Python/dynload_shlib.c \ - Python/thread.c) + Python/thread.c \ + Python/_warnings.c) SRC.OBJECT= $(addprefix $(TOP), \ Objects/abstract.c \ Objects/boolobject.c \ Objects/bufferobject.c \ + Objects/bytearrayobject.c \ + Objects/bytes_methods.c \ Objects/cellobject.c \ Objects/classobject.c \ Objects/cobject.c \ Modified: python/trunk/PC/os2emx/config.c ============================================================================== --- python/trunk/PC/os2emx/config.c (original) +++ python/trunk/PC/os2emx/config.c Mon Sep 22 16:23:45 2008 @@ -52,12 +52,13 @@ extern void initbinascii(); extern void initcPickle(); extern void initcStringIO(); -extern void initcollections(); +extern void init_collections(); extern void initcmath(); extern void initdatetime(); extern void initdl(); extern void initerrno(); extern void initfcntl(); +extern void init_fileio(); extern void init_functools(); extern void init_heapq(); extern void initimageop(); @@ -65,7 +66,6 @@ extern void initmath(); extern void init_md5(); extern void initoperator(); -extern void initrgbimg(); extern void init_sha(); extern void init_sha256(); extern void init_sha512(); @@ -118,12 +118,13 @@ {"binascii", initbinascii}, {"cPickle", initcPickle}, {"cStringIO", initcStringIO}, - {"collections", initcollections}, + {"_collections", init_collections}, {"cmath", initcmath}, {"datetime", initdatetime}, {"dl", initdl}, {"errno", initerrno}, {"fcntl", initfcntl}, + {"_fileio", init_fileio}, {"_functools", init_functools}, {"_heapq", init_heapq}, {"imageop", initimageop}, @@ -131,7 +132,6 @@ {"math", initmath}, {"_md5", init_md5}, {"operator", initoperator}, - {"rgbimg", initrgbimg}, {"_sha", init_sha}, {"_sha256", init_sha256}, {"_sha512", init_sha512}, Modified: python/trunk/PC/os2emx/pyconfig.h ============================================================================== --- python/trunk/PC/os2emx/pyconfig.h (original) +++ python/trunk/PC/os2emx/pyconfig.h Mon Sep 22 16:23:45 2008 @@ -264,6 +264,9 @@ /* Define if you have the header file. */ #undef HAVE_CONIO_H +/* Define to 1 if you have the `copysign' function. */ +#define HAVE_COPYSIGN 1 + /* Define if you have the header file. */ #undef HAVE_DIRECT_H From buildbot at python.org Mon Sep 22 16:34:47 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 14:34:47 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080922143447.97E401E4002@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1671 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 16:49:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 14:49:49 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080922144949.46ADF1E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1426 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 16:50:42 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 14:50:42 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080922145042.61B921E4006@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/259 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.macintyre,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 17:11:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 15:11:08 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080922151108.4BE2C1E4002@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/393 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_calendar test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 17:13:28 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 15:13:28 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080922151328.DEA4E1E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/579 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 17:26:04 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 15:26:04 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080922152605.160FD1E4002@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/550 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_doctest make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 18:03:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 16:03:08 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080922160308.BF60D1E4002@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/941 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 19:23:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 17:23:08 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080922172308.B28591E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3955 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 20:07:38 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 18:07:38 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080922180803.19E481E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1428 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: andrew.macintyre BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 22 23:11:43 2008 From: python-checkins at python.org (benjamin.peterson) Date: Mon, 22 Sep 2008 23:11:43 +0200 (CEST) Subject: [Python-checkins] r66557 - python/trunk/Lib/multiprocessing/dummy/__init__.py Message-ID: <20080922211143.EC83D1E4006@bag.python.org> Author: benjamin.peterson Date: Mon Sep 22 23:11:43 2008 New Revision: 66557 Log: use the new threading properties for multiprocessing (reviewed by Jesse #3927) Modified: python/trunk/Lib/multiprocessing/dummy/__init__.py Modified: python/trunk/Lib/multiprocessing/dummy/__init__.py ============================================================================== --- python/trunk/Lib/multiprocessing/dummy/__init__.py (original) +++ python/trunk/Lib/multiprocessing/dummy/__init__.py Mon Sep 22 23:11:43 2008 @@ -54,12 +54,6 @@ else: return None - is_alive = threading.Thread.is_alive.im_func - get_name = threading.Thread.getName.im_func - set_name = threading.Thread.setName.im_func - is_daemon = threading.Thread.isDaemon.im_func - set_daemon = threading.Thread.setDaemon.im_func - # # # From buildbot at python.org Mon Sep 22 23:40:31 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 21:40:31 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080922214031.8ADDF1E4006@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/261 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 22 23:57:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 21:57:06 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080922215706.A493B1E4010@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1112 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 23 00:13:30 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 23 Sep 2008 00:13:30 +0200 (CEST) Subject: [Python-checkins] r66561 - python/trunk/Doc/library/platform.rst Message-ID: <20080922221330.3CA311E4006@bag.python.org> Author: benjamin.peterson Date: Tue Sep 23 00:13:29 2008 New Revision: 66561 Log: clean up docs for platform's linux_distribution and dist functions Modified: python/trunk/Doc/library/platform.rst Modified: python/trunk/Doc/library/platform.rst ============================================================================== --- python/trunk/Doc/library/platform.rst (original) +++ python/trunk/Doc/library/platform.rst Tue Sep 23 00:13:29 2008 @@ -234,29 +234,23 @@ .. function:: dist(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...)) - Tries to determine the name of the OS distribution name Returns a tuple - ``(distname, version, id)`` which defaults to the args given as parameters. - - ``supported_dists`` may be given to define the set of Linux - distributions to look for. It defaults to a list of currently - supported Linux distributions identified by their release file - name. + This is another name for :func:`linux_distribution`. .. function:: linux_distribution(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake',...), full_distribution_name=1) Tries to determine the name of the Linux OS distribution name. - ``supported_dists`` may be given to define the set of Linux - distributions to look for. It defaults to a list of currently - supported Linux distributions identified by their release file - name. - - If ``full_distribution_name`` is true (default), the full - distribution read from the OS is returned. Otherwise the short name - taken from ``supported_dists`` is used. - - Returns a tuple ``(distname,version,id)`` which defaults to the - args given as parameters. + ``supported_dists`` may be given to define the set of Linux distributions to + look for. It defaults to a list of currently supported Linux distributions + identified by their release file name. + + If ``full_distribution_name`` is true (default), the full distribution read + from the OS is returned. Otherwise the short name taken from + ``supported_dists`` is used. + + Returns a tuple ``(distname,version,id)`` which defaults to the args given as + parameters. ``id`` is the item in parentheses after the version number. It + is usually the version codename. .. function:: libc_ver(executable=sys.executable, lib='', version='', chunksize=2048) From buildbot at python.org Tue Sep 23 00:25:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 22:25:33 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080922222533.35F3D1E4007@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/581 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_distutils test_posix ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 00:58:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 22:58:17 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080922225818.1507D1E4008@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/629 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 01:41:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 22 Sep 2008 23:41:12 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080922234112.609341E4006@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1430 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 02:11:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 00:11:15 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080923001115.386D71E400B@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/553 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 03:20:37 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 01:20:37 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080923012037.CEC641E4007@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/397 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_calendar test_email test_mailbox make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 03:54:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 01:54:08 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923015408.D56451E4007@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/583 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:31:42 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:31:42 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923033142.A4F101E4007@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/177 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,josiah.carlson,lars.gustaebel,martin.v.loewis,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:43:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:43:30 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable trunk Message-ID: <20080923034331.04EE11E4007@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%20trunk/builds/2013 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_tarfile make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:44:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:44:12 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080923034412.CEAD51E4007@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/632 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_tarfile make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:47:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:47:16 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 3.0 Message-ID: <20080923034716.75A271E4007@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%203.0/builds/806 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_xmlrpc_net sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:49:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:49:17 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080923034917.BEF5E1E4007@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1467 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_tarfile make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:49:37 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:49:37 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080923034937.269C11E4007@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/254 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_profile sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 05:58:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 03:58:30 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080923035845.A3AD41E4007@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/555 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_tarfile make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:01:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:01:07 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080923040123.78CB11E4007@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/403 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_calendar make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:13:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:13:01 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923041301.7140F1E4007@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/585 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:18:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:18:17 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080923041817.A96821E4007@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1434 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:28:01 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:28:01 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20080923042802.1F3951E4007@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/4173 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,georg.brandl,hirokazu.yamamoto,josiah.carlson,lars.gustaebel,martin.v.loewis,raymond.hettinger BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:42:38 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:42:38 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923044238.316441E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/179 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:50:24 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:50:24 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080923045025.021091E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1120 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 06:53:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 04:53:12 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 2.5 Message-ID: <20080923045312.68E8B1E4006@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%202.5/builds/33 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 07:11:47 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 05:11:47 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080923051147.E12991E4006@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1563 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_doctest make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 07:28:05 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 05:28:05 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20080923052805.99C701E4006@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/921 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 07:30:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 05:30:07 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 2.5 Message-ID: <20080923053008.1A6E91E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%202.5/builds/73 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: gregory.p.smith,hirokazu.yamamoto BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 07:37:41 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 05:37:41 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080923053741.5E7071E4006@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/634 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 07:38:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 05:38:23 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080923053823.E120A1E4006@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/406 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_calendar make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 08:26:50 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 06:26:50 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080923062650.CCFF01E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1447 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,barry.warsaw,benjamin.peterson,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 09:19:32 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 07:19:32 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923071932.8208E1E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/182 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw,benjamin.peterson,georg.brandl,josiah.carlson,lars.gustaebel,mark.hammond,martin.v.loewis,raymond.hettinger BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 09:50:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 07:50:53 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu trunk Message-ID: <20080923075053.C513C1E4006@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%20trunk/builds/864 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,antoine.pitrou,barry.warsaw,benjamin.peterson,georg.brandl,gerhard.haering,hirokazu.yamamoto,josiah.carlson,lars.gustaebel,mark.hammond,martin.v.loewis,raymond.hettinger,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 11:13:11 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 09:13:11 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20080923091312.1E9CA1E4006@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/278 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 11:35:10 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 09:35:10 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu trunk Message-ID: <20080923093510.825B51E4006@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%20trunk/builds/866 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 11:37:55 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 09:37:55 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923093755.359271E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/187 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== FAIL: test01_basic_replication (bsddb.test.test_replication.DBReplicationManager) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\trunk.nelson-windows\build\lib\bsddb\test\test_replication.py", line 122, in test01_basic_replication self.assertTrue(time.time() The Buildbot has detected a new failure of sparc Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%20trunk/builds/868 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw,georg.brandl,mark.hammond,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 11:43:45 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 09:43:45 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080923094345.C4DE31E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/948 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 Traceback (most recent call last): File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\threading.py", line 522, in __bootstrap_inner self.run() File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\bsddb\test\test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\bsddb\dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 12:23:45 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 10:23:45 +0000 Subject: [Python-checkins] buildbot failure in OS X x86 trunk Message-ID: <20080923102345.AAEB71E4006@bag.python.org> The Buildbot has detected a new failure of OS X x86 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/OS%20X%20x86%20trunk/builds/359 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: noller-osx86 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw,benjamin.peterson,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 12:34:55 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 10:34:55 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080923103455.D28E71E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/950 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw,benjamin.peterson,georg.brandl,hirokazu.yamamoto,mark.hammond,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 ====================================================================== FAIL: test01_basic_replication (bsddb.test.test_replication.DBBaseReplication) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\bsddb\test\test_replication.py", line 315, in test01_basic_replication self.assertTrue(time.time() The Buildbot has detected a new failure of sparc Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%20trunk/builds/695 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,antoine.pitrou,barry.warsaw,benjamin.peterson,georg.brandl,gerhard.haering,hirokazu.yamamoto,josiah.carlson,lars.gustaebel,mark.hammond,martin.v.loewis,raymond.hettinger,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 13:04:43 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 11:04:43 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080923110444.1F8041E401E@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1472 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis,skip.montanaro BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 13:05:12 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 11:05:12 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080923110512.30F3D1E401B@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/258 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_codecs ====================================================================== ERROR: test_basics (test.test_codecs.BasicUnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_codecs.py", line 1344, in test_basics encodedresult += encoder.encode(c) File "S:\buildbots\python\3.0.nelson-windows\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: test_decoder_state (test.test_codecs.BasicUnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_codecs.py", line 1429, in test_decoder_state self.check_state_handling_decode(encoding, u, u.encode(encoding)) File "S:\buildbots\python\3.0.nelson-windows\build\lib\test\test_codecs.py", line 30, in check_state_handling_decode part1 = d.decode(s[:i]) File "S:\buildbots\python\3.0.nelson-windows\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 13:28:13 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 11:28:13 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080923112814.9E1081E4006@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1437 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 13:39:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 11:39:06 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923113906.884B21E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/588 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 13:58:50 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 11:58:50 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923115850.BC3441E4007@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/192 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl,hirokazu.yamamoto,mark.hammond BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 13:59:10 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 11:59:10 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080923115910.AD4E71E4008@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/952 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,georg.brandl,skip.montanaro BUILD FAILED: failed test failed slave lost Excerpt from the test logfile: 5 tests failed: test_bsddb3 test_site test_subprocess test_sys test_wsgiref ====================================================================== FAIL: test01_basic_replication (bsddb.test.test_replication.DBReplicationManager) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\bsddb\test\test_replication.py", line 122, in test01_basic_replication self.assertTrue(time.time() (value: u'C:\\\\Program Files (x86)\\\\Microsoft Visual Studio 9.0\\\\VC\\\\ATLMFC\\\\LIB\\\\amd64;C:\\\\Program Files (x86)\\\\Microsoft Visual Studio 9.0\\\\VC\\\\LIB\\\\amd64;C:\\\\Program Files\\\\Microsoft SDKs\\\\Windows\\\\v6.1\\\\lib\\\\x64')" != "AssertionError: Headers (('Content-Type', 'text/plain')) must be of type list: " ====================================================================== FAIL: test_validated_hello (test.test_wsgiref.IntegrationTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\test\test_wsgiref.py", line 145, in test_validated_hello self.check_hello(out, has_length=False) File "S:\buildbots\python.x64\trunk.nelson-win64\build\lib\test\test_wsgiref.py", line 134, in check_hello "\r\n" AssertionError: 'HTTP/1.0 500 Dude, this is whack!\r\nDate: Tue, 23 Sep 2008 11:57:27 GMT\r\nServer: WSGIServer/0.1 Python/2.6rc1+\r\nContent-Type: text/plain\r\nContent-Length: 59\r\n\r\nA server error occurred. Please contact the administrator.' != 'HTTP/1.0 200 OK\r\nServer: WSGIServer/0.1 Python/2.6rc1+\r\nContent-Type: text/plain\r\nDate: Mon, 05 Jun 2006 18:49:54 GMT\r\n\r\nHello, world!' sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 14:00:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 12:00:08 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 2.5 Message-ID: <20080923120021.4E6C41E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%202.5/builds/23 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: benjamin.peterson,gregory.p.smith,hirokazu.yamamoto BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 14:02:42 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 12:02:42 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080923120242.E69E81E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/263 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 15:17:31 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 13:17:31 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080923131731.D825C1E402E@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/594 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou,barry.warsaw,benjamin.peterson,georg.brandl,martin.v.loewis,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 15:25:39 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 13:25:39 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080923132539.6771D1E4040@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/559 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou,barry.warsaw,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Tue Sep 23 15:32:46 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 23 Sep 2008 15:32:46 +0200 (CEST) Subject: [Python-checkins] r66564 - python/trunk/Doc/reference/expressions.rst Message-ID: <20080923133246.885201E4006@bag.python.org> Author: benjamin.peterson Date: Tue Sep 23 15:32:46 2008 New Revision: 66564 Log: mention how to override boolean evaluation Modified: python/trunk/Doc/reference/expressions.rst Modified: python/trunk/Doc/reference/expressions.rst ============================================================================== --- python/trunk/Doc/reference/expressions.rst (original) +++ python/trunk/Doc/reference/expressions.rst Tue Sep 23 15:32:46 2008 @@ -1143,7 +1143,8 @@ control flow statements, the following values are interpreted as false: ``False``, ``None``, numeric zero of all types, and empty strings and containers (including strings, tuples, lists, dictionaries, sets and frozensets). All -other values are interpreted as true. +other values are interpreted as true. (See the :meth:`~object.__nonzero__` +special method for a way to change this.) .. index:: operator: not From buildbot at python.org Tue Sep 23 15:45:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 13:45:16 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923134517.16C951E401A@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/590 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,antoine.pitrou,barry.warsaw,benjamin.peterson,georg.brandl,martin.v.loewis,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 15:47:37 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 13:47:37 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080923134737.E5B681E4043@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/269 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: antoine.pitrou BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_lib2to3 ====================================================================== FAIL: test_comments (lib2to3.tests.test_fixers.Test_metaclass) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 3482, in test_comments self.check(b, a) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 46, in check tree = self._check(before, after) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 42, in _check self.failUnlessEqual(after, str(tree)) AssertionError: '\nclass X(metaclass=AppleMeta):\n # hi\n pass\n\n\n' != '\nclass X(metaclass=AppleMeta):\n # hi\n pass\r\n\n\n' ====================================================================== FAIL: test_meta (lib2to3.tests.test_fixers.Test_metaclass) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 3512, in test_meta self.check(b, a) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 46, in check tree = self._check(before, after) File "S:\buildbots\python\3.0.nelson-windows\build\lib\lib2to3\tests\test_fixers.py", line 42, in _check self.failUnlessEqual(after, str(tree)) AssertionError: 'class X(object, metaclass=Q): pass\n\n' != 'class X(object, metaclass=Q): pass\r\n\n' sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 16:26:25 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 14:26:25 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080923142625.AD0271E4006@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/599 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:06:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:06:21 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian trunk Message-ID: <20080923150621.A1D0A1E4006@bag.python.org> The Buildbot has detected a new failure of sparc Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%20trunk/builds/698 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: barry.warsaw,mark.hammond BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:48:43 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:48:43 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD 3.0 Message-ID: <20080923154843.8B8DA1E4006@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%203.0/builds/287 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:49:32 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:49:32 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923154932.B2CE71E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/593 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:50:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:50:16 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 3.0 Message-ID: <20080923155016.DA8DF1E4007@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%203.0/builds/1617 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 32 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:51:40 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:51:40 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 3.0 Message-ID: <20080923155140.C34881E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%203.0/builds/811 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl,hirokazu.yamamoto BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:51:47 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:51:47 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080923155147.5391F1E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/271 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,barry.warsaw,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis,robert.schuppenies BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 17:53:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 15:53:07 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923155307.C91C21E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/196 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Tue Sep 23 18:11:10 2008 From: python-checkins at python.org (hirokazu.yamamoto) Date: Tue, 23 Sep 2008 18:11:10 +0200 (CEST) Subject: [Python-checkins] r66566 - python/trunk/Modules/_fileio.c Message-ID: <20080923161110.304791E4006@bag.python.org> Author: hirokazu.yamamoto Date: Tue Sep 23 18:11:09 2008 New Revision: 66566 Log: Issue #3945: Fixed compile error on cygwin. (initializer element is not constant) Reviewed by Amaury Forgeot d'Arc. Modified: python/trunk/Modules/_fileio.c Modified: python/trunk/Modules/_fileio.c ============================================================================== --- python/trunk/Modules/_fileio.c (original) +++ python/trunk/Modules/_fileio.c Tue Sep 23 18:11:09 2008 @@ -831,7 +831,7 @@ }; PyTypeObject PyFileIO_Type = { - PyVarObject_HEAD_INIT(&PyType_Type, 0) + PyVarObject_HEAD_INIT(NULL, 0) "_FileIO", sizeof(PyFileIOObject), 0, From buildbot at python.org Tue Sep 23 18:18:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 16:18:33 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080923161920.19C851E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1133 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,barry.warsaw,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 18:24:38 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 16:24:38 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080923162438.B2B561E4006@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/598 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/test/test_robotparser.py", line 225, in testPythonOrg parser.read() File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/robotparser.py", line 56, in read f = urllib.request.urlopen(self.url) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 122, in urlopen return _opener.open(url, data, timeout) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 359, in open response = self._open(req, data) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 377, in _open '_open', req) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 337, in _call_chain result = func(*args) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 1082, in http_open return self.do_open(http.client.HTTPConnection, req) File "/home/pybot/buildarea/3.0.klose-debian-ia64/build/Lib/urllib/request.py", line 1071, in do_open raise URLError(err) urllib.error.URLError: 1 test failed: test_robotparser make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 18:48:24 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 16:48:24 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080923164825.0005E1E4012@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/410 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_calendar test_email make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 19:08:55 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 17:08:55 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080923170855.44C591E4006@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/412 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson,martin.v.loewis,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_mailbox test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 19:51:52 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 17:51:52 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080923175152.7E18E1E4007@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1685 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: barry.warsaw,benjamin.peterson,hirokazu.yamamoto,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 19:53:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 17:53:49 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923175350.091AE1E4007@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/595 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc,barry.warsaw,benjamin.peterson,georg.brandl,hirokazu.yamamoto,martin.v.loewis,robert.schuppenies BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 20:08:03 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 18:08:03 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu trunk Message-ID: <20080923180803.3BD351E4016@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%20trunk/builds/879 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: The web-page 'rebuild' button was pressed by '': Build Source Stamp: [branch trunk] HEAD Blamelist: BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 20:08:34 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 18:08:34 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD trunk Message-ID: <20080923180834.AB18E1E4016@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%20trunk/builds/282 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson,hirokazu.yamamoto BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Tue Sep 23 20:54:09 2008 From: python-checkins at python.org (jesus.cea) Date: Tue, 23 Sep 2008 20:54:09 +0200 (CEST) Subject: [Python-checkins] r66568 - in python/trunk: Lib/bsddb/test/test_basics.py Modules/_bsddb.c Modules/bsddb.h Message-ID: <20080923185409.586241E400D@bag.python.org> Author: jesus.cea Date: Tue Sep 23 20:54:08 2008 New Revision: 66568 Log: Bugfix for issue3885 and 'DB.verify()' crash Modified: python/trunk/Lib/bsddb/test/test_basics.py python/trunk/Modules/_bsddb.c python/trunk/Modules/bsddb.h Modified: python/trunk/Lib/bsddb/test/test_basics.py ============================================================================== --- python/trunk/Lib/bsddb/test/test_basics.py (original) +++ python/trunk/Lib/bsddb/test/test_basics.py Tue Sep 23 20:54:08 2008 @@ -573,6 +573,15 @@ #---------------------------------------- + def test07_verify(self): + # Verify bug solved in 4.7.3pre8 + self.d.close() + d = db.DB(self.env) + d.verify(self.filename) + + + #---------------------------------------- + #---------------------------------------------------------------------- @@ -602,13 +611,13 @@ #---------------------------------------- - def test07_EnvRemoveAndRename(self): + def test08_EnvRemoveAndRename(self): if not self.env: return if verbose: print '\n', '-=' * 30 - print "Running %s.test07_EnvRemoveAndRename..." % self.__class__.__name__ + print "Running %s.test08_EnvRemoveAndRename..." % self.__class__.__name__ # can't rename or remove an open DB self.d.close() @@ -619,7 +628,7 @@ # dbremove and dbrename are in 4.1 and later if db.version() < (4,1): - del test07_EnvRemoveAndRename + del test08_EnvRemoveAndRename #---------------------------------------- @@ -720,11 +729,11 @@ #---------------------------------------- - def test07_TxnTruncate(self): + def test08_TxnTruncate(self): d = self.d if verbose: print '\n', '-=' * 30 - print "Running %s.test07_TxnTruncate..." % self.__class__.__name__ + print "Running %s.test08_TxnTruncate..." % self.__class__.__name__ d.put("abcde", "ABCDE"); txn = self.env.txn_begin() @@ -737,7 +746,7 @@ #---------------------------------------- - def test08_TxnLateUse(self): + def test09_TxnLateUse(self): txn = self.env.txn_begin() txn.abort() try: @@ -771,11 +780,11 @@ dbtype = db.DB_BTREE dbsetflags = db.DB_RECNUM - def test07_RecnoInBTree(self): + def test08_RecnoInBTree(self): d = self.d if verbose: print '\n', '-=' * 30 - print "Running %s.test07_RecnoInBTree..." % self.__class__.__name__ + print "Running %s.test08_RecnoInBTree..." % self.__class__.__name__ rec = d.get(200) self.assertEqual(type(rec), type(())) @@ -805,11 +814,11 @@ class BasicDUPTestCase(BasicTestCase): dbsetflags = db.DB_DUP - def test08_DuplicateKeys(self): + def test09_DuplicateKeys(self): d = self.d if verbose: print '\n', '-=' * 30 - print "Running %s.test08_DuplicateKeys..." % \ + print "Running %s.test09_DuplicateKeys..." % \ self.__class__.__name__ d.put("dup0", "before") @@ -878,11 +887,11 @@ else: return db.DB_BTREE - def test09_MultiDB(self): + def test10_MultiDB(self): d1 = self.d if verbose: print '\n', '-=' * 30 - print "Running %s.test09_MultiDB..." % self.__class__.__name__ + print "Running %s.test10_MultiDB..." % self.__class__.__name__ d2 = db.DB(self.env) d2.open(self.filename, "second", self.dbtype, @@ -1014,9 +1023,20 @@ self.obj = db.DB() class CrashAndBurn(unittest.TestCase) : - def test01_OpenCrash(self) : - # See http://bugs.python.org/issue3307 - self.assertRaises(db.DBInvalidArgError, db.DB, None, 65535) + import sys + if sys.version_info[:3] < (2, 4, 0): + def assertTrue(self, expr, msg=None): + self.failUnless(expr,msg=msg) + + #def test01_OpenCrash(self) : + # # See http://bugs.python.org/issue3307 + # self.assertRaises(db.DBInvalidArgError, db.DB, None, 65535) + + def test02_DBEnv_dealloc(self): + # http://bugs.python.org/issue3885 + import gc + self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT) + gc.collect() #---------------------------------------------------------------------- @@ -1044,7 +1064,7 @@ suite.addTest(unittest.makeSuite(HashMultiDBTestCase)) suite.addTest(unittest.makeSuite(DBEnvPrivateObject)) suite.addTest(unittest.makeSuite(DBPrivateObject)) - #suite.addTest(unittest.makeSuite(CrashAndBurn)) + suite.addTest(unittest.makeSuite(CrashAndBurn)) return suite Modified: python/trunk/Modules/_bsddb.c ============================================================================== --- python/trunk/Modules/_bsddb.c (original) +++ python/trunk/Modules/_bsddb.c Tue Sep 23 20:54:08 2008 @@ -989,7 +989,7 @@ /* Forward declaration */ -static PyObject *DB_close_internal(DBObject* self, int flags); +static PyObject *DB_close_internal(DBObject* self, int flags, int do_not_close); static void DB_dealloc(DBObject* self) @@ -997,8 +997,15 @@ PyObject *dummy; if (self->db != NULL) { - dummy=DB_close_internal(self,0); - Py_XDECREF(dummy); + dummy=DB_close_internal(self, 0, 0); + /* + ** Raising exceptions while doing + ** garbage collection is a fatal error. + */ + if (dummy) + Py_DECREF(dummy); + else + PyErr_Clear(); } if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); @@ -1052,8 +1059,15 @@ PyObject *dummy; if (self->dbc != NULL) { - dummy=DBC_close_internal(self); - Py_XDECREF(dummy); + dummy=DBC_close_internal(self); + /* + ** Raising exceptions while doing + ** garbage collection is a fatal error. + */ + if (dummy) + Py_DECREF(dummy); + else + PyErr_Clear(); } if (self->in_weakreflist != NULL) { PyObject_ClearWeakRefs((PyObject *) self); @@ -1071,6 +1085,7 @@ if (self == NULL) return NULL; + self->db_env = NULL; self->closed = 1; self->flags = flags; self->moduleFlags.getReturnsNone = DEFAULT_GET_RETURNS_NONE; @@ -1107,8 +1122,15 @@ PyObject *dummy; if (self->db_env) { - dummy=DBEnv_close_internal(self,0); - Py_XDECREF(dummy); + dummy=DBEnv_close_internal(self, 0); + /* + ** Raising exceptions while doing + ** garbage collection is a fatal error. + */ + if (dummy) + Py_DECREF(dummy); + else + PyErr_Clear(); } Py_XDECREF(self->event_notifyCallback); @@ -1186,8 +1208,17 @@ if (self->txn) { int flag_prepare = self->flag_prepare; + dummy=DBTxn_abort_discard_internal(self,0); - Py_XDECREF(dummy); + /* + ** Raising exceptions while doing + ** garbage collection is a fatal error. + */ + if (dummy) + Py_DECREF(dummy); + else + PyErr_Clear(); + if (!flag_prepare) { PyErr_Warn(PyExc_RuntimeWarning, "DBTxn aborted in destructor. No prior commit() or abort()."); @@ -1280,7 +1311,14 @@ if (self->sequence != NULL) { dummy=DBSequence_close_internal(self,0,0); - Py_XDECREF(dummy); + /* + ** Raising exceptions while doing + ** garbage collection is a fatal error. + */ + if (dummy) + Py_DECREF(dummy); + else + PyErr_Clear(); } if (self->in_weakreflist != NULL) { @@ -1485,10 +1523,10 @@ static PyObject* -DB_close_internal(DBObject* self, int flags) +DB_close_internal(DBObject* self, int flags, int do_not_close) { PyObject *dummy; - int err; + int err = 0; if (self->db != NULL) { /* Can be NULL if db is not in an environment */ @@ -1511,10 +1549,20 @@ } #endif - MYDB_BEGIN_ALLOW_THREADS; - err = self->db->close(self->db, flags); - MYDB_END_ALLOW_THREADS; - self->db = NULL; + /* + ** "do_not_close" is used to dispose all related objects in the + ** tree, without actually releasing the "root" object. + ** This is done, for example, because function calls like + ** "DB.verify()" implicitly close the underlying handle. So + ** the handle doesn't need to be closed, but related objects + ** must be cleaned up. + */ + if (!do_not_close) { + MYDB_BEGIN_ALLOW_THREADS; + err = self->db->close(self->db, flags); + MYDB_END_ALLOW_THREADS; + self->db = NULL; + } RETURN_IF_ERR(); } RETURN_NONE(); @@ -1526,7 +1574,7 @@ int flags=0; if (!PyArg_ParseTuple(args,"|i:close", &flags)) return NULL; - return DB_close_internal(self,flags); + return DB_close_internal(self, flags, 0); } @@ -2146,7 +2194,7 @@ if (makeDBError(err)) { PyObject *dummy; - dummy=DB_close_internal(self,0); + dummy=DB_close_internal(self, 0, 0); Py_XDECREF(dummy); return NULL; } @@ -2840,21 +2888,24 @@ /* XXX(nnorwitz): it should probably be an exception if outFile can't be opened. */ - MYDB_BEGIN_ALLOW_THREADS; - err = self->db->verify(self->db, fileName, dbName, outFile, flags); - MYDB_END_ALLOW_THREADS; - if (outFile) - fclose(outFile); - { /* DB.verify acts as a DB handle destructor (like close) */ PyObject *error; - error=DB_close_internal(self,0); + error=DB_close_internal(self, 0, 1); if (error ) { return error; } } + MYDB_BEGIN_ALLOW_THREADS; + err = self->db->verify(self->db, fileName, dbName, outFile, flags); + MYDB_END_ALLOW_THREADS; + + self->db = NULL; /* Implicit close; related objects already released */ + + if (outFile) + fclose(outFile); + RETURN_IF_ERR(); RETURN_NONE(); } @@ -3978,7 +4029,7 @@ Py_XDECREF(dummy); } while(self->children_dbs) { - dummy=DB_close_internal(self->children_dbs,0); + dummy=DB_close_internal(self->children_dbs, 0, 0); Py_XDECREF(dummy); } } @@ -4003,7 +4054,7 @@ if (!PyArg_ParseTuple(args, "|i:close", &flags)) return NULL; - return DBEnv_close_internal(self,flags); + return DBEnv_close_internal(self, flags); } @@ -5949,7 +6000,7 @@ } #endif while (self->children_dbs) { - dummy=DB_close_internal(self->children_dbs,0); + dummy=DB_close_internal(self->children_dbs, 0, 0); Py_XDECREF(dummy); } @@ -6030,6 +6081,14 @@ self->txn=NULL; } + /* + ** "do_not_close" is used to dispose all related objects in the + ** tree, without actually releasing the "root" object. + ** This is done, for example, because function calls like + ** "DBSequence.remove()" implicitly close the underlying handle. So + ** the handle doesn't need to be closed, but related objects + ** must be cleaned up. + */ if (!do_not_close) { MYDB_BEGIN_ALLOW_THREADS err = self->sequence->close(self->sequence, flags); Modified: python/trunk/Modules/bsddb.h ============================================================================== --- python/trunk/Modules/bsddb.h (original) +++ python/trunk/Modules/bsddb.h Tue Sep 23 20:54:08 2008 @@ -105,7 +105,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.7.3pre5" +#define PY_BSDDB_VERSION "4.7.3pre9" /* Python object definitions */ From buildbot at python.org Tue Sep 23 21:44:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 19:44:16 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080923194416.666C11E4006@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/199 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 23 22:43:10 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 23 Sep 2008 22:43:10 +0200 (CEST) Subject: [Python-checkins] r66569 - python/trunk/Lib/test/test_atexit.py Message-ID: <20080923204310.1B52C1E4006@bag.python.org> Author: benjamin.peterson Date: Tue Sep 23 22:43:09 2008 New Revision: 66569 Log: backport the atexit test for r66563 Modified: python/trunk/Lib/test/test_atexit.py Modified: python/trunk/Lib/test/test_atexit.py ============================================================================== --- python/trunk/Lib/test/test_atexit.py (original) +++ python/trunk/Lib/test/test_atexit.py Tue Sep 23 22:43:09 2008 @@ -22,6 +22,19 @@ atexit._exithandlers = save_handlers self.assertEqual(s.getvalue(), "h4 (4,) {'kw': 'abc'}\nh4 () {}\nh1\n") + def test_badargs(self): + s = StringIO.StringIO() + sys.stdout = sys.stderr = s + save_handlers = atexit._exithandlers + atexit._exithandlers = [] + try: + atexit.register(lambda: 1, 0, 0, (x for x in (1,2)), 0, 0) + self.assertRaises(TypeError, atexit._run_exitfuncs) + finally: + sys.stdout = sys.__stdout__ + sys.stderr = sys.__stderr__ + atexit._exithandlers = save_handlers + def test_order(self): # be sure handlers are executed in reverse order s = StringIO.StringIO() From ncoghlan at gmail.com Tue Sep 23 22:43:25 2008 From: ncoghlan at gmail.com (Nick Coghlan) Date: Wed, 24 Sep 2008 06:43:25 +1000 Subject: [Python-checkins] r66568 - in python/trunk: Lib/bsddb/test/test_basics.py Modules/_bsddb.c Modules/bsddb.h In-Reply-To: <20080923185409.586241E400D@bag.python.org> References: <20080923185409.586241E400D@bag.python.org> Message-ID: <48D954ED.7000207@gmail.com> jesus.cea wrote: > Author: jesus.cea > Date: Tue Sep 23 20:54:08 2008 > New Revision: 66568 > > Log: > Bugfix for issue3885 and 'DB.verify()' crash I reviewed this if anyone wants to adjust the log entry. Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org From python-checkins at python.org Tue Sep 23 23:21:33 2008 From: python-checkins at python.org (armin.ronacher) Date: Tue, 23 Sep 2008 23:21:33 +0200 (CEST) Subject: [Python-checkins] r66571 - in doctools/trunk/sphinx: builder.py search.py static/searchtools.js Message-ID: <20080923212133.5F9741E4010@bag.python.org> Author: armin.ronacher Date: Tue Sep 23 23:21:32 2008 New Revision: 66571 Log: Improved search slightly by adding keyword based lookup Modified: doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/search.py doctools/trunk/sphinx/static/searchtools.js Modified: doctools/trunk/sphinx/builder.py ============================================================================== --- doctools/trunk/sphinx/builder.py (original) +++ doctools/trunk/sphinx/builder.py Tue Sep 23 23:21:32 2008 @@ -386,7 +386,7 @@ def prepare_writing(self, docnames): from sphinx.search import IndexBuilder - self.indexer = IndexBuilder() + self.indexer = IndexBuilder(self.env) self.load_indexer(docnames) self.docwriter = HTMLWriter(self) self.docsettings = OptionParser( Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Tue Sep 23 23:21:32 2008 @@ -87,7 +87,8 @@ 'pickle': pickle } - def __init__(self): + def __init__(self, env): + self.env = env self._stemmer = Stemmer() # filename -> title self._titles = {} @@ -110,19 +111,28 @@ format = self.formats[format] format.dump(self.freeze(), stream) + def get_keyword_map(self): + """Return a dict of all keywords.""" + rv = {} + for kw, (ref, _, _, _) in self.env.modules.iteritems(): + rv[kw] = (ref, 'module', 'module-' + kw) + for kw, (ref, ref_type) in self.env.descrefs.iteritems(): + rv[kw] = (ref, ref_type, kw) + return rv + def freeze(self): - """ - Create a useable data structure. You can pass this output - to the `SearchFrontend` to search the index. - """ - fns, titles = self._titles.keys(), self._titles.values() - fn2index = dict((f, i) for (i, f) in enumerate(fns)) - return [ - fns, - titles, - dict((k, [fn2index[fn] for fn in v]) - for (k, v) in self._mapping.iteritems()), - ] + """Create a useable data structure for serializing.""" + filenames = self._titles.keys() + titles = self._titles.values() + fn2index = dict((f, i) for (i, f) in enumerate(filenames)) + return dict( + filenames=filenames, + titles=titles, + terms=dict((k, [fn2index[fn] for fn in v]) + for (k, v) in self._mapping.iteritems()), + keywords=dict((k, (fn2index[v[0]],) + v[1:]) for k, v in + self.get_keyword_map().iteritems()) + ) def prune(self, filenames): """Remove data for all filenames not in the list.""" @@ -147,45 +157,6 @@ for word in word_re.findall(title): add_term(word) - add_term(word, 'T') for word in visitor.found_words: add_term(word) - - -class SearchFrontend(object): - """ - This class acts as a frontend for the search index. It can search - a searchindex as provided by `IndexBuilder`. - """ - - def __init__(self, index): - self.filenames, self.titles, self.words = index - self._stemmer = Stemmer() - - def query(self, required, excluded): - file_map = {} - for word in required: - if word not in self.words: - break - for fid in self.words[word]: - file_map.setdefault(fid, set()).add(word) - - return sorted(((self.filenames[fid], self.titles[fid]) - for fid, words in file_map.iteritems() - if len(words) == len(required) and not - any(fid in self.words.get(word, ()) for word in excluded) - ), key=lambda x: x[1].lower()) - - def search(self, searchstring): - required = set() - excluded = set() - for word in searchstring.split(): - if word.startswith('-'): - storage = excluded - word = word[1:] - else: - storage = required - storage.add(self._stemmer.stem(word)) - - return self.query(required, excluded) Modified: doctools/trunk/sphinx/static/searchtools.js ============================================================================== --- doctools/trunk/sphinx/static/searchtools.js (original) +++ doctools/trunk/sphinx/static/searchtools.js Tue Sep 23 23:21:32 2008 @@ -294,6 +294,7 @@ var excluded = []; var hlwords = []; var tmp = query.split(/\s+/); + var keyword = (tmp.length == 1) ? tmp[0] : null; for (var i = 0; i < tmp.length; i++) { // stem the word var word = stemmer.stemWord(tmp[i]).toLowerCase(); @@ -317,13 +318,22 @@ console.info('excluded: ', excluded); // prepare search - var filenames = this._index[0]; - var titles = this._index[1]; - var words = this._index[2]; + var filenames = this._index.filenames; + var titles = this._index.titles; + var words = this._index.terms; var fileMap = {}; var files = null; + var results = []; + var regularResults = []; $('#search-progress').empty(); + // lookup the keyword + if (keyword != null) { + var match = this._index.keywords[keyword]; + if (match) + results.push([filenames[match[0]], titles[match[0]], match[2]]); + } + // perform the search on the required words for (var i = 0; i < searchwords.length; i++) { var word = searchwords[i]; @@ -342,7 +352,6 @@ // now check if the files are in the correct // areas and if the don't contain excluded words - var results = []; for (var file in fileMap) { var valid = true; @@ -362,20 +371,23 @@ // if we have still a valid result we can add it // to the result list if (valid) - results.push([filenames[file], titles[file]]); + results.push([filenames[file], titles[file], null]); } // delete unused variables in order to not waste // memory until list is retrieved completely delete filenames, titles, words; - // now sort the results by title - results.sort(function(a, b) { + // now sort the regular results by title + regularResults.sort(function(a, b) { var left = a[1].toLowerCase(); var right = b[1].toLowerCase(); return (left > right) ? -1 : ((left < right) ? 1 : 0); }); + // combine both + results = results.concat(regularResults); + // print the results var resultCount = results.length; function displayNextItem() { @@ -386,7 +398,8 @@ listItem.append($('').attr( 'href', item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + - highlightstring).html(item[1])); + highlightstring + + (item[2] ? '#' + item[2] : '')).html(item[1])); $.get('_sources/' + item[0] + '.txt', function(data) { listItem.append($.makeSearchSummary(data, searchwords, hlwords)); Search.output.append(listItem); From python-checkins at python.org Tue Sep 23 23:27:12 2008 From: python-checkins at python.org (georg.brandl) Date: Tue, 23 Sep 2008 23:27:12 +0200 (CEST) Subject: [Python-checkins] r66572 - doctools/trunk/doc/markup/code.rst Message-ID: <20080923212712.D3C221E4006@bag.python.org> Author: georg.brandl Date: Tue Sep 23 23:27:12 2008 New Revision: 66572 Log: Commit missing doc change. Modified: doctools/trunk/doc/markup/code.rst Modified: doctools/trunk/doc/markup/code.rst ============================================================================== --- doctools/trunk/doc/markup/code.rst (original) +++ doctools/trunk/doc/markup/code.rst Tue Sep 23 23:27:12 2008 @@ -53,6 +53,8 @@ * ``none`` (no highlighting) * ``python`` (the default when :confval:`highlight_language` isn't set) + * ``guess`` (let Pygments guess the lexer based on contents, only works with + certain well-recognizable languages) * ``rest`` * ``c`` * ... and any other lexer name that Pygments supports. From buildbot at python.org Tue Sep 23 23:29:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 21:29:16 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080923212916.C797E1E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1138 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 23 23:43:28 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 21:43:28 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian trunk Message-ID: <20080923214328.F10E01E402F@bag.python.org> The Buildbot has detected a new failure of sparc Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%20trunk/builds/702 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesus.cea BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Bus error sincerely, -The Buildbot From buildbot at python.org Wed Sep 24 00:04:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 22:04:53 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080923220453.3E97A1E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/598 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Wed Sep 24 00:31:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 22:31:21 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080923223121.96B2D1E4006@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/644 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Wed Sep 24 01:23:54 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 23:23:54 +0000 Subject: [Python-checkins] buildbot failure in x86 OpenBSD 3.0 Message-ID: <20080923232354.CB6D11E4006@bag.python.org> The Buildbot has detected a new failure of x86 OpenBSD 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20OpenBSD%203.0/builds/292 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: cortesi Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed compile sincerely, -The Buildbot From buildbot at python.org Wed Sep 24 01:24:35 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 23 Sep 2008 23:24:35 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo 3.0 Message-ID: <20080923232435.513B51E4006@bag.python.org> The Buildbot has detected a new failure of x86 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%203.0/builds/1622 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Unknown signal 32 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 24 10:39:33 2008 From: python-checkins at python.org (armin.ronacher) Date: Wed, 24 Sep 2008 10:39:33 +0200 (CEST) Subject: [Python-checkins] r66573 - in doctools/trunk/sphinx: builder.py search.py static/searchtools.js Message-ID: <20080924083933.E0CA91E4003@bag.python.org> Author: armin.ronacher Date: Wed Sep 24 10:39:33 2008 New Revision: 66573 Log: Some tiny search fixes. Modified: doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/search.py doctools/trunk/sphinx/static/searchtools.js Modified: doctools/trunk/sphinx/builder.py ============================================================================== --- doctools/trunk/sphinx/builder.py (original) +++ doctools/trunk/sphinx/builder.py Wed Sep 24 10:39:33 2008 @@ -704,7 +704,7 @@ self.indexer.load(f, self.indexer_format) finally: f.close() - except (IOError, OSError, NotImplementedError): + except (IOError, OSError, NotImplementedError, ValueError): # we catch NotImplementedError here because if no simplejson # is installed the searchindex can't be loaded pass Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 10:39:33 2008 @@ -100,10 +100,13 @@ if isinstance(format, basestring): format = self.formats[format] frozen = format.load(stream) - index2fn = frozen[0] - self._titles = dict(zip(frozen[0], frozen[1])) + # if an old index is present, we treat it as not existing. + if not isinstance(frozen, dict): + raise ValueError('old format') + index2fn = frozen['filenames'] + self._titles = dict(zip(frozen['filenames'], frozen['titles'])) self._mapping = dict((k, set(index2fn[i] for i in v)) - for (k, v) in frozen[2].iteritems()) + for (k, v) in frozen['terms'].iteritems()) def dump(self, stream, format): """Dump the frozen index to a stream.""" Modified: doctools/trunk/sphinx/static/searchtools.js ============================================================================== --- doctools/trunk/sphinx/static/searchtools.js (original) +++ doctools/trunk/sphinx/static/searchtools.js Wed Sep 24 10:39:33 2008 @@ -371,7 +371,7 @@ // if we have still a valid result we can add it // to the result list if (valid) - results.push([filenames[file], titles[file], null]); + regularResults.push([filenames[file], titles[file], null]); } // delete unused variables in order to not waste @@ -386,7 +386,7 @@ }); // combine both - results = results.concat(regularResults); + results = regularResults.concat(results); // print the results var resultCount = results.length; From python-checkins at python.org Wed Sep 24 10:46:33 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 10:46:33 +0200 (CEST) Subject: [Python-checkins] r66574 - in doctools/trunk/sphinx: search.py static/searchtools.js Message-ID: <20080924084633.851171E4003@bag.python.org> Author: georg.brandl Date: Wed Sep 24 10:46:33 2008 New Revision: 66574 Log: * Search for partial keyword matches and be case insensitive. * Show keyword results before regular ones. * Show full name, type of keyword and title of containing doc. Modified: doctools/trunk/sphinx/search.py doctools/trunk/sphinx/static/searchtools.js Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 10:46:33 2008 @@ -33,7 +33,8 @@ SUFFIX = ')' def dumps(self, data): - return self.PREFIX + json.dumps(data) + self.SUFFIX + return self.PREFIX + json.dumps(data, separators=(',', ':')) \ + + self.SUFFIX def loads(self, s): data = s[len(self.PREFIX):-len(self.SUFFIX)] @@ -94,6 +95,8 @@ self._titles = {} # stemmed word -> set(filenames) self._mapping = {} + # desctypes -> index + self._desctypes = {'module': 0} def load(self, stream, format): """Reconstruct from frozen data.""" @@ -104,9 +107,10 @@ if not isinstance(frozen, dict): raise ValueError('old format') index2fn = frozen['filenames'] - self._titles = dict(zip(frozen['filenames'], frozen['titles'])) + self._titles = dict(zip(index2fn, frozen['titles'])) self._mapping = dict((k, set(index2fn[i] for i in v)) for (k, v) in frozen['terms'].iteritems()) + # no need to load keywords/desctypes def dump(self, stream, format): """Dump the frozen index to a stream.""" @@ -117,14 +121,20 @@ def get_keyword_map(self): """Return a dict of all keywords.""" rv = {} + dt = self._desctypes for kw, (ref, _, _, _) in self.env.modules.iteritems(): - rv[kw] = (ref, 'module', 'module-' + kw) + rv[kw] = (ref, 0, 'module-' + kw) for kw, (ref, ref_type) in self.env.descrefs.iteritems(): - rv[kw] = (ref, ref_type, kw) + try: + i = dt[ref_type] + except KeyError: + i = len(dt) + dt[ref_type] = i + rv[kw] = (ref, i, kw) return rv def freeze(self): - """Create a useable data structure for serializing.""" + """Create a usable data structure for serializing.""" filenames = self._titles.keys() titles = self._titles.values() fn2index = dict((f, i) for (i, f) in enumerate(filenames)) @@ -134,7 +144,8 @@ terms=dict((k, [fn2index[fn] for fn in v]) for (k, v) in self._mapping.iteritems()), keywords=dict((k, (fn2index[v[0]],) + v[1:]) for k, v in - self.get_keyword_map().iteritems()) + self.get_keyword_map().iteritems()), + desctypes=dict((v, k) for (k, v) in self._desctypes.items()), ) def prune(self, filenames): Modified: doctools/trunk/sphinx/static/searchtools.js ============================================================================== --- doctools/trunk/sphinx/static/searchtools.js (original) +++ doctools/trunk/sphinx/static/searchtools.js Wed Sep 24 10:46:33 2008 @@ -294,7 +294,7 @@ var excluded = []; var hlwords = []; var tmp = query.split(/\s+/); - var keyword = (tmp.length == 1) ? tmp[0] : null; + var keyword = (tmp.length == 1) ? tmp[0].toLowerCase() : null; for (var i = 0; i < tmp.length; i++) { // stem the word var word = stemmer.stemWord(tmp[i]).toLowerCase(); @@ -321,19 +321,31 @@ var filenames = this._index.filenames; var titles = this._index.titles; var words = this._index.terms; + var keywords = this._index.keywords; + var desctypes = this._index.desctypes; var fileMap = {}; var files = null; - var results = []; + var keywordResults = []; var regularResults = []; $('#search-progress').empty(); // lookup the keyword if (keyword != null) { - var match = this._index.keywords[keyword]; - if (match) - results.push([filenames[match[0]], titles[match[0]], match[2]]); + for (var kw in keywords) { + if (kw.toLowerCase().indexOf(keyword, kw.lastIndexOf('.')) > -1) { + match = keywords[kw]; + descr = desctypes[match[1]] + _(', in ') + titles[match[0]]; + keywordResults.push([filenames[match[0]], kw, match[2], descr]); + } + } } + // sort descending by keyword + keywordResults.sort(function(a, b) { + return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); + }); + + // perform the search on the required words for (var i = 0; i < searchwords.length; i++) { var word = searchwords[i]; @@ -350,8 +362,7 @@ } } - // now check if the files are in the correct - // areas and if the don't contain excluded words + // now check if the files don't contain excluded words for (var file in fileMap) { var valid = true; @@ -371,14 +382,14 @@ // if we have still a valid result we can add it // to the result list if (valid) - regularResults.push([filenames[file], titles[file], null]); + regularResults.push([filenames[file], titles[file], null, null]); } // delete unused variables in order to not waste // memory until list is retrieved completely delete filenames, titles, words; - // now sort the regular results by title + // now sort the regular results descending by title regularResults.sort(function(a, b) { var left = a[1].toLowerCase(); var right = b[1].toLowerCase(); @@ -386,7 +397,7 @@ }); // combine both - results = regularResults.concat(results); + var results = regularResults.concat(keywordResults); // print the results var resultCount = results.length; @@ -400,13 +411,21 @@ item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + highlightstring + (item[2] ? '#' + item[2] : '')).html(item[1])); - $.get('_sources/' + item[0] + '.txt', function(data) { - listItem.append($.makeSearchSummary(data, searchwords, hlwords)); + if (item[3]) { + listItem.append($(' (' + item[3] + ')')); Search.output.append(listItem); - listItem.slideDown(10, function() { + listItem.slideDown(5, function() { displayNextItem(); }); - }); + } else { + $.get('_sources/' + item[0] + '.txt', function(data) { + listItem.append($.makeSearchSummary(data, searchwords, hlwords)); + Search.output.append(listItem); + listItem.slideDown(5, function() { + displayNextItem(); + }); + }); + } } // search finished, update title and status message else { From python-checkins at python.org Wed Sep 24 10:53:17 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 10:53:17 +0200 (CEST) Subject: [Python-checkins] r66575 - in doctools/trunk/sphinx: search.py static/searchtools.js Message-ID: <20080924085317.718AD1E4003@bag.python.org> Author: georg.brandl Date: Wed Sep 24 10:53:17 2008 New Revision: 66575 Log: Compress the index more, by not storing the label name for keywords. Modified: doctools/trunk/sphinx/search.py doctools/trunk/sphinx/static/searchtools.js Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 10:53:17 2008 @@ -123,14 +123,14 @@ rv = {} dt = self._desctypes for kw, (ref, _, _, _) in self.env.modules.iteritems(): - rv[kw] = (ref, 0, 'module-' + kw) + rv[kw] = (ref, 0) for kw, (ref, ref_type) in self.env.descrefs.iteritems(): try: i = dt[ref_type] except KeyError: i = len(dt) dt[ref_type] = i - rv[kw] = (ref, i, kw) + rv[kw] = (ref, i) return rv def freeze(self): Modified: doctools/trunk/sphinx/static/searchtools.js ============================================================================== --- doctools/trunk/sphinx/static/searchtools.js (original) +++ doctools/trunk/sphinx/static/searchtools.js Wed Sep 24 10:53:17 2008 @@ -329,13 +329,14 @@ var regularResults = []; $('#search-progress').empty(); - // lookup the keyword + // lookup as keyword if (keyword != null) { for (var kw in keywords) { if (kw.toLowerCase().indexOf(keyword, kw.lastIndexOf('.')) > -1) { match = keywords[kw]; descr = desctypes[match[1]] + _(', in ') + titles[match[0]]; - keywordResults.push([filenames[match[0]], kw, match[2], descr]); + anchor = '#' + (match[1] == 0 ? 'module-' + kw : kw); + keywordResults.push([filenames[match[0]], kw, anchor, descr]); } } } @@ -382,7 +383,7 @@ // if we have still a valid result we can add it // to the result list if (valid) - regularResults.push([filenames[file], titles[file], null, null]); + regularResults.push([filenames[file], titles[file], '', null]); } // delete unused variables in order to not waste @@ -409,8 +410,7 @@ listItem.append($('').attr( 'href', item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + - highlightstring + - (item[2] ? '#' + item[2] : '')).html(item[1])); + highlightstring + item[2]).html(item[1])); if (item[3]) { listItem.append($(' (' + item[3] + ')')); Search.output.append(listItem); From python-checkins at python.org Wed Sep 24 11:06:32 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 11:06:32 +0200 (CEST) Subject: [Python-checkins] r66576 - doctools/trunk/sphinx/search.py Message-ID: <20080924090632.3461C1E4003@bag.python.org> Author: georg.brandl Date: Wed Sep 24 11:06:31 2008 New Revision: 66576 Log: Add stopword list. Modified: doctools/trunk/sphinx/search.py Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 11:06:31 2008 @@ -20,6 +20,17 @@ word_re = re.compile(r'\w+(?u)') +stopwords = set(""" +a and are as at +be but by +for +if in into is it +near no not +of on or +such +that the their then there these they this to +was will with +""".split()) class _JavaScriptIndex(object): """ @@ -165,8 +176,10 @@ visitor = WordCollector(doctree) doctree.walk(visitor) - def add_term(word, prefix=''): - word = self._stemmer.stem(word) + def add_term(word, prefix='', stem=self._stemmer.stem): + word = stem(word) + if len(word) < 3 or word in stopwords or word.isdigit(): + return self._mapping.setdefault(prefix + word, set()).add(filename) for word in word_re.findall(title): From python-checkins at python.org Wed Sep 24 11:31:46 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 11:31:46 +0200 (CEST) Subject: [Python-checkins] r66578 - in doctools/trunk/sphinx: search.py static/searchtools.js Message-ID: <20080924093146.7F2CA1E4003@bag.python.org> Author: georg.brandl Date: Wed Sep 24 11:31:46 2008 New Revision: 66578 Log: More compression: group objects by prefix. Modified: doctools/trunk/sphinx/search.py doctools/trunk/sphinx/static/searchtools.js Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 11:31:46 2008 @@ -15,7 +15,7 @@ from docutils.nodes import Text, NodeVisitor from sphinx.util.stemmer import PorterStemmer -from sphinx.util import json +from sphinx.util import json, rpartition word_re = re.compile(r'\w+(?u)') @@ -107,7 +107,7 @@ # stemmed word -> set(filenames) self._mapping = {} # desctypes -> index - self._desctypes = {'module': 0} + self._desctypes = {} def load(self, stream, format): """Reconstruct from frozen data.""" @@ -129,19 +129,24 @@ format = self.formats[format] format.dump(self.freeze(), stream) - def get_keyword_map(self): - """Return a dict of all keywords.""" + def get_modules(self, fn2index): + rv = {} + for name, (doc, _, _, _) in self.env.modules.iteritems(): + rv[name] = fn2index[doc] + return rv + + def get_descrefs(self, fn2index): rv = {} dt = self._desctypes - for kw, (ref, _, _, _) in self.env.modules.iteritems(): - rv[kw] = (ref, 0) - for kw, (ref, ref_type) in self.env.descrefs.iteritems(): + for fullname, (doc, desctype) in self.env.descrefs.iteritems(): + prefix, name = rpartition(fullname, '.') + pdict = rv.setdefault(prefix, {}) try: - i = dt[ref_type] + i = dt[desctype] except KeyError: i = len(dt) - dt[ref_type] = i - rv[kw] = (ref, i) + dt[desctype] = i + pdict[name] = (fn2index[doc], i) return rv def freeze(self): @@ -154,8 +159,8 @@ titles=titles, terms=dict((k, [fn2index[fn] for fn in v]) for (k, v) in self._mapping.iteritems()), - keywords=dict((k, (fn2index[v[0]],) + v[1:]) for k, v in - self.get_keyword_map().iteritems()), + descrefs=self.get_descrefs(fn2index), + modules=self.get_modules(fn2index), desctypes=dict((v, k) for (k, v) in self._desctypes.items()), ) Modified: doctools/trunk/sphinx/static/searchtools.js ============================================================================== --- doctools/trunk/sphinx/static/searchtools.js (original) +++ doctools/trunk/sphinx/static/searchtools.js Wed Sep 24 11:31:46 2008 @@ -294,7 +294,7 @@ var excluded = []; var hlwords = []; var tmp = query.split(/\s+/); - var keyword = (tmp.length == 1) ? tmp[0].toLowerCase() : null; + var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null; for (var i = 0; i < tmp.length; i++) { // stem the word var word = stemmer.stemWord(tmp[i]).toLowerCase(); @@ -321,28 +321,38 @@ var filenames = this._index.filenames; var titles = this._index.titles; var words = this._index.terms; - var keywords = this._index.keywords; + var descrefs = this._index.descrefs; + var modules = this._index.modules; var desctypes = this._index.desctypes; var fileMap = {}; var files = null; - var keywordResults = []; + var objectResults = []; var regularResults = []; $('#search-progress').empty(); - // lookup as keyword - if (keyword != null) { - for (var kw in keywords) { - if (kw.toLowerCase().indexOf(keyword, kw.lastIndexOf('.')) > -1) { - match = keywords[kw]; - descr = desctypes[match[1]] + _(', in ') + titles[match[0]]; - anchor = '#' + (match[1] == 0 ? 'module-' + kw : kw); - keywordResults.push([filenames[match[0]], kw, anchor, descr]); + // lookup as object + if (object != null) { + for (var module in modules) { + if (module.indexOf(object) > -1) { + fn = modules[module]; + descr = _('module, in ') + titles[fn]; + objectResults.push([filenames[fn], module, '#module-'+module, descr]); + } + } + for (var prefix in descrefs) { + for (var name in descrefs[prefix]) { + if (name.toLowerCase().indexOf(object) > -1) { + match = descrefs[prefix][name]; + fullname = prefix + '.' + name; + descr = desctypes[match[1]] + _(', in ') + titles[match[0]]; + objectResults.push([filenames[match[0]], fullname, '#'+fullname, descr]); + } } } } - // sort descending by keyword - keywordResults.sort(function(a, b) { + // sort results descending + objectResults.sort(function(a, b) { return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); }); @@ -398,7 +408,7 @@ }); // combine both - var results = regularResults.concat(keywordResults); + var results = regularResults.concat(objectResults); // print the results var resultCount = results.length; From python-checkins at python.org Wed Sep 24 11:33:21 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 11:33:21 +0200 (CEST) Subject: [Python-checkins] r66579 - doctools/trunk/CHANGES Message-ID: <20080924093321.C4E6E1E4003@bag.python.org> Author: georg.brandl Date: Wed Sep 24 11:33:21 2008 New Revision: 66579 Log: Add changelog entry about search change. Modified: doctools/trunk/CHANGES Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 11:33:21 2008 @@ -4,6 +4,9 @@ New features added ------------------ +* The JavaScript search now searches for objects before searching + in the full text. + * The new extensions ``sphinx.ext.jsmath`` and ``sphinx.ext.pngmath`` provide math support for both HTML and LaTeX builders. From python-checkins at python.org Wed Sep 24 11:47:55 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 11:47:55 +0200 (CEST) Subject: [Python-checkins] r66580 - python/trunk/Doc/library/json.rst Message-ID: <20080924094755.C07901E4011@bag.python.org> Author: georg.brandl Date: Wed Sep 24 11:47:55 2008 New Revision: 66580 Log: Indentation normalization. Modified: python/trunk/Doc/library/json.rst Modified: python/trunk/Doc/library/json.rst ============================================================================== --- python/trunk/Doc/library/json.rst (original) +++ python/trunk/Doc/library/json.rst Wed Sep 24 11:47:55 2008 @@ -371,9 +371,9 @@ def default(self, o): try: - iterable = iter(o) + iterable = iter(o) except TypeError: - pass + pass else: return list(iterable) return JSONEncoder.default(self, o) From python-checkins at python.org Wed Sep 24 13:15:55 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 13:15:55 +0200 (CEST) Subject: [Python-checkins] r66581 - doctools/trunk/sphinx/static/jquery.js Message-ID: <20080924111555.B306D1E4011@bag.python.org> Author: georg.brandl Date: Wed Sep 24 13:15:55 2008 New Revision: 66581 Log: Update jQuery. Modified: doctools/trunk/sphinx/static/jquery.js Modified: doctools/trunk/sphinx/static/jquery.js ============================================================================== --- doctools/trunk/sphinx/static/jquery.js (original) +++ doctools/trunk/sphinx/static/jquery.js Wed Sep 24 13:15:55 2008 @@ -1,32 +1,32 @@ /* - * jQuery 1.2.3 - New Wave Javascript + * jQuery 1.2.6 - New Wave Javascript * * Copyright (c) 2008 John Resig (jquery.com) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * - * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $ - * $Rev: 4663 $ + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ */ -(function(){if(window.jQuery)var _jQuery=window.jQuery;var jQuery=window.jQuery=function(selector,context){return new jQuery.prototype.init(selector,context);};if(window.$)var _$=window.$;window.$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;var isSimple=/^.[^:#\[\.]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem)if(elem.id!=match[3])return jQuery().find(selector);else{this[0]=elem;this.length=1;return this;}else -selector=[];}}else -return new jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return new jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(selector.constructor==Array&&selector||(selector.jquery||selector.length&&selector!=window&&!selector.nodeType&&selector[0]!=undefined&&selector[0].nodeType)&&jQuery.makeArray(selector)||[selector]);},jquery:"1.2.3",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;this.each(function(i){if(this==elem)ret=i;});return ret;},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value==undefined)return this.length&&jQuery[type||"attr"](this[0],name)||undefined;else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else -selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return!selector?this:this.pushStack(jQuery.merge(this.get(),selector.constructor==String?jQuery(selector).get():selector.length!=undefined&&(!selector.nodeName||jQuery.nodeName(selector,"form"))?selector:[selector]));},is:function(selector){return selector?jQuery.multiFilter(selector,this).length>0:false;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=value.constructor==Array?value:[value];jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else -this.value=value;});},html:function(value){return value==undefined?(this.length?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value==null){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data==undefined&&this.length)data=jQuery.data(this[0],key);return data==null&&parts[1]?this.data(parts[0]):data;}else -return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem);}else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.prototype.init.prototype=jQuery.prototype;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else -jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==1){target=this;i=0;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else -jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret;function color(elem){if(!jQuery.browser.safari)return false;var ret=document.defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(elem.style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=elem.style.outline;elem.style.outline="0 solid black";elem.style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&elem.style&&elem.style[name])ret=elem.style[name];else if(document.defaultView&&document.defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getComputedStyle&&!color(elem))ret=getComputedStyle.getPropertyValue(name);else{var swap=[],stack=[];for(var a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(var i=0;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
      "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
      ","
      "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else -ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var fix=jQuery.isXMLDoc(elem)?{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(fix[name]){if(value!=undefined)elem[fix[name]]=value;return elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")return jQuery.attr(elem.style,"cssText",value);else if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&&(name=="action"||name=="method"))return elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!=undefined){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem.setAttribute(name,""+value);}if(jQuery.browser.msie&&/href|src/.test(name)&&!jQuery.isXMLDoc(elem))return elem.getAttribute(name,2);return elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie){if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100).toString():"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(value!=undefined)elem[name]=value;return elem[name];}},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(typeof array!="array")for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[];var cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&(!elem||n!=elem))r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval!=undefined)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=function(){return fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){var val;if(typeof jQuery=="undefined"||jQuery.event.triggered)return val;val=jQuery.event.handle.apply(arguments.callee.elem,arguments);return val;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else -for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data||[]);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event)data.unshift(this.fix({type:type,target:elem}));data[0].type=type;if(exclusive)data[0].exclusive=true;if(jQuery.isFunction(jQuery.data(elem,"handle")))val=jQuery.data(elem,"handle").apply(elem,data);if(!fn&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val;event=jQuery.event.fix(event||window.event||{});var parts=event.type.split(".");event.type=parts[0];var handlers=jQuery.data(this,"events")&&jQuery.data(this,"events")[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(var j in handlers){var handler=handlers[j];args[0].handler=handler;args[0].data=handler.data;if(!parts[1]&&!event.exclusive||handler.type==parts[1]){var ret=handler.apply(this,args);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}if(jQuery.browser.msie)event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return val;},fix:function(event){var originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=originalEvent.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){return this.each(function(){jQuery.event.add(this,type,function(event){jQuery(this).unbind(event);return(fn||data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){if(this[0])return jQuery.event.trigger(type,data,this[0],false,fn);return undefined;},toggle:function(){var args=arguments;return this.click(function(event){this.lastToggle=0==this.lastToggle?1:0;event.preventDefault();return args[this.lastToggle].apply(this,arguments)||false;});},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else -jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.apply(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
      ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=(new Date).getTime();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){var jsonp,jsre=/=\?(&|$)/g,status,data;s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(s.type.toLowerCase()=="get"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&s.type.toLowerCase()=="get"){var ts=(new Date()).getTime();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&s.type.toLowerCase()=="get"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");if((!s.url.indexOf("http")||!s.url.indexOf("//"))&&s.dataType=="script"&&s.type.toLowerCase()=="get"){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xml=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.data)xml.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xml.setRequestHeader("X-Requested-With","XMLHttpRequest");xml.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend)s.beforeSend(xml);if(s.global)jQuery.event.trigger("ajaxSend",[xml,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xml)&&"error"||s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xml,s.dataType);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else -jQuery.handleError(s,xml,status);complete();if(s.async)xml=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xml){xml.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xml.send(s.data);}catch(e){jQuery.handleError(s,xml,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xml,s]);}function complete(){if(s.complete)s.complete(xml,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xml,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xml;},handleError:function(s,xml,status,e){if(s.error)s.error(xml,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xml,s,e]);},active:0,httpSuccess:function(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||r.status==1223||jQuery.browser.safari&&r.status==undefined;}catch(e){}return false;},httpNotModified:function(xml,url){try{var xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||xmlRes==jQuery.lastModified[url]||jQuery.browser.safari&&xml.status==undefined;}catch(e){}return false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;var data=xml?r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
      "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
      ","
      "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
      ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else -s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall);var hidden=jQuery(this).is(":hidden"),self=this;for(var p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else -e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.apply(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(!elem)return undefined;type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",array?jQuery.makeArray(array):[]);return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].apply(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:{slow:600,fast:200}[opt.duration])||400;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.apply(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.apply(this.elem,[this.now,this]);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=(new Date()).getTime();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done&&jQuery.isFunction(this.options.complete))this.options.complete.apply(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.fx.step={scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}};jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),fixed=jQuery.css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&jQuery.css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(jQuery.css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&jQuery.css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||jQuery.css(offsetChild,"position")=="absolute"))||(mozilla&&jQuery.css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;}return results;};})(); \ No newline at end of file +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file From python-checkins at python.org Wed Sep 24 13:30:23 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 13:30:23 +0200 (CEST) Subject: [Python-checkins] r66582 - in doctools/trunk/sphinx: builder.py util/_json.py util/json.py Message-ID: <20080924113023.3A80A1E4008@bag.python.org> Author: georg.brandl Date: Wed Sep 24 13:30:22 2008 New Revision: 66582 Log: * Always use our own JS dumper instead of simplejson. * Compress JS further by omitting quotes for dict keys where possible. Removed: doctools/trunk/sphinx/util/_json.py Modified: doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/util/json.py Modified: doctools/trunk/sphinx/builder.py ============================================================================== --- doctools/trunk/sphinx/builder.py (original) +++ doctools/trunk/sphinx/builder.py Wed Sep 24 13:30:22 2008 @@ -698,18 +698,19 @@ pass def load_indexer(self, docnames): + keep = set(self.env.all_docs) - set(docnames) try: f = open(path.join(self.outdir, self.searchindex_filename), 'rb') try: self.indexer.load(f, self.indexer_format) finally: f.close() - except (IOError, OSError, NotImplementedError, ValueError): - # we catch NotImplementedError here because if no simplejson - # is installed the searchindex can't be loaded - pass + except (IOError, OSError, ValueError): + if keep: + self.warn("search index couldn't be loaded, but not all documents " + "will be built: the index will be incomplete.") # delete all entries for files that will be rebuilt - self.indexer.prune(set(self.env.all_docs) - set(docnames)) + self.indexer.prune(keep) def index_page(self, pagename, doctree, title): # only index pages with title Deleted: doctools/trunk/sphinx/util/_json.py ============================================================================== --- doctools/trunk/sphinx/util/_json.py Wed Sep 24 13:30:22 2008 +++ (empty file) @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- -""" - sphinx.util._json - ~~~~~~~~~~~~~~~~~ - - This module implements a simple JSON serializer if simplejson is - unavailable. - - This is not fully JSON compliant but enough for the searchindex. - And the generated files are smaller than the simplejson ones. - - Uses the basestring encode function from simplejson. - - :copyright: 2008 by Armin Ronacher, Bob Ippolito. - :license: BSD. -""" -import re - - -# escape \, ", control characters and everything outside ASCII -ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])') -ESCAPE_DICT = { - '\\': '\\\\', - '"': '\\"', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t', -} - - -def encode_basestring_ascii(s): - def replace(match): - s = match.group(0) - try: - return ESCAPE_DICT[s] - except KeyError: - n = ord(s) - if n < 0x10000: - return '\\u%04x' % (n,) - else: - # surrogate pair - n -= 0x10000 - s1 = 0xd800 | ((n >> 10) & 0x3ff) - s2 = 0xdc00 | (n & 0x3ff) - return '\\u%04x\\u%04x' % (s1, s2) - return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"' - - -def dumps(obj, key=False): - if key: - if not isinstance(obj, basestring): - obj = str(obj) - return encode_basestring_ascii(obj) - if obj is None: - return 'null' - elif obj is True or obj is False: - return obj and 'true' or 'false' - elif isinstance(obj, (int, long, float)): - return str(obj) - elif isinstance(obj, dict): - return '{%s}' % ','.join('%s:%s' % ( - dumps(key, True), - dumps(value) - ) for key, value in obj.iteritems()) - elif isinstance(obj, (tuple, list, set)): - return '[%s]' % ','.join(dumps(x) for x in obj) - elif isinstance(obj, basestring): - return encode_basestring_ascii(obj) - raise TypeError(type(obj)) - - -def dump(obj, f): - f.write(dumps(obj)) Modified: doctools/trunk/sphinx/util/json.py ============================================================================== --- doctools/trunk/sphinx/util/json.py (original) +++ doctools/trunk/sphinx/util/json.py Wed Sep 24 13:30:22 2008 @@ -3,32 +3,192 @@ sphinx.util.json ~~~~~~~~~~~~~~~~ - This module imports JSON functions from various locations. + This module implements a simple JSON serializer if simplejson is + unavailable. - :copyright: 2008 by Armin Ronacher. + This is not fully JSON compliant but enough for the searchindex. + And the generated files are smaller than the simplejson ones. + + Uses the basestring encode function from simplejson. + + :copyright: 2008 by Armin Ronacher, Bob Ippolito, Georg Brandl. :license: BSD. """ -# if no simplejson is available this module can not load json files. -can_load = True +import re -# unset __name__ for a moment so that the import goes straight into -# the stdlib for python 2.4. -_old_name = __name__ -del __name__ - -try: - from simplejson import dumps, dump, loads, load -except ImportError: - try: - from json import dumps, dump, loads, load - except ImportError: - from sphinx.util._json import dumps, dump - def _dummy(x): - raise NotImplementedError('simplejson unavailable, can\'t load') - load = loads = _dummy - can_load = False - del _dummy +_str_re = re.compile(r'"(\\\\|\\"|[^"])*"') +_int_re = re.compile(r'\d+') +_name_re = re.compile(r'[a-zA-Z]\w*') + +# escape \, ", control characters and everything outside ASCII +ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])') +ESCAPE_DICT = { + '\\': '\\\\', + '"': '\\"', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', +} + +ESCAPED = re.compile(r'\\u.{4}|\\.') + + +def encode_string(s): + def replace(match): + s = match.group(0) + try: + return ESCAPE_DICT[s] + except KeyError: + n = ord(s) + if n < 0x10000: + return '\\u%04x' % (n,) + else: + # surrogate pair + n -= 0x10000 + s1 = 0xd800 | ((n >> 10) & 0x3ff) + s2 = 0xdc00 | (n & 0x3ff) + return '\\u%04x\\u%04x' % (s1, s2) + return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"' + +def decode_string(s): + return ESCAPED.sub(lambda m: eval('u"'+m.group()+'"'), s) + + +reswords = set("""\ +abstract else instanceof switch +boolean enum int synchronized +break export interface this +byte extends long throw +case false native throws +catch final new transient +char finally null true +class float package try +const for private typeof +continue function protected var +debugger goto public void +default if return volatile +delete implements short while +do import static with +double in super""".split()) + +def dumps(obj, key=False): + if key: + if not isinstance(obj, basestring): + obj = str(obj) + if _name_re.match(obj) and obj not in reswords: + return obj # return it as a bare word + else: + return encode_string(obj) + if obj is None: + return 'null' + elif obj is True or obj is False: + return obj and 'true' or 'false' + elif isinstance(obj, (int, long, float)): + return str(obj) + elif isinstance(obj, dict): + return '{%s}' % ','.join('%s:%s' % ( + dumps(key, True), + dumps(value) + ) for key, value in obj.iteritems()) + elif isinstance(obj, (tuple, list, set)): + return '[%s]' % ','.join(dumps(x) for x in obj) + elif isinstance(obj, basestring): + return encode_string(obj) + raise TypeError(type(obj)) + +def dump(obj, f): + f.write(dumps(obj)) + + +def loads(x): + """Loader that can read the JS subset the indexer produces.""" + nothing = object() + i = 0 + n = len(x) + stack = [] + obj = nothing + key = False + keys = [] + while i < n: + c = x[i] + if c == '{': + obj = {} + stack.append(obj) + key = True + keys.append(nothing) + i += 1 + elif c == '[': + obj = [] + stack.append(obj) + key = False + keys.append(nothing) + i += 1 + elif c in '}]': + if key: + raise ValueError("unfinished dict") + oldobj = stack.pop() + keys.pop() + if stack: + obj = stack[-1] + if isinstance(obj, dict): + if keys[-1] is nothing: + raise ValueError("invalid key object", oldobj) + obj[keys[-1]] = oldobj + else: + obj.append(oldobj) + else: + break + i += 1 + elif c == ',': + if key: + raise ValueError("multiple keys") + if isinstance(obj, dict): + key = True + i += 1 + elif c == ':': + if not isinstance(obj, dict): + raise ValueError("colon in list") + i += 1 + if not key: + raise ValueError("multiple values") + key = False + else: + m = _str_re.match(x, i) + if m: + y = decode_string(m.group()[1:-1]) + else: + m = _int_re.match(x, i) + if m: + y = int(m.group()) + else: + m = _name_re.match(x, i) + if m: + y = m.group() + if y == 'true': + y = True + elif y == 'false': + y = False + elif y == 'null': + y = None + elif not key: + raise ValueError("bareword as value") + else: + raise ValueError("read error at pos %d" % i) + i = m.end() + if isinstance(obj, dict): + if key: + keys[-1] = y + else: + obj[keys[-1]] = y + key = False + else: + obj.append(y) + if obj is nothing: + raise ValueError("nothing loaded from string") + return obj -__name__ = _old_name -del _old_name +def load(f): + return loads(f.read()) From python-checkins at python.org Wed Sep 24 13:48:44 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 13:48:44 +0200 (CEST) Subject: [Python-checkins] r66583 - in doctools/trunk: CHANGES doc/templating.rst sphinx/templates/layout.html Message-ID: <20080924114844.044071E4008@bag.python.org> Author: georg.brandl Date: Wed Sep 24 13:48:43 2008 New Revision: 66583 Log: Rename rellinks to linktags. Modified: doctools/trunk/CHANGES doctools/trunk/doc/templating.rst doctools/trunk/sphinx/templates/layout.html Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 13:48:43 2008 @@ -78,6 +78,9 @@ * Added new events: ``env-updated``, ``missing-reference``, ``build-finished``. +* The ``rellinks`` block in the layout template is now called + ``linktags`` to avoid confusion with the relbar links. + Release 0.4.2 (Jul 29, 2008) ============================ Modified: doctools/trunk/doc/templating.rst ============================================================================== --- doctools/trunk/doc/templating.rst (original) +++ doctools/trunk/doc/templating.rst Wed Sep 24 13:48:43 2008 @@ -82,7 +82,7 @@ idea not to change it unless you want to switch to HTML 5 or a different but compatible XHTML doctype. -`rellinks` +`linktags` This block adds a couple of ```` tags to the head section of the template. @@ -102,11 +102,11 @@ `rootrellink` / `relbaritems` Inside the relbar there are three sections: The `rootrellink`, the links - from the documentation and the `relbaritems`. The `rootrellink` is a block - that by default contains a list item pointing to the master document by - default, the `relbaritems` is an empty block. If you override them to add - extra links into the bar make sure that they are list items and end with the - :data:`reldelim1`. + from the documentation and the custom `relbaritems`. The `rootrellink` is a + block that by default contains a list item pointing to the master document + by default, the `relbaritems` is an empty block. If you override them to + add extra links into the bar make sure that they are list items and end with + the :data:`reldelim1`. `document` The contents of the document itself. Modified: doctools/trunk/sphinx/templates/layout.html ============================================================================== --- doctools/trunk/sphinx/templates/layout.html (original) +++ doctools/trunk/sphinx/templates/layout.html Wed Sep 24 13:48:43 2008 @@ -15,7 +15,7 @@ {%- if not loop.first %}{{ reldelim2 }}{% endif %} {%- endfor %} {%- block rootrellink %} -
    • {{ shorttitle }}{{ reldelim1 }}
    • +
    • {{ shorttitle }}{{ reldelim1 }}
    • {%- endblock %} {%- for parent in parents %}
    • {{ parent.title }}{{ reldelim1 }}
    • @@ -122,12 +122,11 @@ {%- endif %} {%- endif %} -{%- block rellinks %} +{%- block linktags %} {%- if hasdoc('about') %} {%- endif %} - - + {%- if hasdoc('copyright') %} From python-checkins at python.org Wed Sep 24 13:51:03 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 13:51:03 +0200 (CEST) Subject: [Python-checkins] r66584 - in doctools/trunk/sphinx: search.py static/searchtools.js util/json.py Message-ID: <20080924115103.12CA11E4008@bag.python.org> Author: georg.brandl Date: Wed Sep 24 13:51:02 2008 New Revision: 66584 Log: A fix in the JS dumper and further compression by omitting redundant braces. Modified: doctools/trunk/sphinx/search.py doctools/trunk/sphinx/static/searchtools.js doctools/trunk/sphinx/util/json.py Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 13:51:02 2008 @@ -32,6 +32,7 @@ was will with """.split()) + class _JavaScriptIndex(object): """ The search index as javascript file that calls a function @@ -44,8 +45,7 @@ SUFFIX = ')' def dumps(self, data): - return self.PREFIX + json.dumps(data, separators=(',', ':')) \ - + self.SUFFIX + return self.PREFIX + json.dumps(data) + self.SUFFIX def loads(self, s): data = s[len(self.PREFIX):-len(self.SUFFIX)] @@ -119,8 +119,12 @@ raise ValueError('old format') index2fn = frozen['filenames'] self._titles = dict(zip(index2fn, frozen['titles'])) - self._mapping = dict((k, set(index2fn[i] for i in v)) - for (k, v) in frozen['terms'].iteritems()) + self._mapping = {} + for k, v in frozen['terms'].iteritems(): + if isinstance(v, int): + self._mapping[k] = set([index2fn[v]]) + else: + self._mapping[k] = set(index2fn[i] for i in v) # no need to load keywords/desctypes def dump(self, stream, format): @@ -149,6 +153,16 @@ pdict[name] = (fn2index[doc], i) return rv + def get_terms(self, fn2index): + rv = {} + for k, v in self._mapping.iteritems(): + if len(v) == 1: + fn, = v + rv[k] = fn2index[fn] + else: + rv[k] = [fn2index[fn] for fn in v] + return rv + def freeze(self): """Create a usable data structure for serializing.""" filenames = self._titles.keys() @@ -157,8 +171,7 @@ return dict( filenames=filenames, titles=titles, - terms=dict((k, [fn2index[fn] for fn in v]) - for (k, v) in self._mapping.iteritems()), + terms=self.get_terms(fn2index), descrefs=self.get_descrefs(fn2index), modules=self.get_modules(fn2index), desctypes=dict((v, k) for (k, v) in self._desctypes.items()), Modified: doctools/trunk/sphinx/static/searchtools.js ============================================================================== --- doctools/trunk/sphinx/static/searchtools.js (original) +++ doctools/trunk/sphinx/static/searchtools.js Wed Sep 24 13:51:02 2008 @@ -287,12 +287,12 @@ }, query : function(query) { - // stem the searchwords and add them to the + // stem the searchterms and add them to the // correct list var stemmer = new PorterStemmer(); - var searchwords = []; + var searchterms = []; var excluded = []; - var hlwords = []; + var hlterms = []; var tmp = query.split(/\s+/); var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null; for (var i = 0; i < tmp.length; i++) { @@ -304,23 +304,23 @@ word = word.substr(1); } else { - var toAppend = searchwords; - hlwords.push(tmp[i].toLowerCase()); + var toAppend = searchterms; + hlterms.push(tmp[i].toLowerCase()); } // only add if not already in the list if (!$.contains(toAppend, word)) toAppend.push(word); }; - var highlightstring = '?highlight=' + $.urlencode(hlwords.join(" ")); + var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" ")); console.debug('SEARCH: searching for:'); - console.info('required: ', searchwords); + console.info('required: ', searchterms); console.info('excluded: ', excluded); // prepare search var filenames = this._index.filenames; var titles = this._index.titles; - var words = this._index.terms; + var terms = this._index.terms; var descrefs = this._index.descrefs; var modules = this._index.modules; var desctypes = this._index.desctypes; @@ -343,7 +343,7 @@ for (var name in descrefs[prefix]) { if (name.toLowerCase().indexOf(object) > -1) { match = descrefs[prefix][name]; - fullname = prefix + '.' + name; + fullname = (prefix ? prefix + '.' : '') + name; descr = desctypes[match[1]] + _(', in ') + titles[match[0]]; objectResults.push([filenames[match[0]], fullname, '#'+fullname, descr]); } @@ -357,12 +357,15 @@ }); - // perform the search on the required words - for (var i = 0; i < searchwords.length; i++) { - var word = searchwords[i]; + // perform the search on the required terms + for (var i = 0; i < searchterms.length; i++) { + var word = searchterms[i]; // no match but word was a required one - if ((files = words[word]) == null) + if ((files = terms[word]) == null) break; + if (files.length == undefined) { + files = [files]; + } // create the mapping for (var j = 0; j < files.length; j++) { var file = files[j]; @@ -373,18 +376,19 @@ } } - // now check if the files don't contain excluded words + // now check if the files don't contain excluded terms for (var file in fileMap) { var valid = true; // check if all requirements are matched - if (fileMap[file].length != searchwords.length) + if (fileMap[file].length != searchterms.length) continue; - // ensure that none of the excluded words is in the + // ensure that none of the excluded terms is in the // search result. for (var i = 0; i < excluded.length; i++) { - if ($.contains(words[excluded[i]] || [], file)) { + if (terms[excluded[i]] == file || + $.contains(terms[excluded[i]] || [], file)) { valid = false; break; } @@ -398,7 +402,7 @@ // delete unused variables in order to not waste // memory until list is retrieved completely - delete filenames, titles, words; + delete filenames, titles, terms; // now sort the regular results descending by title regularResults.sort(function(a, b) { @@ -429,7 +433,7 @@ }); } else { $.get('_sources/' + item[0] + '.txt', function(data) { - listItem.append($.makeSearchSummary(data, searchwords, hlwords)); + listItem.append($.makeSearchSummary(data, searchterms, hlterms)); Search.output.append(listItem); listItem.slideDown(5, function() { displayNextItem(); Modified: doctools/trunk/sphinx/util/json.py ============================================================================== --- doctools/trunk/sphinx/util/json.py (original) +++ doctools/trunk/sphinx/util/json.py Wed Sep 24 13:51:02 2008 @@ -20,6 +20,7 @@ _str_re = re.compile(r'"(\\\\|\\"|[^"])*"') _int_re = re.compile(r'\d+') _name_re = re.compile(r'[a-zA-Z]\w*') +_nameonly_re = re.compile(r'[a-zA-Z]\w*$') # escape \, ", control characters and everything outside ASCII ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])') @@ -78,7 +79,7 @@ if key: if not isinstance(obj, basestring): obj = str(obj) - if _name_re.match(obj) and obj not in reswords: + if _nameonly_re.match(obj) and obj not in reswords: return obj # return it as a bare word else: return encode_string(obj) From python-checkins at python.org Wed Sep 24 14:02:15 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 14:02:15 +0200 (CEST) Subject: [Python-checkins] r66585 - in doctools/trunk/sphinx: builder.py search.py util/jsdump.py util/json.py Message-ID: <20080924120215.781E01E4008@bag.python.org> Author: georg.brandl Date: Wed Sep 24 14:01:16 2008 New Revision: 66585 Log: Rename util.json to util.jsdump because it doesn't generate valid JSON anymore. The JSON html builder still needs simplejson to work. Added: doctools/trunk/sphinx/util/jsdump.py (props changed) - copied unchanged from r66584, /doctools/trunk/sphinx/util/json.py Removed: doctools/trunk/sphinx/util/json.py Modified: doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/search.py Modified: doctools/trunk/sphinx/builder.py ============================================================================== --- doctools/trunk/sphinx/builder.py (original) +++ doctools/trunk/sphinx/builder.py Wed Sep 24 14:01:16 2008 @@ -26,7 +26,7 @@ from docutils.readers.doctree import Reader as DoctreeReader from sphinx import addnodes, locale, __version__ -from sphinx.util import ensuredir, relative_uri, SEP, os_path, json, texescape +from sphinx.util import ensuredir, relative_uri, SEP, os_path, texescape from sphinx.htmlhelp import build_hhx from sphinx.htmlwriter import HTMLWriter, HTMLTranslator, SmartyPantsHTMLTranslator from sphinx.textwriter import TextWriter @@ -36,6 +36,14 @@ from sphinx.util.console import bold, purple, darkgreen from sphinx.search import js_index +try: + import json +except ImportError: + try: + import ssimplejson as json + except ImportError: + json = None + # side effect: registers roles and directives from sphinx import roles from sphinx import directives @@ -802,9 +810,6 @@ self.init_translator_class() self.templates = None # no template bridge necessary - indexer_format = property(lambda x: x.implementation, doc=''' - Alias the indexer format to the serilization implementation''') - def get_target_uri(self, docname, typ=None): if docname == 'index': return '' @@ -866,6 +871,7 @@ A Builder that dumps the generated HTML into pickle files. """ implementation = pickle + indexer_format = pickle name = 'pickle' out_suffix = '.fpickle' globalcontext_filename = 'globalcontext.pickle' @@ -877,11 +883,20 @@ A builder that dumps the generated HTML into JSON files. """ implementation = json + indexer_format = json name = 'json' out_suffix = '.fjson' globalcontext_filename = 'globalcontext.json' searchindex_filename = 'searchindex.json' + def init(self): + if json is None: + from sphinx.application import SphinxError + raise SphinxError('The module simplejson (or json in Python >= 2.6) ' + 'is not available. The JSONHTMLBuilder builder ' + 'will not work.') + SerializingHTMLBuilder.init(self) + class HTMLHelpBuilder(StandaloneHTMLBuilder): """ Modified: doctools/trunk/sphinx/search.py ============================================================================== --- doctools/trunk/sphinx/search.py (original) +++ doctools/trunk/sphinx/search.py Wed Sep 24 14:01:16 2008 @@ -15,7 +15,7 @@ from docutils.nodes import Text, NodeVisitor from sphinx.util.stemmer import PorterStemmer -from sphinx.util import json, rpartition +from sphinx.util import jsdump, rpartition word_re = re.compile(r'\w+(?u)') @@ -37,22 +37,20 @@ """ The search index as javascript file that calls a function on the documentation search object to register the index. - This serializing system does not support chaining because - simplejson (which it depends on) doesn't support it either. """ PREFIX = 'Search.setIndex(' SUFFIX = ')' def dumps(self, data): - return self.PREFIX + json.dumps(data) + self.SUFFIX + return self.PREFIX + jsdump.dumps(data) + self.SUFFIX def loads(self, s): data = s[len(self.PREFIX):-len(self.SUFFIX)] if not data or not s.startswith(self.PREFIX) or not \ s.endswith(self.SUFFIX): raise ValueError('invalid data') - return json.loads(data) + return jsdump.loads(data) def dump(self, data, f): f.write(self.dumps(data)) @@ -95,7 +93,7 @@ passed to the `feed` method. """ formats = { - 'json': json, + 'jsdump': jsdump, 'pickle': pickle } Deleted: doctools/trunk/sphinx/util/json.py ============================================================================== --- doctools/trunk/sphinx/util/json.py Wed Sep 24 14:01:16 2008 +++ (empty file) @@ -1,195 +0,0 @@ -# -*- coding: utf-8 -*- -""" - sphinx.util.json - ~~~~~~~~~~~~~~~~ - - This module implements a simple JSON serializer if simplejson is - unavailable. - - This is not fully JSON compliant but enough for the searchindex. - And the generated files are smaller than the simplejson ones. - - Uses the basestring encode function from simplejson. - - :copyright: 2008 by Armin Ronacher, Bob Ippolito, Georg Brandl. - :license: BSD. -""" - -import re - -_str_re = re.compile(r'"(\\\\|\\"|[^"])*"') -_int_re = re.compile(r'\d+') -_name_re = re.compile(r'[a-zA-Z]\w*') -_nameonly_re = re.compile(r'[a-zA-Z]\w*$') - -# escape \, ", control characters and everything outside ASCII -ESCAPE_ASCII = re.compile(r'([\\"]|[^\ -~])') -ESCAPE_DICT = { - '\\': '\\\\', - '"': '\\"', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t', -} - -ESCAPED = re.compile(r'\\u.{4}|\\.') - - -def encode_string(s): - def replace(match): - s = match.group(0) - try: - return ESCAPE_DICT[s] - except KeyError: - n = ord(s) - if n < 0x10000: - return '\\u%04x' % (n,) - else: - # surrogate pair - n -= 0x10000 - s1 = 0xd800 | ((n >> 10) & 0x3ff) - s2 = 0xdc00 | (n & 0x3ff) - return '\\u%04x\\u%04x' % (s1, s2) - return '"' + str(ESCAPE_ASCII.sub(replace, s)) + '"' - -def decode_string(s): - return ESCAPED.sub(lambda m: eval('u"'+m.group()+'"'), s) - - -reswords = set("""\ -abstract else instanceof switch -boolean enum int synchronized -break export interface this -byte extends long throw -case false native throws -catch final new transient -char finally null true -class float package try -const for private typeof -continue function protected var -debugger goto public void -default if return volatile -delete implements short while -do import static with -double in super""".split()) - -def dumps(obj, key=False): - if key: - if not isinstance(obj, basestring): - obj = str(obj) - if _nameonly_re.match(obj) and obj not in reswords: - return obj # return it as a bare word - else: - return encode_string(obj) - if obj is None: - return 'null' - elif obj is True or obj is False: - return obj and 'true' or 'false' - elif isinstance(obj, (int, long, float)): - return str(obj) - elif isinstance(obj, dict): - return '{%s}' % ','.join('%s:%s' % ( - dumps(key, True), - dumps(value) - ) for key, value in obj.iteritems()) - elif isinstance(obj, (tuple, list, set)): - return '[%s]' % ','.join(dumps(x) for x in obj) - elif isinstance(obj, basestring): - return encode_string(obj) - raise TypeError(type(obj)) - -def dump(obj, f): - f.write(dumps(obj)) - - -def loads(x): - """Loader that can read the JS subset the indexer produces.""" - nothing = object() - i = 0 - n = len(x) - stack = [] - obj = nothing - key = False - keys = [] - while i < n: - c = x[i] - if c == '{': - obj = {} - stack.append(obj) - key = True - keys.append(nothing) - i += 1 - elif c == '[': - obj = [] - stack.append(obj) - key = False - keys.append(nothing) - i += 1 - elif c in '}]': - if key: - raise ValueError("unfinished dict") - oldobj = stack.pop() - keys.pop() - if stack: - obj = stack[-1] - if isinstance(obj, dict): - if keys[-1] is nothing: - raise ValueError("invalid key object", oldobj) - obj[keys[-1]] = oldobj - else: - obj.append(oldobj) - else: - break - i += 1 - elif c == ',': - if key: - raise ValueError("multiple keys") - if isinstance(obj, dict): - key = True - i += 1 - elif c == ':': - if not isinstance(obj, dict): - raise ValueError("colon in list") - i += 1 - if not key: - raise ValueError("multiple values") - key = False - else: - m = _str_re.match(x, i) - if m: - y = decode_string(m.group()[1:-1]) - else: - m = _int_re.match(x, i) - if m: - y = int(m.group()) - else: - m = _name_re.match(x, i) - if m: - y = m.group() - if y == 'true': - y = True - elif y == 'false': - y = False - elif y == 'null': - y = None - elif not key: - raise ValueError("bareword as value") - else: - raise ValueError("read error at pos %d" % i) - i = m.end() - if isinstance(obj, dict): - if key: - keys[-1] = y - else: - obj[keys[-1]] = y - key = False - else: - obj.append(y) - if obj is nothing: - raise ValueError("nothing loaded from string") - return obj - -def load(f): - return loads(f.read()) From python-checkins at python.org Wed Sep 24 14:20:41 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 14:20:41 +0200 (CEST) Subject: [Python-checkins] r66586 - in doctools/trunk: CHANGES sphinx/util/jsdump.py Message-ID: <20080924122041.E5C021E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 14:20:41 2008 New Revision: 66586 Log: Group changelog entries and fix docstring for jsdump. Modified: doctools/trunk/CHANGES doctools/trunk/sphinx/util/jsdump.py Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 14:20:41 2008 @@ -4,82 +4,97 @@ New features added ------------------ -* The JavaScript search now searches for objects before searching - in the full text. +* HTML output and templates: -* The new extensions ``sphinx.ext.jsmath`` and ``sphinx.ext.pngmath`` - provide math support for both HTML and LaTeX builders. - -* The new extension ``sphinx.ext.intersphinx`` half-automatically - creates links to Sphinx documentation of Python objects in other - projects. - -* Added support for internationalization in generated text with the - ``language`` and ``locale_dirs`` config values. Many thanks to - Horst Gutmann, who also contributed German as the first language. - A Czech translation was provided by Pavel Kosina. A French - translation was provided by David Larlet. A Polish translation - was provided by Micha? Kandulski. A Japanese translation was - provided by Yasushi Masuda. + - Incompatible change: The "root" relation link (top left in the + relbar) now points to the ``master_doc`` by default, no longer to a + document called "index". The old behavior, while useful in some + situations, was somewhat unexpected. + + - The JavaScript search now searches for objects before searching in + the full text. + + - ``SerializingHTMLBuilder`` was added as new abstract builder that + can be subclassed to serialize build HTML in a specific format. The + ``PickleHTMLBuilder`` is a concrete subclass of it that uses pickle + as serialization implementation. -* Added a distutils command `build_sphinx`: When Sphinx is installed, - you can call ``python setup.py build_sphinx`` for projects that - have Sphinx documentation, which will build the docs and place them - in the standard distutils build directory. + - ``JSONHTMLBuilder`` was added as another ``SerializingHTMLBuilder`` + subclass that dumps the generated HTML into JSON files for further + processing. + + - The ``rellinks`` block in the layout template is now called + ``linktags`` to avoid confusion with the relbar links. + + - The HTML builders have two additional attributes now that can be + used to disable the anchor-link creation after headlines and + definition links. -* "System Message" warnings are now automatically removed from the - built documentation, and only written to stderr. If you want the - old behavior, set the new config value ``keep_warnings`` to True. +* New and changed config values: + + - Added support for internationalization in generated text with the + ``language`` and ``locale_dirs`` config values. Many thanks to + language contributors: + + * Horst Gutmann -- German + * Pavel Kosina -- Czech + * David Larlet -- French + * Micha? Kandulski -- Polish + * Yasushi Masuda -- Japanese + + - The new config value ``highlight_language`` set a global default for + highlighting. When ``'python3'`` is selected, console output blocks + are recognized like for ``'python'``. -* The new config value ``highlight_language`` set a global default - for highlighting. When ``'python3'`` is selected, console output - blocks are recognized like for ``'python'``. + - Exposed Pygments' lexer guessing as a highlight "language" ``guess``. -* The new config value ``latex_elements`` allows to override all - LaTeX snippets that Sphinx puts into the generated .tex file by - default. + - The new config value ``latex_elements`` allows to override all LaTeX + snippets that Sphinx puts into the generated .tex file by default. -* ``SerializingHTMLBuilder`` was added as new abstract builder that - can be subclassed to serialize build HTML in a specific format. - The ``PickleHTMLBuilder`` is a concrete subclass of it that uses - pickle as serialization implementation. + - Added ``exclude_dirnames`` config value that can be used to exclude + e.g. CVS directories from source file search. -* ``JSONHTMLBuilder`` was added as another ``SerializingHTMLBuilder`` - subclass that dumps the generated HTML into JSON files for further - processing. +* Extensions: -* The `automodule` directive now supports the ``synopsis``, - ``deprecated`` and ``platform`` options. + - The new extensions ``sphinx.ext.jsmath`` and ``sphinx.ext.pngmath`` + provide math support for both HTML and LaTeX builders. -* The HTML builders have two additional attributes now that can be - used to disable the anchor-link creation after headlines and - definition links. + - The new extension ``sphinx.ext.intersphinx`` half-automatically + creates links to Sphinx documentation of Python objects in other + projects. -* sphinx.doc.autodoc has a new event ``autodoc-process-signature`` - that allows tuning function signature introspection. + - sphinx.doc.autodoc has a new event ``autodoc-process-signature`` + that allows tuning function signature introspection. -* Respect __all__ when autodocumenting module members. + - Respect __all__ when autodocumenting module members. -* Glossary entries are now automatically added to the index. + - The `automodule` directive now supports the ``synopsis``, + ``deprecated`` and ``platform`` options. -* Added ``exclude_dirnames`` config value that can be used to exclude - e.g. CVS directories from source file search. +* Extension API: -* ``Sphinx.add_node()`` now takes optional visitor methods for the - HTML, LaTeX and text translators; this prevents having to manually - patch the classes. + - ``Sphinx.add_node()`` now takes optional visitor methods for the + HTML, LaTeX and text translators; this prevents having to manually + patch the classes. -* Exposed Pygments' lexer guessing as a highlight "language" - ``guess``. + - Added ``Sphinx.add_javascript()`` that adds scripts to load in the + default HTML template. -* Added ``Sphinx.add_javascript()`` that adds scripts to load in the - default HTML template. + - Added new events: ``env-updated``, ``missing-reference``, + ``build-finished``. -* Added new events: ``env-updated``, ``missing-reference``, - ``build-finished``. +* Other changes: + + - Added a distutils command `build_sphinx`: When Sphinx is installed, + you can call ``python setup.py build_sphinx`` for projects that have + Sphinx documentation, which will build the docs and place them in + the standard distutils build directory. + + - "System Message" warnings are now automatically removed from the + built documentation, and only written to stderr. If you want the + old behavior, set the new config value ``keep_warnings`` to True. -* The ``rellinks`` block in the layout template is now called - ``linktags`` to avoid confusion with the relbar links. + - Glossary entries are now automatically added to the index. Release 0.4.2 (Jul 29, 2008) @@ -161,7 +176,7 @@ * The new `staticmethod` directive can be used to mark methods as static methods. - + * HTML output: - The "previous" and "next" links have a more logical structure, so @@ -220,7 +235,7 @@ - The autodoc extension now offers a much more flexible way to manipulate docstrings before including them into the output, via the new `autodoc-process-docstring` event. - + - The `autodoc` extension accepts signatures for functions, methods and classes now that override the signature got via introspection from Python code. Modified: doctools/trunk/sphinx/util/jsdump.py ============================================================================== --- doctools/trunk/sphinx/util/jsdump.py (original) +++ doctools/trunk/sphinx/util/jsdump.py Wed Sep 24 14:20:41 2008 @@ -1,14 +1,9 @@ # -*- coding: utf-8 -*- """ - sphinx.util.json - ~~~~~~~~~~~~~~~~ - - This module implements a simple JSON serializer if simplejson is - unavailable. - - This is not fully JSON compliant but enough for the searchindex. - And the generated files are smaller than the simplejson ones. + sphinx.util.jsdump + ~~~~~~~~~~~~~~~~~~ + This module implements a simple JavaScript serializer. Uses the basestring encode function from simplejson. :copyright: 2008 by Armin Ronacher, Bob Ippolito, Georg Brandl. From python-checkins at python.org Wed Sep 24 17:06:52 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:06:52 +0200 (CEST) Subject: [Python-checkins] r66587 - in doctools/trunk/sphinx/locale/pl/LC_MESSAGES: sphinx.js sphinx.mo sphinx.po Message-ID: <20080924150652.5FA691E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:06:51 2008 New Revision: 66587 Log: Update to Polish locale. Modified: doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.js doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.mo doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po Modified: doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.js ============================================================================== --- doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.js (original) +++ doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.js Wed Sep 24 17:06:51 2008 @@ -1 +1 @@ -Documentation.addTranslations({"locale": "pl", "plural_expr": "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Search Results": "Wyniki wyszukiwania", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Nie znaleziono \u017cadnych pasuj\u0105cych dokument\u00f3w. Upewnij si\u0119, \u017ce wszystkie s\u0142owa s\u0105 poprawnie wpisane i \u017ce wybra\u0142e\u015b wystarczaj\u0105c\u0105liczb\u0119 kategorii.", "Getting search index...": "Pobieranie indeksu przeszukiwania...", "Permalink to this headline": "Sta\u0142y odno\u015bnik do tego nag\u0142\u00f3wka", "Searching": "Szukanie", "Permalink to this definition": "Sta\u0142y odno\u015bnik do tej definicji", "Hide Search Matches": "Ukryj wyniki przeszukiwania", "Search finished, found %s page(s) matching the search query.": "Przeszukiwanie zako\u0144czone, znaleziono %s pasuj\u0105cych stron."}}); \ No newline at end of file +Documentation.addTranslations({"locale": "pl", "plural_expr": "(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)", "messages": {"Search Results": "Wyniki wyszukiwania", "Preparing search...": "Przygotowanie wyszukiwania...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Nie znaleziono \u017cadnych pasuj\u0105cych dokument\u00f3w. Upewnij si\u0119, \u017ce wszystkie s\u0142owa s\u0105 poprawnie wpisane i \u017ce wybra\u0142e\u015b wystarczaj\u0105c\u0105liczb\u0119 kategorii.", "Search finished, found %s page(s) matching the search query.": "Przeszukiwanie zako\u0144czone, znaleziono %s pasuj\u0105cych stron.", "Permalink to this headline": "Sta\u0142y odno\u015bnik do tego nag\u0142\u00f3wka", "Searching": "Wyszukiwanie", "Permalink to this definition": "Sta\u0142y odno\u015bnik do tej definicji", "Hide Search Matches": "Ukryj wyniki wyszukiwania"}}); \ No newline at end of file Modified: doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.mo ============================================================================== Binary files. No diff available. Modified: doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po ============================================================================== --- doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po (original) +++ doctools/trunk/sphinx/locale/pl/LC_MESSAGES/sphinx.po Wed Sep 24 17:06:51 2008 @@ -1,10 +1,9 @@ - msgid "" msgstr "" -"Project-Id-Version: sphinx\n" +"Project-Id-Version: Sphinx 0.5\n" "Report-Msgid-Bugs-To: EMAIL at ADDRESS\n" "POT-Creation-Date: 2008-08-10 11:43+0000\n" -"PO-Revision-Date: 2008-09-08 11:04+0100\n" +"PO-Revision-Date: 2008-09-16 15:47+0100\n" "Last-Translator: Micha? Kandulski \n" "Language-Team: \n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && " @@ -14,55 +13,82 @@ "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.3\n" -#: sphinx/builder.py:391 +#: sphinx/builder.py:400 #, python-format msgid "%b %d, %Y" msgstr "%b %d %Y" -#: sphinx/builder.py:410 sphinx/templates/defindex.html:21 +#: sphinx/builder.py:419 +#: sphinx/templates/defindex.html:21 msgid "General Index" msgstr "Indeks og?lny" -#: sphinx/builder.py:410 +#: sphinx/builder.py:419 msgid "index" msgstr "indeks" -#: sphinx/builder.py:412 sphinx/htmlhelp.py:155 -#: sphinx/templates/defindex.html:19 sphinx/templates/modindex.html:2 +#: sphinx/builder.py:421 +#: sphinx/htmlhelp.py:155 +#: sphinx/templates/defindex.html:19 +#: sphinx/templates/modindex.html:2 #: sphinx/templates/modindex.html:13 msgid "Global Module Index" msgstr "Indeks modu??w" -#: sphinx/builder.py:412 +#: sphinx/builder.py:421 msgid "modules" msgstr "modu?y" -#: sphinx/builder.py:448 +#: sphinx/builder.py:457 msgid "next" msgstr "dalej" -#: sphinx/builder.py:455 +#: sphinx/builder.py:464 msgid "previous" msgstr "wstecz" -#: sphinx/builder.py:1092 +#: sphinx/builder.py:1108 msgid "Builtins" msgstr "Wbudowane" -#: sphinx/builder.py:1094 +#: sphinx/builder.py:1110 msgid "Module level" msgstr "Poziom modu?u" -#: sphinx/environment.py:108 sphinx/latexwriter.py:129 +#: sphinx/environment.py:107 +#: sphinx/latexwriter.py:129 #, python-format msgid "%B %d, %Y" msgstr "%B %d %Y" -#: sphinx/htmlwriter.py:73 sphinx/static/doctools.js:143 +#: sphinx/environment.py:270 +#: sphinx/latexwriter.py:190 +#: sphinx/templates/genindex-single.html:2 +#: sphinx/templates/genindex-split.html:2 +#: sphinx/templates/genindex-split.html:5 +#: sphinx/templates/genindex.html:2 +#: sphinx/templates/genindex.html:5 +#: sphinx/templates/genindex.html:48 +msgid "Index" +msgstr "Indeks" + +#: sphinx/environment.py:271 +#: sphinx/latexwriter.py:188 +msgid "Module Index" +msgstr "Indeks modu??w" + +#: sphinx/environment.py:272 +#: sphinx/templates/defindex.html:16 +msgid "Search Page" +msgstr "Wyszukiwanie" + +#: sphinx/htmlwriter.py:73 +#: sphinx/static/doctools.js:145 msgid "Permalink to this definition" msgstr "Sta?y odno?nik do tej definicji" -#: sphinx/htmlwriter.py:379 sphinx/static/doctools.js:136 +#: sphinx/htmlwriter.py:375 +#: sphinx/static/doctools.js:139 msgid "Permalink to this headline" msgstr "Sta?y odno?nik do tego nag??wka" @@ -70,18 +96,8 @@ msgid "Release" msgstr "Wydanie" -#: sphinx/latexwriter.py:188 -msgid "Module index" -msgstr "Indeks modu??w" - -#: sphinx/latexwriter.py:190 sphinx/templates/genindex-single.html:2 -#: sphinx/templates/genindex-split.html:2 -#: sphinx/templates/genindex-split.html:5 sphinx/templates/genindex.html:2 -#: sphinx/templates/genindex.html:5 sphinx/templates/genindex.html:48 -msgid "Index" -msgstr "Indeks" - -#: sphinx/roles.py:52 sphinx/directives/desc.py:514 +#: sphinx/roles.py:52 +#: sphinx/directives/desc.py:514 #, python-format msgid "environment variable; %s" msgstr "zmienna ?rodowiskowa; %s" @@ -98,14 +114,15 @@ #: sphinx/textwriter.py:353 msgid "[image]" -msgstr "[image]" +msgstr "[obrazek]" #: sphinx/directives/desc.py:26 #, python-format msgid "%s() (built-in function)" msgstr "%s() (funkcja wbudowana)" -#: sphinx/directives/desc.py:27 sphinx/directives/desc.py:41 +#: sphinx/directives/desc.py:27 +#: sphinx/directives/desc.py:41 #: sphinx/directives/desc.py:53 #, python-format msgid "%s() (in module %s)" @@ -116,7 +133,8 @@ msgid "%s (built-in variable)" msgstr "%s (zmienna wbudowana)" -#: sphinx/directives/desc.py:31 sphinx/directives/desc.py:65 +#: sphinx/directives/desc.py:31 +#: sphinx/directives/desc.py:65 #, python-format msgid "%s (in module %s)" msgstr "%s (w module %s)" @@ -314,24 +332,24 @@ msgid "built-in function" msgstr "funkcja wbudowana" -#: sphinx/static/doctools.js:172 +#: sphinx/static/doctools.js:174 msgid "Hide Search Matches" -msgstr "Ukryj wyniki przeszukiwania" +msgstr "Ukryj wyniki wyszukiwania" -#: sphinx/static/searchtools.js:242 -#, fuzzy +#: sphinx/static/searchtools.js:274 msgid "Searching" -msgstr "Szukanie" +msgstr "Wyszukiwanie" -#: sphinx/static/searchtools.js:246 -msgid "Getting search index..." -msgstr "Pobieranie indeksu przeszukiwania..." +#: sphinx/static/searchtools.js:279 +msgid "Preparing search..." +msgstr "Przygotowanie wyszukiwania..." -#: sphinx/static/searchtools.js:384 sphinx/templates/search.html:18 +#: sphinx/static/searchtools.js:401 +#: sphinx/templates/search.html:18 msgid "Search Results" msgstr "Wyniki wyszukiwania" -#: sphinx/static/searchtools.js:386 +#: sphinx/static/searchtools.js:403 msgid "" "Your search did not match any documents. Please make sure that all words " "are spelled correctly and that you've selected enough categories." @@ -340,7 +358,7 @@ "wszystkie s?owa s? poprawnie wpisane i ?e wybra?e? wystarczaj?c?" "liczb? kategorii." -#: sphinx/static/searchtools.js:389 +#: sphinx/static/searchtools.js:405 #, python-format msgid "Search finished, found %s page(s) matching the search query." msgstr "Przeszukiwanie zako?czone, znaleziono %s pasuj?cych stron." @@ -361,10 +379,6 @@ msgid "lists all sections and subsections" msgstr "wymie? wszystkie rozdzia?y i podrozdzia?y" -#: sphinx/templates/defindex.html:16 -msgid "Search page" -msgstr "Szukanie" - #: sphinx/templates/defindex.html:17 msgid "search this documentation" msgstr "wyszukaj w dokumentacji" @@ -384,7 +398,8 @@ #: sphinx/templates/genindex-single.html:44 #: sphinx/templates/genindex-split.html:14 -#: sphinx/templates/genindex-split.html:27 sphinx/templates/genindex.html:54 +#: sphinx/templates/genindex-split.html:27 +#: sphinx/templates/genindex.html:54 msgid "Full index on one page" msgstr "Ca?y indeks na jednej stronie" @@ -428,7 +443,8 @@ msgid "Suggest Change" msgstr "Zasugeruj zmian?" -#: sphinx/templates/layout.html:60 sphinx/templates/layout.html:62 +#: sphinx/templates/layout.html:60 +#: sphinx/templates/layout.html:62 msgid "Show Source" msgstr "Poka? ?r?d?o" @@ -465,7 +481,8 @@ msgid "Global index" msgstr "Globalny indeks" -#: sphinx/templates/layout.html:131 sphinx/templates/search.html:2 +#: sphinx/templates/layout.html:131 +#: sphinx/templates/search.html:2 #: sphinx/templates/search.html:5 msgid "Search" msgstr "Szukaj" @@ -535,8 +552,8 @@ "St?d mo?esz przeszuka? dokumentacj?. Wprowad? szukane\n" " s?owa w poni?szym okienku i kliknij \"Szukaj\". Zwr?? uwag?, ?e\n" " funkcja szukaj?ca b?dzie automatycznie szuka?a wszystkich s??w. " -"Strony\n" -" nie zawieraj?ce wszystkich s??w nie znajd? si? na wynikowej li?cie." +" Strony nie zawieraj?ce wszystkich s??w nie znajd? si? na wynikowej " +" li?cie." #: sphinx/templates/search.html:14 msgid "search" From python-checkins at python.org Wed Sep 24 17:25:44 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:25:44 +0200 (CEST) Subject: [Python-checkins] r66588 - doctools/branches/0.4.x/sphinx/texinputs/sphinx.sty Message-ID: <20080924152544.47CFE1E400C@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:25:43 2008 New Revision: 66588 Log: Fix footer marking. Modified: doctools/branches/0.4.x/sphinx/texinputs/sphinx.sty Modified: doctools/branches/0.4.x/sphinx/texinputs/sphinx.sty ============================================================================== --- doctools/branches/0.4.x/sphinx/texinputs/sphinx.sty (original) +++ doctools/branches/0.4.x/sphinx/texinputs/sphinx.sty Wed Sep 24 17:25:43 2008 @@ -141,18 +141,6 @@ \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0.4pt} } - % Redefine \cleardoublepage so that the blank page between chapters - % gets the plain style and not the fancy style. This is described - % in the documentation for the fancyhdr package by Piet von Oostrum. - \@ifundefined{chapter}{}{ - \renewcommand{\cleardoublepage}{ - \clearpage\if at openright \ifodd\c at page\else - \hbox{} - \thispagestyle{plain} - \newpage - \if at twocolumn\hbox{}\newpage\fi\fi\fi - } - } } % Some custom font markup commands. From python-checkins at python.org Wed Sep 24 17:29:07 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:29:07 +0200 (CEST) Subject: [Python-checkins] r66589 - in doctools/trunk/sphinx/texinputs: Makefile sphinx.sty Message-ID: <20080924152907.50E381E4017@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:29:07 2008 New Revision: 66589 Log: #17: fix Makefile syntax. Modified: doctools/trunk/sphinx/texinputs/Makefile doctools/trunk/sphinx/texinputs/sphinx.sty Modified: doctools/trunk/sphinx/texinputs/Makefile ============================================================================== --- doctools/trunk/sphinx/texinputs/Makefile (original) +++ doctools/trunk/sphinx/texinputs/Makefile Wed Sep 24 17:29:07 2008 @@ -34,8 +34,8 @@ latex '$<' latex '$<' latex '$<' - -makeindex -s python.ist $(basename '$<').idx - -makeindex -s python.ist $(basename 'mod$<').idx + -makeindex -s python.ist '$(basename $<).idx' + -makeindex -s python.ist '$(basename mod$<).idx' latex '$<' latex '$<' @@ -43,8 +43,8 @@ pdflatex '$<' pdflatex '$<' pdflatex '$<' - -makeindex -s python.ist $(basename '$<').idx - -makeindex -s python.ist $(basename 'mod$<').idx + -makeindex -s python.ist '$(basename $<).idx' + -makeindex -s python.ist '$(basename mod$<).idx' pdflatex '$<' pdflatex '$<' Modified: doctools/trunk/sphinx/texinputs/sphinx.sty ============================================================================== --- doctools/trunk/sphinx/texinputs/sphinx.sty (original) +++ doctools/trunk/sphinx/texinputs/sphinx.sty Wed Sep 24 17:29:07 2008 @@ -142,18 +142,6 @@ \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0.4pt} } - % Redefine \cleardoublepage so that the blank page between chapters - % gets the plain style and not the fancy style. This is described - % in the documentation for the fancyhdr package by Piet von Oostrum. - \@ifundefined{chapter}{}{ - \renewcommand{\cleardoublepage}{ - \clearpage\if at openright \ifodd\c at page\else - \hbox{} - \thispagestyle{plain} - \newpage - \if at twocolumn\hbox{}\newpage\fi\fi\fi - } - } } % Some custom font markup commands. From python-checkins at python.org Wed Sep 24 17:30:14 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:30:14 +0200 (CEST) Subject: [Python-checkins] r66590 - doctools/converter/converter/latexparser.py Message-ID: <20080924153014.612011E4028@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:30:14 2008 New Revision: 66590 Log: Fix url parsing type. Modified: doctools/converter/converter/latexparser.py Modified: doctools/converter/converter/latexparser.py ============================================================================== --- doctools/converter/converter/latexparser.py (original) +++ doctools/converter/converter/latexparser.py Wed Sep 24 17:30:14 2008 @@ -231,7 +231,7 @@ 'refmodule': 'QT', 'citetitle': 'QT', 'ulink': 'MT', - 'url': 'M', + 'url': 'T', # mapped to normal 'textrm': 'M', From python-checkins at python.org Wed Sep 24 17:36:35 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:36:35 +0200 (CEST) Subject: [Python-checkins] r66591 - in doctools/trunk: CHANGES doc/markup/inline.rst sphinx/environment.py Message-ID: <20080924153635.3B0D61E4008@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:36:34 2008 New Revision: 66591 Log: #16: allow referring to figures without explicit text. Modified: doctools/trunk/CHANGES doctools/trunk/doc/markup/inline.rst doctools/trunk/sphinx/environment.py Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 17:36:34 2008 @@ -9,7 +9,8 @@ - Incompatible change: The "root" relation link (top left in the relbar) now points to the ``master_doc`` by default, no longer to a document called "index". The old behavior, while useful in some - situations, was somewhat unexpected. + situations, was somewhat unexpected. Override the "rootrellink" + block in the template to customize where it refers to. - The JavaScript search now searches for objects before searching in the full text. @@ -96,6 +97,9 @@ - Glossary entries are now automatically added to the index. + - Figures with captions can now be referred to like section titles, + using the ``:ref:`` role without an explicit link text. + Release 0.4.2 (Jul 29, 2008) ============================ Modified: doctools/trunk/doc/markup/inline.rst ============================================================================== --- doctools/trunk/doc/markup/inline.rst (original) +++ doctools/trunk/doc/markup/inline.rst Wed Sep 24 17:36:34 2008 @@ -205,6 +205,17 @@ title being "Section to cross-reference". This works just as well when section and reference are in different source files. + Automatic labels also work with figures: given :: + + .. _my-figure: + + .. figure:: whatever + + Figure caption + + a reference ``:ref:`my-figure``` would insert a reference to the figure with + link text "Figure caption". + * Labels that aren't placed before a section title can still be referenced to, but you must give the link an explicit title, using this syntax: ``:ref:`Link title ```. Modified: doctools/trunk/sphinx/environment.py ============================================================================== --- doctools/trunk/sphinx/environment.py (original) +++ doctools/trunk/sphinx/environment.py Wed Sep 24 17:36:34 2008 @@ -658,10 +658,18 @@ 'other instance in %s' % self.doc2path(self.labels[name][0]), node.line) self.anonlabels[name] = docname, labelid - if not isinstance(node, nodes.section): + if node.tagname == 'section': + sectname = node[0].astext() # node[0] == title node + elif node.tagname == 'figure': + for n in node: + if n.tagname == 'caption': + sectname = n.astext() + break + else: + continue + else: # anonymous-only labels continue - sectname = node[0].astext() # node[0] == title node self.labels[name] = docname, labelid, sectname def note_indexentries_from(self, docname, document): From python-checkins at python.org Wed Sep 24 17:46:54 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:46:54 +0200 (CEST) Subject: [Python-checkins] r66592 - in doctools/trunk: CHANGES sphinx/quickstart.py Message-ID: <20080924154654.DE5F51E4011@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:46:54 2008 New Revision: 66592 Log: Don't overwrite existing sphinx projects from quickstart. Modified: doctools/trunk/CHANGES doctools/trunk/sphinx/quickstart.py Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 17:46:54 2008 @@ -100,6 +100,9 @@ - Figures with captions can now be referred to like section titles, using the ``:ref:`` role without an explicit link text. + - In quickstart, if the selected root path already contains a Sphinx + project, complain and abort. + Release 0.4.2 (Jul 29, 2008) ============================ Modified: doctools/trunk/sphinx/quickstart.py ============================================================================== --- doctools/trunk/sphinx/quickstart.py (original) +++ doctools/trunk/sphinx/quickstart.py Wed Sep 24 17:46:54 2008 @@ -387,6 +387,19 @@ print ''' Enter the root path for documentation.''' do_prompt(d, 'path', 'Root path for the documentation', '.', is_path) + + while path.isfile(path.join(d['path'], 'conf.py')) or \ + path.isfile(path.join(d['path'], 'source', 'conf.py')): + print + print bold('Error: an existing conf.py has been found in the ' + 'selected root path.') + print 'sphinx-quickstart will not overwrite existing Sphinx projects.' + print + do_prompt(d, 'path', 'Please enter a new root path (or just Enter to exit)', + '', is_path) + if not d['path']: + sys.exit(1) + print ''' You have two options for placing the build directory for Sphinx output. Either, you use a directory ".build" within the root path, or you separate From python-checkins at python.org Wed Sep 24 17:51:09 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 17:51:09 +0200 (CEST) Subject: [Python-checkins] r66593 - doctools/trunk/doc/intro.rst Message-ID: <20080924155109.AE1081E4009@bag.python.org> Author: georg.brandl Date: Wed Sep 24 17:50:37 2008 New Revision: 66593 Log: Converter is now fairly usable for non-Python core projects. Modified: doctools/trunk/doc/intro.rst Modified: doctools/trunk/doc/intro.rst ============================================================================== --- doctools/trunk/doc/intro.rst (original) +++ doctools/trunk/doc/intro.rst Wed Sep 24 17:50:37 2008 @@ -29,9 +29,7 @@ * For converting the old Python docs to Sphinx, a converter was written which can be found at `the Python SVN repository `_. It contains generic - code to convert Python-doc-style LaTeX markup to Sphinx reST, but also code - specific to the layout of the Python docs which needs to be removed in order - to be useful for other docs. + code to convert Python-doc-style LaTeX markup to Sphinx reST. Prerequisites From python-checkins at python.org Wed Sep 24 18:13:36 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 18:13:36 +0200 (CEST) Subject: [Python-checkins] r66594 - in doctools/trunk: CHANGES doc/concepts.rst sphinx/builder.py sphinx/latexwriter.py Message-ID: <20080924161336.C195F1E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 18:13:36 2008 New Revision: 66594 Log: #18: put footnotes at the correct location in the LaTeX writer. Modified: doctools/trunk/CHANGES doctools/trunk/doc/concepts.rst doctools/trunk/sphinx/builder.py doctools/trunk/sphinx/latexwriter.py Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 18:13:36 2008 @@ -85,12 +85,11 @@ ``build-finished``. * Other changes: - - - Added a distutils command `build_sphinx`: When Sphinx is installed, - you can call ``python setup.py build_sphinx`` for projects that have - Sphinx documentation, which will build the docs and place them in - the standard distutils build directory. + - Footnotes are now properly handled in the LaTeX builder: they appear + at the location of the footnote reference in text, not at the end of + a section. Thanks to Andrew McNamara for the initial patch. + - "System Message" warnings are now automatically removed from the built documentation, and only written to stderr. If you want the old behavior, set the new config value ``keep_warnings`` to True. @@ -100,6 +99,11 @@ - Figures with captions can now be referred to like section titles, using the ``:ref:`` role without an explicit link text. + - Added a distutils command `build_sphinx`: When Sphinx is installed, + you can call ``python setup.py build_sphinx`` for projects that have + Sphinx documentation, which will build the docs and place them in + the standard distutils build directory. + - In quickstart, if the selected root path already contains a Sphinx project, complain and abort. Modified: doctools/trunk/doc/concepts.rst ============================================================================== --- doctools/trunk/doc/concepts.rst (original) +++ doctools/trunk/doc/concepts.rst Wed Sep 24 18:13:36 2008 @@ -129,6 +129,11 @@ documents or document-containing directories with such names. (Using ``_`` as a prefix for a custom template directory is fine.) +.. toctree:: + + x + +note [#]_. .. rubric:: Footnotes @@ -142,3 +147,5 @@ constructs ``*``, ``?``, ``[...]`` and ``[!...]`` with the feature that these all don't match slashes. A double star ``**`` can be used to match any sequence of characters *including* slashes. + +.. [#] 3rd note. Modified: doctools/trunk/sphinx/builder.py ============================================================================== --- doctools/trunk/sphinx/builder.py (original) +++ doctools/trunk/sphinx/builder.py Wed Sep 24 18:13:36 2008 @@ -1019,8 +1019,9 @@ self.warn('%s: toctree contains ref to nonexisting file %r' % (docname, includefile)) else: - newnodes.append(addnodes.start_of_file()) - newnodes.extend(subtree.children) + sof = addnodes.start_of_file() + sof.children = subtree.children + newnodes.append(sof) toctreenode.parent.replace(toctreenode, newnodes) return tree tree = self.env.get_doctree(indexfile) @@ -1046,7 +1047,7 @@ newnodes = [nodes.emphasis(sectname, sectname)] for subdir, title in self.titles: if docname.startswith(subdir): - newnodes.append(nodes.Text(' (in ', ' (in ')) + newnodes.append(nodes.Text(_(' (in '), _(' (in '))) newnodes.append(nodes.emphasis(title, title)) newnodes.append(nodes.Text(')', ')')) break Modified: doctools/trunk/sphinx/latexwriter.py ============================================================================== --- doctools/trunk/sphinx/latexwriter.py (original) +++ doctools/trunk/sphinx/latexwriter.py Wed Sep 24 18:13:36 2008 @@ -195,6 +195,7 @@ self.highlightlang = builder.config.highlight_language self.highlightlinenothreshold = sys.maxint self.written_ids = set() + self.footnotestack = [] if self.elements['docclass'] == 'manual': if builder.config.latex_use_parts: self.top_sectionlevel = 0 @@ -216,6 +217,7 @@ u''.join(self.body) + FOOTER % self.elements) def visit_document(self, node): + self.footnotestack.append(self.collect_footnotes(node)) if self.first_document == 1: # the first document is all the regular content ... self.body.append(BEGIN_DOC % self.elements) @@ -244,7 +246,28 @@ # This marks the begin of a new file; therefore the current module and # class must be reset self.body.append('\n\\resetcurrentobjects\n') - raise nodes.SkipNode + # and also, new footnotes + self.footnotestack.append(self.collect_footnotes(node)) + + def collect_footnotes(self, node): + fnotes = {} + def footnotes_under(n): + if isinstance(n, nodes.footnote): + yield n + else: + for c in n.children: + if isinstance(c, addnodes.start_of_file): + continue + for k in footnotes_under(c): + yield k + for fn in footnotes_under(node): + num = fn.children[0].astext().strip() + fnotes[num] = fn + fn.parent.remove(fn) + return fnotes + + def depart_start_of_file(self, node): + self.footnotestack.pop() def visit_highlightlang(self, node): self.highlightlang = node['lang'] @@ -478,11 +501,9 @@ self.body.append(self.context.pop()) def visit_footnote(self, node): - # XXX not optimal, footnotes are at section end - num = node.children[0].astext().strip() - self.body.append('\\footnotetext[%s]{' % num) + pass def depart_footnote(self, node): - self.body.append('}') + pass def visit_label(self, node): if isinstance(node.parent, nodes.citation): @@ -918,8 +939,16 @@ raise nodes.SkipNode def visit_footnote_reference(self, node): - self.body.append('\\footnotemark[%s]' % node.astext()) - raise nodes.SkipNode + num = node.astext().strip() + try: + fn = self.footnotestack[-1][num] + except (KeyError, IndexError): + raise nodes.SkipNode + self.body.append('\\footnote{') + fn.walkabout(self) + raise nodes.SkipChildren + def depart_footnote_reference(self, node): + self.body.append('}') def visit_literal_block(self, node): self.verbatim = '' From python-checkins at python.org Wed Sep 24 18:18:45 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 18:18:45 +0200 (CEST) Subject: [Python-checkins] r66595 - in doctools/trunk/doc: concepts.rst conf.py Message-ID: <20080924161845.7444E1E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 18:18:45 2008 New Revision: 66595 Log: Use palatino for the Sphinx docs. Modified: doctools/trunk/doc/concepts.rst doctools/trunk/doc/conf.py Modified: doctools/trunk/doc/concepts.rst ============================================================================== --- doctools/trunk/doc/concepts.rst (original) +++ doctools/trunk/doc/concepts.rst Wed Sep 24 18:18:45 2008 @@ -129,11 +129,6 @@ documents or document-containing directories with such names. (Using ``_`` as a prefix for a custom template directory is fine.) -.. toctree:: - - x - -note [#]_. .. rubric:: Footnotes @@ -147,5 +142,3 @@ constructs ``*``, ``?``, ``[...]`` and ``[!...]`` with the feature that these all don't match slashes. A double star ``**`` can be used to match any sequence of characters *including* slashes. - -.. [#] 3rd note. Modified: doctools/trunk/doc/conf.py ============================================================================== --- doctools/trunk/doc/conf.py (original) +++ doctools/trunk/doc/conf.py Wed Sep 24 18:18:45 2008 @@ -126,7 +126,9 @@ #latex_use_parts = True # Additional stuff for the LaTeX preamble. -#latex_preamble = '' +latex_elements = { + 'fontpkg': '\\usepackage{palatino}' +} # Documents to append as an appendix to all manuals. #latex_appendices = [] From python-checkins at python.org Wed Sep 24 18:42:21 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 18:42:21 +0200 (CEST) Subject: [Python-checkins] r66596 - in sandbox/trunk/setuptools/setuptools: command/easy_install.py tests/test_resources.py Message-ID: <20080924164221.350BF1E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 18:42:20 2008 New Revision: 66596 Log: Fix for http://bugs.python.org/setuptools/issue27 (Jython shebang lines) Modified: sandbox/trunk/setuptools/setuptools/command/easy_install.py sandbox/trunk/setuptools/setuptools/tests/test_resources.py Modified: sandbox/trunk/setuptools/setuptools/command/easy_install.py ============================================================================== --- sandbox/trunk/setuptools/setuptools/command/easy_install.py (original) +++ sandbox/trunk/setuptools/setuptools/command/easy_install.py Wed Sep 24 18:42:20 2008 @@ -1415,8 +1415,7 @@ options = '' if match: options = match.group(1) or '' - if options: - options = ' '+options + if options: options = ' '+options if wininst: executable = "python.exe" else: @@ -1430,7 +1429,8 @@ # else: punt, we can't do it, let the warning happen anyway else: options = ' -x' - hdr = "#!%(executable)s%(options)s\n" % locals() + executable = fix_jython_executable(executable, options) + hdr = "#!%(executable)s%(options)s\n" % locals() return hdr def auto_chmod(func, arg, exc): @@ -1465,14 +1465,14 @@ else: return True - - - - - - - - +def is_sh(executable): + """Determine if the specified executable is a .sh (contains a #! line)""" + try: + fp = open(executable) + magic = fp.read(2) + fp.close() + except (OSError,IOError): return executable + return magic == '#!' def nt_quote_arg(arg): """Quote a command line argument according to Windows parsing rules""" @@ -1520,10 +1520,8 @@ """ if filename.endswith('.py') or filename.endswith('.pyw'): return True # extension says it's Python - if is_python(script_text, filename): return True # it's syntactically valid Python - if script_text.startswith('#!'): # It begins with a '#!' line, so check if 'python' is in it somewhere return 'python' in script_text.splitlines()[0].lower() @@ -1543,17 +1541,19 @@ except os.error, e: log.debug("chmod failed: %s", e) - - - - - - - - - - - +def fix_jython_executable(executable, options): + if sys.platform.startswith('java') and is_sh(executable): + # Workaround Jython's sys.executable being a .sh (an invalid + # shebang line interpreter) + if options: + # Can't apply the workaround, leave it broken + log.warn("WARNING: Unable to adapt shebang line for Jython," + " the following script is NOT executable\n" + " see http://bugs.jython.org/issue1112 for" + " more information.") + else: + return '/usr/bin/env %s' % executable + return executable def get_script_args(dist, executable=sys_executable, wininst=False): Modified: sandbox/trunk/setuptools/setuptools/tests/test_resources.py ============================================================================== --- sandbox/trunk/setuptools/setuptools/tests/test_resources.py (original) +++ sandbox/trunk/setuptools/setuptools/tests/test_resources.py Wed Sep 24 18:42:20 2008 @@ -1,8 +1,10 @@ -from unittest import TestCase, makeSuite -from pkg_resources import * -import pkg_resources, sys -try: - frozenset +#!/usr/bin/python +# -*- coding: utf-8 -*- +# NOTE: the shebang and encoding lines are for ScriptHeaderTests; do not remove +from unittest import TestCase, makeSuite; from pkg_resources import * +from setuptools.command.easy_install import get_script_header, is_sh +import os, pkg_resources, sys, StringIO +try: frozenset except NameError: from sets import ImmutableSet as frozenset @@ -28,14 +30,12 @@ ad = Environment([], platform=None, python=None) self.assertEqual(list(ad), []) self.assertEqual(ad['FooPkg'],[]) - ad.add(Distribution.from_filename("FooPkg-1.3_1.egg")) ad.add(Distribution.from_filename("FooPkg-1.4-py2.4-win32.egg")) ad.add(Distribution.from_filename("FooPkg-1.2-py2.4.egg")) # Name is in there now self.failUnless(ad['FooPkg']) - # But only 1 package self.assertEqual(list(ad), ['foopkg']) @@ -490,4 +490,44 @@ +class ScriptHeaderTests(TestCase): + non_ascii_exe = '/Users/Jos?/bin/python' + + def test_get_script_header(self): + if not sys.platform.startswith('java') or not is_sh(sys.executable): + # This test is for non-Jython platforms + self.assertEqual(get_script_header('#!/usr/local/bin/python'), + '#!%s\n' % os.path.normpath(sys.executable)) + self.assertEqual(get_script_header('#!/usr/bin/python -x'), + '#!%s -x\n' % os.path.normpath(sys.executable)) + self.assertEqual(get_script_header('#!/usr/bin/python', + executable=self.non_ascii_exe), + '#!%s -x\n' % self.non_ascii_exe) + + def test_get_script_header_jython_workaround(self): + platform = sys.platform + sys.platform = 'java1.5.0_13' + stdout = sys.stdout + try: + # A mock sys.executable that uses a shebang line (this file) + exe = os.path.normpath(os.path.splitext(__file__)[0] + '.py') + self.assertEqual( + get_script_header('#!/usr/local/bin/python', executable=exe), + '#!/usr/bin/env %s\n' % exe) + + # Ensure we generate what is basically a broken shebang line + # when there's options, with a warning emitted + sys.stdout = StringIO.StringIO() + self.assertEqual(get_script_header('#!/usr/bin/python -x', + executable=exe), + '#!%s -x\n' % exe) + self.assert_('Unable to adapt shebang line' in sys.stdout.getvalue()) + sys.stdout = StringIO.StringIO() + self.assertEqual(get_script_header('#!/usr/bin/python', + executable=self.non_ascii_exe), + '#!%s -x\n' % self.non_ascii_exe) + self.assert_('Unable to adapt shebang line' in sys.stdout.getvalue()) + finally: + sys.platform = platform + sys.stdout = stdout From python-checkins at python.org Wed Sep 24 18:44:07 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 18:44:07 +0200 (CEST) Subject: [Python-checkins] r66597 - in sandbox/branches/setuptools-0.6/setuptools: command/easy_install.py tests/test_resources.py Message-ID: <20080924164407.4A5D81E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 18:44:06 2008 New Revision: 66597 Log: Backport fix for http://bugs.python.org/setuptools/issue27 Modified: sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py sandbox/branches/setuptools-0.6/setuptools/tests/test_resources.py Modified: sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py (original) +++ sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py Wed Sep 24 18:44:06 2008 @@ -1415,8 +1415,7 @@ options = '' if match: options = match.group(1) or '' - if options: - options = ' '+options + if options: options = ' '+options if wininst: executable = "python.exe" else: @@ -1430,7 +1429,8 @@ # else: punt, we can't do it, let the warning happen anyway else: options = ' -x' - hdr = "#!%(executable)s%(options)s\n" % locals() + executable = fix_jython_executable(executable, options) + hdr = "#!%(executable)s%(options)s\n" % locals() return hdr def auto_chmod(func, arg, exc): @@ -1465,14 +1465,14 @@ else: return True - - - - - - - - +def is_sh(executable): + """Determine if the specified executable is a .sh (contains a #! line)""" + try: + fp = open(executable) + magic = fp.read(2) + fp.close() + except (OSError,IOError): return executable + return magic == '#!' def nt_quote_arg(arg): """Quote a command line argument according to Windows parsing rules""" @@ -1520,10 +1520,8 @@ """ if filename.endswith('.py') or filename.endswith('.pyw'): return True # extension says it's Python - if is_python(script_text, filename): return True # it's syntactically valid Python - if script_text.startswith('#!'): # It begins with a '#!' line, so check if 'python' is in it somewhere return 'python' in script_text.splitlines()[0].lower() @@ -1543,17 +1541,19 @@ except os.error, e: log.debug("chmod failed: %s", e) - - - - - - - - - - - +def fix_jython_executable(executable, options): + if sys.platform.startswith('java') and is_sh(executable): + # Workaround Jython's sys.executable being a .sh (an invalid + # shebang line interpreter) + if options: + # Can't apply the workaround, leave it broken + log.warn("WARNING: Unable to adapt shebang line for Jython," + " the following script is NOT executable\n" + " see http://bugs.jython.org/issue1112 for" + " more information.") + else: + return '/usr/bin/env %s' % executable + return executable def get_script_args(dist, executable=sys_executable, wininst=False): Modified: sandbox/branches/setuptools-0.6/setuptools/tests/test_resources.py ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools/tests/test_resources.py (original) +++ sandbox/branches/setuptools-0.6/setuptools/tests/test_resources.py Wed Sep 24 18:44:06 2008 @@ -1,8 +1,10 @@ -from unittest import TestCase, makeSuite -from pkg_resources import * -import pkg_resources, sys -try: - frozenset +#!/usr/bin/python +# -*- coding: utf-8 -*- +# NOTE: the shebang and encoding lines are for ScriptHeaderTests; do not remove +from unittest import TestCase, makeSuite; from pkg_resources import * +from setuptools.command.easy_install import get_script_header, is_sh +import os, pkg_resources, sys, StringIO +try: frozenset except NameError: from sets import ImmutableSet as frozenset @@ -28,14 +30,12 @@ ad = Environment([], platform=None, python=None) self.assertEqual(list(ad), []) self.assertEqual(ad['FooPkg'],[]) - ad.add(Distribution.from_filename("FooPkg-1.3_1.egg")) ad.add(Distribution.from_filename("FooPkg-1.4-py2.4-win32.egg")) ad.add(Distribution.from_filename("FooPkg-1.2-py2.4.egg")) # Name is in there now self.failUnless(ad['FooPkg']) - # But only 1 package self.assertEqual(list(ad), ['foopkg']) @@ -490,4 +490,44 @@ +class ScriptHeaderTests(TestCase): + non_ascii_exe = '/Users/Jos?/bin/python' + + def test_get_script_header(self): + if not sys.platform.startswith('java') or not is_sh(sys.executable): + # This test is for non-Jython platforms + self.assertEqual(get_script_header('#!/usr/local/bin/python'), + '#!%s\n' % os.path.normpath(sys.executable)) + self.assertEqual(get_script_header('#!/usr/bin/python -x'), + '#!%s -x\n' % os.path.normpath(sys.executable)) + self.assertEqual(get_script_header('#!/usr/bin/python', + executable=self.non_ascii_exe), + '#!%s -x\n' % self.non_ascii_exe) + + def test_get_script_header_jython_workaround(self): + platform = sys.platform + sys.platform = 'java1.5.0_13' + stdout = sys.stdout + try: + # A mock sys.executable that uses a shebang line (this file) + exe = os.path.normpath(os.path.splitext(__file__)[0] + '.py') + self.assertEqual( + get_script_header('#!/usr/local/bin/python', executable=exe), + '#!/usr/bin/env %s\n' % exe) + + # Ensure we generate what is basically a broken shebang line + # when there's options, with a warning emitted + sys.stdout = StringIO.StringIO() + self.assertEqual(get_script_header('#!/usr/bin/python -x', + executable=exe), + '#!%s -x\n' % exe) + self.assert_('Unable to adapt shebang line' in sys.stdout.getvalue()) + sys.stdout = StringIO.StringIO() + self.assertEqual(get_script_header('#!/usr/bin/python', + executable=self.non_ascii_exe), + '#!%s -x\n' % self.non_ascii_exe) + self.assert_('Unable to adapt shebang line' in sys.stdout.getvalue()) + finally: + sys.platform = platform + sys.stdout = stdout From python-checkins at python.org Wed Sep 24 18:52:29 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 18:52:29 +0200 (CEST) Subject: [Python-checkins] r66598 - sandbox/trunk/setuptools/ez_setup.py Message-ID: <20080924165229.7BA1C1E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 18:52:29 2008 New Revision: 66598 Log: Fix for http://bugs.python.org/setuptools/issue47 - more md5 usage Modified: sandbox/trunk/setuptools/ez_setup.py Modified: sandbox/trunk/setuptools/ez_setup.py ============================================================================== --- sandbox/trunk/setuptools/ez_setup.py (original) +++ sandbox/trunk/setuptools/ez_setup.py Wed Sep 24 18:52:29 2008 @@ -25,10 +25,11 @@ } import sys, os +try: from hashlib import md5 +except ImportError: from md5 import md5 def _validate_md5(egg_name, data): if egg_name in md5_data: - from md5 import md5 digest = md5(data).hexdigest() if digest != md5_data[egg_name]: print >>sys.stderr, ( @@ -38,7 +39,6 @@ sys.exit(2) return data - def use_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, download_delay=15 @@ -207,7 +207,6 @@ """Update our built-in md5 registry""" import re - from md5 import md5 for name in filenames: base = os.path.basename(name) @@ -244,3 +243,4 @@ + From python-checkins at python.org Wed Sep 24 18:53:14 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 18:53:14 +0200 (CEST) Subject: [Python-checkins] r66599 - sandbox/branches/setuptools-0.6/ez_setup.py Message-ID: <20080924165314.A11161E400A@bag.python.org> Author: phillip.eby Date: Wed Sep 24 18:53:14 2008 New Revision: 66599 Log: Backport fix for http://bugs.python.org/setuptools/issue47 from trunk Modified: sandbox/branches/setuptools-0.6/ez_setup.py Modified: sandbox/branches/setuptools-0.6/ez_setup.py ============================================================================== --- sandbox/branches/setuptools-0.6/ez_setup.py (original) +++ sandbox/branches/setuptools-0.6/ez_setup.py Wed Sep 24 18:53:14 2008 @@ -48,10 +48,11 @@ } import sys, os +try: from hashlib import md5 +except ImportError: from md5 import md5 def _validate_md5(egg_name, data): if egg_name in md5_data: - from md5 import md5 digest = md5(data).hexdigest() if digest != md5_data[egg_name]: print >>sys.stderr, ( @@ -61,7 +62,6 @@ sys.exit(2) return data - def use_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, download_delay=15 @@ -230,7 +230,6 @@ """Update our built-in md5 registry""" import re - from md5 import md5 for name in filenames: base = os.path.basename(name) @@ -267,3 +266,4 @@ + From python-checkins at python.org Wed Sep 24 18:55:02 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 18:55:02 +0200 (CEST) Subject: [Python-checkins] r66600 - in sandbox/branches/setuptools-0.6: EasyInstall.txt setuptools.txt Message-ID: <20080924165502.8BD801E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 18:55:01 2008 New Revision: 66600 Log: Updated release notes Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt sandbox/branches/setuptools-0.6/setuptools.txt Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt ============================================================================== --- sandbox/branches/setuptools-0.6/EasyInstall.txt (original) +++ sandbox/branches/setuptools-0.6/EasyInstall.txt Wed Sep 24 18:55:01 2008 @@ -6,12 +6,9 @@ that lets you automatically download, build, install, and manage Python packages. -(Please share your experiences with us! Whether you encountered success or -difficulty installing a particular package, please add your notes to the -`Experience Reports `_ -page. You'll need to register for a Wiki ID if you don't already have one; you -can do that from the `User Preferences -`_ page. Thanks!) +(Please share your experiences with us! If you encounter difficulty installing +a package, please submit a ticket via the `Setuptools Bug Tracker +`_ page. Thanks!) (Also, if you'd like to learn about how you can use ``setuptools`` to make your own packages work better with EasyInstall, or provide EasyInstall-like features @@ -1232,6 +1229,20 @@ * Changes for Jython compatibility + * Improved error message when a requirement is also a directory name, but the + specified directory is not a source package. + + * Fixed ``--allow-hosts`` option blocking ``file:`` URLs + + * Fixed HTTP SVN detection failing when the page title included a project + name (e.g. on SourceForge-hosted SVN) + + * Fix Jython script installation to handle ``#!`` lines better when + ``sys.executable`` is a script. + + * Removed use of deprecated ``md5`` module if ``hashlib`` is available + + 0.6c7 * ``ftp:`` download URLs now work correctly. Modified: sandbox/branches/setuptools-0.6/setuptools.txt ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools.txt (original) +++ sandbox/branches/setuptools-0.6/setuptools.txt Wed Sep 24 18:55:01 2008 @@ -2618,7 +2618,8 @@ * Updated Pyrex support to work with Pyrex 0.9.6 and higher. - * Minor changes for Jython compatibility + * Minor changes for Jython compatibility, including skipping tests that can't + work on Jython. * Fixed not installing eggs in ``install_requires`` if they were also used for ``setup_requires`` or ``tests_require``. @@ -2633,6 +2634,21 @@ * Support Subversion 1.5 + * Removed use of deprecated ``md5`` module if ``hashlib`` is available + + * Fixed ``bdist_wininst upload`` trying to upload the ``.exe`` twice + + * Fixed ``bdist_egg`` putting a ``native_libs.txt`` in the source package's + ``.egg-info``, when it should only be in the built egg's ``EGG-INFO``. + + * Ensure that _full_name is set on all shared libs before extensions are + checked for shared lib usage. (Fixes a bug in the experimental shared + library build support.) + + * Fix to allow unpacked eggs containing native libraries to fail more + gracefully under Google App Engine (with an ``ImportError`` loading the + C-based module, instead of getting a ``NameError``). + 0.6c7 * Fixed ``distutils.filelist.findall()`` crashing on broken symlinks, and ``egg_info`` command failing on new, uncommitted SVN directories. From python-checkins at python.org Wed Sep 24 18:56:38 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 18:56:38 +0200 (CEST) Subject: [Python-checkins] r66601 - sandbox/trunk/setuptools/pkg_resources.txt Message-ID: <20080924165638.11E371E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 18:56:37 2008 New Revision: 66601 Log: Doc typo fix Modified: sandbox/trunk/setuptools/pkg_resources.txt Modified: sandbox/trunk/setuptools/pkg_resources.txt ============================================================================== --- sandbox/trunk/setuptools/pkg_resources.txt (original) +++ sandbox/trunk/setuptools/pkg_resources.txt Wed Sep 24 18:56:37 2008 @@ -188,7 +188,7 @@ the constructor is called. Note that you will not normally construct ``WorkingSet`` instances - yourbut instead you will implicitly or explicitly use the global + yourself, but instead you will implicitly or explicitly use the global ``working_set`` instance. For the most part, the ``pkg_resources`` API is designed so that the ``working_set`` is used by default, such that you don't have to explicitly refer to it most of the time. From python-checkins at python.org Wed Sep 24 19:02:31 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 19:02:31 +0200 (CEST) Subject: [Python-checkins] r66602 - doctools/branches/0.4.x/sphinx/util/texescape.py Message-ID: <20080924170231.BE9BB1E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 19:02:31 2008 New Revision: 66602 Log: Escape backtick in texescape. Modified: doctools/branches/0.4.x/sphinx/util/texescape.py Modified: doctools/branches/0.4.x/sphinx/util/texescape.py ============================================================================== --- doctools/branches/0.4.x/sphinx/util/texescape.py (original) +++ doctools/branches/0.4.x/sphinx/util/texescape.py Wed Sep 24 19:02:31 2008 @@ -20,6 +20,7 @@ (u'}', ur'\}'), (u'[', ur'{[}'), (u']', ur'{]}'), + (u'`', ur'{}`'), (u'\\',ur'\textbackslash{}'), (u'~', ur'\textasciitilde{}'), (u'<', ur'\textless{}'), From python-checkins at python.org Wed Sep 24 19:05:36 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 19:05:36 +0200 (CEST) Subject: [Python-checkins] r66603 - in sandbox/trunk/setuptools: EasyInstall.txt setuptools.txt Message-ID: <20080924170536.085741E4008@bag.python.org> Author: phillip.eby Date: Wed Sep 24 19:05:35 2008 New Revision: 66603 Log: Fix for http://bugs.python.org/setuptools/issue39 Modified: sandbox/trunk/setuptools/EasyInstall.txt sandbox/trunk/setuptools/setuptools.txt Modified: sandbox/trunk/setuptools/EasyInstall.txt ============================================================================== --- sandbox/trunk/setuptools/EasyInstall.txt (original) +++ sandbox/trunk/setuptools/EasyInstall.txt Wed Sep 24 19:05:35 2008 @@ -6,12 +6,13 @@ that lets you automatically download, build, install, and manage Python packages. -(Please share your experiences with us! Whether you encountered success or -difficulty installing a particular package, please add your notes to the -`Experience Reports `_ -page. You'll need to register for a Wiki ID if you don't already have one; you -can do that from the `User Preferences -`_ page. Thanks!) +Please share your experiences with us! If you encounter difficulty installing +a package, please contact us via the `distutils mailing list +`_. (Note: please DO NOT send +private email directly to the author of setuptools; it will be discarded. The +mailing list is a searchable archive of previously-asked and answered +questions; you should begin your research there before reporting something as a +bug -- and then do so via list discussion first.) (Also, if you'd like to learn about how you can use ``setuptools`` to make your own packages work better with EasyInstall, or provide EasyInstall-like features Modified: sandbox/trunk/setuptools/setuptools.txt ============================================================================== --- sandbox/trunk/setuptools/setuptools.txt (original) +++ sandbox/trunk/setuptools/setuptools.txt Wed Sep 24 19:05:35 2008 @@ -2614,11 +2614,14 @@ forcing namespace packages to be imported early, which 0.7 does not do.) -Mailing list -============ +Mailing List and Bug Tracker +============================ Please use the `distutils-sig mailing list`_ for questions and discussion about -setuptools. +setuptools, and the `setuptools bug tracker`_ ONLY for issues you have +confirmed via the list are actual bugs, and which you have reduced to a minimal +set of steps to reproduce. .. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/ +.. _setuptools bug tracker: http://bugs.python.org/setuptools/ From python-checkins at python.org Wed Sep 24 19:08:47 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 19:08:47 +0200 (CEST) Subject: [Python-checkins] r66604 - in doctools/trunk: sphinx/util/texescape.py Message-ID: <20080924170847.9419F1E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 19:08:47 2008 New Revision: 66604 Log: Merged revisions 66588,66602 via svnmerge from svn+ssh://pythondev at svn.python.org/doctools/branches/0.4.x ........ r66588 | georg.brandl | 2008-09-24 17:25:43 +0200 (Wed, 24 Sep 2008) | 2 lines Fix footer marking. ........ r66602 | georg.brandl | 2008-09-24 19:02:31 +0200 (Wed, 24 Sep 2008) | 2 lines Escape backtick in texescape. ........ Modified: doctools/trunk/ (props changed) doctools/trunk/sphinx/util/texescape.py Modified: doctools/trunk/sphinx/util/texescape.py ============================================================================== --- doctools/trunk/sphinx/util/texescape.py (original) +++ doctools/trunk/sphinx/util/texescape.py Wed Sep 24 19:08:47 2008 @@ -20,6 +20,7 @@ (u'}', ur'\}'), (u'[', ur'{[}'), (u']', ur'{]}'), + (u'`', ur'{}`'), (u'\\',ur'\textbackslash{}'), (u'~', ur'\textasciitilde{}'), (u'<', ur'\textless{}'), From python-checkins at python.org Wed Sep 24 19:09:01 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 19:09:01 +0200 (CEST) Subject: [Python-checkins] r66605 - in sandbox/branches/setuptools-0.6: EasyInstall.txt setuptools.txt Message-ID: <20080924170901.CF88E1E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 19:09:01 2008 New Revision: 66605 Log: Backport http://bugs.python.org/setuptools/issue39 from trunk Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt sandbox/branches/setuptools-0.6/setuptools.txt Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt ============================================================================== --- sandbox/branches/setuptools-0.6/EasyInstall.txt (original) +++ sandbox/branches/setuptools-0.6/EasyInstall.txt Wed Sep 24 19:09:01 2008 @@ -6,9 +6,13 @@ that lets you automatically download, build, install, and manage Python packages. -(Please share your experiences with us! If you encounter difficulty installing -a package, please submit a ticket via the `Setuptools Bug Tracker -`_ page. Thanks!) +Please share your experiences with us! If you encounter difficulty installing +a package, please contact us via the `distutils mailing list +`_. (Note: please DO NOT send +private email directly to the author of setuptools; it will be discarded. The +mailing list is a searchable archive of previously-asked and answered +questions; you should begin your research there before reporting something as a +bug -- and then do so via list discussion first.) (Also, if you'd like to learn about how you can use ``setuptools`` to make your own packages work better with EasyInstall, or provide EasyInstall-like features Modified: sandbox/branches/setuptools-0.6/setuptools.txt ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools.txt (original) +++ sandbox/branches/setuptools-0.6/setuptools.txt Wed Sep 24 19:09:01 2008 @@ -3104,11 +3104,14 @@ * Initial release. -Mailing list -============ +Mailing List and Bug Tracker +============================ Please use the `distutils-sig mailing list`_ for questions and discussion about -setuptools. +setuptools, and the `setuptools bug tracker`_ ONLY for issues you have +confirmed via the list are actual bugs, and which you have reduced to a minimal +set of steps to reproduce. .. _distutils-sig mailing list: http://mail.python.org/pipermail/distutils-sig/ +.. _setuptools bug tracker: http://bugs.python.org/setuptools/ From python-checkins at python.org Wed Sep 24 19:09:48 2008 From: python-checkins at python.org (georg.brandl) Date: Wed, 24 Sep 2008 19:09:48 +0200 (CEST) Subject: [Python-checkins] r66606 - in doctools/trunk: CHANGES sphinx/environment.py sphinx/roles.py Message-ID: <20080924170948.BCB4D1E4006@bag.python.org> Author: georg.brandl Date: Wed Sep 24 19:09:48 2008 New Revision: 66606 Log: Add cmember role (#3875). Modified: doctools/trunk/CHANGES doctools/trunk/sphinx/environment.py doctools/trunk/sphinx/roles.py Modified: doctools/trunk/CHANGES ============================================================================== --- doctools/trunk/CHANGES (original) +++ doctools/trunk/CHANGES Wed Sep 24 19:09:48 2008 @@ -107,6 +107,8 @@ - In quickstart, if the selected root path already contains a Sphinx project, complain and abort. + - Added ``cmember`` role for consistency. + Release 0.4.2 (Jul 29, 2008) ============================ Modified: doctools/trunk/sphinx/environment.py ============================================================================== --- doctools/trunk/sphinx/environment.py (original) +++ doctools/trunk/sphinx/environment.py Wed Sep 24 19:09:48 2008 @@ -902,8 +902,8 @@ refnode.children = [nodes.Text(newtitle)] return newnode - descroles = frozenset(('data', 'exc', 'func', 'class', 'const', 'attr', - 'meth', 'cfunc', 'cdata', 'ctype', 'cmacro', 'obj')) + descroles = frozenset(('data', 'exc', 'func', 'class', 'const', 'attr', 'obj', + 'meth', 'cfunc', 'cmember', 'cdata', 'ctype', 'cmacro')) def resolve_references(self, doctree, fromdocname, builder): reftarget_roles = set(('token', 'term', 'option')) Modified: doctools/trunk/sphinx/roles.py ============================================================================== --- doctools/trunk/sphinx/roles.py (original) +++ doctools/trunk/sphinx/roles.py Wed Sep 24 19:09:48 2008 @@ -212,6 +212,7 @@ 'meth': xfileref_role, 'obj': xfileref_role, 'cfunc' : xfileref_role, + 'cmember': xfileref_role, 'cdata' : xfileref_role, 'ctype' : xfileref_role, 'cmacro' : xfileref_role, From python-checkins at python.org Wed Sep 24 19:11:50 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 19:11:50 +0200 (CEST) Subject: [Python-checkins] r66607 - sandbox/branches/setuptools-0.6/ez_setup.py Message-ID: <20080924171150.AEBBF1E4006@bag.python.org> Author: phillip.eby Date: Wed Sep 24 19:11:50 2008 New Revision: 66607 Log: Update w/0.6c8 signatures Modified: sandbox/branches/setuptools-0.6/ez_setup.py Modified: sandbox/branches/setuptools-0.6/ez_setup.py ============================================================================== --- sandbox/branches/setuptools-0.6/ez_setup.py (original) +++ sandbox/branches/setuptools-0.6/ez_setup.py Wed Sep 24 19:11:50 2008 @@ -45,6 +45,9 @@ 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', + 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', + 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', + 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', } import sys, os From python-checkins at python.org Wed Sep 24 19:20:09 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 19:20:09 +0200 (CEST) Subject: [Python-checkins] r66608 - sandbox/trunk/setuptools/setuptools/command/easy_install.py Message-ID: <20080924172009.9B1431E4015@bag.python.org> Author: phillip.eby Date: Wed Sep 24 19:20:09 2008 New Revision: 66608 Log: Keep site directories (e.g. site-packages) from being included in .pth files. Modified: sandbox/trunk/setuptools/setuptools/command/easy_install.py Modified: sandbox/trunk/setuptools/setuptools/command/easy_install.py ============================================================================== --- sandbox/trunk/setuptools/setuptools/command/easy_install.py (original) +++ sandbox/trunk/setuptools/setuptools/command/easy_install.py Wed Sep 24 19:20:09 2008 @@ -272,7 +272,7 @@ if is_site_dir: if self.pth_file is None: - self.pth_file = PthDistributions(pth_file) + self.pth_file = PthDistributions(pth_file, self.all_site_dirs) else: self.pth_file = None @@ -1315,8 +1315,8 @@ dirty = False - def __init__(self, filename): - self.filename = filename + def __init__(self, filename, sitedirs=()): + self.filename = filename; self.sitedirs=map(normalize_path, sitedirs) self.basedir = normalize_path(os.path.dirname(self.filename)) self._load(); Environment.__init__(self, [], None, None) for path in yield_lines(self.paths): @@ -1325,7 +1325,7 @@ def _load(self): self.paths = [] saw_import = False - seen = {} + seen = dict.fromkeys(self.sitedirs) if os.path.isfile(self.filename): for line in open(self.filename,'rt'): if line.startswith('import'): @@ -1381,7 +1381,7 @@ def add(self,dist): """Add `dist` to the distribution map""" - if dist.location not in self.paths: + if dist.location not in self.paths and dist.location not in self.sitedirs: self.paths.append(dist.location); self.dirty = True Environment.add(self,dist) From python-checkins at python.org Wed Sep 24 19:22:01 2008 From: python-checkins at python.org (phillip.eby) Date: Wed, 24 Sep 2008 19:22:01 +0200 (CEST) Subject: [Python-checkins] r66609 - in sandbox/branches/setuptools-0.6: EasyInstall.txt setuptools/command/easy_install.py Message-ID: <20080924172201.267EE1E400C@bag.python.org> Author: phillip.eby Date: Wed Sep 24 19:22:00 2008 New Revision: 66609 Log: Keep site directories (e.g. site-packages) from being included in .pth files. (backport from trunk) Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py Modified: sandbox/branches/setuptools-0.6/EasyInstall.txt ============================================================================== --- sandbox/branches/setuptools-0.6/EasyInstall.txt (original) +++ sandbox/branches/setuptools-0.6/EasyInstall.txt Wed Sep 24 19:22:00 2008 @@ -1246,6 +1246,8 @@ * Removed use of deprecated ``md5`` module if ``hashlib`` is available + * Keep site directories (e.g. ``site-packages``) from being included in + ``.pth`` files. 0.6c7 * ``ftp:`` download URLs now work correctly. Modified: sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py ============================================================================== --- sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py (original) +++ sandbox/branches/setuptools-0.6/setuptools/command/easy_install.py Wed Sep 24 19:22:00 2008 @@ -272,7 +272,7 @@ if is_site_dir: if self.pth_file is None: - self.pth_file = PthDistributions(pth_file) + self.pth_file = PthDistributions(pth_file, self.all_site_dirs) else: self.pth_file = None @@ -1315,8 +1315,8 @@ dirty = False - def __init__(self, filename): - self.filename = filename + def __init__(self, filename, sitedirs=()): + self.filename = filename; self.sitedirs=map(normalize_path, sitedirs) self.basedir = normalize_path(os.path.dirname(self.filename)) self._load(); Environment.__init__(self, [], None, None) for path in yield_lines(self.paths): @@ -1325,7 +1325,7 @@ def _load(self): self.paths = [] saw_import = False - seen = {} + seen = dict.fromkeys(self.sitedirs) if os.path.isfile(self.filename): for line in open(self.filename,'rt'): if line.startswith('import'): @@ -1381,7 +1381,7 @@ def add(self,dist): """Add `dist` to the distribution map""" - if dist.location not in self.paths: + if dist.location not in self.paths and dist.location not in self.sitedirs: self.paths.append(dist.location); self.dirty = True Environment.add(self,dist) From python-checkins at python.org Wed Sep 24 19:27:55 2008 From: python-checkins at python.org (andrew.kuchling) Date: Wed, 24 Sep 2008 19:27:55 +0200 (CEST) Subject: [Python-checkins] r66610 - python/trunk/Doc/library/socket.rst Message-ID: <20080924172755.6038C1E4006@bag.python.org> Author: andrew.kuchling Date: Wed Sep 24 19:27:55 2008 New Revision: 66610 Log: Improve wording Modified: python/trunk/Doc/library/socket.rst Modified: python/trunk/Doc/library/socket.rst ============================================================================== --- python/trunk/Doc/library/socket.rst (original) +++ python/trunk/Doc/library/socket.rst Wed Sep 24 19:27:55 2008 @@ -219,18 +219,18 @@ .. function:: getaddrinfo(host, port[, family[, socktype[, proto[, flags]]]]) Resolves the *host*/*port* argument, into a sequence of 5-tuples that contain - all the necessary argument for the sockets manipulation. *host* is a domain - name, a string representation of IPv4/v6 address or ``None``. *port* is a string - service name (like ``'http'``), a numeric port number or ``None``. + all the necessary arguments for creating the corresponding socket. *host* is a domain + name, a string representation of an IPv4/v6 address or ``None``. *port* is a string + service name such as ``'http'``, a numeric port number or ``None``. + The rest of the arguments are optional and must be numeric if specified. + By passing ``None`` as the value of *host* and *port*, , you can pass ``NULL`` to the C API. - The rest of the arguments are optional and must be numeric if specified. For - *host* and *port*, by passing ``None``, you can pass ``NULL`` to the C API. The :func:`getaddrinfo` function returns a list of 5-tuples with the following structure: ``(family, socktype, proto, canonname, sockaddr)`` - *family*, *socktype*, *proto* are all integer and are meant to be passed to the + *family*, *socktype*, *proto* are all integers and are meant to be passed to the :func:`socket` function. *canonname* is a string representing the canonical name of the *host*. It can be a numeric IPv4/v6 address when :const:`AI_CANONNAME` is specified for a numeric *host*. *sockaddr* is a tuple describing a socket @@ -244,7 +244,7 @@ Return a fully qualified domain name for *name*. If *name* is omitted or empty, it is interpreted as the local host. To find the fully qualified name, the - hostname returned by :func:`gethostbyaddr` is checked, then aliases for the + hostname returned by :func:`gethostbyaddr` is checked, followed by aliases for the host, if available. The first name which includes a period is selected. In case no fully qualified domain name is available, the hostname as returned by :func:`gethostname` is returned. From python-checkins at python.org Wed Sep 24 20:26:05 2008 From: python-checkins at python.org (thomas.heller) Date: Wed, 24 Sep 2008 20:26:05 +0200 (CEST) Subject: [Python-checkins] r66611 - in python/trunk: Lib/ctypes/test/test_bitfields.py Misc/NEWS Modules/_ctypes/cfield.c Message-ID: <20080924182605.58E9F1E4008@bag.python.org> Author: thomas.heller Date: Wed Sep 24 20:26:05 2008 New Revision: 66611 Log: Fix issue #3547: ctypes is confused by bitfields of varying integer types Reviewed by Fredrik Lundh and Skip Montanaro. Modified: python/trunk/Lib/ctypes/test/test_bitfields.py python/trunk/Misc/NEWS python/trunk/Modules/_ctypes/cfield.c Modified: python/trunk/Lib/ctypes/test/test_bitfields.py ============================================================================== --- python/trunk/Lib/ctypes/test/test_bitfields.py (original) +++ python/trunk/Lib/ctypes/test/test_bitfields.py Wed Sep 24 20:26:05 2008 @@ -215,6 +215,21 @@ ("b", c_ubyte, 4)] self.failUnlessEqual(sizeof(X), sizeof(c_byte)) + def test_mixed_4(self): + class X(Structure): + _fields_ = [("a", c_short, 4), + ("b", c_short, 4), + ("c", c_int, 24), + ("d", c_short, 4), + ("e", c_short, 4), + ("f", c_int, 24)] + # MS compilers do NOT combine c_short and c_int into + # one field, gcc does. + if os.name in ("nt", "ce"): + self.failUnlessEqual(sizeof(X), sizeof(c_int) * 4) + else: + self.failUnlessEqual(sizeof(X), sizeof(c_int) * 2) + def test_anon_bitfields(self): # anonymous bit-fields gave a strange error message class X(Structure): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Wed Sep 24 20:26:05 2008 @@ -15,6 +15,9 @@ Library ------- +- Issue #3547: Fixed ctypes structures bitfields of varying integer + sizes. + - Issue #3879: A regression in urllib.getproxies_enviroment was fixed. Build Modified: python/trunk/Modules/_ctypes/cfield.c ============================================================================== --- python/trunk/Modules/_ctypes/cfield.c (original) +++ python/trunk/Modules/_ctypes/cfield.c Wed Sep 24 20:26:05 2008 @@ -163,7 +163,7 @@ break; case EXPAND_BITFIELD: - /* XXX needs more */ + *poffset += dict->size - *pfield_size/8; *psize += dict->size - *pfield_size/8; *pfield_size = dict->size * 8; From buildbot at python.org Wed Sep 24 20:56:07 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Sep 2008 18:56:07 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080924185607.84F2E1E4008@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/264 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,georg.brandl,thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_kqueue ====================================================================== FAIL: test_queue_event (test.test_kqueue.TestKQueue) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_kqueue.py", line 136, in test_queue_event (server.fileno(), select.KQ_FILTER_READ, flags)]) AssertionError: [(19L, -2, 5L), (20L, -2, 5L)] != [(19, -2, 5), (19, -1, 5), (20, -2, 5), (20, -1, 5)] make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Wed Sep 24 21:00:22 2008 From: python-checkins at python.org (thomas.heller) Date: Wed, 24 Sep 2008 21:00:22 +0200 (CEST) Subject: [Python-checkins] r66612 - in python/branches/release25-maint: Lib/ctypes/test/test_bitfields.py Misc/NEWS Modules/_ctypes/cfield.c Message-ID: <20080924190022.249ED1E4008@bag.python.org> Author: thomas.heller Date: Wed Sep 24 21:00:21 2008 New Revision: 66612 Log: Fix issue #3547: ctypes is confused by bitfields of varying integer types Reviewed by Fredrik Lundh and Skip Montanaro. Backport from trunk. Modified: python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Modules/_ctypes/cfield.c Modified: python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py ============================================================================== --- python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py (original) +++ python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py Wed Sep 24 21:00:21 2008 @@ -215,6 +215,21 @@ ("b", c_ubyte, 4)] self.failUnlessEqual(sizeof(X), sizeof(c_byte)) + def test_mixed_4(self): + class X(Structure): + _fields_ = [("a", c_short, 4), + ("b", c_short, 4), + ("c", c_int, 24), + ("d", c_short, 4), + ("e", c_short, 4), + ("f", c_int, 24)] + # MS compilers do NOT combine c_short and c_int into + # one field, gcc does. + if os.name in ("nt", "ce"): + self.failUnlessEqual(sizeof(X), sizeof(c_int) * 4) + else: + self.failUnlessEqual(sizeof(X), sizeof(c_int) * 2) + def test_anon_bitfields(self): # anonymous bit-fields gave a strange error message class X(Structure): Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Wed Sep 24 21:00:21 2008 @@ -86,6 +86,9 @@ Library ------- +- Issue #3547: Fixed ctypes structures bitfields of varying integer + sizes. + - Issue #3762: platform.architecture() fails if python is lanched via its symbolic link. Modified: python/branches/release25-maint/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/release25-maint/Modules/_ctypes/cfield.c (original) +++ python/branches/release25-maint/Modules/_ctypes/cfield.c Wed Sep 24 21:00:21 2008 @@ -163,7 +163,7 @@ break; case EXPAND_BITFIELD: - /* XXX needs more */ + *poffset += dict->size - *pfield_size/8; *psize += dict->size - *pfield_size/8; *pfield_size = dict->size * 8; From buildbot at python.org Wed Sep 24 21:16:17 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Sep 2008 19:16:17 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080924191617.B6CB51E4011@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/201 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,georg.brandl,thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From buildbot at python.org Wed Sep 24 21:27:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Sep 2008 19:27:21 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080924192721.3FA6E1E400A@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3959 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,georg.brandl,thomas.heller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 25 00:11:59 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 25 Sep 2008 00:11:59 +0200 (CEST) Subject: [Python-checkins] r66614 - python/trunk/Lib/lib-tk/turtle.py Message-ID: <20080924221159.F08FA1E4014@bag.python.org> Author: benjamin.peterson Date: Thu Sep 25 00:11:59 2008 New Revision: 66614 Log: #3950 fix missing scale factors in turtle.py reviewers: Georg, Benjamin Modified: python/trunk/Lib/lib-tk/turtle.py Modified: python/trunk/Lib/lib-tk/turtle.py ============================================================================== --- python/trunk/Lib/lib-tk/turtle.py (original) +++ python/trunk/Lib/lib-tk/turtle.py Thu Sep 25 00:11:59 2008 @@ -732,7 +732,7 @@ """Configure image item as to draw image object at position (x,y) on canvas) """ - self.cv.coords(item, (x, -y)) + self.cv.coords(item, (x * self.xscale, -y * self.yscale)) self.cv.itemconfig(item, image=image) def _setbgpic(self, item, image): From buildbot at python.org Thu Sep 25 01:19:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Sep 2008 23:19:44 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080924231944.890F11E4008@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/416 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/3.0.heller-x86-osx5/build/Lib/test/test_socket.py", line 121, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 25 01:57:42 2008 From: buildbot at python.org (buildbot at python.org) Date: Wed, 24 Sep 2008 23:57:42 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080924235742.739171E4008@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1445 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From martin at v.loewis.de Thu Sep 25 05:51:41 2008 From: martin at v.loewis.de (=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=) Date: Thu, 25 Sep 2008 05:51:41 +0200 Subject: [Python-checkins] r66614 - python/trunk/Lib/lib-tk/turtle.py In-Reply-To: <20080924221159.F08FA1E4014@bag.python.org> References: <20080924221159.F08FA1E4014@bag.python.org> Message-ID: <48DB0ACD.7030603@v.loewis.de> > Log: > #3950 fix missing scale factors in turtle.py > > reviewers: Georg, Benjamin > > > Modified: > python/trunk/Lib/lib-tk/turtle.py Shouldn't there be a NEWS entry for this, also? Regards, Martin From python-checkins at python.org Thu Sep 25 06:12:50 2008 From: python-checkins at python.org (martin.v.loewis) Date: Thu, 25 Sep 2008 06:12:50 +0200 (CEST) Subject: [Python-checkins] r66616 - in python/trunk: Misc/NEWS Objects/obmalloc.c Message-ID: <20080925041250.B4A561E4008@bag.python.org> Author: martin.v.loewis Date: Thu Sep 25 06:12:50 2008 New Revision: 66616 Log: Bug #3951: Py_USING_MEMORY_DEBUGGER should not be enabled by default. Modified: python/trunk/Misc/NEWS python/trunk/Objects/obmalloc.c Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 25 06:12:50 2008 @@ -12,6 +12,8 @@ Core and Builtins ----------------- +- Bug #3951: Py_USING_MEMORY_DEBUGGER should not be enabled by default. + Library ------- Modified: python/trunk/Objects/obmalloc.c ============================================================================== --- python/trunk/Objects/obmalloc.c (original) +++ python/trunk/Objects/obmalloc.c Thu Sep 25 06:12:50 2008 @@ -677,8 +677,8 @@ /* This is only useful when running memory debuggers such as * Purify or Valgrind. Uncomment to use. * - */ #define Py_USING_MEMORY_DEBUGGER + */ #ifdef Py_USING_MEMORY_DEBUGGER From buildbot at python.org Thu Sep 25 06:41:32 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 04:41:32 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080925044133.2478B1E400C@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1469 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 25 06:42:03 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 04:42:03 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 trunk Message-ID: <20080925044204.15AB71E4011@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%20trunk/builds/267 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/trunk.heller-x86-osx5/build/Lib/test/test_socket.py", line 120, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 25 07:15:04 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 05:15:04 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080925051504.6A6AD1E4005@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1587 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Thu Sep 25 07:25:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 05:25:56 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian trunk Message-ID: <20080925052556.9B9931E4005@bag.python.org> The Buildbot has detected a new failure of S-390 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%20trunk/builds/1126 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Thu Sep 25 22:35:46 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 25 Sep 2008 22:35:46 +0200 (CEST) Subject: [Python-checkins] r66618 - python/trunk/Misc/NEWS Message-ID: <20080925203546.2939A1E4009@bag.python.org> Author: benjamin.peterson Date: Thu Sep 25 22:35:45 2008 New Revision: 66618 Log: add a NEWs entry for r66614 Modified: python/trunk/Misc/NEWS Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 25 22:35:45 2008 @@ -17,6 +17,8 @@ Library ------- +- Issue #3950: Made turtle respect scale factors. + - Issue #3547: Fixed ctypes structures bitfields of varying integer sizes. From python-checkins at python.org Thu Sep 25 22:46:06 2008 From: python-checkins at python.org (benjamin.peterson) Date: Thu, 25 Sep 2008 22:46:06 +0200 (CEST) Subject: [Python-checkins] r66619 - in python/branches/release25-maint: Lib/test/test_with.py Misc/NEWS Parser/parsetok.c Message-ID: <20080925204606.6EDB01E400C@bag.python.org> Author: benjamin.peterson Date: Thu Sep 25 22:46:05 2008 New Revision: 66619 Log: make sure to give a 'as' and 'with' parser warning even after import statements #3936 Modified: python/branches/release25-maint/Lib/test/test_with.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Parser/parsetok.c Modified: python/branches/release25-maint/Lib/test/test_with.py ============================================================================== --- python/branches/release25-maint/Lib/test/test_with.py (original) +++ python/branches/release25-maint/Lib/test/test_with.py Thu Sep 25 22:46:05 2008 @@ -9,6 +9,7 @@ import sys import unittest +import StringIO from collections import deque from contextlib import GeneratorContextManager, contextmanager from test.test_support import run_unittest @@ -625,12 +626,44 @@ self.fail("ZeroDivisionError should have been raised") +class NewKeywordsWarningTestCase(unittest.TestCase): + + def check(self, code, word=None): + save = sys.stderr + sys.stderr = stream = StringIO.StringIO() + try: + compile(code, "", "exec", 0, True) + finally: + sys.stderr = save + if word: + self.assert_("Warning: %r will become a reserved keyword in Python 2.6" % word + in stream.getvalue()) + else: + self.assertEqual(stream.getvalue(), "") + + def test_basic(self): + self.check("as = 4", "as") + self.check("with = 4", "with") + self.check("class as: pass", "as") + self.check("class with: pass", "with") + self.check("obj.as = 4", "as") + self.check("with.obj = 4", "with") + self.check("def with(): pass", "with") + self.check("do(); with = 23", "with") + + def test_after_import(self): + # issue 3936 + self.check("import sys\nas = 4", "as") + self.check("import sys\nwith = 4", "with") + + def test_main(): run_unittest(FailureTestCase, NonexceptionalTestCase, NestedNonexceptionalTestCase, ExceptionalTestCase, NonLocalFlowControlTestCase, AssignmentTargetTestCase, - ExitSwallowsExceptionTestCase) + ExitSwallowsExceptionTestCase, + NewKeywordsWarningTestCase) if __name__ == '__main__': Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Thu Sep 25 22:46:05 2008 @@ -12,6 +12,9 @@ Core and builtins ----------------- +- Issue #3936: The parser warnings for using "as" and "with" as variable names + didn't fire after import statements. + - Issue #3751: str.rpartition would perform a left-partition when called with a unicode argument. Modified: python/branches/release25-maint/Parser/parsetok.c ============================================================================== --- python/branches/release25-maint/Parser/parsetok.c (original) +++ python/branches/release25-maint/Parser/parsetok.c Thu Sep 25 22:46:05 2008 @@ -137,19 +137,22 @@ err_ret->error = tok->done; break; } - if (type == ENDMARKER && started) { - type = NEWLINE; /* Add an extra newline */ - handling_with = handling_import = 0; - started = 0; - /* Add the right number of dedent tokens, - except if a certain flag is given -- - codeop.py uses this. */ - if (tok->indent && - !(flags & PyPARSE_DONT_IMPLY_DEDENT)) - { - tok->pendin = -tok->indent; - tok->indent = 0; + if (started) { + if (type == ENDMARKER) { + type = NEWLINE; /* Add an extra newline */ + started = 0; + /* Add the right number of dedent tokens, + except if a certain flag is given -- + codeop.py uses this. */ + if (tok->indent && + !(flags & PyPARSE_DONT_IMPLY_DEDENT)) + { + tok->pendin = -tok->indent; + tok->indent = 0; + } } + if (type == NEWLINE) + handling_with = handling_import = 0; } else started = 1; From python-checkins at python.org Thu Sep 25 22:52:56 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Thu, 25 Sep 2008 22:52:56 +0200 (CEST) Subject: [Python-checkins] r66620 - in python/trunk: Lib/test/test_file.py Misc/NEWS Objects/fileobject.c Message-ID: <20080925205256.DCA361E4022@bag.python.org> Author: amaury.forgeotdarc Date: Thu Sep 25 22:52:56 2008 New Revision: 66620 Log: #3965: on Windows, open() crashes if the filename or the mode is invalid, and if the filename is a unicode string. Reviewed by Martin von Loewis. Modified: python/trunk/Lib/test/test_file.py python/trunk/Misc/NEWS python/trunk/Objects/fileobject.c Modified: python/trunk/Lib/test/test_file.py ============================================================================== --- python/trunk/Lib/test/test_file.py (original) +++ python/trunk/Lib/test/test_file.py Thu Sep 25 22:52:56 2008 @@ -134,6 +134,16 @@ f.close() self.fail('%r is an invalid file mode' % mode) + # Some invalid modes fail on Windows, but pass on Unix + # Issue3965: avoid a crash on Windows when filename is unicode + for name in (TESTFN, unicode(TESTFN), unicode(TESTFN + '\t')): + try: + f = open(name, "rr") + except IOError: + pass + else: + f.close() + def testStdin(self): # This causes the interpreter to exit on OSF1 v5.1. if sys.platform != 'osf1V5': Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Thu Sep 25 22:52:56 2008 @@ -12,6 +12,9 @@ Core and Builtins ----------------- +- Issue #3965: Fixed a crash on Windows when open() is given an invalid + filename or mode, and the filename is a unicode string. + - Bug #3951: Py_USING_MEMORY_DEBUGGER should not be enabled by default. Library Modified: python/trunk/Objects/fileobject.c ============================================================================== --- python/trunk/Objects/fileobject.c (original) +++ python/trunk/Objects/fileobject.c Thu Sep 25 22:52:56 2008 @@ -305,10 +305,17 @@ #endif /* EINVAL is returned when an invalid filename or * an invalid mode is supplied. */ - if (errno == EINVAL) - PyErr_Format(PyExc_IOError, - "invalid filename: %s or mode: %s", - name, mode); + if (errno == EINVAL) { + PyObject *v; + char message[100]; + PyOS_snprintf(message, 100, + "invalid mode ('%.50s') or filename", mode); + v = Py_BuildValue("(isO)", errno, message, f->f_name); + if (v != NULL) { + PyErr_SetObject(PyExc_IOError, v); + Py_DECREF(v); + } + } else PyErr_SetFromErrnoWithFilenameObject(PyExc_IOError, f->f_name); f = NULL; From buildbot at python.org Thu Sep 25 23:53:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 21:53:23 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080925215324.0B0751E4008@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1142 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Sep 26 00:01:21 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 22:01:21 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080925220121.C7A2A1E4008@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/602 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Fri Sep 26 00:31:26 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 22:31:26 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080925223126.BA6F81E4008@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3962 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Sep 26 01:15:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 23:15:44 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080925231544.6C9EB1E4008@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1447 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Fri Sep 26 01:21:14 2008 From: buildbot at python.org (buildbot at python.org) Date: Thu, 25 Sep 2008 23:21:14 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 3.0 Message-ID: <20080925232115.0F2861E4008@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%203.0/builds/420 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 4 tests failed: test_calendar test_email test_mailbox test_socket ====================================================================== ERROR: testShutdown (test.test_socket.BasicTCPTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/buildbot/buildarea/3.0.heller-x86-osx5/build/Lib/test/test_socket.py", line 121, in _tearDown self.fail(msg) AssertionError: [Errno 57] Socket is not connected make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 26 01:31:52 2008 From: python-checkins at python.org (raymond.hettinger) Date: Fri, 26 Sep 2008 01:31:52 +0200 (CEST) Subject: [Python-checkins] r66624 - in python/trunk/Lib: collections.py test/test_collections.py Message-ID: <20080925233152.A32341E4008@bag.python.org> Author: raymond.hettinger Date: Fri Sep 26 01:31:52 2008 New Revision: 66624 Log: Fix namedtuple bug reported by Glenn Linderman. Template did not form correctly if the field names were input in Unicode. Modified: python/trunk/Lib/collections.py python/trunk/Lib/test/test_collections.py Modified: python/trunk/Lib/collections.py ============================================================================== --- python/trunk/Lib/collections.py (original) +++ python/trunk/Lib/collections.py Fri Sep 26 01:31:52 2008 @@ -38,7 +38,7 @@ # generating informative error messages and preventing template injection attacks. if isinstance(field_names, basestring): field_names = field_names.replace(',', ' ').split() # names separated by whitespace and/or commas - field_names = tuple(field_names) + field_names = tuple(map(str, field_names)) for name in (typename,) + field_names: if not all(c.isalnum() or c=='_' for c in name): raise ValueError('Type names and field names can only contain alphanumeric characters and underscores: %r' % name) Modified: python/trunk/Lib/test/test_collections.py ============================================================================== --- python/trunk/Lib/test/test_collections.py (original) +++ python/trunk/Lib/test/test_collections.py Fri Sep 26 01:31:52 2008 @@ -34,6 +34,11 @@ namedtuple('Point0', 'x1 y2') # Verify that numbers are allowed in names namedtuple('_', 'a b c') # Test leading underscores in a typename + nt = namedtuple('nt', u'the quick brown fox') # check unicode input + self.assert_("u'" not in repr(nt._fields)) + nt = namedtuple('nt', (u'the', u'quick')) # check unicode input + self.assert_("u'" not in repr(nt._fields)) + self.assertRaises(TypeError, Point._make, [11]) # catch too few args self.assertRaises(TypeError, Point._make, [11, 22, 33]) # catch too many args From buildbot at python.org Fri Sep 26 02:29:35 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Sep 2008 00:29:35 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080926002935.337041E4009@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/604 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Fri Sep 26 04:58:36 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 26 Sep 2008 04:58:36 +0200 (CEST) Subject: [Python-checkins] r66625 - in python/trunk/Doc/howto: cporting.rst index.rst Message-ID: <20080926025836.75A631E400A@bag.python.org> Author: benjamin.peterson Date: Fri Sep 26 04:58:36 2008 New Revision: 66625 Log: add the beginnings of a C-API 2 -> 3 porting guide Added: python/trunk/Doc/howto/cporting.rst (contents, props changed) Modified: python/trunk/Doc/howto/index.rst Added: python/trunk/Doc/howto/cporting.rst ============================================================================== --- (empty file) +++ python/trunk/Doc/howto/cporting.rst Fri Sep 26 04:58:36 2008 @@ -0,0 +1,208 @@ +.. highlightlang:: c + +******************************** +Porting Extension Modules to 3.0 +******************************** + +:author: Benjamin Peterson + + +.. topic:: Abstract + + Although changing the C-API was not one of Python 3.0's objectives, the many + Python level changes made leaving 2.x's API intact impossible. In fact, some + changes such as :func:`int` and :func:`long` unification are more obvious on + the C level. This document endeavors to document incompatibilities and how + they can be worked around. + + +Conditional compilation +======================= + +The easiest way to compile only some code for 3.0 is to check if +:cmacro:`PY_MAJOR_VERSION` is greater than or equal to 3. :: + + #if PY_MAJOR_VERSION >= 3 + #define IS_PY3K + #endif + +API functions that are not present can be aliased to their equivalents within +conditional block. + + +Changes to Object APIs +====================== + +Python 3.0 merged together some types with simliar functions while cleanly +separating others. + + +str/unicode Unification +----------------------- + + +Python 3.0's :func:`str` (``PyString_*`` functions in C) type is equivalent to +2.x's :func:`unicode` (``PyUnicode_*``). The old 8-bit string type has become +:func:`bytes`. Python 2.6 and later provide a compatibility header, +:file:`bytesobject.h`, mapping ``PyBytes`` names to ``PyString`` ones. For best +interpolation with 3.0, :ctype:`PyUnicode` should be used for textual data and +:ctype:`PyBytes` for binary data. It's also important to remember that +:ctype:`PyBytes` and :ctype:`PyUnicode` in 3.0 are not interchangeable like +:ctype:`PyString` and :ctype:`PyString` are in 2.x. The following example shows +best practices with regards to :ctype:`PyUnicode`, :ctype:`PyString`, and +:ctype:`PyBytes`. :: + + #include "stdlib.h" + #include "Python.h" + #include "bytesobject.h" + + /* text example */ + static PyObject * + say_hello(PyObject *self, PyObject *args) { + PyObject *name, *result; + + if (!PyArg_ParseTuple(args, "U:say_hello", &name)) + return NULL; + + result = PyUnicode_FromFormat("Hello, %S!", name); + return result; + } + + static char * do_encode(PyObject *); + + /* bytes example */ + static PyObject * + encode_object(PyObject *self, PyObject *args) { + char *encoded; + PyObject *result, *myobj; + + if (!PyArg_ParseTuple(args, "O:encode_object", &myobj)) + return NULL; + + encoded = do_encode(myobj); + if (encoded == NULL) + return NULL; + result = PyBytes_FromString(encoded); + free(encoded); + return result; + } + + +long/int Unification +-------------------- + +In Python 3.0, there is only one integer type. It is called :func:`int` on the +Python level, but actually corresponds to 2.x's :func:`long` type. In the +C-API, ``PyInt_*`` functions are replaced by their ``PyLong_*`` neighbors. The +best course of action here is probably aliasing ``PyInt_*`` functions to +``PyLong_*`` variants or using the abstract ``PyNumber_*`` APIs. :: + + #include "Python.h" + + #if PY_MAJOR_VERSION >= 3 + #define PyInt_FromLong PyLong_FromLong + #endif + + static PyObject * + add_ints(PyObject *self, PyObject *args) { + int one, two; + PyObject *result; + + if (!PyArg_ParseTuple(args, "ii:add_ints", &one, &two)) + return NULL; + + return PyInt_FromLong(one + two); + } + + + +Module initialization and state +=============================== + +Python 3.0 has a revamped extension module initialization system. (See PEP +:pep:`3121`.) Instead of storing module state in globals, they should be stored +in a interpreter specific structure. Creating modules that act correctly in +both 2.x and 3.0 is tricky. The following simple example demonstrates how. :: + + #include "Python.h" + + struct module_state { + PyObject *error; + }; + + #if PY_MAJOR_VERSION >= 3 + #define GETSTATE(m) ((struct module_state*)PyModule_GetState(m)) + #else + #define GETSTATE(m) (&_state) + static struct module_state _state; + #endif + + static PyObject * + error_out(PyObject *m) { + struct module_state *st = GETSTATE(m); + PyErr_SetString(st->error, "something bad happened"); + return NULL; + } + + static PyMethodDef myextension_methods[] = { + {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL}, + {NULL, NULL} + }; + + #if PY_MAJOR_VERSION >= 3 + + static int myextension_traverse(PyObject *m, visitproc visit, void *arg) { + Py_VISIT(GETSTATE(m)->error); + return 0; + } + + static int myextension_clear(PyObject *m) { + Py_CLEAR(GETSTATE(m)->error); + return 0; + } + + + static struct PyModuleDef moduledef = { + PyModuleDef_HEAD_INIT, + "myextension", + NULL, + sizeof(struct module_state), + myextension_methods, + NULL, + myextension_traverse, + myextension_clear, + NULL + }; + + #define INITERROR return NULL + + PyObject * + PyInit_myextension(void) + + #else + #define INITERROR return + + void + initmyextension(void) + #endif + { + #if PY_MAJOR_VERSION >= 3 + PyObject *module = PyModule_Create(&moduledef); + #else + PyObject *module = Py_InitModule("myextension", myextension_methods); + #endif + + if (module == NULL) + INITERROR; + struct module_state *st = GETSTATE(module); + + st->error = PyErr_NewException("myextension.Error", NULL, NULL); + if (st->error == NULL) { + Py_DECREF(module); + INITERROR; + } + + #if PY_MAJOR_VERSION >= 3 + return module; + #endif + } Modified: python/trunk/Doc/howto/index.rst ============================================================================== --- python/trunk/Doc/howto/index.rst (original) +++ python/trunk/Doc/howto/index.rst Fri Sep 26 04:58:36 2008 @@ -14,6 +14,7 @@ :maxdepth: 1 advocacy.rst + cporting.rst curses.rst doanddont.rst functional.rst From python-checkins at python.org Fri Sep 26 09:14:57 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 26 Sep 2008 09:14:57 +0200 (CEST) Subject: [Python-checkins] r66626 - python/branches/release25-maint/Lib/lib-tk/turtle.py Message-ID: <20080926071457.B12A61E400A@bag.python.org> Author: georg.brandl Date: Fri Sep 26 09:14:57 2008 New Revision: 66626 Log: #3969: fix typo in turtle.py. Modified: python/branches/release25-maint/Lib/lib-tk/turtle.py Modified: python/branches/release25-maint/Lib/lib-tk/turtle.py ============================================================================== --- python/branches/release25-maint/Lib/lib-tk/turtle.py (original) +++ python/branches/release25-maint/Lib/lib-tk/turtle.py Fri Sep 26 09:14:57 2008 @@ -762,7 +762,7 @@ startx = geometry.get('startx', _startx) if startx >= 0 or startx == None: - _startx = _startx + _startx = startx else: raise ValueError, "startx can not be less than 0" From python-checkins at python.org Fri Sep 26 09:17:03 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 26 Sep 2008 09:17:03 +0200 (CEST) Subject: [Python-checkins] r66627 - in python/branches/release25-maint: Lib/lib-tk/turtle.py Misc/NEWS Message-ID: <20080926071703.D34B41E4025@bag.python.org> Author: georg.brandl Date: Fri Sep 26 09:17:03 2008 New Revision: 66627 Log: #3968: fix missing update() call in end_fill(). Modified: python/branches/release25-maint/Lib/lib-tk/turtle.py python/branches/release25-maint/Misc/NEWS Modified: python/branches/release25-maint/Lib/lib-tk/turtle.py ============================================================================== --- python/branches/release25-maint/Lib/lib-tk/turtle.py (original) +++ python/branches/release25-maint/Lib/lib-tk/turtle.py Fri Sep 26 09:17:03 2008 @@ -306,6 +306,7 @@ {'fill': self._color, 'smooth': smooth}) self._items.append(item) + self._canvas.update() self._path = [] self._filling = flag if flag: Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Fri Sep 26 09:17:03 2008 @@ -89,6 +89,8 @@ Library ------- +- Issues #3968 and #3969: two minor turtle problems. + - Issue #3547: Fixed ctypes structures bitfields of varying integer sizes. From buildbot at python.org Fri Sep 26 09:41:51 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Sep 2008 07:41:51 +0000 Subject: [Python-checkins] buildbot failure in x86 osx.5 2.5 Message-ID: <20080926074151.3BD3C1E400B@bag.python.org> The Buildbot has detected a new failure of x86 osx.5 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20osx.5%202.5/builds/40 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: heller-x86-osx5 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_socket make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Fri Sep 26 22:52:06 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 26 Sep 2008 22:52:06 +0200 (CEST) Subject: [Python-checkins] r66628 - python/trunk/Doc/howto/cporting.rst Message-ID: <20080926205206.809951E4002@bag.python.org> Author: benjamin.peterson Date: Fri Sep 26 22:52:06 2008 New Revision: 66628 Log: add an 'other options' section Modified: python/trunk/Doc/howto/cporting.rst Modified: python/trunk/Doc/howto/cporting.rst ============================================================================== --- python/trunk/Doc/howto/cporting.rst (original) +++ python/trunk/Doc/howto/cporting.rst Fri Sep 26 22:52:06 2008 @@ -206,3 +206,12 @@ return module; #endif } + + +Other options +============= + +If you are writing a new extension module, you might consider `Cython +`_. It translates a Python-like language to C. The +extension modules it creates are compatible with Python 3.x and 2.x. + From python-checkins at python.org Fri Sep 26 23:15:22 2008 From: python-checkins at python.org (georg.brandl) Date: Fri, 26 Sep 2008 23:15:22 +0200 (CEST) Subject: [Python-checkins] r66629 - python/trunk/Doc/howto/cporting.rst Message-ID: <20080926211522.49A991E400A@bag.python.org> Author: georg.brandl Date: Fri Sep 26 23:15:21 2008 New Revision: 66629 Log: typos. Modified: python/trunk/Doc/howto/cporting.rst Modified: python/trunk/Doc/howto/cporting.rst ============================================================================== --- python/trunk/Doc/howto/cporting.rst (original) +++ python/trunk/Doc/howto/cporting.rst Fri Sep 26 23:15:21 2008 @@ -27,13 +27,13 @@ #endif API functions that are not present can be aliased to their equivalents within -conditional block. +conditional blocks. Changes to Object APIs ====================== -Python 3.0 merged together some types with simliar functions while cleanly +Python 3.0 merged together some types with similar functions while cleanly separating others. @@ -121,7 +121,7 @@ Python 3.0 has a revamped extension module initialization system. (See PEP :pep:`3121`.) Instead of storing module state in globals, they should be stored -in a interpreter specific structure. Creating modules that act correctly in +in an interpreter specific structure. Creating modules that act correctly in both 2.x and 3.0 is tricky. The following simple example demonstrates how. :: #include "Python.h" From python-checkins at python.org Fri Sep 26 23:55:52 2008 From: python-checkins at python.org (benjamin.peterson) Date: Fri, 26 Sep 2008 23:55:52 +0200 (CEST) Subject: [Python-checkins] r66630 - svn:log Message-ID: <20080926215552.1724E1E4009@bag.python.org> Author: benjamin.peterson Revision: 66630 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1 +1,3 @@ -#3946 fix PyObject_CheckBuffer on a memoryview object \ No newline at end of file +#3946 fix PyObject_CheckBuffer on a memoryview object + +reviewed by Antoine \ No newline at end of file From python-checkins at python.org Sat Sep 27 00:34:09 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Sat, 27 Sep 2008 00:34:09 +0200 (CEST) Subject: [Python-checkins] r66631 - in python/trunk: Lib/test/string_tests.py Misc/NEWS Objects/stringlib/count.h Objects/stringlib/find.h Message-ID: <20080926223409.655021E4006@bag.python.org> Author: amaury.forgeotdarc Date: Sat Sep 27 00:34:08 2008 New Revision: 66631 Log: #3967: Correct a crash in count() and find() methods of string-like objects. For example: "".count("xxxx", sys.maxint, 0) Reviewed by Benjamin Peterson. Will port to 2.5 and 3.0. Modified: python/trunk/Lib/test/string_tests.py python/trunk/Misc/NEWS python/trunk/Objects/stringlib/count.h python/trunk/Objects/stringlib/find.h Modified: python/trunk/Lib/test/string_tests.py ============================================================================== --- python/trunk/Lib/test/string_tests.py (original) +++ python/trunk/Lib/test/string_tests.py Sat Sep 27 00:34:08 2008 @@ -120,6 +120,14 @@ self.checkequal(2, 'aaa', 'count', '', -1) self.checkequal(4, 'aaa', 'count', '', -10) + self.checkequal(1, '', 'count', '') + self.checkequal(0, '', 'count', '', 1, 1) + self.checkequal(0, '', 'count', '', sys.maxint, 0) + + self.checkequal(0, '', 'count', 'xx') + self.checkequal(0, '', 'count', 'xx', 1, 1) + self.checkequal(0, '', 'count', 'xx', sys.maxint, 0) + self.checkraises(TypeError, 'hello', 'count') self.checkraises(TypeError, 'hello', 'count', 42) @@ -169,6 +177,14 @@ self.checkraises(TypeError, 'hello', 'find') self.checkraises(TypeError, 'hello', 'find', 42) + self.checkequal(0, '', 'find', '') + self.checkequal(-1, '', 'find', '', 1, 1) + self.checkequal(-1, '', 'find', '', sys.maxint, 0) + + self.checkequal(-1, '', 'find', 'xx') + self.checkequal(-1, '', 'find', 'xx', 1, 1) + self.checkequal(-1, '', 'find', 'xx', sys.maxint, 0) + # For a variety of combinations, # verify that str.find() matches __contains__ # and that the found substring is really at that location Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Sat Sep 27 00:34:08 2008 @@ -12,6 +12,9 @@ Core and Builtins ----------------- +- Issue #3967: Fixed a crash in the count() and find() methods of string-like + objects, when the "start" parameter is a huge value. + - Issue #3965: Fixed a crash on Windows when open() is given an invalid filename or mode, and the filename is a unicode string. Modified: python/trunk/Objects/stringlib/count.h ============================================================================== --- python/trunk/Objects/stringlib/count.h (original) +++ python/trunk/Objects/stringlib/count.h Sat Sep 27 00:34:08 2008 @@ -13,11 +13,10 @@ { Py_ssize_t count; - if (sub_len == 0) { - if (str_len < 0) - return 0; /* start > len(str) */ + if (str_len < 0) + return 0; /* start > len(str) */ + if (sub_len == 0) return str_len + 1; - } count = fastsearch(str, str_len, sub, sub_len, FAST_COUNT); Modified: python/trunk/Objects/stringlib/find.h ============================================================================== --- python/trunk/Objects/stringlib/find.h (original) +++ python/trunk/Objects/stringlib/find.h Sat Sep 27 00:34:08 2008 @@ -14,11 +14,10 @@ { Py_ssize_t pos; - if (sub_len == 0) { - if (str_len < 0) - return -1; + if (str_len < 0) + return -1; + if (sub_len == 0) return offset; - } pos = fastsearch(str, str_len, sub, sub_len, FAST_SEARCH); From python-checkins at python.org Sat Sep 27 00:46:01 2008 From: python-checkins at python.org (amaury.forgeotdarc) Date: Sat, 27 Sep 2008 00:46:01 +0200 (CEST) Subject: [Python-checkins] r66632 - in python/branches/release25-maint: Lib/test/string_tests.py Misc/NEWS Objects/stringlib/count.h Objects/stringlib/find.h Message-ID: <20080926224601.CB3211E4006@bag.python.org> Author: amaury.forgeotdarc Date: Sat Sep 27 00:46:01 2008 New Revision: 66632 Log: #3967: Correct a crash in count() and find() methods of string-like objects. For example: "".count("xxxx", sys.maxint, 0) Backport of r66631. Modified: python/branches/release25-maint/Lib/test/string_tests.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Objects/stringlib/count.h python/branches/release25-maint/Objects/stringlib/find.h Modified: python/branches/release25-maint/Lib/test/string_tests.py ============================================================================== --- python/branches/release25-maint/Lib/test/string_tests.py (original) +++ python/branches/release25-maint/Lib/test/string_tests.py Sat Sep 27 00:46:01 2008 @@ -120,6 +120,14 @@ self.checkequal(2, 'aaa', 'count', '', -1) self.checkequal(4, 'aaa', 'count', '', -10) + self.checkequal(1, '', 'count', '') + self.checkequal(0, '', 'count', '', 1, 1) + self.checkequal(0, '', 'count', '', sys.maxint, 0) + + self.checkequal(0, '', 'count', 'xx') + self.checkequal(0, '', 'count', 'xx', 1, 1) + self.checkequal(0, '', 'count', 'xx', sys.maxint, 0) + self.checkraises(TypeError, 'hello', 'count') self.checkraises(TypeError, 'hello', 'count', 42) @@ -162,6 +170,14 @@ self.checkraises(TypeError, 'hello', 'find') self.checkraises(TypeError, 'hello', 'find', 42) + self.checkequal(0, '', 'find', '') + self.checkequal(-1, '', 'find', '', 1, 1) + self.checkequal(-1, '', 'find', '', sys.maxint, 0) + + self.checkequal(-1, '', 'find', 'xx') + self.checkequal(-1, '', 'find', 'xx', 1, 1) + self.checkequal(-1, '', 'find', 'xx', sys.maxint, 0) + # For a variety of combinations, # verify that str.find() matches __contains__ # and that the found substring is really at that location Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Sat Sep 27 00:46:01 2008 @@ -12,6 +12,9 @@ Core and builtins ----------------- +- Issue #3967: Fixed a crash in the count() and find() methods of string-like + objects, when the "start" parameter is a huge value. + - Issue #3936: The parser warnings for using "as" and "with" as variable names didn't fire after import statements. Modified: python/branches/release25-maint/Objects/stringlib/count.h ============================================================================== --- python/branches/release25-maint/Objects/stringlib/count.h (original) +++ python/branches/release25-maint/Objects/stringlib/count.h Sat Sep 27 00:46:01 2008 @@ -13,11 +13,10 @@ { Py_ssize_t count; - if (sub_len == 0) { - if (str_len < 0) - return 0; /* start > len(str) */ + if (str_len < 0) + return 0; /* start > len(str) */ + if (sub_len == 0) return str_len + 1; - } count = fastsearch(str, str_len, sub, sub_len, FAST_COUNT); Modified: python/branches/release25-maint/Objects/stringlib/find.h ============================================================================== --- python/branches/release25-maint/Objects/stringlib/find.h (original) +++ python/branches/release25-maint/Objects/stringlib/find.h Sat Sep 27 00:46:01 2008 @@ -14,11 +14,10 @@ { Py_ssize_t pos; - if (sub_len == 0) { - if (str_len < 0) - return -1; + if (str_len < 0) + return -1; + if (sub_len == 0) return offset; - } pos = fastsearch(str, str_len, sub, sub_len, FAST_SEARCH); From buildbot at python.org Sat Sep 27 01:19:57 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Sep 2008 23:19:57 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080926231958.048831E4006@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/572 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_doctest test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 27 01:54:08 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Sep 2008 23:54:08 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20080926235408.C16381E4006@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/4186 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: amaury.forgeotdarc,benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: make: *** [buildbottest] Killed sincerely, -The Buildbot From buildbot at python.org Sat Sep 27 01:59:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Fri, 26 Sep 2008 23:59:22 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080926235922.C31F51E4006@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/606 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: amaury.forgeotdarc BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 27 04:49:55 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 04:49:55 +0200 (CEST) Subject: [Python-checkins] r66634 - python/trunk/Lib/test/test_ftplib.py Message-ID: <20080927024955.5E3521E4006@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 04:49:54 2008 New Revision: 66634 Log: give ftplib a real test suite A asyncore based mock ftp server is used to test the protocol. This is all thanks to Giampaolo Rodola #3939 (Barry gave me permission to do this before final on IRC.) Modified: python/trunk/Lib/test/test_ftplib.py Modified: python/trunk/Lib/test/test_ftplib.py ============================================================================== --- python/trunk/Lib/test/test_ftplib.py (original) +++ python/trunk/Lib/test/test_ftplib.py Sat Sep 27 04:49:54 2008 @@ -1,43 +1,406 @@ -import socket -import threading +"""Test script for ftplib module.""" + +# Modified by Giampaolo Rodola' to test FTP class and IPv6 environment + import ftplib -import time +import threading +import asyncore +import asynchat +import socket +import StringIO from unittest import TestCase from test import test_support +from test.test_support import HOST -HOST = test_support.HOST -# This function sets the evt 3 times: -# 1) when the connection is ready to be accepted. -# 2) when it is safe for the caller to close the connection -# 3) when we have closed the socket -def server(evt, serv): - serv.listen(5) - # (1) Signal the caller that we are ready to accept the connection. - evt.set() - try: - conn, addr = serv.accept() - except socket.timeout: - pass - else: - conn.send("1 Hola mundo\n") - # (2) Signal the caller that it is safe to close the socket. - evt.set() +# the dummy data returned by server over the data channel when +# RETR, LIST and NLST commands are issued +RETR_DATA = 'abcde12345\r\n' * 1000 +LIST_DATA = 'foo\r\nbar\r\n' +NLST_DATA = 'foo\r\nbar\r\n' + + +class DummyDTPHandler(asynchat.async_chat): + + def __init__(self, conn, baseclass): + asynchat.async_chat.__init__(self, conn) + self.baseclass = baseclass + self.baseclass.last_received_data = '' + + def handle_read(self): + self.baseclass.last_received_data += self.recv(1024) + + def handle_close(self): + self.baseclass.push('226 transfer complete') + self.close() + + +class DummyFTPHandler(asynchat.async_chat): + + def __init__(self, conn): + asynchat.async_chat.__init__(self, conn) + self.set_terminator("\r\n") + self.in_buffer = [] + self.dtp = None + self.last_received_cmd = None + self.last_received_data = '' + self.next_response = '' + self.push('220 welcome') + + def collect_incoming_data(self, data): + self.in_buffer.append(data) + + def found_terminator(self): + line = ''.join(self.in_buffer) + self.in_buffer = [] + if self.next_response: + self.push(self.next_response) + self.next_response = '' + cmd = line.split(' ')[0].lower() + self.last_received_cmd = cmd + space = line.find(' ') + if space != -1: + arg = line[space + 1:] + else: + arg = "" + if hasattr(self, 'cmd_' + cmd): + method = getattr(self, 'cmd_' + cmd) + method(arg) + else: + self.push('550 command "%s" not understood.' %cmd) + + def handle_error(self): + raise + + def push(self, data): + asynchat.async_chat.push(self, data + '\r\n') + + def cmd_port(self, arg): + addr = map(int, arg.split(',')) + ip = '%d.%d.%d.%d' %tuple(addr[:4]) + port = (addr[4] * 256) + addr[5] + s = socket.create_connection((ip, port), timeout=2) + self.dtp = DummyDTPHandler(s, baseclass=self) + self.push('200 active data connection established') + + def cmd_pasv(self, arg): + sock = socket.socket() + sock.bind((self.socket.getsockname()[0], 0)) + sock.listen(5) + sock.settimeout(2) + ip, port = sock.getsockname()[:2] + ip = ip.replace('.', ','); p1 = port / 256; p2 = port % 256 + self.push('227 entering passive mode (%s,%d,%d)' %(ip, p1, p2)) + conn, addr = sock.accept() + self.dtp = DummyDTPHandler(conn, baseclass=self) + + def cmd_eprt(self, arg): + af, ip, port = arg.split(arg[0])[1:-1] + port = int(port) + s = socket.create_connection((ip, port), timeout=2) + self.dtp = DummyDTPHandler(s, baseclass=self) + self.push('200 active data connection established') + + def cmd_epsv(self, arg): + sock = socket.socket(socket.AF_INET6) + sock.bind((self.socket.getsockname()[0], 0)) + sock.listen(5) + sock.settimeout(2) + port = sock.getsockname()[1] + self.push('229 entering extended passive mode (|||%d|)' %port) + conn, addr = sock.accept() + self.dtp = DummyDTPHandler(conn, baseclass=self) + + def cmd_echo(self, arg): + # sends back the received string (used by the test suite) + self.push(arg) + + def cmd_user(self, arg): + self.push('331 username ok') + + def cmd_pass(self, arg): + self.push('230 password ok') + + def cmd_acct(self, arg): + self.push('230 acct ok') + + def cmd_rnfr(self, arg): + self.push('350 rnfr ok') + + def cmd_rnto(self, arg): + self.push('250 rnto ok') + + def cmd_dele(self, arg): + self.push('250 dele ok') + + def cmd_cwd(self, arg): + self.push('250 cwd ok') + + def cmd_size(self, arg): + self.push('250 1000') + + def cmd_mkd(self, arg): + self.push('257 "%s"' %arg) + + def cmd_rmd(self, arg): + self.push('250 rmd ok') + + def cmd_pwd(self, arg): + self.push('257 "pwd ok"') + + def cmd_type(self, arg): + self.push('200 type ok') + + def cmd_quit(self, arg): + self.push('221 quit ok') + self.close() + + def cmd_stor(self, arg): + self.push('125 stor ok') + + def cmd_retr(self, arg): + self.push('125 retr ok') + self.dtp.push(RETR_DATA) + self.dtp.close_when_done() + + def cmd_list(self, arg): + self.push('125 list ok') + self.dtp.push(LIST_DATA) + self.dtp.close_when_done() + + def cmd_nlst(self, arg): + self.push('125 nlst ok') + self.dtp.push(NLST_DATA) + self.dtp.close_when_done() + + +class DummyFTPServer(asyncore.dispatcher, threading.Thread): + + handler = DummyFTPHandler + + def __init__(self, address, af=socket.AF_INET): + threading.Thread.__init__(self) + asyncore.dispatcher.__init__(self) + self.create_socket(af, socket.SOCK_STREAM) + self.bind(address) + self.listen(5) + self.active = False + self.active_lock = threading.Lock() + self.host, self.port = self.socket.getsockname()[:2] + + def start(self): + assert not self.active + self.__flag = threading.Event() + threading.Thread.start(self) + self.__flag.wait() + + def run(self): + self.active = True + self.__flag.set() + while self.active and asyncore.socket_map: + self.active_lock.acquire() + asyncore.loop(timeout=0.1, count=1) + self.active_lock.release() + asyncore.close_all(ignore_all=True) + + def stop(self): + assert self.active + self.active = False + self.join() + + def handle_accept(self): + conn, addr = self.accept() + self.handler = self.handler(conn) + + def writable(self): + return 0 + + def handle_error(self): + raise + + +class TestFTPClass(TestCase): + + def setUp(self): + self.server = DummyFTPServer((HOST, 0)) + self.server.start() + self.client = ftplib.FTP(timeout=2) + self.client.connect(self.server.host, self.server.port) + + def tearDown(self): + self.client.close() + self.server.stop() + + def test_getwelcome(self): + self.assertEqual(self.client.getwelcome(), '220 welcome') + + def test_sanitize(self): + self.assertEqual(self.client.sanitize('foo'), repr('foo')) + self.assertEqual(self.client.sanitize('pass 12345'), repr('pass *****')) + self.assertEqual(self.client.sanitize('PASS 12345'), repr('PASS *****')) + + def test_exceptions(self): + self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400') + self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499') + self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500') + self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 599') + self.assertRaises(ftplib.error_proto, self.client.sendcmd, 'echo 999') + + def test_all_errors(self): + exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, + ftplib.error_proto, ftplib.Error, IOError, EOFError) + for x in exceptions: + try: + raise x('exception not included in all_errors set') + except ftplib.all_errors: + pass + + def test_set_pasv(self): + # passive mode is supposed to be enabled by default + self.assertTrue(self.client.passiveserver) + self.client.set_pasv(True) + self.assertTrue(self.client.passiveserver) + self.client.set_pasv(False) + self.assertFalse(self.client.passiveserver) + + def test_voidcmd(self): + self.client.voidcmd('echo 200') + self.client.voidcmd('echo 299') + self.assertRaises(ftplib.error_reply, self.client.voidcmd, 'echo 199') + self.assertRaises(ftplib.error_reply, self.client.voidcmd, 'echo 300') + + def test_login(self): + self.client.login() + + def test_acct(self): + self.client.acct('passwd') + + def test_rename(self): + self.client.rename('a', 'b') + self.server.handler.next_response = '200' + self.assertRaises(ftplib.error_reply, self.client.rename, 'a', 'b') + + def test_delete(self): + self.client.delete('foo') + self.server.handler.next_response = '199' + self.assertRaises(ftplib.error_reply, self.client.delete, 'foo') + + def test_size(self): + self.client.size('foo') + + def test_mkd(self): + dir = self.client.mkd('/foo') + self.assertEqual(dir, '/foo') + + def test_rmd(self): + self.client.rmd('foo') + + def test_pwd(self): + dir = self.client.pwd() + self.assertEqual(dir, 'pwd ok') + + def test_quit(self): + self.assertEqual(self.client.quit(), '221 quit ok') + # Ensure the connection gets closed; sock attribute should be None + self.assertEqual(self.client.sock, None) + + def test_retrbinary(self): + received = [] + self.client.retrbinary('retr', received.append) + self.assertEqual(''.join(received), RETR_DATA) + + def test_retrlines(self): + received = [] + self.client.retrlines('retr', received.append) + self.assertEqual(''.join(received), RETR_DATA.replace('\r\n', '')) + + def test_storbinary(self): + f = StringIO.StringIO(RETR_DATA) + self.client.storbinary('stor', f) + self.assertEqual(self.server.handler.last_received_data, RETR_DATA) + # test new callback arg + flag = [] + f.seek(0) + self.client.storbinary('stor', f, callback=lambda x: flag.append(None)) + self.assertTrue(flag) + + def test_storlines(self): + f = StringIO.StringIO(RETR_DATA.replace('\r\n', '\n')) + self.client.storlines('stor', f) + self.assertEqual(self.server.handler.last_received_data, RETR_DATA) + # test new callback arg + flag = [] + f.seek(0) + self.client.storlines('stor foo', f, callback=lambda x: flag.append(None)) + self.assertTrue(flag) + + def test_nlst(self): + self.client.nlst() + self.assertEqual(self.client.nlst(), NLST_DATA.split('\r\n')[:-1]) + + def test_dir(self): + l = [] + self.client.dir(lambda x: l.append(x)) + self.assertEqual(''.join(l), LIST_DATA.replace('\r\n', '')) + + def test_makeport(self): + self.client.makeport() + # IPv4 is in use, just make sure send_eprt has not been used + self.assertEqual(self.server.handler.last_received_cmd, 'port') + + def test_makepasv(self): + host, port = self.client.makepasv() + conn = socket.create_connection((host, port), 2) conn.close() - finally: - serv.close() - # (3) Signal the caller that we are done. - evt.set() + # IPv4 is in use, just make sure send_epsv has not been used + self.assertEqual(self.server.handler.last_received_cmd, 'pasv') + -class GeneralTests(TestCase): +class TestIPv6Environment(TestCase): + + def setUp(self): + self.server = DummyFTPServer((HOST, 0), af=socket.AF_INET6) + self.server.start() + self.client = ftplib.FTP() + self.client.connect(self.server.host, self.server.port) + + def tearDown(self): + self.client.close() + self.server.stop() + + def test_af(self): + self.assertEqual(self.client.af, socket.AF_INET6) + + def test_makeport(self): + self.client.makeport() + self.assertEqual(self.server.handler.last_received_cmd, 'eprt') + + def test_makepasv(self): + host, port = self.client.makepasv() + conn = socket.create_connection((host, port), 2) + conn.close() + self.assertEqual(self.server.handler.last_received_cmd, 'epsv') + + def test_transfer(self): + def retr(): + received = [] + self.client.retrbinary('retr', received.append) + self.assertEqual(''.join(received), RETR_DATA) + self.client.set_pasv(True) + retr() + self.client.set_pasv(False) + retr() + + +class TestTimeouts(TestCase): def setUp(self): self.evt = threading.Event() self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.settimeout(3) self.port = test_support.bind_port(self.sock) - threading.Thread(target=server, args=(self.evt,self.sock)).start() + threading.Thread(target=self.server, args=(self.evt,self.sock)).start() # Wait for the server to be ready. self.evt.wait() self.evt.clear() @@ -46,14 +409,27 @@ def tearDown(self): self.evt.wait() - def testBasic(self): - # do nothing - ftplib.FTP() - - # connects - ftp = ftplib.FTP(HOST) - self.evt.wait() - ftp.close() + def server(self, evt, serv): + # This method sets the evt 3 times: + # 1) when the connection is ready to be accepted. + # 2) when it is safe for the caller to close the connection + # 3) when we have closed the socket + serv.listen(5) + # (1) Signal the caller that we are ready to accept the connection. + evt.set() + try: + conn, addr = serv.accept() + except socket.timeout: + pass + else: + conn.send("1 Hola mundo\n") + # (2) Signal the caller that it is safe to close the socket. + evt.set() + conn.close() + finally: + serv.close() + # (3) Signal the caller that we are done. + evt.set() def testTimeoutDefault(self): # default -- use global socket timeout @@ -109,8 +485,21 @@ ftp.close() -def test_main(verbose=None): - test_support.run_unittest(GeneralTests) +def test_main(): + tests = [TestFTPClass, TestTimeouts] + if socket.has_ipv6: + try: + DummyFTPServer((HOST, 0), af=socket.AF_INET6) + except socket.error: + pass + else: + tests.append(TestIPv6Environment) + thread_info = test_support.threading_setup() + try: + test_support.run_unittest(*tests) + finally: + test_support.threading_cleanup(*thread_info) + if __name__ == '__main__': test_main() From buildbot at python.org Sat Sep 27 04:57:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 02:57:27 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080927025727.2AEB61E4024@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/207 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Sat Sep 27 04:57:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 02:57:27 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080927025727.43F3E1E4028@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/962 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Sat Sep 27 05:18:54 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 03:18:54 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo trunk Message-ID: <20080927031855.0A25F1E4006@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%20trunk/builds/1473 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 27 05:35:06 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 03:35:06 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080927033506.AD7051E400B@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1484 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sat Sep 27 05:41:22 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 03:41:22 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080927034122.D9EE21E4007@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/612 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/threading.py", line 522, in __bootstrap_inner self.run() File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/threading.py", line 477, in run self.__target(*self.__args, **self.__kwargs) File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/test/test_thread.py", line 306, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/pybot/buildarea/trunk.klose-debian-ia64/build/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sat Sep 27 16:12:33 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sat, 27 Sep 2008 16:12:33 +0200 (CEST) Subject: [Python-checkins] r66643 - python/trunk/Doc/whatsnew/2.6.rst Message-ID: <20080927141233.9E5351E4002@bag.python.org> Author: andrew.kuchling Date: Sat Sep 27 16:12:33 2008 New Revision: 66643 Log: Add a last bunch of items Modified: python/trunk/Doc/whatsnew/2.6.rst Modified: python/trunk/Doc/whatsnew/2.6.rst ============================================================================== --- python/trunk/Doc/whatsnew/2.6.rst (original) +++ python/trunk/Doc/whatsnew/2.6.rst Sat Sep 27 16:12:33 2008 @@ -1806,8 +1806,11 @@ is now available as a standalone package. The web page for the package is `www.jcea.es/programacion/pybsddb.htm `__. + The plan is to remove the package from the standard library + in Python 3.0, because its pace of releases is much more frequent than + Python's. -* The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol + The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol available, instead of restricting itself to protocol 1. (Contributed by W. Barnes; :issue:`1551443`.) @@ -1817,6 +1820,12 @@ "/cgi-bin/add.py?category=1". (Contributed by Alexandre Fiori and Nubis; :issue:`1817`.) + The :func:`parse_qs` and :func:`parse_qsl` functions have been + relocated from the :mod:`cgi` module to the :mod:`urlparse` module. + The versions still available in the :mod:`cgi` module will + trigger :exc:`PendingDeprecationWarning` messages in 2.6 + (:issue:`600362`). + * The :mod:`cmath` module underwent extensive revision, contributed by Mark Dickinson and Christian Heimes. Five new functions were added: @@ -1900,6 +1909,11 @@ (Contributed by Raymond Hettinger.) +* The :mod:`Cookie` module's :class:`Morsel` objects now support an + :attr:`httponly` attribute. In some browsers. cookies with this attribute + set cannot be accessed or manipulated by JavaScript code. + (Contributed by Arvin Schnell; :issue:`1638033`.) + * A new window method in the :mod:`curses` module, :meth:`chgat`, changes the display attributes for a certain number of characters on a single line. (Contributed by Fabian Kreutz.) :: @@ -2498,8 +2512,9 @@ ``with tempfile.NamedTemporaryFile() as tmp: ...``. (Contributed by Alexander Belopolsky; :issue:`2021`.) -* The :mod:`test.test_support` module now contains an - :func:`EnvironmentVarGuard` +* The :mod:`test.test_support` module gained a number + of context managers useful for writing tests. + :func:`EnvironmentVarGuard` is a context manager that temporarily changes environment variables and automatically restores them to their old values. @@ -2514,6 +2529,16 @@ f = urllib.urlopen('https://sf.net') ... + Finally, :func:`check_warnings` resets the :mod:`warning` module's + warning filters and returns an object that will record all warning + messages triggered (:issue:`3781`):: + + with test_support.check_warnings() as wrec: + warnings.simplefilter("always") + ... code that triggers a warning ... + assert str(wrec.message) == "function is outdated" + assert len(wrec.warnings) == 1, "Multiple warnings raised" + (Contributed by Brett Cannon.) * The :mod:`textwrap` module can now preserve existing whitespace @@ -2600,11 +2625,19 @@ (Added by Facundo Batista.) +* The Unicode database provided by the :mod:`unicodedata` module + has been updated to version 5.1.0. (Updated by + Martin von Loewis; :issue:`3811`.) + * The :mod:`warnings` module's :func:`formatwarning` and :func:`showwarning` gained an optional *line* argument that can be used to supply the line of source code. (Added as part of :issue:`1631171`, which re-implemented part of the :mod:`warnings` module in C code.) + A new function, :func:`catch_warnings`, is a context manager + intended for testing purposes that lets you temporarily modify the + warning filters and then restore their original values (:issue:`3781`). + * The XML-RPC :class:`SimpleXMLRPCServer` and :class:`DocXMLRPCServer` classes can now be prevented from immediately opening and binding to their socket by passing True as the ``bind_and_activate`` From python-checkins at python.org Sat Sep 27 17:45:10 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 17:45:10 +0200 (CEST) Subject: [Python-checkins] r66644 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080927154510.85CA21E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 17:45:10 2008 New Revision: 66644 Log: fix doctest refactoring Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 17:45:10 2008 @@ -187,9 +187,9 @@ """Refactor a list of files and directories.""" for dir_or_file in items: if os.path.isdir(dir_or_file): - self.refactor_dir(dir_or_file, write) + self.refactor_dir(dir_or_file, write, doctests_only) else: - self.refactor_file(dir_or_file, write) + self.refactor_file(dir_or_file, write, doctests_only) def refactor_dir(self, dir_name, write=False, doctests_only=False): """Descends down a directory and refactor every Python file found. From python-checkins at python.org Sat Sep 27 18:23:55 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 18:23:55 +0200 (CEST) Subject: [Python-checkins] r66645 - python/trunk/Doc/library/2to3.rst Message-ID: <20080927162355.CD4F21E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 18:23:55 2008 New Revision: 66645 Log: 2to3's api should be considered unstable Modified: python/trunk/Doc/library/2to3.rst Modified: python/trunk/Doc/library/2to3.rst ============================================================================== --- python/trunk/Doc/library/2to3.rst (original) +++ python/trunk/Doc/library/2to3.rst Sat Sep 27 18:23:55 2008 @@ -95,4 +95,10 @@ .. moduleauthor:: Guido van Rossum .. moduleauthor:: Collin Winter + +.. warning:: + + The :mod:`lib2to3` API should be considered unstable and may change + drastically in the future. + .. XXX What is the public interface anyway? From python-checkins at python.org Sat Sep 27 18:40:14 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 18:40:14 +0200 (CEST) Subject: [Python-checkins] r66646 - in sandbox/trunk/2to3/lib2to3: main.py refactor.py Message-ID: <20080927164014.171B01E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 18:40:13 2008 New Revision: 66646 Log: don't print to stdout when 2to3 is used as a library Modified: sandbox/trunk/2to3/lib2to3/main.py sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/main.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/main.py (original) +++ sandbox/trunk/2to3/lib2to3/main.py Sat Sep 27 18:40:13 2008 @@ -10,6 +10,16 @@ from . import refactor +class StdoutRefactoringTool(refactor.RefactoringTool): + """ + Prints output to stdout. + """ + + def print_output(self, lines): + for line in lines: + print line + + def main(fixer_pkg, args=None): """Main program. @@ -68,7 +78,7 @@ fixer_names = avail_names if "all" in options.fix else explicit else: fixer_names = avail_names - rt = refactor.RefactoringTool(fixer_names, rt_opts, explicit=explicit) + rt = StdoutRefactoringTool(fixer_names, rt_opts, explicit=explicit) # Refactor all files and directories passed as arguments if not rt.errors: Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 18:40:13 2008 @@ -183,6 +183,10 @@ msg = msg % args self.logger.debug(msg) + def print_output(self, lines): + """Called with lines of output to give to the user.""" + pass + def refactor(self, items, write=False, doctests_only=False): """Refactor a list of files and directories.""" for dir_or_file in items: @@ -340,12 +344,11 @@ if old_text == new_text: self.log_debug("No changes to %s", filename) return - diff_texts(old_text, new_text, filename) - if not write: - self.log_debug("Not writing changes to %s", filename) - return + self.print_output(diff_texts(old_text, new_text, filename)) if write: self.write_file(new_text, filename, old_text) + else: + self.log_debug("Not writing changes to %s", filename) def write_file(self, new_text, filename, old_text=None): """Writes a string to a file. @@ -520,10 +523,9 @@ def diff_texts(a, b, filename): - """Prints a unified diff of two strings.""" + """Return a unified diff of two strings.""" a = a.splitlines() b = b.splitlines() - for line in difflib.unified_diff(a, b, filename, filename, - "(original)", "(refactored)", - lineterm=""): - print line + return difflib.unified_diff(a, b, filename, filename, + "(original)", "(refactored)", + lineterm="") From python-checkins at python.org Sat Sep 27 19:28:28 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 19:28:28 +0200 (CEST) Subject: [Python-checkins] r66647 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080927172828.DD63E1E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 19:28:28 2008 New Revision: 66647 Log: let fixer modules and classes have different prefixes Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 19:28:28 2008 @@ -98,6 +98,9 @@ _default_options = {"print_function": False} + CLASS_PREFIX = "Fix" # The prefix for fixer classes + FILE_PREFIX = "fix_" # The prefix for modules with a fixer within + def __init__(self, fixer_names, options=None, explicit=None): """Initializer. @@ -140,10 +143,10 @@ for fix_mod_path in self.fixers: mod = __import__(fix_mod_path, {}, {}, ["*"]) fix_name = fix_mod_path.rsplit(".", 1)[-1] - if fix_name.startswith("fix_"): - fix_name = fix_name[4:] + if fix_name.startswith(self.FILE_PREFIX): + fix_name = fix_name[len(self.FILE_PREFIX):] parts = fix_name.split("_") - class_name = "Fix" + "".join([p.title() for p in parts]) + class_name = self.CLASS_PREFIX + "".join([p.title() for p in parts]) try: fix_class = getattr(mod, class_name) except AttributeError: From python-checkins at python.org Sat Sep 27 21:02:13 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 21:02:13 +0200 (CEST) Subject: [Python-checkins] r66648 - in sandbox/trunk/2to3/lib2to3: main.py refactor.py Message-ID: <20080927190213.8D9951E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 21:02:13 2008 New Revision: 66648 Log: raise errors when 2to3 is used as a library Modified: sandbox/trunk/2to3/lib2to3/main.py sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/main.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/main.py (original) +++ sandbox/trunk/2to3/lib2to3/main.py Sat Sep 27 21:02:13 2008 @@ -15,6 +15,10 @@ Prints output to stdout. """ + def log_error(self, msg, *args, **kwargs): + self.errors.append((msg, args, kwargs)) + self.logger.error(msg, *args, **kwargs) + def print_output(self, lines): for line in lines: print line Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 21:02:13 2008 @@ -172,8 +172,7 @@ def log_error(self, msg, *args, **kwds): """Increments error count and log a message.""" - self.errors.append((msg, args, kwds)) - self.logger.error(msg, *args, **kwds) + raise def log_message(self, msg, *args): """Hook to log a message.""" From python-checkins at python.org Sat Sep 27 21:03:38 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 21:03:38 +0200 (CEST) Subject: [Python-checkins] r66649 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080927190338.D31C81E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 21:03:38 2008 New Revision: 66649 Log: fix docstring Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 21:03:38 2008 @@ -171,7 +171,7 @@ return (pre_order_fixers, post_order_fixers) def log_error(self, msg, *args, **kwds): - """Increments error count and log a message.""" + """Called when an error occurs.""" raise def log_message(self, msg, *args): From python-checkins at python.org Sat Sep 27 21:22:21 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 21:22:21 +0200 (CEST) Subject: [Python-checkins] r66650 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080927192221.9E0DD1E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 21:22:21 2008 New Revision: 66650 Log: make use of enumerate Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 21:22:21 2008 @@ -403,9 +403,7 @@ block = None block_lineno = None indent = None - lineno = 0 - for line in input.splitlines(True): - lineno += 1 + for lineno, line in enumerate(input.splitlines(True)): if line.lstrip().startswith(self.PS1): if block is not None: result.extend(self.refactor_doctest(block, block_lineno, From python-checkins at python.org Sat Sep 27 21:24:13 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 21:24:13 +0200 (CEST) Subject: [Python-checkins] r66651 - sandbox/trunk/2to3/lib2to3/refactor.py Message-ID: <20080927192413.EB9AE1E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 21:24:13 2008 New Revision: 66651 Log: revert last revision; it breaks things Modified: sandbox/trunk/2to3/lib2to3/refactor.py Modified: sandbox/trunk/2to3/lib2to3/refactor.py ============================================================================== --- sandbox/trunk/2to3/lib2to3/refactor.py (original) +++ sandbox/trunk/2to3/lib2to3/refactor.py Sat Sep 27 21:24:13 2008 @@ -403,7 +403,9 @@ block = None block_lineno = None indent = None - for lineno, line in enumerate(input.splitlines(True)): + lineno = 0 + for line in input.splitlines(True): + lineno += 1 if line.lstrip().startswith(self.PS1): if block is not None: result.extend(self.refactor_doctest(block, block_lineno, From python-checkins at python.org Sat Sep 27 21:26:06 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 21:26:06 +0200 (CEST) Subject: [Python-checkins] r66511 - svn:log Message-ID: <20080927192606.A086F1E4002@bag.python.org> Author: benjamin.peterson Revision: 66511 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1 +1 @@ -remove a unless if __name__ == '__main__' \ No newline at end of file +remove a useless if __name__ == '__main__' \ No newline at end of file From python-checkins at python.org Sat Sep 27 23:03:07 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 23:03:07 +0200 (CEST) Subject: [Python-checkins] r66652 - in sandbox/trunk/2to3/lib2to3/tests: data/fixers data/fixers/bad_order.py data/fixers/myfixes data/fixers/myfixes/__init__.py data/fixers/myfixes/fix_explicit.py data/fixers/myfixes/fix_first.py data/fixers/myfixes/fix_last.py data/fixers/myfixes/fix_parrot.py data/fixers/myfixes/fix_preorder.py data/fixers/no_fixer_cls.py data/fixers/parrot_example.py test_refactor.py Message-ID: <20080927210307.63A4C1E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 23:03:06 2008 New Revision: 66652 Log: add tests for lib2to3.refactor Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/ sandbox/trunk/2to3/lib2to3/tests/data/fixers/bad_order.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/ sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/__init__.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_explicit.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_first.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_last.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_parrot.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_preorder.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/no_fixer_cls.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/data/fixers/parrot_example.py (contents, props changed) sandbox/trunk/2to3/lib2to3/tests/test_refactor.py (contents, props changed) Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/bad_order.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/bad_order.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,5 @@ +from lib2to3.fixer_base import BaseFix + +class FixBadOrder(BaseFix): + + order = "crazy" Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/__init__.py ============================================================================== Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_explicit.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_explicit.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,6 @@ +from lib2to3.fixer_base import BaseFix + +class FixExplicit(BaseFix): + explicit = True + + def match(self): return False Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_first.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_first.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,6 @@ +from lib2to3.fixer_base import BaseFix + +class FixFirst(BaseFix): + run_order = 1 + + def match(self, node): return False Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_last.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_last.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,7 @@ +from lib2to3.fixer_base import BaseFix + +class FixLast(BaseFix): + + run_order = 10 + + def match(self, node): return False Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_parrot.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_parrot.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,13 @@ +from lib2to3.fixer_base import BaseFix +from lib2to3.fixer_util import Name + +class FixParrot(BaseFix): + """ + Change functions named 'parrot' to 'cheese'. + """ + + PATTERN = """funcdef < 'def' name='parrot' any* >""" + + def transform(self, node, results): + name = results["name"] + name.replace(Name("cheese", name.get_prefix())) Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_preorder.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/myfixes/fix_preorder.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,6 @@ +from lib2to3.fixer_base import BaseFix + +class FixPreorder(BaseFix): + order = "pre" + + def match(self, node): return False Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/no_fixer_cls.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/no_fixer_cls.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1 @@ +# This is empty so trying to fetch the fixer class gives an AttributeError Added: sandbox/trunk/2to3/lib2to3/tests/data/fixers/parrot_example.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/data/fixers/parrot_example.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,2 @@ +def parrot(): + pass Added: sandbox/trunk/2to3/lib2to3/tests/test_refactor.py ============================================================================== --- (empty file) +++ sandbox/trunk/2to3/lib2to3/tests/test_refactor.py Sat Sep 27 23:03:06 2008 @@ -0,0 +1,175 @@ +""" +Unit tests for refactor.py. +""" + +import sys +import os +import operator +import StringIO +import tempfile +import unittest + +from lib2to3 import refactor, pygram, fixer_base + +from . import support + + +FIXER_DIR = os.path.join(os.path.dirname(__file__), "data/fixers") + +sys.path.append(FIXER_DIR) +try: + _DEFAULT_FIXERS = refactor.get_fixers_from_package("myfixes") +finally: + sys.path.pop() + +class TestRefactoringTool(unittest.TestCase): + + def setUp(self): + sys.path.append(FIXER_DIR) + + def tearDown(self): + sys.path.pop() + + def check_instances(self, instances, classes): + for inst, cls in zip(instances, classes): + if not isinstance(inst, cls): + self.fail("%s are not instances of %s" % instances, classes) + + def rt(self, options=None, fixers=_DEFAULT_FIXERS, explicit=None): + return refactor.RefactoringTool(fixers, options, explicit) + + def test_print_function_option(self): + gram = pygram.python_grammar + save = gram.keywords["print"] + try: + rt = self.rt({"print_function" : True}) + self.assertRaises(KeyError, operator.itemgetter("print"), + gram.keywords) + finally: + gram.keywords["print"] = save + + def test_fixer_loading_helpers(self): + contents = ["explicit", "first", "last", "parrot", "preorder"] + non_prefixed = refactor.get_all_fix_names("myfixes") + prefixed = refactor.get_all_fix_names("myfixes", False) + full_names = refactor.get_fixers_from_package("myfixes") + self.assertEqual(prefixed, ["fix_" + name for name in contents]) + self.assertEqual(non_prefixed, contents) + self.assertEqual(full_names, + ["myfixes.fix_" + name for name in contents]) + + def test_get_headnode_dict(self): + class NoneFix(fixer_base.BaseFix): + PATTERN = None + + class FileInputFix(fixer_base.BaseFix): + PATTERN = "file_input< any * >" + + no_head = NoneFix({}, []) + with_head = FileInputFix({}, []) + d = refactor.get_headnode_dict([no_head, with_head]) + expected = {None: [no_head], + pygram.python_symbols.file_input : [with_head]} + self.assertEqual(d, expected) + + def test_fixer_loading(self): + from myfixes.fix_first import FixFirst + from myfixes.fix_last import FixLast + from myfixes.fix_parrot import FixParrot + from myfixes.fix_preorder import FixPreorder + + rt = self.rt() + pre, post = rt.get_fixers() + + self.check_instances(pre, [FixPreorder]) + self.check_instances(post, [FixFirst, FixParrot, FixLast]) + + def test_naughty_fixers(self): + self.assertRaises(ImportError, self.rt, fixers=["not_here"]) + self.assertRaises(refactor.FixerError, self.rt, fixers=["no_fixer_cls"]) + self.assertRaises(refactor.FixerError, self.rt, fixers=["bad_order"]) + + def test_refactor_string(self): + rt = self.rt() + input = "def parrot(): pass\n\n" + tree = rt.refactor_string(input, "") + self.assertNotEqual(str(tree), input) + + input = "def f(): pass\n\n" + tree = rt.refactor_string(input, "") + self.assertEqual(str(tree), input) + + def test_refactor_stdin(self): + + class MyRT(refactor.RefactoringTool): + + def print_output(self, lines): + diff_lines.extend(lines) + + diff_lines = [] + rt = MyRT(_DEFAULT_FIXERS) + save = sys.stdin + sys.stdin = StringIO.StringIO("def parrot(): pass\n\n") + try: + rt.refactor_stdin() + finally: + sys.stdin = save + expected = """--- (original) ++++ (refactored) +@@ -1,2 +1,2 @@ +-def parrot(): pass ++def cheese(): pass""".splitlines() + self.assertEqual(diff_lines[:-1], expected) + + def test_refactor_file(self): + test_file = os.path.join(FIXER_DIR, "parrot_example.py") + backup = test_file + ".bak" + old_contents = open(test_file, "r").read() + rt = self.rt() + + rt.refactor_file(test_file) + self.assertEqual(old_contents, open(test_file, "r").read()) + + rt.refactor_file(test_file, True) + try: + self.assertNotEqual(old_contents, open(test_file, "r").read()) + self.assertTrue(os.path.exists(backup)) + self.assertEqual(old_contents, open(backup, "r").read()) + finally: + open(test_file, "w").write(old_contents) + try: + os.unlink(backup) + except OSError: + pass + + def test_refactor_docstring(self): + rt = self.rt() + + def example(): + """ + >>> example() + 42 + """ + out = rt.refactor_docstring(example.__doc__, "") + self.assertEqual(out, example.__doc__) + + def parrot(): + """ + >>> def parrot(): + ... return 43 + """ + out = rt.refactor_docstring(parrot.__doc__, "") + self.assertNotEqual(out, parrot.__doc__) + + def test_explicit(self): + from myfixes.fix_explicit import FixExplicit + + rt = self.rt(fixers=["myfixes.fix_explicit"]) + self.assertEqual(len(rt.post_order), 0) + + rt = self.rt(explicit=["myfixes.fix_explicit"]) + for fix in rt.post_order[None]: + if isinstance(fix, FixExplicit): + break + else: + self.fail("explicit fixer not loaded") From python-checkins at python.org Sat Sep 27 23:09:10 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 23:09:10 +0200 (CEST) Subject: [Python-checkins] r66653 - in python/trunk/Lib/lib2to3: main.py refactor.py tests/data/fixers tests/test_refactor.py Message-ID: <20080927210910.D36FF1E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 23:09:10 2008 New Revision: 66653 Log: Merged revisions 66511,66548-66549,66644,66646-66652 via svnmerge from svn+ssh://pythondev at svn.python.org/sandbox/trunk/2to3/lib2to3 ........ r66511 | benjamin.peterson | 2008-09-18 21:49:27 -0500 (Thu, 18 Sep 2008) | 1 line remove a useless if __name__ == '__main__' ........ r66548 | benjamin.peterson | 2008-09-21 21:14:14 -0500 (Sun, 21 Sep 2008) | 1 line avoid the perils of mutable default arguments ........ r66549 | benjamin.peterson | 2008-09-21 21:26:11 -0500 (Sun, 21 Sep 2008) | 1 line some places in RefactoringTool should raise an error instead of logging it ........ r66644 | benjamin.peterson | 2008-09-27 10:45:10 -0500 (Sat, 27 Sep 2008) | 1 line fix doctest refactoring ........ r66646 | benjamin.peterson | 2008-09-27 11:40:13 -0500 (Sat, 27 Sep 2008) | 1 line don't print to stdout when 2to3 is used as a library ........ r66647 | benjamin.peterson | 2008-09-27 12:28:28 -0500 (Sat, 27 Sep 2008) | 1 line let fixer modules and classes have different prefixes ........ r66648 | benjamin.peterson | 2008-09-27 14:02:13 -0500 (Sat, 27 Sep 2008) | 1 line raise errors when 2to3 is used as a library ........ r66649 | benjamin.peterson | 2008-09-27 14:03:38 -0500 (Sat, 27 Sep 2008) | 1 line fix docstring ........ r66650 | benjamin.peterson | 2008-09-27 14:22:21 -0500 (Sat, 27 Sep 2008) | 1 line make use of enumerate ........ r66651 | benjamin.peterson | 2008-09-27 14:24:13 -0500 (Sat, 27 Sep 2008) | 1 line revert last revision; it breaks things ........ r66652 | benjamin.peterson | 2008-09-27 16:03:06 -0500 (Sat, 27 Sep 2008) | 1 line add tests for lib2to3.refactor ........ Added: python/trunk/Lib/lib2to3/tests/data/fixers/ - copied from r66652, /sandbox/trunk/2to3/lib2to3/tests/data/fixers/ python/trunk/Lib/lib2to3/tests/test_refactor.py - copied unchanged from r66652, /sandbox/trunk/2to3/lib2to3/tests/test_refactor.py Modified: python/trunk/Lib/lib2to3/ (props changed) python/trunk/Lib/lib2to3/main.py python/trunk/Lib/lib2to3/refactor.py Modified: python/trunk/Lib/lib2to3/main.py ============================================================================== --- python/trunk/Lib/lib2to3/main.py (original) +++ python/trunk/Lib/lib2to3/main.py Sat Sep 27 23:09:10 2008 @@ -10,6 +10,20 @@ from . import refactor +class StdoutRefactoringTool(refactor.RefactoringTool): + """ + Prints output to stdout. + """ + + def log_error(self, msg, *args, **kwargs): + self.errors.append((msg, args, kwargs)) + self.logger.error(msg, *args, **kwargs) + + def print_output(self, lines): + for line in lines: + print line + + def main(fixer_pkg, args=None): """Main program. @@ -68,7 +82,7 @@ fixer_names = avail_names if "all" in options.fix else explicit else: fixer_names = avail_names - rt = refactor.RefactoringTool(fixer_names, rt_opts, explicit=explicit) + rt = StdoutRefactoringTool(fixer_names, rt_opts, explicit=explicit) # Refactor all files and directories passed as arguments if not rt.errors: @@ -80,7 +94,3 @@ # Return error status (0 if rt.errors is zero) return int(bool(rt.errors)) - - -if __name__ == "__main__": - sys.exit(main()) Modified: python/trunk/Lib/lib2to3/refactor.py ============================================================================== --- python/trunk/Lib/lib2to3/refactor.py (original) +++ python/trunk/Lib/lib2to3/refactor.py Sat Sep 27 23:09:10 2008 @@ -90,11 +90,18 @@ for fix_name in get_all_fix_names(pkg_name, False)] +class FixerError(Exception): + """A fixer could not be loaded.""" + + class RefactoringTool(object): _default_options = {"print_function": False} - def __init__(self, fixer_names, options=None, explicit=[]): + CLASS_PREFIX = "Fix" # The prefix for fixer classes + FILE_PREFIX = "fix_" # The prefix for modules with a fixer within + + def __init__(self, fixer_names, options=None, explicit=None): """Initializer. Args: @@ -103,7 +110,7 @@ explicit: a list of fixers to run even if they are explicit. """ self.fixers = fixer_names - self.explicit = explicit + self.explicit = explicit or [] self.options = self._default_options.copy() if options is not None: self.options.update(options) @@ -134,29 +141,17 @@ pre_order_fixers = [] post_order_fixers = [] for fix_mod_path in self.fixers: - try: - mod = __import__(fix_mod_path, {}, {}, ["*"]) - except ImportError: - self.log_error("Can't load transformation module %s", - fix_mod_path) - continue + mod = __import__(fix_mod_path, {}, {}, ["*"]) fix_name = fix_mod_path.rsplit(".", 1)[-1] - if fix_name.startswith("fix_"): - fix_name = fix_name[4:] + if fix_name.startswith(self.FILE_PREFIX): + fix_name = fix_name[len(self.FILE_PREFIX):] parts = fix_name.split("_") - class_name = "Fix" + "".join([p.title() for p in parts]) + class_name = self.CLASS_PREFIX + "".join([p.title() for p in parts]) try: fix_class = getattr(mod, class_name) except AttributeError: - self.log_error("Can't find %s.%s", - fix_name, class_name) - continue - try: - fixer = fix_class(self.options, self.fixer_log) - except Exception, err: - self.log_error("Can't instantiate fixes.fix_%s.%s()", - fix_name, class_name, exc_info=True) - continue + raise FixerError("Can't find %s.%s" % (fix_name, class_name)) + fixer = fix_class(self.options, self.fixer_log) if fixer.explicit and self.explicit is not True and \ fix_mod_path not in self.explicit: self.log_message("Skipping implicit fixer: %s", fix_name) @@ -168,7 +163,7 @@ elif fixer.order == "post": post_order_fixers.append(fixer) else: - raise ValueError("Illegal fixer order: %r" % fixer.order) + raise FixerError("Illegal fixer order: %r" % fixer.order) key_func = operator.attrgetter("run_order") pre_order_fixers.sort(key=key_func) @@ -176,9 +171,8 @@ return (pre_order_fixers, post_order_fixers) def log_error(self, msg, *args, **kwds): - """Increments error count and log a message.""" - self.errors.append((msg, args, kwds)) - self.logger.error(msg, *args, **kwds) + """Called when an error occurs.""" + raise def log_message(self, msg, *args): """Hook to log a message.""" @@ -191,13 +185,17 @@ msg = msg % args self.logger.debug(msg) + def print_output(self, lines): + """Called with lines of output to give to the user.""" + pass + def refactor(self, items, write=False, doctests_only=False): """Refactor a list of files and directories.""" for dir_or_file in items: if os.path.isdir(dir_or_file): - self.refactor_dir(dir_or_file, write) + self.refactor_dir(dir_or_file, write, doctests_only) else: - self.refactor_file(dir_or_file, write) + self.refactor_file(dir_or_file, write, doctests_only) def refactor_dir(self, dir_name, write=False, doctests_only=False): """Descends down a directory and refactor every Python file found. @@ -348,12 +346,11 @@ if old_text == new_text: self.log_debug("No changes to %s", filename) return - diff_texts(old_text, new_text, filename) - if not write: - self.log_debug("Not writing changes to %s", filename) - return + self.print_output(diff_texts(old_text, new_text, filename)) if write: self.write_file(new_text, filename, old_text) + else: + self.log_debug("Not writing changes to %s", filename) def write_file(self, new_text, filename, old_text=None): """Writes a string to a file. @@ -528,10 +525,9 @@ def diff_texts(a, b, filename): - """Prints a unified diff of two strings.""" + """Return a unified diff of two strings.""" a = a.splitlines() b = b.splitlines() - for line in difflib.unified_diff(a, b, filename, filename, - "(original)", "(refactored)", - lineterm=""): - print line + return difflib.unified_diff(a, b, filename, filename, + "(original)", "(refactored)", + lineterm="") From python-checkins at python.org Sat Sep 27 23:12:20 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sat, 27 Sep 2008 23:12:20 +0200 (CEST) Subject: [Python-checkins] r66654 - python/trunk/Lib/test/test_lib2to3.py Message-ID: <20080927211220.B0E0D1E4002@bag.python.org> Author: benjamin.peterson Date: Sat Sep 27 23:12:20 2008 New Revision: 66654 Log: enable refactor tests Modified: python/trunk/Lib/test/test_lib2to3.py Modified: python/trunk/Lib/test/test_lib2to3.py ============================================================================== --- python/trunk/Lib/test/test_lib2to3.py (original) +++ python/trunk/Lib/test/test_lib2to3.py Sat Sep 27 23:12:20 2008 @@ -1,13 +1,13 @@ # Skipping test_parser and test_all_fixers # because of running -from lib2to3.tests import test_fixers, test_pytree, test_util +from lib2to3.tests import test_fixers, test_pytree, test_util, test_refactor import unittest from test.test_support import run_unittest def suite(): tests = unittest.TestSuite() loader = unittest.TestLoader() - for m in (test_fixers,test_pytree,test_util): + for m in (test_fixers,test_pytree,test_util, test_refactor): tests.addTests(loader.loadTestsFromModule(m)) return tests From python-checkins at python.org Sun Sep 28 00:08:12 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 00:08:12 +0200 (CEST) Subject: [Python-checkins] r66657 - python/trunk/Lib/ftplib.py Message-ID: <20080927220812.AECF01E4010@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 00:08:12 2008 New Revision: 66657 Log: backport r66656 so people using -Qnew aren't affected Modified: python/trunk/Lib/ftplib.py Modified: python/trunk/Lib/ftplib.py ============================================================================== --- python/trunk/Lib/ftplib.py (original) +++ python/trunk/Lib/ftplib.py Sun Sep 28 00:08:12 2008 @@ -252,7 +252,7 @@ port number. ''' hbytes = host.split('.') - pbytes = [repr(port/256), repr(port%256)] + pbytes = [repr(port//256), repr(port%256)] bytes = hbytes + pbytes cmd = 'PORT ' + ','.join(bytes) return self.voidcmd(cmd) From buildbot at python.org Sun Sep 28 00:13:13 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 22:13:13 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 3.0 Message-ID: <20080927221313.620391E4009@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%203.0/builds/1147 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 28 00:20:29 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 22:20:29 +0000 Subject: [Python-checkins] buildbot failure in ppc Debian unstable 3.0 Message-ID: <20080927222029.3E09A1E4002@bag.python.org> The Buildbot has detected a new failure of ppc Debian unstable 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ppc%20Debian%20unstable%203.0/builds/1593 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 28 00:24:33 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 22:24:33 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080927222433.A9B7B1E4002@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1696 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 28 00:38:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 22:38:15 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080927223815.D1DC11E4002@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/611 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 28 00:54:09 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sun, 28 Sep 2008 00:54:09 +0200 (CEST) Subject: [Python-checkins] r66660 - python/trunk/Doc/library/site.rst Message-ID: <20080927225409.204351E4002@bag.python.org> Author: andrew.kuchling Date: Sun Sep 28 00:54:08 2008 New Revision: 66660 Log: #3510: future-proof text Modified: python/trunk/Doc/library/site.rst Modified: python/trunk/Doc/library/site.rst ============================================================================== --- python/trunk/Doc/library/site.rst (original) +++ python/trunk/Doc/library/site.rst Sun Sep 28 00:54:08 2008 @@ -62,10 +62,11 @@ bar -Then the following directories are added to ``sys.path``, in this order:: +Then the following version-specific directories are added to +``sys.path``, in this order:: - /usr/local/lib/python2.6/site-packages/bar - /usr/local/lib/python2.6/site-packages/foo + /usr/local/lib/pythonX.Y/site-packages/bar + /usr/local/lib/pythonX.Y/site-packages/foo Note that :file:`bletch` is omitted because it doesn't exist; the :file:`bar` directory precedes the :file:`foo` directory because :file:`bar.pth` comes From buildbot at python.org Sun Sep 28 01:13:34 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 23:13:34 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080927231334.C4CFF1E4006@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/574 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 28 01:14:20 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 23:14:20 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20080927231420.A8B981E4002@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/935 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_smtplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Sun Sep 28 01:15:26 2008 From: buildbot at python.org (buildbot at python.org) Date: Sat, 27 Sep 2008 23:15:26 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080927231526.811891E4008@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/652 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ftplib make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 28 01:28:44 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 01:28:44 +0200 (CEST) Subject: [Python-checkins] r66661 - python/trunk/Doc/howto/cporting.rst Message-ID: <20080927232844.0B4EC1E4002@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 01:28:43 2008 New Revision: 66661 Log: clarify a few things Modified: python/trunk/Doc/howto/cporting.rst Modified: python/trunk/Doc/howto/cporting.rst ============================================================================== --- python/trunk/Doc/howto/cporting.rst (original) +++ python/trunk/Doc/howto/cporting.rst Sun Sep 28 01:28:43 2008 @@ -45,7 +45,7 @@ 2.x's :func:`unicode` (``PyUnicode_*``). The old 8-bit string type has become :func:`bytes`. Python 2.6 and later provide a compatibility header, :file:`bytesobject.h`, mapping ``PyBytes`` names to ``PyString`` ones. For best -interpolation with 3.0, :ctype:`PyUnicode` should be used for textual data and +compatibility with 3.0, :ctype:`PyUnicode` should be used for textual data and :ctype:`PyBytes` for binary data. It's also important to remember that :ctype:`PyBytes` and :ctype:`PyUnicode` in 3.0 are not interchangeable like :ctype:`PyString` and :ctype:`PyString` are in 2.x. The following example shows @@ -68,6 +68,7 @@ return result; } + /* just a forward */ static char * do_encode(PyObject *); /* bytes example */ @@ -94,14 +95,12 @@ In Python 3.0, there is only one integer type. It is called :func:`int` on the Python level, but actually corresponds to 2.x's :func:`long` type. In the C-API, ``PyInt_*`` functions are replaced by their ``PyLong_*`` neighbors. The -best course of action here is probably aliasing ``PyInt_*`` functions to -``PyLong_*`` variants or using the abstract ``PyNumber_*`` APIs. :: +best course of action here is using the ``PyInt_*`` functions aliased to +``PyLong_*`` found in :file:`intobject.h`. The the abstract ``PyNumber_*`` APIs +can also be used in some cases. :: #include "Python.h" - - #if PY_MAJOR_VERSION >= 3 - #define PyInt_FromLong PyLong_FromLong - #endif + #include "intobject.h" static PyObject * add_ints(PyObject *self, PyObject *args) { From buildbot at python.org Sun Sep 28 02:00:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Sep 2008 00:00:46 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080928000046.E52B81E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/608 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Sun Sep 28 02:15:28 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sun, 28 Sep 2008 02:15:28 +0200 (CEST) Subject: [Python-checkins] r66662 - python/trunk/Doc/library/os.rst Message-ID: <20080928001528.03F411E4002@bag.python.org> Author: andrew.kuchling Date: Sun Sep 28 02:15:27 2008 New Revision: 66662 Log: #1579477: mention necessity to flush output before exec'ing Modified: python/trunk/Doc/library/os.rst Modified: python/trunk/Doc/library/os.rst ============================================================================== --- python/trunk/Doc/library/os.rst (original) +++ python/trunk/Doc/library/os.rst Sun Sep 28 02:15:27 2008 @@ -1451,7 +1451,13 @@ These functions all execute a new program, replacing the current process; they do not return. On Unix, the new executable is loaded into the current process, and will have the same process id as the caller. Errors will be reported as - :exc:`OSError` exceptions. + :exc:`OSError` exceptions. + + The current process is replaced immediately. Open file objects and + descriptors are not flushed, so if there may be data buffered + on these open files, you should flush them using + :func:`sys.stdout.flush` or :func:`os.fsync` before calling an + :func:`exec\*` function. The "l" and "v" variants of the :func:`exec\*` functions differ in how command-line arguments are passed. The "l" variants are perhaps the easiest @@ -1477,8 +1483,9 @@ used to define the environment variables for the new process (these are used instead of the current process' environment); the functions :func:`execl`, :func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new process to - inherit the environment of the current process. Availability: Unix, - Windows. + inherit the environment of the current process. + + Availability: Unix, Windows. .. function:: _exit(n) From python-checkins at python.org Sun Sep 28 03:08:48 2008 From: python-checkins at python.org (andrew.kuchling) Date: Sun, 28 Sep 2008 03:08:48 +0200 (CEST) Subject: [Python-checkins] r66663 - python/trunk/Doc/library/optparse.rst Message-ID: <20080928010848.2764A1E4002@bag.python.org> Author: andrew.kuchling Date: Sun Sep 28 03:08:47 2008 New Revision: 66663 Log: #1415508: Document two functions Modified: python/trunk/Doc/library/optparse.rst Modified: python/trunk/Doc/library/optparse.rst ============================================================================== --- python/trunk/Doc/library/optparse.rst (original) +++ python/trunk/Doc/library/optparse.rst Sun Sep 28 03:08:47 2008 @@ -1198,17 +1198,32 @@ Querying and manipulating your option parser ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Sometimes, it's useful to poke around your option parser and see what's there. -OptionParser provides a couple of methods to help you out: - -``has_option(opt_str)`` - Return true if the OptionParser has an option with option string ``opt_str`` - (e.g., ``"-q"`` or ``"--verbose"``). +The default behavior of the option parser can be customized slightly, +and you can also poke around your option parser and see what's there. +OptionParser provides several methods to help you out: + +``disable_interspersed_args()`` + Set parsing to stop on the first non-option. Use this if you have a + command processor which runs another command which has options of + its own and you want to make sure these options don't get + confused. For example, each command might have a different + set of options. + +``enable_interspersed_args()`` + Set parsing to not stop on the first non-option, allowing + interspersing switches with command arguments. For example, + ``"-s arg1 --long arg2"`` would return ``["arg1", "arg2"]`` + as the command arguments and ``-s, --long`` as options. + This is the default behavior. ``get_option(opt_str)`` Returns the Option instance with the option string ``opt_str``, or ``None`` if no options have that option string. +``has_option(opt_str)`` + Return true if the OptionParser has an option with option string ``opt_str`` + (e.g., ``"-q"`` or ``"--verbose"``). + ``remove_option(opt_str)`` If the OptionParser has an option corresponding to ``opt_str``, that option is removed. If that option provided any other option strings, all of those option From python-checkins at python.org Sun Sep 28 03:51:36 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 03:51:36 +0200 (CEST) Subject: [Python-checkins] r66664 - python/trunk/Doc/library/autogil.rst Message-ID: <20080928015136.CD71F1E4002@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 03:51:36 2008 New Revision: 66664 Log: better grammar Modified: python/trunk/Doc/library/autogil.rst Modified: python/trunk/Doc/library/autogil.rst ============================================================================== --- python/trunk/Doc/library/autogil.rst (original) +++ python/trunk/Doc/library/autogil.rst Sun Sep 28 03:51:36 2008 @@ -15,7 +15,7 @@ .. warning:: - This module is removed in 3.0. + This module has been removed in 3.0. .. exception:: AutoGILError From python-checkins at python.org Sun Sep 28 03:53:29 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 03:53:29 +0200 (CEST) Subject: [Python-checkins] r66665 - python/trunk/Doc/library/2to3.rst Message-ID: <20080928015329.850A31E4002@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 03:53:29 2008 New Revision: 66665 Log: note the 2to3 -d could be useful for other refactoring Modified: python/trunk/Doc/library/2to3.rst Modified: python/trunk/Doc/library/2to3.rst ============================================================================== --- python/trunk/Doc/library/2to3.rst (original) +++ python/trunk/Doc/library/2to3.rst Sun Sep 28 03:53:29 2008 @@ -74,7 +74,9 @@ have compliant 3.x code. 2to3 can also refactor doctests. To enable this mode, use the :option:`-d` -flag. Note that *only* doctests will be refactored. +flag. Note that *only* doctests will be refactored. This also doesn't require +the module to be valid Python. For example, doctest like examples in a reST +document could also be refactored with this option. The :option:`-v` option enables the output of more information on the translation process. From python-checkins at python.org Sun Sep 28 10:34:31 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 28 Sep 2008 10:34:31 +0200 (CEST) Subject: [Python-checkins] r66667 - python/trunk/Doc/tools/sphinxext/download.html Message-ID: <20080928083431.DB3981E4002@bag.python.org> Author: georg.brandl Date: Sun Sep 28 10:34:31 2008 New Revision: 66667 Log: No downloads for RCs. Modified: python/trunk/Doc/tools/sphinxext/download.html Modified: python/trunk/Doc/tools/sphinxext/download.html ============================================================================== --- python/trunk/Doc/tools/sphinxext/download.html (original) +++ python/trunk/Doc/tools/sphinxext/download.html Sun Sep 28 10:34:31 2008 @@ -6,6 +6,11 @@

      Download Python {{ release }} Documentation {%- if last_updated %} (last updated on {{ last_updated }}){% endif %}

      +{% if 'a' in release or 'b' in release or 'c' in release %} +

      We don't package the documentation for development releases for download. + Downloads will be available for the final release.

      + +{% else %}

      To download an archive containing all the documents for this version of Python in one of various formats, follow one of links in this table. The numbers in the table are the size of the download files in Kilobytes.

      @@ -49,5 +54,6 @@

      If you have comments or suggestions for the Python documentation, please send email to docs at python.org.

      +{% endif %} {% endblock %} From buildbot at python.org Sun Sep 28 11:42:53 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Sep 2008 09:42:53 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080928094253.2FDBB1E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/610 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_posix ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From python-checkins at python.org Sun Sep 28 22:01:36 2008 From: python-checkins at python.org (georg.brandl) Date: Sun, 28 Sep 2008 22:01:36 +0200 (CEST) Subject: [Python-checkins] r66670 - python/trunk/Doc/tools/sphinxext/download.html Message-ID: <20080928200136.CA9B41E4002@bag.python.org> Author: georg.brandl Date: Sun Sep 28 22:01:36 2008 New Revision: 66670 Log: Don't show version in title. Modified: python/trunk/Doc/tools/sphinxext/download.html Modified: python/trunk/Doc/tools/sphinxext/download.html ============================================================================== --- python/trunk/Doc/tools/sphinxext/download.html (original) +++ python/trunk/Doc/tools/sphinxext/download.html Sun Sep 28 22:01:36 2008 @@ -3,14 +3,15 @@ {% set dlbase = 'http://docs.python.org/ftp/python/doc/' + release %} {% block body %} -

      Download Python {{ release }} Documentation - {%- if last_updated %} (last updated on {{ last_updated }}){% endif %}

      +

      Download Python {{ release }} Documentation

      {% if 'a' in release or 'b' in release or 'c' in release %}

      We don't package the documentation for development releases for download. Downloads will be available for the final release.

      {% else %} +{% if last_updated %}

      Last updated on: {{ last_updated }}.

      {% endif %} +

      To download an archive containing all the documents for this version of Python in one of various formats, follow one of links in this table. The numbers in the table are the size of the download files in Kilobytes.

      From python-checkins at python.org Sun Sep 28 22:21:46 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 22:21:46 +0200 (CEST) Subject: [Python-checkins] r66671 - python/branches/fix-test-ftplib Message-ID: <20080928202146.3E7EB1E400B@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 22:21:45 2008 New Revision: 66671 Log: make a branch for trying to fix test_ftplib on some bots Added: python/branches/fix-test-ftplib/ - copied from r66670, /python/trunk/ From python-checkins at python.org Sun Sep 28 22:23:19 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 22:23:19 +0200 (CEST) Subject: [Python-checkins] r66672 - python/branches/fix-test-ftplib/Lib/test/test_ftplib.py Message-ID: <20080928202319.467631E4002@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 22:23:18 2008 New Revision: 66672 Log: try out this possible fix Modified: python/branches/fix-test-ftplib/Lib/test/test_ftplib.py Modified: python/branches/fix-test-ftplib/Lib/test/test_ftplib.py ============================================================================== --- python/branches/fix-test-ftplib/Lib/test/test_ftplib.py (original) +++ python/branches/fix-test-ftplib/Lib/test/test_ftplib.py Sun Sep 28 22:23:18 2008 @@ -212,6 +212,11 @@ def handle_accept(self): conn, addr = self.accept() self.handler = self.handler(conn) + self.close() + + def handle_connect(self): + self.close() + handle_read = handle_connect def writable(self): return 0 From python-checkins at python.org Sun Sep 28 22:57:21 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 22:57:21 +0200 (CEST) Subject: [Python-checkins] r66673 - python/trunk/Lib/test/test_ftplib.py Message-ID: <20080928205721.4BA571E4002@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 22:57:21 2008 New Revision: 66673 Log: merge in the fix for test_ftplib on some bots [reviewed by Georg] Modified: python/trunk/Lib/test/test_ftplib.py Modified: python/trunk/Lib/test/test_ftplib.py ============================================================================== --- python/trunk/Lib/test/test_ftplib.py (original) +++ python/trunk/Lib/test/test_ftplib.py Sun Sep 28 22:57:21 2008 @@ -212,6 +212,11 @@ def handle_accept(self): conn, addr = self.accept() self.handler = self.handler(conn) + self.close() + + def handle_connect(self): + self.close() + handle_read = handle_connect def writable(self): return 0 From python-checkins at python.org Sun Sep 28 22:58:18 2008 From: python-checkins at python.org (benjamin.peterson) Date: Sun, 28 Sep 2008 22:58:18 +0200 (CEST) Subject: [Python-checkins] r66674 - python/branches/fix-test-ftplib Message-ID: <20080928205818.716F11E4002@bag.python.org> Author: benjamin.peterson Date: Sun Sep 28 22:58:18 2008 New Revision: 66674 Log: remove no longer needed branch Removed: python/branches/fix-test-ftplib/ From buildbot at python.org Sun Sep 28 23:50:28 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Sep 2008 21:50:28 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu trunk Message-ID: <20080928215028.96AB41E4007@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu trunk. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%20trunk/builds/617 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,georg.brandl BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Sun Sep 28 23:58:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Sep 2008 21:58:44 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080928215844.5AAF31E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3968 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: andrew.kuchling,benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 00:42:24 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Sep 2008 22:42:24 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080928224224.D08851E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1455 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 00:58:00 2008 From: buildbot at python.org (buildbot at python.org) Date: Sun, 28 Sep 2008 22:58:00 +0000 Subject: [Python-checkins] buildbot failure in S-390 Debian 3.0 Message-ID: <20080928225800.8F4E81E4002@bag.python.org> The Buildbot has detected a new failure of S-390 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/S-390%20Debian%203.0/builds/939 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-s390 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson,georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_doctest make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 29 01:24:20 2008 From: python-checkins at python.org (jesus.cea) Date: Mon, 29 Sep 2008 01:24:20 +0200 (CEST) Subject: [Python-checkins] r66676 - in python/trunk: Misc/NEWS Modules/bsddb.h Message-ID: <20080928232420.4413D1E4006@bag.python.org> Author: jesus.cea Date: Mon Sep 29 01:24:19 2008 New Revision: 66676 Log: bsddb4.7.3pre9 renamed to 4.7.3 Modified: python/trunk/Misc/NEWS python/trunk/Modules/bsddb.h Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Sep 29 01:24:19 2008 @@ -670,7 +670,7 @@ - Support for Windows 9x has been removed from the winsound module. -- bsddb module updated to version 4.7.3pre2. +- bsddb module updated to version 4.7.3. http://www.jcea.es/programacion/pybsddb.htm#bsddb3-4.7.3. This code should be compatible with Python 3.0. Modified: python/trunk/Modules/bsddb.h ============================================================================== --- python/trunk/Modules/bsddb.h (original) +++ python/trunk/Modules/bsddb.h Mon Sep 29 01:24:19 2008 @@ -105,7 +105,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.7.3pre9" +#define PY_BSDDB_VERSION "4.7.3" /* Python object definitions */ From python-checkins at python.org Mon Sep 29 02:35:01 2008 From: python-checkins at python.org (jesus.cea) Date: Mon, 29 Sep 2008 02:35:01 +0200 (CEST) Subject: [Python-checkins] r66568 - svn:log Message-ID: <20080929003501.ADFE11E4013@bag.python.org> Author: jesus.cea Revision: 66568 Property Name: svn:log Action: modified Property diff: --- old property value +++ new property value @@ -1 +1,4 @@ -Bugfix for issue3885 and 'DB.verify()' crash \ No newline at end of file +Bugfix for issue3885 and 'DB.verify()' crash. + +Reviewed by Nick Coghlan. + From jcea at jcea.es Mon Sep 29 02:37:22 2008 From: jcea at jcea.es (Jesus Cea) Date: Mon, 29 Sep 2008 02:37:22 +0200 Subject: [Python-checkins] r66568 - in python/trunk: Lib/bsddb/test/test_basics.py Modules/_bsddb.c Modules/bsddb.h In-Reply-To: <48D954ED.7000207@gmail.com> References: <20080923185409.586241E400D@bag.python.org> <48D954ED.7000207@gmail.com> Message-ID: <48E02342.9070208@jcea.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Nick Coghlan wrote: > jesus.cea wrote: >> Author: jesus.cea >> Date: Tue Sep 23 20:54:08 2008 >> New Revision: 66568 >> >> Log: >> Bugfix for issue3885 and 'DB.verify()' crash > > I reviewed this if anyone wants to adjust the log entry. Commit log updated. I didn't know this could be done. Learning new tricks everyday :P. - -- Jesus Cea Avion _/_/ _/_/_/ _/_/_/ jcea at jcea.es - http://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/ jabber / xmpp:jcea at jabber.org _/_/ _/_/ _/_/_/_/_/ . _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBSOAjL5lgi5GaxT1NAQLhOAP+Mt5wQEE3HD3MSlJEULbXmyTI8IWcjdD2 vjroI1W6lkV3toEwtcsc6YVmla3tZ6rJJbRN7jH4rR++TBN97Ly4zxc9WZb1W1gC K3fpmqAHMK/sxYceI7uG2j5P93ZgwKCb//lqmvIzCQBGBxv3tPKfnvoV+6YDmxCW EuBm9b4NjL8= =jlkZ -----END PGP SIGNATURE----- From python-checkins at python.org Mon Sep 29 05:41:35 2008 From: python-checkins at python.org (brett.cannon) Date: Mon, 29 Sep 2008 05:41:35 +0200 (CEST) Subject: [Python-checkins] r66677 - in python/trunk: Lib/test/test_cprofile.py Misc/NEWS Modules/_lsprof.c Message-ID: <20080929034135.7D02A1E4002@bag.python.org> Author: brett.cannon Date: Mon Sep 29 05:41:21 2008 New Revision: 66677 Log: The _lsprof module could crash the interpreter if it was given an external timer that did not return a float and a timer was still running when the Profiler object was garbage collected. Fixes issue 3895. Code review by Benjamin Peterson. Modified: python/trunk/Lib/test/test_cprofile.py python/trunk/Misc/NEWS python/trunk/Modules/_lsprof.c Modified: python/trunk/Lib/test/test_cprofile.py ============================================================================== --- python/trunk/Lib/test/test_cprofile.py (original) +++ python/trunk/Lib/test/test_cprofile.py Mon Sep 29 05:41:21 2008 @@ -1,7 +1,7 @@ """Test suite for the cProfile module.""" import sys -from test.test_support import run_unittest +from test.test_support import run_unittest, TESTFN, unlink # rip off all interesting stuff from test_profile import cProfile @@ -10,6 +10,20 @@ class CProfileTest(ProfileTest): profilerclass = cProfile.Profile + # Issue 3895. + def test_bad_counter_during_dealloc(self): + import _lsprof + # Must use a file as StringIO doesn't trigger the bug. + sys.stderr = open(TESTFN, 'w') + try: + obj = _lsprof.Profiler(lambda: int) + obj.enable() + obj = _lsprof.Profiler(1) + obj.disable() + finally: + sys.stderr = sys.__stderr__ + unlink(TESTFN) + def test_main(): run_unittest(CProfileTest) Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Mon Sep 29 05:41:21 2008 @@ -23,6 +23,10 @@ Library ------- +- Issue #3895: It was possible to crash the interpreter when an external timer + was used with cProfile that returned an object that could not be converted + into a float. + - Issue #3950: Made turtle respect scale factors. - Issue #3547: Fixed ctypes structures bitfields of varying integer Modified: python/trunk/Modules/_lsprof.c ============================================================================== --- python/trunk/Modules/_lsprof.c (original) +++ python/trunk/Modules/_lsprof.c Mon Sep 29 05:41:21 2008 @@ -150,7 +150,16 @@ } Py_DECREF(o); if (PyErr_Occurred()) { - PyErr_WriteUnraisable((PyObject *) pObj); + PyObject *context = (PyObject *)pObj; + /* May have been called by profiler_dealloc(). */ + if (Py_REFCNT(context) < 1) { + context = PyString_FromString("profiler calling an " + "external timer"); + if (context == NULL) { + return 0; + } + } + PyErr_WriteUnraisable(context); return 0; } return result; From buildbot at python.org Mon Sep 29 05:57:23 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 03:57:23 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080929035724.05F931E4013@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/212 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: brett.cannon BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From python-checkins at python.org Mon Sep 29 05:57:25 2008 From: python-checkins at python.org (brett.cannon) Date: Mon, 29 Sep 2008 05:57:25 +0200 (CEST) Subject: [Python-checkins] r66678 - in python/branches/release25-maint: Lib/test/test_cProfile.py Misc/NEWS Modules/_lsprof.c Message-ID: <20080929035725.3363C1E4010@bag.python.org> Author: brett.cannon Date: Mon Sep 29 05:57:24 2008 New Revision: 66678 Log: Backport of r66677: _lsprof crasher when a bad external timer is used during garbage collection of a Profiler object. Modified: python/branches/release25-maint/Lib/test/test_cProfile.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Modules/_lsprof.c Modified: python/branches/release25-maint/Lib/test/test_cProfile.py ============================================================================== --- python/branches/release25-maint/Lib/test/test_cProfile.py (original) +++ python/branches/release25-maint/Lib/test/test_cProfile.py Mon Sep 29 05:57:24 2008 @@ -1,6 +1,5 @@ """Test suite for the cProfile module.""" - -import cProfile, pstats, sys +import cProfile, pstats, sys, test.test_support # In order to have reproducible time, we simulate a timer in the global # variable 'ticks', which represents simulated time in milliseconds. @@ -23,6 +22,7 @@ st.strip_dirs().sort_stats('stdname').print_stats() st.print_callees() st.print_callers() + test_bad_counter_during_dealloc() def timer(): return ticks @@ -119,5 +119,20 @@ ticks += 1 raise AttributeError +# Issue 3895. +def test_bad_counter_during_dealloc(): + import _lsprof + # Must use a file as StringIO doesn't trigger the bug. + sys.stderr = open(test.test_support.TESTFN, 'w') + try: + obj = _lsprof.Profiler(lambda: int) + obj.enable() + obj = _lsprof.Profiler(1) + obj.disable() + finally: + sys.stderr = sys.__stderr__ + test.test_support.unlink(test.test_support.TESTFN) + + if __name__ == "__main__": test_main() Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Mon Sep 29 05:57:24 2008 @@ -92,6 +92,9 @@ Library ------- +- Issue #3895: _lsprof could be crashed with an external timer that did not + return a float when a Profiler object is garbage collected. + - Issues #3968 and #3969: two minor turtle problems. - Issue #3547: Fixed ctypes structures bitfields of varying integer Modified: python/branches/release25-maint/Modules/_lsprof.c ============================================================================== --- python/branches/release25-maint/Modules/_lsprof.c (original) +++ python/branches/release25-maint/Modules/_lsprof.c Mon Sep 29 05:57:24 2008 @@ -150,7 +150,16 @@ } Py_DECREF(o); if (PyErr_Occurred()) { - PyErr_WriteUnraisable((PyObject *) pObj); + PyObject *context = (PyObject *)pObj; + /* May have been called by profiler_dealloc(). */ + if (context->ob_refcnt < 1) { + context = PyString_FromString("profiler calling an " + "external timer"); + if (context == NULL) { + return 0; + } + } + PyErr_WriteUnraisable(context); return 0; } return result; From nnorwitz at gmail.com Mon Sep 29 06:01:09 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Mon, 29 Sep 2008 00:01:09 -0400 Subject: [Python-checkins] Python Regression Test Failures all (1) Message-ID: <20080929040109.GA29311@python.psfb.org> 330 tests OK. 1 test failed: test_urllibnet 26 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_lib2to3 test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 4 skips unexpected on linux2: test_epoll test_multiprocessing test_lib2to3 test_ioctl test_grammar test_opcodes test_dict test_builtin test_exceptions test_types test_unittest test_doctest test_doctest2 test_MimeWriter test_SimpleHTTPServer test_StringIO test___all__ test___future__ test__locale test_abc test_abstract_numbers test_aepack test_aepack skipped -- No module named aepack test_al test_al skipped -- No module named al test_anydbm test_applesingle test_applesingle skipped -- No module named macostools test_array test_ast test_asynchat test_asyncore test_atexit test_audioop test_augassign test_base64 test_bastion test_bigaddrspace test_bigmem test_binascii test_binhex test_binop test_bisect test_bool test_bsddb test_bsddb185 test_bsddb185 skipped -- No module named bsddb185 test_bsddb3 Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002) Test path prefix: /tmp/z-test_bsddb3-14798 test_buffer test_bufio test_bytes test_bz2 test_calendar test_call test_capi test_cd test_cd skipped -- No module named cd test_cfgparser test_cgi test_charmapcodec test_cl test_cl skipped -- No module named cl test_class test_cmath test_cmd test_cmd_line test_cmd_line_script test_code test_codeccallbacks test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_codecs test_codeop test_coding test_coercion test_collections test_colorsys test_commands test_compare test_compile test_compiler testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... testCompileLibrary still working, be patient... test_complex test_complex_args test_contains test_contextlib test_cookie test_cookielib test_copy test_copy_reg test_cpickle test_cprofile test_crypt test_csv test_ctypes test_datetime test_dbm test_decimal test_decorators test_defaultdict test_deque test_descr test_descrtut test_difflib test_dircache test_dis test_distutils test_dl test_docxmlrpc test_dumbdbm test_dummy_thread test_dummy_threading test_email test_email_codecs test_email_renamed test_enumerate test_eof test_epoll test_epoll skipped -- kernel doesn't support epoll() test_errno test_exception_variations test_extcall test_fcntl test_file test_filecmp test_fileinput test_fileio test_float test_fnmatch test_fork1 test_format test_fpformat test_fractions test_frozen test_ftplib test_funcattrs test_functools test_future test_future3 test_future4 test_future_builtins test_gc test_gdbm test_generators test_genericpath test_genexps test_getargs test_getargs2 test_getopt test_gettext test_gl test_gl skipped -- No module named gl test_glob test_global test_grp test_gzip test_hash test_hashlib test_heapq test_hmac test_hotshot test_htmllib test_htmlparser test_httplib test_httpservers [12826 refs] [12826 refs] [21355 refs] test_imageop test_imageop skipped -- No module named imgfile test_imaplib test_imgfile test_imgfile skipped -- No module named imgfile test_imp test_import test_importhooks test_index test_inspect test_int test_int_literal test_io test_ioctl test_ioctl skipped -- Unable to open /dev/tty test_isinstance test_iter test_iterlen test_itertools test_json test_kqueue test_kqueue skipped -- test works only on BSD test_largefile test_lib2to3 test_lib2to3 skipped -- No module named myfixes test_list test_locale test_logging test_long test_long_future test_longexp test_macos test_macos skipped -- No module named MacOS test_macostools test_macostools skipped -- No module named macostools test_macpath test_mailbox test_marshal test_math test_md5 test_memoryio test_mhlib test_mimetools test_mimetypes test_minidom test_mmap test_module test_modulefinder test_multibytecodec test_multibytecodec_support test_multifile test_multiprocessing test_multiprocessing skipped -- OSError raises on RLock creation, see issue 3111! test_mutants test_mutex test_netrc test_new test_nis test_normalization test_ntpath test_old_mailbox test_openpty test_operator test_optparse test_os /tmp/python-test/local/lib/python2.6/os.py:759: DeprecationWarning: integer argument expected, got float bs += read(_urandomfd, n - len(bs)) test_parser Expecting 's_push: parser stack overflow' in next line s_push: parser stack overflow test_peepholer test_pep247 test_pep263 test_pep277 test_pep277 skipped -- test works only on NT+ test_pep292 test_pep352 test_pickle test_pickletools test_pipes test_pkg test_pkgimport test_pkgutil test_platform test_plistlib test_poll test_popen [12831 refs] [12831 refs] [12831 refs] test_popen2 test_poplib test_posix test_posixpath test_pow test_pprint test_print test_profile test_profilehooks test_property test_pstats test_pty test_pwd test_py3kwarn test_py3kwarn skipped -- test.test_py3kwarn must be run with the -3 flag test_pyclbr test_pydoc [17360 refs] test_pyexpat test_queue test_quopri [15345 refs] [15345 refs] test_random test_re test_repr test_resource test_rfc822 test_richcmp test_robotparser test_runpy test_sax test_scope test_scriptpackages test_scriptpackages skipped -- No module named aetools test_select test_set test_sets test_sgmllib test_sha test_shelve test_shlex test_shutil test_signal test_site [12826 refs] [12826 refs] [12829 refs] [12826 refs] test_slice test_smtplib test_socket test_socketserver test_softspace test_sort test_sqlite test_ssl test_startfile test_startfile skipped -- cannot import name startfile test_str test_strftime test_string test_stringprep test_strop test_strptime test_struct test_structmembers test_structseq test_subprocess [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [14726 refs] [13041 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] [12826 refs] . [12826 refs] [12826 refs] this bit of output is from a test of stdout in a different process ... [12826 refs] [12826 refs] [13041 refs] test_sunaudiodev test_sunaudiodev skipped -- No module named sunaudiodev test_sundry /tmp/python-test/local/lib/python2.6/test/test_sundry.py:67: DeprecationWarning: The posixfile module is deprecated; fcntl.lockf() provides better locking import posixfile test_symtable test_syntax test_sys [12826 refs] [12826 refs] [13055 refs] [12849 refs] test_tarfile test_tcl test_tcl skipped -- No module named _tkinter test_telnetlib test_tempfile [12829 refs] test_textwrap test_thread test_threaded_import test_threadedtempfile test_threading [16318 refs] [16812 refs] [15783 refs] [15783 refs] [15783 refs] [15783 refs] test_threading_local test_threadsignals test_time test_timeout test_tokenize test_trace test_traceback test_transformer test_tuple test_typechecks test_ucn test_unary test_undocumented_details test_unicode test_unicode_file test_unicode_file skipped -- No Unicode filesystem semantics on this platform. test_unicodedata test_univnewlines test_unpack test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllibnet test test_urllibnet failed -- Traceback (most recent call last): File "/tmp/python-test/local/lib/python2.6/test/test_urllibnet.py", line 38, in testURLread x = f.read() File "/tmp/python-test/local/lib/python2.6/socket.py", line 327, in read data = self._sock.recv(rbufsize) timeout: timed out test_urlparse test_userdict test_userlist test_userstring test_uu test_uuid WARNING: uuid.getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._ifconfig_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. WARNING: uuid._unixdll_getnode is unreliable on many platforms. It is disabled until the code and/or test can be fixed properly. test_wait3 test_wait4 test_warnings test_wave test_weakref test_whichdb test_winreg test_winreg skipped -- No module named _winreg test_winsound test_winsound skipped -- No module named winsound test_with test_wsgiref test_xdrlib test_xml_etree test_xml_etree_c test_xmllib test_xmlrpc test_xpickle test_xrange test_zipfile test_zipfile64 test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run test_zipimport test_zlib 330 tests OK. 1 test failed: test_urllibnet 26 tests skipped: test_aepack test_al test_applesingle test_bsddb185 test_cd test_cl test_epoll test_gl test_imageop test_imgfile test_ioctl test_kqueue test_lib2to3 test_macos test_macostools test_multiprocessing test_pep277 test_py3kwarn test_scriptpackages test_startfile test_sunaudiodev test_tcl test_unicode_file test_winreg test_winsound test_zipfile64 4 skips unexpected on linux2: test_epoll test_multiprocessing test_lib2to3 test_ioctl [662377 refs] From buildbot at python.org Mon Sep 29 06:31:56 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 04:31:56 +0000 Subject: [Python-checkins] buildbot failure in amd64 gentoo 2.5 Message-ID: <20080929043156.44B801E4002@bag.python.org> The Buildbot has detected a new failure of amd64 gentoo 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/amd64%20gentoo%202.5/builds/151 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-amd64 Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: Traceback (most recent call last): File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/threading.py", line 486, in __bootstrap_inner self.run() File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/bsddb/test/test_thread.py", line 281, in readerThread rec = dbutils.DeadlockWrap(c.next, max_retries=10) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/bsddb/dbutils.py", line 62, in DeadlockWrap return function(*_args, **_kwargs) DBLockDeadlockError: (-30995, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock') 1 test failed: test_urllib2net ====================================================================== ERROR: testURLread (test.test_urllib2net.URLTimeoutTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/test/test_urllib2net.py", line 24, in testURLread f = urllib2.urlopen("http://www.python.org/") File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 381, in open response = self._open(req, data) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 399, in _open '_open', req) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 360, in _call_chain result = func(*args) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 1107, in http_open return self.do_open(httplib.HTTPConnection, req) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 1082, in do_open raise URLError(err) URLError: ====================================================================== ERROR: test_basic (test.test_urllib2net.urlopenNetworkTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/test/test_urllib2net.py", line 105, in test_basic open_url = urllib2.urlopen("http://www.python.org/") File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 124, in urlopen return _opener.open(url, data) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 381, in open response = self._open(req, data) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 399, in _open '_open', req) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 360, in _call_chain result = func(*args) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 1107, in http_open return self.do_open(httplib.HTTPConnection, req) File "/home/buildbot/slave/py-build/2.5.norwitz-amd64/build/Lib/urllib2.py", line 1082, in do_open raise URLError(err) URLError: make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 06:39:30 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 04:39:30 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 3.0 Message-ID: <20080929043930.84C501E4002@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%203.0/builds/291 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 07:11:40 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 05:11:40 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080929051140.1C1001E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/612 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_smtplib ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 08:01:39 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 06:01:39 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080929060140.2CA741E4021@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/657 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed failed slave lost sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 08:12:18 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 06:12:18 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 3.0 Message-ID: <20080929061218.C3FAA1E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%203.0/builds/1457 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_doctest make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Mon Sep 29 09:03:26 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 07:03:26 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080929070326.8ACEF1E4002@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/579 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 29 18:51:35 2008 From: python-checkins at python.org (georg.brandl) Date: Mon, 29 Sep 2008 18:51:35 +0200 (CEST) Subject: [Python-checkins] r66681 - python/trunk/PCbuild/readme.txt Message-ID: <20080929165135.65FB61E4002@bag.python.org> Author: georg.brandl Date: Mon Sep 29 18:51:35 2008 New Revision: 66681 Log: Update nasm location. Modified: python/trunk/PCbuild/readme.txt Modified: python/trunk/PCbuild/readme.txt ============================================================================== --- python/trunk/PCbuild/readme.txt (original) +++ python/trunk/PCbuild/readme.txt Mon Sep 29 18:51:35 2008 @@ -153,7 +153,7 @@ build process will automatically select the latest version. You must install the NASM assembler from - http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ + http://nasm.sf.net for x86 builds. Put nasmw.exe anywhere in your PATH. You can also install ActivePerl from From buildbot at python.org Mon Sep 29 19:45:02 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 17:45:02 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080929174502.B7DE21E4002@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/968 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: georg.brandl BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From python-checkins at python.org Mon Sep 29 20:56:38 2008 From: python-checkins at python.org (bill.janssen) Date: Mon, 29 Sep 2008 20:56:38 +0200 (CEST) Subject: [Python-checkins] r66682 - in python/trunk/Lib: ssl.py test/test_ssl.py Message-ID: <20080929185638.8A4D01E4002@bag.python.org> Author: bill.janssen Date: Mon Sep 29 20:56:38 2008 New Revision: 66682 Log: fix for release blocker 3910, 2.6 regression in socket.ssl method Modified: python/trunk/Lib/ssl.py python/trunk/Lib/test/test_ssl.py Modified: python/trunk/Lib/ssl.py ============================================================================== --- python/trunk/Lib/ssl.py (original) +++ python/trunk/Lib/ssl.py Mon Sep 29 20:56:38 2008 @@ -434,7 +434,18 @@ for compability with Python 2.5 and earlier. Will disappear in Python 3.0.""" - ssl_sock = _ssl.sslwrap(sock._sock, 0, keyfile, certfile, CERT_NONE, + if hasattr(sock, "_sock"): + sock = sock._sock + + ssl_sock = _ssl.sslwrap(sock, 0, keyfile, certfile, CERT_NONE, PROTOCOL_SSLv23, None) - ssl_sock.do_handshake() + try: + sock.getpeername() + except: + # no, no connection yet + pass + else: + # yes, do the handshake + ssl_sock.do_handshake() + return ssl_sock Modified: python/trunk/Lib/test/test_ssl.py ============================================================================== --- python/trunk/Lib/test/test_ssl.py (original) +++ python/trunk/Lib/test/test_ssl.py Mon Sep 29 20:56:38 2008 @@ -34,6 +34,21 @@ if test_support.verbose: sys.stdout.write(prefix + exc_format) + def testSimpleSSLwrap(self): + try: + ssl.sslwrap_simple(socket.socket(socket.AF_INET)) + except IOError, e: + if e.errno == 32: # broken pipe when ssl_sock.do_handshake(), this test doesn't care about that + pass + else: + raise + try: + ssl.sslwrap_simple(socket.socket(socket.AF_INET)._sock) + except IOError, e: + if e.errno == 32: # broken pipe when ssl_sock.do_handshake(), this test doesn't care about that + pass + else: + raise class BasicTests(unittest.TestCase): @@ -58,7 +73,6 @@ finally: s.close() - def testCrucialConstants(self): ssl.PROTOCOL_SSLv2 ssl.PROTOCOL_SSLv23 From buildbot at python.org Mon Sep 29 21:55:20 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 19:55:20 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080929195520.655A51E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3972 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: bill.janssen BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From python-checkins at python.org Mon Sep 29 21:56:24 2008 From: python-checkins at python.org (thomas.heller) Date: Mon, 29 Sep 2008 21:56:24 +0200 (CEST) Subject: [Python-checkins] r66683 - in python/trunk: Lib/ctypes/test/test_bitfields.py Modules/_ctypes/cfield.c Message-ID: <20080929195624.66D5A1E4002@bag.python.org> Author: thomas.heller Date: Mon Sep 29 21:56:24 2008 New Revision: 66683 Log: Fix issue #3547 for MingW, update comments. Modified: python/trunk/Lib/ctypes/test/test_bitfields.py python/trunk/Modules/_ctypes/cfield.c Modified: python/trunk/Lib/ctypes/test/test_bitfields.py ============================================================================== --- python/trunk/Lib/ctypes/test/test_bitfields.py (original) +++ python/trunk/Lib/ctypes/test/test_bitfields.py Mon Sep 29 21:56:24 2008 @@ -223,8 +223,9 @@ ("d", c_short, 4), ("e", c_short, 4), ("f", c_int, 24)] - # MS compilers do NOT combine c_short and c_int into - # one field, gcc does. + # MSVC does NOT combine c_short and c_int into one field, GCC + # does (unless GCC is run with '-mms-bitfields' which + # produces code compatible with MSVC). if os.name in ("nt", "ce"): self.failUnlessEqual(sizeof(X), sizeof(c_int) * 4) else: Modified: python/trunk/Modules/_ctypes/cfield.c ============================================================================== --- python/trunk/Modules/_ctypes/cfield.c (original) +++ python/trunk/Modules/_ctypes/cfield.c Mon Sep 29 21:56:24 2008 @@ -65,10 +65,12 @@ } if (bitsize /* this is a bitfield request */ && *pfield_size /* we have a bitfield open */ -#if defined(MS_WIN32) && !defined(__MINGW32__) - && dict->size * 8 == *pfield_size /* MSVC */ +#ifdef MS_WIN32 + /* MSVC, GCC with -mms-bitfields */ + && dict->size * 8 == *pfield_size #else - && dict->size * 8 <= *pfield_size /* GCC, MINGW */ + /* GCC */ + && dict->size * 8 <= *pfield_size #endif && (*pbitofs + bitsize) <= *pfield_size) { /* continue bit field */ From python-checkins at python.org Mon Sep 29 22:04:02 2008 From: python-checkins at python.org (thomas.heller) Date: Mon, 29 Sep 2008 22:04:02 +0200 (CEST) Subject: [Python-checkins] r66685 - in python/branches/release25-maint: Lib/ctypes/test/test_bitfields.py Modules/_ctypes/cfield.c Message-ID: <20080929200402.8B9951E4002@bag.python.org> Author: thomas.heller Date: Mon Sep 29 22:04:02 2008 New Revision: 66685 Log: Fix issue #3547 for MingW, update comments (backport from trunk). Modified: python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py python/branches/release25-maint/Modules/_ctypes/cfield.c Modified: python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py ============================================================================== --- python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py (original) +++ python/branches/release25-maint/Lib/ctypes/test/test_bitfields.py Mon Sep 29 22:04:02 2008 @@ -223,8 +223,9 @@ ("d", c_short, 4), ("e", c_short, 4), ("f", c_int, 24)] - # MS compilers do NOT combine c_short and c_int into - # one field, gcc does. + # MSVC does NOT combine c_short and c_int into one field, GCC + # does (unless GCC is run with '-mms-bitfields' which + # produces code compatible with MSVC). if os.name in ("nt", "ce"): self.failUnlessEqual(sizeof(X), sizeof(c_int) * 4) else: Modified: python/branches/release25-maint/Modules/_ctypes/cfield.c ============================================================================== --- python/branches/release25-maint/Modules/_ctypes/cfield.c (original) +++ python/branches/release25-maint/Modules/_ctypes/cfield.c Mon Sep 29 22:04:02 2008 @@ -65,10 +65,12 @@ } if (bitsize /* this is a bitfield request */ && *pfield_size /* we have a bitfield open */ -#if defined(MS_WIN32) && !defined(__MINGW32__) - && dict->size * 8 == *pfield_size /* MSVC */ +#ifdef MS_WIN32 + /* MSVC, GCC with -mms-bitfields */ + && dict->size * 8 == *pfield_size #else - && dict->size * 8 <= *pfield_size /* GCC, MINGW */ + /* GCC */ + && dict->size * 8 <= *pfield_size #endif && (*pbitofs + bitsize) <= *pfield_size) { /* continue bit field */ From python-checkins at python.org Tue Sep 30 00:09:07 2008 From: python-checkins at python.org (martin.v.loewis) Date: Tue, 30 Sep 2008 00:09:07 +0200 (CEST) Subject: [Python-checkins] r66686 - in python/trunk: Demo/turtle/turtleDemo.py Doc/library/turtle.rst Lib/lib-tk/turtle.py Misc/NEWS Message-ID: <20080929220907.B1CA11E4002@bag.python.org> Author: martin.v.loewis Date: Tue Sep 30 00:09:07 2008 New Revision: 66686 Log: Issue #3965: Allow repeated calls to turtle.Screen, by making it a true singleton object. Reviewed by Gregor Lingl. Modified: python/trunk/Demo/turtle/turtleDemo.py python/trunk/Doc/library/turtle.rst python/trunk/Lib/lib-tk/turtle.py python/trunk/Misc/NEWS Modified: python/trunk/Demo/turtle/turtleDemo.py ============================================================================== --- python/trunk/Demo/turtle/turtleDemo.py (original) +++ python/trunk/Demo/turtle/turtleDemo.py Tue Sep 30 00:09:07 2008 @@ -94,8 +94,8 @@ left_frame.pack(side=LEFT, fill=BOTH, expand=0) self.graph_frame = g_frame = Frame(root) - turtle.Screen._root = g_frame - turtle.Screen._canvas = turtle.ScrolledCanvas(g_frame, 800, 600, 1000, 800) + turtle._Screen._root = g_frame + turtle._Screen._canvas = turtle.ScrolledCanvas(g_frame, 800, 600, 1000, 800) #xturtle.Screen._canvas.pack(expand=1, fill="both") self.screen = _s_ = turtle.Screen() self.scanvas = _s_._canvas Modified: python/trunk/Doc/library/turtle.rst ============================================================================== --- python/trunk/Doc/library/turtle.rst (original) +++ python/trunk/Doc/library/turtle.rst Tue Sep 30 00:09:07 2008 @@ -40,10 +40,10 @@ :class:`ScrolledCanvas` as argument. It should be used when :mod:`turtle` is used as part of some application. - Derived from :class:`TurtleScreen` is the subclass :class:`Screen`. Screen - is implemented as sort of singleton, so there can exist only one instance of - Screen at a time. It should be used when :mod:`turtle` is used as a - standalone tool for doing graphics. + The function :func:`Screen` returns a singleton object of a + :class:`TurtleScreen` subclass. This function should be used when + :mod:`turtle` is used as a standalone tool for doing graphics. + As a singleton object, inheriting from its class is not possible. All methods of TurtleScreen/Screen also exist as functions, i.e. as part of the procedure-oriented interface. Modified: python/trunk/Lib/lib-tk/turtle.py ============================================================================== --- python/trunk/Lib/lib-tk/turtle.py (original) +++ python/trunk/Lib/lib-tk/turtle.py Tue Sep 30 00:09:07 2008 @@ -2422,7 +2422,7 @@ shape=_CFG["shape"], undobuffersize=_CFG["undobuffersize"], visible=_CFG["visible"]): - if isinstance(canvas, Screen): + if isinstance(canvas, _Screen): self.screen = canvas elif isinstance(canvas, TurtleScreen): if canvas not in RawTurtle.screens: @@ -3539,29 +3539,33 @@ RawPen = RawTurtle -### Screen - Klasse ######################## +### Screen - Singleton ######################## -class Screen(TurtleScreen): +def Screen(): + """Return the singleton screen object. + If none exists at the moment, create a new one and return it, + else return the existing one.""" + if Turtle._screen is None: + Turtle._screen = _Screen() + return Turtle._screen + +class _Screen(TurtleScreen): _root = None _canvas = None _title = _CFG["title"] - # Borg-Idiom - - _shared_state = {} - - def __new__(cls, *args, **kwargs): - obj = object.__new__(cls, *args, **kwargs) - obj.__dict__ = cls._shared_state - return obj - def __init__(self): - if Screen._root is None: - Screen._root = self._root = _Root() - self._root.title(Screen._title) + # XXX there is no need for this code to be conditional, + # as there will be only a single _Screen instance, anyway + # XXX actually, the turtle demo is injecting root window, + # so perhaps the conditional creation of a root should be + # preserved (perhaps by passing it as an optional parameter) + if _Screen._root is None: + _Screen._root = self._root = _Root() + self._root.title(_Screen._title) self._root.ondestroy(self._destroy) - if Screen._canvas is None: + if _Screen._canvas is None: width = _CFG["width"] height = _CFG["height"] canvwidth = _CFG["canvwidth"] @@ -3569,10 +3573,9 @@ leftright = _CFG["leftright"] topbottom = _CFG["topbottom"] self._root.setupcanvas(width, height, canvwidth, canvheight) - Screen._canvas = self._root._getcanvas() + _Screen._canvas = self._root._getcanvas() self.setup(width, height, leftright, topbottom) - TurtleScreen.__init__(self, Screen._canvas) - Turtle._screen = self + TurtleScreen.__init__(self, _Screen._canvas) def setup(self, width=_CFG["width"], height=_CFG["height"], startx=_CFG["leftright"], starty=_CFG["topbottom"]): @@ -3626,17 +3629,17 @@ Example (for a Screen instance named screen): >>> screen.title("Welcome to the turtle-zoo!") """ - if Screen._root is not None: - Screen._root.title(titlestring) - Screen._title = titlestring + if _Screen._root is not None: + _Screen._root.title(titlestring) + _Screen._title = titlestring def _destroy(self): root = self._root - if root is Screen._root: + if root is _Screen._root: Turtle._pen = None Turtle._screen = None - Screen._root = None - Screen._canvas = None + _Screen._root = None + _Screen._canvas = None TurtleScreen._RUNNING = True root.destroy() @@ -3728,7 +3731,7 @@ docsdict = {} for methodname in _tg_screen_functions: - key = "Screen."+methodname + key = "_Screen."+methodname docsdict[key] = eval(key).__doc__ for methodname in _tg_turtle_functions: key = "Turtle."+methodname @@ -3842,14 +3845,14 @@ for methodname in _tg_screen_functions: - pl1, pl2 = getmethparlist(eval('Screen.' + methodname)) + pl1, pl2 = getmethparlist(eval('_Screen.' + methodname)) if pl1 == "": print ">>>>>>", pl1, pl2 continue defstr = ("def %(key)s%(pl1)s: return _getscreen().%(key)s%(pl2)s" % {'key':methodname, 'pl1':pl1, 'pl2':pl2}) exec defstr - eval(methodname).__doc__ = _screen_docrevise(eval('Screen.'+methodname).__doc__) + eval(methodname).__doc__ = _screen_docrevise(eval('_Screen.'+methodname).__doc__) for methodname in _tg_turtle_functions: pl1, pl2 = getmethparlist(eval('Turtle.' + methodname)) Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 30 00:09:07 2008 @@ -23,6 +23,9 @@ Library ------- +- Issue #3965: Allow repeated calls to turtle.Screen, by making it a + true singleton object. + - Issue #3895: It was possible to crash the interpreter when an external timer was used with cProfile that returned an object that could not be converted into a float. From buildbot at python.org Tue Sep 30 00:58:43 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 22:58:43 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080929225843.3F6261E4002@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1493 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 00:59:46 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 22:59:46 +0000 Subject: [Python-checkins] buildbot failure in x86 W2k8 trunk Message-ID: <20080929225946.777471E4002@bag.python.org> The Buildbot has detected a new failure of x86 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20W2k8%20trunk/builds/216 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-windows Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_bsddb3 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 01:29:44 2008 From: buildbot at python.org (buildbot at python.org) Date: Mon, 29 Sep 2008 23:29:44 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080929232944.722461E400B@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/614 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 3 tests failed: test_distutils test_posix test_subprocess ====================================================================== FAIL: test_get_python_inc (distutils.tests.test_sysconfig.SysconfigTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/distutils/tests/test_sysconfig.py", line 43, in test_get_python_inc self.assert_(os.path.isdir(inc_dir), inc_dir) AssertionError: /home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/Include ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 30 02:15:46 2008 From: python-checkins at python.org (jesse.noller) Date: Tue, 30 Sep 2008 02:15:46 +0200 (CEST) Subject: [Python-checkins] r66688 - in python/trunk: Doc/library/multiprocessing.rst Lib/multiprocessing/synchronize.py Lib/test/regrtest.py Lib/test/test_multiprocessing.py setup.py Message-ID: <20080930001546.5981C1E4002@bag.python.org> Author: jesse.noller Date: Tue Sep 30 02:15:45 2008 New Revision: 66688 Log: issue3770: if SEM_OPEN is 0, disable the mp.synchronize module, rev. Nick Coghlan, Damien Miller Modified: python/trunk/Doc/library/multiprocessing.rst python/trunk/Lib/multiprocessing/synchronize.py python/trunk/Lib/test/regrtest.py python/trunk/Lib/test/test_multiprocessing.py python/trunk/setup.py Modified: python/trunk/Doc/library/multiprocessing.rst ============================================================================== --- python/trunk/Doc/library/multiprocessing.rst (original) +++ python/trunk/Doc/library/multiprocessing.rst Tue Sep 30 02:15:45 2008 @@ -18,6 +18,13 @@ leverage multiple processors on a given machine. It runs on both Unix and Windows. +.. warning:: + + This package largely requires a functioning shared semaphore + implementation on the host operating system to function. Without one, the + :mod:`multiprocessing.synchronize` module will be disabled, and attempts to + import it will result in an ImportError. See + http://bugs.python.org/issue3770 for additional information. The :class:`Process` class ~~~~~~~~~~~~~~~~~~~~~~~~~~ Modified: python/trunk/Lib/multiprocessing/synchronize.py ============================================================================== --- python/trunk/Lib/multiprocessing/synchronize.py (original) +++ python/trunk/Lib/multiprocessing/synchronize.py Tue Sep 30 02:15:45 2008 @@ -21,6 +21,17 @@ from multiprocessing.util import Finalize, register_after_fork, debug from multiprocessing.forking import assert_spawning, Popen +# Try to import the mp.synchronize module cleanly, if it fails +# raise ImportError for platforms lacking a working sem_open implementation. +# See issue 3770 +try: + from _multiprocessing import SemLock +except (ImportError): + raise ImportError("This platform lacks a functioning sem_open" + + " implementation, therefore, the required" + + " synchronization primitives needed will not" + + " function, see issue 3770.") + # # Constants # Modified: python/trunk/Lib/test/regrtest.py ============================================================================== --- python/trunk/Lib/test/regrtest.py (original) +++ python/trunk/Lib/test/regrtest.py Tue Sep 30 02:15:45 2008 @@ -1047,6 +1047,7 @@ test_tcl test_timeout test_urllibnet + test_multiprocessing """, 'aix5': """ @@ -1077,6 +1078,7 @@ test_ossaudiodev test_pep277 test_tcl + test_multiprocessing """, 'netbsd3': """ @@ -1092,6 +1094,7 @@ test_ossaudiodev test_pep277 test_tcl + test_multiprocessing """, } _expectations['freebsd5'] = _expectations['freebsd4'] Modified: python/trunk/Lib/test/test_multiprocessing.py ============================================================================== --- python/trunk/Lib/test/test_multiprocessing.py (original) +++ python/trunk/Lib/test/test_multiprocessing.py Tue Sep 30 02:15:45 2008 @@ -18,6 +18,14 @@ import random import logging + +# Work around broken sem_open implementations +try: + import multiprocessing.synchronize +except ImportError, e: + from test.test_support import TestSkipped + raise TestSkipped(e) + import multiprocessing.dummy import multiprocessing.connection import multiprocessing.managers Modified: python/trunk/setup.py ============================================================================== --- python/trunk/setup.py (original) +++ python/trunk/setup.py Tue Sep 30 02:15:45 2008 @@ -1269,6 +1269,14 @@ ) libraries = [] + elif platform.startswith('openbsd'): + macros = dict( # OpenBSD + HAVE_SEM_OPEN=0, # Not implemented + HAVE_SEM_TIMEDWAIT=0, + HAVE_FD_TRANSFER=1, + ) + libraries = [] + else: # Linux and other unices macros = dict( HAVE_SEM_OPEN=1, From buildbot at python.org Tue Sep 30 03:18:28 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 01:18:28 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080930011829.0611B1E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3975 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesse.noller BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 30 03:31:50 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 30 Sep 2008 03:31:50 +0200 (CEST) Subject: [Python-checkins] r66689 - in python/trunk: Lib/test/test_imageop.py Misc/NEWS Modules/imageop.c Message-ID: <20080930013150.3AC791E4002@bag.python.org> Author: benjamin.peterson Date: Tue Sep 30 03:31:49 2008 New Revision: 66689 Log: fix security issue 2: imageop's poor validation of arguments could result in segfaults patch by Victor Stinner reviewed by myself and Brett Modified: python/trunk/Lib/test/test_imageop.py python/trunk/Misc/NEWS python/trunk/Modules/imageop.c Modified: python/trunk/Lib/test/test_imageop.py ============================================================================== --- python/trunk/Lib/test/test_imageop.py (original) +++ python/trunk/Lib/test/test_imageop.py Tue Sep 30 03:31:49 2008 @@ -5,13 +5,74 @@ Roger E. Masse """ -from test.test_support import verbose, unlink, import_module +from test.test_support import verbose, unlink, import_module, run_unittest imageop = import_module('imageop', deprecated=True) -import uu, os, imgfile +import uu, os, unittest + + +SIZES = (1, 2, 3, 4) +_VALUES = (1, 2, 2**10, 2**15-1, 2**15, 2**15+1, 2**31-2, 2**31-1) +VALUES = tuple( -x for x in reversed(_VALUES) ) + (0,) + _VALUES +AAAAA = "A" * 1024 + + +class InputValidationTests(unittest.TestCase): + + def _check(self, name, size=None, *extra): + func = getattr(imageop, name) + for height in VALUES: + for width in VALUES: + strlen = abs(width * height) + if size: + strlen *= size + if strlen < 1024: + data = "A" * strlen + else: + data = AAAAA + if size: + arguments = (data, size, width, height) + extra + else: + arguments = (data, width, height) + extra + try: + func(*arguments) + except (ValueError, imageop.error): + pass + + def check_size(self, name, *extra): + for size in SIZES: + self._check(name, size, *extra) + + def check(self, name, *extra): + self._check(name, None, *extra) + + def test_input_validation(self): + self.check_size("crop", 0, 0, 0, 0) + self.check_size("scale", 1, 0) + self.check_size("scale", -1, -1) + self.check_size("tovideo") + self.check("grey2mono", 128) + self.check("grey2grey4") + self.check("grey2grey2") + self.check("dither2mono") + self.check("dither2grey2") + self.check("mono2grey", 0, 0) + self.check("grey22grey") + self.check("rgb2rgb8") # nlen*4 == len + self.check("rgb82rgb") + self.check("rgb2grey") + self.check("grey2rgb") + def test_main(): + run_unittest(InputValidationTests) + + try: + import imgfile + except ImportError: + return + # Create binary test files uu.decode(get_qualified_path('testrgb'+os.extsep+'uue'), 'test'+os.extsep+'rgb') Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 30 03:31:49 2008 @@ -54,6 +54,9 @@ Extension Modules ----------------- +- Security Issue #2: imageop did not validate arguments correctly and could + segfault as a result. + - Issue #3886: Possible integer overflows in the _hashopenssl module were closed. Modified: python/trunk/Modules/imageop.c ============================================================================== --- python/trunk/Modules/imageop.c (original) +++ python/trunk/Modules/imageop.c Tue Sep 30 03:31:49 2008 @@ -26,6 +26,46 @@ static PyObject *ImageopError; static PyObject *ImageopDict; +/** + * Check a coordonnate, make sure that (0 < value). + * Return 0 on error. + */ +static int +check_coordonnate(int value, const char* name) +{ + if ( 0 < value) + return 1; + PyErr_Format(PyExc_ValueError, "%s value is negative or nul", name); + return 0; +} + +/** + * Check integer overflow to make sure that product == x*y*size. + * Return 0 on error. + */ +static int +check_multiply_size(int product, int x, const char* xname, int y, const char* yname, int size) +{ + if ( !check_coordonnate(x, xname) ) + return 0; + if ( !check_coordonnate(y, yname) ) + return 0; + if ( size == (product / y) / x ) + return 1; + PyErr_SetString(ImageopError, "String has incorrect length"); + return 0; +} + +/** + * Check integer overflow to make sure that product == x*y. + * Return 0 on error. + */ +static int +check_multiply(int product, int x, int y) +{ + return check_multiply_size(product, x, "x", y, "y", 1); +} + /* If this function returns true (the default if anything goes wrong), we're behaving in a backward-compatible way with respect to how multi-byte pixels are stored in the strings. The code in this module was originally written @@ -85,26 +125,21 @@ if ( !PyArg_ParseTuple(args, "s#iiiiiii", &cp, &len, &size, &x, &y, &newx1, &newy1, &newx2, &newy2) ) return 0; - + if ( size != 1 && size != 2 && size != 4 ) { PyErr_SetString(ImageopError, "Size should be 1, 2 or 4"); return 0; } - if (( len != size*x*y ) || - ( size != ((len / x) / y) )) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, x, "x", y, "y", size) ) return 0; - } + xstep = (newx1 < newx2)? 1 : -1; ystep = (newy1 < newy2)? 1 : -1; - + nlen = (abs(newx2-newx1)+1)*(abs(newy2-newy1)+1)*size; - if ( size != ((nlen / (abs(newx2-newx1)+1)) / (abs(newy2-newy1)+1)) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(nlen, abs(newx2-newx1)+1, "abs(newx2-newx1)+1", abs(newy2-newy1)+1, "abs(newy2-newy1)+1", size) ) return 0; - } - rv = PyString_FromStringAndSize(NULL, - (abs(newx2-newx1)+1)*(abs(newy2-newy1)+1)*size); + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; ncp = (char *)PyString_AsString(rv); @@ -131,7 +166,7 @@ } return rv; } - + static PyObject * imageop_scale(PyObject *self, PyObject *args) { @@ -146,22 +181,17 @@ if ( !PyArg_ParseTuple(args, "s#iiiii", &cp, &len, &size, &x, &y, &newx, &newy) ) return 0; - + if ( size != 1 && size != 2 && size != 4 ) { PyErr_SetString(ImageopError, "Size should be 1, 2 or 4"); return 0; } - if ( ( len != size*x*y ) || - ( size != ((len / x) / y) ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, x, "x", y, "y", size) ) return 0; - } nlen = newx*newy*size; - if ( size != ((nlen / newx) / newy) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(nlen, newx, "newx", newy, "newy", size) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -193,8 +223,8 @@ unsigned char *cp, *ncp; int width; PyObject *rv; - - + + if ( !PyArg_ParseTuple(args, "s#iii", &cp, &len, &width, &maxx, &maxy) ) return 0; @@ -202,12 +232,9 @@ PyErr_SetString(ImageopError, "Size should be 1 or 4"); return 0; } - if ( ( maxx*maxy*width != len ) || - ( maxx != ((len / maxy) / width) ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, maxx, "max", maxy, "maxy", width) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, len); if ( rv == 0 ) return 0; @@ -248,17 +275,14 @@ unsigned char ovalue; PyObject *rv; int i, bit; - - + + if ( !PyArg_ParseTuple(args, "s#iii", &cp, &len, &x, &y, &tres) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+7)/8); if ( rv == 0 ) return 0; @@ -290,17 +314,14 @@ PyObject *rv; int i; int pos; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+1)/2); if ( rv == 0 ) return 0; @@ -330,17 +351,14 @@ PyObject *rv; int i; int pos; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+3)/4); if ( rv == 0 ) return 0; @@ -369,17 +387,14 @@ unsigned char ovalue; PyObject *rv; int i, bit; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+7)/8); if ( rv == 0 ) return 0; @@ -416,17 +431,14 @@ int i; int pos; int sum = 0, nvalue; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+3)/4); if ( rv == 0 ) return 0; @@ -457,20 +469,18 @@ unsigned char *cp, *ncp; PyObject *rv; int i, bit; - + if ( !PyArg_ParseTuple(args, "s#iiii", &cp, &len, &x, &y, &v0, &v1) ) return 0; nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(nlen, x, y) ) return 0; - } if ( (nlen+7)/8 != len ) { PyErr_SetString(ImageopError, "String has incorrect length"); return 0; } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -498,20 +508,19 @@ unsigned char *cp, *ncp; PyObject *rv; int i, pos, value = 0, nvalue; - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(nlen, x, y) ) { return 0; } if ( (nlen+3)/4 != len ) { PyErr_SetString(ImageopError, "String has incorrect length"); return 0; } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -538,20 +547,18 @@ unsigned char *cp, *ncp; PyObject *rv; int i, pos, value = 0, nvalue; - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(nlen, x, y) ) return 0; - } if ( (nlen+1)/2 != len ) { PyErr_SetString(ImageopError, "String has incorrect length"); return 0; } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -579,20 +586,16 @@ PyObject *rv; int i, r, g, b; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len*4, x, "x", y, "y", 4) ) return 0; - } - if ( nlen*4 != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + nlen = x*y; + if ( !check_multiply(nlen, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -627,31 +630,22 @@ int i, r, g, b; unsigned char value; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); - return 0; - } - if ( nlen != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - - if ( nlen / x != y || nlen > INT_MAX / 4) { - PyErr_SetString(ImageopError, "Image is too large"); + nlen = x*y*4; + if ( !check_multiply_size(nlen, x, "x", y, "y", 4) ) return 0; - } - - rv = PyString_FromStringAndSize(NULL, nlen*4); + + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; ncp = (unsigned char *)PyString_AsString(rv); - for ( i=0; i < nlen; i++ ) { + for ( i=0; i < len; i++ ) { /* Bits in source: RRRBBGGG ** Red and Green are multiplied by 36.5, Blue by 85 */ @@ -686,20 +680,16 @@ int i, r, g, b; int nvalue; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, x, "x", y, "y", 4) ) return 0; - } - if ( nlen*4 != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + nlen = x*y; + if ( !check_multiply(nlen, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -735,31 +725,22 @@ int i; unsigned char value; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - if ( nlen != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + nlen = x*y*4; + if ( !check_multiply_size(nlen, x, "x", y, "y", 4) ) return 0; - } - - if ( nlen / x != y || nlen > INT_MAX / 4) { - PyErr_SetString(ImageopError, "Image is too large"); - return 0; - } - - rv = PyString_FromStringAndSize(NULL, nlen*4); + + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; ncp = (unsigned char *)PyString_AsString(rv); - for ( i=0; i < nlen; i++ ) { + for ( i=0; i < len; i++ ) { value = *cp++; if (backward_compatible) { * (Py_UInt32 *) ncp = (Py_UInt32) value | ((Py_UInt32) value << 8 ) | ((Py_UInt32) value << 16); @@ -774,39 +755,6 @@ return rv; } -/* -static object * -imageop_mul(object *self, object *args) -{ - char *cp, *ncp; - int len, size, x, y; - object *rv; - int i; - - if ( !getargs(args, "(s#iii)", &cp, &len, &size, &x, &y) ) - return 0; - - if ( size != 1 && size != 4 ) { - err_setstr(ImageopError, "Size should be 1 or 4"); - return 0; - } - if ( len != size*x*y ) { - err_setstr(ImageopError, "String has incorrect length"); - return 0; - } - - rv = newsizedstringobject(NULL, XXXX); - if ( rv == 0 ) - return 0; - ncp = (char *)getstringvalue(rv); - - - for ( i=0; i < len; i += size ) { - } - return rv; -} -*/ - static PyMethodDef imageop_methods[] = { { "crop", imageop_crop, METH_VARARGS }, { "scale", imageop_scale, METH_VARARGS }, @@ -831,11 +779,11 @@ initimageop(void) { PyObject *m; - + if (PyErr_WarnPy3k("the imageop module has been removed in " "Python 3.0", 2) < 0) return; - + m = Py_InitModule("imageop", imageop_methods); if (m == NULL) return; From python-checkins at python.org Tue Sep 30 03:46:49 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 30 Sep 2008 03:46:49 +0200 (CEST) Subject: [Python-checkins] r66690 - in python/branches/release25-maint: Lib/test/test_imageop.py Misc/NEWS Modules/imageop.c Message-ID: <20080930014649.43F691E4002@bag.python.org> Author: benjamin.peterson Date: Tue Sep 30 03:46:48 2008 New Revision: 66690 Log: backport r66689: imageop could segfault due to poor argument validation Modified: python/branches/release25-maint/Lib/test/test_imageop.py python/branches/release25-maint/Misc/NEWS python/branches/release25-maint/Modules/imageop.c Modified: python/branches/release25-maint/Lib/test/test_imageop.py ============================================================================== --- python/branches/release25-maint/Lib/test/test_imageop.py (original) +++ python/branches/release25-maint/Lib/test/test_imageop.py Tue Sep 30 03:46:48 2008 @@ -5,9 +5,9 @@ Roger E. Masse """ -from test.test_support import verbose, unlink +from test.test_support import verbose, unlink, run_unittest -import imageop, uu, os +import imageop, uu, os, unittest import warnings warnings.filterwarnings("ignore", @@ -15,7 +15,66 @@ DeprecationWarning, ".*test_imageop") -def main(use_rgbimg=1): +SIZES = (1, 2, 3, 4) +_VALUES = (1, 2, 2**10, 2**15-1, 2**15, 2**15+1, 2**31-2, 2**31-1) +VALUES = tuple( -x for x in reversed(_VALUES) ) + (0,) + _VALUES +AAAAA = "A" * 1024 + + +class InputValidationTests(unittest.TestCase): + + def _check(self, name, size=None, *extra): + func = getattr(imageop, name) + for height in VALUES: + for width in VALUES: + strlen = abs(width * height) + if size: + strlen *= size + if strlen < 1024: + data = "A" * strlen + else: + data = AAAAA + if size: + arguments = (data, size, width, height) + extra + else: + arguments = (data, width, height) + extra + try: + func(*arguments) + except (ValueError, imageop.error): + pass + + def check_size(self, name, *extra): + for size in SIZES: + self._check(name, size, *extra) + + def check(self, name, *extra): + self._check(name, None, *extra) + + def test_input_validation(self): + self.check_size("crop", 0, 0, 0, 0) + self.check_size("scale", 1, 0) + self.check_size("scale", -1, -1) + self.check_size("tovideo") + self.check("grey2mono", 128) + self.check("grey2grey4") + self.check("grey2grey2") + self.check("dither2mono") + self.check("dither2grey2") + self.check("mono2grey", 0, 0) + self.check("grey22grey") + self.check("rgb2rgb8") # nlen*4 == len + self.check("rgb82rgb") + self.check("rgb2grey") + self.check("grey2rgb") + + +def test_main(use_rgbimg=True): + run_unittest(InputValidationTests) + + try: + import imgfile + except ImportError: + return # Create binary test files uu.decode(get_qualified_path('testrgb'+os.extsep+'uue'), 'test'+os.extsep+'rgb') @@ -171,7 +230,3 @@ if os.path.exists(fullname): return fullname return name - -# rgbimg (unlike imgfile) is portable to platforms other than SGI. -# So we prefer to use it. -main(use_rgbimg=1) Modified: python/branches/release25-maint/Misc/NEWS ============================================================================== --- python/branches/release25-maint/Misc/NEWS (original) +++ python/branches/release25-maint/Misc/NEWS Tue Sep 30 03:46:48 2008 @@ -190,6 +190,9 @@ Extension Modules ----------------- +- Security Issue #2: imageop did not validate arguments correctly and could + segfault as a result. + - Issue 3886: [CVE-2008-2316] Possible integer overflow in the _hashopenssl module was closed. Modified: python/branches/release25-maint/Modules/imageop.c ============================================================================== --- python/branches/release25-maint/Modules/imageop.c (original) +++ python/branches/release25-maint/Modules/imageop.c Tue Sep 30 03:46:48 2008 @@ -26,6 +26,46 @@ static PyObject *ImageopError; static PyObject *ImageopDict; +/** + * Check a coordonnate, make sure that (0 < value). + * Return 0 on error. + */ +static int +check_coordonnate(int value, const char* name) +{ + if ( 0 < value) + return 1; + PyErr_Format(PyExc_ValueError, "%s value is negative or nul", name); + return 0; +} + +/** + * Check integer overflow to make sure that product == x*y*size. + * Return 0 on error. + */ +static int +check_multiply_size(int product, int x, const char* xname, int y, const char* yname, int size) +{ + if ( !check_coordonnate(x, xname) ) + return 0; + if ( !check_coordonnate(y, yname) ) + return 0; + if ( size == (product / y) / x ) + return 1; + PyErr_SetString(ImageopError, "String has incorrect length"); + return 0; +} + +/** + * Check integer overflow to make sure that product == x*y. + * Return 0 on error. + */ +static int +check_multiply(int product, int x, int y) +{ + return check_multiply_size(product, x, "x", y, "y", 1); +} + /* If this function returns true (the default if anything goes wrong), we're behaving in a backward-compatible way with respect to how multi-byte pixels are stored in the strings. The code in this module was originally written @@ -85,26 +125,21 @@ if ( !PyArg_ParseTuple(args, "s#iiiiiii", &cp, &len, &size, &x, &y, &newx1, &newy1, &newx2, &newy2) ) return 0; - + if ( size != 1 && size != 2 && size != 4 ) { PyErr_SetString(ImageopError, "Size should be 1, 2 or 4"); return 0; } - if (( len != size*x*y ) || - ( size != ((len / x) / y) )) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, x, "x", y, "y", size) ) return 0; - } + xstep = (newx1 < newx2)? 1 : -1; ystep = (newy1 < newy2)? 1 : -1; - + nlen = (abs(newx2-newx1)+1)*(abs(newy2-newy1)+1)*size; - if ( size != ((nlen / (abs(newx2-newx1)+1)) / (abs(newy2-newy1)+1)) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(nlen, abs(newx2-newx1)+1, "abs(newx2-newx1)+1", abs(newy2-newy1)+1, "abs(newy2-newy1)+1", size) ) return 0; - } - rv = PyString_FromStringAndSize(NULL, - (abs(newx2-newx1)+1)*(abs(newy2-newy1)+1)*size); + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; ncp = (char *)PyString_AsString(rv); @@ -131,7 +166,7 @@ } return rv; } - + static PyObject * imageop_scale(PyObject *self, PyObject *args) { @@ -146,22 +181,17 @@ if ( !PyArg_ParseTuple(args, "s#iiiii", &cp, &len, &size, &x, &y, &newx, &newy) ) return 0; - + if ( size != 1 && size != 2 && size != 4 ) { PyErr_SetString(ImageopError, "Size should be 1, 2 or 4"); return 0; } - if ( ( len != size*x*y ) || - ( size != ((len / x) / y) ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, x, "x", y, "y", size) ) return 0; - } nlen = newx*newy*size; - if ( size != ((nlen / newx) / newy) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(nlen, newx, "newx", newy, "newy", size) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -193,8 +223,8 @@ unsigned char *cp, *ncp; int width; PyObject *rv; - - + + if ( !PyArg_ParseTuple(args, "s#iii", &cp, &len, &width, &maxx, &maxy) ) return 0; @@ -202,12 +232,9 @@ PyErr_SetString(ImageopError, "Size should be 1 or 4"); return 0; } - if ( ( maxx*maxy*width != len ) || - ( maxx != ((len / maxy) / width) ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, maxx, "max", maxy, "maxy", width) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, len); if ( rv == 0 ) return 0; @@ -248,17 +275,14 @@ unsigned char ovalue; PyObject *rv; int i, bit; - - + + if ( !PyArg_ParseTuple(args, "s#iii", &cp, &len, &x, &y, &tres) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+7)/8); if ( rv == 0 ) return 0; @@ -290,17 +314,14 @@ PyObject *rv; int i; int pos; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+1)/2); if ( rv == 0 ) return 0; @@ -330,17 +351,14 @@ PyObject *rv; int i; int pos; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+3)/4); if ( rv == 0 ) return 0; @@ -369,17 +387,14 @@ unsigned char ovalue; PyObject *rv; int i, bit; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+7)/8); if ( rv == 0 ) return 0; @@ -416,17 +431,14 @@ int i; int pos; int sum = 0, nvalue; - - + + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - if ( ( x*y != len ) || - ( x != len / y ) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, (len+3)/4); if ( rv == 0 ) return 0; @@ -457,20 +469,18 @@ unsigned char *cp, *ncp; PyObject *rv; int i, bit; - + if ( !PyArg_ParseTuple(args, "s#iiii", &cp, &len, &x, &y, &v0, &v1) ) return 0; nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(nlen, x, y) ) return 0; - } if ( (nlen+7)/8 != len ) { PyErr_SetString(ImageopError, "String has incorrect length"); return 0; } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -498,20 +508,19 @@ unsigned char *cp, *ncp; PyObject *rv; int i, pos, value = 0, nvalue; - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(nlen, x, y) ) { return 0; } if ( (nlen+3)/4 != len ) { PyErr_SetString(ImageopError, "String has incorrect length"); return 0; } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -538,20 +547,18 @@ unsigned char *cp, *ncp; PyObject *rv; int i, pos, value = 0, nvalue; - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(nlen, x, y) ) return 0; - } if ( (nlen+1)/2 != len ) { PyErr_SetString(ImageopError, "String has incorrect length"); return 0; } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -579,20 +586,16 @@ PyObject *rv; int i, r, g, b; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len*4, x, "x", y, "y", 4) ) return 0; - } - if ( nlen*4 != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + nlen = x*y; + if ( !check_multiply(nlen, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -627,31 +630,22 @@ int i, r, g, b; unsigned char value; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); - return 0; - } - if ( nlen != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - - if ( nlen / x != y || nlen > INT_MAX / 4) { - PyErr_SetString(ImageopError, "Image is too large"); + nlen = x*y*4; + if ( !check_multiply_size(nlen, x, "x", y, "y", 4) ) return 0; - } - - rv = PyString_FromStringAndSize(NULL, nlen*4); + + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; ncp = (unsigned char *)PyString_AsString(rv); - for ( i=0; i < nlen; i++ ) { + for ( i=0; i < len; i++ ) { /* Bits in source: RRRBBGGG ** Red and Green are multiplied by 36.5, Blue by 85 */ @@ -686,20 +680,16 @@ int i, r, g, b; int nvalue; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply_size(len, x, "x", y, "y", 4) ) return 0; - } - if ( nlen*4 != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + nlen = x*y; + if ( !check_multiply(nlen, x, y) ) return 0; - } - + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; @@ -735,31 +725,22 @@ int i; unsigned char value; int backward_compatible = imageop_backward_compatible(); - + if ( !PyArg_ParseTuple(args, "s#ii", &cp, &len, &x, &y) ) return 0; - nlen = x*y; - if ( x != (nlen / y) ) { - PyErr_SetString(ImageopError, "String has incorrect length"); - return 0; - } - if ( nlen != len ) { - PyErr_SetString(ImageopError, "String has incorrect length"); + if ( !check_multiply(len, x, y) ) return 0; - } - - if ( nlen / x != y || nlen > INT_MAX / 4) { - PyErr_SetString(ImageopError, "Image is too large"); + nlen = x*y*4; + if ( !check_multiply_size(nlen, x, "x", y, "y", 4) ) return 0; - } - - rv = PyString_FromStringAndSize(NULL, nlen*4); + + rv = PyString_FromStringAndSize(NULL, nlen); if ( rv == 0 ) return 0; ncp = (unsigned char *)PyString_AsString(rv); - for ( i=0; i < nlen; i++ ) { + for ( i=0; i < len; i++ ) { value = *cp++; if (backward_compatible) { * (Py_UInt32 *) ncp = (Py_UInt32) value | ((Py_UInt32) value << 8 ) | ((Py_UInt32) value << 16); @@ -774,39 +755,6 @@ return rv; } -/* -static object * -imageop_mul(object *self, object *args) -{ - char *cp, *ncp; - int len, size, x, y; - object *rv; - int i; - - if ( !getargs(args, "(s#iii)", &cp, &len, &size, &x, &y) ) - return 0; - - if ( size != 1 && size != 4 ) { - err_setstr(ImageopError, "Size should be 1 or 4"); - return 0; - } - if ( len != size*x*y ) { - err_setstr(ImageopError, "String has incorrect length"); - return 0; - } - - rv = newsizedstringobject(NULL, XXXX); - if ( rv == 0 ) - return 0; - ncp = (char *)getstringvalue(rv); - - - for ( i=0; i < len; i += size ) { - } - return rv; -} -*/ - static PyMethodDef imageop_methods[] = { { "crop", imageop_crop, METH_VARARGS }, { "scale", imageop_scale, METH_VARARGS }, @@ -831,6 +779,7 @@ initimageop(void) { PyObject *m; + m = Py_InitModule("imageop", imageop_methods); if (m == NULL) return; From python-checkins at python.org Tue Sep 30 04:11:07 2008 From: python-checkins at python.org (benjamin.peterson) Date: Tue, 30 Sep 2008 04:11:07 +0200 (CEST) Subject: [Python-checkins] r66693 - in python/trunk/Modules: _bytesio.c _struct.c Message-ID: <20080930021107.C6BC71E4002@bag.python.org> Author: benjamin.peterson Date: Tue Sep 30 04:11:07 2008 New Revision: 66693 Log: Victor Stinner's patches to check the return result of PyLong_Ssize_t reviewed by Amaury Modified: python/trunk/Modules/_bytesio.c python/trunk/Modules/_struct.c Modified: python/trunk/Modules/_bytesio.c ============================================================================== --- python/trunk/Modules/_bytesio.c (original) +++ python/trunk/Modules/_bytesio.c Tue Sep 30 04:11:07 2008 @@ -221,6 +221,8 @@ if (PyInt_Check(arg)) { size = PyInt_AsSsize_t(arg); + if (size == -1 && PyErr_Occurred()) + return NULL; } else if (arg == Py_None) { /* Read until EOF is reached, by default. */ @@ -288,6 +290,8 @@ if (PyInt_Check(arg)) { size = PyInt_AsSsize_t(arg); + if (size == -1 && PyErr_Occurred()) + return NULL; } else if (arg == Py_None) { /* No size limit, by default. */ @@ -332,6 +336,8 @@ if (PyInt_Check(arg)) { maxsize = PyInt_AsSsize_t(arg); + if (maxsize == -1 && PyErr_Occurred()) + return NULL; } else if (arg == Py_None) { /* No size limit, by default. */ @@ -415,6 +421,8 @@ if (PyInt_Check(arg)) { size = PyInt_AsSsize_t(arg); + if (size == -1 && PyErr_Occurred()) + return NULL; } else if (arg == Py_None) { /* Truncate to current position if no argument is passed. */ Modified: python/trunk/Modules/_struct.c ============================================================================== --- python/trunk/Modules/_struct.c (original) +++ python/trunk/Modules/_struct.c Tue Sep 30 04:11:07 2008 @@ -1755,6 +1755,8 @@ /* Extract the offset from the first argument */ offset = PyInt_AsSsize_t(PyTuple_GET_ITEM(args, 1)); + if (offset == -1 && PyErr_Occurred()) + return NULL; /* Support negative offsets. */ if (offset < 0) From buildbot at python.org Tue Sep 30 04:35:19 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 02:35:19 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 3.0 Message-ID: <20080930023519.D45331E4002@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%203.0/builds/823 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_codecs test_io ====================================================================== ERROR: test_basics (test.test_codecs.BasicUnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_codecs.py", line 1344, in test_basics encodedresult += encoder.encode(c) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: test_decoder_state (test.test_codecs.BasicUnicodeTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_codecs.py", line 1429, in test_decoder_state self.check_state_handling_decode(encoding, u, u.encode(encoding)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_codecs.py", line 30, in check_state_handling_decode part1 = d.decode(s[:i]) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: testBasicIO (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 900, in testBasicIO self.assertEquals(f.write("abc"), 3) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: testEncodingErrorsReading (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 738, in testEncodingErrorsReading self.assertRaises(UnicodeError, t.read) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\unittest.py", line 311, in failUnlessRaises callableObj(*args, **kwargs) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1719, in read decoder.decode(self.buffer.read(), final=True)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: testEncodingErrorsWriting (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 756, in testEncodingErrorsWriting self.assertRaises(UnicodeError, t.write, "\xff") File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\unittest.py", line 311, in failUnlessRaises callableObj(*args, **kwargs) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: testNewlinesInput (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 861, in testNewlinesInput self.assertEquals(txt.readlines(), expected) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 540, in readlines return list(self) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1734, in __next__ line = self.readline() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1808, in readline while self._read_chunk(): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: testNewlinesOutput (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 886, in testNewlinesOutput txt.write(data) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1486, in write b = encoder.encode(s) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 22, in encode return codecs.ascii_encode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_encode' ====================================================================== ERROR: test_issue1395_1 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1122, in test_issue1395_1 c = txt.read(1) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_2 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1134, in test_issue1395_2 c = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_3 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1144, in test_issue1395_3 reads = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_4 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1155, in test_issue1395_4 reads = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' ====================================================================== ERROR: test_issue1395_5 (test.test_io.TextIOWrapperTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\test\test_io.py", line 1163, in test_issue1395_5 reads = txt.read(4) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1728, in read eof = not self._read_chunk() File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1557, in _read_chunk self._set_decoded_chars(self._decoder.decode(input_chunk, eof)) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\io.py", line 1294, in decode output = self.decoder.decode(input, final=final) File "S:\buildbots\python.x64\3.0.nelson-win64\build\lib\encodings\ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] AttributeError: 'NoneType' object has no attribute 'ascii_decode' sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 05:29:10 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 03:29:10 +0000 Subject: [Python-checkins] buildbot failure in x86 gentoo trunk Message-ID: <20080930032910.9BDE51E4002@bag.python.org> The Buildbot has detected a new failure of x86 gentoo trunk. Full details are available at: http://www.python.org/dev/buildbot/all/x86%20gentoo%20trunk/builds/4196 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: norwitz-x86 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: jesse.noller,martin.v.loewis BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 06:04:20 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 04:04:20 +0000 Subject: [Python-checkins] buildbot failure in sparc solaris10 gcc 3.0 Message-ID: <20080930040420.C36151E4002@bag.python.org> The Buildbot has detected a new failure of sparc solaris10 gcc 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20solaris10%20gcc%203.0/builds/616 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: loewis-sun Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 2 tests failed: test_posix test_subprocess ====================================================================== ERROR: test_getcwd_long_pathnames (test.test_posix.PosixTester) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_posix.py", line 252, in test_getcwd_long_pathnames support.rmtree(base_path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/support.py", line 98, in rmtree shutil.rmtree(path) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 225, in rmtree onerror(os.rmdir, path, sys.exc_info()) File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/shutil.py", line 223, in rmtree os.rmdir(path) OSError: [Errno 22] Invalid argument: '/home2/buildbot/slave/3.0.loewis-sun/build/@test.getcwd/@test.getcwd' ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home2/buildbot/slave/3.0.loewis-sun/build/Lib/test/test_subprocess.py", line 115, in test_executable self.assertEqual(p.returncode, 47) AssertionError: -6 != 47 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 06:21:27 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 04:21:27 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian trunk Message-ID: <20080930042127.F1F531E4002@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian trunk. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%20trunk/builds/1496 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_pickletools make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 06:31:47 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 04:31:47 +0000 Subject: [Python-checkins] buildbot failure in ia64 Ubuntu 3.0 Message-ID: <20080930043147.8BACE1E4002@bag.python.org> The Buildbot has detected a new failure of ia64 Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/ia64%20Ubuntu%203.0/builds/620 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ia64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed svn sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 06:49:55 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 04:49:55 +0000 Subject: [Python-checkins] buildbot failure in PPC64 Debian 3.0 Message-ID: <20080930044955.AAE3E1E4002@bag.python.org> The Buildbot has detected a new failure of PPC64 Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/PPC64%20Debian%203.0/builds/1705 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-ppc64 Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_ssl make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 06:56:32 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 04:56:32 +0000 Subject: [Python-checkins] buildbot failure in g4 osx.4 trunk Message-ID: <20080930045632.939301E4002@bag.python.org> The Buildbot has detected a new failure of g4 osx.4 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/g4%20osx.4%20trunk/builds/3977 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: psf-g4 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_asynchat make: *** [buildbottest] Error 1 sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 07:01:05 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 05:01:05 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 3.0 Message-ID: <20080930050106.124941E4002@bag.python.org> The Buildbot has detected a new failure of sparc Debian 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%203.0/builds/582 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: sincerely, -The Buildbot From buildbot at python.org Tue Sep 30 08:30:15 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 06:30:15 +0000 Subject: [Python-checkins] buildbot failure in sparc Ubuntu 3.0 Message-ID: <20080930063015.80B781E4002@bag.python.org> The Buildbot has detected a new failure of sparc Ubuntu 3.0. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Ubuntu%203.0/builds/661 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-ubuntu-sparc Build Reason: Build Source Stamp: [branch branches/py3k] HEAD Blamelist: benjamin.peterson BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 30 14:31:07 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 30 Sep 2008 14:31:07 +0200 (CEST) Subject: [Python-checkins] r66696 - python/trunk/Doc/library/multiprocessing.rst Message-ID: <20080930123107.858851E40D8@bag.python.org> Author: andrew.kuchling Date: Tue Sep 30 14:31:07 2008 New Revision: 66696 Log: Edits, and add markup Modified: python/trunk/Doc/library/multiprocessing.rst Modified: python/trunk/Doc/library/multiprocessing.rst ============================================================================== --- python/trunk/Doc/library/multiprocessing.rst (original) +++ python/trunk/Doc/library/multiprocessing.rst Tue Sep 30 14:31:07 2008 @@ -20,11 +20,11 @@ .. warning:: - This package largely requires a functioning shared semaphore - implementation on the host operating system to function. Without one, the + Some of this package's functionality requires a functioning shared semaphore + implementation on the host operating system. Without one, the :mod:`multiprocessing.synchronize` module will be disabled, and attempts to - import it will result in an ImportError. See - http://bugs.python.org/issue3770 for additional information. + import it will result in an :exc:`ImportError`. See + :issue:`3770` for additional information. The :class:`Process` class ~~~~~~~~~~~~~~~~~~~~~~~~~~ From python-checkins at python.org Tue Sep 30 15:00:34 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 30 Sep 2008 15:00:34 +0200 (CEST) Subject: [Python-checkins] r66697 - in python/trunk/Doc/c-api: number.rst object.rst Message-ID: <20080930130034.869A71E4051@bag.python.org> Author: andrew.kuchling Date: Tue Sep 30 15:00:34 2008 New Revision: 66697 Log: Markup fix Modified: python/trunk/Doc/c-api/number.rst python/trunk/Doc/c-api/object.rst Modified: python/trunk/Doc/c-api/number.rst ============================================================================== --- python/trunk/Doc/c-api/number.rst (original) +++ python/trunk/Doc/c-api/number.rst Tue Sep 30 15:00:34 2008 @@ -285,7 +285,7 @@ .. cfunction:: PyObject* PyNumber_Index(PyObject *o) Returns the *o* converted to a Python int or long on success or *NULL* with a - TypeError exception raised on failure. + :exc:`TypeError` exception raised on failure. .. versionadded:: 2.5 Modified: python/trunk/Doc/c-api/object.rst ============================================================================== --- python/trunk/Doc/c-api/object.rst (original) +++ python/trunk/Doc/c-api/object.rst Tue Sep 30 15:00:34 2008 @@ -279,7 +279,7 @@ .. cfunction:: long PyObject_HashNotImplemented(PyObject *o) - Set a TypeError indicating that ``type(o)`` is not hashable and return ``-1``. + Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and return ``-1``. This function receives special treatment when stored in a ``tp_hash`` slot, allowing a type to explicitly indicate to the interpreter that it is not hashable. From python-checkins at python.org Tue Sep 30 15:00:51 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 30 Sep 2008 15:00:51 +0200 (CEST) Subject: [Python-checkins] r66698 - python/trunk/Doc/howto/urllib2.rst Message-ID: <20080930130051.4742D1E4002@bag.python.org> Author: andrew.kuchling Date: Tue Sep 30 15:00:51 2008 New Revision: 66698 Log: Markup fixes Modified: python/trunk/Doc/howto/urllib2.rst Modified: python/trunk/Doc/howto/urllib2.rst ============================================================================== --- python/trunk/Doc/howto/urllib2.rst (original) +++ python/trunk/Doc/howto/urllib2.rst Tue Sep 30 15:00:51 2008 @@ -182,11 +182,12 @@ Handling Exceptions =================== -*urlopen* raises ``URLError`` when it cannot handle a response (though as usual -with Python APIs, builtin exceptions such as ValueError, TypeError etc. may also +*urlopen* raises :exc:`URLError` when it cannot handle a response (though as usual +with Python APIs, builtin exceptions such as +:exc:`ValueError`, :exc:`TypeError` etc. may also be raised). -``HTTPError`` is the subclass of ``URLError`` raised in the specific case of +:exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific case of HTTP URLs. URLError @@ -215,12 +216,12 @@ default handlers will handle some of these responses for you (for example, if the response is a "redirection" that requests the client fetch the document from a different URL, urllib2 will handle that for you). For those it can't handle, -urlopen will raise an ``HTTPError``. Typical errors include '404' (page not +urlopen will raise an :exc:`HTTPError`. Typical errors include '404' (page not found), '403' (request forbidden), and '401' (authentication required). See section 10 of RFC 2616 for a reference on all the HTTP error codes. -The ``HTTPError`` instance raised will have an integer 'code' attribute, which +The :exc:`HTTPError` instance raised will have an integer 'code' attribute, which corresponds to the error sent by the server. Error Codes @@ -303,7 +304,7 @@ } When an error is raised the server responds by returning an HTTP error code -*and* an error page. You can use the ``HTTPError`` instance as a response on the +*and* an error page. You can use the :exc:`HTTPError` instance as a response on the page returned. This means that as well as the code attribute, it also has read, geturl, and info, methods. :: @@ -325,7 +326,7 @@ Wrapping it Up -------------- -So if you want to be prepared for ``HTTPError`` *or* ``URLError`` there are two +So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` there are two basic approaches. I prefer the second approach. Number 1 @@ -351,7 +352,7 @@ .. note:: The ``except HTTPError`` *must* come first, otherwise ``except URLError`` - will *also* catch an ``HTTPError``. + will *also* catch an :exc:`HTTPError`. Number 2 ~~~~~~~~ @@ -376,8 +377,8 @@ info and geturl =============== -The response returned by urlopen (or the ``HTTPError`` instance) has two useful -methods ``info`` and ``geturl``. +The response returned by urlopen (or the :exc:`HTTPError` instance) has two useful +methods :meth:`info` and :meth:`geturl`. **geturl** - this returns the real URL of the page fetched. This is useful because ``urlopen`` (or the opener object used) may have followed a From python-checkins at python.org Tue Sep 30 15:01:46 2008 From: python-checkins at python.org (andrew.kuchling) Date: Tue, 30 Sep 2008 15:01:46 +0200 (CEST) Subject: [Python-checkins] r66699 - in python/trunk/Doc/library: ctypes.rst optparse.rst subprocess.rst Message-ID: <20080930130146.7A9A01E4002@bag.python.org> Author: andrew.kuchling Date: Tue Sep 30 15:01:46 2008 New Revision: 66699 Log: Markup fixes. (optparse.rst probably needs an entire revision pass.) Modified: python/trunk/Doc/library/ctypes.rst python/trunk/Doc/library/optparse.rst python/trunk/Doc/library/subprocess.rst Modified: python/trunk/Doc/library/ctypes.rst ============================================================================== --- python/trunk/Doc/library/ctypes.rst (original) +++ python/trunk/Doc/library/ctypes.rst Tue Sep 30 15:01:46 2008 @@ -1392,7 +1392,7 @@ The *use_last_error* parameter, when set to True, enables the same mechanism for the Windows error code which is managed by the -GetLastError() and SetLastError() Windows api functions; +:func:`GetLastError` and :func:`SetLastError` Windows API functions; `ctypes.get_last_error()` and `ctypes.set_last_error(value)` are used to request and change the ctypes private copy of the windows error code. Modified: python/trunk/Doc/library/optparse.rst ============================================================================== --- python/trunk/Doc/library/optparse.rst (original) +++ python/trunk/Doc/library/optparse.rst Tue Sep 30 15:01:46 2008 @@ -602,7 +602,7 @@ programmer errors and user errors. Programmer errors are usually erroneous calls to ``parser.add_option()``, e.g. invalid option strings, unknown option attributes, missing option attributes, etc. These are dealt with in the usual -way: raise an exception (either ``optparse.OptionError`` or ``TypeError``) and +way: raise an exception (either ``optparse.OptionError`` or :exc:`TypeError`) and let the program crash. Handling user errors is much more important, since they are guaranteed to happen @@ -799,10 +799,10 @@ The keyword arguments define attributes of the new Option object. The most important option attribute is :attr:`action`, and it largely determines which other attributes are relevant or required. If you pass irrelevant option -attributes, or fail to pass required ones, :mod:`optparse` raises an OptionError -exception explaining your mistake. +attributes, or fail to pass required ones, :mod:`optparse` raises an +:exc:`OptionError` exception explaining your mistake. -An options's *action* determines what :mod:`optparse` does when it encounters +An option's *action* determines what :mod:`optparse` does when it encounters this option on the command-line. The standard option actions hard-coded into :mod:`optparse` are: @@ -1059,7 +1059,7 @@ The following option attributes may be passed as keyword arguments to ``parser.add_option()``. If you pass an option attribute that is not relevant to a particular option, or fail to pass a required option attribute, -:mod:`optparse` raises OptionError. +:mod:`optparse` raises :exc:`OptionError`. * :attr:`action` (default: ``"store"``) @@ -1152,7 +1152,7 @@ ``choice`` options are a subtype of ``string`` options. The ``choices`` option attribute (a sequence of strings) defines the set of allowed option arguments. ``optparse.check_choice()`` compares user-supplied option arguments against this -master list and raises OptionValueError if an invalid string is given. +master list and raises :exc:`OptionValueError` if an invalid string is given. .. _optparse-parsing-arguments: @@ -1225,10 +1225,10 @@ (e.g., ``"-q"`` or ``"--verbose"``). ``remove_option(opt_str)`` - If the OptionParser has an option corresponding to ``opt_str``, that option is + If the :class:`OptionParser` has an option corresponding to ``opt_str``, that option is removed. If that option provided any other option strings, all of those option strings become invalid. If ``opt_str`` does not occur in any option belonging to - this OptionParser, raises ValueError. + this :class:`OptionParser`, raises :exc:`ValueError`. .. _optparse-conflicts-between-options: @@ -1259,13 +1259,13 @@ The available conflict handlers are: ``error`` (default) - assume option conflicts are a programming error and raise OptionConflictError + assume option conflicts are a programming error and raise :exc:`OptionConflictError` ``resolve`` resolve option conflicts intelligently (see below) -As an example, let's define an OptionParser that resolves conflicts +As an example, let's define an :class:`OptionParser` that resolves conflicts intelligently and add conflicting options to it:: parser = OptionParser(conflict_handler="resolve") @@ -1495,7 +1495,7 @@ Raising errors in a callback ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The callback function should raise OptionValueError if there are any problems +The callback function should raise :exc:`OptionValueError` if there are any problems with the option or its argument(s). :mod:`optparse` catches this and terminates the program, printing the error message you supply to stderr. Your message should be clear, concise, accurate, and mention the option at fault. Otherwise, @@ -1696,9 +1696,9 @@ :meth:`OptionParser.parse_args`, or be passed to a callback as the ``value`` parameter. -Your type-checking function should raise OptionValueError if it encounters any -problems. OptionValueError takes a single string argument, which is passed -as-is to OptionParser's :meth:`error` method, which in turn prepends the program +Your type-checking function should raise :exc:`OptionValueError` if it encounters any +problems. :exc:`OptionValueError` takes a single string argument, which is passed +as-is to :class:`OptionParser`'s :meth:`error` method, which in turn prepends the program name and the string ``"error:"`` and prints everything to stderr before terminating the process. Modified: python/trunk/Doc/library/subprocess.rst ============================================================================== --- python/trunk/Doc/library/subprocess.rst (original) +++ python/trunk/Doc/library/subprocess.rst Tue Sep 30 15:01:46 2008 @@ -138,7 +138,7 @@ .. function:: check_call(*popenargs, **kwargs) Run command with arguments. Wait for command to complete. If the exit code was - zero then return, otherwise raise :exc:`CalledProcessError.` The + zero then return, otherwise raise :exc:`CalledProcessError`. The :exc:`CalledProcessError` object will have the return code in the :attr:`returncode` attribute. From nnorwitz at gmail.com Tue Sep 30 15:52:56 2008 From: nnorwitz at gmail.com (Neal Norwitz) Date: Tue, 30 Sep 2008 09:52:56 -0400 Subject: [Python-checkins] Python Regression Test Failures refleak (1) Message-ID: <20080930135256.GA17645@python.psfb.org> More important issues: ---------------------- test_cprofile leaked [1, 1, 1] references, sum=3 Less important issues: ---------------------- test_smtplib leaked [197, -197, 88] references, sum=88 test_sys leaked [42, 0, 0] references, sum=42 test_threadsignals leaked [0, -8, 0] references, sum=-8 test_urllib2_localnet leaked [3, 3, 3] references, sum=9 test_xmlrpc leaked [0, -85, 85] references, sum=0 From python-checkins at python.org Tue Sep 30 19:46:04 2008 From: python-checkins at python.org (brett.cannon) Date: Tue, 30 Sep 2008 19:46:04 +0200 (CEST) Subject: [Python-checkins] r66700 - python/trunk/Modules/_lsprof.c Message-ID: <20080930174604.3A7431E401F@bag.python.org> Author: brett.cannon Date: Tue Sep 30 19:46:03 2008 New Revision: 66700 Log: Fix a refleak introduced by r66677. Fix suggested by Amaury Forgeot d'Arc. Closes issue #4003. Modified: python/trunk/Modules/_lsprof.c Modified: python/trunk/Modules/_lsprof.c ============================================================================== --- python/trunk/Modules/_lsprof.c (original) +++ python/trunk/Modules/_lsprof.c Tue Sep 30 19:46:03 2008 @@ -150,16 +150,7 @@ } Py_DECREF(o); if (PyErr_Occurred()) { - PyObject *context = (PyObject *)pObj; - /* May have been called by profiler_dealloc(). */ - if (Py_REFCNT(context) < 1) { - context = PyString_FromString("profiler calling an " - "external timer"); - if (context == NULL) { - return 0; - } - } - PyErr_WriteUnraisable(context); + PyErr_WriteUnraisable(pObj->externalTimer); return 0; } return result; From python-checkins at python.org Tue Sep 30 19:47:51 2008 From: python-checkins at python.org (brett.cannon) Date: Tue, 30 Sep 2008 19:47:51 +0200 (CEST) Subject: [Python-checkins] r66701 - python/branches/release25-maint/Modules/_lsprof.c Message-ID: <20080930174751.0D8491E4008@bag.python.org> Author: brett.cannon Date: Tue Sep 30 19:47:50 2008 New Revision: 66701 Log: Fix a refleak introduced by r66678 (backport of r66700). Modified: python/branches/release25-maint/Modules/_lsprof.c Modified: python/branches/release25-maint/Modules/_lsprof.c ============================================================================== --- python/branches/release25-maint/Modules/_lsprof.c (original) +++ python/branches/release25-maint/Modules/_lsprof.c Tue Sep 30 19:47:50 2008 @@ -150,16 +150,7 @@ } Py_DECREF(o); if (PyErr_Occurred()) { - PyObject *context = (PyObject *)pObj; - /* May have been called by profiler_dealloc(). */ - if (context->ob_refcnt < 1) { - context = PyString_FromString("profiler calling an " - "external timer"); - if (context == NULL) { - return 0; - } - } - PyErr_WriteUnraisable(context); + PyErr_WriteUnraisable(pObj->externalTimer); return 0; } return result; From buildbot at python.org Tue Sep 30 21:49:16 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 19:49:16 +0000 Subject: [Python-checkins] buildbot failure in sparc Debian 2.5 Message-ID: <20080930194916.C47781E4002@bag.python.org> The Buildbot has detected a new failure of sparc Debian 2.5. Full details are available at: http://www.python.org/dev/buildbot/all/sparc%20Debian%202.5/builds/102 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: klose-debian-sparc Build Reason: Build Source Stamp: [branch branches/release25-maint] HEAD Blamelist: brett.cannon BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_subprocess make: *** [buildbottest] Error 1 sincerely, -The Buildbot From python-checkins at python.org Tue Sep 30 22:41:13 2008 From: python-checkins at python.org (gregory.p.smith) Date: Tue, 30 Sep 2008 22:41:13 +0200 (CEST) Subject: [Python-checkins] r66703 - in python/trunk: Doc/library/os.rst Lib/test/test_threading.py Misc/NEWS Message-ID: <20080930204113.8DFC51E4002@bag.python.org> Author: gregory.p.smith Date: Tue Sep 30 22:41:13 2008 New Revision: 66703 Log: Works around issue3863: freebsd4/5/6 and os2emx are known to have OS bugs when calling fork() from a child thread. This disables that unit test (with a note printed to stderr) on those platforms. A caveat about buggy platforms is added to the os.fork documentation. Modified: python/trunk/Doc/library/os.rst python/trunk/Lib/test/test_threading.py python/trunk/Misc/NEWS Modified: python/trunk/Doc/library/os.rst ============================================================================== --- python/trunk/Doc/library/os.rst (original) +++ python/trunk/Doc/library/os.rst Tue Sep 30 22:41:13 2008 @@ -1646,6 +1646,10 @@ Fork a child process. Return ``0`` in the child and the child's process id in the parent. If an error occurs :exc:`OSError` is raised. + + Note that some platforms including FreeBSD <= 6.3, Cygwin and OS/2 EMX have + known issues when using fork() from a thread. + Availability: Unix. Modified: python/trunk/Lib/test/test_threading.py ============================================================================== --- python/trunk/Lib/test/test_threading.py (original) +++ python/trunk/Lib/test/test_threading.py Tue Sep 30 22:41:13 2008 @@ -380,6 +380,12 @@ import os if not hasattr(os, 'fork'): return + # Skip platforms with known problems forking from a worker thread. + # See http://bugs.python.org/issue3863. + if sys.platform in ('freebsd4', 'freebsd5', 'freebsd6', 'os2emx'): + print >>sys.stderr, ('Skipping test_3_join_in_forked_from_thread' + ' due to known OS bugs on'), sys.platform + return script = """if 1: main_thread = threading.current_thread() def worker(): Modified: python/trunk/Misc/NEWS ============================================================================== --- python/trunk/Misc/NEWS (original) +++ python/trunk/Misc/NEWS Tue Sep 30 22:41:13 2008 @@ -37,6 +37,9 @@ - Issue #3879: A regression in urllib.getproxies_enviroment was fixed. +- Issue #3863: Disabled a unit test of fork being called from a thread + when running on platforms known to exhibit OS bugs when attempting that. + Build ----- From buildbot at python.org Tue Sep 30 23:20:49 2008 From: buildbot at python.org (buildbot at python.org) Date: Tue, 30 Sep 2008 21:20:49 +0000 Subject: [Python-checkins] buildbot failure in AMD64 W2k8 trunk Message-ID: <20080930212049.8098E1E4006@bag.python.org> The Buildbot has detected a new failure of AMD64 W2k8 trunk. Full details are available at: http://www.python.org/dev/buildbot/all/AMD64%20W2k8%20trunk/builds/976 Buildbot URL: http://www.python.org/dev/buildbot/all/ Buildslave for this Build: nelson-win64 Build Reason: Build Source Stamp: [branch trunk] HEAD Blamelist: gregory.p.smith BUILD FAILED: failed test Excerpt from the test logfile: 1 test failed: test_strptime sincerely, -The Buildbot